SlideShow

Данный доклад посвящён MoinMoin 2.0, следующему поколению вики-сервера MoinMoin.

MoinMoin 2.0

MoinMoin 2.0: вики-сервер нового поколения

Седьмая конференция разработчиков свободных программ

Переславль-Залесский, 2010

История вики

«

The simplest online database that could possibly work.»

Ward Cunningam

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

Основные концепции и свойства

  • Вики состоит из страниц
  • Страницы вики легко можно создавать и править
  • Страницы вики имеют простой синтаксис
  • Страницы легко связывать
  • Страницы имеют историю версий

Основная метафора в рамках концепции вики — страница. Она являет собой текст в специальной (вики-) разметке, доступный в рамках сервера по определённому адресу.

Наслоения

  • Страницы, имеющие другую разметку (HTML, DocBook, ReST, …)

  • Прикрепляемые файлы
  • ACL
  • Различные системы расширений синтаксиса и функциональных возможностей
  • Управление пользователями (группы, права, переименование, …)
  • Параметризация отображения страниц
  • Обработка страниц (замена ссылок, изменение упомянутого выше, и т. д.)
  • Различные упражнения с внешним видом — user css, per-page css, …

Концепции Moin2

  • Унификация хранимых на вики сущностей. Единый вид объекта — Item;
  • Единый способ обработки различных форматов на основе wiki DOM и конверторов из входных и в выходные форматы.
  • Подсистема хранения:
    • Выделение storage backend (который может быть любым: на основе файлов, БД, DVCS…);
    • mount-like подключение различных хранилищ.

Здесь не упомянуты многие другие новшества Moin2 (темплейтинг на Jinja2, изменения в i18n/l10n, переработанная система дополнений), но они носят скорее внутренний и технический характер.

Item

moin-item.png

  • Item
    • Может иметь метаданные
    • Может содержать в себе несколько версий (revision)
  • Версия:
    • Содержит метаданные (MIME, ACL, авторство, время создания, …)
    • Содержит собственно данные
  • Метаданные являются таблицей строк вида «ключ-значение»
  • Данные: вообще говоря, бинарные

Подсистема хранения

moin-storage-layers_k.png

Что, собственно, изменилось?

  • На самом деле, концепция поменялась несущественно:
  • Есть надежда, что аналогичные революционные или эволюционные изменения в других проектах позволят решить большое количество проблем, в основном связанных с воместимостью разных вики-серверов.

Текущее состояние

  • MoinMoin 2.0 находится в активной разработке

  • Ввиду большого количества изменений, релиз планируется не ранее 2011 года
  • На данный момент практически полностью реализована базовая функциоенальность

Спасибо за внимание