уики софтуер From Wikipedia, the free encyclopedia
МедияУики (на английски: MediaWiki) е безплатен уики софтуер с отворен код. Първоначалният вариант е създаден специално за Уикипедия от Магнус Манске на 25 януари 2002 г. и допълнително подобрен от Лий Даниел Крокър,[1][2] след което е координиран от Фондация „Уикимедия“. Той управлява няколко уебсайта за хостване на уики в Интернет, както и повечето уебсайтове, хоствани от Фондация „Уикимедия“, като Уикипедия, Уикиречник, Общомедия, Уикицитат, МетаУики и Уикиданни, които определят голяма част от зададените изисквания за софтуера.[3] Езика за програмиране на който е написан МедияУики е PHP, той съхранява цялото текстово съдържание в бази от данни. Софтуерът е оптимизиран за ефективно управление на големи проекти, които могат да имат терабайти съдържание и стотици хиляди гледания в секунда.[3][4] Тъй като Уикипедия е сред най-големите и най-посещавани уебсайтове в света, постигането на мащабируемост чрез множество слоеве на кеширане и репликация на база данни е основна грижа за разработчиците. Друг важен аспект на МедияУики е нейната интернационализация. Неговият интерфейс е достъпен на над 450 езика. Софтуерът има над 1000 настройки за конфигурация[5] и над 1800 разширения, които позволяват добавянето или промяната на различни функции.[6] Освен използването му от сайтове на Фондация „Уикимедия“, МедияУики се използва като система за управление на знания и съдържание на сайтове като Fandom, wikiHow, както и за големи вътрешни въведения, като при Интелипедия и Диплопедия.
МедияУики MediaWiki | |
![]() | |
![]() Началната страница към април 2021 г. | |
Информация | |
---|---|
Автор | Магнус Манске; Лий Даниел Крокър |
Разработчик | Фондация „Уикимедия“ |
Начална версия | 25 януари 2002 г. |
Последна версия | 1.39.6 и 1.41.0 (21 декември 2023) |
Програмен език | PHP и JavaScript |
Операционна система | Microsoft Windows, macOS, Linux, FreeBSD, OpenBSD, Solaris |
Платформа | междуплатформен софтуер |
Език на интерфейса | над 450 езика |
Размер | 110,2 MiB (компресиран) |
Статус | активен |
Вид софтуер | уики |
Лиценз | GPLv2+ |
Уебсайт | mediawiki.org |
МедияУики в Общомедия |
МедияУики е безплатен софтуер и с отворен код и се разпространява съгласно условията на GNU General Public License, втора или всяка следваща версия. Документацията на софтуера е качена в официалния уебсайт – www.mediawiki.org, издадена под лиценза Криейтив Комънс (BY-SA 4.0), и отчасти е публично достояние.[7] По-конкретно, ръководствата и останалото съдържание в MediaWiki.org са лицензирани от Криейтив Комънс, докато наборът от помощни страници, предназначени за свободно копиране и инсталиране в нови уикита и/или разпространявани със софтуера на МедияУики са обществено достояние. Това е осъществено, за да се премахнат правни проблеми, произтичащи от импортирането на помощни страници в уикита с лицензи, които са несъвместими с лиценза Криейтив Комънс.[8] Развитието на МедияУики като цяло благоприятства използването на медийни формати с отворен код.[9]
МедияУики разполага с активна общност от доброволци за разработка и поддръжка. Потребителите, които са направили значителен принос към проекта чрез изпращането на корекции, при искане, обикновено получават достъп за извършване на проверка в Git / Gerrit хранилището на проекта.[10] Има и платени програмисти, които основно разработват проекти за Фондация „Уикимедия“. Разработчиците на МедияУики участват в инициативата на Google „Лято на кода“, като улесняват назначаването на ментори на студенти, които желаят да работят по основни и разширени проекти на МедияУики.[11] През годината, преди ноември 2012 г. има около двеста разработчици, които извършват промени в ядрото или разширенията на МедияУики.[12] Основните издания на МедияУики се генерират приблизително на всеки шест месеца, като се правят моментни снимки на клона за разработка, който се поддържа непрекъснато в работоспособно състояние.[13] Незначително издаване или издаване на корекция се извършват при необходимост за коригиране на грешки (особено проблеми със сигурността). МедияУики е разработена на базата на модел за непрекъснато приобщаване на развитие, при които промените в софтуера се предават редовно на живо в сайтовете на Фондация „Уикимедия“.[13] МедияУики разполага с публичен инструмент за проследяване на грешки – phabricator.wikimedia.org, от системата за проследяване на проблеми „Фабрикатор“. Сайтът се използва и за заявки за функции и подобрения.
Когато стартира Уикипедия през януари 2001 г., тя работи на съществуващата уики софтуерна система UseModWiki. UseModWiki е написан на езика за програмиране Perl и съхранява всички уики страници в текстови (.txt) файлове. Този софтуер скоро се оказва ограничаващ както във функционалността, така и в производителността. В средата на 2001 г. Магнус Манске (разработчик и студент в Кьолнският университет, редактор на Уикипедия) започва работа върху нов софтуер, който ще замени UseModWiki, специално предназначен за използване от Уикипедия. Този софтуер е написан на скриптовия език PHP и съхранява цялата информация в база данни на MySQL. Новият софтуер е разработен основно до 24 август 2001 г. и малко след това е създадено тестово уики за него.
На 9 ноември 2001 г. е първото пълно внедряване на този софтуер е новата мета Уикипедия, като се проявява желание той да бъде внедрен незабавно в английската версия на Уикипедия.[14] Въпреки това, Магнус Манске се опасява от евентуални грешки, които да навредят на зараждащия се уебсайт по време на последните изпити, които е трябвало да завършат непосредствено преди Коледа.[15] Това води до отлагане на стартирането на английската версия на Уикипедия до 25 януари 2002 г. След това софтуерът постепенно е внедрен на всички езикови версии на Уикипедия по онова време. Този софтуер е посочен като „PHP скрипт“ и като „фаза II“, а с името „фаза I“ е посочено със задна дата на използването на UseModWiki.
Увеличаването на употребата му скоро води до повторно възникване на проблеми със зареждането, и скоро след това започва ново пренаписване на софтуера. Този път това е сторено от Лий Даниел Крокър, и става известно като „фаза III“. Този нов софтуер е написан също на PHP, с MySQL бекенд и запазва основния интерфейс на софтуера „фаза II“, но с добавената функционалност за по-широка мащабируемост. Софтуерът „фаза III“ е пуснат онлайн в Уикипедия през юли 2002 г.
На 20 юни 2003 г. е обявено създаването на Фондация „Уикимедия“. През юли сътрудникът на Уикипедия – Даниел Майер предлага наименованието за софтуера да е „МедияУики“.[16] То е въведено постепенно, започвайки през август 2003 г. Името често предизвиква объркване поради (умишлената) си прилика с наименованието „Уикимедия“ (което само по себе си е подобно на „Уикипедия“).[17]
Първото лого на МедияУики е създадено от Ерик Мьолер, като е използвана снимка на цвете, направена от Флоранс Нибар-Девуар. Първоначално то е било изпратено в конкурса за ново лого на Уикипедия, проведен от 20 юли до 27 август 2003 г.[18][19] Логото е класирано на трето място и е избрано да представлява МедияУики, а не Уикипедия, като логото на второ място е използвано за Фондация „Уикимедия“.[20] Двойните квадратни скоби ([[]]) символизират синтаксиса, който МедияУики използва за създаване на хипервръзки към други уики страници. В същото време слънчогледът представлява разнообразието от съдържание в Уикипедия, неговия постоянен растеж и пустинята.[21]
По-късно Брук Вайбър, главен технически директор на Фондация „Уикимедия“,[22] поема ролята на мениджър по издаването.[23][24]
Основните етапи в развитието на МедияУики включват – система за категоризация (2004), функции на синтактически анализ (2006), разширение към софтуера (2008),[25] „ResourceLoader“ система за използване на CSS и JavaScript (2011),[26] и платформата за редактиране VisualEditor „каквото виждаш, това получаваш“ (WYSIWYG) (2013).[27]
На 22 юни 2020 г. е обявен конкурс за проектиране на ново лого, посочено е че старото лого е с изображение на растение и има „големи детайли“, водейки до проблеми при изобразяване на висока и ниска резолюция. След два кръга на гласуване се изработва новото и текущо лого на МедияУики. То е проектирано и избрано на 24 октомври 2020 г., а на на 1 април 2021 г. е официално прието.[28]
Наименование | Версия[29] | Влизане в употреба | Край на поддръжката | |
---|---|---|---|---|
MediaWiki 1.35 (LTS)[30] | 1.35.x | 25 септември 2020 | септември 2023 | |
MediaWiki 1.38 | 1.38.x | 2 юни 2022 | юни 2023 | |
MediaWiki 1.39 (LTS) | 1.39.x | 30 ноември 2022 | ноември 2025 | |
MediaWiki 1.40 | 1.40.x | 30 юни 2023 | юни 2024 | |
MediaWiki 1.41 | 1.41.x | 21 декември 2023 | декември 2024 | |
MediaWiki 1.42 | 1.42.x | юни 2024 | юни 2025 | |
Легенда: Стара версия Стара версия, все още се поддържа Текуща версия Последната преглед версия Бъдещо издание |
Има много сайтове които използват безплатният софтуер МедияУики, най-известният сред които е Уикипедия, в по-малка степен са известни и другите проекти на Фондация „Уикимедия“. Fandom е услуга за уики хостинг (известна преди като Wikia), която използва МедияУики. Сред публичните уикита, които използват МедияУики са wikiHow и SNPedia, както и много други. УикиЛийкс стартира като базиран на МедияУики сайт, но по-късно не функционира като уики.
Има редица алтернативни уики енциклопедии, които се публикуват в МедияУики, като Citizendium, Scholarpedia, Метапедия, Консервапедия, и др. МедияУики се използва и от сайтовете на редица компании, като „Новел“ и „Интел“.[31][32]
МедияУики се използва и от правителствени сайтове, като Интелипедия (използван от Разузнавателните ведомства на Съединените щати), Диплопедия (използван от Държавния департамент на Съединетите щати), и milWiki (част от milSuite, използван от Департамента на отбраната на Съединените щати). Агенции на Обединените нации като Програмата за развитие на Обединените нации и INSTRAW избират да използват услугите на МедияУики за своите уикита, тъй като софтуерът работи с успешно с Уикипедия.[33]
Фондацията за свободен софтуер използва МедияУики при създаването на сайта LibrePlanet.[34]
МедияУики предоставя богат набор от основни функции и механизъм за разширения на приставки за осигуряване на допълнителна функционалност.
Поради силния акцент върху многоезичието в проектите на Фондация „Уикимедия“, разработчиците отделят значително внимание за интернационализация и локализация. Потребителският интерфейс е преведен изцяло или частично на над 450 езика на translatewiki.net[35] и може да бъде допълнително персонализиран от администраторите на сайта (целият интерфейс може да се редактира чрез уики).
Няколко разширения, най-вече тези, събрани в MediaWiki Language Extension Bundle, са предназначени да подобрят допълнително многоезичието и интернационализацията на МедияУики.
Инсталирането на МедияУики изисква потребителят да има административни привилегии на сървър, работещ както с PHP, така и със съвместим тип SQL база данни. Някои потребители намират, че настройката на виртуален хост е полезна, ако по-голямата част от нечий сайт работи под рамка (като Zope или Ruby on Rails), която е до голяма степен несъвместима с МедияУики.[36] Облачният хостинг може да елиминира необходимостта от разполагане на нов сървър.[37]
Инсталационният PHP скрипт е достъпен през уеб браузър за инициализиране на настройките на уики. Той подканва потребителя за минимален набор от необходими параметри, оставяйки допълнителни промени, като разрешаване на качвания,[38] добавяне на лого на сайта[39] и инсталиране на разширения, които да бъдат направени чрез модифициране на конфигурационните настройки, съдържащи се във файл, наречен LocalSettings.php
.[40] Някои аспекти на МедияУики могат да бъдат конфигурирани чрез специални страници или чрез редактиране на определени страници. Например, филтрите за злоупотреби могат да бъдат конфигурирани чрез специална страница[41] и определени приспособления могат да бъдат добавени чрез създаване на JavaScript страници в пространството на имената на МедияУики.[42] Общността на МедияУики публикува изчерпателно ръководство за инсталиране.[43]
Една от най-ранните разлики между МедияУики (и неговия предшественик, UseModWiki) и други уики машини е използването на „безплатни връзки“ вместо CamelCase. Към времето на създаване на МедияУики е типично за уикитата да изискват текст като „WorldWideWeb“, за да създадат връзка към страница за World Wide Web. Връзките в МедияУики, от друга страна, се създават от ограждащи думи с двойни квадратни скоби и всички интервали между тях остават непокътнати, напр. World Wide Web
. Тази промяна е логична за целите на създаването на енциклопедия, където точността на заглавията е важна.
МедияУики използва разширяема[44] лека уики маркировка, предназначена да бъде по-лесна за използване и изучаване от HTML. Съществуват инструменти за конвертиране на съдържание като таблици между маркиране на МедияУики и HTML.[45] Положени са усилия за създаване на спецификация за маркиране на МедияУики, но изглежда е постигнато съгласие, че Wikicode изисква чувствителни към контекста граматични правила.[46][47] Следното паралелно сравнение илюстрира разликите между уики маркиране и HTML (с пример на английски език):
Синтаксис на МедияУики (кодът „зад сцената“, използва се за добавяне на форматиране към текст) |
HTML еквивалент (друг вид код „зад сцената“, използва се за добавяне на форматиране към текст) |
Рендиран изход (видян на екрана от зрител на сайта) |
---|---|---|
==== A dialogue ====
"Take some more [[tea]]," the March Hare said to Alice, very earnestly.
"I've had nothing yet," Alice replied in an offended tone: "so I can't take more."
"You mean you can't take ''less''," said the Hatter: "it's '''very''' easy to take ''more'' than nothing."
|
<h4>A dialogue</h4>
<p>"Take some more <a href="/wiki/Tea" title="Tea">tea</a>," the March Hare said to Alice, very earnestly.</p>
<p>"I've had nothing yet," Alice replied in an offended tone: "so I can't take more."</p>
<p>"You mean you can't take <i>less</i>," said the Hatter: "it's <b>very</b> easy to take <i>more</i> than nothing."</p>
|
A dialogue
"Take some more tea," the March Hare said to Alice, very earnestly. "I've had nothing yet," Alice replied in an offended tone: "so I can't take more." "You mean you can't take less," said the Hatter: "it's very easy to take more than nothing." |
(Пример от цитат (по-горе) от детския роман „Алиса в Страната на чудесата“ на Луис Карол)
Инструментите за редактиране на страница по подразбиране на МедияУики са описани като доста трудни за научаване.[48] Проучване сред студенти, на които е възложено да използват уики, базирано на МедияУики, установява, че когато им бъде зададен отворен въпрос за основните проблеми с уикито, 24% цитират технически проблеми с форматирането, напр. „Не можах да разбера как да вкарам изображение. Не мога да разбера как да покажа връзка с думи или да вмъкна число.“[49]
За да улесни редактирането на дълги страници, МедияУики позволява редактирането на подраздел на страница (както е идентифицирано от заглавката му). Регистриран потребител може също така да посочи дали дадена редакция е незначителна или не. Коригирането на правописа, граматиката или пунктуацията са примери за незначителни редакции, докато добавянето на параграфи от нов текст е пример за незначителна редакция.
Понякога, докато един потребител редактира, втори потребител записва редакция в същата част на страницата. След това, когато първият потребител се опитва да запази страницата, възниква конфликт на редактиране. След това на втория потребител се дава възможност да обедини съдържанието си в страницата, както съществува сега, след запазването на страницата на първия потребител.
Потребителският интерфейс на МедияУики е локализиран на много различни езици. Може също да бъде зададен език за самото уики съдържание, което да бъде изпратено в HTTP заглавката „Content-Language“ и HTML атрибута „lang“.
МедияУики има разширяем web API (приложно-програмен интерфейс), който осигурява директен достъп на високо ниво до данните, съдържащи се в базите данни на MediaWiki. Клиентските програми могат да използват API за влизане, получаване на данни и публикуване на промени. API поддържа тънки уеб базирани JavaScript клиенти и приложения за крайни потребители (като инструменти за борба с вандали). API може да бъде достъпен от бекенда на друг уеб сайт.[50] Обширна библиотека с ботове на Python, Pywikibot[51] и популярен полуавтоматизиран инструмент, наречен AutoWikiBrowser, също взаимодействат с API.[52] API се осъществява чрез URL адреси като https://bg.wikipedia.org/w/api.php?action=query&list=recentchanges
. В този случай заявката ще поиска от Уикипедия информация, свързана с последните 10 редакции на сайта. Едно от възприеманите предимства на API е неговата езикова независимост, той използва за HTTP връзки от клиенти и може да изпрати отговор в различни формати, като XML, сериализиран PHP или JSON.[53] Клиентският код е разработен, за да предостави слоеве на абстракция на API.[54]
МедияУики поддържа богато съдържание, генерирано чрез специализиран синтаксис. Например, софтуерът идва с незадължителна поддръжка за изобразяване на математически формули с помощта на LaTeX и специален анализатор, написан на OCaml. Подобна функционалност за друго съдържание, вариращо от графични графики през математически чертежи и музикални партитури до египетски йероглифи, е достъпна чрез разширения.
Софтуерът стана по-мощен при работа с голямо разнообразие от качени медийни файлове. Най-богатата му функционалност е в областта на изображенията, където сравнително лесно могат да се генерират галерии с изображения и миниатюри. Има и поддръжка за exif метаданни. Използването на МедияУики за управление на Общомедия (един от най-големите медийни архиви със свободно съдържание) води до необходимостта от допълнителна функционалност в тази област.
За WYSIWYG редактиране, VisualEditor е достъпен за използване в МедияУики, което опростява процеса на редактиране за редактори и е включен в пакет от MediaWiki 1.35.[55] Съществуват други разширения за обработка на WYSIWYG редактиране в различна степен.[56]
Сред функциите на МедияУики за подпомагане на проследяването на редакциите е функцията за скорошни промени, която предоставя списък с последните редакции на уикито. Този списък съдържа основна информация за тези редакции, като редактиращия потребител, резюмето на редакцията, редактираната страница, както и всички тагове (напр. „възможна връзка към злонамерен софтуер“),[57] добавени от персонализирани филтри за злоупотреба и други разширения за подпомагане на борбата с безполезни редакции.[58] В по-активните уикита се случват толкова много редакции, че е трудно да се проследят последните промени ръчно. Софтуер против вандализъм, включително инструменти, подпомагани от потребителя,[59] понякога се използва в такива уикита за обработка на елементи от последните промени. Натоварването на сървъра може да бъде намалено чрез изпращане на непрекъсната емисия на последните промени към IRC канал, който тези инструменти могат да наблюдават, елиминирайки необходимостта да изпращат заявки за обновена емисия на последните промени към API.[60][61]
Друг важен инструмент е списъкът за наблюдение. Всеки влязъл потребител има списък за наблюдение, към който потребителят може да добави каквито страници желае. Когато се направи редакция на една от тези страници, обобщение на тази редакция се появява в списъка за наблюдение при следващото обновяване.[62] Както при страницата с последните промени, последните редакции, които се появяват в списъка за наблюдение, съдържат връзки, върху които може да се кликне, за лесен преглед на хронологията на статията и конкретни направени промени.
Има и възможност за преглед на всички редакции, направени от конкретен потребител. По този начин, ако една редакция бъде идентифицирана като проблемна, е възможно да се проверят другите редакции на потребителя за проблеми.
МедияУики позволява да се прави връзка към конкретни версии на статии. Това е полезно за научната общност, тъй като експертните критици могат да анализират статии, да ги подобряват и да предоставят връзки към надеждната версия на тази статия.[63]
Навигацията в уикито до голяма степен е чрез вътрешни препратки. Вътрешните препратки на МедияУики прилагат откриване на съществуваща страница, при което връзката е оцветена в синьо, ако целевата страница съществува в локалното уики, и червено когато страницата не съществува. Ако потребител кликне върху червена връзка, той получава подкана да създаде статия с това заглавие. Откриването на съществуваща страница прави практично за потребителите да създават „уикифицирани“ статии – т.е. статии, съдържащи връзки към други уместни теми, без тези други статии все още да съществуват.
Препратките между проектите функционират почти по същия начин като именното пространство. Набор от препратки между проектите може да бъде конфигуриран да накара, например, заглавието на страница от Уикицитат:Джими Уейлс
да насочи потребителя към статията за Джими Уейлс в Уикицитат.[64] За разлика от вътрешните препратки, препратките между проектите нямат функционалност за откриване на съществуване на страница и съответно няма начин да се разбере дали дадена синя препратка между проектите е наред или не.
Междуезиковите връзки са малки връзки за навигация, които се показват в страничната лента на МедияУики, те свързват статия със сродни статии на други езици в рамките на едно и също уики семейство. Това може да осигури специфични за езика общности, свързани с по-голям контекст, с всички уикита на един и същи сървър или всяко на свой собствен сървър.[65]
Преди създаването на Уикиданни в Уикипедия, във всяка статия се е поставяла връзка към друга езикова версия. Това е променено благодарение на Уикиданни.[66]
Разделите на страниците се показват в горната част на страниците. Тези раздели позволяват на потребителите да извършват действия или да разглеждат страници, които са свързани с текущата страница. Наличните действия по подразбиране включват преглед, редактиране и обсъждане на текущата страница. Конкретните показани раздели зависят от това дали потребителят е влязъл в уики и дали потребителят има привилегии от системния оператор в уики. Например възможността да преместите страница или да я добавите към списъка за наблюдение обикновено е ограничена до влезли потребители. Администраторът на сайта може да добавя или премахва раздели, като използва JavaScript или инсталира разширения.[67]
Всяка страница има свързана страница с история, от която потребителят може да получи достъп до всяка версия на страницата, която някога е съществувала, и да генерира разлики между две версии по свой избор. Приносът на потребителите се показва не само тук, но и чрез опцията „принос на потребителя“ в страничната лента.[68]
МедияУики предоставя много функции извън хипервръзките за структуриране на съдържание. Една от най-ранните такива функции са именните пространства. Един от най-ранните проблеми на Уикипедия е представлявало отделянето на енциклопедичното съдържание от страниците, отнасящи се до поддръжката и общите дискусии, както и личните страници за редакторите на енциклопедии. Именните пространства са префикси преди заглавие на страница (като „Потребител:
“ или „Беседа:
“), които служат като дескриптори за предназначението на страницата и позволяват множество страници с различни функции да съществуват под едно и също заглавие. Например страница, озаглавена „Терминаторът
“, в именното пространство по подразбиране, може да опише филма от 1984 г. с участието на Арнолд Шварценегер, докато страница, озаглавена „Потребител:Терминаторът
“ може да бъде профил, описващ потребител който избира това име за псевдоним. По-често всяко именно пространство има свързано именно пространство „Беседа:
“, което може да се използва за обсъждане на неговото съдържание, като например „Потребител беседа:
“ или „Шаблон беседа:
“. Целта на дискусионните страници е да позволи разделяне на съдържанието от дискусията около съдържанието.[69][70]
Именните пространства могат да се разглеждат като папки, които разделят различни основни типове информация или функционалност. Персонализирани именни пространства могат да се добавят от администраторите на сайта. Има 16 именни пространства по подразбиране за съдържание, с 2 „псевдо-именни пространства“, използвани за динамично генерирани „Специални:
“ страници и връзки към медийни файлове. Всяко пространство от имена в МедияУики е номерирано: именни пространства на страници със съдържание имат четни номера, а свързаните с тях именни пространства на страници за разговори имат нечетни номера.[71]
Потребителите могат да създават нови категории и да добавят страници и файлове към тези категории, като добавят един или повече тагове за категория към текста на съдържанието. Добавянето на тези етикети създава връзки в долната част на страницата, които отвеждат читателя до списъка с всички страници в тази категория, което улеснява разглеждането на свързани статии.[72] Използването на категоризация за организиране на съдържание е описано като комбинация от:
В допълнение към именните пространства, съдържанието може да бъде подредено с помощта на подстраници. Тази проста функция осигурява автоматичен навигационен път на шаблона Заглавие на страница/Заглавие на подстраница
от страницата след наклонената черта (в този случай „Заглавие на подстраница
“) към страницата преди наклонената черта (в този случай „Заглавие на страница
“).
Ако функцията е активирана, потребителите могат да персонализират своите таблици със стилове и да конфигурират JavaScript от страна на клиента, който да се изпълнява при всяко показване на страница. В Уикипедия това води до голям брой допълнителни инструменти и помощници, разработени чрез уики и споделени между потребителите. Например, навигационните изскачащи прозорци са персонализиран инструмент на JavaScript, който показва визуализации на статии, когато потребителят задържи курсора на мишката върху връзки и също така предоставя преки пътища за често срещани задачи по поддръжката.[74]
Целият потребителски интерфейс на МедияУики може да се редактира чрез самото уики от потребители с необходимите разрешения (обикновено наричани „администратори“). Това става чрез специално именно пространство с префикс „MediaWiki:
“, където всяко заглавие на страница идентифицира конкретно съобщение на потребителския интерфейс. С помощта на разширение[75] също така е възможно потребителят да създава лични скриптове и да избира дали определени скриптове за целия сайт да се прилагат към тях, като превключва съответните опции в страницата с потребителски предпочитания.
Именното пространство „MediaWiki:
“ първоначално също се използва за създаване на персонализирани текстови блокове, които след това могат да бъдат динамично заредени в други страници, използвайки специален синтаксис. Това съдържание по-късно е преместено в собственото именно пространство „Шаблон:
“.
Шаблоните са структурирани документи, съдържащи двойки атрибут-стойност. Те се дефинират с параметри, на които се присвояват стойности, когато се включват на страница със статия. Името на параметъра е разделено от стойността със знак за равенство. Клас шаблони, известни като информационни кутии, се използват в Уикипедия за събиране и представяне на подмножество от информация за своя предмет, обикновено в горния (мобилен изглед) или горния десен ъгъл (настолен изглед) на документа.
Свързан метод, наречен заместване на шаблон (чрез добавяне на subst:
в началото на връзка към шаблон), вмъква съдържанието на шаблона в целевата страница (като операция за копиране и поставяне), вместо да зарежда съдържанието на шаблона динамично, когато страницата е заредена. Това може да доведе до непоследователност при използване на шаблони, но може да бъде полезно в определени случаи и в повечето случаи изисква по-малко сървърни ресурси (действителната сума на спестяванията може да варира в зависимост от конфигурацията на уики и сложността на шаблона).
Шаблоните са намерили много различни приложения. Те позволяват на потребителите да създават сложни оформления на таблици, които се използват последователно в множество страници и където само съдържанието на таблиците се вмъква с помощта на параметри на шаблона. Шаблоните често се използват за идентифициране на проблеми със статия в Уикипедия чрез поставяне на шаблон в статията. След това този шаблон извежда графично поле, в което се посочва, че съдържанието на статията е оспорвано или се нуждае от друго внимание, и също така го категоризира, така че статиите от този характер да могат да бъдат намерени. Шаблоните се използват и на потребителските страници, за да изпращат на потребителите стандартни съобщения, приветстващи ги в сайта,[76] давайки им награди за изключителен принос,[77][78] предупреждавайки ги, когато поведението им се счита за неподходящо,[79] уведомявайки ги, когато са блокирани за редактиране[80] и др.
Съществуват начини как МедияУики да бъде направена по-усъвършенствана и полезна за различни цели чрез своите разширения. Тези разширения се различават значително по сложност. Фондация „Уикимедия“ управлява Git сървър, където много разширения хостват тяхното хранилище. Повечето от тях също имат страница с документация на уебсайта на МедияУики. Чрез разширение на МедияУики е улеснен прегледът на кода на софтуера.[81] От март 2012 г. това е направено чрез Gerrit. Версия 1.16 MediaWiki е ползвана от библиотеката jQuery.[82]
МедияУики се предлага предварително инсталирано със стандартно текстово търсене. Съществуват разширения, които позволяват на МедияУики да използва по-усъвършенствани търсачки на трети страни, включително Elasticsearch (което от 2014 г. се използва в Уикипедия), Lucene и Sphinx.
МедияУики може да използва MySQL / MariaDB, PostgreSQL или SQLite система за управление на релационни бази данни. Поддръжката за Oracle Database и Microsoft SQL Server е отпаднала след MediaWiki 1.34.[83] Базата данни на МедияУики съдържа няколко дузини таблици, включително таблица на страници, която съдържа заглавия на страници, идентификатори на страници и други метаданни,[84] и таблица с редакции, към която се добавя нов ред всеки път, когато се прави редакция, съдържащ идентификатора на страницата, кратко текстово резюме на извършената промяна, потребителското име на редактора на статията (или неговия IP адрес в случай на нерегистриран потребител) и клеймо за време.[85][86]
В период от 4 години и половина преди 2008 г. базата данни на МедияУики разполага със 170 версии на схема база данни.[87] Вероятно най-голямата промяна в схемата е извършена през 2005 г. с MediaWiki 1.5, когато съхранението на метаданни е отделено от това на съдържанието, за да се подобри гъвкавостта на производителността. Когато това надграждане е приложено към Уикипедия, сайтът е заключен за редактиране и схемата е преобразувана в новата версия за около 22 часа. Някои предложения за подобрение на софтуера, като например предложение за разрешаване на секции от статии да бъдат наблюдавани чрез списък за наблюдение са отхвърлени, тъй като необходимите промени в схемата биха изисквали прекомерно прекъсване на Уикипедия.[88]
Разработчиците на МедияУики са въвели стандарти за сигурност, както за основния код, така и за разширенията.[89] SQL заявките и HTML изходът обикновено се извършват чрез функции за обвивка, които обработват валидиране, екраниране, филтриране за предотвратяване на междусайтови скриптове и SQL инжектиране.[90] Много проблеми със сигурността е трябвало да бъдат коригирани след пускането на версията на МедияУики[91] и съответно MediaWiki.org заявява: „Най-важната стъпка за сигурност, която можете да предприемете, е да поддържате софтуера си актуален“, като се абонирате за пощенския списък за съобщения и инсталиране на актуализации за сигурност, които са обявени.[92]
Разработчиците на МедияУики са разпръснати по целия свят, но с мнозинство от тях се намират в Съединените щати и Европа. Срещи лице в лице и сесии за програмиране за разработчици на МедияУики се провеждат веднъж или няколко пъти годишно от 2004 г. насам.[93]
Поддръжката за потребителите на МедияУики се състои от:
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.