DokuWiki (Докувики) — простой, но достаточно мощный вики-движок, который может быть использован для создания любой документации. Автор проекта — Андреас Гор (Andreas Gohr). В отличие от многих других движков, DokuWiki использует для хранения страниц текстовые файлы, таким образом единственным требованием является поддержка хостингом PHP (последний релиз требует PHP 7.4 или новее). Код движка распространяется на условиях GNU General Public License версии 2.
Краткие факты Тип, Разработчик ...
Закрыть
- «Докувики» в первую очередь позиционирует себя как 100% юникодную вики без использования баз данных: разметка хранится в текстовых файлах и может быть массово обработана регулярными выражениями, хотя существует плагин BatchEdit, позволяющий сделать обработку прямо в браузере. В отличие от вики-движка PmWiki, следующие особенности распределённого хранения позволяют «Докувики» обращаться к сравнительно небольшим файлам и выносить очень серьёзные DoS-атаки:
- страницы располагаются в data/pages по папкам (соотстветствуют пространства имён вики-движка) аналогично структуре файловых систем, соответственно, есть возможность создания одноимённых страниц в разных папках.
- загрузка картинок и прочих файлов в data/media через медиаменеджер с деревом папок, которое может быть аналогичным дереву папок страниц (адресация картинок при этом может быть резко упрощена), но не обязательно. Отдельным плагином ArchiveUpload допускается загрузка архивами. Имена файлов подчинены следующим требованиям — не иметь прописного регистра, пробелов, не начинаться с подчёркивания.
- через столь же структурированные файлы-метатеги и для страниц, и для файлов поддерживается неограниченная (настраиваемая) история изменений в data/meta и data/media_meta.
- отдельно в такой же папочно-файловой структуре в data/attic и data/media_attic хранятся gzip-архивы прежних версий страниц и прежние версии файлов.
- индексация проводится в data/index, а контроль сессий — в data/locks.
- Большое количество плагинов, расширяющих базовую функциональность, в том числе и устанавливающие работу с СУБД SQLite и MySQL.
- Несмотря на документационное назначение движка, серьёзное внимание уделено медийным и оформительным плагинам. Характерная особенность сообщества этой CMS — разработка нехарактерного для начальной идеи функциональности и адаптация кода из других CMS, также опенсорсный формат позволяет свободно дорабатывать брошенные функции, таким образом, CMS с плагинами годится для совершенно различающихся проектов.
- Обширные возможности разметки. Через плагины может быть включена поддержка HTML, PHP, BBCode, Creole, Markdown, Textile, txt2tags (англ.), MediaWiki. Имеется библиотека GeShi для цветовой разметки в нескольких десятках языков программирования, встроена типографика, поддерживаются интервики, акронимы, смайлы.
- Простой синтаксис дополнен панелью пиктограмм, которые облегчают его освоение. Также с плагином CustomButtons можно добавлять свои кнопки, а плагином BBCode — более популярный, но ограниченный метод разметки.
- Редактирование страницы по частям (секциям), в том числе с поддержкой diff3, есть поддержка решения редакционных коллизий, автоматическое сохранение черновика, есть ряд плагинов с адаптациями разных WYSIWYG-редакторов, функция SaveAndEdit (промежуточное сохранение). Для структурированных заголовками страниц — автоматическое оглавление для страницы. Имеются гибкие настройки во всей вики и спецмакрос на запрет оглавления на странице.
- Имеются ACL — контрольные списки прав доступа (без права чтения, чтение, запись, создание страниц, загрузка файлов, удаление страниц), как для групп, так и отдельных пользователей, как для папок, так и для отдельных страниц. Можно, например, создать группу пользователей, имеющих исключительные права в своей отдельной папке (teamworking).
- Полнотекстовый поиск собственными средствами, индексирование страниц. Быстрый поиск по названиям страниц (по AJAX-технологии). Поддержка OpenSearch.
- Многоязыковая поддержка интерфейса (на уровне CMS) и через специальный плагин — текстов (созданием надпапок с именем в виде стандартного двухбуквенного сокращения языка, за навигацию отвечает отдельный плагин). Официальный сайт движка русифицируется с помощью такого механизма.
- Многоуровневая защита — встроенный антиспам-фильтр, встроенный плагин Revert — массовый откат вандализма, плагин IPBan, плагины для CAPTCHA нескольких видов.
- Вся настройка основной конфигурации, списка плагинов и самих плагинов (за редким исключением: например, плагин htmlokalt) производится с помощью локализованного веб-интерфейса.
- Существует набор готовых шаблонов внешнего вида. Самостоятельное редактирование внешнего вида приветствуется (все части шаблонов написаны на PHP).
- Автоматическое создание карты сайта (технология sitemap). Поддерживается отправка последних изменений страниц и файлов по RSS или Atom. Экспорт в формате PDF и других, версии для печати.