grunt-utf8tosjis

grunt-utf8tosjis

grunt-utf8tosjis

日本人にしか必要のないプラグインなので日本語で書きます。

UTF-8で書き出されたファイルをShift-JISに変換するプラグインです。Jadegrunt-bake を通してデプロイすると強制的に UTF-8 で出力されてしまいますが、それらのファイルを一括で Shift-JIS に変換します。

このプラグインの実行には Grunt ~0.4.0 が必要です。

npm install grunt-utf8tosjis --save-dev

Gruntfile の所定の位置でこのプラグインをロードします。

grunt.loadNpmTasks( "grunt-utf8tosjis" );

タスクはこういう書き方をします(Gruntfile.coffee)。

utf8tosjis:
  dist:
    expand: true
    cwd   : './test/htdocs'
    src   : ['**/*.html']
    dest  : 'test/htdocs'
    ext   : '.html'

test/htdocs内のHTMLファイルすべてが Shift-JIS に変換されます。

ジェネレータを grunt-bake を使用した場合で説明します。おそらく Jade などほかのジェネレータでも同様だと思います。

bakeファイルを Shift-JIS で作ってしまうとうまく変換できません。かといってコーディング時にエンコードは UTF-8、HTMLのcharset は Shift-JIS という状態にしてしまうとエディタがおかしな状態になってしまってバグの温床になります。

なのでファイルのエンコードは UTF-8、HTMLの charset は変数にしてエディタが混乱しないようにすると作業しやすいでしょう。

bake のテンプレートファイル

<!doctype html>
<html lang="ja">
<head>
  <meta charset="{{charset}}">
  <title>タイトル</title>
</head>
<body>
  日本語のタイトル
</body>
</html>

bake の config ファイル

{
  "charset": "Shift-JIS"
}