WackoWiki

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
WackoWiki
Wacko logo.png
Wackowiki r54 welcome home.png
Тип

Язык разметки

Разработчик

WackoWiki Team

Написана на

PHP

Операционная система

Кроссплатформенное программное обеспечение

Последняя версия

5.5.0 (25 августейший 2017)

Лицензия

Лицензия BSD

Сайт

wackowiki.org

WackoWiki (произносится как "Ва́ккоВики", в документации часто используется просторечное название "Ва́ка") — вики-движок на PHP. В настоящий момент выпущена версия R5.5.

Основные особенности[править | править вики-текст]

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

Выбранный в движке способ ввода и редактирования текстов типичен для вики-движков: оформление текста делается с помощью несложной системы вики-разметки. Синтаксис разметки минимизирует переключение раскладок клавиатуры. Особенностью данной реализации является автоматический корректор типографики — некоторые действия по оформлению текста при выводе производятся автоматически, без преобразования исходного текста страницы (например, знак «минус», помещённый в тексте между словами и отделённый от них пробелами, автоматически преобразуется в типографское длинное тире, обычные парные кавычки — в кавычки-"ёлочки"). WikiEdit — javascript-расширение обычного поля ввода, позволяет вводить вики-разметку при помощи «горячих клавиш». Реализована довольно широкая номенклатура «форматтеров» — средств для структурированного вывода текстов в различных формализованных видах, таких как логи IM, исходные тексты программ на языках PHP и SQL и т. п.

Для упрощения оформления ссылок на вики-страницы в движке поддерживается соглашение, по которому выражение, записанное в стиле CamelCase (например, «ВотТакоеСлово»), считается именем страницы и автоматически преобразуется при выводе в ссылку на страницу с соответствующим именем. Это упрощает оформление (чтобы поставить ссылку на страницу с подобным именем, не нужно никакой разметки), что провоцирует соответствующее именование страниц на вики-сайтах, поддерживаемых данным движком.

Для структуризации набора страниц используется механизм «кластеров». Страницы организуются в структуру, подобную древовидной файловой системе; присваиванием новой странице соответствующего имени она может быть помещена в нужное место этой структуры. Поддерживается два вида синтаксиса для описания страниц в кластере: url-like и twiki-like.

Механизм «действий» (по сути — макросов, помещаемых в текст и при выводе автоматически заменяемых на определяемую действием информацию) позволяет автоматически выводить на страницы служебную информацию, например, формировать оглавления страниц, списки содержимого кластеров, перекрёстные ссылки и многое другое.

Система многоязычна — на данный момент доступны 14 языков (en, ru, da, de, el, pl, nl, fr, it, bg, et, es, mo и pt).

История[править | править вики-текст]

Движок WackoWiki был создан на основании более раннего проекта WakkaWiki (разработчики Carlos Zottman и Hendrik Mans), предназначенного для совместной разработки в рамках небольших intranet-проектов. Разработка исходного движка была остановлена на стадии версии 0.1.2, в 2003 году. На его основе было запущено несколько (не менее шести) fork-проектов, одним из которых и стал WackoWiki.

  • 30 апреля 2003 года вышла первая версия WackoWiki, получившая сразу номер 3.
  • 31 июля 2004 года был завершён четвёртый выпуск WackoWiki.
  • 27 марта 2005 года была выпущена версия R4.2
    После выхода версии 4.2 разработчики сфокусировались на новом проекте — NPJ, активность разработки WackoWiki резко снизилась. Некоторое время изменения в SVN-репозитории проекта ещё делались, но новых официальных версий так и не появилось. В настоящее время команда прекратила и разработку NPJ.
  • В 2007 году проект был подобран maintainer-ом из Германии, сменил сайт с wackowiki.com на wackowiki.org, и теперь WackoWiki разрабатывает международная команда.
  • 28 сентября 2008 года выпущена версия RC4.3 (статус — release candidate), не имеющая принципиальных отличий от 4.2, а содержащая лишь исправления некоторых ошибок.
  • 20 марта 2011 года выпущена финальная версия R4.3.
  • На конец 2011 года был заявлен выпуск версии 5.0. Фактически версия 5.0RC3 была доступна для скачивания с 20 марта 2012 года. Основные заявленные изменения: совместимость с PHP 5.3, нормализация базы данных, перенос изменений из проекта openSpace (также вики-движок, форк-проект WackoWiki 4.2, добавлен ряд новых инструментов, в частности, панель администратора.
  • 22 апреля 2012 года выпущен релиз версии 5.0, а 17 июня 2012 года — 5.1 (с минимальными исправлениями).
  • Объявлены планы выпуска версий 5.2 (поддержка MySQL 6 и XML-RPC) и 6.0 (поддержка UTF-8, глобальная переделка архитектуры проекта).

Ссылки[править | править вики-текст]


Недостатки[править | править вики-текст]

  • Система распределения прав — матричного типа, на три действия. В результате невозможно, например, запретить создавать дочерние статьи, перемещать статью и так далее.
  • Наследование ролей не поддерживается.
  • Наследование настроек прав на ветку документов отсутствует, вместо него права родительского документа копируются в дочерний на момент его создания, так что впоследствии изменение прав на статью-родителя не отражается на дочерних материалах.
  • Повышенное ресурсопотребление при выводе дочерних статей. Когда требуется загрузить всего один уровень дочерних статей, в память загружается все поддерево, которое потом усекается средствами PHP, что замедляет обработку большого количества древовидных данных. Это обусловлено выбранным способом хранения дерева — Materialized Path c хранением путей в строковом формате.