FANDOM


MediaWiki logo

Логотип

MediaWiki — популярний безкоштовний вікірушій з відкритим вихідним кодом, написаний на мові PHP. Спочатку рушій був розроблений для проєктів Фонду Вікімедіа, але внаслідок став застосовуватися на багатьох вікі-проєктах і вікіхотсингах, в тому числі і на Фандомі.

Історія Редагувати

History of MediaWiki, April 2003 - August 2015

History of MediaWiki, April 2003 - August 2015

Коли Вікіпедія була запущена у січні 2011 року, вона праюцвала на рушію 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.34 (від 19 грудня 2019 року); найостанніше LTS-версія (версія з більш довгим періодом підтримки) — 1.31 (від 14 липня 2018 року)[7]. Згідно внутрішній політиці, великі оновлення відбуваються раз в шість місяців, а LTS-версії — раз в два роки.

Починаючи з 2012 року Фандом використовує рушій версії 1.19[8], який тим не менш вкрай сильно модифікований під внутрішні потреби. Оновлення коду відбувається щоденно; раніше інформація про них публікувалася раз на тиждень на центральних вікі, а застосовувалися вони по вівторках і четвергах. З 28 серпня 2017 року принцип роботи змінився: тепер інформація публікується щоденно, оновлення застосовуються кожен день[9].

У червні 2019 року було оголошено про майбутнє оновлення використовуваного Фандомом рушія[10]. В 2020 був випущений блог з деталями переходу; сам переход очікується в «найближчий час»[11].

Ліцензування Редагувати

MediaWiki є вільним програмним забезпеченням, що поширюється згідно ліцензії GNU General Public License версії 2 і більш пізньої, а документація до рушія поширюється на умовах ліцензії CC-BY-SA 3.0, при цьому частина документації передано в суспільне надбання[12]. Останнє було зроблено з метою дозволу правових питань, що пов’язані з довідковими сторінками вікі-проєктів, ліцензії яких не сумісні з ліцензіями Creative Commons.

Розробка Редагувати

На lfybq момент у MediaWiki є більше 800 налаштувань конфігурації, доступно більше 2000 розширень[13][14].

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

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

На Фандомі розробка практично повністю знаходиться в руках оплачуваних інженерів компанії, хоча і існує невелика група волонтерів (втім, невідомо, чи активна вона зараз). Інженери Фандому працюють у відділах або проєктах, де кожному відділу відповідає своя область — наприклад, група ADEN займається питаннями реклами. Незважаючи на те що частина вихідного коду публічно доступна за адресою github.com/wikia, баг-трекер Фандому приватний. Періодично проводяться внутрішні форуми розробників — хакатони[16].

Бази даних Редагувати

Загальна стаття: mw:Manual:Database layout
MediaWiki logging table

Нутрощі таблиць, що зберігають журнали вікі

З MediaWiki сумісні різні системи управління базами даних, однак, оскільки Фонд Вікімедіа використовує MariaDB (аналог MySQL), саме вона підтримується в найбільш повному обсязі. При цьому MediaWiki працює тільки з реляційними (традиційними) базами даних: вони складаються з множинності таблиць, всередині яких знаходяться стовпці і рядки з безпосередньо самою інформацією. Сучасні версії MediaWiki в чистому вигляді (без врахування розширень) містять більше п’ятдесяти таблиць, в тому числі таблиці, що зберігають відомості про сторінки та їх зміст, категорій, про файлів, про користувачів, а також про їх дії (журнали) і тощо.[17][18] Розширення часто додають власні додаткові таблиці.

У кожній вікі Фандому мається власна база даних, назва яких у більшості випадків представляє собою об'єднання мовного коду і домену вікі, — для Викии Вики, наприклад, назва буде ukwikies. Крім них використовується цілий ряд баз даних, де зберігається статистика, опису та інша інформація про вікі.

Цікаво, що MediaWiki дає можливість робити певні таблиці вікі загальними, при цьому інші проєкти отримають можливість використовувати певні дані батьківської вікі. Наприклад, можна зробити так, щоб блокування, накладаються на одній, діяли і на всіх вікі.

Безпека Редагувати

Загальна стаття: mw:Manual:Security

Оскільки MediaWiki є рушієм для таких популярних сайтів, як, наприклад, Вікіпедія, розробники встановили строгі стандарти безпеки як для самого ядра, так я для розширень для нього. Усі запити в базу даних здійснюються за допомогою функції-обгортки, яка перевіряє їх на предмет можливих ін'єкцій (впровадження шкідливого коду). До HTML-формах додаються псевдовипадкові токени, що зменшує шанс SCRF-атак (можливість виконувати дії від імені іншого користувача)[19][20].

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

З червня 2018 року[21] увесь хостинг використовує HTTPS для захисту користувальницьких даних і забезпечення конфіденційності. Цікаво, що для підключення HTTPS на усіх сайтах Фандому змінив домені імена багатьох проєктів — мовний домен був прибраний з початку адреси проєкту в кінець.

Продуктивність Редагувати

Див. також: «Вікія» зсередини: перегляди сторінок і The speed of thought (англ.)

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

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

Простір назв Редагувати

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

У той час як простору назв поділяють вміст по його типу, сторінки з однаковим типом змісту розділюються категоріями.

Спеціальні Редагувати

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

Завантаження файлів Редагувати

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

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

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

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

Локалізація Редагувати

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

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

Локалізація MediaWiki виконується волонтерами на translatewiki.net. Раніше ця вікі надавала свої послуги і Фандому, однак внаслідок хостинг відмовився від них в користь закритої системи Crowdin. Через закритості системи невідомо, хто конкретно займається перекладами, але, скоріше за все, звичайно участю займаються і співробітники, і помічники певного мовного порталу. Відомий приклад, коли переклад робився незалежно від них, і в підсумку отримав вельми негативні відгуки від користувачів[23].

Скіни Редагувати

Теми оформлення MediaWiki називаються скінами. Скіни відрізняються дизайном, кольором і розташування елементів.

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

На сайті MediaWiki представлено близько 60 скінів[24] (за стан. на 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. Version lifecycle
  8. User blog:TOR/MediaWiki Upgrade
  9. Технічне оновлення від 24 серпня 2017
  10. Оновлення MediaWiki
  11. Фази розгортання єдиної платформи
  12. Авторські права
  13. Усі розширення
  14. Налаштування конфігурації
  15. Google Summer of Code
  16. Hackathon
  17. Page table
  18. Database schema
  19. Security for developers
  20. Perrin, Chad (April 30, 2008), Five security tips from MediaWiki’s lead developer, Tech Republic
  21. HTTPS для не англійських вікі-проєктів
  22. mw:Lua scripting/Benchmarking
  23. Обговорення локалізації функції Дослідження
  24. Усі скіни
Community content is available under CC-BY-SA unless otherwise noted.