†:i/ページ要素間の連携方法:『データコンテキスト』[?]

PageElementを書けるところその2。例えば機能呼び出し記法のパラメーターを書くところ。
ここに機能呼び出しを書くとHTMLではなく再処理しやすいデータを生成する。(どんなデータかはElement次第)
ページはHTMLコンテキスト、という考え方。

その1はHTMLコンテキストと呼んでおく?もっと柔軟に。多彩に。
HTMLコンテキストページ名セットコンテキスト、…のように。どんなデータをリクエストするかは土台になっているElement次第。そのリクエストにどう答えるかは呼ばれる(内側の)Element次第。


データは統一しなければならない。参照可能ならいい。
Perlのリストような。戻り値がリスト・ハッシュ2通りのI/Fがあってもいい。どちらも内容は近くなるように。


子要素は複数あるもの。
それらの戻り値を合成する必要があるけど、合成ルールは親要素のコード次第。
適当にまとめて、は変えないで。
特殊なことではないので専用ライブラリは要らない。

PageElement構造上で同じ形式を扱えるelementがつながっていないと伝播しない。呼び出せないし戻り値も得られない。
標的までのパスがないときはDOM風アクセスで標的を決めて。

コンテキストに対応するメソッド名 Edit

  • Element.ToPagenameSet
    ページ名の集合。順序なし。
  • ToPagenameList
    ページ名順序ありリスト。
  • ToHTML
    HTML(単要素)
  • ToWikiText
    WikiText。つまり処理前の入力されたデータそのまま。単要素。
  • ToDataSet
    何かの集合。Element次第。呼び出した方もそれなりに処理。

で、Elementによってはこれが別のメソッドのラッパーだったりしていい。