RIGHT:[[:t/下位展開]] [[:t/実装]] [[:t/ページ]] [[:t/順不同]]
RIGHT:[[:t/下位展開]] [[:t/実装]] [[:t/順不同]]

#contents

***どこでやるか [#y510d564]
フレームワーク/WikiEngineでのビュー。閲覧/編集/履歴などを担当する処理それぞれでそれぞれの下位展開を。データやページ集めはライブラリがあっていい。レンダリング時にHTMLかWikiTextか、(ページごとに)何をどこに付け足すか、などが異なる。
***いつやるか [#z30ca2c9]
下位展開がリクエストされているとき。
つまり下位展開用のパラメーターがリクエストに含まれるとき。

で、パラメーターのデフォルトが下位展開あり。下位展開なしを明示することもできるように。
***パラメーター [#r2332e50]
:表示範囲情報|
†[[:Done/ページングかスクロールか]]→スクロール式で
†[[:i/閲覧ビュー,スクロール式で]]
†[[下位展開,下位展開するかしないかの設定]]

:展開順情報|
†[[順不同パス]]
†[[:i/同階層の表示順序は単方向リストで記録]]
***ページ集め [#d1f5e049]
スクロールの基準になるページとそれ以下をすべて集める。
基準ページの外部名に含まれる語を全て含むページを全て。
上下関係はページ/外部名にしかない。

次にページ/属性の「下位展開を要求するか」と「下位展開要求に応じるか」の整合性を判定。
基準ページから始まって上位から直接の下位ページへ、2つの属性を調べてはビューに含めるページに追加していく。
***順序決め [#a317ace1]
†[[順不同パス]]
†[[:t/順不同]]

順序情報は集めたページのページ/属性にある。
†[[:i/同階層の表示順序は単方向リストで記録]]
同階層内の順序だけを変更するには(ページ/属性は)不適切かも知れないが、とりあえずシンプルに。
***展開 [#y2a780bf]
個々のページ変換とマージ。

†[[ビュー]]
†[[レイアウト]]

埋め込み要素に似た「本文(body)要素」を下位展開付きビューとレイアウトに埋め込んでおいて。
要素を組んで、ルート要素にデータコンテキスト提示。つまりToHtml().
***[[フレームワーク/WikiEngine]]に返すもの [#ob48a13b]

**リンク、自動リンク [#j2f0f87c]
リンク・自動リンクを下位展開に対応させる。
リンク先を修正。
基準ページ+フォーカスするページ。
その他のスクロールパラメーターも。