素材集・備忘録

この頁は非公式ヘルプの内部的な都合により置かれたものであり、BMSE とは無関係です。HTML Help compiler はきわめて古い時代の代物なので、いろいろ困難があります。たとえば以下のような CSS を書いたとき、

.internal {
    text-decoration: underline;
}

.external {
    text-decoration: underline;
}

html:lang(ja) body > .wrapper .\69\6E\74\65\72\6E\61\6C {
    text-decoration: none;
    background-image: url('Capture/underline_internal.gif');
    background-position: 0% 100%;
    background-repeat: repeat-x;
}

html:lang(ja) body > .wrapper .\65\78\74\65\72\6E\61\6C {
    text-decoration: none;
    background-image: url('Capture/underline.gif');
    background-position: 0% 100%;
    background-repeat: repeat-x;
}

背景画像がコンパイラに認識してもらえず、生成された CHM ファイルに含まれません。*.HHP ファイル内の [FILES] セクション配下に、以下のように書き足しておけば大丈夫なのですが、

_RESOURCE\issues.html
_RESOURCE\easter.html
_RESOURCE\Capture\underline_internal.gif
_RESOURCE\Capture\underline.gif

*.HHP をヘルプファイル作成支援ソフトに通すと追加分が吹き飛ぶので、この頁に普通の img 要素として書いておくことにしました。underline_internal.gifおよび underline.gif ← CSS とは別口で画像が収録され、結果的に CSS 背景画像としても参照可能になります。

ちなみに言語疑似クラスは IE8 以降用、直下セレクタは IE7 以降用なのですが、これだけではなぜか IE4 にも適用されてしまうので、クラス名を CSS エスケープすることで IE4-5.5 を除外しています。


TODO

  • 外部リンクアイコンなどの簡単に描けそうなやつを HTML 5.1 srcset で SVG 化。どうせコンパイラに認識されないだろうからこっちに直接書く。
  • wbr が効かない IE8-11 で URL を折る穏当な方法。禁則処理させつつ折りたい。wbr 代替 1x1 画像を捨てて、テキスト内容を検索可能な形に。→済

    URL そのものへの a 要素に url クラスふって、word-wrap でいける?

    → 無理。Gecko, Blink, WebKit ではインライン要素にも word-wrap が効くが、肝心の IE8-11 はブロックレベル要素を起点とする継承のみ。なので body に適用するのが最も低コスト。というか CHM 側の CSS では既にそうしていた、のを忘れてた……

    MS EdheHTML 14 はインライン要素への word-wrap がほぼ効かない。微妙に効くように見えるけどたぶんこれ wrap じゃなくてただの禁則処理?

    IE8-11 の word-wrap はどうも禁則処理を優先してくれないように見える。だから他のブラウザ用の Web 版では使用を避けてたんだよなあ…

  • フレージング内容が画像を持つと IE4-6 で行間隔が狭まる問題。
  • 2019-06-29: CHM からの document.referrer のテストと対策。https://hitkey.nekokan.dyndns.info/reftest.htm (外部リンク)
  • ↑ HTTPS だから意味ないんだよなあ……
  • 2020-03-16: こうわよ http://hitkey.nekokan.dyndns.info/reftest.htm (外部リンク)