Send to your Kindle ***ページ集め [#d1f5e049] スクロールの基準になるページとそれ以下をすべて集める。 基準ページの外部名に含まれる語を全て含むページを全て。 上下関係はページ/外部名にしかない。 次にページ/属性の「下位展開を要求するか」と「下位展開要求に応じるか」の整合性を判定。 基準ページから始まって上位から直接の下位ページへ、2つの属性を調べてはビューに含めるページに追加していく。 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] リンク・自動リンクを下位展開に対応させる。 リンク先を修正。 基準ページ+フォーカスするページ。 その他のスクロールパラメーターも。