記法を定義するときの書式。
複数行に渡る記法をどう書くか。

ToDo/機能呼び出しで複数行パラメーターを書くには Edit

ただ改行を含めて書く Edit

plugin(l1
l2,p2)

分かりにくい。

置き換え Edit

plugin(l1
l2,p2)

WikiCreole式。
これなら特別な工夫が要らない。
パラメーター取得後に
を置き換えるだけ。

ブロックにする Edit

**plugin
-l1
l2
-p2

記法を利用して。
複数行向けの機能記法を用意するようなもの。

ページ全体 Edit

ページ属性に「ページ全体をpluginに渡す値」を指定)

段落など、ページに書けるものは全て渡せる。
ページ属性に機能名を書く。


plugin({{ページ}})

ページを作って埋め込み
長いパラメーターなら使い回す価値があるはず。

答え1 Edit

→複数行を機能に渡すには、置き換えと埋め込みページが良さそう。

plugin(l1
l2,p2) plugin({{ページ}})

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

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

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

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

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

答え2 Edit

複数行を機能に渡すには、置き換えと埋め込みで。

plugin(l1
l2,p2) plugin({{ページ}})

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

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