This translation is older than the original page and might be outdated. See what has changed.
Translations of this page?:

Пространства имен

В 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/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
  • Просмотрите все статьи в вашем Wiki.

ОГОВОРКА : Я понимаю, что это весьма замысловато (и возможно я пропустил/перепутал пару вещей, который нужно было сделать). В конце концов все это - PITA. Вы также можете использовать пару доступных плагинов для построения/перестройки поисковых индексов всего wiki, очистки содержимого кэша и/или старых версий, что избавит вас от ручной работы.

Способ с использованием плагинов

Вы можете использовать сторонний плагин PageMove для переноса каждой страницы из старого пространства имен в новое. Пожалуйста, обратитесь к документации, чтобы убедиться, что это то, что вам нужно.

Ссылки по умолчанию в пространстве имен

Можно задавать ссылку на файл по умолчанию для пространства имен, заканчивая ссылку двоеточием: [[foo:bar:]]. На какую статью указывает ссылка, зависит от наличия файлов с определенными именами. Для [[foo:bar:]] проверяется существование следующих страниц:

foo:bar:$conf['start']
foo:bar:bar
foo:bar

Статьи проверяются в этом порядке и ссылка указывает на первую найденную. Множественное связывание не производится для таких ссылок 3)

:!: Это свойство доступно только в версиях 2006-09-28 RC1 и выше.

1) На сервере, который обслуживает DokuWiki, пространство имён — это обычная директория, в которой находятся текстовые файлы — статьи DokuWiki.
2) Статья по умолчанию может называться не только “start”, для этого надо указать нужное значение в настройках DokuWiki#start
3) Autoplural linking is not done for those links
 
ru/namespaces.txt · Last modified: 2010/02/22 00:10 by 93.81.101.32
 
Except where otherwise noted, content on this wiki is licensed under the following license:CC Attribution-Noncommercial-Share Alike 3.0 Unported
Imprint Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki
WikiForumIRCBugsGitXRefTranslate