MoinMoin — вільне програмне забезпечення (ліцензія GNU GPL), що використовується для створення вікі-сайтів, розроблене на мові Python. Його назва походить з фризької мови і в перекладі означає привітання.

Для збереження даних MoinMoin використовує файлову систему. MoinMoin може працювати практично з будь-яким вебсервером, що підтримує CGI / FastCGI / WSGI, або без нього (з вбудованим вебсервером на базі Werkzeug).

Історія ред.

Програмне забезпечення MoinMoin було створене близько 2000 року. Спочатку проект розроблявся Юргеном Херманном (Jürgen Hermann), трохи згодом він покинув проект і розробка ведеться групою людей на чолі з Томасом Вальдман (Thomas Waldmann). Для створення MoinMoin за основу було використано технологію вікі-системи PikiPiki, проте з того часу система MoinMoin сильно змінилась. У цей час[коли?] MoinMoin використовується для створення багатьох вікі-сайтів.

Компоненти вікі-системи MoinMoin ред.

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

  • Сервер. Обробляє запити і викликає відповідні програми для опрацювання цих запитів.
  • Програми для опрацювання дій (actions). На підставі параметрів запиту та конфігурації реалізують різну функціональність вікі-системи.
  • Сховище і кеш. Дозволяють зберігати різні види даних (у першу чергу, вікі-сторінки і прикріплені до них файли), також там можуть розміщуватись інші види об'єктів та надаються можливості по кешуванню (основний спосіб кешування — pickle).
  • Механізм аутентифікації. Аутентифікація користувачів може відбуватись різними способами (за протоколом HTTP, LDAP, PHP-cookie тощо).
  • Механізм авторизації і розмежування прав доступу (security policy). Забезпечуються різні методи розмежування прав доступу, в першу чергу, ACL.
  • Механізми оповіщення. Реалізують підтримку різних видів сповіщень при виникненні різних подій.
  • Програми, що опрацьовують вхідні формати(parsers, парсер). Викликаються для обробки сторінки або блоку тексту у відповідному вхідному форматі. Можуть бути доповнені користувацькими парсерами.
  • Програми, що опрацьовують вихідні формати (formatters, форматери). Викликаються парсерами для генерації тексту у вихідному форматі.
  • Макрокоманди (macro). Можуть використовуватися в тілі сторінки для генерації довільного вмісту та розширенню синтаксису.

Описані компоненти реалізовані у вигляді основного ядра і модулів, що забезпечують виконання відповідної функції, тому кожна з них може бути доповнена сторонніми модулями, що і забезпечує певну гнучкість системи.

Переваги та функціональні особливості ред.

  • Може працювати практично в будь-якій операційній системі і з багатьма вебсерверами (Apache, IIS, WebLogic, Lighttpd та ін.).
  • Не вимагає встановлення додаткового програмного забезпечення, такого як система управління базами даних або система керування версіями.
  • Завдяки наявності вбудованого вебсервера може використовуватися як крос-платформена переносна вікі-система.
  • Має вбудований повноцінний WYSIWYG-редактор (вбудований редактор FCKeditor), який дозволяє редагувати вікі-розмітку звичним для простих користувачів способом.
  • Може використовувати пошукову систему Xapian, що надає такі можливості, як індексація різних видів вмісту (у тому числі різних форматів прикріплених файлів; в цей час підтримується індексування файлів в форматі Open Document Format, MS Office, PDF, різних текстових форматів, мета-даних в зображеннях JPEG і текстових рядків в бінарних файлах), морфологічний пошук, пошук файлів за MIME типом і ряд інших.
  • Має вбудовану підтримку Java-аплетів для створення ілюстрацій у вікі-системі — AnyWikiDraw і TWikiDraw.
  • Підтримка механізмів опрацювання вхідного і вихідного форматів («parser» і «formatter») дозволяє використовувати у вікі-системі різні синтаксиси розмітки в тілі сторінок (в цей час підтримуються, крім власного синтаксису, синтаксис Creole, формат reStructured Text, XML-сторінки з використанням XSLT, зображення у вигляді таблиць CSV, підсвічування синтаксису для різних текстових форматів і експортувати сторінки в різних форматах (крім HTML, можливий експорт в текст і DocBook). Крім того, існують репозиторії сторонніх парсерів і форматтерів, що дозволяють підтримувати інші формати у вікі-системі.
  • Як інтерфейс, так і системні сторінки та сторінки допомоги переведені на велику кількість мов (більше 30). Крім того, MoinMoin має підтримку багатомовних вікі-систем (системи, на яких використовується кілька мов для сторінок).
  • Підтримка списків доступу і різних прав користування.
  • Підтримка як вільного синтаксису посилань, так і посилань в CamelCase.
  • Підтримка вбудовування різних форматів файлів (зображення, аудіо, відео, SWF, інших сторінок) в тіло сторінки.
  • Механізми захисту від спаму: як на основі чорних списків (централізовано оновлюваних), так і з використанням системи розпізнавання текстових символів — CAPTCHA.
  • Механізм захисту від флуду: є можливість обмежити кількість запитів певних дій у певний момент часу для однієї IP-адреси або користувача.
  • Підтримка синхронізації вмісту частин декількох вікі-систем за допомогою механізму XML-RPC.
  • Можливість підписуватися на повідомлення про редагування сторінки (правка, перейменування, прикріплення файлу, знищення тощо) поштою або засобами XMPP.

Недоліки MoinMoin ред.

  • Обмеження на кількість сторінок (не більше 10 000).
  • Обмеження на довжину імен сторінок, що накладаються файлової системою.
  • Не підтримується редагування секцій.
  • Не підтримується система версій для прикріплених файлів.

Посилання ред.