結構悩んでしまったので共有としてメモ
+やったことを記録しておきます。
html上ではCSSでのbackground-imageで画像が表示されているのに、
ヘルプファイル(chm)にすると画像が表示されてないという現象が起こりました。
その、その解決案です。
ヘルプのプロジェクトファイルであるhhpファイル内の
[FILE]以下に記述する
htmlファイルのアドレス同様に
画像のアドレスを記述しておけばOK。
(hhpからの相対パスで¥区切りのもの)
これで画像が表示されるようになります。
判明するまでに結構悩みましたw
(※以下は個人的なことです。)
最近はオンラインヘルプが主流になりましたが、
とある目的でWordpressにて作成しているオンラインヘルプの記事を
ヘルプファイル(chmファイル)にするという事案がありました。
その、オンラインヘルプはWordpressにて作成されていたのですが、
Wordpressは動的作成(読み込み時にページを作成)する
ブログツールであり、実際にhtmlファイルがサーバー上にある訳ではありません。
そのため、プラグインにてサーバー上に静的ファイル(html)を
作成するプラグインを作成して対応しました。
(探したところ静的キャッシュ化するプラグインは有ったのですが、
html化するのは見つけきれなかったので自作することに。)
※あらゆる環境で使用する想定で作成したわけではない為公開はしません。
ただ、同様の事を考えている方のヒントになればと思い手順だけは載せておきます。
(質問して下されば、わかる範囲でお答えいたします。)
以下、その手順です。
まずヘッダー部分、フッター部分、サイドメニュー部分などヘルプファイルとしては
要らないものが多かったので、別途テンプレートを用意しました。
ほぼ、記事本文の部分だけの表示になるテンプレートを作成。
※↓これ大事
header.phpで記述しているcharsetが最初からShift_JISならば問題ないのですが、
utf8の場合はテンプレート上でcharsetを「Shift_JIS」に固定しておいた方が良いです。
次に作成したプラグインを利用してhtmlファイルをサーバーに出力。
肝心のプラグインの動きは
- httpアクセスして記事をバッファとして取得。
- 記事内に記述しているURLに「.html」を付加。
(すでに拡張子があるものは除外) - 記事内に記述しているURLを相対パスに変換。
- テンプレートパス、アップロードパスを特定の相対パスに変換。
- 文字コードをシフトShift-JISに変換
(SJISじゃなくsjis-winに変換がお奨め) - サーバーにファイル出力。(拡張子に「html」を付加しつつ)
- hhp,hhc,hhk用のテキストを作成して書き込み。
(実際にはループで回している間ずっと作成していき最後にFile出力。
さらにURLは/から¥区切りに変更したりもしてます。)
というものです。
次にプラグインで出力されたhtmlを
FTPを使用してローカル(自分のPC)にコピー。
ついでに適用しているテンプレート内のcssファイル、
ファイルアップロード先の全ファイルもローカルにコピー。
それらをもとに
hhc.exeを使用してchmを作成。
(HTML Help Workshopをインストールすると
hhc.exeがインストール先に出来ます。)
以上でchmが作成出来ます。
なかなかchmを作成する機会が無かったので
今回は勉強になりました^^
※補足
htmlをShift-JISに変換したり、
テンプレートでcharsetをShift-JISにしているのは
chmがutf8に対応していないので、
文字化けや検索機能が使えないからです。
(htmlの表示自体はブラウザのIEを元にしているで、
utf8のままで問題無いのですが…)