GNU GLOBALのhtagsで日本語コメントが文字化けする場合に使えるオプション(--html-header)

  • 3
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

GNU GLOBALのhtagsコマンドはソースコードをHTML化してくれます。しかもメソッドの定義元/参照元もリンクで飛ぶことができてコードリーディングには超便利。

ただしデフォルトだとcharsetのメタタグが入ってないので、UTF-8のソースコードだとブラウザによっては文字化けして見えてしまいます。いちいちエンコードを指定するのは面倒なので、charsetを指定してしまいましょう。

--html-headerオプションは headタグに埋め込むHTML断片のテキストファイルを指定できます。

$ man htags
...
     --html-header file
              Insert a header record derived from file into the HTML header of each file.
...

では実際に使ってみます。
まずglobalでタグインデックス(GPATHなど)を作っているディレクトリに移動して、以下のように実行してみましょう(-sanFxとかはお好みで変えてね)。

$ echo '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />' > encode_meta.html
$ htags -sanFx -v --html-header=./encode_meta.html

# コード行数が多い場合は数分かかる

$ head HTML/index.html
<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Frameset//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd'>
<html xmlns='http://www.w3.org/1999/xhtml'>
<head>
<title>authense</title>
<meta name='robots' content='noindex,nofollow' />
<meta name='generator' content='GLOBAL-6.3.2' />
<meta http-equiv='Content-Style-Type' content='text/css' />
<link rel='stylesheet' type='text/css' href='style.css' />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />   # <- encode_meta.htmlに書いたやつ
</head>

ちゃんとメタタグが入ってますね。--html-headerで指定したファイルの内容が "</head>の直前に挿入される" そうです。

参考

gnuglobal - Gnu Global で作った HTML ファイルの日本語が文字化けする時の対処 - Qiita
sedで置換するたいへん漢らしい解決策

GNU GLOBAL ハンドブック
この本をパラパラ見しててこのオプションを見つけました(P.100)。作者が書いてるだけあって内容濃いからGNU GLOBALerにはおすすめです。
上記ページには割引販売情報があります。内容確認したいひとは渋谷のジュンク堂書店に2冊ほどあったから見に行くといいよ(2014年12月頃)。