1466272061 | current | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== 2014.08.26 OuvidoriaDefensoria ====== | + | ====== Namespaces ====== |
- | ===== Inicial ===== | + | A namespace is similar to a directory or folder, while pages are similar to files. |
- | * [[lmnjybkgaqacdw7e|Evento de mídia]] | + | In [[DokuWiki]] you can use namespaces to categorize your pages. For names of namespaces the same restrictions hold as for [[pagename|pagenames]]. |
- | * [[9eydybkgaqacdw5z|Nova solicitação de demanda]] | + | |
+ | A default DokuWiki installation comes with the built-in namespaces: //wiki// and //playground//. | ||
+ | ===== Creating Namespaces ===== | ||
+ | You don't need to create namespaces separately; simply create pages with colons in the [[pagename]]. | ||
+ | The token after the last colon will be the name of the page itself, while all other tokens are namespaces. | ||
+ | All namespaces used in your pagename that don't exist already will be created by DokuWiki automatically. | ||
+ | A namespace can be created in the media manager after having selected a file on the local computer and before clicking ''upload''. | ||
+ | In DokuWiki pages are created as in every other wiki. Simply create a link to a non existing page, follow this link, and click on Create this page. See also [[.:page#create_a_page|Adding pages]]. | ||
+ | ^ Examples: ^^ | ||
+ | |example\\ .example\\ .:example|refers to the page "example" in the **current** namespace.| | ||
+ | |:example|refers to the page "example" in the **root** namespace.| | ||
+ | |..example\\ ..:example\\ .:..:example|refers to the page "example" in the **parent** namespace| | ||
+ | |wiki:example|refers to the page "example" in the namespace "wiki". The namespace "wiki" is located **beneath the root** namespace.| | ||
+ | |ns1:ns2:example\\ :ns1:ns2:example|refers to the page "example" in the namespace ns2. The namespace ns2 is located beneath the namespace ns1; the namespace ns1 is located **beneath the root** namespace.| | ||
+ | |.ns1:ns2:example\\ .:ns1:ns2:example|refers to the page "example" in the namespace ns2. The namespace ns2 is located beneath the namespace ns1; the namespace ns1 is located **beneath the current** namespace.| | ||
+ | |..ns1:ns2:example\\ ..:ns1:ns2:example|refers to the page "example" in the namespace ns2. The namespace ns2 is located beneath the namespace ns1; the namespace ns1 is located **beside the current** namespace (i.e. both ns1 and the current namespace are beneath the same parent namespace, wherever according to the root namespace this parent may be located itself).| | ||
+ | |.ns1:ns2:\\ .:ns1:ns2:|refers to the page "start" in the namespace ns2. The namespace ns2 is located beneath the namespace ns1; the namespace ns1 is located beneath the current namespace.\\ \\ (The default page can be named something other than "start" by adjusting the [[config:startpage]] configuration setting.)| | ||
+ | |||
+ | :!: Gotcha: The syntax for relative and absolute internal links is non-unique and complex relative to directory and filename conventions. | ||
+ | |||
+ | Paths are absolute if and only if they begin with "/". | ||
+ | |||
+ | Links are absolute if and only if they have a ":" prefix or have no prefix but do have intermediate (or suffix) ":" | ||
+ | |||
+ | Links relative to the current namespace may also begin with either "." or ".:" (".." or "..:" for parent namespace). | ||
+ | |||
+ | ===== Deleting namespaces ===== | ||
+ | |||
+ | When all pages inside a namespace are removed (see [[page#delete_a_page|delete a page]]) the namespace logically doesn’t exist anymore. DokuWiki usually deletes the now empty directory as well. | ||
+ | |||
+ | ===== How to rename namespaces? ===== | ||
+ | |||
+ | ==== Manual way ==== | ||
+ | |||
+ | In order to rename a namespace manually you will have to: | ||
+ | * Rename the folders that represent the namespace in: | ||
+ | * ''data/pages'' | ||
+ | * ''data/media'' (if this exists) | ||
+ | * Remove metadata for the namespace under ''data/meta'' | ||
+ | * Remove attic data for the namespace under ''data/attic'' (or move that over as well, if you want to preserve old versions) | ||
+ | |||
+ | For example, on a Unix host, you could: | ||
+ | * ''mv /dokuwiki_base/data/pages/old_namespace /dokuwiki_base/data/pages/new_namespace'' | ||
+ | * ''mv /dokuwiki_base/data/media/old_namespace /dokuwiki_base/data/media/new_namespace'' | ||
+ | * ''rm -Rf /dokuwiki_base/data/meta/old_namespace'' | ||
+ | * move: ''mv /dokuwiki_base/data/attic/old_namespace /dokuwiki_base/data/attic/new_namespace'' \\ or remove: ''rm -Rf /dokuwiki_base/data/attic/old_namespace'' | ||
+ | Note that the ''old_namespace'' and/or ''new_namespace'' words may need to be encoded if they are on a non-Latin character set (i.e. Greek, Russian, etc). | ||
+ | |||
+ | * Correct (by editing them) all the links to the pages under the //moved// namespace (you can discover those before moving the namespace by reviewing each page's [[backlinks]]). | ||
+ | |||
+ | * Browse each and every page under the new namespace. This will create the missing indexing information and metadata for the pages under the moved namespace. | ||
+ | |||
+ | However, you will still have lots of junk left around. For example in ''data/changes.log'', various files under cache (including the ''.idx'' files etc). If possible you could just start from a ''blank state'' as follows (again under Unix) but be warned that this will mean losing all your historical information (i.e. ''recent changes''): | ||
+ | |||
+ | * ''cat /dev/null > /dokuwiki_base/data/changes.log'' | ||
+ | * ''rm -Rf /dokuwiki_base/data/attic/*'' | ||
+ | * ''rm -Rf /dokuwiki_base/data/cache/?'' | ||
+ | * ''rm -Rf /dokuwiki_base/data/cache/*.idx'' | ||
+ | * ''rm -Rf /dokuwiki_base/data/cache/purgefile'' | ||
+ | * Browse each and every page of your Wiki. | ||
+ | |||
+ | DISCLAIMER: I understand this is convoluted (and maybe I missed/messed a couple of things you should also do). All in all this is a PITA. You may also use a couple of [[plugins]] that are available for (re)building the searchindex for the complete wiki, erasing entire cache and/or old wiki revisions thus avoiding having to do this manually. | ||
+ | |||
+ | ===== Namespace Default Linking ===== | ||
+ | |||
+ | It is possible to link to the default file of a namespace by ending the linkid | ||
+ | with a colon: %%[[foo:bar:]]%%. Which page the link links to is dependent on the | ||
+ | existence of certain named files. For %%[[foo:bar:]]%% the following pages are | ||
+ | checked: | ||
+ | |||
+ | <code> | ||
+ | foo:bar:$conf['start'] | ||
+ | foo:bar:bar | ||
+ | foo:bar | ||
+ | </code> | ||
+ | |||
+ | The pages are checked in that order and whatever page is found first will be linked to. [[config:autoplural|Autoplural]] linking is not done for those links. | ||
+ | |||
+ | |||
+ | DokuWiki supports [[doku>Interwiki]] links. These are quick links to other Wikis. | ||
+ | For example this is a link to Wikipedia's page about Wikis: [[wp>Wiki]]. |
↧
namespaces - old revision restored (2016-05-25 08:22)
↧