MediaWiki
MediaWiki — свободное программное обеспечение с открытым исходным кодом для организации вики-сайтов. Изначально разработан Магнусом Мансеке и выпущен для использования в Википедии 25 января 2002 года, впоследствии доработан Ли Дэниелом Крокером[5], а дальнейшая разработка координируется Фондом Викимедиа. MediaWiki используется для работы множества вики-сайтов в Интернете, включая большинство проектов Фонда Викимедиа, таких как Википедия, Викисловарь, Викисклад, Викицитатник, Мета-вики и Викиданные, которые формируют основные требования к программному обеспечению[6]. Помимо проектов Викимедиа, MediaWiki применяется как система управления знаниями и контентом на таких сайтах, как Fandom, wikiHow, а также во внутренних корпоративных вики, например Intellipedia и Diplopedia.
Общие сведения
| MediaWiki | |
|---|---|
| Тип | Вики-движок |
| Авторы | Магнус Мансеке; Ли Дэниел Крокер |
| Разработчик | Фонд Викимедиа |
| Написана на | PHP[1] |
| Операционные системы | Windows, macOS, Linux, FreeBSD, OpenBSD, Solaris |
| Первый выпуск | 25 января 2002 |
| Аппаратная платформа | кроссплатформенность |
| Последняя версия | |
| Репозиторий | gerrit.wikimedia.org/g/m… |
| Лицензия | GPLv2+[3] |
| Сайт | mediawiki.org |
Описание
MediaWiki написан на языке программирования PHP и хранит весь текстовый контент в базе данных. Программное обеспечение оптимизировано для эффективной работы с крупными проектами, которые могут содержать терабайты данных и обслуживать сотни тысяч просмотров страниц в секунду[6][7]. Поскольку Википедия является одним из крупнейших и наиболее посещаемых сайтов в мире, масштабируемость с помощью многоуровневого кэширования и репликации баз данных была одной из главных задач разработчиков. Важной особенностью MediaWiki является интернационализация: интерфейс доступен более чем на 400 языках. Программное обеспечение поддерживает сотни параметров конфигурации. и более 1000 расширений для добавления или изменения различных функций[8].
Ключевые особенности
MediaWiki предоставляет богатый набор базовых функций и механизм для подключения расширений, обеспечивающих дополнительную функциональность.
Интернационализация и локализация
Благодаря акценту на многоязычность в проектах Викимедиа, интернационализация и локализация получили значительное внимание со стороны разработчиков. Пользовательский интерфейс полностью или частично переведён более чем на 400 языков на translatewiki.net, и может быть дополнительно настроен администраторами сайта (весь интерфейс редактируется через вики).
Существуют расширения, в частности MediaWiki Language Extension Bundle, предназначенные для расширения возможностей многоязычия и интернационализации MediaWiki.
Установка и настройка
Для установки MediaWiki требуется наличие административных прав на сервере с поддержкой PHP и совместимой базы данных SQL. Некоторые пользователи считают полезным создание виртуального хоста, если основной сайт работает на фреймворке, например, Zope или Ruby on Rails, несовместимом с MediaWiki[9]. Облачный хостинг может избавить от необходимости развертывания нового сервера[10].
Установка производится через PHP-скрипт, запускаемый в веб-браузере, который инициализирует настройки вики. Скрипт запрашивает минимальный набор параметров, а дальнейшие изменения, например, включение загрузки файлов[11], добавление логотипа сайта[12], установка расширений, производятся путём редактирования файла LocalSettings.php[13]. Некоторые параметры можно настраивать через специальные страницы или редактируя определённые страницы; например, фильтры злоупотреблений настраиваются через специальную страницу[14], а гаджеты добавляются созданием JavaScript-страниц в пространстве имён MediaWiki[15]. Сообщество MediaWiki публикует подробное руководство по установке[16].
Разметка
Одним из первых отличий MediaWiki и его предшественника UseModWiki от других вики-движков стало использование «свободных ссылок» вместо CamelCase. Для создания ссылки в MediaWiki слова заключаются в двойные квадратные скобки, а пробелы сохраняются, например, World Wide Web. Это было логичным для энциклопедии, где важна точность заголовков.
MediaWiki использует расширяемую[17] облегчённую вики-разметку, более простую для изучения, чем HTML. Существуют инструменты для конвертации, например, таблиц между разметкой MediaWiki и HTML[18]. Попытки создать формальную спецификацию разметки MediaWiki показали, что вики-код требует контекстно-зависимых грамматических правил[19][20].
| Синтаксис MediaWiki (код «за кулисами», используемый для форматирования текста) |
Эквивалент в HTML (другой тип кода для форматирования текста) |
Отображаемый результат (видимый посетителю сайта) |
|---|---|---|
==== Диалог ====
«Возьмите ещё [[чай]],» — сказал Мартовский Заяц Алисе очень серьёзно.
«Я ещё ничего не брала», — обиженно ответила Алиса, — «так что не могу взять больше».
«Вы хотите сказать, что не можете взять ''меньше'',» — сказал Шляпник, — «очень легко взять '''больше''', чем ничего». |
<h4>Диалог</h4>
<p>«Возьмите ещё <a href="/wiki/Tea" title="Tea">чай</a>», — сказал Мартовский Заяц Алисе очень серьёзно.</p> <br>
<p>«Я ещё ничего не брала», — обиженно ответила Алиса, — «так что не могу взять больше».</p> <br>
<p>«Вы хотите сказать, что не можете взять <i>меньше</i>», — сказал Шляпник, — «очень легко взять <b>больше</b>, чем ничего».</p>
|
Диалог
«Возьмите ещё чай,» — сказал Мартовский Заяц Алисе очень серьёзно. «Я ещё ничего не брала», — обиженно ответила Алиса, — «так что не могу взять больше». «Вы хотите сказать, что не можете взять меньше,» — сказал Шляпник, — «очень легко взять больше, чем ничего». |