SmartyなテンプレートとJavaScript
よくあるSmartyなテンプレート
<{if $hoge}> Hello World!! <{/if}>
これをJavaScriptでも同様の挙動させる為には…正規表現を利用して文法解析するとおつ。SmartyのコンパイラーをハックしてJavaScript形式にコンパイルする方式も考えたけどSmartyをハックするのは骨が折れるし何やっているかわからないのでパス。
文法解析のアルゴリズムの草案
var vars = new Array(); var string = '<{if $hoge}>Hello World!!<{/if}>' var regular = new RegExp('<{if\\s\\$([^<{]+)}>(.*|\\r?\\n)*<{/if}>',''); vars['hoge'] = true; string = string.replace(regular, (vars["$1"])?'':"$2"); document.write(string);