Noví vývojáři/Úvod do technického ekosystému Wikimedie

This page is a translated version of the page New Developers/Introduction to the Wikimedia Technical Ecosystem and the translation is 100% complete.

Tato stránka poskytuje přehled softwaru a infrastruktury Wikimedie pro nové technické přispěvatele. Jeho cílem je pomoci vývojářům porozumět hlavním oblastem, kde můžete uplatnit své technické dovednosti, abyste pomohli podpořit a rozvíjet Hnutí.

Základní principy a technologie

Open source

Technický ekosystém Wikimedie se řídí principy bezplatného open source software (FLOSS). Přispěvatelé z celého světa dobrovolně věnují svůj čas údržbě a rozšiřování technologie na projektech Wikimedie. To znamená, že technický ekosystém Wikimedie se skládá z mnoha jedinečných projektů s různými přispívajícími pokyny, návrhovými vzory, hostitelskými místy a procesy kontroly kódu.

Hodnoty open source, jako je sdílené vlastnictví a silné závazky týkající se ochrany osobních údajů, jsou ústředním bodem technické infrastruktury, softwaru a služeb Wikimedie. Například:

  • Pro kontrolu verzí a kontrolu kódu používá Wikimedia Foundation (WMF) Git a Gerrit. Git je bezplatný a open source distribuovaný systém správy verzí a Gerrit je bezplatný webový nástroj pro kolaborativní kontrolu kódu, který se integruje s Git.
  • Wikimedia Cloud Services (WMCS) poskytuje infrastrukturu cloud computingu, sdílený hosting (platforma jako služba) a datové služby pro přispěvatele do softwarových projektů Wikimedie. Tyto služby můžete použít k hostování svých softwarových nástrojů pro hnutí Wikimedi, a to zdarma, namísto používání proprietárních, placených nebo neopen source služeb.

Kromě poskytování nástrojů a služeb pro technické přispěvatele WMF spravuje základní infrastrukturu, jako jsou datová centra, vyhledávání, sítě a globální směrování provozu. Nemusíte se o nich učit, abyste mohli přispívat do wiki projektů, ale měli byste vědět o základním softwaru, který pohání Wikipedii a další wikiny: MediaWiki.

MediaWiki

 

Projekty Wikimedie, včetně Wikipedie, běží na softwarové platformě MediaWiki. MediaWiki je bezplatný a otevřený software vytvořený speciálně pro shromažďování a organizování svobodných a otevřených znalostí. Je vícejazyčný, rozšiřitelný, přizpůsobitelný a spolehlivý. MediaWiki umožňuje uživatelům na celém světě upravovat, organizovat, udržovat a spolupracovat na wikinách. Spravuje zobrazení obsahu, jako je text, fotografie, formátování a revize. MediaWiki je více než jen systém pro správu obsahu: Poskytuje také nástroje pro řešení spamu a vandalismu a další funkce, které podporují komunitní správu volně znovu použitelných znalostí na otevřené platformě.

Klíčové oblasti, kam mohou vývojáři přispívat

Vývoj MediaWiki, aplikací a rozšíření

Jádro MediaWiki a rozšíření

Software MediaWiki je vyvíjen ve spolupráci lidí z celého světa. Technická komunita Wikimedie přidala do MediaWiki mnoho klíčových funkcí a vybudovala rozsáhlý ekosystém rozšíření základního softwaru. Vzhledem ke své složitosti může být přispívání do MediaWiki náročnější než jiné typy technických příspěvků. Jako nový přispěvatel se zaměřte na funkce a chyby, které se dotýkají pouze malé oblasti kódu. Zde můžete najít dobré první úkoly pro jádro MediaWiki. Vyhněte se vytváření nových vzhledů a rozšíření MediaWiki: Každé nové rozšíření zvyšuje celkovou zátěž softwaru na údržbu a může blokovat spouštění nových důležitých funkcí. Místo toho se podílejte na práci na jednom z mnoha existujících rozšíření.

Příklad rozšíření: Překládejte text a spravujte vícejazyčné wikiny

Rozšíření Translate umožňuje lokalizaci MediaWiki a překlad všech druhů textu.

Podporuje webové překlady, korektury a spolupráci mezi překladateli po celém světě a zároveň co nejjednodušší integraci back-endu se zdrojovým kódem.

 
Snímek obrazovky překladové stránky vygenerovaný rozšířením Translate.

Chcete-li se dozvědět více, navštivte Jak se stát vývojářem MediaWiki .

Mobilní aplikace Wikimedie

Mobilní aplikace rozšiřují dosah obsahu Wikimedie tím, že umožňují uživatelům komunikovat s Wikimedií bez použití prohlížeče. Existují aplikace pro platformy Android, iOS a KaiOS, aplikace pro různé projekty Wikimedie, jako je Commons, Wikipedie a Wikislovník a aplikace pro aktivity, jako je čtení, přispívání a další. Mnoho aplikací má živé vývojářské komunity a vítá nové přispěvatele.

Příklad mobilní aplikace: Čtěte Wikipedii bez přístupu k internetu

Kiwix je offline čtečka – zpřístupňuje Wikipedii lidem bez přístupu k internetu.

Poskytuje obsah ve více než 100 jazycích z Wikipedie, Wikiquote, Wiktionary a dalších online zdrojů.

Vývoj Kiwix využívá Java/Kotlin (Android), Swift (iOS), Qt (desktop), NodeJS (mediawiki offliner) a C++.

Chcete-li se dozvědět více, navštivte Aplikace Wikimedie .

Přizpůsobení MediaWiki prostřednictvím vývoje na wiki

Šablony a moduly

Šablony umožňují zobrazení jednoho obsahu na více wiki stránkách ("transkluze"). Mnoho wikin se silně spoléhá na šablony: Jsou jich tisíce, používají se téměř na každé stránce a jsou nedílnou součástí funkcí wiki. Šablonám můžete předat parametry a přizpůsobit je tak, jak je s obsahem v různých kontextech nakládáno.

Příklad šablony: Formátování blokových uvozovek

Šablona Blockquote poskytuje formátování pro blokové citace a zahrnuje předformátované parametry přiřazení pro autora a zdroj citace.

To umožňuje editorům používat značky wikitextu ke snadnému a konzistentnímu stylu zobrazování blokových uvozovek na stránkách wiki.

 
Snímek obrazovky dokumentace Template:Blockquote ukazující, jak to funguje.

K úpravě nebo vytvoření šablony nepotřebujete účet vývojáře a jsou napsány ve wikitextu. Díky tomu jsou šablony snadným způsobem, jak začít s přizpůsobením chování wiki.

Moduly jsou podobné šablonám, ale místo toho, aby byly napsány ve wikitextu, používají programovací jazyk Lua. Zatímco šablony jsou součástí základní aplikace MediaWiki, podpora modulů je implementována rozšířením nazvaným Scribunto .

Příklad modulu: Formátování komplexních map tras

Modul Routemap podporuje speciální, komplexní, vlastní jazyk pro zobrazování železničních map. Používá se v tisících článků o železnicích ve více jazycích. Použití Lua umožňuje tomuto modulu nahradit starší šablony map tras rychlejší a mobilnější implementací.

 
Snímek obrazovky článku pomocí modulu Routemap na korejské Wikipedii.
 
Ukázkový kód a vykreslení z dokumentace mapy trasy.

Chcete-li se dozvědět více o šablonách, navštivte Nápověda:Šablony . Chcete-li se dozvědět více o modulech ao tom, jak se Lua používá na MediaWiki, navštivte příručku Scribunto Lua.

Uživatelské skripty a miniaplikace

MediaWiki podporuje přizpůsobení front-endu nebo vývoj "on-wiki", aby se zlepšila základní funkčnost softwaru. Uživatelské skripty jsou Javascript a nebo CSS, které poskytují další funkce nad MediaWiki. Kód žije na wiki a je vkládán ze strany klienta na MediaWiki prostřednictvím uživatelských preferencí. Můžete upravit svůj místní JavaScript a CSS, abyste změnili vzhled a chování svého vlastního rozhraní. Jednotliví uživatelé mohou přidávat funkce pro sebe, pokud dodržují očekávání a pokyny týkající se toho. Pokud vytvoříte něco, co mohou používat ostatní, můžete své skripty neformálně sdílet nebo ve spolupráci s komunitou wiki prozkoumat zpřístupnění vašich přizpůsobení ostatním uživatelům a projektům jako "gadget".

Příklad uživatelského skriptu: Zobrazení vypočítaného obsahu

Tento uživatelský skript vypočítá dobu čtení článku a zobrazí jej na stránce.

var numWords = $("#mw-content-text > div").text().split(" ").length;
var headerWords = $("h1").text().split(" ").length;
var totalWords = numWords + headerWords;
var timeInMinutes = totalWords / 200;
var header = $("h1").text();
$("h1").text(header + " (it will take you " + timeInMinutes + " mins to read this article)");
 
Snímek obrazovky článku anglické Wikipedie zobrazující čas čtení.

Gadgets jsou uživatelsky vytvořená přizpůsobení, která jsou k dispozici pro instalaci na wiki prostřednictvím Gadgets MediaWiki rozšíření. Mnoho gadgetů vzniklo jako uživatelské skripty, které se staly široce používanými na jejich domácí wiki, a administrátoři chtěli, aby je každý snáze našel a použil. Správci mohou nakonfigurovat, které miniaplikace jsou ve výchozím nastavení dostupné a povolené pro celý web MediaWiki nebo vzhled.

Příklad gadgetu: Pomozte editorům kategorizovat obsah

HotCat pomáhá uživatelům snadno odstraňovat, měnit a přidávat kategorie na stránky Wikipedie.

Obsahuje seznam návrhů, který navrhuje existující kategorie pro automatické dokončování.

 
Snímek obrazovky funkce HotCat na francouzské Wikipedii.
Příklad gadgetu: Pomozte moderátorům opravit obsah

Tento gadget nasazený na perské Wikipedii pomáhá moderátorům obsahu opravit arabská písmena, gramatiku, čísla, adresy URL, strukturu článků a další.

 
Snímek obrazovky JavaScriptu gadgetu z perské Wikipedie.

Chcete-li se dozvědět více o uživatelských skriptech a miniaplikacích, navštivte Gadget kitchen .

Vytvářejte nástroje a roboty, které pomáhají projektům Wikimedie

API MediaWiki poskytují přímý přístup k datům obsaženým v databázi MediaWiki. To zahrnuje obsah wiki, metadata, analytická data a další. Tato rozhraní API můžete použít k vytváření aplikací, které přispívají obsahem nebo novými funkcemi do ekosystému Wikimedie. Moduly API poskytují programový přístup k mnoha stejným funkcím, které poskytuje webové rozhraní MediaWiki.

Roboti

Bots jsou automatické programy, které pomáhají wiki projektům tím, že dělají zásadní, ale opakující se úkoly. Roboti šetří lidské úsilí tím, že opravují chybějící nebo nadbytečné mezery, navrhují články nováčkům, opravují nefunkční odkazy a další. Automatizace robotů podporuje dobrovolníky Wikimedie tím, že jim umožňuje trávit více času úkoly, které vyžadují lidskou inteligenci, jako je psaní článků, hledání zdrojů, ověřování faktů a syntéza různých úhlů pohledu.

Příklad robota: Útočný odkaz rot
 
InternetArchiveBot (IABot) je pokročilý robot, který identifikuje a nahrazuje nefunkční externí odkazy.

Rovněž doplňuje referenční šablony a v případě potřeby přidává odkazy na zdroje.

Tento robot je provozován jako služba internetového archivu ve spolupráci s komunitou Wikimedie.

Od října 2022 běží IABot na více než 150 wikinách Wikimedie.

IABot má také rozhraní založené na prohlížeči (webovou aplikaci), které poskytuje snadný přístup k některým službám a konfiguraci robota.

Roboti mohou žádat o stránky a odesílat úpravy na wikiny, stejně jako lidští uživatelé dělají stejné úkoly ve webovém prohlížeči. Protože roboti přistupují ke stránkám stejným způsobem jako lidé, mohou se dostat do konfliktů úprav, mít časové limity stránky nebo narazit na jiné neočekávané komplikace při vyžádání stránek nebo provádění úprav. Vzhledem k tomu, že roboti obecně vykonávají práci s velkým objemem, měli byste tyto situace zvážit při psaní robota.

Chcete-li se dozvědět více o robotech, navštivte Manual:Creating a bot .

Nástroje

Nástroje jsou softwarové aplikace, které pomáhají lidem pracujícím na projektech Wikimedie. Nástroje dokážou provádět nejrůznější úkoly, například pomáhají editorům objevovat obsah ke zlepšení, zjednodušují plánování úprav, vizualizují obsah wiki, pomáhají bojovat proti vandalismu a mnoho dalšího.

Příklad nástroje: Vylepšení obrázků

CropTool je nástroj MediaWiki pro ořezávání obrázků na Wikimedia Commons a dalších stránkách Wikimedie.

Podporuje soubory JPEG, PNG, TIFF a (animované) GIF a může také extrahovat jednotlivé stránky ze souborů DJVU a PDF jako JPEG pro oříznutí.

 
Snímek obrazovky položky nabídky CropTool na wiki.

MediaWiki Action API vám poskytuje programový přístup k obsahu na libovolné wiki Wikimedie. Pomocí Action API můžete vyhledávat a zobrazovat wiki stránky, získávat mediální soubory, upravovat stránky a spravovat wikiny. Klientské knihovny implementující MediaWiki API jsou dostupné v mnoha jazycích, včetně Pythonu a JavaScriptu.

Příklad nástroje: Propojte články Wikipedie a položky Wikidata

Nástroj Duplicity vybere náhodný článek wiki, který nemá přidruženou položku Wikidata, a nabízí některé možné shody na Wikidatech.

Usnadňuje přidávání strukturovaných dat k zachycení témat, konceptů nebo entit probíraných v článku.

 
Snímek obrazovky rozhraní Duplicity tool.

Chcete-li prozkoumat další nástroje Wikimedie, navštivte Toolhub. Or, learn about hosting your tools and bots for free on Toolforge.

Připojte se k technické komunitě Wikimedie

Skvělý způsob, jak najít způsoby, jak přispět, je připojit se k technické komunitě. Můžete se setkávat s lidmi a diskutovat o vývojové práci na různých komunikačních kanálech a na akcích jako Hackathony. Wikimedia Foundation také nabízí outreach programy pro mentorování nových vývojářů.

 
Účastníci Wikimedia Hackathonu v Praze, 2019.

Začněte jako nový přispěvatel

  • Navštivte stránku nových vývojářů, kde se dozvíte více o tom, jak začít s vývojem a přispívat do open source Wikimedie.
  • Použijte Developer Portal k nalezení zdrojů a výukových programů pro vaši oblast zájmu.