В DokuWiki вы можете использовать так называемые «Пространства имён» или «Именные пространства» для упорядочивания ваших статей.1)
Для создания пространств имен не нужно предпринимать каких-то специальных действий: просто используйте двоеточие : в названиях статей. Часть названия после последнего двоеточия станет названием статьи (файла), а все, что находится до, станет именным пространством (последовательностью вложенных директорий). Если такого именного пространства еще нет, оно создастся автоматически.
| Ссылка | указывает на статью (файл) “example” |
|---|---|
| example .example .:example | в текущем именном пространстве. |
| :example | в корневом именном пространстве. |
| ..example ..:example .:..:example | в родительском именном пространстве (директории на уровень выше) |
| wiki:example | в именном пространстве “wiki”. Именное пространство “wiki” вложено в корневое именное пространство. |
| ns1:ns2:example :ns1:ns2:example | статья “example” находится в именном пространстве “ns2”. Пространство “ns2” расположено в пространстве “ns1”, которое, в свою очередь, лежит в корневом именном пространстве. |
| .ns1:ns2:example .:ns1:ns2:example | страница “example” находится в именном пространстве “ns2”. Пространство “ns2” расположено в пространстве “ns1”, лежащем, в свою очередь, в текущем именном пространстве. |
| .ns1:ns2: | ссылается на страницу “start” в именном пространстве “ns2”. Именное пространство “ns2” расположено в именном пространстве “ns1”, лежащем, в свою очередь, в текущем именном пространстве.2) |
Если все статьи внутри пространства имен удалены, это пространство имен логически перестает существовать. DokuWiki обычно удаляет соответствующую ему пустую директорию.
Для того чтобы переименовать пространство имен вручную, вам придется сделать следующее: * Переименовать директории которые представляют данное пространство имен в:
data/pagesdata/media (если есть)data/metadata/attic (или целиком переместить в другое место, если вы хотите сохранить старые версии)Например, на Unix-сервере вы можете:
mv /dokuwiki_base/data/pages/old_namespace /dokuwiki_base/data/pages/new_namespacemv /dokuwiki_base/data/media/old_namespace /dokuwiki_base/data/media/new_namespacerm -Rf /dokuwiki_base/data/meta/old_namespacerm -Rf /dokuwiki_base/data/attic/old_namespace
Обратите внимание, что возможно слова old_namespace и/или new_namespace быть конвертированы, если они не входят набор символов Latin (т.е. Греческий, Русский и т.д.).
Однако, у вас все еще останется достаточно всякого хлама. Например, в data/changes.log, различные файлы в кэше (включая файлы .idx и пр.). Если возможно вы можете начать с “чистого состояния” как показано ниже (опять же под Unix), но предупреждаем, что это приведет к потере всей исторической информации (такой как последние изменения):
cat /dev/null > /dokuwiki_base/data/changes.logrm -Rf /dokuwiki_base/data/attic/*rm -Rf /dokuwiki_base/data/cache/?rm -Rf /dokuwiki_base/data/cache/*.idxrm -Rf /dokuwiki_base/data/cache/purgefileОГОВОРКА : Я понимаю, что это весьма замысловато (и возможно я пропустил/перепутал пару вещей, который нужно было сделать). В конце концов все это - PITA. Вы также можете использовать пару доступных плагинов для построения/перестройки поисковых индексов всего wiki, очистки содержимого кэша и/или старых версий, что избавит вас от ручной работы.
Вы можете использовать сторонний плагин PageMove для переноса каждой страницы из старого пространства имен в новое. Пожалуйста, обратитесь к документации, чтобы убедиться, что это то, что вам нужно.
Можно задавать ссылку на файл по умолчанию для пространства имен, заканчивая ссылку двоеточием: [[foo:bar:]]. На какую статью указывает ссылка, зависит от наличия файлов с определенными именами. Для [[foo:bar:]] проверяется существование следующих страниц:
foo:bar:$conf['start'] foo:bar:bar foo:bar
Статьи проверяются в этом порядке и ссылка указывает на первую найденную. Множественное связывание не производится для таких ссылок 3)
Это свойство доступно только в версиях 2006-09-28 RC1 и выше.