ФЭНДОМ


Star

MediaWiki-smaller-logo

Логотип

MediaWiki — популярный бесплатный викидвижок с открытым исходным кодом, написанный на языке PHP. Первоначально движок был разработан для проектов Фонда Викимедиа, но впоследствии стал применяться на многих википроектах и викихостингах, в том числе и на Фэндоме.

История Править

History of MediaWiki, April 2003 - August 2015-017:13

History of MediaWiki, April 2003 - August 2015-0

Когда Википедия была запущена в январе 2001 года, она работала на движке UseModWiki, который был написан на Perl, хранил все страницы вики в текстовых файлах без какой-либо истории их изменения и к тому же поддерживал имена страниц только в виде CamelCase (слова без пробелов, разделенные заглавными буквами). Это программное обеспечение было ограничено как в функциональности, так и в производительности, но, несмотря на это, повлияло на дальнейшее развитие MediaWiki, в частности язык разметки.

В середине 2001 года Магнус Манске, разработчик и студент университете Кёльна, являшийся также редактором Википедии, начал работать над новым программным обеспечением, которое заменило бы UseModWiki. Новый движок был написан на PHP и, в отличие от своего предшественника, поддерживал базы данных для хранения информации. У нового движка изначально не было названия, поэтому существовало множество вариантов его наименования: «PHP-скрипт», «PHP-вики», «программа Википедии» или даже «II фаза». Движок появился на английской Википедии в январе 2002 года и постепенно был развёрнут на всех языковых разделах Wikipedia того времени.

Несмотря на проделанную работу, растущий трафик, ограниченные серверные ресурсы и использование ресурсоёмких функций продолжили вызывать проблемы производительности. Поэтому в 2002 году Ли Даниэль Крокер переписал программу: новая версия по-прежнему была написана на PHP и имела такой же интерфейс, как и в прошлой версии, но лучше масштабировалась (то есть могла эффективнее использовать растирающиеся серверные ресурсы). На Википедии обновленный движок стал использоваться с июля 2002 года.

Mediawiki-edit

MediaWiki версии 1.9 на Википедии

Летом 2003 года был основан фонд Викимедиа, а в июле Даниэль Майер предложил назвать движок «MediaWiki», что образовывало игру слов с названием фонда (в оригинале: «Wikimedia Foundation»)[1].

Логотип продукта, созданный Эриком Мёллером с использованием фотографии цветка (автор — Флоранс Нибар-Девуар), первоначально являлся одним из проектов нового логотипа Википедии[2]. Он получил третье место на выборах, но стал символом MediaWiki[3]. Двойные квадратные скобки символизируют синтаксис движка, который использует их для создания внутренних ссылок, а подсолнечник представляет разнообразие контента на Википедии и постоянный рост проекта[4].

Позже Брайон Vibber, технический директор Фонда Викимедиа[5], взял на себя роль менеджера выпуска и наиболее активного разработчика[6].

Основными вехами в развитии MediaWiki являются: система категорий (2004); функции парсера (2006); расширение FlaggedRevisions (2008); система загрузки CSS и JavaScript контента — «ResourceLoader» (2011); визуальный редактор (2013).

Версия Править

Самая последняя версия MediaWiki — 1.30, стабильная — 1.28, LTS (поддерживается три года вместо одного) — 1.27[7]. Согласно внутренней политике, крупные обновления производятся раз в шесть месяцев, а LTS-версии — раз в два года.

Начиная с 2012 года Фэндом использует движок версии 1.19[8], который тем не менее сильно модифицирован под внутренние нужды. Раз в неделю выпускаются обновления, информация о которых публикуется на центральных вики.

Лицензирование Править

MediaWiki является свободным программным обеспечением, распространяемым согласно лицензии GNU General Public License версии 2 или более поздней, а документация к движку распространяется на условиях лицензии CC-BY-SA 3.0, при этом часть документации передано в общественное достояние[9]. Последнее было сделано с целью разрешения правовых вопросов, связанных со справочными страницами википроектов, лицензии которых не совместимы с лицензиями Creative Commons.

Разработка Править

На данный момент у MediaWiki имеется более 800 настроек конфигурации, доступно более 2000 расширений[10][11].

MediaWiki имеет активное сообщество волонтёров, развивающих проект. Тем людям, которые внесли значительный вклад в развитие викидвижка, по их просьбе может предоставляться доступ к изменению репозиториев (хранилищ кода) Git/Gerrit и SVN. Помимо волонтёров, разработкой занимается и небольшая группа оплачиваемых программистов, которые занимаются преимущественно проектами Викимедии.

Фонд Викимедиа участвует в программе Google Summer of Code — инициативной программе компании Google, в рамках которой студенты ежегодно участвуют в разработке проектов с открытым исходным кодом[12]. MediaWiki имеет публичный багтрекер по адресу phabricator.wikimedia.org (ранее — bugzilla.wikimedia.org), который также используется для предложений по улучшению проекта.

Ситуация на Фэндоме противоположна: здесь разработкой занимаются преимущественно оплачиваемые инженеры компании, хотя и существует небольшая группа волонтёров. Инженеры Фэндома работают в группах, где у каждой группы есть своя область — например, группа ADEN занимается вопросами рекламы. Несмотря на то что часть исходного кода публично доступна по адресу github.com/wikia, баг-трекер Фэндома приватен. Периодически проводятся внутренние форумы разработчиков — хакатоны[13].

Базы данных Править

См. также: mw:Manual:Database layout (англ.)
MediaWiki logging table

Внутренности таблицы, хранящей журналы вики

С MediaWiki совместимы различные базы данных, однако, поскольку Фонд Викимедиа использует MariaDB (аналог MySQL), именно она поддерживается в наиболее полном объёме. При этом MediaWiki работает только с реляционными (традиционными) базами данных: они состоят из множества таблиц, внутри которых находятся столбцы и строки с непосредственно самой информацией. Современные версии MediaWiki в чистом виде (без учёта расширений) содержат более пятидесяти таблиц, в том числе таблицы, хранящие сведения о страницах и их содержимом, категориях, о файлах, о пользователях, а также об их действиях (журналы) и т. д.[14][15] Расширения зачастую добавляют собственные дополнительный таблицы.

У каждой вики Фэндома имеется собственная база данных, название которой в большинстве случаев представляет собой объединение языкового кода и домена вики, — для Викии Вики, например, название будет ruwikies. Помимо них используется целый ряд баз данных, где хранится статистика, описания и прочая информация о вики.

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

Безопасность Править

См. также: mw:Manual:Security (англ.)

Поскольку MediaWiki является движком для таких популярных сайтов, как, например, Википедия, разработчики установили строгие стандарты безопасности как для самого ядра, так и для расширений к нему. Все запросы в базу данных осуществляются с помощью функции-обёртки, которая проверяет их на предмет возможных инъекций (внедрение зловредного кода). К HTML-формам добавляются псевдослучайные токены, что уменьшает шанс SCRF-атак (возможность выполнять действия от лица другого пользователя)[16][17].

На Фэндоме существуют особые инструменты, позволяющие инженерам быстро находить и устранять уязвимости. Высокопривелигированным участникам выдаётся дополнительный статус — restricted-login, — значительно повышающий безопасность учетной записи.

Производительность Править

См. также: «Викия» изнутри: просмотры страниц и The speed of thought (англ.)

Сам по себе викидвижок является достаточно медленным и тяжеловесным, поэтому как Фэндом, так и фонд Викимедиа используют сложную многоуровневую систему кэширования: она является краеугольным камнем производительности MediaWiki и позволяет сохранять данные (интервики-префиксы, файлы локализации, содержимое страниц и т.д.) таким образом, чтобы тратить меньше времени и использовать меньше ресурсов на их загрузку. Кроме того, MediaWiki позволяет использовать Lua для написания шаблонов — в некоторых ситуация это позволяет ускорить обработку страниц в 5 раз[18].

Разработчики же могут использовать профилирование для анализа производительности ядра, расширений и т. д.

Пространства имён Править

Одной из особенностей MediaWiki является система пространств имён. Она неоднократно менялась с течением времени, но сохранила свою основную функцию: разделение различных видов контента. Все пространства имён состоят из префикса, отделенного от названия страницы двоеточием (например, Участник:). Единственным исключением является основное пространство имён: своего префикса у него нет.

В то время как пространства имён разделяют содержимое по его типу, страницы с одинаковым типом содержимого разделяются категориями.

Служебные Править

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

Загрузка файлов Править

MediaWiki позволяет пользователям загружать на википроект файлы, для чего существует служебная страница Special:Upload. В отличие от многих других систем управления контентом (CMS), этот движок поддерживает работу и с такими нетипичными форматами файлов, как векторные изображения SVG), PDF и DjVu.

Сразу после загрузки новому файлу выделяется страница в пространстве имён Файл:, которая содержит введённую загружающим информацию (сведения о лицензировании, категории, текстовое описание и т. п.), если таковая была введена. Технически файл при этом помещается в собственную директорию на сервере, и одновременно с этим для него создаются миниатюры.

Впрочем, поддерживается не только локальная загрузка файлов: существует возможность использовать и другие медиарепозитории, самым популярным из которых является Wikimedia Commons — хранилище для более чем сорока миллионов свободно распространяемых файлов. Помимо этого, используя опцию общих таблиц в базе данных, файлы с одной вики можно делать доступными на другой.

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

Локализация Править

Интересная особенность викидвижка заключается в том, что практически все сообщения интерфейса доступны для просмотра и редактирования прямо на вики. Сообщение определяется уникальным ключом, которые в свою очередь определяются разработчиками. Достаточно часто для различных инструментов и расширений используются различные префиксы, добавляемые к ключу: одним из множества примеров можно назвать страницу MediaWiki:Abusefilter-accountreserved, где Abusefilter является префиксом расширения, а само сообщение (Abusefilter-accountreserved) — ключом.

Сообщения интерфейса могут включать в себя какие-либо параметры, а также такие волшебные слова, как, например, {{GRAMMAR:}} (позволяет переводить сообщения интерфейса с учётом грамматики и особенностей языка). Кроме того, с целью помощи переводчикам хорошей практикой считается добавление описаний сообщениям в файл с особым искусственным языком — qqq.

Локализация MediaWiki выполняется волонтёрами на translatewiki.net. Ранее эта вики предоставляла свои услуги и Фэндому, однако впоследствии хостинг отказался от них в пользу закрытой системы Crowdin.

Скины Править

Темы оформления MediaWiki называются скинами. Скины отличаются дизайном, цветом и расположением элементов.

Каждый пользователь может изменить вид скина с помощью правки страницы User:{{{USERNAME}}}/{{{Skin}}}.css, а вид для всех просматривающих проект редактируется через сообщение MediaWiki:{{{Skin}}}.css.

На сайте MediaWiki представлено порядка 60 скинов[19] (по сост. на 29.07.2017), однако у разработчиков имеется возможность создавать собственные.

Скины Фэндома

Примечания Править

  1. Mayer, Daniel. «Phase IV, Wikibooks.org/.com and WikimediaFoundation.org/.com (was Wikis and uniformity)». Wikipedia-L mailing list archives.
  2. «International logo contest/results». Meta-wiki.
  3. Logo history
  4. «File talk:EloquenceSunflowerNew-Small.png». Meta-wiki. Wikimedia Foundation
  5. Everything Is Miscellaneous: The Power of the New Digital Disorder. Times Books. p. 99. ISBN 0-8050-8043-0.
  6. Wikimedia and MediaWiki
  7. Версии
  8. User blog:TOR/MediaWiki Upgrade
  9. Авторские права
  10. Все расширения
  11. Настройки конфигурации
  12. Google Summer of Code
  13. Hackathon
  14. Page table
  15. Database schema
  16. Security for developers
  17. Perrin, Chad (April 30, 2008), Five security tips from MediaWiki’s lead developer, Tech Republic
  18. mw:Lua scripting/Benchmarking
  19. Все скины

Обнаружено использование расширения AdBlock.


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

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

Также на ФЭНДОМЕ

Случайная вики