📘

適当に HTML を EPUB に変換する方法

に公開

Pandoc を使いますので、Pandoc のマニュアルを例として扱います。

最低限の説明

まず何らかの方法で Pandoc を入れます。mise を使ってるので、とりあえず mise use -g pandoc で入れます。mise はいいぞ。他に入れる方法は Pandoc - Installing pandoc を参照してください。

そして、

wget https://pandoc.org/MANUAL.html
pandoc MANUAL.html -t markdown_strict-raw_html -o MANUAL.md
pandoc MANUAL.md -o MANUAL.epub -M title="Pandoc Manual" -M author="Pandoc"

とりあえずいい感じに変換できてそうです。

EPUB を Apple Books で開いてみた様子

もうちょっとちゃんとした説明

Pandoc は、公式サイトに書いてあるように

If you need to convert files from one markup format into another, pandoc is your swiss-army knife.

さまざまなマークアップ言語の間に変換するのに便利なツールです。Haskell で書かれたツールで、昔マークダウンを PDF に変換するのにも使ったことあります。

wget https://pandoc.org/MANUAL.html

MANUAL.html を落としてきます。ほぼ説明不要ですね。

pandoc MANUAL.html -t markdown_strict-raw_html -o MANUAL.md

-t は出力フォーマットを指定するフォーマットで、-o は出力ファイルを指定する設定です。markdown_strict というフォーマットに変換しますが、余計な HTML は要らないので、-raw_htmlraw_html 拡張を無効化します。逆に +raw_htmlraw_html 拡張を有効化できます。

pandoc MANUAL.md -o MANUAL.epub -M title="Pandoc Manual" -M author="Pandoc"

出力されたマークダウンファイルを EPUB に変換します。ここは拡張子からフォーマットが推定されるので -t epub は不要。-M でメタデータのタイトルと作者を指定できます。表紙がちょっといい感じになります。

余談

https://github.com/jgm/pandoc/blob/main/MANUAL.txt にマークダウンが置いてるので、そもそも HTML から変換する必要はないですが。

Discussion