DokuWiki.ru

простой и мощный вики-движок

Инструменты пользователя

Инструменты сайта


namespaces

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

В 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 обычно удаляет соответствующую ему пустую директорию.

Как переименовать пространство имен?

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

Ручной способ гораздо более трудоемкий.

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

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

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

Страницы проверяются в этом порядке и ссылка указывает на первую найденную.

1)
На сервере, который обслуживает DokuWiki, пространство имен - это обычная директория в которой находятся текстовые файлы - страницы DokuWiki.
2)
Страница по умолчанию может называться не только «start», для этого надо указать нужное значение в настройках DokuWiki#start

Обсуждение

Дмитрий, 2016/09/23 20:21

Indexmenu ID conflict - что с этим делать, как избавиться от этой ошибки?

hjhj, 2012/10/20 15:06

fgghgj

Даниил, 2011/10/13 16:34

Есть ли ли возможность сделать так чтоб группа1 создавала статьи автоматически только в пространстве имен для группы1. (Без указания «группа1:статья»)

Aleksandr, 2011/12/17 14:19

Даниил, переформулируйте свой вопрос, а то ничего не понятно.

zysyl, 2011/09/09 13:04

Доброго времени. Подскажите можно сделать так что-бы при переходе на страничку, автоматом не развертывалось «содержание». Оно у меня сильно большое и почему-то раздвигает один из пунктов, при этом появляется большое белое пространство.

Надо в любом месте страницы вставить ~~NOTOC~~

Алексей, 2011/09/03 19:43

Можно ли сделать так, что бы при создании страниц с кирилическими названиями, они создавались не с названиями %D0%B8%D0%BD%D1%82%D0%B5%D1%80%D0%BD%D0%B5%D1%82, а с читабельной кирилицей

Денис, 2011/09/16 14:56

Можно, но не нужно. Сервер вообще не обязан иметь русской локали.

Алексей, 2011/09/17 15:03

Да, конечно, не обязан. А как сделать, что бы генерация каталога при создании страницы было кириллическим?

Алексей, 2011/03/02 13:57

Подскажите как сделать нумерацию пространств имен в автоматическом режиме

godlike, 2010/08/16 01:17

Много читал, _что_ можно сделать автоматическое создание оглавлений для пространств имен, но ни одного слова _как_ это сделать. Не подскажет ли кто?;) Заранее спасибо!

Aleksandr, 2010/08/16 23:12

plugin:indexmenu

Valentin, 2010/07/10 10:55, 2010/07/30 10:24

Я не понимаю. Я хочу просто создать категории и туда напихать статей. Мне обязательно нужно на какойто странице писать [[названиекатегории:подкатегория:статья]] ? Нет ли инструментов для более удобоного упорядочивания?

В mediawiki к примеру это организованно через добавление в самом низу страницы [[Категория:название]]

Александр Соркин aka Киби, 2010/07/30 10:35, 2010/07/30 10:36

Для категоризации статей можно использовать несколько способов. Во-первых, можно разложить статьи по пространствам имён. Это процесс ручной, и каждая страница может принадлежать только одному пространству имен.

С другой стороны, категории медиавики больше по функционалу похожи на тэги - у статьи может быть несколько категорий, список категорий можно изменять, меняя только текст статьи (не перемещая статью). В Докувики аналогом последнего являются тэги - посмотрите на плагин plugin:tag (ему для функционирования нужен плагин plugin:pagelist).

BalTun, 2010/04/16 04:30

как отобразить на странице список ссылок на все страницы в определенном namespace по одной ссылке в строке?

Дмитрий, 2010/04/08 00:37

Столкнулся со странное проблемой.

Тут нет ни слова о utf-8-пространствах имён. Однако возникают недоразумения.

Допустим, я создаю страницу с названием «мир:тест» (название страницы «тест», пространство имён «мир»). Нажимаю сохранить, и меня выкидывает на страницу http://myhost.com/doku.xn--php?id=-2hg9a4b:%D1%82%D0%B5%D1%81%D1%82. Собственно, 404. Меня смущает xn–, говорящее о том, что где-то после идут символы в юникоде. Но этот знак пихается в середину адреса, а не в начало, как положено, потому страница и не находится. Но что интересно, страница создаётся, пространство имён тоже, и статья доступна по вбитому адресу и через поиск. Но каждый раз при редактировании страницы - 404. Как это можно поправить?

На какой платформе запущена DokuWiki? Какие настройки отображения используются? Включена ли и какая транслитерация в именах страниц?

Дмитрий, 2010/04/08 19:58

Платформа - Windows, транслитерация отключена полностью.

Перевёл всю систему перевёл на транслитерацию страниц. Помучился с переименованием, но-таки добился того, чтобы всё работало.

И тем не менее, проблема остаётся нерешённой.

Денис, 2010/03/28 22:48

К примеру, находимся на странице namespace1:page1

Как сослаться на namespace2:page2

Александр Соркин aka Киби, 2010/03/29 11:50, 2010/03/29 11:51

[[namespace2:page2]] или [[:namespace2:page2]]. Это если namespace1 и namespace2 - просто разные пространства имён в корневом.

А если они вложенные, то можно сослаться следующим образом: [[namespace1:namespace2:page2]], [[:namespace1:namespace2:page2]], [[.:namespace2:page2]] или [[.namespace2:page2]]

Ссылки, начинающиеся с точки, позволяют не указывать в явном виде текущее пространство имён.

Денис, 2010/03/29 12:05

Так оно понятно, а как сослаться без указания пространства имён, чтобы искало во всех доступных пространствах по имени page2?

Если важно «чтобы искало» - надо использовать плагины, которые выводят результаты поиска в виде списка страниц. А обычные ссылки в Вики указывают на конкретные страницы.

Денис, 2010/03/26 09:12, 2010/03/27 12:49

Вот смотрите пример:

:example в корневом именном пространстве.

Как сделать, чтобы ссылка работала в корневом пространстве и во всех низлежащих?

Ссылки, начинающиеся с двоеточия корректно работают и из вложенных пространств имён.

Денис, 2010/03/27 14:10
и из вложенных пространств имён

А во вниз лежащие пространства как автоматом спуститься?

Вы опишите на пальцах, что имеете в виду, и я попробую рассказать, как это можно сделать.

Денис, 2010/03/24 16:09

Здесь http://www.dokuwiki.org/ru:tips:tailorwikirules написано: «Отредактируйте вашу стартовую страницу, укажите на ней самые важные разделы вашей докувики, отсортированные по пространствам имен.» Как сделать ссылки на пространства имён?

Александр Соркин aka Киби, 2010/03/27 13:01, 2010/03/29 11:57

Непосредственно на пространство имён сделать ссылку нельзя. Ссылка в ДокуВики всегда указывает на какую либо страницу (причём изначально пустую). Допустим, у вас есть следующая структура:

page1
namespace1
  page2

В таком случае в системе могут присутствовать следующие файлы:

  • page1.txt
  • namespace1.txt
  • namespace1/page2.txt

Файл namespace1.txt на самом деле находится в корневом пространстве имён и является обычной страницей ДокуВики. В нём, конечно, можно разместить ссылки на страницы соответствующего пространства имён (либо вручную, либо использовав подходящий плагин для вывода перечней страниц).

Я для удобства завожу в пространстве имён страницу index, на которой и выстраиваю всю необходимую навигацию по пространству имён. Это удобнее, так как все ссылки на страницы можно писать в сокращённом виде - без указания пространства имён в начале ссылки (так как страница index находится в том же пространстве). А в сайдбаре делаю ссылку на этот индексный файл.

Knight, 2009/08/25 09:38, 2009/08/25 13:48

Добрый день. У меня используется шаблон dokubook, в котором автоматически создается sidebar и при этом включена полная транслитерация, как сделать, чтобы в sidebar отображались не транслитерованные названия страниц я прочитал, подскажите пожалуйста, возможно ли при этом сделать также, чтобы в sidebar отображались и не транслитерованные названия пространств имен?

И еще один вопрос по sidebar, возможно ли там каким-либо образом менять расположение страниц и пространств имен, т.е. допустим у меня есть следующий sidebar:

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

можно ли поменять местами пространство имен и страницу, чтобы получилось так:

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

Насколько я понял по умолчанию все составляется в алфавитном порядке.

Попробуйте изменить настройку «Первый заголовок вместо имени». Если не поможет - значит шаблон dokubook её игнорирует и придётся переписывать код шаблона.

Knight, 2009/08/25 17:32

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

Knight, 2009/08/26 14:44

Разобрался с редактированием sidebar, если создать страницу с именем navigation (при условии, что это имя Вы не меняли в настройках шаблона), то там можно создать нужный sidebar, но сейчас возник вопрос, как сделать раскрывающиеся по щелчку мышкой пункты?

Ruslan, 2009/10/16 14:13

Поддерживаю предыдущий вопрос по поводу «как сделать раскрывающиеся по щелчку мышкой пункты?»

Раскрывающие по щелчку мышкой пункты (если вы имеете в виду дерево ссылок, навигация по которому не перезагружает текущей страницы) - это уже к вопросу модифицирования темы. Нужно в тему добавить CSS стили и JavaScript код, которые будут реализовывать нужный вам функционал.

Однако можно сделать «эмуляцию» раскрывающихся пунктов, когда в каждом пространстве имён сделаны свои боковые меню, а в основном пространстве имён - боковое меню содержит ссылки на внутренние пространства имён.

Где можно прочитать о том «как сделать, чтобы в sidebar отображались не транслитерованные названия страниц» ?

Нашел. Внимательнее конфиг надо было читать. На странице с конфигурацией вики есть несколько параметров отвечающих за кодировки: deaccent , useheading , fnencode. Возможно есть еще какие-то, но я их не увидел :-Р

Только авторизованные участники могут оставлять комментарии.
namespaces.txt · Последние изменения: 2017/03/15 20:55 — kibi