Направо към съдържанието

МедияУики

от Уикипедия, свободната енциклопедия
МедияУики
MediaWiki
Началната страница към април 2021 г.
Информация
АвторМагнус Манске;
Лий Даниел Крокър
РазработчикФондация „Уикимедия“
Начална версия25 януари 2002 г.;
преди 22 години
 (2002-01-25)
Последна версия1.39.6 и
1.41.0 (21 декември 2023)
Програмен езикPHP и JavaScript
Операционна системаMicrosoft Windows, macOS, Linux, FreeBSD, OpenBSD, Solaris
Платформамеждуплатформен софтуер
Език на интерфейсанад 450 езика
Размер110,2 MiB (компресиран)
Статусактивен
Вид софтуеруики
ЛицензGPLv2+
Уебсайтmediawiki.org
МедияУики в Общомедия

МедияУики (на английски: MediaWiki) е безплатен уики софтуер с отворен код. Първоначалният вариант е създаден специално за Уикипедия от Магнус Манске на 25 януари 2002 г. и допълнително подобрен от Лий Даниел Крокър,[1][2] след което е координиран от Фондация „Уикимедия“. Той управлява няколко уебсайта за хостване на уики в Интернет, както и повечето уебсайтове, хоствани от Фондация „Уикимедия“, като Уикипедия, Уикиречник, Общомедия, Уикицитат, МетаУики и Уикиданни, които определят голяма част от зададените изисквания за софтуера.[3] Езика за програмиране на който е написан МедияУики е PHP, той съхранява цялото текстово съдържание в бази от данни. Софтуерът е оптимизиран за ефективно управление на големи проекти, които могат да имат терабайти съдържание и стотици хиляди гледания в секунда.[3][4] Тъй като Уикипедия е сред най-големите и най-посещавани уебсайтове в света, постигането на мащабируемост чрез множество слоеве на кеширане и репликация на база данни е основна грижа за разработчиците. Друг важен аспект на МедияУики е нейната интернационализация. Неговият интерфейс е достъпен на над 450 езика. Софтуерът има над 1000 настройки за конфигурация[5] и над 1800 разширения, които позволяват добавянето или промяната на различни функции.[6] Освен използването му от сайтове на Фондация „Уикимедия“, МедияУики се използва като система за управление на знания и съдържание на сайтове като Fandom, wikiHow, както и за големи вътрешни въведения, като при Интелипедия и Диплопедия.

МедияУики е безплатен софтуер и с отворен код и се разпространява съгласно условията на 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, от системата за проследяване на проблеми „Фабрикатор“. Сайтът се използва и за заявки за функции и подобрения.

Магнус Манске през 2012 г.

Когато стартира Уикипедия през януари 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]

Лого на МедияУики до 1 април 2021 г.

Първото лого на МедияУики е създадено от Ерик Мьолер, като е използвана снимка на цвете, направена от Флоранс Нибар-Девуар. Първоначално то е било изпратено в конкурса за ново лого на Уикипедия, проведен от 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]

МедияУики предоставя богат набор от основни функции и механизъм за разширения на приставки за осигуряване на допълнителна функционалност.

Интернационализация и локализация

[редактиране | редактиране на кода]
Никлас Лаксстрьом разяснява за функциите, които позволяват на translatewiki.net да предостави на МедияУики над 400 локализации.

Поради силния акцент върху многоезичието в проектите на Фондация „Уикимедия“, разработчиците отделят значително внимание за интернационализация и локализация. Потребителският интерфейс е преведен изцяло или частично на над 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."

(Пример от цитат (по-горе) от детския роман „Алиса в Страната на чудесата“ на Луис Карол)

Интерфейс за редактиране

[редактиране | редактиране на кода]
Интерфейс за редактиране на MediaWiki 1.41 с подчертаване на синтаксиса, показващ лентата с инструменти за редактиране и някои примери за уики синтаксис.

Инструментите за редактиране на страница по подразбиране на МедияУики са описани като доста трудни за научаване.[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, които потребителите могат да „инсталират“, инструментът „навигационни изскачащи прозорци“, показан тук, показва малък преглед на статия, когато задържите курсора на мишката върху заглавието на връзката.

Ако функцията е активирана, потребителите могат да персонализират своите таблици със стилове и да конфигурират 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]

Поддръжката за потребителите на МедияУики се състои от:

  • MediaWiki.org, включително бюрото за поддръжка.
  • Официален пощенски списък, Mediawiki-l.
  • Няколко книги са написани за администрирането на МедияУики,[94] включително някои безплатни онлайн книги.[95][96]
  1. Magnus Manske's announcement of "PHP Wikipedia", wikipedia-l, August 24, 2001
  2. Barrett, Daniel J. MediaWiki. O'Reilly Media, October 2008. ISBN 978-0-596-51979-7. Посетен на April 23, 2010.
  3. а б What is MediaWiki? // January 9, 2021. Архивиран от оригинала на July 22, 2018. Посетен на March 27, 2021.
  4. Česky. Wikipedia:Statistics – Wikipedia, the free encyclopedia // Wikipedia. Архивиран от оригинала на August 28, 2021. Посетен на May 30, 2010.
  5. Category:MediaWiki configuration settings // MediaWiki, September 11, 2016. Архивиран от оригинала на November 10, 2014. Посетен на September 11, 2016.
  6. Extension Matrix // MediaWiki. Архивиран от оригинала на September 11, 2016. Посетен на September 6, 2017.
  7. MediaWiki.org Project:Copyrights // Архивиран от оригинала на August 23, 2023. Посетен на August 23, 2023.
  8. Project:PD help // MediaWiki. Архивиран от оригинала на October 29, 2020. Посетен на May 30, 2010.
  9. Rafe Needleman (November 19, 2008). Wikipedia gears up for flood of video and photo files. C-Net, архив на оригинала от 6 август 2009, https://news.cnet.com/8301-17939_109-10103177-2.html, посетен на 23 април 2010 
  10. Development policy // MediaWiki, July 19, 2013. Архивиран от оригинала на May 10, 2017. Посетен на August 4, 2013.
  11. Summer of Code // MediaWiki, March 26, 2013. Архивиран от оригинала на May 10, 2017. Посетен на August 4, 2013.
  12. Wikimedia // Open Hub. Архивиран от оригинала на September 14, 2017. Посетен на November 15, 2012. Approximate counts (not deduplicated) as of November 4, 2012: 139 for core, 155 for extensions supported by WMF, 190 and 42 for extensions only hosted on WMF's Git and SVN repositories respectively.
  13. а б Version lifecycle // MediaWiki, September 5, 2018. Архивиран от оригинала на June 17, 2020. Посетен на October 21, 2018.
  14. Magnus's new script... // Wikimedia Foundation, November 14, 2001. Архивиран от оригинала на October 2, 2019. Посетен на October 2, 2019.
  15. Magnus's new script... // Wikimedia Foundation, November 14, 2001. Архивиран от оригинала на October 2, 2019. Посетен на October 2, 2019.
  16. Mayer, Daniel. Phase IV, Wikibooks.org/.com and WikimediaFoundation.org/.com (was Wikis and uniformity) // Wikipedia-L mailing list. Jul 19, 2003. Архивиран от оригинала на July 12, 2017. Посетен на January 18, 2015.
  17. Differences between Wikipedia, Wikimedia, MediaWiki, and wiki // MediaWiki. Архивиран от оригинала на July 1, 2009. Посетен на May 30, 2010.
  18. International logo contest // Архивиран от оригинала на May 9, 2020. Посетен на April 9, 2020.
  19. International logo contest/results // Meta-wiki. Wikimedia Foundation, January 10, 2007. Архивиран от оригинала на November 4, 2015. Посетен на March 14, 2007.
  20. Historical/Logo history // Meta-wiki. Wikimedia Foundation, January 17, 2007. Архивиран от оригинала на November 4, 2015. Посетен на March 14, 2007.
  21. Erik Möller. File talk:EloquenceSunflowerNew-Small.png – Meta // Meta-wiki. Wikimedia Foundation, July 26, 2003. Архивиран от оригинала на January 30, 2016. Посетен на February 3, 2013.
  22. David Weinberger. Everything Is Miscellaneous: The Power of the New Digital Disorder. Times Books, 2007. ISBN 978-0-8050-8043-8. с. 99.
  23. MediaWiki history // MediaWiki website. Архивиран от оригинала на October 27, 2020. Посетен на August 4, 2013.
  24. Wikipedia and MediaWiki // Presentation MediaWiki development (video). April 28, 2006. Архивиран от оригинала на April 14, 2011. Посетен на September 23, 2009.
  25. M Schindler; D Vrandecic (2009). Introducing new features to Wikipedia. Proceedings of WebSci, архив на оригинала от 24 юни 2018, https://www.researchgate.net/publication/224219255, посетен на 24 юни 2018 
  26. MediaWiki ResourceLoader // Mediawiki.org. Архивиран от оригинала на March 8, 2013. Посетен на July 6, 2013.
  27. VisualEditor – MediaWiki // MediaWiki. Архивиран от оригинала на September 27, 2013. Посетен на September 15, 2013.
  28. Logo of MediaWiki has changed // Wikimedia Foundation, March 31, 2021. Архивиран от оригинала на April 2, 2021. Посетен на April 2, 2021.
  29. Aktuelle Versionsinformationen sind auf mediawiki.org einsehbar
  30. Eine Version mit Langzeitunterstützung (LTS) wird für drei Jahre unterstützt. Sie eignet sich besonders für produktive Umgebungen, in denen größere Softwareänderungen vermieden werden sollen.
  31. MediaWiki testimonials Архив на оригинала от януари 11, 2012 в Wayback Machine., mediawiki.org
  32. The story of Intelpedia: A model corporate wiki // Socialmedia.biz. Архивиран от оригинала на September 16, 2013. Посетен на August 16, 2013.
  33. A stealth transformation: introducing wikis to the UN // Knowledge Management for Development Journal, 2007. Архивиран от оригинала на 2011-05-04. Посетен на 2024-03-18.
  34. LibrePlanet Homepage // Архивиран от оригинала на March 18, 2011. Посетен на December 10, 2018.
  35. Message group statistics: MediaWiki core // 2023-08-20. Архивиран от оригинала на 2023-08-20. Посетен на 2023-08-20. 488 languages (not including languages that are supported but have no translations)
  36. Lerner, Reuven M. (February 23, 2006). Installing and Customizing MediaWiki. Linux Journal, архив на оригинала от 6 април 2010, https://www.linuxjournal.com/article/8754?page=0,1, посетен на 23 април 2010 
  37. Petrazickis, Leons (2009). Deploying PHP applications on IBM DB2 in the cloud: MediaWiki as a case study. Proceedings of the 2009 Conference of the Center for Advanced Studies on Collaborative Research, pp. 304–305, doi:10.1145/1723028.1723069, https://portal.acm.org/citation.cfm?id=1723069 
  38. Manual:$wgEnableUploads // MediaWiki. Архивиран от оригинала на June 25, 2010. Посетен на May 30, 2010.
  39. Manual:$wgLogo // MediaWiki, December 12, 2009. Архивиран от оригинала на June 25, 2010. Посетен на May 30, 2010.
  40. Manual:LocalSettings.php // MediaWiki, March 29, 2007. Архивиран от оригинала на June 25, 2010. Посетен на May 30, 2010.
  41. Extension:AbuseFilter // MediaWiki. Архивиран от оригинала на June 25, 2010. Посетен на May 30, 2010.
  42. Cacycle. wikEd // Архивиран от оригинала на November 23, 2007.
  43. Manual:Installation guide // MediaWiki. Архивиран от оригинала на June 25, 2010. Посетен на May 30, 2010.
  44. Manual:Extending wiki markup // MediaWiki. Архивиран от оригинала на May 1, 2011. Посетен на May 30, 2010.
  45. HTML to Wiki Converter – tables // WMF Labs, March 29, 2008. Архивиран от оригинала на July 13, 2014. Посетен на June 12, 2014.
  46. Markup spec // MediaWiki. Архивиран от оригинала на December 19, 2007. Посетен на May 30, 2010.
  47. Extricating Meaning from Wikimedia Article Archives // Архивиран от оригинала на 2011-03-10. Посетен на 2024-03-19.
  48. Jakes, David (August 15, 2006). Wild about Wikis. Tech & Learning, архив на оригинала от 2 май 2010, https://www.techlearning.com/article/6164, посетен на 23 април 2010 
  49. Foley, Brian; Chang, Tae (2008). Wiki as a professional development tool. Technology and Teacher Education, архив на оригинала от 30 април 2011, https://www.csun.edu/~bfoley/AERA_Wiki.pdf, посетен на 23 април 2010 
  50. API // MediaWiki, May 17, 2010. Архивиран от оригинала на May 27, 2010. Посетен на May 30, 2010.
  51. Pywikibot – MediaWiki // mediawiki.org. Архивиран от оригинала на March 9, 2018. Посетен на March 16, 2018.
  52. Česky. Wikipedia:AutoWikiBrowser – Wikipedia, the free encyclopedia // En.wikipedia.org. Архивиран от оригинала на April 20, 2010. Посетен на May 30, 2010.
  53. Bartolo, Laura M.; Lowe, Cathy S.; Songar, Poonam; Tandy, Robert J. (May 20, 2009). Facilitating Wiki/Repository Communication with Metadata. Georgia Institute of Technology, архив на оригинала от 9 януари 2011, https://smartech.gatech.edu/dspace/handle/1853/28426, посетен на 23 април 2010 
  54. API:Client code // MediaWiki, May 24, 2010. Архивиран от оригинала на June 26, 2010. Посетен на May 30, 2010.
  55. Extension:VisualEditor // Архивиран от оригинала на February 21, 2021. Посетен на March 15, 2021.
  56. Category:WYSIWYG extensions // MediaWiki, April 10, 2008. Архивиран от оригинала на May 1, 2011. Посетен на May 30, 2010.
  57. Tags – Wikipedia, the free encyclopedia // En.wikipedia.org. Архивиран от оригинала на March 4, 2010. Посетен на May 30, 2010.
  58. Manual:Tags // MediaWiki, August 31, 2009. Архивиран от оригинала на June 25, 2010. Посетен на May 30, 2010.
  59. Wikipedia:Huggle – Wikipedia, the free encyclopedia // En.wikipedia.org. Архивиран от оригинала на March 31, 2011. Посетен на May 30, 2010.
  60. IRC/Channels // Meta-Wiki. Архивиран от оригинала на March 23, 2010. Посетен на May 30, 2010.
  61. Daniel Nasaw. Meet the 'bots' that edit Wikipedia // BBC News. July 25, 2012. Архивиран от оригинала на July 28, 2012. Посетен на July 30, 2012.
  62. Manual:Watchlist // MediaWiki, November 24, 2009. Архивиран от оригинала на May 1, 2011. Посетен на May 30, 2010.
  63. Kevin Yager (March 16, 2006). Wiki ware could harness the Internet for science. – Nature, 440(7082), 278, Bibcode 2006Natur.440..278Y, doi:10.1038/440278a, PMID 16541049 
  64. Manual:Interwiki // MediaWiki. Архивиран от оригинала на December 3, 2010. Посетен на May 30, 2010.
  65. Interlanguage links // Архивиран от оригинала на March 12, 2021. Посетен на March 17, 2021.
  66. Pintscher, Lydia. Wikidata is Here! // September 23, 2013. Архивиран от оригинала на December 6, 2021. Посетен на March 17, 2021.
  67. Help:Navigation // MediaWiki, May 21, 2010. Архивиран от оригинала на May 27, 2010. Посетен на May 30, 2010.
  68. Carl Challborn; Teresa Reimann (December 2004). Wiki products: a comparison. Athabasca University, архив на оригинала от 23 декември 2010, https://cde.athabascau.ca/softeval/reports/R470412.pdf, посетен на 23 април 2010 
  69. Newman, Aaron, Steinberg, Adam, Thomas, Jeremy. Enterprise 2. 0 Implementation. McGraw-Hill Professional, 2008. ISBN 978-0-07-159160-7. с. 185.
  70. Malcolm, Jeremy. Multi-Stakeholder Governance and the Internet Governance Forum. Terminus Press, 2008. ISBN 978-0-9805084-0-6. с. 188, 280.
  71. Ebersbach, Anja, Glaser, Markus, Heigl, Richard. Wiki. Springer, 2006. ISBN 978-3-540-25995-4. с. 55, 80–82, 109, 120–121, 156.
  72. Help:Categories // MediaWiki. Архивиран от оригинала на June 25, 2010. Посетен на May 30, 2010.
  73. Jakob Voss. Collaborative thesaurus tagging the Wikipedia way // April 27, 2006.
  74. Lupin. Wikipedia:Tools/Navigation popups // Архивиран от оригинала на July 18, 2006.
  75. Extension:Gadgets // MediaWiki, March 30, 2010. Архивиран от оригинала на June 25, 2010. Посетен на May 30, 2010.
  76. Česky. Template:Welcome – Wikipedia, the free encyclopedia // En.wikipedia.org, May 16, 2010. Архивиран от оригинала на May 6, 2011. Посетен на May 30, 2010.
  77. Proceedings of the 2008 ACM conference on Computer supported cooperative work // Proceedings of the ACM, 2008. с. 47–56.
  78. Česky. Wikipedia:Barnstars – Wikipedia, the free encyclopedia // En.wikipedia.org. Архивиран от оригинала на June 24, 2009. Посетен на May 30, 2010.
  79. Česky. Template:Test – Wikipedia, the free encyclopedia // En.wikipedia.org. Архивиран от оригинала на November 11, 2009. Посетен на May 30, 2010.
  80. Template:Test5 – Wikipedia, the free encyclopedia // En.wikipedia.org, June 19, 2008. Архивиран от оригинала на April 24, 2009. Посетен на May 30, 2010.
  81. Extension:CodeReview // MediaWiki. Архивиран от оригинала на September 26, 2014. Посетен на May 30, 2010.
  82. jQuery on MediaWiki
  83. Manual:Installation requirements // Архивиран от оригинала на March 8, 2021. Посетен на March 14, 2021.
  84. Manual:Page table // MediaWiki, May 15, 2010. Архивиран от оригинала на November 25, 2014. Посетен на May 30, 2010.
  85. Manual:Revision table // MediaWiki. Архивиран от оригинала на November 24, 2014. Посетен на May 30, 2010.
  86. Ortega, Felipe; González-Barahona, Jesus M.; Robles, Gregorio (2007). The Top-Ten Wikipedias: A Quantitative Analysis Using WikiXRay 
  87. Curino, Carlo A.; Tanca, Letizia; Zaniolo, Carlo (2008). Information Systems Integration and Evolution: Ontologies at Rescue. Workshop on Semantic, архив на оригинала от 22 декември 2009, https://yellowstone.cs.ucla.edu/schema-evolution/documents/curino-STSM08-CR.pdf, посетен на 23 април 2010 
  88. T Dumitras; P Narasimhan (2009). No downtime for data conversions: Rethinking hot upgrades, архив на оригинала от 16 юни 2010, https://www.pdl.cmu.edu/PDL-FTP/stray/CMU-PDL-09-106.pdf, посетен на 29 април 2010 
  89. Security for developers // MediaWiki. Архивиран от оригинала на November 25, 2014. Посетен на May 30, 2010.
  90. Perrin, Chad (April 30, 2008). Five security tips from MediaWiki's lead developer. Tech Republic, https://blogs.techrepublic.com/security/?p=451 [неработеща препратка]
  91. News // MediaWiki. Архивиран от оригинала на October 6, 2014. Посетен на May 30, 2010.
  92. Manual:Security // MediaWiki, March 22, 2010. Архивиран от оригинала на November 10, 2014. Посетен на May 30, 2010.
  93. Events // Mediawiki.org. Архивиран от оригинала на December 27, 2018. Посетен на December 27, 2018.
  94. Books about MediaWiki Архив на оригинала от декември 27, 2018 в Wayback Machine., mediawiki.org
  95. MediaWiki Administrator's Handbook. Wikibooks. Архивиран от оригинала на October 20, 2014. Посетен на October 20, 2014.
  96. MediaWiki User Guide. Wikibooks, архив на оригинала от 20 октомври 2014, https://en.wikibooks.org/wiki/MediaWiki_User_Guide, посетен на 20 октомври 2014