プラグインの仕様

次回の公開はrev1xx(1xxはリビジョン番号)か0.0.1M1です。プラグインロード関数とか独自仕様にしました。(JSAN.jsを利用しないもの)でコードもあんまり書き加えないでこんな機能実装してみましたが、こういう機能ってあったら便利でしょうか?(といいつつ自分で便利やと思うので実装予定)

どうでしょうかね。あとプラグインの仕様以下で決定です。特に問題なければ以下ままで。プラグインは、プラグインの型.プラグイン名.jsでお願いします。(例.block.textformat.jsやshared.foo.jsなど)

sharedプラグイン仕様

■プラグインの例
function jsmarty_shared_foo(/*引数はお任せします*/)
{
  alert("hoge");
};
というものを書いて
JSmarty.addPlugin('foo','shared',['plugins']);
JSmarty.importer('foo');

ってやると外部JavaScriptを呼んで

foo();で関数jsmarty_shared_fooを呼び出せるという仕様。

pluginの仕様

block関連のプラグイン*1
function jsmarty_block_プラグイン名(params, content, jsmarty)
{
  // 実装
};

contentの型がfunction(){};の為にblock内で利用するにはcontent.call(jsmarty);で実行する。

function関連のプラグイン
function jsmarty_function_プラグイン名(params, jsmarty)
{
  // 実装
};
filter関連のプラグイン
function jsmarty_***filter_プラグイン名(resource, jsmarty)
{
};

resourceプラグインは特殊な為にサンプルとともにまた次回。

*1:ちょっとまだ仕様決めかねてます