テンプレート機能を提供する。通常のテンプレートと違い、テンプレートの内容を変更すると、そのテンプレートを使ったすべてのページにその変更が反映される。MediaWikiのテンプレート機能を参考にしたので、名前を"mtemplate"とした。
#mtemplate(テンプレート名,パラメータ名=パラメータの値,パラメータ名=パラメータの値,...)
また、MadiaWikiと同じように、","ではなく、"|"をセパレータとして使う事もできる。
#mtemplate(テンプレート名|パラメータ名=パラメータの値|パラメータ名=パラメータの値|...)
例えば、次のような内容の「:config/plugin/mtemplate/あいさつ」というテンプレートページを作成する。
{{{lang}}}で挨拶は、「{{{hello}}}」。
次のようにしてmtemplateを呼び出すと、
#mtemplate(あいさつ,lang=日本語,hello=こんにちは)
次のように表示される。
日本語で挨拶は、「こんにちは」
余計で危険な機能が多々あります。
&mtemplate(テンプレート名,パラメータ名=パラメータの値,パラメータ名=パラメータの値,...);
ブロックでの呼び出しと同じですが、テンプレートが複数行の場合は、どうなっても知りません。
#mtemplate{{ テンプレート名| パラメータ名1= *かくかくしかじか あーだこーだ。 |パラメータ名2= -あいうえお -かきくけこ }}
こんな感じでもかける。「テンプレート名」と「パラメータ名」の前後の空白文字はすべて削除される。
「複数行パラメータでの呼び出し」のような使い方では、"|"や"="を変更したくなるのが人情。mtemplate_settingプラグインでこれらが変更できる。これを使えば、次のような書き方ができる。
#mtemplate_setting(separator=-----,equal======) #mtemplate{{ テンプレート名 ----- パラメータ名1 ===== *かくかくしかじか あーだこーだ。 ----- パラメータ名2 ===== -あいうえお -かきくけこ }}
「パラメータの値」をテンプレートページに埋め込んでからconvert_html関数(インラインで呼び出した時は、make_link関数)を呼び出してHTMLとしている。