2007年 12月 12日

JavaScript で Blosxom, Rhino

http://svn.coderepos.org/share/lang/javascript/blosxom.rhino/

Java との連動が結構たのしい。Java に足りない部分とかめんどうくさい部分と、JS にないシステムの部分とかをうまくくみあわせられてたのしい。

Java がよくわかんなくて文字化けしていたんだけど、結局 js.jar を叩くときの java コマンドに -Dfile.encoding=UTF-8 いれてうまくいった。ただこれって、プログラム側から設定しても反映されない? っぽくてよくわからない……

本体は完全に Rhino に依存してるけど、テンプレートエンジンは依存せずに書いてある

JS のテンプレートエンジンなんて腐るほどあるけど、自分で書いてみるのはやっぱ面白い。今回は new Function("stash", templatecode") みたいにして、ハッシュをわたすとテンプレートをプロセスする関数を動的に生成してみてる (toSource すればコンパイルされた結果をキャッシュできる)。new Function による eval はなんかなんともいえない楽しさがあるなぁと思った。

JS 1.6 相当の関数 (filter とか) ってほぼ必須だよなぁと思った……ないと書けない。