IT技術書向けのEPUB作成ソフトはなにかあるか気になって、知りたいことをChatGPTにきいて自分が書いたAozoraEpub3関連が出てきたときに、自分以外書いたものが知りたいのだと思うしかなかった。
AozoraEpub3はcodeタグやpreタグが使いづらいのでIT技術書には向かないかなと思っている。
その他に次のものが紹介されていた。。
Re:VIEW、Pandoc 、mdBook、Asciidoctor、Calibre、GitBook、Pressbooks、Scrivener
国内のEPUBを受け付けている、電子書籍販売サイトでの対応状況はよくわからない。電書協ベースなら行けそうだけど、電書協は縦書きの小説と漫画がメインなEPUBなのでその他の仕様がよくわからない。
rubyじゃなくてnode.jsで動くものでないかなと気になった。GitBookの派生したHonKitも気になったので調べてみた。ブラウザ上で動作するEPUB作成ツールがあれば初心者向けにはいいのかもしれない。データ量が増えると処理が重くなって使いづらそうだけど
あなた:
IT技術書向けのEPUB作成ソフトはなにかある
ChatGPT:
IT技術書向けのEPUB作成に適したソフト・ツールには以下のようなものがあります。それぞれ特徴が異なるため、目的や作成スタイルに応じて選ぶとよいです。
- 概要: 技術書典などで人気の「技術書」を執筆・出版するための文書フォーマット。
- 出力形式: EPUB / PDF / HTML / Kindleなど
- 特徴:
Markdownに似た構文。
複数章・索引・脚注・数式など、技術書向けの構造をサポート。
技術書典の公式推奨。
- Markdownに似た構文。
- 複数章・索引・脚注・数式など、技術書向けの構造をサポート。
- 技術書典の公式推奨。
- 使用例: GitHubやCIと連携して自動でEPUB生成も可能。
- URL: https://github.com/kmuto/review
概要: 技術書典などで人気の「技術書」を執筆・出版するための文書フォーマット。
出力形式: EPUB / PDF / HTML / Kindleなど
特徴:
- Markdownに似た構文。
- 複数章・索引・脚注・数式など、技術書向けの構造をサポート。
- 技術書典の公式推奨。
Markdownに似た構文。
複数章・索引・脚注・数式など、技術書向けの構造をサポート。
技術書典の公式推奨。
使用例: GitHubやCIと連携して自動でEPUB生成も可能。
URL: https://github.com/kmuto/review
- 概要: Rust公式ドキュメントにも使われているMarkdownベースのドキュメントビルダー。
- 出力形式: HTMLが中心だが、プラグインやPandocと組み合わせることでEPUB化も可能。
- 特徴:
見出し、ナビゲーション、検索機能などが整っている。
Markdownで簡単に執筆。
- 見出し、ナビゲーション、検索機能などが整っている。
- Markdownで簡単に執筆。
- URL: https://rust-lang.github.io/mdBook/
概要: Rust公式ドキュメントにも使われているMarkdownベースのドキュメントビルダー。
出力形式: HTMLが中心だが、プラグインやPandocと組み合わせることでEPUB化も可能。
特徴:
- 見出し、ナビゲーション、検索機能などが整っている。
- Markdownで簡単に執筆。
見出し、ナビゲーション、検索機能などが整っている。
Markdownで簡単に執筆。
URL: https://rust-lang.github.io/mdBook/
- 概要: 文書フォーマット変換ツールの定番。
- 出力形式: Markdown → EPUB / PDF / DOCX など多数対応。
- 特徴:
Markdownで執筆 → コマンド1つでEPUB出力。
CSSや表紙画像などの設定も可能。
- Markdownで執筆 → コマンド1つでEPUB出力。
- CSSや表紙画像などの設定も可能。
- URL: https://pandoc.org/
概要: 文書フォーマット変換ツールの定番。
出力形式: Markdown → EPUB / PDF / DOCX など多数対応。
特徴:
- Markdownで執筆 → コマンド1つでEPUB出力。
- CSSや表紙画像などの設定も可能。
Markdownで執筆 → コマンド1つでEPUB出力。
CSSや表紙画像などの設定も可能。
URL: https://pandoc.org/
- 概要: AsciiDocを使って文書作成するためのツール。
- 出力形式: HTML / PDF / EPUB3
- 特徴:
Re:VIEWより柔軟な構文。
CLIだけでなく、GradleやRubyとも相性が良い。
- Re:VIEWより柔軟な構文。
- CLIだけでなく、GradleやRubyとも相性が良い。
- URL: https://asciidoctor.org/
概要: AsciiDocを使って文書作成するためのツール。
出力形式: HTML / PDF / EPUB3
特徴:
- Re:VIEWより柔軟な構文。
- CLIだけでなく、GradleやRubyとも相性が良い。
Re:VIEWより柔軟な構文。
CLIだけでなく、GradleやRubyとも相性が良い。
URL: https://asciidoctor.org/
- 概要: 電子書籍の変換・管理ソフト。
- 出力形式: EPUB / MOBI / AZW3 / PDFなど
- 特徴:
既存のWordやPDF、HTMLをEPUBに変換。
編集機能も備えている。
- 既存のWordやPDF、HTMLをEPUBに変換。
- 編集機能も備えている。
- URL: https://calibre-ebook.com/
概要: 電子書籍の変換・管理ソフト。
出力形式: EPUB / MOBI / AZW3 / PDFなど
特徴:
- 既存のWordやPDF、HTMLをEPUBに変換。
- 編集機能も備えている。
既存のWordやPDF、HTMLをEPUBに変換。
編集機能も備えている。
URL: https://calibre-ebook.com/
用途 |
おすすめツール |
技術書典などに出す本 |
Re:VIEW |
軽量・簡単な技術メモ |
Pandoc / mdBook |
デザイン自由度を重視 |
Asciidoctor |
GUIでの操作がしたい |
Calibre |
自動ビルドやCI連携 |
Re:VIEW + GitHub Actions や Pandoc |
- コードブロックの整形(フォントや背景色)
- 数式(MathMLまたは画像)
- ナビゲーション(目次、内部リンク)
- フォントやルビなどの装飾
コードブロックの整形(フォントや背景色)
数式(MathMLまたは画像)
ナビゲーション(目次、内部リンク)
フォントやルビなどの装飾
必要であれば、Re:VIEWやPandocを使った具体的なEPUBビルド手順も案内できます。興味ありますか?
あなた:
bookwalkerでの表示に対応しているものに限定して
ChatGPT:
BookWalker での表示にしっかり対応している EPUB 作成ツールに限定すると、以下の 2つが特に現実的かつ信頼性が高いです:
元々は青空文庫向けだが、日本語縦書き・ルビ・画像配置・目次など、日本の電子書籍ストア(BookWalker含む)での表示に最適化されている。
拡張版(電書協仕様対応版)を使えば、電書協EPUBガイドライン(Ver 1.1/1.2)に準拠した出力ができる。
- 元々は青空文庫向けだが、日本語縦書き・ルビ・画像配置・目次など、日本の電子書籍ストア(BookWalker含む)での表示に最適化されている。
- 拡張版(電書協仕様対応版)を使えば、電書協EPUBガイドライン(Ver 1.1/1.2)に準拠した出力ができる。
- 対応内容:
電書協ガイドラインに準拠(BookWalker公式仕様に準拠)
ルビ、縦書き、禁則処理、目次、カバー画像、著者情報、奥付、フォント埋め込み(任意)
- 電書協ガイドラインに準拠(BookWalker公式仕様に準拠)
- ルビ、縦書き、禁則処理、目次、カバー画像、著者情報、奥付、フォント埋め込み(任意)
- 拡張版URL: https://w.atwiki.jp/hmdev/
- 入力形式:
青空文庫形式テキスト or XHTMLテンプレート
- 青空文庫形式テキスト or XHTMLテンプレート
特徴:
- 元々は青空文庫向けだが、日本語縦書き・ルビ・画像配置・目次など、日本の電子書籍ストア(BookWalker含む)での表示に最適化されている。
- 拡張版(電書協仕様対応版)を使えば、電書協EPUBガイドライン(Ver 1.1/1.2)に準拠した出力ができる。
元々は青空文庫向けだが、日本語縦書き・ルビ・画像配置・目次など、日本の電子書籍ストア(BookWalker含む)での表示に最適化されている。
拡張版(電書協仕様対応版)を使えば、電書協EPUBガイドライン(Ver 1.1/1.2)に準拠した出力ができる。
対応内容:
- 電書協ガイドラインに準拠(BookWalker公式仕様に準拠)
- ルビ、縦書き、禁則処理、目次、カバー画像、著者情報、奥付、フォント埋め込み(任意)
電書協ガイドラインに準拠(BookWalker公式仕様に準拠)
ルビ、縦書き、禁則処理、目次、カバー画像、著者情報、奥付、フォント埋め込み(任意)
拡張版URL: https://w.atwiki.jp/hmdev/
入力形式:
- 青空文庫形式テキスト or XHTMLテンプレート
青空文庫形式テキスト or XHTMLテンプレート
技術書向けマークアップ。Re:VIEW EPUB Builderを使うことで、BookWalker向けのEPUB出力に対応。
電書協EPUBガイドラインに対応した設定が可能。
- 技術書向けマークアップ。Re:VIEW EPUB Builderを使うことで、BookWalker向けのEPUB出力に対応。
- 電書協EPUBガイドラインに対応した設定が可能。
- 対応内容:
目次、縦書き対応(設定次第)、ルビ、コードブロック、索引などを含むEPUB。
カスタムCSSを使ってBookWalker向けのレイアウト最適化も可能。
- 目次、縦書き対応(設定次第)、ルビ、コードブロック、索引などを含むEPUB。
- カスタムCSSを使ってBookWalker向けのレイアウト最適化も可能。
- 関連プロジェクト:
review-epubmaker(Re:VIEW公式)
review-template-ja
- review-epubmaker(Re:VIEW公式)
- review-template-ja
- 入力形式:
Re:VIEW形式(.re、.txt類似構文)
- Re:VIEW形式(.re、.txt類似構文)
特徴:
- 技術書向けマークアップ。Re:VIEW EPUB Builderを使うことで、BookWalker向けのEPUB出力に対応。
- 電書協EPUBガイドラインに対応した設定が可能。
技術書向けマークアップ。Re:VIEW EPUB Builderを使うことで、BookWalker向けのEPUB出力に対応。
電書協EPUBガイドラインに対応した設定が可能。
対応内容:
- 目次、縦書き対応(設定次第)、ルビ、コードブロック、索引などを含むEPUB。
- カスタムCSSを使ってBookWalker向けのレイアウト最適化も可能。
目次、縦書き対応(設定次第)、ルビ、コードブロック、索引などを含むEPUB。
カスタムCSSを使ってBookWalker向けのレイアウト最適化も可能。
関連プロジェクト:
- review-epubmaker(Re:VIEW公式)
- review-template-ja
review-epubmaker(Re:VIEW公式)
review-template-ja
入力形式:
Re:VIEW形式(.re、.txt類似構文)
- Pandoc や mdBook でも EPUB 作成はできますが:
CSSや構造を手動調整しないと、日本語縦書きやルビに非対応。
そのままでは BookWalkerのEPUB検証ツールで弾かれる可能性が高い。
- CSSや構造を手動調整しないと、日本語縦書きやルビに非対応。
- そのままでは BookWalkerのEPUB検証ツールで弾かれる可能性が高い。
Pandoc や mdBook でも EPUB 作成はできますが:
- CSSや構造を手動調整しないと、日本語縦書きやルビに非対応。
- そのままでは BookWalkerのEPUB検証ツールで弾かれる可能性が高い。
CSSや構造を手動調整しないと、日本語縦書きやルビに非対応。
そのままでは BookWalkerのEPUB検証ツールで弾かれる可能性が高い。
ツール名 |
BookWalker対応度 |
推奨用途 |
入力形式 |
AozoraEpub3(拡張) |
◎(実績多数) |
小説・技術書混在OK |
青空文庫テキスト or XHTML |
Re:VIEW + 拡張 |
◎(技術書典などで実績) |
技術書・同人技術本に最適 |
Re:VIEW記法(.re) |
必要なら、Re:VIEW や AozoraEpub3(拡張版)でのEPUB作成手順も案内できます。どちらか選んでいただければ、サンプル付きでご説明可能です。
あなた:
英語圏で主に使われているのは
ChatGPT:
英語圏で主に使われているEPUB作成ツール(特に技術書やプロフェッショナルな用途)には、以下のようなものがあります。これらはBookWalker向けではなく、Kindle、Apple Books、Kobo、Google Play Booksなど英語圏の主要プラットフォームをターゲットにしています。
- 特徴: 最も広く使われる文書変換ツール。Markdown → EPUB 変換が可能。
- 対応: EPUB 2 / EPUB 3 対応。CSSカスタマイズ可能。
- 用途:
技術ブログ、ホワイトペーパー、技術書の初稿など。
- 技術ブログ、ホワイトペーパー、技術書の初稿など。
- 備考:
数式、コードブロック、画像、目次などに対応。
EPUB作成には追加のカスタマイズが必要なことがある。
- 数式、コードブロック、画像、目次などに対応。
- EPUB作成には追加のカスタマイズが必要なことがある。
- 公式: https://pandoc.org/
特徴: 最も広く使われる文書変換ツール。Markdown → EPUB 変換が可能。
対応: EPUB 2 / EPUB 3 対応。CSSカスタマイズ可能。
用途:
技術ブログ、ホワイトペーパー、技術書の初稿など。
備考:
- 数式、コードブロック、画像、目次などに対応。
- EPUB作成には追加のカスタマイズが必要なことがある。
数式、コードブロック、画像、目次などに対応。
EPUB作成には追加のカスタマイズが必要なことがある。
公式: https://pandoc.org/
- 特徴: 英語圏の開発者に人気。シンプルな構文で高機能な文書が作れる。
- 対応: asciidoctor-epub3 でEPUB 3を生成可能。
- 用途:
開発ドキュメント、プログラマ向け書籍(O’Reilly Media等)。
- 開発ドキュメント、プログラマ向け書籍(O’Reilly Media等)。
- 備考:
Markdownよりも構造化された文書向け。
- Markdownよりも構造化された文書向け。
- 公式: https://asciidoctor.org/
特徴: 英語圏の開発者に人気。シンプルな構文で高機能な文書が作れる。
対応: asciidoctor-epub3 でEPUB 3を生成可能。
用途:
- 開発ドキュメント、プログラマ向け書籍(O’Reilly Media等)。
開発ドキュメント、プログラマ向け書籍(O’Reilly Media等)。
備考:
Markdownよりも構造化された文書向け。
公式: https://asciidoctor.org/
- 特徴: Webベースのドキュメンテーションプラットフォーム。EPUBエクスポートあり(Pro版)。
- 用途:
プロダクトマニュアル、APIドキュメント、チーム内技術資料。
- プロダクトマニュアル、APIドキュメント、チーム内技術資料。
- 備考:
デザインが美しい。HTMLベースでの配信が主流になっており、EPUB出力は補助的。
- デザインが美しい。HTMLベースでの配信が主流になっており、EPUB出力は補助的。
- 公式: https://www.gitbook.com/
特徴: Webベースのドキュメンテーションプラットフォーム。EPUBエクスポートあり(Pro版)。
用途:
- プロダクトマニュアル、APIドキュメント、チーム内技術資料。
プロダクトマニュアル、APIドキュメント、チーム内技術資料。
備考:
- デザインが美しい。HTMLベースでの配信が主流になっており、EPUB出力は補助的。
デザインが美しい。HTMLベースでの配信が主流になっており、EPUB出力は補助的。
公式: https://www.gitbook.com/
- 特徴: 書籍執筆向けのWebアプリ(WordPressベース)。
- 用途:
教育機関や出版社がEPUBやPDFを作成するのに利用。
- 教育機関や出版社がEPUBやPDFを作成するのに利用。
- 対応: EPUB 3 / PDF / MOBI / Web book
- 備考:
UIベースで使いやすく、テーマ設定や章ごとの編集が可能。
- UIベースで使いやすく、テーマ設定や章ごとの編集が可能。
- 公式: https://pressbooks.com/
特徴: 書籍執筆向けのWebアプリ(WordPressベース)。
用途:
- 教育機関や出版社がEPUBやPDFを作成するのに利用。
教育機関や出版社がEPUBやPDFを作成するのに利用。
対応: EPUB 3 / PDF / MOBI / Web book
備考:
- UIベースで使いやすく、テーマ設定や章ごとの編集が可能。
UIベースで使いやすく、テーマ設定や章ごとの編集が可能。
公式: https://pressbooks.com/
- 特徴: 作家・研究者向けの執筆支援ツール。EPUB出力機能あり。
- 用途:
フィクション、ノンフィクション、論文、技術書初稿など。
- フィクション、ノンフィクション、論文、技術書初稿など。
- 対応:
EPUB 2/3、Kindle(.mobi)、PDFなどへの書き出し。
- EPUB 2/3、Kindle(.mobi)、PDFなどへの書き出し。
- 公式: https://www.literatureandlatte.com/scrivener/overview
特徴: 作家・研究者向けの執筆支援ツール。EPUB出力機能あり。
用途:
- フィクション、ノンフィクション、論文、技術書初稿など。
フィクション、ノンフィクション、論文、技術書初稿など。
対応:
- EPUB 2/3、Kindle(.mobi)、PDFなどへの書き出し。
EPUB 2/3、Kindle(.mobi)、PDFなどへの書き出し。
公式: https://www.literatureandlatte.com/scrivener/overview
ツール名 |
英語圏での技術書用途 |
備考 |
Pandoc |
◎ 広範囲で使用 |
自動変換・CIに最適 |
AsciiDoctor |
◎ O’Reillyなどで採用 |
出版にも対応 |
GitBook |
○ ドキュメント中心 |
EPUB出力は補助的 |
Pressbooks |
○ 教育・出版系 |
EPUB出力が前提 |
Scrivener |
△ 作家寄り |
長文作成向け |
ツール |
対象 |
EPUB品質 |
コード・数式対応 |
備考 |
Pandoc |
技術全般 |
高 |
◎ |
Markdown → EPUB変換に最適 |
AsciiDoctor |
プログラマ・開発書籍 |
高 |
◎ |
英語圏開発者に人気 |
GitBook |
製品ドキュメント |
中 |
◯ |
美しいUI、Web配信中心 |
Pressbooks |
教育・出版系 |
高 |
◯ |
高等教育向けに多用 |
Scrivener |
作家・論文 |
中 |
△ |
複雑な執筆工程に便利 |
必要であれば、Pandoc や AsciiDoctor を使った技術書向けEPUB作成の具体例も提供できます。ご希望ありますか?
あなた:
プログラミングコード色付けして表示できるものは
ChatGPT:
プログラミングコードをシンタックスハイライト付き(色付き)で表示できるEPUB作成ツールに限定すると、以下のツールが現実的かつ信頼性があります。
- 対応: ✅ 色付きコード対応(多言語)
- 方法: --highlight-style オプションでスタイル指定(例: tango, pygments, breezeDark など)
- 使用例:
sh
コピーする
編集する
pandoc input.md -o output.epub --highlight-style=tango
- 対応言語: Python, JavaScript, Java, C++, Ruby など数十種類
- 補足:
EPUB内に
...
として出力され、CSSと連動。
カスタムCSSも指定可能。
- EPUB内に
...
として出力され、CSSと連動。
- カスタムCSSも指定可能。
対応: ✅ 色付きコード対応(多言語)
方法: --highlight-style オプションでスタイル指定(例: tango, pygments, breezeDark など)
使用例:
pandoc input.md -o output.epub --highlight-style=tango
対応言語: Python, JavaScript, Java, C++, Ruby など数十種類
補足:
- EPUB内に
...
として出力され、CSSと連動。
- カスタムCSSも指定可能。
EPUB内に <pre>
...</code>``</pre>
として出力され、CSSと連動。
カスタムCSSも指定可能。
- 対応: ✅ Rougeライブラリによるハイライト(Rubyベース)
- 設定: source-highlighter=rouge を使えば、コードブロックに自動的にハイライト。
- EPUB出力方法:
sh
コピーする
編集する
asciidoctor-epub3 -a source-highlighter=rouge sample.adoc
- 対応言語: 多言語対応(公式一覧: https://rouge.jneen.net/)
対応: ✅ Rougeライブラリによるハイライト(Rubyベース)
設定: source-highlighter=rouge を使えば、コードブロックに自動的にハイライト。
EPUB出力方法:
asciidoctor-epub3 -a source-highlighter=rouge sample.adoc
対応言語: 多言語対応(公式一覧: https://rouge.jneen.net/)
- 対応: ⚠️ シンタックスハイライトは 外部ツールとの連携で可能(デフォルトでは色なし)
- 補足:
review-ext.rbやテンプレートをカスタマイズすれば Pygmentsやhighlight.jsなどと連携可。
電書協準拠にするには CSS調整が必須。
EPUB出力は review-epubmaker を使用。
- review-ext.rbやテンプレートをカスタマイズすれば Pygmentsやhighlight.jsなどと連携可。
- 電書協準拠にするには CSS調整が必須。
- EPUB出力は review-epubmaker を使用。
- 上級者向け
対応: ⚠️ シンタックスハイライトは 外部ツールとの連携で可能(デフォルトでは色なし)
補足:
- review-ext.rbやテンプレートをカスタマイズすれば Pygmentsやhighlight.jsなどと連携可。
- 電書協準拠にするには CSS調整が必須。
- EPUB出力は review-epubmaker を使用。
review-ext.rbやテンプレートをカスタマイズすれば Pygmentsやhighlight.jsなどと連携可。
電書協準拠にするには CSS調整が必須。
EPUB出力は review-epubmaker を使用。
上級者向け
- 対応: ✅ Web上では自動ハイライト。EPUBエクスポートでも反映されるが、Proプラン限定機能。
- 補足:
Markdownで書くだけで色付き表示される。
ただし、Web UI中心なので開発者には不向きな場合も。
- Markdownで書くだけで色付き表示される。
- ただし、Web UI中心なので開発者には不向きな場合も。
対応: ✅ Web上では自動ハイライト。EPUBエクスポートでも反映されるが、Proプラン限定機能。
補足:
- Markdownで書くだけで色付き表示される。
- ただし、Web UI中心なので開発者には不向きな場合も。
Markdownで書くだけで色付き表示される。
ただし、Web UI中心なので開発者には不向きな場合も。
- 対応: ⚠️ HTMLでは色付き可。EPUB出力には工夫が必要。
- 補足:
mdBook自体はHTMLメイン。EPUB出力には pandoc 併用を推奨。
mdbook-pdf や mdbook-pandoc などで間接的に対応。
- mdBook自体はHTMLメイン。EPUB出力には pandoc 併用を推奨。
- mdbook-pdf や mdbook-pandoc などで間接的に対応。
対応: ⚠️ HTMLでは色付き可。EPUB出力には工夫が必要。
補足:
- mdBook自体はHTMLメイン。EPUB出力には pandoc 併用を推奨。
- mdbook-pdf や mdbook-pandoc などで間接的に対応。
mdBook自体はHTMLメイン。EPUB出力には pandoc 併用を推奨。
mdbook-pdf や mdbook-pandoc などで間接的に対応。
ツール |
状況 |
AozoraEpub3 |
❌ コード用の色付きなし(ルビや縦書きは得意) |
Scrivener |
❌ コードの色分けに非対応(装飾は可能) |
Pressbooks |
△ CSS次第で可能(標準では未対応) |
ツール |
コード色分け |
EPUB品質 |
コメント |
Pandoc |
◎ |
◎ |
一番簡単に色付きEPUBを作れる |
Asciidoctor |
◎ |
◎ |
高品質な構造とハイライト |
Re:VIEW |
△(設定次第) |
◎ |
電書協対応可能、上級者向き |
- Markdownで書いて --highlight-style を付けるだけ。
Markdownで書いて --highlight-style を付けるだけ。
技術書向けに美しく整った構造+色付きコード。
必要であれば、Pandoc でシンタックスハイライト付きの EPUB を作る Markdown サンプルとコマンド例を提供できます。やってみますか?
あなた:
node.jsで動作するものに限定して
ChatGPT:
Node.js 環境で動作し、プログラミングコードをシンタックスハイライト付きで EPUB を作成できるツールに限定すると、候補はかなり絞られます。ただし、組み合わせ(Markdown + ハイライト + EPUB変換)で構成可能です。
以下が、Node.jsベース or Node.jsで動作可能な構成です。
Markdownパーサ:markdown-it
シンタックスハイライト:highlight.js
EPUB生成:epub-gen(Node.js用EPUB出力ライブラリ)
- Markdownパーサ:markdown-it
- シンタックスハイライト:highlight.js
- EPUB生成:epub-gen(Node.js用EPUB出力ライブラリ)
- 特徴:
すべてNode.js上で完結。
コードブロックは highlight.js が HTML+スタイルを生成。
CSSを調整すれば、EPUBビューアで色付き表示可能。
- すべてNode.js上で完結。
- コードブロックは highlight.js が HTML+スタイルを生成。
- CSSを調整すれば、EPUBビューアで色付き表示可能。
- 使い方の流れ:
bash
コピーする
編集する
npm install markdown-it highlight.js epub-gen
サンプルコード(簡略版):
js
コピーする
編集する
const MarkdownIt = require('markdown-it');
const hljs = require('highlight.js');
const { Epub } = require('epub-gen');
const md = new MarkdownIt({
highlight: (str, lang) => {
if (lang && hljs.getLanguage(lang)) {
return <pre><code class="hljs ${lang}">${hljs.highlight(str, { language: lang }).value}</code></pre>
;
}
return <pre><code class="hljs">${md.utils.escapeHtml(str)}</code></pre>
;
}
});
const content = md.render(`
Sample
```javascript
console.log("Hello, EPUB!");
```
`);
new Epub({
title: "Code Highlight EPUB",
author: "Your Name",
content: [
{
title: "Chapter 1",
data: content
}
],
css:
pre { background: #f0f0f0; padding: 1em; }
code.hljs { color: #333; }
.hljs-keyword { color: #0077aa; font-weight: bold; }
.hljs-string { color: #dd1144; }
}).promise.then(() => console.log("EPUB created!"));
js
コピーする
編集する
const MarkdownIt = require('markdown-it');
const hljs = require('highlight.js');
const { Epub } = require('epub-gen');
const md = new MarkdownIt({
highlight: (str, lang) => {
if (lang && hljs.getLanguage(lang)) {
return <pre><code class="hljs ${lang}">${hljs.highlight(str, { language: lang }).value}</code></pre>
;
}
return <pre><code class="hljs">${md.utils.escapeHtml(str)}</code></pre>
;
}
});
const content = md.render(`
Sample
```javascript
console.log("Hello, EPUB!");
```
`);
new Epub({
title: "Code Highlight EPUB",
author: "Your Name",
content: [
{
title: "Chapter 1",
data: content
}
],
css:
pre { background: #f0f0f0; padding: 1em; }
code.hljs { color: #333; }
.hljs-keyword { color: #0077aa; font-weight: bold; }
.hljs-string { color: #dd1144; }
}).promise.then(() => console.log("EPUB created!"));
構成:
- Markdownパーサ:markdown-it
- シンタックスハイライト:highlight.js
- EPUB生成:epub-gen(Node.js用EPUB出力ライブラリ)
Markdownパーサ:markdown-it
シンタックスハイライト:highlight.js
EPUB生成:epub-gen(Node.js用EPUB出力ライブラリ)
特徴:
- すべてNode.js上で完結。
- コードブロックは highlight.js が HTML+スタイルを生成。
- CSSを調整すれば、EPUBビューアで色付き表示可能。
すべてNode.js上で完結。
コードブロックは highlight.js が HTML+スタイルを生成。
CSSを調整すれば、EPUBビューアで色付き表示可能。
使い方の流れ:
npm install markdown-it highlight.js epub-gen
js
コピーする
編集する
const MarkdownIt = require('markdown-it');
const hljs = require('highlight.js');
const { Epub } = require('epub-gen');
const md = new MarkdownIt({
highlight: (str, lang) => {
if (lang && hljs.getLanguage(lang)) {
return <pre><code class="hljs ${lang}">${hljs.highlight(str, { language: lang }).value}</code></pre>
;
}
return <pre><code class="hljs">${md.utils.escapeHtml(str)}</code></pre>
;
}
});
const content = md.render(`
Sample
```javascript
console.log("Hello, EPUB!");
```
`);
new Epub({
title: "Code Highlight EPUB",
author: "Your Name",
content: [
{
title: "Chapter 1",
data: content
}
],
css:
pre { background: #f0f0f0; padding: 1em; }
code.hljs { color: #333; }
.hljs-keyword { color: #0077aa; font-weight: bold; }
.hljs-string { color: #dd1144; }
}).promise.then(() => console.log("EPUB created!"));
サンプルコード(簡略版):
const MarkdownIt = require('markdown-it');
const hljs = require('highlight.js');
const { Epub } = require('epub-gen');
const md = new MarkdownIt({
highlight: (str, lang) => {
if (lang && hljs.getLanguage(lang)) {
return `<pre><code class="hljs ${lang}">${hljs.highlight(str, { language: lang }).value}</code></pre>`;
}
return `<pre><code class="hljs">${md.utils.escapeHtml(str)}</code></pre>`;
}
});
const content = md.render(`
# Sample
\`\`\`javascript
console.log("Hello, EPUB!");
\`\`\`
`);
new Epub({
title: "Code Highlight EPUB",
author: "Your Name",
content: [
{
title: "Chapter 1",
data: content
}
],
css: `
pre { background: #f0f0f0; padding: 1em; }
code.hljs { color: #333; }
.hljs-keyword { color: #0077aa; font-weight: bold; }
.hljs-string { color: #dd1144; }
`
}).promise.then(() => console.log("EPUB created!"));
Node.jsでMarkdownからEPUBを生成。
highlight.js を組み込んだテンプレートを使えば色付き可能。
- Node.jsでMarkdownからEPUBを生成。
- highlight.js を組み込んだテンプレートを使えば色付き可能。
- URL: https://www.npmjs.com/package/md-to-epub
- 備考:
内部的にはHTML変換後、epub-genなどと同様の仕組み。
- 内部的にはHTML変換後、epub-genなどと同様の仕組み。
特徴:
- Node.jsでMarkdownからEPUBを生成。
- highlight.js を組み込んだテンプレートを使えば色付き可能。
Node.jsでMarkdownからEPUBを生成。
highlight.js を組み込んだテンプレートを使えば色付き可能。
URL: https://www.npmjs.com/package/md-to-epub
備考:
- 内部的にはHTML変換後、epub-genなどと同様の仕組み。
内部的にはHTML変換後、epub-genなどと同様の仕組み。
ツール名 |
状況 |
Pandoc |
❌ Haskell製。Node.js不可 |
AsciiDoctor |
❌ Ruby製(Node.jsで動かせない) |
Re:VIEW |
❌ Ruby製 |
方法・ツール名 |
コードハイライト |
EPUB品質 |
備考 |
markdown-it + highlight.js + epub-gen |
◎ |
○ |
自由度が高く、Node.js完結 |
md-to-epub |
△(テンプレート次第) |
○ |
手軽にMarkdown → EPUB |
- 上記構成で使える テンプレート、CSS例、コマンドライン化スクリプト も提供できます。
- highlight.js のテーマ適用や、目次・カバー画像などの追加にも対応可能です。
上記構成で使える テンプレート、CSS例、コマンドライン化スクリプト も提供できます。
highlight.js のテーマ適用や、目次・カバー画像などの追加にも対応可能です。
ご希望があれば、フルサンプルのプロジェクト構成を提示しますか?
あなた:
HonKitでのEPUB作成手順
ChatGPT:
HonKit(旧 GitBook v3 互換のオープンソースクローン)を使って、コードハイライト付きのEPUBを作成する手順は以下の通りです。
- GitBook v3 ベースの Node.js 製ドキュメントツール。
- Markdown で記述 → HTML / EPUB / PDF / MOBI を生成。
- highlight.js によるシンタックスハイライトがデフォルトで有効。
- EPUB 生成は honkit epub コマンドで可能。
GitBook v3 ベースの Node.js 製ドキュメントツール。
Markdown で記述 → HTML / EPUB / PDF / MOBI を生成。
highlight.js によるシンタックスハイライトがデフォルトで有効。
EPUB 生成は honkit epub コマンドで可能。
npm install -g honkit
npx での実行も可能ですが、グローバルインストールが楽です。
mkdir mybook
cd mybook
honkit init
css
コピーする
編集する
.
├── README.md ← 表紙・前書きに相当
└── SUMMARY.md ← 目次定義ファイル(章構成)
これで以下のファイルが生成されます:
.
├── README.md ← 表紙・前書きに相当
└── SUMMARY.md ← 目次定義ファイル(章構成)
例:chapter1.md を追加
# chapter1.md
## サンプルコード
function hello() {
console.log("Hello, EPUB!");
}
# SUMMARY.md
* [はじめに](README.md)
* [第1章: サンプルコード](chapter1.md)
honkit epub ./ ./output.epub
- ./:ソースディレクトリ
- ./output.epub:出力ファイル
./:ソースディレクトリ
./output.epub:出力ファイル
- output.epub が生成されます。
- EPUBビューワ(例:Thorium Reader や Calibre)で確認可能。
output.epub が生成されます。
EPUBビューワ(例:Thorium Reader や Calibre)で確認可能。
HonKitは内部的に highlight.js を使用しているため、デフォルトでコードに色が付きます。
変更したい場合は book.json にテーマを指定するか、カスタムCSSを追加します。
例:book.json でカスタムCSSを指定する
{
"styles": {
"website": "styles/website.css",
"epub": "styles/epub.css"
}
}
styles/epub.css を作成して pre, .hljs-keyword, .hljs-string などを定義すればOK。
項目 |
内容 |
入力形式 |
Markdown(GitBookスタイル) |
EPUB出力 |
honkit epub |
コード色付け |
デフォルトで highlight.js 対応 |
カスタマイズ |
book.json と CSSで可能 |
OS対応 |
Node.jsが動作すればOK(Win/Mac/Linux) |
- テンプレート付きのスターターZip
- カバー画像付きEPUBの作り方
- GitHub Actionsでの自動EPUB化
テンプレート付きのスターターZip
カバー画像付きEPUBの作り方
GitHub Actionsでの自動EPUB化
…なども案内できます。必要ですか?
[blog:g:11696248318754550880:banner]