JSmartyとは?
概要
JSmartyはPHPのSmartyを模したJavaScriptで動くテンプレートエンジンです。テンプレートAPI部分についてはSmartyを準拠しており、それ以外にも文字列処理が便利になるようにAPIを提供します。
Hello World!!
<script src="JSmarty.js"></script> <script src="JSmarty/Compiler.js"></script>
var smarty = new JSmarty(); smarty.assign("foo", "Hello World!!"); smarty.display("string:{$foo}"); // document.write("Hello World!!");
主要テンプレート処理API
書式 | 説明 |
---|---|
assign("foo","bar") | 変数の割り当て |
display("識別子:テンプレート名") | テンプレート処理の実行および表示。JSmarty.System.print()が内部的には呼び出されている。 |
fetch("識別子:テンプレート名") | テンプレート処理しその結果を返す。 |
*テンプレート処理のAPIはSmartyに準拠しています。JSmartyではdisplayよりもfetchがメインで利用されると思います。
var result = smarty.fetch("string:{$foo}"); document.getElementById("foo").innerHTML = result; // Hello World!!
その他のAPI概要
API | 説明 |
---|---|
JSmarty.Systemオブジェクト | FILE I/OなどのAPI |
JSmarty.Templatesオブジェクト | テンプレートデータ |
JSmarty.Pluginオブジェクト | プラグイン操作 |
JSmarty.Bufferオブジェクト | 文字列連結の高速化 |
JSmarty.Errorオブジェクト | エラー処理 |
構文
Smarty準拠です。また独自のCompiler.jsを実装することによって自分好みのテンプレート構文を開発することができます(JSmartyでPerlのTTの構文を使うっていうこともできるかも?)。JSmartyでは標準としてJSmarty/Compiler.jsが採用されています。主な構文は以下の通りです。
書式 | 説明 |
---|---|
{$foo} | 変数 |
{$foo.barc|at:"foo"} | 修正子付変数 |
{foo} | function関数 |
{bar}〜{/bar} | block関数 |
- 書式の{}は left_delimiter = { 、right_delimiter = }として変更可能です。
システム要件
クライアントサイドでは、IE6(SP2)、Safari2、Firefox(1.0以上)、Opera(8.0以上)、Apollo(Alpha)で動作確認。サーバーサイドではAJAJAやJava6(JRunScript)などで確認しています。
ライセンス
LGPLになります。
改訂履歴(since 2007/04/14)
- 2007/04/14 0.3.1リリース