Это старая версия документа!
Содержание
Пространства имён
В «Докувики» вы можете использовать так называемые «пространства имён» или «именованные пространства» для упорядочивания ваших статей.1)
Стоит заметить - упорядочивание только в алфавитном порядке, что не позволит вам упорядочить логически.
Создание пространства имён
Для создания пространств имён не нужно предпринимать каких-то специальных действий: просто используйте двоеточие «:» в названиях статей. Часть названия после последнего двоеточия станет названием статьи (файла), а всё, что находится «до», станет именным пространством (последовательностью вложенных директорий). Если такого именного пространства ещё нет, оно создастся автоматически.
Примеры | |
---|---|
example .example .:example | Статья «example» находится в текущем именном пространстве. |
:example | Статья «example» находится в корневом именном пространстве. |
..example ..:example .:..:example | Статья «example» находится в родительском именном пространстве (директории на уровень выше). |
wiki:example | Статья «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:example ..:ns1:ns2:example | Ссылается на статью «example» в именном пространстве «ns2». Пространство «ns2» расположено ниже пространства «ns1»; пространство «ns1» расположено на том же уровне, что и текущее именное пространство (таким образом текущее пространство и пространство «ns1» находятся ниже одного и того же родительского пространства). |
.ns1:ns2: | Ссылается на страницу «start» в именном пространстве «ns2». Именное пространство «ns2» расположено в именном пространстве «ns1», лежащем, в свою очередь, в текущем именном пространстве2). |
Удаление пространства имён
Если все статьи внутри пространства имён удалены, это пространство имён логически перестаёт существовать. «ДокуВики» обычно удаляет соответствующую ему пустую директорию.
Как переименовать пространство имён?
Ручной способ
Для того, чтобы переименовать пространство имён вручную, вам придется сделать следующее:
- Переименовать директории, которые представляют данное пространство имён в:
data/pages
data/media
(если есть)
- Удалить метаданные этого пространства имён в
data/meta
- Удалить данные attic этого пространства имён в
data/attic
(или целиком переместить в другое место, если вы хотите сохранить старые версии)
Например, на Unix-сервере вы можете:
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
Обратите внимание, что возможно имена old_namespace
и/или new_namespace
могут быть конвертированы, если они не входят набор символов Latin (т. е. греческий, русский и т. д.).
- Поправьте, отредактировав, все ссылки на статью в перемещённом пространстве имён (вы можете отыскать их перед переименованием пространства имен, просмотрев обратные ссылки во всех статьях данного пространства.
- Просмотрите все статьи в новом пространстве имён. Это создаст отсутствующую индексную информацию и метаданные для статей перемещённого пространства имён.
Однако у вас все ещё останется достаточно всякого «хлама». Например, в data/changes.log
, различные файлы в кэше (включая файлы .idx
и пр.). Если возможно, можете начать с «чистого состояния» как показано ниже (опять же под Unix), но предупреждаем, что это приведёт к потере всей «исторической» информации (такой как «последние изменения»):
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
- Просмотрите все статьи в вашей вики.
Оговорка: Я понимаю, что это весьма замысловато (и, возможно, я пропустил или перепутал пару вещей, которые нужно было сделать). В конце концов всё это — PITA3). Вы также можете использовать пару доступных плагинов для построения/перестройки поисковых индексов всей вики, очистки содержимого кэша и/или старых версий, что избавит вас от ручной работы.
Способ с использованием плагинов
Вы можете использовать сторонний плагин PageMove4) для переноса каждой страницы из старого пространства имён в новое. Пожалуйста, обратитесь к документации, чтобы убедиться, что это то, что вам нужно.
Ссылки по умолчанию в пространстве имён
Можно задавать ссылку на файл по умолчанию для пространства имён, заканчивая ссылку двоеточием: [[foo:bar:]]. На какую статью указывает ссылка, зависит от наличия файлов с определёнными именами. Для [[foo:bar:]] проверяется существование следующих страниц:
foo:bar:$conf['start'] foo:bar:bar foo:bar
Статьи проверяются в этом порядке и ссылка указывает на первую найденную. Множественное связывание не производится для таких ссылок5).
Это свойство доступно только в версиях 2006-09-28 RC1 и выше.