gae アプリ 開発メモ

Google App Engine アプリの開発メモ / 言語: python, javascript / ビギナー

python 2.7の日本語ヘルプを構築する

ウチの環境(Windows 7 SP1 x64)では、Pythonドキュメント日本語翻訳プロジェクトで配布されている htmlhelp(.chm) はエラーが表示されて正常に動作しない。
なので、ドキュメントソースから構築してみた。
以下、手順。

準備

  1. sphinxが必要。
  2. Mercurialが必要。
  3. 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 が作成される。

エラーなく完了すれば、これで作業はおしまい。