Page names in DokuWiki are converted to lowercase automatically. Allowed characters are letters, digits, and in name internal position 1) the “special characters” ., - and _2). All other special characters (i.e. other than letters and digits) are converted to underscores3) . Colons (:) are used to identify or, if necessary, create namespaces.4)
When the deaccent config option is enabled (on by default) local and accented characters are converted to their descriptive equivalents (ü becomes ue) or deaccented versions (á becomes a).
An implicit constraint on pagename lengths is set by backlinks (pagenames need to have 3 chars at least to be considered in backlinks).
Most templates, including the default, present the full pagename and the namespaces in its path, at the top left corner of the page. For example this page's name is pagename. 5)
When linking to other Wikis using InterWiki links the name restrictions of these Wikis apply.
Even when CamelCase or WikiWord is enabled in the config file the pagenames will remain lowercase.
Note you can hack the code and by commenting out one line in the wiki/inc/pageutils.php about line 109, you will be able to use files with Names_Like_This if you so choose. Look for this code and comment it out.
$id = utf8_strtolower($id);
You may picture namespaces as directories and pagenames as files inside them.
Therefore the a:b:c pagename can be pictured as:
root namespace (always present)
|
+-- 'a' namespace
|
+-- 'b' namespace
|
+-- 'c' pagename
Note that you can have a pagename and a namespace with the same name, at the same time, within any namespace. Back to the above example, the a:b pagename can be pictured as:
root namespace (always present)
|
+-- 'a' namespace
|
+-- 'b' pagename (not to be confused with the 'b' namespace above)
This doesn't lead to conflicts, because DokuWiki treats the final token (the one after the last colon) as the name of the page itself, while all other tokens are namespaces.
a:b:c, a and b are namespaces while c is a page.a:b, a is interpreted as a namespace and b as a page.See namespaces for more details.