В 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
Страницы проверяются в этом порядке и ссылка указывает на первую найденную.
Обсуждение
Добрый день. У меня используется шаблон dokubook, в котором автоматически создается sidebar и при этом включена полная транслитерация, как сделать, чтобы в sidebar отображались не транслитерованные названия страниц я прочитал, подскажите пожалуйста, возможно ли при этом сделать также, чтобы в sidebar отображались и не транслитерованные названия пространств имен?
И еще один вопрос по sidebar, возможно ли там каким-либо образом менять расположение страниц и пространств имен, т.е. допустим у меня есть следующий sidebar:
Пространство имен
Пространство имен
Страница
можно ли поменять местами пространство имен и страницу, чтобы получилось так:
Страница
Пространство имен
Пространство имен
Насколько я понял по умолчанию все составляется в алфавитном порядке.
Попробуйте изменить настройку «Первый заголовок вместо имени». Если не поможет - значит шаблон dokubook её игнорирует и придётся переписывать код шаблона.
Это настройка включена, с помощью нее в sidebar выводятся не транслитерованные имена страниц, но это страницы и там можно прописать первый заголовок при редактировании страницы, а в пространстве имен это нельзя сделать, т.к. там собственно ничего не редактируется.
Разобрался с редактированием sidebar, если создать страницу с именем navigation (при условии, что это имя Вы не меняли в настройках шаблона), то там можно создать нужный sidebar, но сейчас возник вопрос, как сделать раскрывающиеся по щелчку мышкой пункты?
Поддерживаю предыдущий вопрос по поводу «как сделать раскрывающиеся по щелчку мышкой пункты?»
Раскрывающие по щелчку мышкой пункты (если вы имеете в виду дерево ссылок, навигация по которому не перезагружает текущей страницы) - это уже к вопросу модифицирования темы. Нужно в тему добавить CSS стили и JavaScript код, которые будут реализовывать нужный вам функционал.
Однако можно сделать «эмуляцию» раскрывающихся пунктов, когда в каждом пространстве имён сделаны свои боковые меню, а в основном пространстве имён - боковое меню содержит ссылки на внутренние пространства имён.
Здесь http://www.dokuwiki.org/ru:tips:tailorwikirules написано: «Отредактируйте вашу стартовую страницу, укажите на ней самые важные разделы вашей докувики, отсортированные по пространствам имен.» Как сделать ссылки на пространства имён?
Непосредственно на пространство имён сделать ссылку нельзя. Ссылка в ДокуВики всегда указывает на какую либо страницу (причём изначально пустую). Допустим, у вас есть следующая структура:
В таком случае в системе могут присутствовать следующие файлы:
Файл namespace1.txt на самом деле находится в корневом пространстве имён и является обычной страницей ДокуВики. В нём, конечно, можно разместить ссылки на страницы соответствующего пространства имён (либо вручную, либо использовав подходящий плагин для вывода перечней страниц).
Я для удобства завожу в пространстве имён страницу index, на которой и выстраиваю всю необходимую навигацию по пространству имён. Это удобнее, так как все ссылки на страницы можно писать в сокращённом виде - без указания пространства имён в начале ссылки (так как страница index находится в том же пространстве). А в сайдбаре делаю ссылку на этот индексный файл.
Вот смотрите пример:
:example в корневом именном пространстве.
Как сделать, чтобы ссылка работала в корневом пространстве и во всех низлежащих?
Ссылки, начинающиеся с двоеточия корректно работают и из вложенных пространств имён.
А во вниз лежащие пространства как автоматом спуститься?
Вы опишите на пальцах, что имеете в виду, и я попробую рассказать, как это можно сделать.
К примеру, находимся на странице namespace1:page1
Как сослаться на namespace2:page2
[[namespace2:page2]] или [[:namespace2:page2]]. Это если namespace1 и namespace2 - просто разные пространства имён в корневом.
А если они вложенные, то можно сослаться следующим образом: [[namespace1:namespace2:page2]], [[:namespace1:namespace2:page2]], [[.:namespace2:page2]] или [[.namespace2:page2]]
Ссылки, начинающиеся с точки, позволяют не указывать в явном виде текущее пространство имён.
Так оно понятно, а как сослаться без указания пространства имён, чтобы искало во всех доступных пространствах по имени page2?
Если важно «чтобы искало» - надо использовать плагины, которые выводят результаты поиска в виде списка страниц. А обычные ссылки в Вики указывают на конкретные страницы.
Столкнулся со странное проблемой.
Тут нет ни слова о utf-8-пространствах имён. Однако возникают недоразумения.
Допустим, я создаю страницу с названием «мир:тест» (название страницы «тест», пространство имён «мир»). Нажимаю сохранить, и меня выкидывает на страницу http://myhost.com/doku.xn--php?id=-2hg9a4b:%D1%82%D0%B5%D1%81%D1%82. Собственно, 404. Меня смущает xn–, говорящее о том, что где-то после идут символы в юникоде. Но этот знак пихается в середину адреса, а не в начало, как положено, потому страница и не находится. Но что интересно, страница создаётся, пространство имён тоже, и статья доступна по вбитому адресу и через поиск. Но каждый раз при редактировании страницы - 404. Как это можно поправить?
На какой платформе запущена DokuWiki? Какие настройки отображения используются? Включена ли и какая транслитерация в именах страниц?
Платформа - Windows, транслитерация отключена полностью.
Перевёл всю систему перевёл на транслитерацию страниц. Помучился с переименованием, но-таки добился того, чтобы всё работало.
И тем не менее, проблема остаётся нерешённой.
как отобразить на странице список ссылок на все страницы в определенном namespace по одной ссылке в строке?
Я не понимаю. Я хочу просто создать категории и туда напихать статей. Мне обязательно нужно на какойто странице писать [[названиекатегории:подкатегория:статья]] ? Нет ли инструментов для более удобоного упорядочивания?
В mediawiki к примеру это организованно через добавление в самом низу страницы [[Категория:название]]
Для категоризации статей можно использовать несколько способов. Во-первых, можно разложить статьи по пространствам имён. Это процесс ручной, и каждая страница может принадлежать только одному пространству имен.
С другой стороны, категории медиавики больше по функционалу похожи на тэги - у статьи может быть несколько категорий, список категорий можно изменять, меняя только текст статьи (не перемещая статью). В Докувики аналогом последнего являются тэги - посмотрите на плагин plugin:tag (ему для функционирования нужен плагин plugin:pagelist).
Много читал, _что_ можно сделать автоматическое создание оглавлений для пространств имен, но ни одного слова _как_ это сделать. Не подскажет ли кто?;) Заранее спасибо!
plugin:indexmenu