名もなき未知

エンジニアリングとか、日常とかそういうのをまとめる場所。アクセス解析のためGAを利用、Googleに情報を送信しています。商品紹介のためAmazonアフィリエイトを利用、Amazonに情報を送信しています。記事に関しては私が書いていない引用文を除いて自由にご利用ください。

WSL2 + Marp で pdf を何とか出力できるようにする

下記はメモ

前提の課題として、 Marp で pdf を出そうとしたのだが、こんな感じにエラーが出る。 html を

❯ pnpx marp test-slide/slide.md --pdf
[  INFO ] Converting 1 markdown...
[ ERROR ] Failed converting Markdown. (connect ECONNREFUSED 127.0.0.1:54872)

何のことやらという感じであるが、 marp-team/marp-cli: A CLI interface for Marp and Marpit based converters を見ると、pdf, pptx を出すために Chrome Google なりそれに類するブラウザが必要なようです。

で、ブラウザを表示するためには WSL2 上から chrome が起動できる必要があるが、これに関しては以前、「Xサーバーアプリが必要なので、VcXsrv を入れてみる。」あたりで設定している。今回もこう言った設定が必要となる。

namonakimichi.hatenablog.com

Google ChromeCUI ベースで入れる方法としては下記の方法を参考にした(他の記事も読んだが、追加するキーも方法も一緒だったので、まあ良いことにした)(ぱっと Google のサイトから探せなかったので、妥協した)。

qiita.com

このセットアップを行って VcXsrv を起動した状態で、 google-chrome を terminal からたたくと、Chrome が起動する。

最後に、下記の issue を参考に CHROME_PATH を指定し、起動する。

github.com

ちなみに絶対的なパス指定でなくても、 which google-chrome とかで行けそうな気がしたので、試したらできた。

❯ CHROME_PATH=$(which google-chrome-stable) pnpx marp test-slide/slide.md -o output.pdf
[  INFO ] Converting 1 markdown...
[  INFO ] test-slide/slide.md => output.pdf

というわけでOK。

ところで

なんかもはや Docker でやったほうが早かったのではないか、という説がある。