トップ 差分 一覧 Farm ソース 検索 ヘルプ RSS ログイン

BugTrack-wiki/254

ページの作成や編集にはユーザ登録が必要です。

「|」を含むページ名を作る事が出来るが、wikiリンクとして正しく処理できない

  • 投稿者: typer
  • カテゴリ: 本体
  • 優先度: 重要
  • 状態: リリース済
  • 日時: 2005年09月02日 21時10分06秒

 内容

現在、"|"を含むページを作成する事が出来ますが、この"|"を含むページは幾つかの問題を引き起こすようです。

以下、記法の都合上問題がある場合、[]を[]と記述していますので読みかえてください。

通常の[[ページ名]]記法が使えない

二重ブラケットで囲むと[[別名|ページ名]]記法と解釈され、目的とするページへのリンクが張られない。

キーワードリンク有効時(デフォルト)、ページ名を書いても正しく処理されない

これは、内部的にKeywordページと同等の処理が行なわれ、処理過程で以下のように解釈されるために起こると考えられれます。

  1. "foo|bar" というページを作るとキャッシュに "foo|bar" が登録される
  2. キーワードリンク処理過程で、"foo|bar"に対してKeywordページに[[foo|bar|foo|bar]]という記述があるのと同等処理がなされる
  3. この時、キーワード"foo"に対し"bar|foo|bar"ページへのリンクと解釈される
  4. 結果、"foo|bar"と書くと"foo|bar|foo?|bar"となる

recentdaysプラグインの表示がおかしくなる

recentdaysプラグインが内部的に[[ページ名]]記法の出力をするために起こる。

このようなページを作ってしまった場合の解決方法

ページ一覧では正しくリンクが張られ、問題のページに行くことが出来ますので、そのページに行き、削除するかリネームする事により解決できます。

この問題自体の解決方法

[[ページ名]]記法での問題を解決するにはなんらかのエスケープ方法を用意する必要があります。しかし、(今までバグ報告がなかったという事から)ページ名に"|"を用いる事の需要はあまりないと考えられ、記法や処理の複雑化というデメリットに対して実装した場合のメリットが少ないと思われます。よって、ページ名には"|"文字を許可しない方法が良いと思います。

ちなみに、もしエスケープ処理を実装するなら"||"をエスケープ方法とすればおおよそ解決出来るように思います。もし、"|"が使えないと困る!という方がいらっしゃいましたらここでその理由をアピールしてください。

 コメント

  • safari化けの補正と同じ方法で「|」(全角のやつ)に置き換えるようにすればよいかと - まー (2005年09月04日 02時46分21秒)
  • ページ名に"|"を用いる事の需要は無いかもしれないですね。私の場合ですが、ページ名にスラッシュ(/)を含む形は多用しています。 - A_M (2005年09月09日 17時09分52秒)
  • 3.5.11では|も禁則文字にしてしまおうと思います。 - たけぞう (2005年12月10日 19時29分29秒)
  • 3.6.0でリリースしました。 - たけぞう (2006年05月19日 17時31分34秒)
お名前: コメント:

最終更新時間:2006年05月19日 17時31分35秒