MoinMoin
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, можливий експорт в plain text і DocBook). Крім того, існують репозиторії сторонніх парсерів і форматтерів, що дозволяють підтримувати інші формати у вікі-системі.
- Як інтерфейс, так і системні сторінки та сторінки допомоги переведені на велику кількість мов (більше 30). Крім того, MoinMoin має підтримку багатомовних вікі-систем (системи, на яких використовується кілька мов для сторінок).
- Підтримка списків доступу і різних прав користування.
- Підтримка як вільного синтаксису посилань, так і посилань в CamelCase.
- Підтримка вбудовування різних форматів файлів (зображення, аудіо, відео, SWF, інших сторінок) в тіло сторінки.
- Механізми захисту від спаму: як на основі чорних списків (централізовано оновлюваних), так і з використанням системи розпізнавання текстових символів — CAPTCHA.
- Механізм захисту від флуду: є можливість обмежити кількість запитів певних дій у певний момент часу для однієї IP-адреси або користувача.
- Підтримка синхронізації вмісту частин декількох вікі-систем за допомогою механізму XML-RPC.
- Можливість підписуватися на повідомлення про редагування сторінки (правка, перейменування, прикріплення файлу, знищення тощо) поштою або засобами XMPP.
Недоліки MoinMoin
- Обмеження на кількість сторінок (не більше 10 000).
- Обмеження на довжину імен сторінок, що накладаються файлової системою.
- Не підтримується редагування секцій.
- Не підтримується система версій для прикріплених файлів.