WikiNotationを定義するときの書式。
複数行に渡るNotationをどう書くか。
記法を定義するときの書式。
複数行に渡る記法をどう書くか。
- -
ToDo/機能呼び出しで複数行パラメーターを書くには †
ToDo/プラグイン呼び出しで複数行パラメーターを書くには †
ただ改行を含めて書く †
plugin(l1 l2,p2)
分かりにくい。
置き換え †
plugin(l1
l2,p2)
WikiCreole式。
これなら特別な工夫が要らない。
パラメーター取得後に
を置き換えるだけ。
ブロックにする †
**plugin -l1 l2 -p2
WikiNotationを利用して。
複数行向けのプラグイン記法を用意するようなもの。
記法を利用して。
複数行向けの機能記法を用意するようなもの。
ページ全体 †
(ページ属性に「ページ全体をpluginに渡す値」を指定)
段落など、ページに書けるものは全て渡せる。
ページ属性にプラグイン名を書く。
ページ属性に機能名を書く。
plugin({{ページ}})
ページを作って埋め込み。
長いパラメーターなら使い回す価値があるはず。
答え †
→複数行をプラグインに渡すには、置き換えと埋め込みページが良さそう。
答え †
→複数行を機能に渡すには、置き換えと:i/埋め込み式ページが良さそう。
必要な処理 †
plugin(l1
l2,p2) plugin({{ページ}})
WikiNotation解釈・HTML変換後、自動リンク前のパラメーターをプラグインに渡す。プラグイン実行の結果も自動リンクの対象になる。
記法解釈・HTML変換後、自動リンク前のパラメーターを機能に渡す。機能実行の結果も自動リンクの対象になる。
埋め込み解決はWikiNotation解析前に行なう。これも自動リンク。リンク先次第で埋め込みになる。
埋め込み解決は記法解析前に行なう。これも自動リンク。自動リンクでは、リンク先が埋め込み式ページなら埋め込みになる。
相対パスの解決は書かれているページ次第で変わるため、埋め込みを解決してからにしたいがそれがまた別の相対パスと埋め込みを含んでいるので、相対パスと埋め込みを交互に解決していくことになる。
埋め込みと自動リンクは同じ処理なのにタイミングが異なる?
→プラグイン出力はプラグインがフレームワークを利用して各種解析、HTML変換してから出力する。なので、埋め込みも自動リンクもプラグイン呼び出しの前に。プラグイン出力を再度自動リンクしないようにするため。また、自動リンク先の解決は書かれているページ次第で変わるため。
埋め込みと自動リンクは
→機能出力は機能がフレームワークを利用してパラメーターを解析、パラメーターに別の記法が含まれていたとしてもフレームワークを利用してHTML変換してからフレームワークに返す。自動リンク処理をするかどうかは機能次第。
埋め込みは展開して機能に渡したいが記法に別の記法が含まれていると埋め込みだけをまとめて解決するのは無理。
メタシンボルの埋め込みで動的なパラメーター指定ができる。
→自動リンクも埋め込みの解決も機能側がフレームワークを呼び出して任意のタイミングで処理。
答え †
複数行を機能に渡すには、置き換えと埋め込みで。
plugin(l1
l2,p2) plugin({{ページ}})
記法(機能)の処理中にフレームワークを利用して自動リンクと自動リンクに伴う埋め込み(と明示的な埋め込みも)を行なう。
機能には書かれている通りのWikiTextが渡される。それを埋め込みとして解釈、展開するのは機能次第。
機能はHTMLを出力する。そのままレスポンスの一部になる。
- -
メタシンボルの埋め込みで動的なパラメーター指定ができるのも忘れずに。