Inhoud
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 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 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 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 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 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 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 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. Auto-meervoud verwijzen wordt niet gedaan voor deze links.