Implementace syntax highlighting do MediaWiki CMS. Software pro provozování wikipedie je svobodný software s otevřeným zdrojovým kódem. Byl vyvinut pro použití ve Wikipedii v roce 2002 a v roce 2003 dostal název „MediaWiki“. Nadále se používá na Wikipedii a téměř na všech dalších webových stránkách Wikimedia, včetně Wikislovníku, Wikimedia Commons a Wikidata; tyto stránky nadále definují velkou část souboru požadavků na MediaWiki.
MediaWiki původně vyvinul Magnus Manske a vylepšil ji Lee Daniel Crocker. Její vývoj od té doby koordinuje nadace Wikimedia Foundation. MediaWiki je napsána v programovacím jazyce PHP a veškerý textový obsah ukládá do databáze. Software je optimalizován pro efektivní zpracování velkých projektů, které mohou mít terabajty obsahu a stovky tisíc zobrazení za sekundu.
Obsah
Syntax highlighting
Zvýrazňování syntaxe je funkce textových editorů, které se používají pro programovací, skriptovací nebo značkovací jazyky, jako je HTML. Tato funkce zobrazuje text, zejména zdrojový kód, různými barvami a písmy podle kategorie výrazů. Tato funkce usnadňuje psaní ve strukturovaném jazyce, jako je programovací jazyk nebo značkovací jazyk, protože struktury i syntaktické chyby jsou vizuálně odlišeny. Tato vlastnost se také používá v mnoha kontextech souvisejících s programováním (například v příručkách k programování), ať už ve formě barevných knih nebo internetových stránek, aby čtenářům usnadnila pochopení útržků kódu. Zvýraznění neovlivňuje význam samotného textu; je určeno pouze pro lidské čtenáře.
Zvýrazňování syntaxe je formou sekundárního zápisu, protože zvýraznění není součástí významu textu, ale slouží k jeho posílení. Některé editory také integrují zvýrazňování syntaxe s dalšími funkcemi, jako je kontrola pravopisu nebo skládání kódu, jako pomůcky pro editaci, které jsou mimo jazyk.
Mediawiki od verze 1.24 integruje řadu vynovených užitečných rozšíření. Seznam rozšíření pro Mediawiki CMS je na konci konfiguračního souboru LocalSettings.php. Vetšina rozšíření je odkomentovaná, to ale automaticky neznamená, že fungují.
# Enabled extensions. Most of the extensions are enabled by adding # wfLoadExtension( 'ExtensionName' ); # to LocalSettings.php. Check specific extension documentation for more details. # The following extensions were automatically enabled: wfLoadExtension( 'CategoryTree' ); wfLoadExtension( 'Cite' ); wfLoadExtension( 'CiteThisPage' ); wfLoadExtension( 'ConfirmEdit' ); wfLoadExtension( 'Gadgets' ); wfLoadExtension( 'ImageMap' ); wfLoadExtension( 'InputBox' ); wfLoadExtension( 'LocalisationUpdate' ); wfLoadExtension( 'MultimediaViewer' ); ##wfLoadExtension( 'OATHAuth' ); wfLoadExtension( 'PageImages' ); wfLoadExtension( 'ParserFunctions' ); wfLoadExtension( 'PdfHandler' ); wfLoadExtension( 'Poem' ); wfLoadExtension( 'ReplaceText' ); wfLoadExtension( 'Scribunto' ); wfLoadExtension( 'SecureLinkFixer' ); wfLoadExtension( 'SpamBlacklist' ); wfLoadExtension( 'SyntaxHighlight_GeSHi' ); wfLoadExtension( 'TemplateData' ); wfLoadExtension( 'TextExtracts' ); wfLoadExtension( 'TitleBlacklist' ); wfLoadExtension( 'WikiEditor' ); wfLoadExtension( 'AutoSitemap' ); #wfLoadExtension( 'VisualEditor' ); #wfLoadExtension( 'Renameuser' );
Jak postupovat v případě, že je rozšíření Mediawiki odkomentováno ale Syntax highlighting zdrojového kódu nefunguje? Nejpravděpodobnejší příčinou bude chybějící python balíček pygmentize. Prověříme pomocí dpkg
user@stan:/# dpkg -s pygmentize dpkg-query: package 'pygmentize' is not installed and no information is available Use dpkg --info (= dpkg-deb --info) to examine archive files.
Pro případ vyloučení chyby lze s dpkg použít divokou kartu (wildcard)
user@stan:/var/www/vintique.cz/web/wp-content/uploads# dpkg -l '*pygm*' dpkg-query: no packages found matching *pygm*
Python balíček pygmentize na serveru nstalovany není, nainstalujeme jej tedy
Mrkneme co správce balíčků na Debian / Ubuntu apt přidal na servru do operačního systému
user@stan:/# dpkg -l '*pygm*' Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad) ||/ Name Version Architecture Description +++-===================-====================-============-============================================= ii python-pygments 2.3.1+dfsg-1+deb10u2 all syntax highlighting package written in Python un python-pygments-doc <none> <none> (no description available) un python3-pygments <none> <none> (no description available)
Ověříme výsledek v mediawiki rozhraní přidáním kódu v tagu syntaxhighlight
<syntaxhighlight lang="python"> def quick_sort(arr): less = [] pivot_list = [] more = [] if len(arr) <= 1: return arr else: pass </syntaxhighlight>
Vizualizace

Funguje. Tag syntaxhighlight umožňuje vkládat rovněž další styly či atributy, pomocí standardních CSS tříd..
Užitečné
Domovská stránka Mediawiki.
Text Apache HTTP server.