Top/PukiWiki/1.4/ちょっと便利に/複数行のプラグイン引数を可能に/仕様検討

仕様検討

複数行のプラグイン引数の入力方法

エラー処理

ユーザ定義ルールの抑制方法

プラグインに問い合わせる案(miko)

ユーザ定義ルールの抑制方法を本体からプラグインに問い合わせるための機能案です。

  1. プラグインのコールバックで提供できるようにするために、プラグインの初期化関数 plugin_xxxx_init で問い合わせる(xxxxはプラグイン名)
  2. プラグインの初期化関数は戻り値としてハッシュ配列を提供する。その配列には本体に要求する項目が入っている。
  3. デフォルトは互換性を配慮するためなにもなし(戻り値は配列でない、初期化関数自体が存在しない可能性あり)
  4. 複数行で捌くハッシュは 'blockargs'。デフォルトはセットされていない(通常通りの動作)。'noreplace'を含む文字列ががセットされていたら置換しない。
  5. ついでにいうならば、'args'も用意して、引数は置換されないようにしたほうがいい?

これに限らず他にも活用できる可能性あり?
どうでしょう?コメントください。


プラグインに問い合わせる案2(matsuda)

ユーザ定義ルールの適用を含めて、複数行引数部分(ボディ)の前処理をプラグインに 任せる案です。

ページ書き込み(またはプレビュー)時に前処理を行うための新しいプラグインインターフェースとしてplugin_xxx_write()を導入します。

  1. 複数行引数がある場合にのみ呼ばれます。
  2. 引数はplugin_xxx_convert()と同様に与えられます。
  3. 戻り値としてarray('action' => 'replace', 'body' => "文字列")を返すと、複数行引数部分が"文字列"に置き換えられます。
  4. 戻り値がその他の場合には、ユーザ定義ルールは適用されません。
  5. plugin_xxx_write()が定義されていない場合は、ユーザ定義ルールが適用されます。行頭に空白文字があっても同様です。
  6. プラグインの引数部分には常にユーザ定義ルールが適用されます。
バージョンファイル変更点
1.0fileconvert_html.php.7.diff
filefile.php.3.diff
fileplugin.php.3.diff
初版。複数行の形式は{{ }}。

コメント


プラグインインターフェース

plugin_xxx_convert()

plugin_xxx_convert()の引数に追加する。

現在の実装(パッチv1.5)が採用している仕様。

利点:

欠点:

plugin_xxx_convert_multiline()

plugin_xxx_convert()とは別のインターフェースを用意する。

plugin_xxx_inline()と同様に、複数行引数は最後の引数とするが、複数行引数が無い場合には空の引数を渡す。

利点:

コメント



トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2005-07-02 (土) 23:06:32
Site admin: PukiWiki Development Team

PukiWiki 1.5.4+ © 2001-2022 PukiWiki Development Team. Powered by PHP 8.2.12. HTML convert time: 7.028 sec.

SourceForge