隠しページの表記を":"以外で始まるようにしてはどうか?†
- ページ: BugTrack
- 投稿者: merlin
- 優先順位: 重要
- 状態: 却下
- カテゴリー: 本体バグ
- 投稿日: 2003-08-29 (金) 20:24:41
- バージョン: 1.4rc4
メッセージ†
testというページの下に:test などの ":"で始まるページを作成しようとすると
test/ は有効な InterWikiName ではありません。
というメッセージが出て ページ作成ができない。
隠しページを示す記号を変更した方がよいのではないでしょうか?
問題点 まとめ
- 名前の途中にコロンを含んだページ名の取り扱い
- [付帯事項] カテゴリ表記
- [付帯事項] 隠しページ デフォルト値、:config
関連
- ピリオドが含まれている/いないに関わらず、名前の途中にコロンを含んだページ名は、InterWikiと区別できなくなるので禁止されています。 -- ぱんだ
- …と書いてふと思ったんですが。 test/:testはInterWikiではないという仕様もありかな、という気もしますね。(難しいですけど。) -- ぱんだ
- 個人的には前後のコロンもイマイチな気がしています。隠しページは1文字目ピリオドのほうが直感的かな・・・などと :) -- ぱんだ
- 隠しとすれば、そうでしょうけど、そもそもカテゴリのためにじゃなかったんですか?ずーっとそう理解していましたけど。そういう挙動をしているのと、設計上の仕様とは違うと思うので、ちゃんと整理をした方が良いんでしょうね。隠しなら、仮想階層上の文書名の先頭のコロンは許容するんでしょうけど、カテゴリであれば、本当に先頭の1文字のコロンのみ許容する。とするのが自然なのでしょう。-- upk
- whatsnew プラグインを動かそうとして気がつきました。あと ページごとに:configを造ろうとして失敗して気がつきました。やはり隠しページの一文字目を変えた方がいいですね -- merlin
- 内容を変更いたしました (カテゴリー: 本体バグ で いいのかなぁ?)-- merlin
- HELPの ページ名の使用文字の制限にとりあえず加えて置いた方がいいでしょうね。 -- merlin
- 隠しページ($non_list)であることと、名前の途中にコロンを含むページ名が禁止されることとは、まったく無関係ですので、区別して考える必要があります。「隠しページは1文字目ピリオドのほうが直感的かな・・」については$non_listに設定すればよいだけですので*1。
この問題の本質は「名前の途中にコロンを含んだページ名は、InterWikiと区別できなくなるので禁止」が妥当かどうかということでしょう。 -- reimy
- 逆に考えれば、InterWiki に制約を設けたいかどうか?だけですよね?いずれにしても、制約になるわけですからねぇ。どっちを犠牲にしたいか?のニーズ量なのでしょう。 -- upk
- 使う側からすると 1)仮想階層上の文書名は、普通の文書名として考えてしまう。 2) カテゴリって使い出すと便利なのだが、ちょっと面倒なのとページでは邪魔に見えるのでとっつきにくい。したがって、コロン始まりは、設定ファイル :configの印象が強くなる。 3)正規表現はなんか難しい。したがって、正規表現での設定の所はいじらないでおこう。 4) コロン始まりにすれば隠しにできる。便利だ といった感じになるのかなぁ?
そこで、以下のように明確化などをすればいいのでは?
1) コロン始まりの文書名は、カテゴリのみに使用される。カテゴリは仮想階層にはならない。
2) デフォルトの隠しページとして ピリオド始まりを設定する。
3) :config を .config に変更する。 *2
-- merlin
- 1)及び3)には反対。問題になっているのは「名前の途中にコロンを含んだページ名」であって、先頭がコロンであるページが問題になっているのではない。 -- reimy
- 仮想階層を使うユーザー*3 にとっては、「:config 」 と 「test/:config」は同じ様に先頭がコロンであると考えてしまうのではないでしょうか? -- merlin
- ページごとに:configを作ることは想定されていないので、元々「test/:config」というのは認められないはず。 -- reimy
- :config に限っていません。今の話は、ユーザが使う場合に先頭がコロンのページ名だと思っても、仮想階層なのでソフトウェア的にはコロンが途中にあるページ名となってしまう。それが、ユーザー的感覚からするとおかしく感じるのではということです。 -- merlin
- 「ユーザが使う場合に先頭がコロンのページ名だと思っても、仮想階層なのでソフトウェア的にはコロンが途中にあるページ名となってしまう」という説明は矛盾してますね。“仮想”階層であって“実”階層ではないのだから、「test/:config」は「コロンが途中にあるページ名」であるのは当然です。-- reimy
- 矛盾はありません。“仮想”階層は、階層間の関連をそのページ名で表すという実装上の画期的アイデアであるわけですが、通常のファイルパスのような“実”階層であるかのように使えるから便利なのです。従って、“仮想”であることを明確に意識せずに単なる"階層"として使われる傾向があると考えられます。-- merlin
- だから、“実階層”であるかのように使うのが(たとえ便利であったとしても)間違った使い方であるのに、それを「当然」としてしまうのは矛盾があるということです。-- reimy
- 前提が間違っています。"機能、実装定義"は存在しますが、"正しい使いかた"の定義は存在してません。また、何の為にいろいろな機能を実装したりするのでしょう。使う人がいるからです。便利に使いたいからです。HTMLの場合やセキュリティの場合は、便利さと相反しても、アクセシビリティや安全性の為に便利さよりも共通ルール(W3C,RFCなど)を遵守するのが良いと思いますが、機能的な話では、プログラミングと便利さのトレードオフになります。階層に関していえば、仮想階層によって、実階層を実装するのに近い効果とプラスアルファが得られるので採用されていると思いますが、使う側が欲しいのは 階層なんです。実装上の問題から、コロンが途中に入るページ名の処理が大変(オーバーヘッドも大きくなるかも知れない)なので使えないと定義することは問題ありませんが、使う側の感覚に対して、一貫性がないと使いにくいものになってしまうので一貫性を保つように仕様を定義したら如何だろうということです。-- merlin
- ↑を補正してソフトウェア的問題を少なくする為に、1)のように規定を行い。整合性を取る為に、できれば :config の名前も変えたらどうかという話です。 :config は決め打ちなので影響が大きいのでこれだけは例外ということでも良いかと思います。 -- merlin
- そもそも、カテゴリーの設定や:configの設定はシステム管理者が設定する特殊な用途で使用されるもので、そのためにコロンで始まるページ名を特別扱いしている。デフォルトで非表示対象になっているのもそのため。コロンで始まるページ名をユーザーに開放すること自体、本来の目的と違っている。まして仮想階層にコロンで始まるページ名を指定することは想定されていない。 -- reimy