読者です 読者をやめる 読者になる 読者になる

jQueryでテンプレート処理

jQueryプラグイン

jQueryでテンプレート処理を行ってみたくてjQueryプラグイン作成の勉強がてらテンプレート処理プラグインを制作してみました。テンプレートエンジンはお馴染みのJSmartyです。

利用例
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="JSmarty.js"></script>
<script type="text/javascript" src="JSmarty/Compiler.js"></script>
<script type="text/javascript" src="JSmarty/internals/system.jquery.js"></script>
<div id="contents"></div>
$('#contents').assign('foo','Hello World!!');
$('#contents').processTemplate('string:{$foo}');

alert(dcouemnt.getElementById('contents').innerHTML); // Hello World!!

assignはJSmarty#assignのラッパ関数。processTemplateはJSmarty#fetch関数のラッパになっています。

system.jquery.jsの中身
(function($)
{
    $.fn.assign = function()
    {
        var renderer = this.$getRenderer();
        renderer.assign.apply(renderer, arguments);
    };

    $.fn.$getRenderer = function()
    {
        return this.$renderer || function(self)
        {
            self.$renderer = new JSmarty();
            return self.$renderer;
        }(this);
    };

    $.fn.processTemplate = function(resourceName)
    {
        var renderer = this.$getRenderer();
        $(this).html(renderer.fetch(resourceName));
    };

})(window.jQuery);

ソース配布は

system.jquery.jsは0.5.0から採用予定です。Subversionには既にあげてあります。もう少しjQuery研究して仕様詰めてから正式公開していきたいです。