Pythonの日本語版HTMLヘルプ再構築
仕事で使うツールはやっぱり何かと Python で書くのがよさげなので、ようやく勉強を始めようとしたら、日本語ドキュメントが見れずに困っていた件。
Pythonドキュメント日本語翻訳プロジェクトさんのpython-doc-2.7ja1-b.chmというファイルを開こうとしたら、 copybutton.js というスクリプトでエラーしたよというダイアログが表示されます。最初に一度だけならまだしも、サンプルコードを含むページで必ず表示されるらしく読む気になれません。既知の問題のようですが、まだ対策されてないみたい。
こちらの方のようにドキュメントソースから再構築するのがスジだと思いますが、色々揃えるのが面倒だったので小手先で対策してみたメモ。(結果、結構面倒だったような?笑)
やった手順は:
- 件のchmをデコンパイル
- 問題の
copybutton.jsを無効に - インデックスファイル(*.hhk)ファイルのリンクを修正
- chmの再コンパイル
chmファイルのデコンパイルは、Windowsに最初から(?)入っているhh.exeを使うかHTML Help Workshopを使って。hh.exeのコマンドラインは下記。HTML Help Workshop (hhw.exe)はメニューから。
hh.exe -decompile output-folder chm-file
copybutton.jsの無効化は、全てのhtmlを修正するのは骨が折れるので、copybutton.jsを空のファイルにしただけ。
インデックスファイルの修正は、ざっと眺めてテキトーに、Emacsで以下のような正規表現による置換をしてみた。置換後、問題のない英語版のchmのインデックスファイルと比べてパッと見、大丈夫ぽい(笑)。
="\(\[[0-9]+\] \)*('[^']*', [^']*'\(.+\)')" →
="\1\2"
後は、上記プロジェクトのページにあるhtmlhelp.pyのソースを参考に、HTML Help Workshopのプロジェクトファイル(*.hhp)とFull text search stop list file(*.stp)を作成して、chmファイルを再コンパイル。使用したhhpファイルの例は下記。フォントはお好みで。stpファイルの中身は、htmlhelp.pyに定義されているstopwordsの中身の単語をソートして1行毎に並べたモノ。
[OPTIONS]
Binary Index=No
Compatibility=1.1 or later
Compiled file=python-doc-2.7ja1-b.chm
Contents file=python-doc-2.7ja1-b.hhc
Default Font=VL Pゴシック,10,128
Default Window=python-doc-2.7ja1-b
Default topic=index.html
Display compile progress=No
Full text search stop list file=python-doc-2.7ja1-b.stp
Full-text search=Yes
Index file=python-doc-2.7ja1-b.hhk
Language=0x411 Japanese (Japan)
Title=Python 2.7ja1 documentation
[WINDOWS]
python-doc-2.7ja1-b="Python 2.7ja1 documentation","python-doc-2.7ja1-b.hhc","python-doc-2.7ja1-b.hhk","index.html","index.html",,,,,0x63520,220,0x10384e,[0,0,1024,768],,,,,,,0
[FILES]
index.html
[INFOTYPES]
できたchmを開くとこちらのページにあるような文字化けに悩まされて暫くハマったけど、自分の場合はIEのエンコーディング(Encoding)の設定を自動選択(Auto-Select)にしたら直りました。
これでいいのかな?(笑)。取り敢えず、今のところは問題なく使えてそう :-)
2013/03/08 追記: インデックスファイル置換の正規表現を一部修正。(まだ開けないリンクがあったので)
| 固定リンク
| コメント (0)
| トラックバック (0)


最近のコメント