deku.js - パイプライン処理に焦点をあてたJavaScriptのテンプレートライブラリ

以前、tempura.jsという名前で作っていたライブラリですが、新しくdeku.jsという名前で作り替えました。


deku.jsの最大の特徴は、タイトルにある通り、パイプライン処理です。データをテンプレートに書き付ける際にパイプラインの仕組みで任意のデータ変換を実現します。値のフォーマットやコンバートを宣言的に行い、ロジックとビューをきれいに分離しやすくすることを目的としています(この機能については、tempura.jsのときと本質的に同じです)。


READMEに例としてのせていますが、次のように重さをg(グラム)に変換して表示することをテンプレート上でわかりやすく記述できます。

{{ weight | g }}


大きく作り替えたのは、パフォーマンスに関してです。handlebars.jsやhogan.jsのようにテンプレートをJavaScriptのコードにコンパイルするようにし、handlebars.jsやhogan.jsに匹敵できるようなパフォーマンスを目指しました。(まだまだhandlebars.jsには及びませんが、もう少し追いつきたいと思っています。handlebars.jsが速すぎるんだよなあ)

(追記: handlebars.jsと同程度のパフォーマンスがでるようになりました!)


それから、これもhandlebars.jsやhogan.jsと同様に事前にテンプレートをコンパイルするためのツールを用意しました。オプションでAMD形式のjsを生成できるようにしたところが、他とはちがうちょっとした特徴かもしれません。ドキュメントが足りていないですが、npmで-gをつけてインストールするとdekuというスクリプトが使えるようになります。

npm install -g deku 

こんな感じで使います。

deku -a ./deku -f hello.js hello.deku 


さらに、これもhandlebars.jsやhogan.jsを参考にしたわけですが、事前コンパイルされたテンプレートしか使わない場合を想定し、コンパイルするためだけにしか使わないコードを除去した軽量版のjsファイルも提供するようにしました(minifyしたもので3.5kbくらい)。ダウンロードページに置いてあります(deku.runtime-0.0.5dev.min.js)。


ぜひ、お試しください。


ちなみに、名前を変えた理由ですが、tempuraとtemplateという変数が同時に登場する場合に字面があまりに似すぎていてどうしても混同してしまうからというしょーもない理由です。とほほ。