まさに備忘録
Microsoft® HTML Help Executable (hh.exe)はTridentを使う。hh.exeのUser-Agent Stringは“Internet explorer (Document Mode: IE7)”であることを主張する。IE8から実装されているnative JSON objectなどをCHMで使う場合、“<meta http-equiv="X-UA-Compatible" content="IE=edge" />
”などを書いておく必要がある(Windows XP SP3, Windows 8.1, Windows 10にて確認)。
Sakura Editor Help (CHM)の本文部分にfocusがあるとき、Esc keyはCHM windowを閉じる。この挙動はJScript + HTML Help ActiveX Controlによる。sakura.chmの同位にmacro.chmやplugin.chmなどを置くと、複数のHelp filesの目次 tabが統合される。script56.chmの日本語版は、scd56jp.exe (1.7MB)から入手できる(実行せずに7-Zipなどで中身だけを取り出す)。“HTML help merge”で検索すれば関連記事が引っ掛かる。
xCHMのWindows用binaryは、ActiveXやJavaScriptどころかCSSさえ用いない。style
要素やstyle
属性も無視される。<font color="#xxxxxx">
などは反映される。文書にはweb browsers' default styleに近い外観が適用されるが、dt + dd ~ dd
のmargin
が反映されない等の違いもある。CHM filesの統合はsupportされない。
CHMの目次(Table of Contents, *.hhc)は普通にHTMLとして書ける。
<!DOCTYPE html>
<html dir="ltr" lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=shift_jis">
<title>bmse help</title>
</head>
<body>
<object type="text/site properties">
<param name="ImageType" value="Folder">
<param name="Window Styles" value="0x800024">
</object>
<ul>
<li><object type="text/sitemap">
<param name="Name" value="index">
<param name="Local" value="_RESOURCE\index.htm">
<param name="ImageNumber" value="11">
</object></li>
<li><object type="text/sitemap">
<param name="Name" value="インストール">
<param name="Local" value="_RESOURCE\0.htm">
<param name="ImageNumber" value="11">
</object></li>
</ul>
</body>
</html>
cmd.exeから直接compileする場合は、以下のようにhhc.exeに対しMicrosoft HTML Help Project fileを渡す。
"C:\Program Files (x86)\HTML Help Workshop\hhc.exe" "D:\bmse_help\bmse_lite.hhp"
空要素をXHTML記法で閉じると(<param />
)、目次の項目がその時点で終わってしまう。上記の例でいえばsidebarが“index”だけになってしまい、「インストール」以降は目次に含まれない。あとli > object
は一行で書かないと意味不明なcompile errorが発生する。param
要素まで含めて一行で書くとcompileが通る。