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*****>