Let's write β

プログラミング中にできたことか、思ったこととか

CL向けのCSSセレクターベースのテンプレートエンジン Caramelを作った(作っている)

ClojureのEnliveというテンプレートエンジンはClojureのWeb開発界では有名だとおもいます。
そのEnliveのAPIが綺麗でCommon Lispでも同じようなテンプレートエンジンがあったらなぁ
とおもってました。
そこで調べてみるとcss-selectorsというcssセレクタを利用してノードの検索ができるライブラリがCLにもある事がわかり、これをつかえばEnlive的なテンプレートエンジンに発展させられるんじゃないかなとおもいました。

そこで、CaramelというCSSセレクターベースのテンプレートエンジンをつくりました。

特徴としては、

  • ファイルベースのテンプレートエンジンである
  • CSSセレクターでノードの選択ができる

といった感じですかね、基本的なAPIはEnliveを踏襲しています。
サンプルコードはリポジトリのほうに掲載しております。

実装にあたってはChatonでshiroさん及びg000001さんにはお世話になりました。ありがとうございます。