プログラマ行進曲第二章

主にソフトウェア関連の技術をネタにした記事を執筆するためのブログ

Sphinx+翻訳 Hack-a-thon 2014.1でEpub3ビルダーの実装の続きをしてました #sphinxjp

Sphinx+翻訳 Hack-a-thon 2014.1/Sphinxハンズオン

かなり久しぶりに参加してきました。と思って調べてみたら、昨年の10月に参加していたようです。記憶は当てになりませんね。

やったこと

SphinxのEpub3ビルダー実装しようと悪戦苦闘してました。

最初に言っておきますが、Epub3ビルダーといっても、まず形式をEpub3形式にする最初の段階のものなので、これができあがったからといってすぐに縦書きだとかルビ使えるとか思わない方がいいですよ。

Epub3ビルダー、これまで躓いていたのは目次に当たるナビゲーションドキュメントの生成だったのですが、ここにきてようやく形になりつつあります。

下のスクリーンショットはMacアプリのMurasakiで開いたPython3.3のepub2ドキュメントです。目次の階層構造が複雑であるという点でテストに適しているので、Python3.3日本語ドキュメントのリポジトリをテストに使用させてもらってます。

次が今作っているEpub3ビルダーで生成したPython3.3のepub3ドキュメントです。

左メニューに表示された目次はまだ階層構造を表現できていないですが、単なるページ内での目次ならちゃんとepub2のものを写し取れるようになってきています。

…が、はっきりいってコピペ&場当たり的なコードで作っているので、現状では下のようにiBooksとか他のリーディングシステムだとinvalidだと警告が出ます*1

epub2の方だとこんな感じ。

結構長い間手を付けていなかったのでそろそろ作業再開して、いい加減報告できるような形にしたいと思ってます。

今日のハッカソンでepub2の方を生成するときの動きをデバッガ使って結構調べられたので、epub3の場合はどうするか考えながら作業進めたいですね。

*1:別にiBooksがEpubリーディングシステムとして優れているというわけではないと思いますがね。