このエントリーをはてなブックマークに追加

Sphinx mobi builder

Sphinx Advent Calendar 2012の一日目です。

昨年は技評さんがいろいろなアドベントカレンダーをePub化してくれました参考

SphinxはePub builderが標準で付いてきますので、ePubに簡単に出来ます。

ただし、sphinx-quickstartを実行した時に、ePubを作るかと聞かれるのに、yを答えてください。

> Do you want to use the epub builder (y/N) [n]: y

そうしておけば、 make epub と打つだけでepubにしてくれます。

mobi

話は変わりますが、ついに Kindle が日本でも発売されましたね。しかし、KindleはそのままではePubは読み込めません。

というわけで、 mobi builderというのがあります。

実装は今のところたぶん二つあります。

  1. mobi-builder
  2. kindlebuilder

1つめは最近更新されました。でも、読むと分かるのですがこれはePubにちょっと手なおしたものを吐き出して、kindlegenで変換するという形式のようです。

2つめは某前会長作です。こっちはmobi形式のheaderや圧縮方式であるpalmdocまでpythonで実装されているという本格派です。さすがです。

ということで、後者のほうを使ってみましょう。

kindlebuilder

まずはレポジトリからcloneします。

% cd ~/Works/
% hg clone https://bitbucket.org/shibu/kindlebuilder

あとは、conf.pyを以下のように書き換えるだけです。

sys.path.insert(0, os.path.abspath('/home/r_rudi/Works/kindlebuilder/'))
extensions = ['kindlebuilder']

あとはこう打ちます。

% sphinx-build -b kindle -d _build/doctrees   . _build/kindle

ずらずらと出てきたあとで、 _build/kindle/以下に default.azw というファイルができますので、あとはこれをkindleに送ればOKです。

OKです…

あ、あれ…

kindleに送ってもリストに出てきませんね…

しょうがない

kindlegenを使うことにします。

  1. ここからkindlegenをダウンロード
  2. make epub
  3. kindlegen hoge.epub

これで、 hoge.mobi ファイルが生成されます。さすが謹製だけあってほぼ完璧です。

../../../_images/mobi_sphinx.png

最初っからこっち使えばいいじゃん、と言うのは却下です。

一応

がんばってkindle previewerで表示できるようにはしました。正確には、mobi header内ではtitleが32byteとなってるんですが、長い場合はそのまま32byte以上になってた、という問題で32byteで切るようにしただけです。

https://bitbucket.org/r_rudi/kindlebuilder

でも、Kindle paperwhiteに送ってもだめなんですよねぇ…

しょっぱなから中途半端で大変申し訳ないのですが、ゆるふわということで許してください。

次は @ymotongpoo 先生です。先生、お願いします!