AsciiDocを使ってKindle形式の文書を作るには

AsciiDocを使ってKindleで読める技術メモや文書を書きたいと考えています。AsciiDocは軽量なマークアップ言語です。テキストをAsciiDocの記法で原稿を書けば、asciidocコマンドやa2xコマンドを使って、html, docbook, epub, pdfなどのフォーマットに変換することができます(AsciiDocのインストール方法はこちら)。

AsciiDocのシンタクスは簡単です。以下の例は、タイトル、章、節などの文書構造を指定した簡単なメモの例です。AsciiDocのマークアップ記法の詳細はAsciiDoc User Guideを見てください。

= 文書タイトル

== 章

=== 節

これはサンプルです。

* 項目1
* 項目2
* 項目3

AsciiDocでもかなりボリュームのある本格的な文書を書くことができます。実際、CDI 1.1 仕様書(src)やJBossAS Ticket Monster Tutorial(src)は、100~200ページのPDF文書の原稿がAsciiDocで書かれています。この例を見ればわかるように、表紙や目次も生成されますし、ヘッダーやフッター、脚注にも対応しています。シンタクスカラーリングに対応したJavaソースコードの引用もできます。ちょっとした技術メモを書くには十分な機能です。

AsciiDocでKindle形式の文書を作る動機は、Kindleで読める文書をテキスト形式で簡単に書きたいということです。Kindleの文書であれば、スマホタブレットでいつでも読むことができますので、技術メモをKindle文書にしておけば必要なときにいつでも読み直すことができます。それに、Kindleを使えば文書にハイライトやノートをつけることもできます。原稿の校正にKindleはうってつけです。表現を変えた方がよいところや誤記を見つけたらすかさずハイライトをしておけば、後で修正箇所をすぐに見直すことができます。

残念ながらAsciiDocのコマンドはKindle形式(mobi)の出力に対応していません。そこで、AsciiDocの文書からKindle形式の文書を作るのに、まずa2xコマンドによってAsciiDocからepubファイルを生成して、次にkindlegenコマンドでepubからmobiファイルを生成するという2段階で行ないます(ここではepubは中間のファイルとして使っています)。たとえば、mydoc.asciidocからmydoc.mobiを生成するには次のようにします。

$ a2x -f epub --verbose mydoc.asciidoc
$ kindlegen mydoc.epub

mydoc.mobiファイルができたら、このファイルをUSBまたはメールKindleに送り込みます。こうやってKindleに入れた文書を表示したのが下のイメージです。

今日はここまで。