CodeIgniter3.0がリリースされたものの、日本語版ユーザーガイドがまだ翻訳しきれていないようなので、読むついでに訳そうかなと。
適当に環境構築
Pythonは以前3.4を入れたんですが、Sphinx入れてないので用意します。ユーザーガイドのREADMEには次のような手順が載っているのですが・・・。
easy_install "sphinx==1.2.3" easy_install sphinxcontrib-phpdomain
「今時はpip使えばいいと思うよ」なんて噂を耳にしたのでそっちを探ります。というか、Sphinxのサイトにはpip使えって書いてありますね。
pip が実行できないなーと思ったら Python34\Scripts
にPATH通ってなかったという。
バージョン指定なしでSphinx1.3.1が入ったけど、まあたぶん大丈夫でしょう。
あとは専用のPigments Lexerをインストール。 cilexer/
に入って setup.py install
するだけ。さてHTMLをビルドしてみましょう。
R:\ci_user_guide_src>make html 'make' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。
・・・どうしようかなーと思いながら cinst make
したら入ったのでよしとします。
大人しくPython2使うことをお勧めします
R:\ci_user_guide_src>make html Exception occurred: File "E:\Applications\Python34\lib\site-packages\sphinxcontrib\phpdomain.py", line 457, in generate modules = sorted(self.domain.data['namespaces'].iteritems(), AttributeError: 'dict' object has no attribute 'iteritems'
Python3の辞書オブジェクトでは、Python2にあった .items()
が消え、 .iteritems()
が .items()
という名前になったらしいです。すごい破壊的変更ですね。
Pythonのitems()とiteritems()の違い - 真面目に、強く、上品に
sphinx-contribのリポジトリにもIssueが挙がっているものの放置されていました。
birkenfeld / sphinx-contrib / issues / #86 - domaintools and Python 3 — Bitbucket
PullReq送ろうかと思ったものの、Mercurial用意するのが面倒だったのでモンキーパッチで済ませることにしました。当該ファイルの iteritems
を items
に置き換えるだけ。少なくともCIドキュメントのビルドは通ったのでよしとします(えー。
追記:と思ったものの、language = 'ja'
とか指定してみたらこけた。Python2の .items()
も使っていたようなので、2to3に合わせてとりあえず list(hogehoge.items())
とすることにした。