ページ名
ページ名は、ページを特定するURLを構成する要素です。例えば、現在アクセスしているこのページのURLは「https://www.dokuwiki.org/ja:pagename」であり、ページ名は「ja:pagename」です。
DokuWiki におけるページ名は、自動的に小文字に変換されます。利用できる文字は、英字、数字と、名前の途中に含まれる1)「特殊文字」.
, -
, _
です。2)それ以外の特殊文字(例えばホワイトスペースやプラス、スラッシュ、パーセント等。マルチバイトの記号も使えません)はアンダースコア3)に変換されます。コロン「:
」は名前空間の識別に使われます4)。
設定オプション deaccent が有効な場合(デフォルトは有効)、現地のアクセント付き文字は記述的に等価な文字(ü
は ue
)か、アクセントを除去した文字(á
は a
)に変換されます。
ページ名の長さはバックリンクによって暗黙に制約されています(バックリンクに認識されるには、ページ名が3文字以上である必要があります)。
デフォルトを含めた多くのテンプレートで、ページのどこかにページのフルネームとそのパスにおける名前空間を表示します。「dokuwiki」テンプレート(デフォルト)の場合、ページ左上のタブ部分にあります。例えば、このページの名前は、ja:pagename
になります。
InterWiki を使った他のWikiへのリンク時は、そのWikiの名前の制限が適用されます。
キャメルケースやWiki単語が設定で有効になっていても、ページ名は小文字になります。
ページ名と名前空間
名前空間はディレクトリ、ページ名はディレクトリ内のファイルと考えることもできます。
従って、a:b:c
というページ名は次のように解釈できます:
ルートの名前空間(常に存在する) | +-- 'a' 名前空間 | +-- 'b' 名前空間 | +-- 'c' ページ名
名前空間の中に同時に同じ名前のページ名と名前空間がありうるということに注意してください。上記の例に戻って、a:b
を見てみると次のように解釈できます:
ルートの名前空間(常に存在する) | +-- 'a' 名前空間 | +-- 'b' ページ名(上記の'b'という名前空間と混乱しないように)
DokuWiki は、最後のトークン(最後のコロンの後)をページそのものの名前として扱い、それ以外を名前空間として扱うので、これは矛盾はしません。
a:b:c
では、a
とb
が名前空間で、c
はページ。a:b
では、a
は名前空間、b
はページと解釈される。
詳細は namespaces を参照してください。
コアプログラムを改造し、大文字小文字を一緒に使う
大文字小文字を併用するページ名を使えるように、DokuWikiのコアプログラムを改造する人もいますが、これは非推奨であり、公式的にサポートしていません。また、DokuWikiの機能を不明瞭な形で故障させてしまうかも知れません。
コードを改造する事で目的を果たせます。wiki/inc/pageutils.php の109行目辺りをコメントアウトして下さい。「Names_Like_This」←こんな感じの名前を付けられるようになります。 次のコードを探してコメントアウトして下さい。
$id = utf8_strtolower($id);
この改造は、数年前に私5)が使用しユーザーフォーラムにて発表したのですが、Anteaterでは動作しないようです。
他にアイデアはありませんか?
こちらのスレッドもご参照下さい。