JSmartyとは?

概要

JSmartyはPHPSmartyを模した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("識別子:テンプレート名") テンプレート処理しその結果を返す。

*テンプレート処理のAPISmartyに準拠しています。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リリース