CIでヘルプを自動ビルドする

CI環境からヘルプをビルドする際に利用できる情報を説明します。

ビルド

CI環境からはbuild.batをエディションの引数付きで呼んでください。以下はchm_your_editionの例です。

.\CI\build.bat chm_your_edition

ビルドの内部処理は以下のようになります。

  1. HUGOで--environmentにエディションを指定してWebサイトをビルド
  2. jp下の*.hhp, *.html, *.hhcファイルをすべてSJISに文字コード変換
  3. hhc.exejp,enのヘルプをビルド

成果物

成果物であるHTMLヘルプはpublishDirの設定に従って出力されます。 publishDir = "public_chm_your_edition" の場合、以下がヘルプの出力先になります。

/public_chm_your_edition/jp/(helpTitle).chm
/public_chm_your_edition/en/(helpTitle).chm

UTF8からSJISに変換できない文字のリスト

HUGOはUTF8のWebサイトを生成しますが、HTMLHelpで日本語を扱うためにはSJIS(Windows CP932)へ変換する必要があります。変換はbuild.batの処理で行われますが、SJISに対応文字がなく変換できなかった文字については、build.batと同じディレクトリのunknonw_(edition).logに記録されます。

置換できない文字の例

SJISの対応文字に置換できない文字は"?“で置換されます。例えば以下の文字はHTML Helpでは”?“となります。

30F7 ヷ
30F8 ヸ
30F9 ヹ
30FA ヺ

カスタムマッピング

変換できない文字をSJISの特定文字にマッピングするには、/CI/UTF8toSJISConverter.csFallbackメソッドのswitch文を編集します。

エラー処理

build.batはエラー時にエラーコード1を返します。バッチから呼ぶ場合、例えば以下のようにエラー処理できます。

.\CI\build.bat chm_your_edition
if not %errorlevel% == 0 exit /B 1