A_single_file_wiki_wifky2.png

インライン文法プラグインについて

wifky 1.1 移行では、文法自体をプラグインで変更することができます。

以下は、テキストエリアで入力した改行を、実際の表示においても、 そのまま改行として表示させるプラグインです。

$main::inline_syntax_plugin{'090_forcecrlf'}=sub {
     my ($textref,$session)=@_;
     $$textref =~ s/\n/<br>\n/g;
};

ハッシュ %main::inline_syntax_plugin には、 インライン文法実現のために、 テキストを処理する関数へのリファレンスが格納されています。

処理はハッシュのキーの辞書順に行われますので、 キーの先頭の数字3桁に適当な数字を選ぶことにより、 任意のタイミングで置換処理を実行させることができます。

キー文字列 設定値 処理内容
100_innerlink1 \&preprocess_innerlink1 >>{…} の置換
200_innerlink2 \&preprocess_innerlink2 [[…|…]の置換
300_outerlink1 \&preprocess_outerlink1  http://…{…}の置換
400_outerlink2 \&preprocess_outerlink2  […|http://…] の置換
500_attachment \&preprocess_attachment <<{…}の置換(添付ファイル)
600_htmltag \&preprecess_htmltag 生HTMLの逆サニタイズにる復活
700_decoration \&preprocess_decorations '''〜''' など Wiki 特有の機能文字
800_plugin \&preprocess_plugin プラグイン呼び出し処理
900_rawurl \&preprocess_rawurl 素URL の置換

プラグイン関数に要求される仕様

第一引数 被加工テキストへのリファレンス。 既にサニタイズ済み。
第二引数 セッション情報を含むハッシュへのリファレンス。
戻り値 不要

関数は、第一引数が差すテキストに対し、s/〜/〜/ 等を使って、加工処理を行います。 リファレンスになっているのは、変更内容をそのまま呼び出し元に反映させる必要があるからです。

|

Designed for @nifty.