プログラマ行進曲第二章

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

以前から取り組んでいたSphinxのEPUB 3 ビルダー追加のプルリクエストがマージされ、v1.4から使えるようになりました

三行まとめ

  • 以前からやっていた「SphinxにEPUB 3 ビルダーを追加する」プルリクエストがmasterブランチにマージされ、バージョン1.4からその機能が使えるようになりました。
  • EPUB3形式のepubが出力できると書きましたが、様々な理由により、validなepub3は現状出力できません。
  • 意外と貢献できるところがあるかもしれないので、(Sphinxに限らず)みんな有名OSSにプルリクしてみるといいのでは?と思いました。

経緯

最近はあまり時間が取れていなくて動向を追えてないですが、割と電子書籍界隈に前から興味があって、その繋がりでEPUB 3についても独学でちょこちょこ勉強していたという背景があります。

そして、私がWeb系ITエンジニア向けの勉強会とかに顔を出すようになったきっかけであるSphinxというドキュメンテーションツールはEPUBの出力機能があるのですが、これがEPUB 2相当のEPUBしか出力できない状態で、誰もEPUB 3を出力できるようにしてなさそうだったので、取り組み始めたという流れではじめた(と思います)。

時期に関しては忘れましたが、このブログを検索してみた限り、2014年以前から取り組んではいたようです

takuan-osho.hatenablog.com

色々EPUB 3の仕様を調べながらやっていましたが、モチベーションが続かなかったり、力不足で色々解決できないなあと思っていたところが多くて、手を付け始めてから実際に取り込まれるまでこれだけ時間がかかってしまったなというところです。

プルリクエストの内容はこれですね。

github.com

できるようになったことと今後の課題

EPUB 3形式のファイルを出力できるようになりました。やり方書こうと思ったんですが、それ書こうとしていて2週間くらい記事のアップが遅れているので、今回は省略します。(また別途書くかも)

epub3 って名前のビルダーを追加してそれを使うので、自動生成されたMakefileをそのまま使っているなら make epub3 で生成できるかと思います。多分。

ただ、最初にも書いたように、以下のような理由があり、epubcheckによる検査を通るvalidな形式のepub3ファイルは現状生成できません。

  • Sphinxが依存しているdocutilsがHTML5形式のHTMLを生成できない
  • EPUB 3で変わった部分の(初期)実装は現状私一人が手がけたため、私のEPUB 3の理解が疎かだったりする部分やそもそも実装が追いついていない部分がある

ビルダーのドキュメントにも書いたのですが、このEPUB 3 ビルダーは現状experimentalなので、使用するならそのことを理解した上で使用するといいと思います。

感想

Sphinxのcontributorとして名前が載ったの、割とうれしいですね。