[Fswiki-dev] Re: 複数行プラグインについて

Back to archive index

YAMASHINA Hio hio****@hio*****
2005年 4月 13日 (水) 18:19:56 JST


  こんにちわ.
  山科です.
  
  単体のタグかペアで使うタグかは, 
  {{pre 単体}} か {{pre+}}ブロック{{/pre+}} かという感じで
  これはペアで使う物ってサフィックスつける方法もあります.
  ちょっと面倒だけど. 
  
  インデント方式は, そこがブロック記述なのか整形済み書式なのかの
  区別をどうつけるのかが切り分けれればだいぶよいとおもいます. 
  ちょっと記法と混じりますけど, 長いリストに改行入れたいとかにも
  使えそうですし. 
  
  とりあえずまとめてみたのを参考までに流してみます. 
  
!! 必要と思われる条件

* ネスト/入れ子はどうするか
* 普通の引数も欲しい
* 終了指示文字列のエスケープ

! タグペア形式

  {{pre arg1, arg2}}
  ソース
  {{/pre}}
  $plugin->execute(args=>[$arg1, $arg2,], text=>$source);
  $plugin->execute($source, $arg1, $arg2);

* 難点
** 従来のものと区別が付きにくい, ペアでない物との区別はどうするか

! インデント形式

  {{pre arg1, arg2}}
    ソース

* 利点
** 閉じ忘れがない (終了指定がないから)
** プラグインを無効にしてもとりあえず整形済みで見える
* 難点
** 整形済みテキストを貼り込むときにインデントを入れなければいけない

! ヒアドキュメント形式.

  {{pre arg1, <<EOF, arg3, <<EOF}}
  ソース
  EOF
  ソース2
  EOF
  $plugin->execute($arg1, $source, $arg3, $source2);

* 難点
** ヒアドキュメント知ってる人じゃないと抵抗ありそう

! そのまま複数行

  {{pre arg1, arg2,
  ソース
  }}
  $plugin->execute($arg1, $arg2);

* 難点
** ソース中にカンマがあっても1つの引数とみなして欲しい
** かといって、この記法で記述したプラグインの場合、引数は1つしか
   渡せないというのもなんだかなぁ
** エスケープ方法を用意するにしても、ソースの中のカンマを1つずつエス
   ケープするのはあり得ないですよね



  でわ〜♪

-- 
山科 氷魚 (YAMASHINA Hio) <hio****@hio*****>





Fswiki-dev メーリングリストの案内
Back to archive index