Skip to content
This repository has been archived by the owner on Jan 14, 2022. It is now read-only.

taiju/mt-plugin-instanttag

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 

Repository files navigation

NAME

InstantTag - プラグインの設定なしで使える即席MTタグを定義.

SYNOPSIS

<mt:instanttag name="hello">
sub {
  my ($ctx, $args) = @_;
  "hello, $args->{yourname}!!"
}
</mt:instanttag>
...
<p><mt:call caller="hello" yourname="taiju" /></p>

DESCRIPTION

InstantTag はプラグインの設定なしで使える即席MTタグを定義するためのプラグインです。 即席MTタグを定義する場合は、MTInstantTagを使います。 即席MTタグは MTCall, MTCallFunction, または MTCallBlock タグを使って呼び出されます.

TAGS

<MTInstantTags name="..."> ... </MTInstantTags>

MTInstantTagはnameモディファイアと値を持ちます。 nameモディファイアには、即席MTタグの名前を指定します。 値には即席MTタグのハンドラ関数を指定します。

<MTCall caller="..." />

MTCallFunctionのエイリアスです。

<MTCallFunction caller="..." />

定義した即席MTタグがファンクションタグの場合、このMTCallFunctionを使ってください。 MTCallFunctionは、callerモディファイアを持ちます。 callerモディファイアには、定義した即席MTタグで指定した名前を指定します。 その他のモディファイアは、即席MTタグのハンドラ関数に利用されます。

<MTCallBlock caller="..."> ... </MTCallBlock>

MTCallBlockタグは、MTCallFunctionタグのブロックタグ版です。 定義した即席MTタグがブロックタグの場合、このMTCallBlockを使ってください。

TIPS

MTInstantTagは、ひとつだけ匿名の即席MTタグを持つことができます。

例1:

<mt:instanttag>
sub {
  my ($ctx, $args) = @_;
  "hello, $args->{yourname}!!"
}
</mt:instanttag>
...
<p><mt:call yourname="taiju" /></p>

MTInstantTagタグでnameモディファイアを省略した場合、その即席MTタグは匿名の即席MTタグになります。 MTCallタグ、MTCallFunctionタグ、MTCallBlockタグのいずれかでcallerモディファイアを省略した場合、匿名の即席MTタグが使用されます。 ただし、匿名の即席MTタグはひとつしか存在できません。次の匿名の即席MTタグを定義した時、一つ前の匿名の即席MTタグは上書きされます。

例2:

<mt:instanttag>sub { "hello!!" }</mt:instanttag>
...
<p><mt:call /></p>
...
<mt:instanttag>sub { "good bye!!" }</mt:instanttag>
...
<p><mt:call /></p>

この例のように複数回、匿名の即席MTタグを利用することができます。 MTCallタグでは、直近の匿名のMTInstantTagのハンドラ関数が利用されます。

TODO

  • PHPのサポート

AUTHOR

HIGASHI Taiju <higashi@taiju.info>

LICENSE

このライブラリはフリーソフトウェアです。 あなたはこれを再配布、および、または変更することができます。 Perlと同じ条件の元で。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages