Русская Википедия:MoinMoin

Материал из Онлайн справочника
Версия от 06:22, 16 июля 2023; EducationBot (обсуждение | вклад) (Новая страница: «{{Русская Википедия/Панель перехода}} {{Карточка программы | name = MoinMoin | screenshot = MoinMoinScreenshot.png | caption = Скриншот сайта http://moinmo.in/, работающего под управлением MoinMoin | logo = Moinmoin.png | developers = Thomas Waldmann, Jürgen Hermann, [http://moinmo.in/MoinCoreTeamGroup и др.] | programming_language = Python | language = более 30...»)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигацииПерейти к поиску

Шаблон:Карточка программы

MoinMoin — мощный, простой в использовании и расширяемый вики-движок, написанный на языке Python. MoinMoin — свободное программное обеспечение, распространяемое по лицензии GNU GPL.

Название происходит от приветствия «Moin» во фризском языке[1].

Для хранения информации MoinMoin использует файловую систему[2].

Может работать практически с любым веб-сервером, поддерживающим CGI/FastCGI/WSGI[3], или без него (со встроенным веб-сервером на базе Werkzeug[4]).

История

MoinMoin появился примерно в 2000 году[5]. Изначально проект разрабатывался Юргеном Херманном (Jürgen Hermann), на данный момент он покинул проект и разработка ведётся командой людей[6], возглавляемой Томасом Вальдманном (Thomas Waldmann). В качестве основы для MoinMoin был использован движок PikiPiki, и MoinMoin сильно эволюционировал с того времени. На данный момент MoinMoin используется на ряде сайтов, а также в качестве корпоративной и персональной вики в множестве мест[7].

Архитектура

MoinMoin имеет достаточно гибкую архитектуру, следствием чего является богатый набор встроенных функций и простота расширяемости. Ключевыми компонентами вики-сервера MoinMoin являются:

  • Сервер. Обрабатывает запросы и вызывает соответствующие обработчики.
  • Обработчики-действия (actions). На основании параметров запроса и конфигурации реализуют различную функциональность вики.
  • Хранилище и кэш. Позволяют хранить различные виды данных (в первую очередь, страницы вики и прикреплённые к ним файлы, также там содержатся другие виды объектов, такие, как словари и группы), и предоставляют возможности по кэшированию (основной способ кэширования — pickle).
  • Механизм аутентификации. Позволяют аутентифицироваться пользователям различными способами (HTTP auth, LDAP, PHP cookie, …), подробнее см. http://master19.moinmo.in/ПомощьПоАутентификации
  • Механизм авторизации и разграничения прав доступа (security policy). Обеспечивают различные методы разграничения доступа, в первую очередь, ACL. См. также http://master19.moinmo.in/ПомощьПоСпискамДоступа и http://master19.moinmo.in/КакНастраивать/ПравилаДоступа.
  • Механизмы оповещения. Реализуют поддержку различных видов оповещений при возникновении различных событий, см. http://master19.moinmo.in/ПомощьПоОповещению.
  • Обработчики входных форматов (parsers, парсеры). Вызываются для обработки страницы или блока текста в некоем входном формате. Могут дополняться пользовательскими парсерами.
  • Обработчики выходных форматов (formatters, форматтеры). Вызываются парсерами для генерации текста в выходном формате.
  • Макрокоманды (macro). Могут использоваться в теле страницы для генерации произвольного содержимого и расширения синтаксиса, таким образом.

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

Преимущества и функциональные особенности

  • Может работать практически на любой операционной системе и со многими веб-серверами (Apache, IIS, WebLogic, Lighttpd и др.).
  • Не требует установки дополнительного программного обеспечения, такого, как система управления базами данных или система управления версиями[8]
  • Благодаря наличию встроенного веб-сервера может использоваться как кросс-платформенный переносимый вики-движок (Вики, которая всегда с тобой, вне зависимости от установленной ОС)
  • Имеет встроенный полноценный WYSIWYG-редактор (интегрированный CKeditor), который позволяет редактировать wiki-разметку привычным для простых пользователей способом
  • Может использовать поисковой движок Xapian, что предоставляет такие возможности, как индексация различных видов содержимого (в том числе различных форматов прикреплённых файлов; на данный момент поддерживается индексирование файлов в форматe Open Document Format, MS Office, PDF, различных текстовых форматов, мета-данных EXIF в изображениях JPEG и текстовых строк в бинарных файлах), морфологический поиск, поиск файлов по типу MIME и ряд других
  • Имеет встроенную поддержку Java-апплетов для создания иллюстраций на вики — AnyWikiDraw и TWikiDraw[9]
  • Поддержка механизмов обработчиков входного и выходного форматов («parser» и «formatter») позволяет использовать на вики различные синтаксисы разметки в теле страниц (на данный момент поддерживаются, помимо собственного синтаксисаШаблон:Недоступная ссылка, синтаксис Creole, формат reStructured Text, XML-страницы с использованием XSLT, отображение в виде таблиц CSV, подсветка синтаксиса для различных текстовых форматов[10], подробнее см. http://master19.moinmo.in/ПомощьПоПарсерам) и экспортировать страницы в различных форматах (помимо HTML, возможен экспорт в plain text и DocBook). Кроме того, существуют репозитории сторонних парсеров и форматтеров, позволяющих поддерживать другие форматы на вики.
  • Как интерфейс, так и системные страницы и страницы помощи переведены на большое количество языков (более 30). Кроме того, MoinMoin имеет поддержку многоязычных вики (вики, на которых используется несколько языков для страниц[11]). В версиях 1.8.6 и 1.9 русская локализация была обновлена.
  • Поддержка списков доступа и различных политик безопасности на их основе[12].
  • Поддержка как свободного синтаксиса ссылок, так и ссылок в CamelCase. Поддержка встраивания различных форматов файлов (изображения, аудио, видео, SWF, других страниц) в тело страницы (подробнее см. http://master19.moinmo.in/КакСвязыватьСтраницы).
  • Механизмы защиты от спама: как на основе чёрных списков (централизованно обновляемых), так и с использованием текстовой капчи.
  • Механизм защиты от флуда: имеется возможность ограничить количество запросов определённых действий в определённый момент времени для одного IP или пользователя.
  • Поддержка синхронизации содержимого частей нескольких вики посредством механизма XML RPC[13].
  • Возможность подписываться на уведомления о различных действиях, производимых со страницами (правка, переименование, прикрепление файла, удаление, …) по почте или по XMPP[14].

Недостатки

  • Поскольку информация хранится в файлах, MoinMoin ориентирован на сравнительно небольшое количество страниц (по утверждению разработчиков, не более 10 000 страниц). Также, в связи со способом отображения имён страниц в имена директорий для их хранения, существуют ограничения на длину имён страниц, накладываемые используемой файловой системой.
  • Не поддерживает редактирование секций[15].
  • Отсутствует поддержка системы версий для прикреплённых файлов[16].

MoinMoin 2.0

Начиная с 2007 года ведётся работа над кардинальным изменением архитектуры движка, этот проект получил кодовое имя MoinMoin 2.0. Ветка 1.9, по заявлениям разработчиков, является последней среди 1.x. Версия 2.0 изначально планировалась к выходу в 2010—2011 году, но на ноябрь 2014 дата релиза всё ещё неизвестна.

Ключевые особенности версии 2.0 таковы.

  • Изменённый способ хранения страниц.
    • Каждый элемент (страница или прикреплённый файл) хранится в общем хранилище унифицировано, с каждым элементом (Item) связана история версий и метаданные[17].
    • Поддержка различных способов хранения содержимого вики: на данный момент заявлена поддержка hg, различных SQL БД посредством SQLAlchemy, файловое хранилище 1.x и новый формат файлового хранилища[18].
  • Преобразование элементов из входного формата в формат представления посредством wiki DOM.
  • Темы внешнего вида на основе Jinja2.
  • Миграция на CKEditor в качестве WYSIWYG-редактора.
  • Переработка системы модулей и XML RPC.

На сайте http://test.moinmo.in/Шаблон:Недоступная ссылка развёрнута тестовая установка MoinMoin 2.0.

Ссылки

Примечания

Шаблон:Примечания

Шаблон:Вики-движки

  1. См. также http://moinmo.in/MoinMoinEtymology Шаблон:WaybackШаблон:Ref-en
  2. В версии 2.0 планируется Шаблон:Wayback поддержка различных видов хранилищ: различных SQL БД посредством SQLAlchemy, hg и др.
  3. См. [1] Шаблон:WaybackШаблон:Ref-en, [2] Шаблон:WaybackШаблон:Ref-en
  4. До версии 1.9 использовался веб-сервер Twisted http
  5. Шаблон:Cite web
  6. См. http://moinmo.in/MoinCoreTeamGroup Шаблон:WaybackШаблон:Ref-en
  7. Об этом свидетельствуют, в частности, персональные страницы участников на сайте MoinMoin, где многие их владельцы указывают, что используют MoinMoin в качестве корпоративной вики
  8. При этом для поддержки некоторых дополнительных возможностей, таких, как поиск Xapian Шаблон:Wayback, поддержка DocBook и RST, индексация файлов MS Office и PDF Шаблон:Wayback, требуется установка соответствующих программ и модулей Python.
  9. См. http://master19.moinmo.in/ПомощьПоРисункам
  10. В версии 1.9 подсветка синтаксиса реализована посредством Pygments [3] Шаблон:Wayback, что позволяет подсвечивать синтаксис более чем для 150 форматов Шаблон:Wayback
  11. См. http://master19.moinmo.in/ПомощьПоПоддержкеЯзыков
  12. См. http://master19.moinmo.in/ПомощьПоСпискамДоступа, http://master19.moinmo.in/ПомощьПоAutoAdmin, http://master19.moinmo.in/КакНастраивать/ПравилаДоступа
  13. См. http://master19.moinmo.in/ПомощьПоСинхронизации
  14. см. http://master19.moinmo.in/ПомощьПоОповещению и http://master19.moinmo.in/HelpOnConfiguration/EmailSupport Шаблон:WaybackШаблон:Ref-en
  15. На странице обсуждения запроса о добавлении функции Шаблон:Wayback имеется ряд сторонних патчей для различных версий MoinMoin, в различной мере реализующих данную функцию. Кроме того, за реализацию её в полной мере до конца 2010 года назначено вознаграждение Шаблон:Wayback
  16. Планируется разрешить в MoinMoin 2.0 путём унификации файлов и страниц и поддержки системы версий для них
  17. Шаблон:Cite web
  18. См. http://moinmo.in/MoinMoin2.0#Storage_API.2C_misc._storage_backends Шаблон:Wayback