Humanity

Edit the world by your favorite way

vim2html.plって面白いスクリプト見つけたのでi18n対応パッチ書いた

ダイアキュート!
ばよえ〜ん(訳:Vim Advent Calendar 2012への7回目への投稿です)


この記事はVim Advent Calendar 77日目の記事です。

Vim使ってる人は「:e $VIM/doc/vim2html.pl」を実行してもらえるとスクリプトが開けると思います。
どうやらhelpファイルからHTMLファイルを生成するスクリプトらしいです。


ただ、案の定英語以外のhelpファイルに対応してないので対応させました。
helpztagsのパッチ書いた時と同じ要領でいけたので楽でした。
vim_devにも送りました。

このパッチは何を変えるのか

gistのコメントにも書きましたが

  • *.txtファイル(英語版helpファイル)だけでなく*.??xにマッチするファイル(英語以外で書かれたhelpファイル)も処理するようになります
  • 「<meta http-equiv="Content-Type" content="text/html; charset=$encoding">」タグを付加します
    • デフォルトでは $encoding = "latin1"
    • もしhelpファイルの1行目にnon-ASCII文字を見つけると、$encodingの値は変わる
      • Vimも同じ方法でlatin1かutf-8だと判断している (:help help-translated)

vim2html.plの使い方

ついでに使い方も書いちゃおうと思います。
まず、引数なしで起動すると簡単な使い方が出ます。

$ ./vim2html.pl
vim2html.pl: converts vim documentation to HTML.
usage:

        vim2html.pl <tag file> <text files>

つまり次のように指定します。

$ ./vim2html.pl <tagsファイル> <helpファイル>

htmlファイルはどこに吐き出されるんだろうと思ったら、豪快にも現在のディレクトリにだばぁしてくれました。
(一度ホームディレクトリでやってエライ目に遭いました)

出力するディレクトリを指定する-oオプション*1を追加しようかとも思いましたが、
なにせ古いスクリプトで一切のモジュールをuseしておらず、
first released with perl 5なGetopt::Longですらuseするのを戸惑う感じだったのでやめました。

生成されたWebページ

実はVimのhelpファイルのHTML版は結構色んな所にあります。
ただ、vim2html.plを使っているとは限りません。

helpをHTML化する方法

VimのhelpをHTML化する方法はいくつかあります。

  • vim2html.pl
    • 公式のHTMLページ?
  • :TOHtml
    • kanaさん? vimdoc-ja?
  • 自作する
    • kanaさん?

ほぼ分かってないけど、皆どうやってるんですかね。*4

:wqa!

次のAdvent Calendarは未定です。

*1:mkdir & chdirすれば楽勝なのですが

*2:トップページ左のDocumentation -> Vimdoc site

*3:何このlife hackっぽい説明...

*4:ていうかvim-jp/vimdoc-jaの体制分かってないってどうなのよ