** exrules.inc.php [#j52eab29] |RIGHT:100|LEFT:360|c |~サマリ|ページ毎にwiki表記(ユーザ定義ルール)を拡張| |~リビジョン|1.0| |~対応バージョン|1.4.7| |~投稿者|[[mashiki]]| |~投稿日|&new{2007-07-08 (日) 03:48:17};| **目的効果 [#n630b642] コンバート時に置換されるユーザ定義ルール(defoult.ini.php内$line_rules)があるが、これを拡張し、ページごとに定義できるようにする。 コンバート時に置換されるユーザ定義ルール(default.ini.php内$line_rules)があるが、これを拡張し、ページごとに定義できるようにする。 これによりwikiテキストの可読性を維持しつつ、さまざまな装飾を施せるようにしたいという目的で作成しました -''で囲うと太字になる、%%で囲うと取り消し線が引けるなどのwiki文法をページごとに拡張できます -あるページで強調したいキーワードの書式を1箇所で指定できます **インストール方法 [#o425a337] -ファイル(exrules.inc.php)を取得しpluginディレクトリに配置する -ダウンロード http://www123.ddo.jp/pukiwiki/?pukiwiki%2Fplugin%2F%B3%C8%C4%A5%A5%EB%A1%BC%A5%EB **使用法/サンプル [#ocf5e9bb] 拡張したい文法をexrulesプラグインで表現します。 #exrules(パターン, 置き換え文字列) パラメータは2つで1つめはパターン、2つめは置き換え文字列となります。1つめのパターンには最大1つの「*」アスタリスクを指定することができます。 -例1 2つの$でクォートされた文字列を太字の斜体で表示します #exrules($$*$$,'''''*''''') -例2 2つの&でクォートされた文字列を赤で表示します #exrules(&&*&&,COLOR(red){*}) -例3 2つの"でクォートされた文字列を青でかつ背景色をグレーにして表示します #exrules(""*"",COLOR(blue;background-color:gray){*}) -例4 内側にブランクをひとつ入れた括弧でくくられた文字列を緑色で太字で表示します #exrules(「 * 」,COLOR(green){''*''}) -例5 キーワードmashikiを紫の太字で頭文字のフォントを大きくして表示します。 #exrules(mashiki,COLOR(purple){''SIZE(16){m}ashiki''}) **実行結果 [#u1be4017] #exrules($$*$$,'''''*''''') #exrules(&&*&&,COLOR(red){*}) #exrules(""*"",COLOR(blue;background-color:gray){*}) #exrules(「 * 」,COLOR(green){''*''}) #exrules(mashiki,COLOR(purple){''SIZE(16){m}ashiki''}) -$$例1の結果$$はこうなります -&&例2の結果&&はこうなります -""例3の結果""はこうなります -「 例4 」の結果はこうなります -例5の結果はこうなります。mashiki > -'''''例1の結果'''''はこうなります -COLOR(red){例2の結果}はこうなります -COLOR(blue;background-color:gray){例3の結果}はこうなります -「COLOR(green){''例4''}」の結果はこうなります -例5の結果はこうなります。COLOR(purple){''SIZE(16){m}ashiki''} < ** ライセンス [#m8db2c58] [[GNU GPL 2:http://www.opensource.jp/gpl/gpl.ja.html]] **考慮事項 [#f92d89da] -拡張ルールはdefault.ini.php内の$line_rulesに定義される基本ルールによります。どのようなルールが設定されているかあらかじめ確認しておくことをお勧めします。((正規表現に慣れていないとつらいのですが)) -複数のページに同じルールを適用したいと言う場合もオリジナルのページの定義を他のページにコピーすればよいが、煩雑さを避けるためincludeプラグインなどで定義できるともっとよいかも((現バージョンでは使用できません。やはりpluginの評価/実行順がネックでゴリゴリ書く必要がありそう)) -実装は簡単に導入できることを優先して、2つの点においてキレイでない方法を採用しています。1つはconvertでもinitでも処理のタイミングが遅いためインクルード時にほぼ全ての処理を行っているという点。もうひとつは上記のタイミングで何もパラメータが渡されないため、debug_traceより強引に必要な情報を引き出していることです。 本来は本体に少々仕掛けを仕込む必要があります。 **コメント [#x12f2a3c] - サマリ(表題)を簡潔に & 脚注を加えました -- [[mashiki]] &new{2007-07-17 (火) 00:17:49}; - 似たものメモ: [[convwiki_rules>http://lsx.sourceforge.jp/?Hack%2Fconvwiki_rules]] -- &new{2009-10-07 (水) 16:11:48}; #comment