• 追加された行はこの色です。
  • 削除された行はこの色です。
RIGHT:&tag(ページ,プラグイン,思い付き,実装,目次);

*目次 [#mc4cde63]
#contents
#br
#lsx(new=true);
#br

*関連 [#xb19d8d7]
#related
#br
#lsx(tag=章,new=true,except=^ページ/章(/.*)?$)
#br
[[検索:章]]
#br
----


*ページ/章 [#i15520aa]
RIGHT:[[:t/章]]

ページの中にあるページのこと。ユーザーには気にさせない。
内部処理に存在する。
別名:下位ページ、サブページ、章
*思い付き [#z2fc3f58]

**編集時、章全てを1つのテキストに [#m0705408]
編集後には全ての章を作り直す必要がある。他プロセスとの競合はページごとのキューで解決。
%%PukiWiki Plus!のように1つのページにすると、拡張性/一貫性に問題が。%%


**章(下位ページ)との結合・分割(下位再作成)  [#db13e0b5]
必要なときとそうでないとき(下位を含まないほうがいいとき)がある。
%%検索など、上位と下位を両方扱ってはいけない場面。%%

→ページを参照するときは下位と結合する/しないを(APIとUIで)選べるように。

RIGHT:[[:t/章]]
**凍結などで下位を含むかは利用者が決める [#if7b54d2]
含む/含まないの2通り用意。
UIでの選択。

%%ルートページの更新履歴%%
%%下位を含むとwiki全体の更新履歴になる。%%
%%(1ページ更新するたびに増える)%%
→設計を簡単にするため却下。
**負荷を制限するなら [#h4820a64]
負荷を制限するなら、下位展開時に深い(遠い)ページほど薄く表示。
文字の大きさを変えてもいい。
…で、見えないものは処理しない。代わりに「もっと詳しく…」というリンクを表示。

RIGHT:[[:t/負荷]]

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

…をページ/属性に。
章などの単位で設定できるようにするため。
**リンクとは違う [#s490397e]
ページ/リンクよりも強い結合になる。
編集時には下位にある章をすべて統合する。
%%下位にある章すべての編集権限を持っていないと編集できない。%%
%%→編集できるページを避けるように編集対象を選ぶ必要がある。%%

→編集できるところだけ編集可能に。
**%%章作成プラグイン%% [#g439d30f]
%%このプラグインを使って書いた部分は、別のページになる。%%
%%プラグインは「もっと読む」というリンクに展開。%%
%%編集時には1つのページに戻す必要があるし、上書きされたら章を再作成する必要もある。%%

%%章のサブディレクトリ名、ファイル名は自動的に決定するか、利用者が指定したものに。%%
%%Wiki外からリンク可能にするために。%%
**%%2種類%% [#f68f0d1f]
-%%章としての章%%
-%%別のページとしての章%%

%%章としての章は新ページに。%%
%%章プラグインでは編集時に統合、編集後に再生成。%%
**章をページ化する意味 [#gf8b216f]
章をページ化するとタグ付けの効果が高まる。
章ごとにタグを付けられる。

#br

%%タグが多くなる。%%
%%→タグを集約する方法を。%%

%%どう集めるか?%%
%%-タグは単語か単文%%
%%→ひらがなを付けて。%%
%%字(文字単位)と読みで類似度算出。%%
%%-似ているものをグループ化%%
%%で、グループをつなげる。%%
%%→グループでまた類似度算出。%%
%%(今度はタグ単位)%%
%%-→類似度算出の汎用コードを。%%

#br

%%-似ている以外に大分類も。%%
%%タグはページなのでディレクトリあり。%%
%%同じ分類ならディレクトリでまとめられる。%%

#br

スペルミスや誤字を防ぎ、ページ名を統一するのに役立つ。
章も自動リンクの対象になるため、リンクが増える。リンクになっているかどうかでスペルミスを発見できる。

**継承 [#weed8be5]
章はそれを含むページ(上位ページ)の属性を引き継ぐ。
属性で分類、設定用ページの下位ページも管理用になるというように。
**章を隠せるように [#e0e19ef0]
章を隠す(見る権限を限定する)ことで、設定の一部を見られなくできるように。
→[[ページ/属性]]

RIGHT:[[:t/管理]]
**プラグインで [#k0dca8cd]
ページを集約するのではなく、プラグイン呼び出し(リンク)でつなげる。
クラス間にページ─ページのつながりはない。

単純化のため。
**アンカーには見出しをそのまま使う [#f0c05dcb]
編集時に変わりにくいように。


----

**%%集約に%% [#ode311d0]
%%コンポジションでは検索で使う全ページ一覧を展開できない。→集約に。%%
*実装 [#t71f268a]


**章になるページ(下位ページ)の作り方 [#id9b8f87]
常に下位ページ作成、埋め込みリンク化をする。いつでも自動で。ユーザーには下位ページというものを見せない。
→見出し記法を書くとその見出し以降が下位ページになる。

下位ページ化しても分かりにくくならないように、編集時の下位ページ展開と、閲覧時の下位ページ展開をして、下位ページ化をユーザーに見せない。

%%ページ化する記法は手間を省くためのオプション的要素にする。書いた通りの内容が残らないので。%%
%%標準的な方法はページ作成コマンドで別途ページを作ること。DanglingLinkでも&page;のような記法と組み合わせて[[&page;/章タイトル]]のように。%%

下位ページを作れば自動的に表示される#lsのような下位展開プラグインも。
これをページフッターにでも入れておけば、下位ページ展開をしない設定で埋め込み記法を削除してしまっても下位ページを見失うことを防げる。このプラグインでは重複展開しないように。


%%下位ページを作る見出し記法は、見出し記法に下位を示す記号を付けたものにする。%%
%%下位とは1階層下。それ以上深い階層まで一度に作る必要は無い。使いにくくしない。%%

%%下位を示す記号とページ名を書くとそのページを作成。既存なら追加。%%
**ページ=章、ページ名=見出し [#o40c214b]
ページと章、ページ名と見出しが同一になる。
重複が許されなくなる。
見出しを書いた時点で既存の見出しと重複した場合、統合。単純に追加。

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

何階層下でも作れる。
途中、存在しない階層があってもいい。フォルダー・サブフォルダーとは異なる。

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

 *ページ/編集
 *編集/ページ

ページ/編集、編集/ページのどちらでも参照できるページが作られる。
どちらでも自動リンクになる。

内部処理では…どちらでもなくページIDを使う。有効なページ名表現→ページIDができるようにして。
複数あるページ名表現のうち標準は…なし。それとも辞書順?
**リンクなしでも残す [#c7a8c560]
埋め込みリンクを消すと章はリンクされないページになる。
これはそのまま残す。
特殊記法で作っている=ユーザーの了承を得て下位ページ化しているので、残していい。自動的に消すとかえって使いにくくなる。


**下位ページの消し方 [#s49c5995]
-%%普通に消す。下位ページを編集、空にする。%%
-%%下位展開付きの編集コマンドでページ/内容を全消し。まとめて消せる。%%

%%…以上を両立。%%
%%編集を’’始めるときの’’オプション(下位展開の有無)で編集対象(テキストボックスの内容)が変わるので…%%
-%%下位展開されてるかどうか分かる%%
-%%消える範囲が分かる%%
%%「見えているものだけが消える」ので分かりやすい。%%

普通に消す。下位ページ分を消すとそのページも消える。全消しすると下位ページが全て消える。
見えているものだけが消えるように。
**下位展開(閲覧時/編集時) [#z8af969d]
下位ページが展開されないと使いにくい。
作成時のページ内容が再現されないので。
→編集時に下位ページが展開されるように。1つのテキストに下位ページ分も含むようにする。見出しを編集するときはその見出しの下位も含む。

%%見出し横のEditボタンはその見出しだけ。下位ページは埋め込みリンクのまま。%%
%%どのページも見出しで始まるので下位展開しない編集はページ全体どこででもできる。%%

ページ先頭にはページタイトルが見出しとして(ページ/内容に書いてなくても)’’閲覧時に’’自動付与する。

自動で埋め込み記法を追加するようなことはしない。
下位展開しないページでは(例えばルートページでは)下位とは別のページとして見えるようにする。
それ以外のページは下位ページ全てを含めて1つのページに見えるように。
***下位展開をCRUDそれぞれの場合で [#j0a9707d]
C:見出しは下位ページになる。
R:閲覧時、「下位ページを見せない属性」が付いていないページなら下位と結合(下位展開)して表示。
U:下位展開されたページを編集すれば下位ページも更新。
D:下位展開されたページを消せば、そのページも消える。
**実装案 [#yadfe92a]
編集には下位ページを含めることができる。どうするかはユーザーからのリクエスト次第。編集コマンドに下位展開オプションがある。
下位ページが展開されているときは複数ファイルを書き換えることになる。
下位ページが見出し(埋め込みリンク)だけのときは下位ページに影響なし。埋め込みが行なわれなくなるだけ。
見出しだけの下位ページがあったとしても、埋め込みリンク記法かどうかで区別できるはず。それに見出しごとではなく1ページ分をまとめて下位展開するので気付きにくくはない。


**例 [#y30d53b1]
***ルートページを消されたとき [#s950be4f]
ルートページを消してしまったとき、あるいは書き換えられてしまったとき、下位ページが残っている間はルートページを戻すだけで全て元通り。
下位ページ(ルートの下位=全ページ)も消えてしまったら1ページあたり2〜3クリックでリバート。

***ルートページを消したいとき [#qdb9b2cb]
ルートページだけ消す。あとは放置するか、パージコマンドを実行。全ページが削除される。下位ページを編集する必要は無い。


**パージ [#ie1b7ac7]
不要。

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

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

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

下位ページ作成をユーザーに見せなくするので、パージを不要にする必要がある。
編集時に下位展開されれば、下位ページが埋め込みされなくなることはなくなる。問題は下位展開の深さに制限をかける設定の時。埋め込みだけ消すことができる。
それでも埋め込みされないページができてしまうなら、孤立しているページ一覧を作るプラグインも用意。
**編集コマンドの下位展開オプション [#p371614e]
編集コマンドでは「下位を含むか」ではなく、「下位をいくつ含むか」を指定。
これは分かりやすくするため閲覧時も編集時も同じ値を設定しておく。非推奨設定ながら別の値にもできるように。

値の範囲は0以上の整数。0で下位を見せない(下位展開しない)。
無限大も設定可能に。それ以外はデフォルト値。デフォルト値は1〜2程度?ハードコーディング。デフォルト値のときだけページ/属性の「下位を展開しない」を反映する。

0のときでもアウトライン編集として利用価値がある。見出しの順序入れ替えをしやすい。
**%%下位ページをサポートする機能を%% [#pf587e20]
%%ページ作成時とページ編集時でも下位ページの仕組みをサポートする機能を用意。%%
下位ページは上位ページと一緒に扱われる。
**想定される使用方法 [#of8e17c3]
一番分かりやすいのは
-デフォルト展開深度は∞に設定
特に指定しなければ末端まで展開。
-ルートページには展開しない属性を付与
ルートに限らず任意のページでページ属性を設定すればいい。

展開深度のデフォルト値を設定するので、ルートページなどでは下位展開されない。ちょうどいい。

普通にページ作成していけば最大でも深度は4程度。
編集頻度は末端のほうが高いだろうから下位展開を気にすることは少ないはず。


**見える範囲 [#p748006c]

ページ構造のなかで、表示は指定されたページの[[有力な見解]]とその下位ページのみ表示。
%%下位方向の管理者設定にある「下位何階層を表示するか」。%%→これはやめて、常に最下層まで展開するように。使いやすさのため。作成時に打ち込んだテキストがすべて見えるように。

%%それより下位のページはページ名だけ目次として表示。%%
%%これも管理者設定の「目次だけを何階層表示するか」で。内容表示しない深さを何階層分にするか。%%

ページ/属性で下位展開をしないよう設定されているページを閲覧・編集するとき、下位ページのサポートはしない。
別のページのように見えていいので。例えばルートページとその下位ページ。

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

%%目次の位置はそれぞれのページ内容の末尾、関連するページの側がいい。%%
**章に「New」 [#x58f1400]

差分表示でなくても更新された部分を見つけやすくするために、ページ名の後に「New」を表示。
(目次にも、本文中にも)