ƒRIGHT:Tag: ページ プラグイン 思い付き 実装 設計

目次 Edit

 
 

関連 Edit

 
 

検索:名前

 

ページ/名前 Edit

ページを表すIDで、利用者に見せる名前
利用者に見せない名前はページ/内部名[?]

思い付き Edit

ページ名を扱いやすく Edit

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のように。
(有力な見解[?]の仕組みを使って)

正規表現 Edit

ページ名の指定はどれも正規表現で受け付けるようにしたい。
→使い方が難しい。ページを指定するならシステム側で曖昧に解釈。

ページ名は読むためのもの、IDになるのは内部名 Edit

重複無し。重複があれば、どちらかを扱う。どちらでもいい。
ページの中に見解があるので、同じページ名で違う表示ということはある。

「/」 Edit

ページ名の階層区切りはサイト設定。変更、他のwikiからのインポートを容易にするために複数設定できるように。(旧設定と新設定を両方有効にできるように)

「/」より「の」 Edit

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

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

自動リンクを発生させるためにページは多くしたい。全文検索の他に言葉を選択する探し方も欲しいので。
が、検索結果では邪魔になる。
Wikiの設定にディレクトリ名にあたる部分もページ化するオプションがあってもいい。
作られるページは既定のページ

名前変更は2つ以上同時受け付け Edit

同時に2つ以上のページ名を変更できるように。
ページ名の入れ替えを1ステップで可能にする。
ページ名ページ編集と同義。1行目がページ名になる。ページ名が重複したときどうするか?

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

変更するときは関連ページも一緒に Edit

下位ページがあるときなど、ページ名がディレクトリ名になっていることがある。
ディレクトリ名が変更されたらそれ以下のページ名も変わることになる。ファイルシステムと一緒。

変更しても同じページ Edit

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

→一般ユーザーでも名前変更が可能になる。

名前変更でリダイレクト Edit

ページ名前変更をしたら旧名はリダイレクトページになる。
もう一手間かけてリダイレクトページを消してもいいし、旧名をまた使うまで残しておくのも良い。

他サイトからのリンクを切らないための措置。

実装 Edit

記法などでは3層一括指定 Edit

記法など、分けて書けない場合…

 項目名(ページ名):見解名:番号

…といったように区切り文字でつないで。

表示時の省略 Edit

区切りごとに中間から省略、少なくともルートページの1つ下と(最後は)表示。それでも長いなら最初だけの表示。

WikiSite/ToDo/上位ページ削除されると、編集不可でも削除するか/第一部
↓
... /ToDo/ ... /第一部

1つの区切りが長い時は単語単位で省略。CJKVの場合は文字種区切りにでもしておく。これも中間から必要なだけ省略して少なくともルートページの1つ下と(最後は)残す。それでも長いなら最初だけ。
記号の前では(日本語の場合はひらがなと句読点の前では)区切らないのもいい。

WikiSite/ToDo/上位ページ削除されると、編集不可でも削除するか
↓
... /ToDo/上位ページ削除されると、編集不可でも削除するか
↓
... /ToDo/上位ページが ... 編集不可でも削除するか
↓
... /ToDo/上位ページが ... 削除するか
↓
... /ToDo/上位ページが ...

必要なだけ省略。
単語が短いと省略記号(...)のほうが長くなるかも知れないが、省略。

書き方二通り Edit

これで前後関係の分かるリンクを作れる。

→もっと多様にした。→自動リンク

既定値は最初の見出しか1行目 Edit

UIでもAPIでも一貫して。

細かい章は段落と同様に頻繁に使う。
章をページとして実装するとなると、章にいちいち名前を付けるのは煩わしい。
最初の章の見出しページの1行目全体を名前にする。章の場合、一行目は見出し記法になっているはず。章がない場合に1行目を使用。
重複対策でランダム文字列を数文字付けてもいい。あとで変更出来ればいい。
ページ名は長くなりやすい。
PostEverのように日付でもいい。がそうするなら予め日付を入れておく。入力時にないデータを付け足したりしない。

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

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


ページ作成では名前が先?内容と同時受付?
:t/?[?]

ページ名もコンテンツ Edit

ページ名ページ内容と同等に。
検索自動リンクなどの対象に。
ページ内容からページ名を作ればいい。(条件に当てはまる)1行目をページ名にする。常に作成時だけでなく)。
ページの一行目=ページ名は成り立たないこともあるので、ページ名ページ内容に連結してから検索対象にする。

同一視する文字 Edit

ページ名では…
大文字小文字の同一視(PageとPAGEとPaGeは同じ単語でいい)、スペースとハイフン(New PageとNew-Pageは同じ単語)。
カタカナひらがなは区別。全角半角は統一(全角空白→半角に、半角カナ→全角に)
これは利用者が再利用するときの利便のため。
→探索用のページ名では統一、表示時は入力されたまま。ページ名自体がユーザーの眼に触れるものなので、入力されたとおりに表示されなければならない。

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


→同一視は自動リンク検索で。
同一視後同じページ名が複数できるので、検索中は同じページ名が複数現れることになる。

相対パス/絶対パス Edit

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

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

ディレクトリ名に順序なし Edit

ディレクトリ構造はない。複数タグページ名1つ。
タグはリストではなく集合として扱う。

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

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


ルートページ「root」に「B/C」というページ名を書くと…

  • root/B/C(相対パスとして扱って)
  • B/C(フルパスとして扱って)
    …のすべてに自動リンクする。存在していれば。
    存在していなければそのままのテキスト。
    BracketNameにすれば順序指定。明示的で強いリンクになる。明示的リンク
  • 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(フルパスとして扱ったのと同じ)
    …に自動リンク

同じディレクトリ名があってもすべて有効。数を記録しておけばいい。
「の」が単語区切りとは限らないので、すべて有効にする必要がある。

見出しに区切り文字が入ると、順序が変わるかも Edit

→変わっていいことにする。

ルール

パスの表現方法 Edit

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

あるページに書かれたリンクは上位か下位か?

位置関係リンクに含まれるタグ[?]
上位ページ自身のタグのサブセットだけを持つページ
同階層にあるページ自身と全く同じタグ集合なら
下位ページ自身のタグを全て含み、さらに自身と同じタグまで付いていれば
別階層
(無関係、上下関係なし)
部分的に一致するだけなら
関連度は一致するタグの数と、それぞれの重要度から

タグON/OFFでナビゲーション生成 Edit

ディレクトリ上下階層への移動を支援。
閲覧中ページタグを個別にON/OFF、ONになっているタグを含むページを動的にリストアップ。
これで書かれていないページリンクを動的生成。

生成するだけでもいい。リストから1つ選択するとそばにリンク生成。ページに追加。それをクリックして利用。
利用者全員で共有する履歴が自動生成されるようなもの。
複数選択できるようにするのもいいかも。

ON/OFFでページ名変更 Edit

ページ名の単語をボタン化、ON/OFF可能にする。決定ボタンで決定。
順不同ディレクトリ名なので順序を入力しなくていい。ON/OFFだけのボタンで十分。

初期ページ名(デフォルト)は自動で。デフォルト値とボタンで命名。あるいは初期ページ名は完全に自動で作った後にボタンで変更。

ページ名横に変更ボタン。(編集ビューの場合)

順序 Edit

実装時にはページ名間に順序を。
同一ディレクトリ内では辞書順。
ディレクトリは深さ優先。浅い階層の違いは大きく、深い階層の違いは小さく評価。
つまりフルパスを辞書順にするのと一緒。

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

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

名前が重複したら追加 Edit

ページ作成編集と異なり、データを消さない。消すような状況では追加。

設計 Edit

ページ名を使うということは、ディレクトリ名も使うということ。 Edit

ページ名とディレクトリ名は同一オブジェクト。

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

: Edit

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