• 追加された行はこの色です。
  • 削除された行はこの色です。
RIGHT:[[:t/下位展開]] [[:t/ページ]] [[:t/ビュー]] [[:t/閲覧]] [[:t/編集]] [[:t/履歴]] [[:t/UI]] 

ツリー状のページ構造で、上位ページを扱うときに下位のページを含む機能。
ルートディレクトリにサブディレクトリが含まれるように。

別々のページに書いたテキストをまとめて見せる仕組み。
実装はページレンダリング時に使用するテンプレート。と、自動リンク先の修正くらい。

ページ/編集やページ/履歴とも関連。

#contents

**[[下位展開でやること]] [#u5fb8330]
**思い付き [#jdc4007f]
***[[:i/下位展開をCRUDそれぞれの場合で]] [#s07ee8e0]
**範囲 [#fd2bc2c6]


***[[:i/編集時展開はどうなるか]] [#zf12134c]
リスト構造だけど展開範囲を工夫してネストしているかのように見せる。
***見える範囲 [#p748006c]
ページ構造のなかで、表示は指定されたページと下位ページの[[有力な見解]]を表示。
***[[:i/編集コマンドの下位展開オプション]] [#f8f81228]
***表示中より深いページを編集するときの展開範囲 [#h9500888]
URIで指定されたページ(基準)と、そこからの深さで展開範囲指定。
閲覧ビューでも編集ビューでも深さが同じになるように展開。

閲覧時展開/編集時展開
***ページングかスクロールか→スクロールで [#n8622029]
下位展開された長いページをどう見せるか。


***下位展開するかしないかの設定 [#z2578147]
-下位を展開するか
-下位展開に応じるか

ページが2つのページ/属性を持つ。
隠し属性がついていれば「下位展開には応じない」
編集時、閲覧時共通。同じ属性値で両方の場合に影響。片方だけ許可されても無意味なので。禁止したいなら閲覧権限や、編集ビューの閲覧権限で。

一度に多数のページを編集することになるかも知れないが、1ページだけの編集操作も用意して対処。


***1つ下まで [#p3a56b25]
2つ下は1つ下の繰り返し。%%1つ下に埋め込みがあれば2つ下も展開される。埋め込みの連鎖。%%

***展開制限 [#ha19ff70]
リクエストやAPIで制限値をしていされたらそれを優先。ページ属性にある設定値は無視。
**構造 [#ob3a9095]

***[[:i/下位展開はビューを表すページ]] [#q5f99945]
ビューの一種に「下位展開付き閲覧ビュー」などがある。
「ビュー」と呼んでいるが、ページレンダリング時のテンプレートの1つをそう呼んでいるだけ。

下位展開付き閲覧ビューは下位展開用の枠組みの中で通常の閲覧ビューを見せるもの。
下位展開の区画一つをとれば通常のビューがあるだけ。それが複数あるのが下位展開。
***[[:i/レイアウトも下位展開も実装はページセットを受け入れるテンプレート]] [#hfccd3fa]
***1つ上/1つ下 [#i8d1b64a]
外部名に含まれる単語を1つ除けば1レベル上位。
逆に1つ付け加えると1レベル下位。

階層レベルは含まれる語の数。ルートはレベル0。

----
例えば ページ/編集/UI は ページ、編集、UI、ページ/編集、ページ/UI、編集/UI、ルートページ のすべての下位に位置する。

ページ/編集/UIの…
+1つ上
ページ/編集、ページ/UI、編集/UI
+2つ上
ページ、編集、UI
+3つ上
ルートページ
***%%保存単位%% [#veaf1456]
%%セクションは永続化する。保存するのはページではない。%%
%%ゆえにページ/履歴はセクション単位。%%
***ページタイトルと下位ページは自動付与 [#s6e5341e]
ページ先頭にはページタイトルが見出しとして(ページ/内容に書いてなくても)''閲覧時に''自動付与する。
ページ/内容に埋め込まれていない下位ページ・セクションは''閲覧時に''自動付与する。

ただし、権限判定に通った場合だけ。
それと基準ページが下位展開するか、下位展開される側が展開に応じるかの設定も反映。例えばルートページは下位展開しないとか。

下位ページ埋め込みは無くてもいいかも。上位ページが作られていないときの自動生成ページに埋め込んでおけば。
(例えば/A/Bというページを作って、/Aを作らない場合に/Aを閲覧すると自動生成)
***%%対象はセクションとページ%% [#gdf270a7]
***[[:i/セクションをやめてページのネストで]] [#d813a9fa]
ページをネストしたときの問題解決。
**体裁 [#q1420ada]

***閲覧/編集/履歴 [#q8e64067]
どのビューでも下位展開。

閲覧は内容を全て再生するビュー。読ませたい情報を全て載せる。
編集は画一化。追加と削除のためのもの。
履歴は1区画に複数の版を(その名前と一緒に)表示。できれば閲覧時並みに再生。

編集ビューでの履歴もある。WikiTextでの履歴。「ソース表示」と言われるもの。スライダーで版を選択するような。

区画ごとにビュー切り換え。1区画をページ全体に表示するような独占ビューも。
区画の大きさは広げられるように。上下方向だけでいい。ハンドルを用意、そのドラッグで上下にサイズ変更。横方向を変えられるとややこしい。
履歴の年表を出すなら1区画だけの独占ビューで。年表だけで画面の大部分を使うので。

|>|CENTER:1区画|
|>|CENTER:1区画|
|CENTER:1区画|CENTER:1区画|
|>|CENTER:1区画|
***「New」組み込み済み [#x58f1400]
差分表示でなくても更新された部分を見つけやすくするために、ページ名やセクションの後に「New」を表示。
(目次にも、本文中にも)
***展開された色 [#h4820a64]
展開時に深い(遠い)ページほど薄く表示。
文字の大きさを変えてもいい。
…で、見えないものは処理しない。代わりに「もっと詳しく…」というリンクを表示。

-色は粗い階調で違いが分かるように
-薄くしない深さ
通常の1ページとして扱いたい深さ。
デフォルトは全色階調の1/2とか。
-処理する深さ
デフォルトは全色階調の範囲。

…を継承できるようにページ/属性に。
***複数ページを閲覧/編集 [#ze52a7e6]
編集時は見出し記法(セクション記法)WikiTextで複数ページを一度に記述可能。
%%複数ページは作れない。%%


**ページの作成/削除 [#x96444fa]
***ルートページが消されたとき [#s950be4f]
もしルートページからでも展開する設定で、ルートページが消されてしまったとき、ルートページを戻すだけで全て元通り。
書き換えられたのはルートページだけなので、同じ手間で復帰。
下位ページ(ルートの下位=全ページ)も消えてしまう実装にしても1ページあたり2〜3クリックで復帰(リバート)。

ルートページに含まれるセクションも一度消えるがルートページと一緒に復帰。

ルートページを消すことで全ページを削除したりはできない。それぞれのページを対象にした削除をしないと。
***パージ [#ie1b7ac7]
不要。
ページは独立したものなので上位が消えたからといって下位には影響なし。ただの埋め込み。
セクションは親(ページ)の一部なので、ページ諸共消える。パージ不要。セクション作成は利用者から特に意識されないし、セクション削除もページ編集の一部として見える。
***[[:i/削除済みページのパージ]] [#v02cd624]

孤立したページ(オーファン)は別途対処。オーファンの一覧を作るとか、オーファンをパージするとか。→[[オーファン]]

%%埋め込みされなくなっただけで、消したつもりのページが残ってしまうことがあるので、そういうページを消す仕組みがいる。%%
%%複数データを一括処理するとき、取り消しが困難になりやすいので、その対策も含めて。%%
%%時間経過かパージコマンド実行で削除する。’’通常の削除なのでそれでもまだ復帰できる’’。%%
%%時間は無限大にもできるように。→自動的には削除しないという設定になる。%%

%%被リンク数ではなく、上位ページが無いページをパージ対象にする。%%
%%これはファイルシステムのフォルダーのメタファーに当てはめやすい。%%

--------------------

%%下位ページ作成をユーザーに意識させなくするので、パージも意識不要する必要がある。%%
%%編集時に下位展開されれば、下位ページが孤立することはなくなる。問題は下位展開の深さに制限をかける設定の時。埋め込みだけ消すことができる。%%
%%それでも孤立ページができてしまうなら、孤立しているページ一覧を作る機能も用意。%%

不要。
**権限 [#t6cb63b3]
***権限不足 [#yadfe92a]
編集権限がない場合、下位ページが埋め込み記法だけになり、下位ページの内容が保護される。見出しを削除しても埋め込みが行なわれなくなるだけ。埋め込み記法は上位ページのものなので上位ページの編集が可能なら消せる。
見出しだけの下位ページがあると展開されたかどうか見分けが付かなそうだが、埋め込み記法か見出し(テキスト)かで区別できるはず。

***[[:i/下位展開時に権限不足の場合]] [#kdbe7105]
**あとでなおす [#c115c1a3]
***必ず埋め込み [#w3efb61b]
埋め込まれていないセクションはページ末尾についた#ls 的な要素により自動的に埋め込み。すでに埋め込まれているページは除く(という機能を付ける)。つまり「その他の下位ページ」。
利用者が書いたテキストの後にソートされたセクションが続く。Windowsのスタートメニューのような。

ページのオーファン化は避けられる。

この後付けを「ゴミ箱の中」とする。

権限判定(錠と鍵の整合確認)あり。

--------

下位ページについても同様に埋め込み。
権限2種類(錠と鍵)の判定あり。

----
→埋め込みではなくなった。順序情報が無いページは無理のない範囲で上に展開される。
**下位展開/ [#o3033d11]
#ls()

**[[tag:下位展開]] [#wde74549]
#lsx(tag=下位展開,new=true)


***[[:i/下位展開の全区画にコメント欄]] [#ubd86af6]
ほぼどこにでもコメント追加。