テンプレートエンジンSlim単体でファイル分割する

Middleman の話ではなく, テンプレートエンジン Slim 単体の話です。

Slim のリポジトリをチェックされている方なら既に当然のようにお気づきのことかと思いますが, 少し前に Slim に新しい Plugin が追加されました。その 1 つが外部ファイルのインクルード(ファイル分割)です。

とりあえず動かしてみる

説明が面倒なので, github にコードを用意してみました。
yterajima/slim-plugin-sample

git を使って pull, bundle install を実行する必要があります。

$ git pull git@github.com:yterajima/slim-plugin-sample.git
$ bundle install --path vendor/bundle 
$ bundle exec slimrb -v 
  Slim 2.0.3

slimrb -v の結果が得られれば問題ありません。ファイルが用意してあるディレクトリに移動して, コマンドを実行します。

$ cd source/include
$ ./convert 

これで source/include/index.html が更新されれば成功です。この convert コマンドの中身は次のようになっています。

$ bundle exec slimrb -p -r slim/include index.html.slim > index.html 

簡単にいえば slimrb コマンドを呼び出して index.html.slim を Slim -> HTML への変換を行っています。

  • -p オプションは返還後の HTML がインデント&改行された状態で出力されるオプション
  •  -r slim/include は Slim の Include プラグインのロード処理になります。

変換対象になっている index.html.slim の内容は次のようになっています。

doctype html
html
  include header
  include content 

include を使ってファイルを指定することで外部ファイルのインクルードができます。

ドキュメント

公式なドキュメントについては, 次のリンクから確認できます。
slim/include.md at master · slim-template/slim

日本語については昨夜 pull-req しておいたので問題がなければ次のリンクから確認できるはずです。
日本語版 include.md

もしすぐに確認したい人は私のリポジトリで確認できます。(merge されたら消えます)
slim/include.md at japanesereadme/updateofseptember2014 · yterajima/slim