DokuWiki

It's better when it's simple

User Tools

Site Tools


pagename

Page Names

The pagename is the component of the URL that specifies the page. For example, the URL of the page you are currently reading is https://www.dokuwiki.org/pagename, and its page name is pagename.

Naming Conventions

Page names in DokuWiki are converted to lowercase automatically! Allowed characters are letters, digits and, within names 1), the “special characters” dot ., hyphen - and underscore _. All other special characters (i.e. other than letters and digits – whitespace, plus, slash, percent, etc.) are converted to underscores 2) . Colons (:) are used to identify namespaces 3).

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 somewhere the full pagename and the namespaces in its path. The 'dokuwiki' template places it in the tab on the top right corner of the page. For example this page's name is pagename.

When linking to other Wikis using InterWiki links the name restrictions of these Wikis apply.

Even when CamelCase (aka. WikiWord) is enabled by the CamelCase config the pagenames will remain lowercase.

Note: All restrictions given here for pagenames do apply to media files as well!

Pagenames and Namespaces

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.

  • In a:b:c, a and b are namespaces while c is a page.
  • In a:b, a is interpreted as a namespace and b as a page.

See namespaces for more details.

Hacking the Core for mixed case names

Some people like to hack the DokuWiki core to be able to use mixed case names. This is not recommended and not officially supported and might break DokuWiki functionality in non-obvious ways.

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);

:!: This hack, used by me a few years and announced to the User-Forum, seems not to work with Anteater.
:?: Any idea, to have it there too?

Also see this thread.

1)
i.e. you cannot start or end names with them, resp. they will be eliminated at start or end of names
2)
or whatever is configured in the sepchar setting
3)
This can be changed to forward slashes to more naturally mirror your data filesystem hierarchy: useslash
pagename.txt · Last modified: 2024-03-16 14:46 by Aleksandr

Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Share Alike 4.0 International
CC Attribution-Share Alike 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki