====== Jmenný prostor ====== Jmenný prostor (dále namespace) je podobný adresářům, stejně tak můžeme stránky považovat za soubory. V [[DokuWiki]] lze použít jmenné prostory na roztřídění stránek. Pro jména jmenných prostorů platí stejná omezeni jako pro [[pagename |stránky]]. ===== Vytvoření jmenného prostoru ===== Nelze vytvořit namespace samostatně (sám o sobě); prostě vytvoř stránku s dvojtečkami v [[pagename|názvu]]. znaky po poslední dvojtečce budou jménem stránky (souborem) a všechny ostatní skupiny znaků mezi dvojtečkami budou představovat jednotlivé jmené prostory (adresáře). Všechny neexistující jmenné prostory použité v celém názvu stránky budou DokuWikií automaticky vytvořeny. (V DokuWiki se stránky vytvářejí úplně stejně jako v ostatních wikiích. Prostě vytvoř odkaz na neexistující stránku, na tento odkaz klikni a potvrď že stránku chceš vytvořit.)[[.:page#pridani_nove_stranky | Přidávání stránek ]]. ^Příklady:^^ |priklad\\ .priklad\\ .:priklad |odkazuje na stánku "priklad" v **aktuálním** namespace.| |:priklad |odkazuje na stánku "priklad" v **kořenovém (rootovském)** namespace.| |..priklad\\ ..:priklad\\ .:..:priklad|odkazuje na stánku "priklad" v **rodičovském (parent)** namespace| |wiki:priklad |odkazuje na stánku "priklad" v namespace "wiki". Namespace "wiki" je vázán **na rootovský** namespace.| |ns1:ns2:priklad\\ :ns1:ns2:priklad |odkazuje na stánku "priklad" v namespace ns2. Namespace ns2 je vázán na jmený prostor ns1; namespace ns1 je vázán **na rootovský** namespace.| |.ns1:ns2:priklad\\ .:ns1:ns2:priklad |odkazuje na stránku "priklad" v namespace ns2. Namespace ns2 is vázán na namespace ns1; namespace ns1 je vázán **na aktuální** namespace.| |..ns1:ns2:priklad\\ ..:ns1:ns2:priklad|odkazuje na stánku "priklad" v namespace ns2. Namespace ns2 je vázán na namespace ns1; namespace ns1 je vázán **na aktuální** namespace (tj. oba ns1 a aktuální namespace jsou pod stejným rodičovským namespace, všechno vychází z rootovského namespace, tento rodič může být pod sebou samým).| |.ns1:ns2: |odkazuje na stánku "start" v namespace ns2. Namespace ns2 je vázán na namespace ns1; namespace ns1 je vázán na aktuální namespace.\\ \\ (Výchozí stánka se může jmenovat jinak než "start", záleží na nastavení [[config:start]].)| ===== Mazání jmenného prostoru ===== Pokud budou odstraněny všechny stránky z jmenného prostoru, logicky přestává dál tento jmenný prostor existovat. DokuWiki obvykle prázdný adresář smaže. ===== Jak přejmenovat namespace? ===== Můžeš použít rozšíření [[plugin:PageMove]] pro přesun každé stránky ze starého namespace do nového. Prozkoumej prosím dokumentaci, jestli to je opravdu to co požaduješ. Manuální metoda je obtížnější: * Přejmenuj adresář který představoval požadovaný namespace v adresářích: * ''data/pages'' * ''data/media'' (pokud existuje) * Odstran metadata pro namespace pod adresářem ''data/meta'' * Odstran attic data pro namespace pod adresářem ''data/attic'' (nebo také přejmenuj, pokud chceš zachovat starou verzi) Například, na Unixové stanici můžeš udělat toto: * ''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'' * ''rm -Rf /dokuwiki_base/data/attic/old_namespace'' Pamatuj, ze názvy ''old_namespace'' a/nebo ''new_namespace'' musí být encodována pokud mají obsahovat národní znaky (tj. české, řecké, ruské atp.). * Opravit (jejich editací) všechny odkazy na stránkách, které ukazovaly na //přesunutý// jmenný prostor (ještě než jmenný prostor přejmenuješ, můžeš použít [[backlinks]] pro každou stánku v požadovaném jmenném prosotru). * Projdi každou stránku v novém jmeném prostoru. Tím se vytvoří ztracené indexy a metadata pro stránky pod přesunutým jmenným prostorem. Ale stále bude okolo spousty drobnosti. Například v ''data/changes.log'', různé soubory v cache (připojené ''.idx'' soubory atp.). Pokud opravdu chceš začít na ''zelené louce'', tak je postup následující (opět pod Unixem), ovšem pozor, takto budou ztraceny všechny předchozí informace (tj. ''poslední úpravy''): * ''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'' * Projít opravdu všechny stránky Tvojí Wiki. Chápu že je to zamotané (a možná jsem zapomněl/spletl několik věcí, které bys mohl také udělat). Suma sumárum je to pěkný opruz. Taky můžeš použít něco z [[plugins|pluginů]] které jsou určené pro (re)buildování vyhledávacích indexů wiki, mazání cache a/nebo starých revizí a uniknout tak ruční práci. ===== Výchozí linkování jmenných prostorů ===== Je možné odkazovat na název končící dvojtečkou: %%[[foo:bar:]]%%. To která stránka bude zobrazena záleží na tom, který soubor bude existovat. Pro následující odkaz %%[[foo:bar:]]%% se bude zjištovat přítomnost následujících souboru: foo:bar:$conf['start'] // kde $conf['start'] je konfigurační proměnná nesoucí název startovací stránky, obvykle 'start' foo:bar:bar foo:bar Stránky jsou kontrolovány v tomto pořadí a první nalezený odkaz bude použit. Ostatní stránky nebudou brány v potaz. :!: **Tato vlastnost je dostupná až od verze 2006-09-28 RC1 a výš.**