読者です 読者をやめる 読者になる 読者になる

ほんじゃら堂

めんどくさい仕事をラクにする作業自動化レシピ集

ClojureでHTML以外に対応したテンプレートエンジンを探す

Clojure始めました。 ちょっとしたスクリプトを作成しながら勉強中です。

最初にClojureで書かれたソースを見たときは 「このカッコ地獄には絶対慣れない」 と思いましたが、 書いているうちにカッコのおかげで処理や変数の範囲が明確に なっていることに気づくと違和感を感じなくなりました。

Vimのテキストオブジェクトと相性が良いのも嬉しいです。

Clojureのメジャーなテンプレートエンジン

表題のテンプレートエンジンについて、 Clojureのテンプレートエンジンとして検索してよく出てくるのは

の2つです。 まだ使ったことはありませんが、HTMLテンプレートを作る時は このどちらかを使うのが良さそうです。

HTML以外に対応したテンプレートエンジン

今回はHTMLではなく、JavaでいうVelocityのような、 メールやテキストファイルのようなHTML以外のテキストに対応した テンプレートエンジンを探していて、 見た感じがっつりHTML対応な上記2エンジンは使えなさそうでした。

でいろいろ探していて、「clostache」というリポジトリにたどり着きました。 fnd/clostache

初めて知ったのですが、「mustache」という、元々Ruby用に開発されてその後様々な言語に対応した テンプレートエンジンがあり、そのClojure版のようです。

テンプレートファイルをあらかじめ作成しておき、

(clostache/render-resource template-path val-map)

みたいな感じで手軽に使えて良さそうです。

また良いライブラリを見つけたら紹介していきます。