===== Vytvoření jmenných prostorů =====
https://www.dokuwiki.org/namespaces
Jmenné prostory není třeba vytvářet zvlášť; stačí vytvářet stránky s dvojtečkami v [[pagename]].
Řetězec za poslední dvojtečkou bude název samotné stránky, všechny ostatní řetězce jsou jmenné prostory.
Veškeré jmenné prostory použité v názvu stránky, které zatím neexistují, DokuWiki automaticky vytvoří.
Jmenný prostor lze také vytvořit ve správci médií po výběru souboru v lokálním počítači a přidáním ''název:'' (jmenného prostoru) těsně před názvem mediálního souboru v poli pro nahrávání. Kliknutím na ''nahrát'' se jmenný prostor (složka) vytvoří za běhu a bude viditelný po obnovení okna.
V DokuWiki jsou stránky vytvářeny jako v každé jiné wiki. Stačí vytvořit odkaz na neexistující stránku, na odkaz kliknout a poté zvolit „Vytvořit stránku“. Viz také [[page#Vytvoření stránky|Vytvoření stránky]].
^ Příklady: ||
| example\\ .example\\ .:example | odkazuje na stránku "example" v **aktuálním** jmenném prostoru. |
| :example | odkazuje na stránku "example" v **kořenovém** jmenném prostoru. |
| ..example\\ ..:example\\ .:..:example | odkazuje na stránku "example" v **nadřazeném** jmenném prostoru |
| wiki:example | odkazuje na stránku "example" ve jmenném prostoru "wiki". Jmenný prostor "wiki" je umístěn **pod kořenovým** jmenným prostorem. |
| ns1:ns2:example\\ :ns1:ns2:example | odkazuje na stránku "example" ve jmenném prostoru ns2. Jmenný prostor ns2 je pod jmenným prostorem ns1; ns1 je **pod kořenovým** jmenným prostorem. |
| .ns1:ns2:example\\ .:ns1:ns2:example | odkazuje na stránku "example" ve jmenném prostoru ns2. Jmenný prostor ns2 je pod ns1, ns1 je **pod aktuálním** jmenným prostorem. |
| ..ns1:ns2:example\\ ..:ns1:ns2:example | odkazuje na stránku "example" ve jmenném prostoru ns2. Jmenný prostor ns2 je pod ns1, ns1 je **vedle aktuálního** jmenného prostoru (tj. ns1 a aktuální jmenný prostor jsou pod stejným nadřazeným prostorem, ať už je tento prostor kdekoliv v rámci kořene). |
| .ns1:ns2:\\ .:ns1:ns2: | odkazuje na úvodní stránku jmenného prostoru ns2. Jmenný prostor ns2 je pod ns1, ns1 je pod aktuálním jmenným prostorem.\\ \\ Viz níže [[#Výchozí propojení jmenného prostoru]], jak je určena úvodní stránka. |
| ~example\\ ~:example | odkazuje na stránku "example" s využitím aktuální stránky jako jmenného prostoru. Např. pokud je stránka „foo:bar“, odkaz povede na „foo:bar:example“. Jedná se o účinný způsob vytváření podjmenných prostorů z existující stránky. |
:!: Pozor: Syntaxe relativních a absolutních vnitřních odkazů není unikátní a je složitější než běžné konvence adresářů a souborů.
Odkazy jsou absolutní pouze tehdy, pokud mají prefix „:“ nebo žádný prefix, ale mají v sobě další (či koncové) „:“.
Odkazy relativní k aktuálnímu jmennému prostoru mohou také začínat tečkou nebo „.:“ („..“ nebo „..:“ pro nadřazený jmenný prostor).
===== Odkazování na obrázky =====
Co se týče jmenných prostorů, obrázky a další mediální soubory se řeší stejně jako wiki stránky. Například, následující odkazuje na obrázek patřící do aktuálního jmenného prostoru:
{{image.jpg}}
===== Mazání jmenných prostorů =====
Pokud jsou všechny stránky uvnitř jmenného prostoru odstraněny (viz [[page#Smazání stránky|mazání stránky]]), jmenný prostor logicky přestává existovat. DokuWiki většinou smaže i nyní prázdnou složku.
===== Jak přejmenovat jmenný prostor? =====
==== Ručně ====
Chcete-li přejmenovat jmenný prostor ručně, musíte:
* Přejmenovat složky představující jmenný prostor v:
* ''data/pages''
* ''data/media'' (pokud existuje)
* Odstranit metadata pro jmenný prostor ze složky ''data/meta''
* Odstranit archivní data pro jmenný prostor ze složky ''data/attic'' (nebo je přesunout, pokud chcete zachovat staré verze)
Například na Unix systému můžete:
* ''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''
* přesunout: ''mv /dokuwiki_base/data/attic/old_namespace /dokuwiki_base/data/attic/new_namespace'' \\ nebo odstranit: ''rm -Rf /dokuwiki_base/data/attic/old_namespace''
Všimněte si, že názvy ''old_namespace'' a/nebo ''new_namespace'' mohou být potřeba zakódovat, pokud obsahují ne-latinské znaky (např. řečtina, azbuka atd.).
* Opravte (úpravou obsahu) všechny odkazy na stránky pod //přesunutým// jmenným prostorem (můžete je najít ještě před přesunem pomocí [[backlinks|zpětných odkazů]]).
* Projděte každou stránku v novém jmenném prostoru. Tím se vytvoří potřebné indexy a metadata pro stránky v novém prostoru.
Přesto vám zůstane v datech spousta zbytečností. Například v ''data/changes.log'', různé soubory v cache (například ''.idx'' soubory atd.). Pokud můžete, začněte raději z ''čistého stavu'' (opět na Unixu), ale pozor – tím přijdete o veškerou historii (tj. ''poslední změny''):
* ''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''
* Projděte každou stránku své Wiki.
UPOZORNĚNÍ: Uvědomuji si, že je to zdlouhavé (a možná jsem na něco zapomněl nebo něco popletl). Celkově je to pracné. Nabízí se také využít některé [[plugins|pluginy]], které jsou dostupné pro (znovu)vytváření vyhledávacího indexu celé wiki, mazání cache nebo starých verzí wiki a tím se vyhnout ručnímu postupu.
===== Výchozí propojení jmenného prostoru =====
Je možné odkazovat na výchozí stránku jmenného prostoru tak, že uzavřete ID odkazu dvojtečkou: ''%%[[foo:bar:]]%%''. Která stránka se odkazuje záleží na existenci určitých pojmenovaných souborů. Pro ''%%[[foo:bar:]]%%'' se hledají následující stránky v tomto pořadí:
foo:bar:$conf['start']
foo:bar:bar
foo:bar
První nalezená stránka bude použita jako cíl odkazu. [[doku>config:autoplural|Automatické skloňování]] se na tyto odkazy nevztahuje.
Viz [[doku>config:startpage]], jak nastavit výchozí jméno startovní stránky (výchozí je ''start'').