この記事は...
VSCodeで執筆した.mdファイルを、出来るだけ簡単にePubファイルに変換したかった。
VSCodeに Markdown Preview Enhanced をインストールすれば良さそうだ。
首尾よく行けば、.mdファイルのプレビューから右クリックで「Export > eBook > ePub」を選択するだけで、.epubファイルを作成できるはず。
公式ドキュメントも丁寧だったので、挑戦してみた際のエピソードです。
実行環境
- MacOS 14.3.1
- Visual Studio Code 1.86.2
Markdown Preview Enhancedの準備
普通のVSCodeエクステンションと同様に、検索してインストールしただけ。
似たような名前の偽物が多いので、注意(本物の発行者はYiyi Wang)。
.mdファイルをePubやPDFにエクスポートするには、Macに Calibre なるアプリケーションをインストールする必要があるとのこと。
実際にはCalibre自体ではなく、そこに含まれる ebook-convert が必要らしい(これのせいで1日中、試行錯誤する羽目になった)。
ともかく、MacにCalibreをインストールする。
そして、ドキュメントにも指示があるが、シンボリックリンク を作成しなさいという話になる。
「シンボリックリンク?」
よくわからないけど、ターミナルでコマンドを実行すれば良いと書いてあるので、素直に従った。
Markdown Preview Enhancedの公式ドキュメントに表記されていたコマンドは以下の通り。
$ sudo ln -s ~/Applications/calibre.app/Contents/MacOS/ebook-convert /usr/local/bin
上の通りに実行したら、パスワードの入力を求められたので成功したように見えた。
VSCodeのトップレベルに適当な.mdファイルを置いて、そこにebook front-matter
と呼ばれるメタデータを記載すれば準備完了。
その.mdファイルのプレビューで右クリックして、エクスポート!
spawn ebook-convert ENOENT
どうやら、「ebook-convertのエントリーがない」というエラーが発生したことを告げているらしい。
シンボリックリンクとは?
何がどう間違っていたかわからないので、あやふやなまま進めてしまった手順を振り返ることにした。
シンボリックリンクは「Macでいうところのエイリアス」とか「PCでいうショートカット」みたいなものと理解しておけば良さそう。
そして、ターミナルで実行したln
コマンドは、リンクを作成するためのものだったようだ。
ln -s 「シンボリックリンク元のパス」 「シンボリックリンクを作成する場所のパス」
-s
は「シンボリックを指定するオプション」で、これがないと「ハードリンク」になるらしい。
「シンボリックリンク元」には、~/Applications/calibre.app/Contents/MacOS/ebook-convert
を指定していた。
「作成する場所」には、/usr/local/bin
を指定していた。
やり直し
いろいろ調べたところ、~
がいらないっぽい。
~
はルートだかホームだかの意味だった気がしたけど、忘れたので誰か教えてください。
とにかくいらない。
ターミナルで実行すべきだったコマンドは、以下の通り。
$ sudo ln -s /Applications/calibre.app/Contents/MacOS/ebook-convert /usr/local/bin
それでも、VSCodeでePubファイルを作成することは出来なかった!
絶望しつつも調べ漁ると、シンボリックリンクは上書きされないという事情が判明した。
間違って作成したシンボリックリンクは、明示的に削除する必要があるとのこと。
リンクの削除コマンドは以下の通り。
unlink /usr/local/bin/ebook-convert
上記のunlink
コマンドを実行してから、再びVSCodeのプレビューでエクスポートを試したところ、成功!
ものの数秒で、同じフォルダに.epubファイルが作成されていました。
疲れた。