すべてにURIを与えたい。
…と言っても、ページとページ/要素くらいしかモデルが無いので、このふたつにURIを与えればいい。
ページとページ/要素を指定する方法。スペース名やページ名、要素などを含むURIで指定。
ページを指定できるならスペースや要素も指定できることになる。
埋め込み記法でページ名指定するときなどに使う。ページだけでなく要素1つを埋め込んだり。プラグインの設定を他のスペースから読み込んだり。
UI/API両方で利用。
URIなので、フレームワーク/Webアプリケーション、フレームワーク/WikiEngineの両方で利用する部分が混在。
書き方 †
https://wikienginex.org/pagename/pagename?selector=...
†:i/*(ワイルドカード)
正規表現もワイルドカードもjQueryにはない。でも…
†Regex Selector for jQuery – James Padolsey
…:regex(property,regex) propertyの値がregexに適合するような要素を通すフィルター。
jQuery.filter(fn)のfnで正規表現を使う方法もあるけどこちらはJavaScriptコードで書く方法なので記法では真似しづらい。
埋め込みの解決方法 †
URIで参照されるのはオブジェクト。
埋め込み要素は参照されたときに「埋め込まれたほう」の要素に委譲。その戻り値を自分の物であるかのように返す。型が合わなければ戻り値は使えず、無いも同然になる。
いつものページ閲覧も別ドメインにある要素の参照も同じ †
相手が違うけどそれを呼ぶまでと呼んだ後は同じコードで。
同一ページ内の要素を呼ぶときも、よそのXを呼ぶときも全てURIで!!
相対URIでもいい。
サイト内のページを指定するなら相対パスでもいい †
ルートページ(/のこと)以下のパスだけなら同じWikiの中のページ名としてみなす。
要素まで含む †
プラグインをURIで呼び出し †
プラグイン要素は管理者が導入してから利用可能になるけど、既存サーバーでホスティングされている要素ならURI指定で埋め込み可能。
→ iframeで埋め込むほうが汎用性が高くていいはず。
ページも表現可能 †
要素を指定しなければページを表す。
またルート要素を表すこともできるように。
特定版を含む †
どのページかを示すために特定版を表せるように。版を特定しない場合は通常のリクエストと同じ代表が適用される。
クライアントでもだいたい同じ †
クライアント側アプリでは本物のjQueryを使うことに。
順不同パスと合わない †
URIは階層構造で順序が大事。順不同パスとは合わないので、順不同パスになるもの(ページ)とも合わない。ディレクトリ構造を無視したページIDだけのURIなら可能。