====== Пространства имён ====== В «[[dokuwiki|ДокуВики]]» вы можете использовать так называемые «пространства имён» или «именные пространства» для упорядочивания ваших статей.((На сервере, который обслуживает «ДокуВики», пространство имён — это обычная директория, в которой находятся текстовые файлы — статьи «ДокуВики».)) ===== Создание пространства имён ===== Для создания пространств имён не нужно предпринимать каких-то специальных действий: просто используйте двоеточие «:» в [[pagename|названиях статей]]. Часть названия после последнего двоеточия станет названием статьи (файла), а всё, что находится «до», станет именным пространством (последовательностью вложенных директорий). Если такого именного пространства ещё нет, оно создастся автоматически. ^ Примеры ^^ |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 |Ссылается на статью <> в именном пространстве <>. Пространство <> расположено ниже пространства <>; пространство <> расположено на том же уровне, что и **текущее** именное пространство (таким образом **текущее** пространство и пространство <> находятся ниже одного и того же **родительского** пространства).| |.ns1:ns2: |Ссылается на страницу «start» в именном пространстве «ns2». Именное пространство «ns2» расположено в именном пространстве «ns1», лежащем, в свою очередь, в текущем именном пространстве((Статья по умолчанию может называться не только «start», для этого надо указать нужное значение в [[config|настройках «ДокуВики»]].)). | ===== Удаление пространства имён ===== Если все статьи внутри пространства имён удалены, это пространство имён логически перестаёт существовать. «ДокуВики» обычно удаляет соответствующую ему пустую директорию. ===== Как переименовать пространство имён? ===== ==== Ручной способ ==== Для того, чтобы переименовать пространство имён вручную, вам придется сделать следующее: * Переименовать директории, которые представляют данное пространство имён в: * ''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 (т. е. греческий, русский и т. д.). * Поправьте, отредактировав, все ссылки на статью в //перемещённом// пространстве имён (вы можете отыскать их перед преименованием пространства имен, просмотрев [[backlinks|обратные ссылки]] во всех статьях данного пространства. * Просмотрите все статьи в новом пространстве имён. Это создаст отсутствующую индексную информацию и метаданные для статей перемещённого пространства имён. Однако у вас все ещё останется достаточно всякого «хлама». Например, в ''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'' * Просмотрите все статьи в вашей вики. **Оговорка:** Я понимаю, что это весьма замысловато (и, возможно, я пропустил или перепутал пару вещей, которые нужно было сделать). В конце концов всё это --- PITA((Шило в заднице.)). Вы также можете использовать пару доступных [[plugins|плагинов]] для построения/перестройки поисковых индексов всей вики, очистки содержимого кэша и/или старых версий, что избавит вас от ручной работы. ==== Способ с использованием плагинов ==== Вы можете использовать сторонний плагин «[[:plugin:PageMove]]»((Плагин не совместим с версий «Лемминг».)) для переноса каждой страницы из старого пространства имён в новое. Пожалуйста, обратитесь к документации, чтобы убедиться, что это то, что вам нужно. ===== Ссылки по умолчанию в пространстве имён ===== Можно задавать ссылку на файл по умолчанию для пространства имён, заканчивая ссылку двоеточием: %%[[foo:bar:]]%%. На какую статью указывает ссылка, зависит от наличия файлов с определёнными именами. Для %%[[foo:bar:]]%% проверяется существование следующих страниц: foo:bar:$conf['start'] foo:bar:bar foo:bar Статьи проверяются в этом порядке и ссылка указывает на первую найденную. Множественное связывание не производится для таких ссылок((Autoplural linking is not done for those links.)). :!: **Это свойство доступно только в версиях 2006-09-28 RC1 и выше.**