PHPのchm形式ヘルプファイルの作成方法

| | コメント(0) | トラックバック(2)

PHPのコンパイル済み HTML ヘルプ ファイル(chm)形式のヘルプファイル(日本語版)が色々おかしかったりします。

バグレポートもあがっているけど、なかなか直らないっぽい。

・PHP Bugs: #27604: The language of the manual of the CHM version is wrong.
http://bugs.php.net/bug.php?id=27604
日本語以外(中国語とか色々?)がダウンロードされてしまう。
2004/04/19現在、修正された模様。

・PHP Bugs: #26616: garbled keyword lists on chm file of Manual
http://bugs.php.net/bug.php?id=27604
「キーワード」タブで一覧を表示すると日本語がおかしい。
「検索」タブで日本語をキーワードに検索できないのも同じ原因かな?

[PHP-users]のメーリングリストでも話題になっていました。

あー、[PHP-doc]でも色々動いてたんですね。

Derickさんという方が自分のマシンでヘルプファイルを作成してるそうで、環境の問題が大きいのかもしれません。
それに、作成した後の確認もできないし(言葉的に)。

ということで、とりあえず自分で作成してみます。
上記2つの問題は回避できている模様。
# 特に何もしてないんだけど。(やっぱり環境の問題かな?)

HTML Help Workshopをインストールする

まず、chm形式のヘルプを作成するソフトをインストールします。

・HTML Help Workshop and Documentation
http://www.microsoft.com/downloads/details.aspx?FamilyID=00535334-c8a6-452f-9aa0-d597d16580cc&DisplayLang=en

「HTML Help Workshop (htmlhelp.exe)」をダウンロード、インストールします。
今回は「C:\Program Files\HTML Help Workshop」にインストールしました。

「HTML Help Workshopの日本語版ヘルプ(Htmlhelpj.exe)」がダウンロードできますが、今回やる範囲ではなくても(多分)大丈夫。

PHPのHTMLヘルプファイルの入手

原本となるHTMLのヘルプファイルを入手します。
入手方法は『「PHP: Download documentation」のサイトからダウンロードする方法』と『HTMLマニュアルを自分でビルドする方法』があります。

今回は「PHP: Download documentation」のサイトからダウンロードしました。

・PHP: Download documentation
http://www.php.net/download-docs.php
http://jp.php.net/download-docs.php

「tar.gz」形式のファイルをダウンロードします。

今回は「Date: 15 Apr 2004」に作成された「php_manual_ja.tar.gz」(Size: 2114Kb)をダウンロードし、「C:\php_manual_ja\」に解凍/展開しました。

「.chm manual生成ファイル」の入手

「cvs.php.net」から「.chm manual生成ファイル」を入手します。

# もちろんCVSを使える環境を整えてから
C:\cvsdata> cvs -d :pserver:cvsread@cvs.php.net:/repository checkout phpdoc-ja

「C:\cvsdata\phpdoc-ja\」にチェックアウトされます。
「C:\cvsdata\phpdoc-ja\chm\」以下が必要です。
CVSで指定レポジトリ内の指定ディレクトリだけチェックアウトする方法ってあったっけ?

・CVS :: PHP CVS Repository
http://cvs.php.net/
レポジトリの状態を表示できます、、、と思ったんですが、チェックアウトしたものと同一ではないみたい?
なんででしょう?そういうものなのかな?

chm形式ヘルプファイルの作成

「C:\cvsdata\phpdoc-ja\chm\make_chm.README」を読みます。

CVSでチェックアウトしてきた中に「make_chm_index_ja.html」が見つかりませんでした。
http://cvs.php.net/cvs.php/phpdoc-ja/make_chm_index_ja.html」から「C:\cvsdata\phpdoc-ja\chm\」にリビジョン1.6をダウンロードしました。
# (動作的にではなく)問題あるでしょうか?

「C:\cvsdata\phpdoc-ja\chm\make_chm.bat」の変数設定部分を編集します。

REM 「make_chm.bat」の変数設定部分
 
rem CGI版PHPへのパス
set PHP_PATH=C:\php\php.exe
 
rem コマンドライン版 HTML Help コンパイラへのパス
set PHP_HELP_COMPILER="C:\Program Files\HTML Help Workshop\hhc.exe"
 
rem コンパイルするマニュアルの言語
set PHP_HELP_COMPILE_LANG=ja
 
rem The source directory with the original DSSSL made HTML
set PHP_HELP_COMPILE_DIR=C:\php_manual_ja
 
rem The directory, where the fancy files need to be copied
set PHP_HELP_COMPILE_FANCYDIR=fancy

「C:\cvsdata\phpdoc-ja\chm\make_chm_fancy.php」を手直しします。
# 私のディレクトリ構造がいけないのかもしれないけどうまく動かなかったので修正しました。

# 「make_chm_fancy.php」の58行目付近
copy("chm/make_chm_style.css", "$FANCY_PATH/style.css");
copy("chm/make_chm_spc.gif", "$FANCY_PATH/spacer.gif");
↓
# このように修正
copy("make_chm_style.css", "$FANCY_PATH/style.css");
copy("make_chm_spc.gif", "$FANCY_PATH/spacer.gif");

「fancy」モードでchm形式ヘルプファイルを作成します。

C:\> cd \cvsdata\phpdoc-ja\chm
C:\cvsdata\phpdoc-ja\chm> make_chm.bat

暫くすると(10分くらい?)「C:\cvsdata\phpdoc-ja\chm\php_manual_ja.chm」が作成されます。

うまくいかないときは「C:\cvsdata\phpdoc-ja\chm\php_error.log」を見ると何かわかるかもしれません。

# 今でも以下のエラー (Notice) が出たままなのは内緒です :-)。

[19-Apr-2004 23:12:00] PHP Notice:  Undefined variable:  aa1 in C:\cvsdata\phpdoc-ja\chm\common.php(26) : regexp code on line 3
[19-Apr-2004 23:12:01] PHP Notice:  Undefined offset:  2 in C:\cvsdata\phpdoc-ja\chm\make_chm_fancy.php on line 123

公開について

メーリングリストを見る範囲では困ってる人もいるようですし、せっかく作ったので公開しようかと思ったんですが、、、。
ヘルプ内の「付録 P. オープン・パブリケーション・ライセンス」の項を見てるとしていいのか分かりませんでした。
回線やサーバも貧弱だし(どこかの無料サーバに置く方法もあるけど)、メンテ(バージョンアップや不具合修正)の保証もできませんし。
[PHP-doc]のメーリングリスト内でビルドされてる方もいるので、私の様な門外漢は手を出さないほうが良いかもしれませんし。

という事で、とりあえず、今回はなし。

リンク

・PHP Documentation HOWTO
http://www.php.net/manual/howto/
http://jp.php.net/manual/howto/
CVSで取得したファイルを元にhtmlファイルを作成したり、bightmlやpdf、rtfの形式にしたい時は、参照するとよさ気。

・cvs.php.net/co.php/phpdoc/chm/chm_settings.php
http://cvs.php.net/co.php/phpdoc/chm/chm_settings.php
4行目あたりから書かれてるコメントのURLを覗くと、色々な文字コードの定義がどうなってるかわかるっぽい。
マニュアルを作成するに当たっては、直接は関係ありません。

(2005/07/06 追記 ここから)
・[PHP-users 25780] chm版マニュアル(Windowsヘルプファイル)の作り方
http://ns1.php.gr.jp/pipermail/php-users/2005-June/026297.html
PHPのMLで作り方が紹介されていました。
(2005/07/06 追記 ここまで)

(2007/11/12 追記 ここから)
・Nabble - [PHP-users 32725] Re: Windows HELP file
http://www.nabble.com/-PHP-users-32725--Re%3A-Windows-HELP-file-p13187053.html
によると、原本となるHTMLのヘルプファイルをダウンロードしなくても、既存のchmファイルをKeyToolsでDecompileしても良いらしい。

KeyToolsでDecompileして、HTML Help WorkshopでCompileし直せば 文字化けを解消したファイルが作れます。

KeyTools
http://www.keyworks.net/keytools.htm
HTML Help Workshop
http://msdn2.microsoft.com/en-us/library/ms669985.aspx
[PHP-users 32725] Re: Windows HELP file
(2007/11/12 追記 ここまで)

トラックバック(2)

このブログ記事を参照しているブログ一覧: PHPのchm形式ヘルプファイルの作成方法

このブログ記事に対するトラックバックURL: http://kinshachi.ddo.jp/mt/mt-tb.cgi/270

» PHPのchm形式ヘルプファイルの作成方法(Rurute::Blog)~のトラックバック

さすがに今使ってるのが古くなってきたので、新しいのを探してみたんだけど、予想通り見つからなかった。 ikeさんが作り方を説明されていたので、自分で作ってみようかな。 続きを読む

» ブックマーク(PukiWiki/TrackBack 0.2)~のトラックバック

ブックマーク † XULアプリケーション作成入門 -- 2005-03-01 15:05:05 (火) rss-jp.net -- 2005-03-02 01:41:23 (水) Firefox Extension Tab Mix -- 2005-03-02 01:55:43 (水) Life, Starting Anew - Jay, from taiwan, that simple. -- 2005-03-02 ... 続きを読む

コメントする


画像の中に見える文字を入力してください。

このブログ記事について

このページは、ikeが2004年4月20日 01:03に書いたブログ記事です。

ひとつ前のブログ記事は「ブックマークレット」です。

次のブログ記事は「パーソナルファイヤーウォールを入れた時の速度比較」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

最近のコメント

Powered by Movable Type 4.261