インラインプラグインについて
プラグインファイルの中に次のような記述を追加することで、 ((…)) 形式のコマンドを追加することができます。
$::inline_plugin{"blue"} = sub{ my $session=shift; '<span style="color:blue;font-weight:bold">' . join(" ",@_) . '</span>'; };
これにより、以後、「((blue ブルー))」と書くことで、 「ブルー」のような表現が可能になります。
- ハッシュ %inline_plugin に、呼び出す関数へのリファレンスを、 コマンド名をキーとして代入します。
- コマンドの引数は空白で分割されて、@_ の第二引数以降で渡されます。
- 第一引数は、様々な属性値のハッシュへのリファレンスです(詳細は後述)
- 引数の中身の & < > といった文字は & < > といった形にエンコード済みです。
- 関数の戻り値は html として、そのまま、展開されます。
プラグイン関数の第一引数($session)について
ハッシュへのリファレンスです。 この中に、現在表示しようとするページに関する情報が格納されています。
- $session->{title}
- 現在描画中のページです。表示をリクエストされたページではありません。
つまり、Sidebar ページでコマンドが呼び出されると、どのページのサイドにあっても
「
$session->{title} eq 'Sidebar'
」が成り立ちます。 この値はエンコードされていません。 - $session->{argv}
- 分割前の引数が入ります。
- $session->{attachment}->{添付ファイル名}->{url}
- 添付ファイルへの URL です。エンコード済みです。
- $session->{attachment}->{添付ファイル名}->{tag}
- 添付ファイルが画像なら img タグ。さもなければ a タグが入っています。
|