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

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

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


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


*思い付き [#f6b03b35]



**ページ名を扱いやすく [#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にページ名が入るのは良い案。変えない。UTF-8で。

検索欄を用意。
検索だと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]
重複無し。重複があれば、どちらかを扱う。どちらでもいい。
ページの中に[[見解]]があるので、同じページ名で違う表示ということはある。
**「/」 [#sa23f2fb]
ページ名の階層区切りはサイト設定。変更、他のwikiからのインポートを容易にするために複数設定できるように。(旧設定と新設定を両方有効にできるように)


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

%%***親ページも作る [#ud68512b]%%
%%さらに、「プロジェクトの名前」というページを作ると%%
%%-プロジェクト%%
%%-プロジェクト/名前%%
%%という2つのページが一度にできるように。%%
→この場合、「プロジェクト」はタグのようなディレクトリ名になる。→[[ディレクトリ名に順序なし>ページ/名前#ee9f56fc]]

自動リンクを発生させるためにページは多くしたい。全文検索の他に言葉を選択する探し方も欲しいので。
が、検索結果では邪魔になる。
Wikiの設定にディレクトリ名にあたる部分もページ化するオプションがあってもいい。
作られるページは既定のページ。
**名前変更は2つ以上同時受け付け [#w49222bf]
%%同時に2つ以上のページ名を変更できるように。%%
%%ページ名の入れ替えを1ステップで可能にする。%%
→ページ名はページ編集と同義。1行目がページ名になる。ページ名が重複したときどうするか?
-見解の1つにする
ページが隠れてしまう。探しにくくなるのでよくない。
-別の名前に強制変更
ページ名に(2)などを付けて。

正規表現を受け入れるなら管理者専用に?
複数のページ内容を一括置換するツール。


**変更しても同じページ [#l6df2a46]
名前を変更しても内部名は変わらないので、履歴は引き継がれる。
1つの履歴リストに複数のページ名が表示されることになる。

→一般ユーザーでも名前変更が可能になる。
**読み仮名 [#yb8ecf06]
**読み仮名・別名 [#yb8ecf06]
ページ名に()を付けると読み仮名扱いになる。
-空の()だと無意味。
読み仮名無しとされる。
-読みが無いときは音読みで解釈。自動的に読み仮名を付ける。
音読みはプログラム内で定義。またはWikiの設定で。PukiWikiの:config/PageReading/dictのように。
-ページ名として()を使いたいときは読みの()を付けた上で使う。
()を2組付ける。後の()が読み仮名。
ー別名・略称などもここに。
検索時にヒットさせたい言葉を入れておく。読む側にとっても有益。
()内の構造は特に考慮しない。ただの部分一致対象として使われるだけなので、どう書くかは任意。

どの別名・略称でもリンクできるように。
内部名を作って、それで管理すれば実装が簡単になる。

日付とタイトルをページ/名前にして、どちらでも一覧が作れるようにすればブログのようにも見せられる。



*実装 [#k748814d]

**書き方二通り [#y59f572d]
-ページ名だけ書く…ページへのリンク
-上位ページ+ページ名を書く…上位ページへのリンクで注目ページの見出しへジャンプ
URL#アンカー名。

これで前後関係の分かるリンクを作れる。
**既定値は1行目 [#qabe4b7f]
細かい章は段落と同様に頻繁に使う。
章をページとして実装するとなると、章にいちいち名前を付けるのは煩わしい。
ページの1行目の全てを名前にする。章の場合、一行目は見出しのWikiNotationになっているはず。
重複対策でランダム文字列を数文字付けてもいい。あとで変更出来ればいい。

既定値。入力する機会はあっていい。入力したらページ内容の一行目を変更。(一行目=ページ名は常に成立するように)
ページ作成時の名前欄は既存のWikiEngineに似せるためのもの。
必要という訳ではない。

ページ作成時の既定値は''ページ名として有効な部分の一行目''。
→最初の見出し(それも章…サブページになる見出し)を使用。
問題があればtitle:のようなページ名専用のWikiNotationでもいい。ページ名がページ内容に含まれていればいい。見出しと重複してもいいので自動付与。


**ページ名もコンテンツ [#gec28748]
ページ名もページ内容と同等に。
検索、自動リンクなどの対象に。
→ページ内容からページ名を作ればいい。(条件に当てはまる)1行目をページ名にする。''常に''(作成時だけでなく)。
**同一視する文字 [#h6ac0f96]
ページ名では…
大文字小文字の同一視(PageとPAGEとPaGeは同じ単語でいい)、スペースとハイフン(New PageとNew-Pageは同じ単語)。
カタカナひらがなは区別。全角半角は統一(全角空白→半角に、半角カナ→全角に)
これは利用者が再利用するときの利便のため。

ページの内容では統一はしない。そのまま保存。統一の必要がない。
検索用のデータでは統一していい。


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

%%そのページの1階層下に適合すれば相対パスとしてリンク。「オブジェクト」というページで「リスト/インデックス」と書けば「オブジェクト/リスト/インデックス」として解釈。ルートからの「リスト/インデックス」や他のページ下にあるページにはリンクしない。%%
%%ただし、相対パスとしてリンクできない場合(リンクできるページが無い以外の理由も含む)は絶対パス(ルートページからの完全なページ名)として解釈。自動リンク。絶対パスを指定したいなら(ルートページ名/ページ名)に。%%
→[[ページ/リンク]]


**ディレクトリ名に順序なし [#ee9f56fc]
ディレクトリ構造はない。複数タグ+ページ名1つ。
タグはリストではなく集合として扱う。

「ページ/クラス/図」と「クラス/ページ/図」は同じ「図」というページ。「図/ページ/クラス」とは別のページ。
最後の名前が本体。日本語の文法と一緒。英語の"of"とは逆。

タグ集合の包含関係で上位・下位の区別ができるので、相対パスも表現できる。
→#パスの表現方法

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

ルートページ「root」に「B/C」というページ名を書くと…
-root/B/C(相対パスとして扱って)
-B/C(フルパスとして扱って)
…のすべてに自動リンクする。存在していれば。

-root/C/B
-C/B
…にはリンクしない。ページ名が違うので。

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

「root/A」というページに「root/B」というページ名(root/Aと同階層)を書くと…
-root/B(フルパスとして扱って)
…に自動リンク。これも存在していれば。
(「root/A/A/B」などディレクトリ名に重複があるものは存在できないので考慮しなくていい。)

-root/A/B(root/B/Aと同じ)
…にはリンクしない。指定されていないタグが入っているので。別階層。


2012年12月12日を12/12/12とは表現できない。2012/12/12なら可能。(最後はページ名になるため)

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

「root/A」というページに「root/A/B」というページ名(root/Aの下位)を書くと…
-root/A/B(フルパスとして扱ったのと同じ)
…に自動リンク。


「root/A」というページに「A/B」というページ名(一部共通しているように見える)を書くと…
-root/A/B(相対パスとして扱ったのと同じ。Aの重複は許されない)
-A/B(フルパスとして扱ったのと同じ)
…に自動リンク。
**パスの表現方法 [#d4b16d70]

全てタグ化。
区切りは「/」でいい。区別したり、タグであることを強調する必要はない。
「/」区切りの最後がページ名。それ以外がタグ。

あるページに書かれたリンクは上位か下位か?
|~位置関係|~[[リンクに含まれるタグ]]|
|上位ページ|自身のタグのサブセット''だけ''を持つページ|
|同階層にあるページ|自身と全く同じタグ集合なら|
|下位ページ|自身のタグを全て含み、さらに自身と同じタグまで付いていれば|
|別階層&br;(無関係、上下関係なし)|部分的に一致するだけなら&br;関連度は一致するタグの数と、それぞれの重要度から|
**順序 [#d7e8c6e6]
実装時にはページ名間に順序を。
同一ディレクトリ内では辞書順。
ディレクトリは深さ優先。浅い階層の違いは大きく、深い階層の違いは小さく評価。
つまりフルパスを辞書順にするのと一緒。

複数のページを処理するときはこの順序で処理できるように。

%%特定のディレクトリと深さを指定して、この順序でページ名を取り出せるように。%%
→ディレクトリ構造に順序がなくなったので。

RIGHT:[[:t/API]]



*設計 [#f45aad86]


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

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


**: [#i2b281ff]
ページ名先頭にある特定記号(接頭辞、prefix)はページ名と分けて、ページの属性を示すものとする。
→[[ページ/属性]]の接頭辞