exrules.inc.php

サマリページ毎にwiki表記(ユーザ定義ルール)を拡張
リビジョン1.0
対応バージョン1.4.7
投稿者mashiki?
投稿日2007-07-08 (日) 03:48:17

目的効果

 コンバート時に置換されるユーザ定義ルール(default.ini.php内$line_rules)があるが、これを拡張し、ページごとに定義できるようにする。 これによりwikiテキストの可読性を維持しつつ、さまざまな装飾を施せるようにしたいという目的で作成しました

  • ''で囲うと太字になる、%%で囲うと取り消し線が引けるなどのwiki文法をページごとに拡張できます
  • あるページで強調したいキーワードの書式を1箇所で指定できます

インストール方法

使用法/サンプル

拡張したい文法を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''})

実行結果

#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の結果はこうなります
  • 例2の結果はこうなります
  • 例3の結果はこうなります
  • 例4」の結果はこうなります
  • 例5の結果はこうなります。mashiki

ライセンス

GNU GPL 2

考慮事項

  • 拡張ルールはdefault.ini.php内の$line_rulesに定義される基本ルールによります。どのようなルールが設定されているかあらかじめ確認しておくことをお勧めします。*1
  • 複数のページに同じルールを適用したいと言う場合もオリジナルのページの定義を他のページにコピーすればよいが、煩雑さを避けるためincludeプラグインなどで定義できるともっとよいかも*2
  • 実装は簡単に導入できることを優先して、2つの点においてキレイでない方法を採用しています。1つはconvertでもinitでも処理のタイミングが遅いためインクルード時にほぼ全ての処理を行っているという点。もうひとつは上記のタイミングで何もパラメータが渡されないため、debug_traceより強引に必要な情報を引き出していることです。 本来は本体に少々仕掛けを仕込む必要があります。

コメント

  • サマリ(表題)を簡潔に & 脚注を加えました -- mashiki? 2007-07-17 (火) 00:17:49
  • 似たものメモ: convwiki_rules -- 2009-10-07 (水) 16:11:48


*1 正規表現に慣れていないとつらいのですが
*2 現バージョンでは使用できません。やはりpluginの評価/実行順がネックでゴリゴリ書く必要がありそう

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2009-10-07 (水) 16:15:03
Site admin: PukiWiki Development Team

PukiWiki 1.5.2+ © 2001-2019 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u7. HTML convert time: 0.197 sec.

OSDN