ほんじゃら堂

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

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)

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

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