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

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

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


*ページ/名前 [#o8f7ce2e]
RIGHT:[[:t/名前]]


*思い付き [#f6b03b35]


**名前不要 [#qabe4b7f]
章をページとして実装するとなると、章にいちいち名前を付けるのは煩わしい。
細かい章は段落と同様に頻繁に使う。
付けなくても良いように自動命名。1行目の数文字/数文節を名前にして、「親ページの名前/自動命名の名前」というようにフルパス化。
(フルパスにしないと検索など他の閲覧方法でページ名を表示したときに分かりにくい。)


**ページ名を扱いやすく [#k931dfad]
> [[http://wikienginex.com/wiki/%A4%BD%A4%CE%C2%BE%A4%CE%A5%A2%A5%A4%A5%C7%A5%A2>http://wikienginex.com/wiki/%A4%BD%A4%CE%C2%BE%A4%CE%A5%A2%A5%A4%A5%C7%A5%A2]]

などとURLにページ名が入るのは良い案。変えない。

検索欄を用意。
検索だと1ステップ手順が多くなるので、結果が明確なら一覧を出さずに1位のページへリダイレクト。
Googleの[[I'm Feeling Lucky>http://www.google.co.jp/help/features.html#lucky]]のように。
([[有力な見解]]の仕組みを使って)

いしなお! - 私が既存のWikiEngineを使わなかった理由
http://tdiary.ishinao.net/20021206.html#p02
**正規表現 [#v4f24393]
ページ名の指定はどれも正規表現で受け付けるようにしたい。


**ページ/名前はID [#see30c75]
重複が無い。
重複があれば、どちらかを扱う。どちらでもいい。

派閥のため、同じ名前のページ名を許す。
そうしないと[[ページ/隠しページ]]、[[ページ/編集不可ページ]]で邪魔されて作りたいページが作れない事態になりかねない。
→ページ名には必ず派閥や版などを含めたIDが付く。同じページ名は複数存在しない。


**名前は複数あっても良い [#gce44b95]
ページに別名を複数持たせられるように。
どの名前でもリンクできる。
略称を付けられる。
&tip;→リダイレクトページで。


**/ [#sa23f2fb]
ページ名の階層区切りは不要。
/でも::でも[]でも「の」でも好きなものを使えばいい。
システムでは特にサポートしない。


**「/」より「の」 [#m7c4ba8d]
「ページの名前」というページを作るくらいなら「ページ/名前」を作ったほうがいい。
なら「の」を「/」の代わりに。

「プロジェクトの名称」というページを作るくらいなら「プロジェクト/名称」を作ったほうがいい。
なら、日本語向けのWikiではパス区切りを「の」にしたほうが良いのではないだろうか。


さらに、「プロジェクトの名前」というページを作ると
-プロジェクト
-プロジェクト/名称
という2つのページが一度にできるように。


自動リンクを発生させるため、ページは多くしたい。


**親ページも作る [#ud68512b]
「ページの名前」というページを作ると
-ページ
-ページ/名称

という2つのページが一度にできるように。


**名前変更は2つ以上同時受け付け [#w49222bf]
同時に2つ以上のページ名を変更できるように。
ページ名の入れ替えを1ステップで可能にする。


**読み仮名 [#yb8ecf06]
ページ名に()を付けると読み仮名扱いになる。
-空の()だと無意味。
読み仮名無しとされる。
-読みが無いときは音読みで解釈。自動的に読み仮名を付ける。
音読みはプログラム内で定義。またはWikiの設定で。PukiWikiの:config/PageReading/dictのように。
-ページ名として()を使いたいときは読みの()を付けた上で使う。
()を2組付ける。


**:付き/:無しを同一視 [#u4a6b836]

例えば2つのページを作る
+まとまる
+まとめる

まとまる→まとめるへのリダイレクトページにしたいとき、リダイレクトページを隠したい。

#br

-:付き/無しの両方を作れないように。
-:無しがあるとき、:付きを作ると属性変更ということに。
(名前に属性を入れてページ作成ができるということ)

→属性+名前を文字列1つで指定するUI


*実装 [#k748814d]


**相対パス/絶対パス [#y9f9f905]
ページ名は相対パスとしても自動リンクされる。
絶対パスとしても。

そのページの1階層下に適合すれば相対パスとしてリンク。
「オブジェクト」というページで「リスト/インデックス」と書けば「オブジェクト/リスト/インデックス」として解釈。
ルートからの「リスト/インデックス」や他のページ下にあるページにはリンクしない。

ただし、相対パスとしてリンクできない場合(リンクできるページが無い以外の理由も含む)は絶対パス(ルートページからの完全なページ名)として解釈。自動リンク。
絶対パスを指定したいなら(ルートページ名/ページ名)に。


**順序なし [#ee9f56fc]
ディレクトリ構造は考慮しない。

完全なページ名(ルートからのフルパス)はページ名のリスト。
これをリストではなく集合として扱う。

「ページ/クラス/図」と「クラス/図/ページ」を区別してはいけないということ。(「図/ページ/クラス」なども)

ただし、相対パスは有効。現ページ名以下が順不同になる。

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

ルートページ「root」に「B/C」というページ名を書くと…
-root/B/C
-root/C/B
-B/C
-C/B
…の全てに自動リンクする。

「root/A」というページに「A/B」というページ名を書くと…
-root/A/A/B
-root/A/B/A
-A/B
-B/A
…の全てに自動リンク。
(「root/A/B」、「root/B/A」、「root/B/A/A」などにはリンクしない。分類を有効にするため)

同じく「root/A」というページに「root/A/B」というページ名を書くと…
-root/A/root/A/B
-root/A/root/B/A
-root/A/A/root/B
-root/A/B/root/A
-root/A/A/B/root
-root/A/B/A/root
-root/A/B
-root/B/A
-A/root/B
-B/root/A
-A/B/root
-B/A/root
…の全てに自動リンク。
(「root/A/B」、「root/B/A」、「root/B/A/A」などにはリンクしない。分類を有効にするため)

書かれたページ名リストの全順列×2(現ページ名を付加するか否か)通り。

内部では集合として処理するので、階層がいくら深くても2回の判定でリンク可能なページが分かる。
内部では集合として処理するので、階層がいくら深くても2回の判定でリンク可能なページが分かるし、リンク可能なページは2つ以下しか存在し得ない。
表記は多い。表記→ページだけを保存する必要がある。
**順序 [#d7e8c6e6]
ページ名に順序を。
同一ディレクトリ内では辞書順。
ディレクトリは深さ優先。
つまりフルパスを辞書順にするのと一緒。

特定のディレクトリと深さを指定して、この順序でページ名を取り出せるように。

RIGHT:[[:t/API]]


*設計 [#f45aad86]


**ページ名を使うということは、ディレクトリ名も使うということ。 [#bc56761b]
→ページ名とディレクトリ名は同一オブジェクト。

日時は範囲
→更新日時も?
→更新日時…24時間以内のものはまとめて。範囲にする。


**ページ名 [#t06017ec]
ふりがなを付けて。

ページ名には同義語があることがある。
自動リンクの対象。
自動リンクのためのインデックスがある。

ページ名も文字コード変換しないと。