読者です 読者をやめる 読者になる 読者になる

SphinxでWord(docx)文書を出力してみた

自分はあまり、Office製品が好きではありません。
(Office365契約しているけど。。。)

便利なのですよ。便利なのだけど、お節介が過ぎるところがあるので。MSのOffice製品は。
そこで今回は依然から気になっていたSphinxを使ってみることにしました。
特に、Sphinxからdocxを吐き出せないかと試していたのですが、はまりポイントがあったのでご紹介。

環境は以下の通り。

Python 2.7 (32bit)
Sphinx 1.3.5

sphinx-docxbuilder(コミット 83a8d13 2012-06-05)
 haraisao / sphinx-docxbuilder — Bitbucket


Sphinxでdocxを出力する際に利用するモジュールは、
sphinx-docxbuilder」というものを利用しているのですが、
見ての通り、更新日が4年前になります。

自分の環境では、コンパイル中にエラーが出力されました。

    tree = inline_all_toctrees(self, set(), master, tree, darkgreen)
  TypeError: inline_all_toctrees() takes exactly 6 arguments (5 given)

明らかに関数の型がおかしいとのことで、
ちょっと調べてみると、Sphinxが提供している
「inline_all_toctrees」関数の型が変更されているのが原因に見えます。


取り急ぎ、下記のように変更すればコンパイルは通ります。

sphinx-docbuilder/builder.py 60行目

・Before

        tree = inline_all_toctrees(self, set(), master, tree, darkgreen)

・After

        tree = inline_all_toctrees(self, set(), master, tree, darkgreen, [])

参考:
futurismo.biz