無気力生活 (ノ ´ω`)ノ ~゜

脱力系エンジニア。てきとーに生きてます。

gulpでSlimのビルド環境作る

2015/07/28追記
続編書いた。 最新の構築方法は以下を参照ください gdgd-shinoyu.hatenablog.com

本当はいろいろやるつもりだったんですが、nodeの更新でミスってnpmが行方不明になったりして時間食われてしまったので、実際のコード書くには至らなかった(´・ω・`)

とりあえず、gulpでSlimビルドできるようにしたのでメモ

Slimとは

最近Railsでerbの代替として使われ始めている、HTMLテンプレートエンジン。短い記述で書けるので大変ラク。
Hamlから%抜いたやつだと思えばよいです。gem install slimとかやれば入る。

Slim - A Fast, Lightweight Template Engine for Ruby

すばらしい。

Railsなくても、単にマークアップツールとしての使用は可能なので、これで爆速でHTML書けると思われる。

gulpfile

SlimをHtmlへビルドするには、slimrb -p "slim_file" > "export/file_name.html"とかやればよさげ。つまり、gulpでコマンド叩ければ良いわけです。

gulpでコマンド叩くには、gulp自体のインストールした上で、gulp-shellを使うのが楽です。npm install --save-dev gulp && npm install --save-dev gulp-shellで入れる。

gulp.pipe()中で、shell(["command"])とかやれば実行できます。
gulp-shellには、fileオブジェクトが渡されます。gulp-shellのドキュメント内にある「shell(commands, options) 」の項目見ると、

A command can be a template which can be interpolated by some file info (e.g. file.path).

とあり、wearefractal/vinyl · GitHubで書かれている通り、file.relativeとかやれば元のファイル名が取得できます。
このファイル名の拡張子"slim"を"html"に変換してあげれば、普通にビルド通ってHTMLが生成されます。