**This is an old revision of the document!**
part of the GtC documentation
Namespaces in DokuWiki
Fear not: this can look very unfamiliar at first sight, but really it's not hard.
A namespace in DokuWiki is basically a way of pointing to different parts of the wiki, just like a folder (or directory) structure on your file system (on your hard drive or wherever) allows you to sort your files into sensible groups, or the way in which many web sites structure their pages into folders or directories. This is a very useful feature in DokuWiki, which isn't available in MediaWiki (and so Wikipedia), or many other wiki systems. That may be why it's not familiar.
Here on this wiki, there is one page at the 'root', with no namespace: the start page. If you go there and look at the URL in your browser, you may be able to see https://knowledge.growingthecommons.org/doku.php/start.
This page, on the other hand, is at
https://knowledge.growingthecommons.org/doku.php/doc/namespace.
Notice the doc between doku.php and namespace. doc is the namespace that this page belongs to.
doc is actually the name of a folder in the web server where this page is kept.
Look at some more examples. Our topic groups are in the namespace (and folder) called gt (for “group of topics”).
If you go to any of these, such as Community & culture you will see the URL is
https://knowledge.growingthecommons.org/doku.php/gt/community.
The topic group “Bushcraft & nature” similarly has the URL
https://knowledge.growingthecommons.org/doku.php/gt/bushcraft.
The namespaces allow us to have different pages with the same name, in different namespaces.
So, there is an actual topic, bushcraft, which is in its own namespace, bush. The URL is
https://knowledge.growingthecommons.org/doku.php/bush/bushcraft.
This is just the same as the fact that you can have two files with the same name in your computer system, provided they sit in different folders. Not just pages, but also images and other files sit in one or another namespace (i.e., folder).
Why is it called a namespace, not just a folder?
A folder or directory structure conventionally uses the slash, /, as a delimiter.
Namespaces conventionally use colons : as delimiters.
There is a lot of history behind this, which is not needed for understanding namespaces in DokuWiki.
It may be enough to say that in DokuWiki, they are essentially the same, except the slash / is used in URLs, while the colon : is used for internal locations.
So, this document's internal link is [[doc:namespace]] which is simply displayed as namespace.
Actually, [[doc/namespace]] also works: namespace!
For the URL, the link is https://knowledge.growingthecommons.org/doku.php/doc/namespace, using slashes.
Just writing that URL by itself gives what looks like an external link, even though it is in our wiki:
https://knowledge.growingthecommons.org/doku.php/doc/namespace
Namespaces with Markdown
This actually works just the same here in Markdown syntax. [this](doc:namespace) gives this
and [this](doc/namespace) gives this.
Why are namespaces so useful?
In normal file systems, a folder or directory structure allows its owner to treat files in different folders differently. Similarly, in DokuWiki, the namespace structure allows us to give different permissions to different people, for the various different namespaces. Curators belong to user groups, and the people in each user group have permission to edit pages in the corresponding namespace. This is designed to greatly reduce worries about accidentally editing the wrong pages.
See also
- DokuWiki has extensive documentation around namespaces, including pagename and namespaces.
- Wikipedia has a very detailed explanation of Namespaces