convwiki_rules
2006-07-08
Tag: PukiWiki Hack
Tag: PukiWiki Hack
Wiki文法変換定義(convert_html 直前に適用されるユーザ定義ルール)
| Table of Contents |
概要
PukiWiki 文法を別の文法で表記できるように本体を改造。簡単ハック。
#lsx を #ls と表記したり、#mimetex(x) を $$x$$ と表記したり、 PukiWiki 記法を変更したりすることができるようになります。
適用
lib/convert_html.php、convert_html 関数の、$body->parse($lines); の直前に
global $str_rules, $convwiki_rules;
$tmp_rules = $str_rules; $str_rules = $convwiki_rules;
foreach ($lines as $i => $line) {
$lines[$i] = rtrim($lines[$i], "\n\r"); // something wierd
}
$lines = explode("\n", make_str_rules(implode("\n", $lines)));
$str_rules = $tmp_rules;
を追加。
設定例
rules.ini.php の末尾に
/////////////////////////////////////////////////
// ユーザWikiルール変換ルール(convert_html直前に置換)
// 正規表現で記述してください。?(){}-*./+\$^|など
// は \? のようにクォートしてください。
// 行頭指定は ^ を頭に。行末指定は $ を後ろに。
//
$convwiki_rules = array(
'^\$\$ (.+) \$\$$' => '#mimetex($1)',
'\$ ([^$]+) \$' => '&mimetex($1);',
);
のように追加します。これで mimetex プラグインを
$$ x $$ this is $ x $ pen.
で実行できるようになります。よく $hoge は書くので、
$ x $
のように間に空白がないと発動しないようにする、例のような工夫がおすすめです。

this is
pen.
#htmlinsert(moge,...)
を
#moge(....)
で実行するなんてことも出来るかも?
既知の問題
任意の場所でキャンセルする方法がない。


