python 2.7の日本語ヘルプを構築する
ウチの環境(Windows 7 SP1 x64)では、Pythonドキュメント日本語翻訳プロジェクトで配布されている htmlhelp(.chm) はエラーが表示されて正常に動作しない。
なので、ドキュメントソースから構築してみた。
以下、手順。
準備
- sphinxが必要。
- Mercurialが必要。
- HTML Help Workshopが必要。
python-doc-ja からソースを取得する
hg clone https://code.google.com/p/python-doc-ja/
でカレントディレクトリに python-doc-ja が作成され、ドキュメントソースがダウンロードされる。
ドキュメント作成に必要なユーティリティを取得する
cd python-doc-ja
で python-doc-ja に入り、
make checkout
を実行すると必要なユーティリティが python-doc-ja\tools にダウンロードされる。
設定を変更する
ヘルプファイルの表示で出るエラーを回避する
既存のヘルプファイルは copybutton.js を実行しようとしてエラーが発生する。
ヘルプファイルではあまり意味がないので、copybutton.js を読み込まないように変更する。
python-doc-ja\tools\sphinxext\layout.html
の {% block extrahead %} ブロックを以下のように変更する。
{% block extrahead %} <link rel="shortcut icon" type="image/png" href="{{ pathto('_static/py.png', 1) }}" /> {% if not embedded %} <script type="text/javascript" src="{{ pathto('_static/copybutton.js', 1) }}"></script> <script type="text/javascript" src="{{ pathto('_static/_jp.js', 1) }}"></script> {% endif %} {{ super() }} {% endblock %}
インデックスからの表示が失敗するエラーを回避する
インデックスからページを選択すると、ページがないという表示になる。
.hhk ファイル生成の問題を修正する。
python-doc-ja\tools\sphinx\sphinx\builders\htmlhelp.py
を変更する。
268~270 行目
elif len(refs) == 1: write_param('Local', refs[0]) else:
を
elif len(refs) == 1: # modify begin # write_param('Local', refs[0]) # modify change ref = refs[0] if isinstance(ref, tuple): ref = ref[1] write_param('Local', ref) # modify end else:
271 ~ 274 行目
for i, ref in enumerate(refs): # XXX: better title? write_param('Name', '[%d] %s' % (i, ref)) write_param('Local', ref)
を
for i, ref in enumerate(refs): # XXX: better title? # add begin if isinstance(ref, tuple): ref = ref[1] # add end write_param('Name', '[%d] %s' % (i, ref)) write_param('Local', ref)
htmlhelp を作成する
コマンドプロンプトから
make htmlhelp
を実行する。
しばらくすると、
python-doc-ja\build\htmlhelp
に python27ja1.chm が作成される。
エラーなく完了すれば、これで作業はおしまい。