[Hiki-dev] Wikiの別名

アーカイブの一覧に戻る

Masao Mutoh mutoh****@highw*****
2003年 5月 11日 (日) 00:16:13 JST


むとうです。

最近、別名やURLへ指定する文字列などで各所で盛り上がっている
ようですので便乗して私も考えてみました。
#こういうネタはMLで話し合うのが吉かと。

といっても、みなさんの意見の良いところ取りを
して、概念的なモノから再構築したという感じです。

長いです。

1. 概念 
  まず、大きな概念として

  ページID: ページのID。一つのHikiでユニークとなる。
       実装上はファイル名・URLに使用。したがって、
      URLで%なしで記述できる文字列のみの名前で
      あることが望まれる
 
  ページタイトル:デフォルトの画面名。
                 (titleタグのことでは無いです;))

  という考え方を導入することを提案します。

 実は、今回のみなさんの議論では、若干不適切な言葉
 に思考が惑わされているように(私は)感じましたので、
 あえて今までとは異なる言葉(でより本質的な名称)を
 定義させていただきました。
 #特に「別名」という言葉に惑わされていませんか(^^;)?

2. 現状の問題
  上記の概念の元で考えると、
 現在のHikiはページIDがページタイトルになっているため、
  結果として%いっぱいの文字列をファイル名・URL
  として扱わざるを得ません。
 ページIDとしてはわかりづらすぎるということです。

3. むとぽん案
 それでは新しい概念も定義したことですし、さっそく、
 私の案を述べていきます。

3.1. ページへの埋め込み方法
  まず、ページ編集者は、[[表示文字列|ページID]] (*1)
  とページに埋め込むようにします。
  これは、<a href="hiki.cgi?ページID">表示文字列</a>という
  形式で展開されるようにします。

 つまり、ページIDに対し画面毎に表示文字列を変更できます。

 例えば、  [[初めての○○|story1]] [[前回の話題|story1]] 
 と書いておけば、同じIDに対し、表示内容をどのようにも
 変更できるわけです。
 なお、これについては、3.5で詳述します。

  (*1)この記述方法・順番等は別の議論と言うことで触れません。

3.2. ページタイトルの導入
  ここで問題になってくるのが、「デフォルトの画面につける名前がない」
 ということです。従来のWikiでは、それをページID(ファイル名)で
 補っていました(というかそれをページタイトルとしていた)。

 TrialWikiでは
 「日本語ページ名で新規作成しようとすると、英数字で作成するよう
  に促されますが、そこで英数字のページ名を付けると
  最初の日本語ページ名が自動的にAliasWikiNameに追加されます。」

 としています。ここで述べる案も、実装上はこれに近いのですが、
 論点としてはあくまでも、ページタイトル(デフォルトの画面名)
 という概念を導入することであり、概念的にはエイリアスとは
 異なります。

 そこで、次に述べるように編集画面を改造してページタイトルを
 入力できるようにします。

3.2.1. 編集画面の拡張
 編集画面に、「ページタイトル」入力欄を新設します。
 もちろん、変更可能です。

 登録時 ・・・ [[表示文字列|ページID]]でアクセスされた場合、
        表示文字列を「ページタイトル」欄にデフォルト表示する。
        表示文字列が無い場合はページIDをデフォルト表示する。
 更新時 ・・・ ページタイトルを表示する。

3.2.2. データの持ち方
 ページIDとページタイトルをリンクできるようなデータベース(ファイル)
 を持ち、登録時や変更時に更新するようにします。
 各プラグイン等が表示を行うときは、ページIDではなくページタイトルを
 表示するようにします。

3.5. 記述・表示の方法
 3.1.でもちょっと触れましたが以下の2つの書き方になります。

 [[表示文字列|ページID]]  -> <a href="hiki.cgi?ページID">表示文字列</a>
 [[ページID]]  -> <a href="hiki.cgi?ページID">ページタイトル</a>

 オプションとして
 [[ページタイトル]]  -> <a href="hiki.cgi?ページID">ページタイトル</a>
 の可能性も考えましたが、ページタイトル自体が他のページと重複できなく
  なりますし、ページタイトルを変更した際にリンクがとぎれてしまうので、
 やめた方が良さそうです。

3.6. 外部からのアクセス(URL)
  3.5.でも述べましたが、URLは、hiki.cgi?ページID となり、すっきりします。

3.7. 実装について
 データベースを始め、表示方法などについても、ほぼそのまま
 AliasWikiNameの機能が使えると思います。
 しかし、後のことを考えると、明示的にTitleといったようなAliasWikiNameと
 ほぼ同等な別モノを用意した方が良さそうな気がしています。
 これ自体は、AliasWikiNameのように編集する画面を用意することは
 せずに、ページタイトルの編集は各画面の編集画面で行うようにします。

4. おわりに
 たぶん、これって単にAliasWikiNameのことじゃん!と思われる方も
 いるかと思います。実装上は(ほぼ)そうです。
 この実装を行うと AliasWikiName自体がいらなくなりそうですし。

 じゃ、AliasWikiNameでいいじゃんというツッコミが入りそうな気がします。

 でも、(繰り返しになりますが)「別名ではない」というところが、ミソです。
 ここでは、「表示文字列」と言っているモノが「一時的な別名」となることに
 なります。

-- 
.:% Masao Mutoh<mutoh****@highw*****>



Hiki-dev メーリングリストの案内
アーカイブの一覧に戻る