RIGHT:[[:t/下位展開]] [[:t/UI]]

下位展開を埋め込みで実現するのは複雑なので却下。もういい。
ページ名だけで上下関係を保持して、下位ページの位置は固定。下位ページの順序は可変。

**章の作り方 [#j5eb5f03]
+ページを作る。別のタブを開いて。
+リンクする(埋め込み)

または
+ページを作る(下位に位置するように)
自動的にリンクされる。埋め込みで。
**章になるページの作り方 [#i048df88]
案。
-章は必ずページが作られて、埋め込みリンク化する
書かれた内容が自動的に置き換わる。
-許可されたときや埋め込みリンク化を指示されているときだけページ作成、埋め込みリンク化(半自動)
記法を用意。その部分だけ自動的に置き換わる。
-埋め込みリンク化はしない。内部で別ファイルになるだけ。
書かれた内容はそのまま保持。
別ファイルになっていることは気にしなくていい。編集の衝突を軽減できる。ユーザーは章が個別ページなっていることを利用できない。
**解決策 [#s35f851d]
→半自動で。
ページ化する記法は手間を省くためのオプション的要素。これは書いた通りの内容が残らないので。分かりにくい。
標準的な方法はページ作成コマンドで別途ページを作ること。下位ページを作れば自動的に表示される#lsのような記法も。これをページフッターに置く。下位展開機能。

埋め込みリンクを消すと章はリンクされないページになる。
%%が、明示的に埋め込まれていない下位ページを自動的にページ末尾に埋め込む(ような機能呼び出しをデフォルトのページフッターあたりに入れておく)といい。%%
%%→削除。この点は埋め込みリンクと違うので、埋め込みリンクの亜形にするか、%%
→リンクされないまま残す。

** [#y30ec21f]
下位ページが展開されないと使いにくい。
作成時のページ内容が再現されないので。
→編集時、下位ページを展開。1つのテキストに下位ページ分も含むようにすることが条件。ページトップのEditボタンで。見出し横のEditボタンはその見出し1つ分だけ。


C:見出しを下位ページにするのは特殊記法のときだけ。
R:閲覧時、「下位ページを見せない」属性''以外''のページなら下位と結合して表示。
U:ページトップのEditボタンは下位を連結して編集するもの。編集後、下位も更新。
%%D:連結編集で埋め込み位置マーカーを消すとその下位ページ削除。%%
D:埋め込み位置マーカーを削除してもそれだけ。全選択して削除→ページを削除できるように、上位ページが無いページを削除する機能は用意。
**埋め込みマーカーを消すと下位ページも消える? [#q0bb8476]
どちらがいいか?
-半自動で、ユーザーに了解を得て下位ページ化しているので、残してもいい。(特殊なことはせず、別ページと埋め込みリンクにしてもいい)
-ページ全消しで情報削除ができるように(利便性のために)消す。

→両立。編集方法次第で。
**実装案 [#a006bc25]


編集には下位を含める。
下位が展開されているときは複数ファイルを書き換えることになる。
下位が見出しだけで含まれているときは影響なし。埋め込みが行なわれなくなるだけ。
(見出しだけの下位ページがあると分かりにくくなる?)

ルートページを消してしまったとき、書き換えられてしまったとき
下位ページが残っている間はルートページを戻すだけで元通り。
消えてしまったら1ページあたり2〜3クリックでリバート。

ルートページと下位全てを消したいとき
ルートページと下位すべてを消したいとき
ルートページだけ消して放置。またはパージコマンド実行。下位ページに手を加える必要はない。


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

被リンクではなく、上位ページがないページをパージ対象にする。
フォルダーのメタファーに当てはめやすい。

編集コマンドでは下位を含むかではなく、下位をいくつ含むかをコマンドのパラメーターで指定。
これは分かりやすくするため閲覧時も編集時も同じ値に。別の値にはしないように設定。禁止はしない。できていい。
0以上の値。0で下位を見せない。展開しない。
∞も。それ以外はデフォルト値。デフォルト値は1〜2程度(コードで定義)。デフォルト値のときだけ展開しないというページ属性を反映する。
0でもアウトライン編集として利用価値がある。見出しの順序入れ替えをしやすい。



下位を作る見出し記法は見出し+下位。
下位は1階層下だけ。使いにくくしないため。




設定では純粋な数値型を使わないこと。
必ずN/Aと設定なしと∞が使えるように。
0、-1は1や2と同じ型になること。
全てページに書くので、元は文字列。十分に扱える。
すべてページに書くので、元は文字列。十分に扱える。


編集後は差分表示へリダイレクト。
誤った編集をしても、前のページが表示されているのですぐにコピペできる。(リバートは場合によっては適切ではない。自分の編集内容が消えてしまうので。どこからやり直すか選べていい)

差分表示にはHTML表示も付けて。


** [#i3a761f3]
一番分かりやすいのは
-展開深度∞
-ルート(に相当する)ページは展開しない属性

普通に使えば深度は最大でも4程度。
編集頻度は末端のほうが高いだろうから下位展開は気にならないはず。