• 追加された行はこの色です。
  • 削除された行はこの色です。
記法を定義するときの書式。
複数行に渡るNotationをどう書くか。
複数行に渡る記法をどう書くか。





**ToDo/プラグイン呼び出しで複数行パラメーターを書くには [#g64f8606]

***ただ改行を含めて書く [#g14a6d17]
 plugin(l1
 l2,p2)

分かりにくい。
***置き換え [#r7cc6b0c]
 plugin(l1\\l2,p2)

WikiCreole式。
これなら特別な工夫が要らない。
パラメーター取得後に\\を置き換えるだけ。
***ブロックにする [#b0631234]
 **plugin
 -l1
 l2
 -p2

記法を利用して。
複数行向けのプラグイン記法を用意するようなもの。
***ページ全体 [#ta78ac92]
 (ページ属性に「ページ全体をpluginに渡す値」を指定)

段落など、ページに書けるものは全て渡せる。
ページ属性にプラグイン名を書く。

----

 plugin({{ページ}})
ページを作って埋め込み。
長いパラメーターなら使い回す価値があるはず。
**答え1 [#l96a59b2]
→複数行をプラグインに渡すには、置き換えと埋め込みページが良さそう。
 plugin(l1\\l2,p2)
 plugin({{ページ}})

記法解釈・HTML変換後、自動リンク前のパラメーターをプラグインに渡す。プラグイン実行の結果も自動リンクの対象になる。

埋め込み解決は記法解析前に行なう。これも自動リンク。リンク先次第で埋め込みになる。相対パスの解決は書かれているページ次第で変わるため、展開してからにしたい。

埋め込みと自動リンクは同じ処理なのにタイミングが異なる?
→プラグイン出力はプラグインがフレームワークを利用して各種解析、HTML変換してから出力する。なので、自動リンクはしなくていい。
埋め込みは展開してプラグインに渡したいのでプラグイン呼び出しの前に。

自動リンクの結果はHTML、埋め込みの結果はWikiText。異なるのが問題。
これをどちらもWikiTextにする?つまり自動リンクの結果を相対パス→絶対パスのWikiTextに。

プラグインに相対パスを渡せなくなる。
→自動リンクも埋め込みの解決もプラグイン側で。任意のタイミングで実行。


**答え2 [#s4678ac3]
複数行をプラグインに渡すには、置き換えと埋め込みで。
 plugin(l1\\l2,p2)
 plugin({{ページ}})

記法(プラグイン)の処理中に自動リンクと埋め込みを行なう。
プラグインには書かれている通りのWikiTextが渡される。それを埋め込みとして解釈、展開するのはプラグイン次第。
プラグインはHTMLを出力する。そのままレスポンスの一部になる。

メタシンボルの埋め込みで動的なパラメーター指定ができる。