Extension:SyntaxHighlight/cs

Toto rozšíření je součástí MediaWiki 1.21 a vyšší. To znamená, že jej nemusíte stahovat samostatně. Musíte se nicméně stále řídit pokyny k jeho použití.
Category:Extensions bundled with MediaWiki 1.21/cs
Pro zvýraznění syntaxe v editorech wikitextu, jako je zdrojový editor, abyste si usnadnili úpravy, se podívejte na rozšíření CodeMirror nebo uživatelské skripty Pamatujte na tečku a Cacycle.
Category:GPL licensed extensions/cs
Příručka k rozšířením MediaWiki
SyntaxHighlight
Stav rozšíření: stabilníCategory:Stable extensions/cs
Implementace Značka Category:Tag extensions/cs
Popis Umožňuje zvýraznění syntaxe zdrojového kódu na stránkách wiki
Autoři
Nejnovější verze průběžné aktualizace
Zásady kompatibility Větev master zachovává zpětnou kompatibilitu.
MediaWiki 1.25+Category:Extensions with manual MediaWiki version
Změny v databázi Ne
Licence GNU General Public License 2.0 nebo novější
Stáhnout Category:Extensions in Wikimedia version control/cs
README
  • $wgPygmentizePath
  • $wgSyntaxHighlightMaxLines
  • $wgSyntaxHighlightMaxBytes
<syntaxhighlight>
Veřejné wiki používající rozšíření 11,760 (Ranked 8th)
Přeložte rozšíření SyntaxHighlight
Problémy Otevřené úkoly · Nahlásit chybu
Category:All extensions/cs

Rozšíření SyntaxHighlight, dříve známé jako SyntaxHighlight_GeSHi, poskytuje bohaté formátování zdrojového kódu pomocí tagu <syntaxhighlight>. Je spuštěn knihovnou Pygments a podporuje stovky různých programovacích jazyků a formátů souborů.

Stejně jako značky <pre> a <poem> se text vykresluje přesně tak, jak byl napsán, a zachovává veškeré prázdné místo.

Rozšíření SyntaxHighlight nefunguje na wiki instalacích hardened používajících Hardened-PHP kvůli nedostatku proc_open, shell_exec a dalších funkcí. Podívejte se na stránku T250763.

Tag <syntaxhighlight> se od verze 1.39 stal mocným za 5 000 nebo nějaké jiné extrémní množství tagů zvýraznění syntaxe na jedné stránce, jako například u Wikiknih. V extrémních případech zvyšte hodnotu časového limitu webového serveru v prostředích. (Podívejte se na stránku T316858.)

Použití

Po instalaci můžete na wiki stránkách používat značky "syntaxhighlight". Například,

def quick_sort(arr):
	less = []
	pivot_list = []
	more = []
	if len(arr) <= 1:
		return arr
	else:
		pass

je výsledkem následujícího označení wikitextu:

<syntaxhighlight lang="python" line>
def quick_sort(arr):
	less = []
	pivot_list = []
	more = []
	if len(arr) <= 1:
		return arr
	else:
		pass
</syntaxhighlight>

Ve starších verzích (před MediaWiki 1.16) rozšíření používalo značku <source>. Toto je stále podporováno, ale je zastaralé. Místo toho by měl být použit <syntaxhighlight>.

Styl

Pokud je zobrazený kód příliš velký, můžete jej upravit vložením následujícího do stránky MediaWiki:Common.css ve vaší wiki (vytvořte ji, pokud neexistuje):

/* CSS umístěné zde bude použito na všechny vzhledy */
.mw-highlight pre {
	font-size: 90%;
}

Zapouzdření bloků kódu do ohraničení lze provést vložením řádku jako border: 1px dashed blue; v sekci výše. Kontrolu nad rodinou písem lze také uplatnit vložením řádku jako font-family: "Courier New", monospace; do sekce výše.

Kategorie chyb zvýraznění syntaxe

Rozšíření přidává stránky, které mají špatný atribut lang ve značce <syntaxhighlight> do kategorie sledování. Klíč zprávy MediaWiki:syntaxhighlight-error-category určuje název kategorie. Na této wiki je to Category:Pages with syntax highlighting errors.

Nejčastější chybou, která vede k tomu, že stránky jsou označeny touto kategorií, je značka <syntaxhighlight> bez atributu lang, protože starší verze tohoto rozšíření podporovaly definici $wgSyntaxHighlightDefaultLang. Ty mohou být obvykle buď nahrazeny <pre> nebo lang="text" mohou být přidány ke značce.

Kategorie může být také přidána a obsah nebude zvýrazněn, pokud je více než 1000 řádků nebo více než 100 kB textu.[1]

Parametry

lang

Atribut lang="name" definuje, jaký lexer by měl být použit. Jazyk ovlivňuje, jak rozšíření zvýrazní zdrojový kód. Podrobnosti o podporovaných jazycích najdete v sekci #Supported languages.

def quick_sort(arr):
    less = []
<syntaxhighlight lang="python">
...
</syntaxhighlight>

Zadáním neplatného nebo neznámého názvu označíte stránku kategorií sledování. Podrobnosti naleznete v části #Syntax highlighting error category na této stránce.

line

Atribut line umožňuje čísla řádků.

def quick_sort(arr):
	less = []
<syntaxhighlight lang="python" line>
...
</syntaxhighlight>

start

Atribut start (v kombinaci s line) definuje číslo prvního řádku bloku kódu. Například line start="55" způsobí, že číslování řádků začne na 55.

def quick_sort(arr):
    less = []
<syntaxhighlight lang="python" line start="55">
...
</syntaxhighlight>
Verze MediaWiki:
1.36
Gerrit change 653142

Atribut linelinks (v kombinaci s line) přidává kotvy odkazů na každý řádek bloku kódu. Kliknutím na čísla řádků můžete získat odkaz, který zvýrazní vybraný řádek, a použít jej v interních a externích odkazech. Můžete také podržet ⇧ Shift a kliknout na jiné číslo řádku, abyste získali odkaz, který zvýrazní vybraný rozsah řádků (Od MediaWiki 1.42 change 1007640). Když je JavaScript deaktivován, lze vytvořit jednořádková zvýraznění a stávající přeskakovat na správné místo, zvýraznění však chybí. Zvýraznění rozsahu však vůbec nefungují, takže pokud je to smysluplné možné, zvažte použití jednořádkových zvýraznění pouze pro usnadnění. Hodnota atributu se používá jako předpona pro kotvy k rozlišení více bloků kódu na jedné stránce.

def quick_sort(arr):
	less = []
	pivot_list = []
	more = []
	if len(arr) <= 1:
		return arr
	else:
		pass

Kliknutím sem přeskočíte a zvýrazníte řádek 3 v bloku kódu výše. Kliknutím sem přejdete a zvýrazníte řádky 2–4 v bloku kódu výše.

<syntaxhighlight lang="python" line linelinks="example">
...
</syntaxhighlight>

[[#example-3|...]]
[[#example-2--example-4|...]]

highlight

Atribut highlight určuje jeden nebo více řádků, které by měly být označeny (zvýrazněním těchto řádků jinou barvou pozadí). Můžete zadat více čísel řádků oddělených čárkami (například highlight="1,4,8") nebo rozsahy pomocí dvou čísel řádků a pomlčky (například highlight="5-7").

Specifikace čísla řádků ignoruje jakékoli přečíslování zobrazených čísel řádků pomocí atributu start.
def quick_sort(arr):
    less = []
    pivot_list = []
    more = []
    if len(arr) <= 1:
        return arr

výsledkem je

<syntaxhighlight lang="python" line start="3" highlight="1,5-7">
...
</syntaxhighlight>

inline

Verze MediaWiki:
1.26

Atribut označuje, že zdrojový kód by měl být vložen jako součást odstavce (na rozdíl od vlastního bloku). Tato možnost je k dispozici od MediaWiki 1.26.

Použití parametru "enclose" je zastaralé. Pokud je nastaveno na "none", mělo by být nahrazeno inline. V opačném případě jej lze zcela odstranit.
Zalomení řádků se může vyskytnout v libovolné mezeře mezi úvodním a závěrečným tagem, pokud zdrojový kód není označen jako nerozbitný pomocí class="nowrap" (na těch wikinách, které to podporují; viz níže) nebo style="white-space:nowrap".

Například:

Následující lambda x: x * 2 je výraz lambda v Pythonu.

Výsledkem je:

Následující <syntaxhighlight lang="python" inline>lambda x: x * 2</syntaxhighlight> je [[w:Lambda (programming)|výraz lambda]] v Pythonu.

class

Když je použit inline, class="nowrap" (na těch wiki, které to podporují; ne na MediaWiki samotné) určuje, že zalomení řádků by se nemělo vyskytovat v mezerách v bloku kódu.

Například:

Bez class="nowrap":

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxlambda x: x * 2xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

S style="white-space:nowrap":

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxlambda x: x * 2xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

style

Atribut style umožňuje přímé zahrnutí atributů CSS. To je ekvivalentní uzavření bloku do tagu <div> (nikoli <span>). Atribut tab‑size nelze zadat tímto způsobem. Vyžaduje to uzavírací značku <span>, jak je popsáno níže v části Advanced.

Například:

def quick_sort(arr):
	less = []
	pivot_list = []
	more = []
	if len(arr) <= 1:
		return arr
	else:
		pass

Výsledkem je:

<syntaxhighlight lang="python" style="border: 3px dashed blue;">
def quick_sort(arr):
	less = []
	pivot_list = []
	more = []
	if len(arr) <= 1:
		return arr
	else:
		pass
</syntaxhighlight>

copy

Verze MediaWiki:
1.43

Atribut copy přidá odkaz na tlačítko, který po kliknutí zkopíruje obsah do schránky.

Tento atribut nelze použít společně s atributem inline. Pokud jsou zadány oba, copy bude ignorován.

Například:

def quick_sort(arr):
    less = []

Je výsledkem:

<syntaxhighlight lang="python" copy>
def quick_sort(arr):
    less = []
</syntaxhighlight>

Podporované jazyky

Pygments poskytuje podporu pro zvýrazňování syntaxe stovek počítačových jazyků a formátů souborů prostřednictvím různých "lexerů", které jsou součástí knihovny.

Ve většině případů je atribut lang=, který se má použít s tímto rozšířením, tvořen malými písmeny v názvu jazyka. Mnohé však mají aliasy nebo "krátká jména", jak se jim říká v dokumentaci Pygments; úplné podrobnosti viz "Available lexers".

Některé jazyky dříve podporované GeSHi byly namapovány na lexery Pygments. Podrobnosti viz SyntaxHighlightGeSHiCompat.php.

Pygments poskytuje lexer "wikitext" od dubna 2023. Ve starších verzích použijte místo toho "html+handlebars" nebo "moin".

Od ledna 2020 je úplný seznam jazyků podporovaných Pygments:

Programovací jazyky

  • ActionScript
  • Ada
  • Agda (včetně gramotných)
  • Alloy
  • AMPL
  • ANTLR
  • APL
  • AppleScript
  • Assembly (různé)
  • Asymptote
  • Augeas
  • AutoIt
  • Awk
  • BBC Basic
  • Befunge
  • BlitzBasic
  • Boa
  • Boo
  • Boogie
  • BrainFuck
  • C, C++ (vč. dialekty jako Arduino)
  • C#
  • Chapel
  • Charm++ CI
  • Cirru
  • Clay
  • Clean
  • Clojure
  • CoffeeScript
  • ColdFusion
  • Common Lisp
  • Component Pascal
  • Coq
  • Croc (MiniD)
  • Cryptol (včetně Literate Cryptol)
  • Crystal
  • Cypher
  • Cython
  • D
  • Dart
  • DCPU-16
  • Delphi
  • Dylan (včetně řídicího panelu)
  • Eiffel
  • Elm
  • Emacs Lisp
  • Email
  • Erlang (včetně shellové relace)
  • Ezhil
  • Factor
  • Fancy
  • Fantom
  • Fennel
  • FloScript
  • Forth
  • Fortran
  • FreeFEM++
  • F#
  • GAP
  • Gherkin (Cucumber)
  • GLSL shadery
  • Golo
  • Gosu
  • Groovy
  • Haskell (včetně Literate Haskell)
  • HLSL
  • HSpec
  • Hy
  • IDL
  • Idris (včetně Literate Idris)
  • Igor Pro
  • Io
  • Jags
  • Java
  • JavaScript
  • Jasmin
  • Jcl
  • Julia
  • Kotlin
  • Lasso (včetně šablonování)
  • Limbo
  • LiveScript
  • Logtalk
  • Logos
  • Lua
  • Mathematica
  • Matlab
  • Modelica
  • Modula-2
  • Monkey
  • Monte
  • MoonScript
  • Mosel
  • MuPad
  • NASM
  • Nemerle
  • NesC
  • NewLISP
  • Nimrod
  • Nit
  • Notmuch
  • NuSMV
  • Objective-C
  • Objective-J
  • Octave
  • OCaml
  • Opa
  • OpenCOBOL
  • ParaSail
  • Pawn
  • PHP
  • Perl 5
  • Pike
  • Pony
  • PovRay
  • PostScript
  • PowerShell
  • Praat
  • Prolog
  • Python (včetně konzolové relace a zpětného sledování)
  • QBasic
  • Racket
  • Raku a.k.a. Perl 6
  • REBOL
  • Red
  • Redcode
  • Rexx
  • Ride
  • Ruby (včetně irb relace)
  • Rust
  • S, S-Plus, R
  • Scala
  • Scdoc
  • Scheme
  • Scilab
  • SGF
  • Shell skripty (Bash, Tcsh, Fish)
  • Shen
  • Silver
  • Slash
  • Slurm
  • Smalltalk
  • SNOBOL
  • Snowball
  • Solidity
  • SourcePawn
  • Stan
  • Standard ML
  • Stata
  • Swift
  • Swig
  • SuperCollider
  • Tcl
  • Tera Term language
  • TypeScript
  • TypoScript
  • USD
  • Unicon
  • Urbiscript
  • Vala
  • VBScript
  • Verilog, SystemVerilog
  • VHDL
  • Visual Basic.NET
  • Visual FoxPro
  • Whiley
  • Xtend
  • XQuery
  • Zeek
  • Zephir
  • Zig

Jazyky šablon

  • Angular šablony
  • Cheetah šablony
  • ColdFusion
  • Django / Jinja šablony
  • ERB (Ruby šablony)
  • Evoque
  • Genshi (jazyk šablon Trac)
  • Handlebars
  • JSP (Java Server Pages)
  • Liquid
  • Myghty (the HTML::Mason základní rámec)
  • Mako (nástupce Myghty)
  • Slim
  • Smarty šablony (šablony PHP)
  • Tea
  • Twig

Jiná označení

  • Konfigurační soubory Apache
  • Apache Pig
  • BBCode
  • CapDL
  • Cap'n Proto
  • CMake
  • Csound scores
  • CSS
  • Řídicí soubory Debianu
  • Soubory Diff
  • Dockerfiles
  • DTD
  • EBNF
  • Záhlaví e-mailů
  • Extempore
  • Flatline
  • Gettext katalogy
  • Gnuplot skripty
  • Groff označení
  • Hexdumps
  • HTML
  • HTTP relace
  • IDL
  • Inform
  • INI-konfigurační soubory stylu
  • IRC protokoly (irssi styl)
  • Isabelle
  • Poznámky JSGF
  • JSON, JSON-LD
  • Lean theorem prover
  • Konfigurační soubory Lighttpd
  • Linux protokol jádra (dmesg)
  • LLVM montáž
  • LSL skripty
  • Makefiles
  • MoinMoin/Trac Wiki označení
  • MQL
  • MySQL
  • NCAR příkazový jazyk
  • Nginx konfigurační soubory
  • Nix jazyk
  • NSIS skripty
  • Notmuch
  • POV-Ray scény
  • Puppet
  • QML
  • Ragel
  • Redcode
  • ReST
  • Roboconf
  • Robot Framework
  • RPM speciální soubory
  • Rql
  • RSL
  • Scdoc
  • SPARQL
  • SQL, také MySQL, SQLite
  • Squid konfigurace
  • TADS 3
  • Terraform
  • TeX
  • Thrift
  • TOML
  • Treetop gramatiky
  • USD (Universal Scene Description)
  • Varnish konfigurace
  • VGL
  • Vim Script
  • WDiff
  • Windows dávkové soubory
  • XML
  • XSLT
  • YAML
  • Windows Soubory registru
Od MediaWiki 1.37 byly s aktualizací pygmentů na verzi 2.10.0 přidány další lexery, jak je podrobně popsáno v T280117.
  • ansys
  • apdl
  • asc
  • gcode
  • golang === go
  • gsql
  • jslt
  • julia-repl
  • kuin
  • meson
  • nestedtext
  • nodejsrepl
  • nt
  • omg-idl
  • output
  • pem
  • procfile
  • pwsh
  • smithy
  • teal
  • thingsdb
  • ti
  • wast
  • wat

Lexery dříve podporované GeSHi

Níže je uveden částečný seznam jazyků, které by GeSHi mohlo zvýraznit, s přeškrtnutím jazyků, které po přechodu na Pygments již nejsou podporovány.

Lexery dříve podporované GeSHi
Kód Jazyk
4csGADV 4CS
6502acmeMOS 6502 (6510) ACME Cross Assembler
6502kickassMOS 6502 (6510) Kick Assembler
6502tasmMOS 6502 (6510) TASM/64TASS
68000devpacMotorola 68000 - HiSoft Devpac ST 2 Assembler
abapABAP
actionscriptActionScript
actionscript3ActionScript3
adaAda
algol68ALGOL 68
apacheApache Configuration
applescriptAppleScript
apt_sourcesApt sources
armARM Assembler
asmAssembly
aspActive Server Pages (ASP)
asymptoteAsymptote
autoconfAutoconf
autohotkeyAutoHotkey
autoitAutoIt
avisynthAviSynth
awkAWK
bascomavrBASCOM AVR
bashBash
basic4glBasic4GL
bfBrainfuck
bibtexBibTeX
blitzbasicBlitz BASIC
bnfBackus–Naur Form
booBoo
cC
c_loadrunnerC Loadrunner
c_macC (Mac)
caddclAutoCAD DCL
cadlispAutoLISP
cfdgCFDG
cfmColdFusion Markup Language
chaiscriptChaiScript
cilCommon Intermediate Language (CIL)
clojureClojure
cmakeCMake
cobolCOBOL
coffeescriptCoffeeScript
cppC++
cpp-qtC++ (Qt toolkit)
cshC shell
csharpC#
cssCascading Style Sheets (CSS)
cuesheetCue sheet
dD
dartDart
dclData Control Language
dcpu16DCPU-16
dcsData Conversion System
delphiDelphi
diffDiff
divDIV
dosbatchDOS batch file
dotDOT
eE
ebnfExtended Backus–Naur Form
ecmascriptECMAScript
eiffelEiffel
emailEmail (mbox \ eml \ RFC format)
epcEnerscript
erlangErlang
euphoriaEuphoria
f1Formula One
falconFalcon
foFO
fortranFortran
freebasicFreeBASIC
freeswitchFreeSWITCH
fsharpFsharp
gambasGambas
gdbGDB
generoGenero
genieGenie
gettextgettext
glslOpenGL Shading Language (GLSL)
gmlGame Maker Language (GML)
gnuplotgnuplot
goGo
groovyGroovy
gwbasicGW-BASIC
haskellHaskell
haxeHaxe
hicestHicEst
hq9plusHQ9+
html4strictHTML (use "html" instead)
html5HTML5 (use "html" instead)
iconIcon
idlUno IDL
iniINI
innoInno
intercalINTERCAL
ioIo
jJ
javaJava
java5Java(TM) 2 Platform Standard Edition 5.0
javascriptJavaScript
jqueryjQuery
kixtartKiXtart
klonecKlone C
klonecppKlone C++
kotlinKotlin
kshKorn shell
latexLaTeX
lbLiberty BASIC
ldifLDAP Data Interchange Format
lispLisp
llvmLLVM
locobasicLocomotive BASIC
logtalkLogtalk
lolcodeLOLCODE
lotusformulasFormula language
lotusscriptLotusScript
lscriptLightWave 3D
lsl2Linden Scripting Language
luaLua
magiksfMagik
m68kMotorola 68000 Assembler
makemake
mapbasicMapBasic
matlabMATLAB M
mircmIRC scripting language
mmixMMIX
modula2Modula-2
modula3Modula-3
mpasmMicrochip Assembler
mxmlMXML
mysqlMySQL
nagiosNagios
netrexxNetRexx
newlispNewLISP
nsisNullsoft Scriptable Install System (NSIS)
oberon2Oberon-2
objcObjective-C
objeckObjeck
ocamlOCaml
ocaml-briefOCaml
octaveOctave
oobasLibreOffice/OpenOffice.org Basic
oorexxObject REXX
oracle11Oracle 11 SQL
oracle8Oracle 8 SQL
oxygeneOxygene
ozOz
parasailParaSail
parigpPARI/GP
pascalPascal
pcrePerl Compatible Regular Expressions
perper
perlpl
Perl
perl6
pl6
raku
Perl 6
pfPF
phpPHP
php-briefPHP (deprecated no colors, odd framing)
pic16PIC assembly language
pikePike
pixelbenderPixel Bender
pliPL/I
plsqlPL/SQL
postgresqlPostgreSQL
postscriptPostScript
povrayPersistence of Vision Raytracer
powerbuilderPowerBuilder
powershellWindows PowerShell
proftpdProFTPD
progressOpenEdge Advanced Business Language
prologProlog
propertiesProperties file
providexProvideX
purebasicPureBasic
pyconPython
pys60PyS60
python
py
python3
py3
Python
python2
py2
Python 2
qQ
qbasicQBasic/QuickBASIC
railsRails
rebolRebol
regWindows Registry
rexxRexx
robotsrobots.txt
rpmspecRPM Spec files
rsplusR
rubyRuby
sasSAS
scalaScala
schemeScheme
sh
shell
shell-session
Shell Script (POSIX)
scilabScilab
sdlbasicSdlBasic
smalltalkSmalltalk
smartySmarty
sparkSPARK
sparqlSPARQL
sqlSQL
stonescriptStoneScript (Scripting language for ShiVa3D)
systemverilogSystemVerilog
tcshTcsh
tclTcl
teratermTera Term
textPlain text
thinbasicthinBasic
tsTypeScript
tsqlTransact-SQL
typoscriptTypoScript
uniconUnicon
upcUnified Parallel C
urbiURBI
uscriptUnrealScript
valaVala
vbVisual Basic
vbnetVisual Basic .NET
veditVEDIT
verilogVerilog
vhdlVHDL
vimVim script
visualfoxproVisual FoxPro
visualprologVisual Prolog
whitespaceWhitespace
whoisWhois
winbatchWinbatch
xmlXML
xorg_confXorg.conf
yamlYAML
xppMicrosoft Dynamics AX
z80ZiLOG Z80 Assembler
zxbasicZXBasic

Instalace

Verze tohoto rozšíření dodávaná s MediaWiki 1.31 vyžaduje instalaci Python verze 3 (python3) na server. Toto je změna oproti verzi dodávané s MediaWiki 1.30, která používala Python verze 2 (python). Všimněte si, že binární soubor python3 musí být nainstalován ve spouštěcí PATH interpretu PHP.
Navzdory své aktualizaci na Pygments (a pryč od GeSHi) a navzdory svému aktualizovanému názvu toto rozšíření interně stále používá dřívější názvy souborů, jak je uvedeno níže.
  • Stáhněte soubor/y a vložte je do adresáře pojmenovaného SyntaxHighlight_GeSHi ve vaší složce extensions/.
    Vývojáři a přispěvatelé kódu by si místo toho měli nainstalovat rozšíření from Git pomocí:cd extensions/
    git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/SyntaxHighlight_GeSHi
  • Při instalaci z Gitu spusťte Composer pro instalaci závislostí PHP zadáním composer install --no-dev v adresáři rozšíření. (Vyskytnou-li se nějaké komplikace, podívejte se na T173141.)Category:Extensions requiring Composer with git/cs
  • Na konec vašeho souboru LocalSettings.php přidejte následující kód:
    wfLoadExtension( 'SyntaxHighlight_GeSHi' );
    
  • V Linuxu nastavte oprávnění ke spuštění pro binární soubor pygmentize. K tomu můžete použít FTP klienta nebo následující příkaz shellu:
chmod a+x /path/to/extensions/SyntaxHighlight_GeSHi/pygments/pygmentize
  • Yes Dokončeno – Přejděte na stránku Special:Version vaší wiki a zkontrolujte, zda bylo rozšíření úspěšně nainstalováno.


Instalace Vagrant:

  • Pokud používáte Vagrant , instalujte s těmito parametry vagrant roles enable syntaxhighlight --provision
Při instalaci z Git mějte na paměti, že počínaje MediaWiki 1.26 a konče MediaWiki 1.31 toto rozšíření vyžaduje Composer.

Takže po instalaci z Git přejděte do adresáře obsahujícího příponu, např. $adresář a spusťte composer install --no-dev, nebo při aktualizaci: composer update --no-dev.

Alternativně a nejlépe přidejte řádek "extensions/SyntaxHighlight_GeSHi/composer.json" do souboru "composer.local.json" v kořenovém adresáři vaší wiki, jako např.
{
	"extra": {
		"merge-plugin": {
			"include": [
				"extensions/SyntaxHighlight_GeSHi/composer.json"
			]
		}
	}
}
Nyní spusťte composer update --no-dev. Voilà!
Varování Varování: Při nahrávání rozšíření přes FTP nezapomeňte nahrát soubor pygments/pygmentize s typem přenosu binary.

Konfigurace

$wgSyntaxHighlightMaxLines and $wgSyntaxHighlightMaxBytes (optional): For performance reasons, blobs or pages (JS, Lua and CSS pages) larger than these values will not be highlighted. (since 1.40)

Linux
  • $wgPygmentizePath (volitelné): Absolutní cesta k pygmentize balíčku Pygments. Rozšíření standardně sdružuje balíček Pygments a $wgPygmentizePath ukazuje na přibalenou verzi, ale pokud chcete, můžete ukázat na jinou verzi. Například: $wgPygmentizePath = "/usr/local/bin/pygmentize";.
Windows
  • Pokud hostujete MediaWiki na počítači s Windows, musíte nastavit cestu pro $wgPygmentizePath = "c:\\Python27\\Scripts\\pygmentize.exe"; Pygmentize.exe
    • Pokud neexistuje pygmentize.exe, spusťte easy_install Pygments z příkazového řádku ve složce Scripts a vygenerujte soubor.

Pokud používáte přibalenou binárku pygmentize (extensions/SyntaxHighlight_GeSHi/pygments/pygmentize), ujistěte se, že váš webový server má oprávnění ji spustit. Pokud vám váš hostitel neumožňuje přidávat spustitelné soubory do vašeho webového adresáře, nainstalujte python-pygments a přidejte $wgPygmentizePath = pygmentize do LocalSettings.php.

Odstraňování problémů

Po aktualizaci na MediaWiki v1.26 a vyšší začali někteří uživatelé hlásit problémy s rozšířením. Mohou nastat případy, kdy některé jazyky, jako například Lua nemusí být zvýrazněny, a zapnutím debugging MediaWiki vyhodí chybu Notice: Failed to invoke Pygments: /usr/bin/env: python3: No such file or directory.

  • Zkuste nasměrovat $wgPygmentizePath v LocalSettings.php na externí pygmentize binární soubor.
  • V prostředích sdíleného hostování s cPanel to lze provést nastavením nové aplikace Python prostřednictvím nabídky "Setup Python App" a aktivací virtuálního prostředí pro aplikaci prostřednictvím SSH (source /virtualenv/python/3.5/bin/activate). Poté lze do aplikace Python přidat modul Pygments [modul https://clients.temok.com/knowledgebase.php?action=displayarticle&id=524], pro který přejděte na cestu virtuálního prostředí (cd virtualenv/python/3.5/bin/), stáhněte si a nainstalujte Pygments (./pip install Pygments) a poté modul aktivujte přidáním "Pygments" pod "Stávající aplikace" v nabídce "Nastavení aplikace Python". Tím se vytvoří požadovaný soubor na cestě: virtualenv/python/3.5/bin/pygmentize
  • Další návrhy a informace naleznete na této stránce phab:T128993.
  • SELinux může také zabránit spuštění rozšíření s chybou podobnou type=AVC msg=audit(1609598265.169:225924): avc: denied { execute } for pid=2360888 comm="bash" name="pygmentize" dev="dm-0" ino=50814399 scontext=system_u:system_r:httpd_t:s0 tcontext=unconfined_u:object_r:httpd_user_content_t:s0 tclass=file permissive=0 ve vašich audit.log. To lze povolit s setsebool -P httpd_unified 1
  • V dřívějších verzích tohoto rozšíření Windows někdy selhal s chybou _Py_HashRandomization_Init. Toto byla chyba s prostředím Windows, které nebylo předáno spouštění pythonu. Oprava byla vydána v 1.40 se zpětnými porty na 1.38 a 1.39.

Integrace VisualEditoru

Plugin umožňuje přímé úpravy pomocí VisualEditoru. Když chce uživatel upravit sekce syntaxhighlight, otevře se vyskakovací okno. Aby to fungovalo, musí být VisualEditor nainstalován a nakonfigurován z nejnovější verze Git, stejně jako Parsoid. Tato funkce nemusí fungovat se staršími verzemi Parsoid. Další podrobnosti najdete na stránce Extension:SyntaxHighlight/VisualEditor.

Pokročilé

Na rozdíl od značek <pre> a <code> znakové entity HTML jako &nbsp; nemusí (a neměly by) mít znak & uvozený jako &amp; . Stejně jako u tagu <pre>, ale na rozdíl od tagu <code>, tagy v rozsahu (jiné než jeho vlastní uzavírací tag) nemusí mít symbol < escapován jako &lt;, ani wikitext nemusí být escapován tagem <nowiki>.

Kromě toho, zatímco <pre> předpokládá zarážky tabulátoru každých 8 znaků a vykresluje tabulátory pomocí skutečných mezer při kopírování vykresleného textu, <syntaxhighlight> používá zarážky tabulátoru se 4 mezerami (kromě Internet Exploreru, který používá 8) a zachovává znaky tabulátoru ve vykresleném textu. Druhý jmenovaný lze změnit pomocí uzavíracího tagu <span style="-moz-tab-size: nn; -o-tab-size: nn; tab-size: nn;"> (nikoli <div> a bez použití vlastního atributu style). Předpona -moz- je vyžadována pro Firefox (od verze 4.0 do verze 90) a předpona -o- je vyžadována pro Opera (od verze 10.60 do verze 15).[2] (Všimněte si, že editační pole wiki předpokládá tabulátory s 8 mezerami.) To platí pouze pro skutečně uložené stránky. Náhledy generované pomocí editačního pole nebo Special:ExpandTemplates se mohou lišit.

Související odkazy

Poznámky pod čarou

Category:Extensions used on Wikimedia/cs#SyntaxHighlight/cs Category:Syntax highlighting extensions/cs Category:GeSHi extensions/cs Category:Extensions with VisualEditor support/cs
Category:All extensions/cs Category:ApiFormatHighlight extensions/cs Category:ContentAlterParserOutput extensions/cs Category:Extensions available as Debian packages/cs Category:Extensions bundled with MediaWiki 1.21/cs Category:Extensions in Wikimedia version control/cs Category:Extensions included in BlueSpice/cs Category:Extensions included in Canasta/cs Category:Extensions included in Fandom/cs Category:Extensions included in Miraheze/cs Category:Extensions included in MyWikis/cs Category:Extensions included in ProWiki/cs Category:Extensions included in ShoutWiki/cs Category:Extensions included in WikiForge/cs Category:Extensions included in semantic::core/cs Category:Extensions included in wiki.gg/cs Category:Extensions requiring Composer with git/cs Category:Extensions used on Wikimedia/cs Category:Extensions with VisualEditor support/cs Category:Extensions with manual MediaWiki version Category:GPL licensed extensions/cs Category:GeSHi extensions/cs Category:ParserFirstCallInit extensions/cs Category:ResourceLoaderRegisterModules extensions/cs Category:SoftwareInfo extensions/cs Category:Stable extensions/cs Category:Syntax highlighting extensions/cs Category:Tag extensions/cs