====== Namespaces====== Een namespace is vergelijkbaar met een map, zoals pagina's vergelijkbaar zijn met bestanden. In [[DokuWiki]] kun je namespaces gebruiken om pagina's te categoriseren. Voor namen van namespaces gelden dezelfde beperkingen als voor [[pagename|paginanamen]]. Bij een standaard DokuWiki-installatie wordt twee namespaces meegeleverd: //wiki// en //playground// ===== Aanmaken van Namespaces ===== Het is niet nodig om namespaces apart aan te maken; het is zo simpel als een pagina maken met dubbelepunten in de [[pagename|paginanaam]]. Het gedeelte van de naam na de laatste dubbelepunt zal de paginanaam worden, terwijl de andere gedeelten namespaces worden. Alle namespaces die worden gebruikt in je paginanaam, maar nog niet bestaan, worden automatisch aangemaakt door DokuWiki. In DokuWiki worden pagina's op dezelfde manier gemaakt als in elke andere wiki. Maak een link in de tekst naar een niet bestaande pagina, klik deze link aan, en klik op "Maak deze pagina aan". Zie ook [[.:page#maak_een_pagina|Pagina´ s toevoegen]]. ^Examples:^^ |voorbeeld\\ .voorbeeld\\ .:voorbeeld|verwijst naar de pagina "voorbeeld" in de **huidige** namespace.| |:voorbeeld|verwijst naar de pagina "voorbeeld" in de **basis** namespace.| |..voorbeeld\\ ..:voorbeeld\\ .:..:voorbeeld|verwijst naar de pagina "voorbeeld" in de **ouder** namespace| |wiki:voorbeeld|verwijst naar de pagina "voorbeeld" in de namespace "wiki". De namespace "wiki" is geplaatst **onder de basis** namespace.| |ns1:ns2:voorbeeld\\ :ns1:ns2:voorbeeld|verwijst naar de pagina "voorbeeld" in de namespace ns2. De namespace ns2 is geplaatst onder de namespace ns1; de namespace ns1 is geplaatst **onder de basis** namespace.| |.ns1:ns2:voorbeeld\\ .:ns1:ns2:voorbeeld|verwijst naar de pagina "voorbeeld" in de namespace ns2. De namespace ns2 is geplaatst onder de namespace ns1; de namespace ns1 is geplaatst **onder de huidige** namespace.| |..ns1:ns2:voorbeeld\\ ..:ns1:ns2:voorbeeld|verwijst naar de pagina "voorbeeld" in de namespace ns2. De namespace ns2 is geplaatst onder de namespace ns1; de namespace ns1 is geplaatst **naast de huidige** namespace (i.e. beide ns1 en de huidige namespace zijn onder dezelfde ouder namespace, onafhankelijk van waar die ouder namespace geplaatst is de namespacestructuur).| |.ns1:ns2:\\ .:ns1:ns2:|verwijst naar de pagina "start" in de namespace ns2. De namespace ns2 is geplaatst onder de namespace ns1; de namespace ns1 is geplaatst onder de huidige namespace.\\ \\ (De standaard pagina kan ook anders genoemd worden dan "start" door het wijzigen van de configuratieinstelling [[config:startpage]].)| :!: Gotcha: De syntax voor relatieve en absolute interne links zijn niet-uniek en erg verwant aan de map- en bestandsconventies. Paden zijn absoluut als en alleen als zij starten met "/". Links zijn absolute als en alleen als zij een ":" voorvoegsel hebben of als ze geen voorvoegsel hebben, maar een tussen (of eind) ":" Links die zijn relatief tot de huidige namespace beginnen met of "." of ".:" (".." of "..:" voor de ouder namespace). ===== Verwijderen van Namespaces ===== Wanneer alle pagina's in een namespace zijn verwijderd (zie [[page#een_pagina_verwijderen|verwijder een pagina]]) bestaat deze logischerwijs niet meer. Normaal verwijdert DokuWiki de lege mappen dan ook. ===== Hoe hernoem je namespaces? ===== ==== Handmatige aanpak ==== Om een handmatig een namespace te hernoemen moet je: * Hernoem de mappen die de namespace vertegenwoordigen in: * ''data/pages'' * ''data/media'' (als deze bestaat) * Verwijder de metadata voor deze namespace onder ''data/meta'' * Verwijder revisiegegevens voor de namespace onder ''data/attic'' (of verplaats die ook naar de nieuwe map als je de ouder versies wilt bewaren) Bijvoorbeeld, op een Unix-systeem, kun je: * ''mv /dokuwiki_base/data/pages/oude_namespace /dokuwiki_base/data/pages/nieuwe_namespace'' * ''mv /dokuwiki_base/data/media/oude_namespace /dokuwiki_base/data/media/nieuwe_namespace'' * ''rm -Rf /dokuwiki_base/data/meta/oude_namespace'' * verwijder: ''rm -Rf /dokuwiki_base/data/attic/oude_namespace'' \\ of verplaats: ''mv /dokuwiki_base/data/attic/oude_namespace /dokuwiki_base/data/attic/nieuwe_namespace'' Merk op dat het nodig kan zijn de ''oude_namespace'' en/of ''nieuwe_namespace'' woorden te encoderen als zij een niet-Latijns tekenset gebruiken (bijv: Grieks, Russisch, etc). * Corrigeer (door ze te bewerken) alle links naar de pagina's onder de //verplaatste// namespace (je kunt deze ontdekken door voor het verplaatsen van de namespace dit te onderzoeken met [[backlinks]] van elke pagina). * Blader langs elke pagina in de nieuwe namespace. Dit zal alle missende index informatie en metadata aanmaken voor de pagina's in de verplaatste namespace. Hoewel, je houdt nog een boel rommel op allerlei plaatsen. Bijvoorbeeld in ''data/changes.log'', verschillende bestanden in de cache (inclusief de ''.idx'' bestanden etc). Als het mogelijk is kun je starten met een ''schone situatie'' op de volgende manier (weer uitgelegd voor Unix), maar wees gewaarschuwd: dit zal betekenen dat alle historische informatie (bijv. ''recente wijzigingen'') verdwijnt: * ''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'' * Blader langs elke pagina van je Wiki. DISCLAIMER: I begrijp dat dit gecompliceerd is (misschien heb ik ook nog een paar dingen vergeten die je ook moet doen). Alles bij elkaar is dit omslachtig. Je kunt ook een paar [[plugins]] gebruiken die beschikbaar zijn om de index voor de complete wiki (opnieuw) op te bouwen, de hele cache weggooien en/of oude wiki revisies dus vermijden dat je dit handmatig moet doen. ==== Plugin aanpak ==== Je kunt ook een door derden gemaakte plugin [[plugin:PageMove]] gebruiken om pagina's te verplaatsetn van de oude namespace naar de nieuwe. Raadpleeg alsjeblieft de documentatie om te zien of dit past bij je situatie. //**Opmerking** - de PageMove plugin werkt niet en is op dit moment afgekeurd// Een nieuw alternatief is de [[plugin:editx|editx plugin]]. ===== Namespace standaardverwijzingen ===== Het is mogelijk om naar een standaard bestand in een namespace te verwijzen door de linkid te eindigen op een dubbelepunt: %%[[foo:bar:]]%%. Naar welke pagina de link verwijst is afhankelijk van het bestaan van bepaalde bestanden. Voor %%[[foo:bar:]]%% worden de volgende pagina's gecontroleerd: foo:bar:$conf['start'] foo:bar:bar foo:bar De pagina's worden gecontroleerd in die volgorde en naar de pagina die het eerste gevonden wordt verwezen. [[config:autoplural | Auto-meervoud]] verwijzen wordt niet gedaan voor deze links.