Здесь показаны различия между двумя версиями данной страницы.
— |
wiki:namespaces [2012/07/06 11:50] (текущий) Izotop создано |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
+ | ====== Пространства имён ====== | ||
+ | В «[[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 |Ссылается на статью <<example>> в именном пространстве <<ns2>>. Пространство <<ns2>> расположено ниже пространства <<ns1>>; пространство <<ns1>> расположено на том же уровне, что и **текущее** именное пространство (таким образом **текущее** пространство и пространство <<ns1>> находятся ниже одного и того же **родительского** пространства).| | ||
+ | |.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:]]%% проверяется существование следующих страниц: | ||
+ | |||
+ | <code> | ||
+ | foo:bar:$conf['start'] | ||
+ | foo:bar:bar | ||
+ | foo:bar | ||
+ | </code> | ||
+ | |||
+ | Статьи проверяются в этом порядке и ссылка указывает на первую найденную. | ||
+ | Множественное связывание не производится для таких ссылок((Autoplural linking is not done for those links.)). | ||
+ | |||
+ | :!: **Это свойство доступно только в версиях 2006-09-28 RC1 и выше.** |