EagleLand

gitbook で Markdown から PDF を生成する

Published at 2018-05-13

技術書典5 への参加を目指して、執筆環境をセットアップしたのでそのメモ。今回は GitBook を使って Markdown から PDF を生成する。選択肢としては更に高機能な Re:VIEW もあるが、筆が進みやすいようにとりあえず使い慣れている Markdown を選んだ。足りない機能があったり余力があれば、Re:VIEW のセットアップもしてみるつもり。

プロジェクトの作成

プロジェクトのフォルダに移動したあと、gitbook の npm モジュールをプロジェクトローカルにインストールする。インストールすると gitbook コマンドが使えるようになるので、プロジェクトを初期化する。

$ npm init
$ npm install --save-dev gitbook-cli
$ ./node_modules/.bin/gitbook init .

warn: no summary file in this book
info: create README.md
info: create SUMMARY.md
info: initialization is finished

すると、 README.mdSUMMARY.md が作成される。あとは原稿を Markdown 形式で用意し SUMMARY.md から参照していくだけで良い。 README.md は特別なファイルで SUMMARY.md から参照しなくても自動で挿入される。

# Summary

- [Foo](foo.md)
- [Bar](docs/bar.md)
...

HTML と PDF の生成

gitbook build で静的な HTML ファイルが _book フォルダ配下に生成される。gitbook serve で生成される HTML を localhost:4000 にホストしつつ、原稿の変更を検知してライブリロードしてくれる。

gitbook pdf で静的な PDF ファイル book.pdf が生成される。PDF の生成には Calibre が必要なので brew cask install Calibre でインストールしておく。

それぞれ、npm run から実行できるように、package.json に以下を記述しておく。

{
  "scripts": {
    "build": "gitbook build",
    "pdf": "gitbook pdf",
    "dev": "gitbook serve"
  }
}

表紙の挿入

プロジェクトルートに以下の2ファイルを配置すると、自動で挿入される。

タイトルと URL をコピーしました