Syntaxhighlight („Syntaxhervorhebung“) ist eine Erweiterung der MediaWiki-Software zur Darstellung von Programm-Quelltexten auf Wiki-Seiten. Die Quelltexte
Syntaxhighlight („Syntaxhervorhebung“) ist eine Erweiterung der MediaWiki-Software zur Darstellung von Programm-Quelltexten auf Wiki-Seiten. Die Quelltexte werden ihrer Syntax entsprechend farblich dargestellt.[1] Im Dunkelmodus werden stark abweichende Farben angezeigt (Beispiel: diese Hilfeseite).
Basis-Syntax zur Erstellung von Quelltexten:
<syntaxhighlight lang="php">
<?php
echo "Hallo Welt!";
?>
</syntaxhighlight>
Ausgabe:
<?php
echo "Hallo Welt!";
?>
Hinzu kommt die Angabe optionaler Parameter.
<syntaxhighlight lang="">
</syntaxhighlight>
Zunächst hatte das Element <source> geheißen; bis 2009 war dies das bevorzugte Tag. Nachdem in HTML5 ein Multimedia-Element gleichen Namens eingeführt worden war, wurde die Präferenz getauscht. Weil <source> im dargestellten HTML-Beispiel vorkommen könnte, sollte nur noch das kollisionsfreie <syntaxhighlight> verwendet werden. Die deutschsprachige Wikipedia hat <source> seit Jahren eliminiert. Inzwischen ist dieses Element vollständig weggefallen, eine fälschliche Verwendung wird in eine Wartungskategorie eingetragen.
Wikisyntax: <tag>
Die Schreibrichtung des Codes ist immer explizit von links nach rechts, auch wenn eingebunden in einen Textbereich, der von rechts nach links (englisch: right to left, RTL) schreibt.
Die Angabe von lang ist Pflichtparameter. Optional gibt es außerdem:
inline<syntaxhighlight lang="css" inline>
table {display:none;} inline dargestellt werden kann.“highlight<syntaxhighlight lang="php" highlight="1,3-5,8" line>
<?php
echo "Hallo Welt!";
echo "Hallo Welt!";
echo "Hallo Welt!";
echo "Hallo Welt!";
echo "Hallo Welt!";
echo "Hallo Welt!";
?>
line<syntaxhighlight lang="php" line>
<?php
echo "Hallo Welt!";
echo "Hallo Welt!";
echo "Hallo Welt!";
echo "Hallo Welt!";
echo "Hallo Welt!";
echo "Hallo Welt!";
?>
Die GeSHi-Funktionalität, jede fünfte Zeilennummer hervorzuheben, war 2016 noch nicht wiederhergestellt worden.
start<syntaxhighlight lang="php" start="10" line highlight="2">
<?php
echo "Hallo Welt!";
?>
Kann gemeinsam mit highlight verwendet werden, jedoch wird die erste sichtbare Zeile als highlight=1 gezählt unabhängig von der start-Nummerierung.
copy<syntaxhighlight lang="php" copy>
<?php
echo "Hallo Welt!";
?>
style<syntaxhighlight style="margin-left: 6em;" lang="html">6em einzurücken:<syntaxhighlight style="margin-left: 6em;" lang="html">
enclose<syntaxhighlight enclose="none" lang="css">enclose="none" gerade dem inline entsprach.enclose= konnte früher noch weitere Werte annehmen (etwa "div"), die heute keine Bedeutung mehr haben.strictstrict="1" konnte die zugrundeliegende Software angewiesen werden, die Programmiersprache standardgemäß auszulegen, falls dafür eine gesonderte Definition verfügbar ist. Unter Pygments ist dies aber vermutlich nicht mehr wirksam.Die folgenden Sprachen werden von dieser Erweiterung unterstützt (Auszug):[2][3]
| Code | Sprache |
|---|---|
abap
|
ABAP |
abnf
|
ABNF |
actionscript as
|
ActionScript |
actionscript3 as3
|
ActionScript3 |
ada ada95 ada2005
|
Ada |
amdgpu
|
Amdgpu * pygments |
androidbp bp soong
|
Soong |
antlr
|
ANTLR |
antlr-actionscript antlr-as
|
AntlrActionScript * pygments |
apache apacheconf aconf
|
Apache Configuration |
applescript
|
AppleScript |
arturo art
|
Arturo |
asm gas
|
Assembler (Gas) |
aspx-vb
|
Active Server Pages (ASP für Visual Basic) |
asymptote asy
|
Asymptote |
autohotkey ahk
|
AutoHotkey |
autoit
|
AutoIt |
awk gawk mawk nawk
|
AWK |
basic4gl
|
Basic4GL (Basic4GL [en]) |
bat dosbatch winbatch batch
|
Batch (Winbatch [en]) * pygments |
bbcode
|
BBCode |
bdd
|
BDD |
befunge
|
Befunge |
berry be
|
Berry |
bf brainfuck
|
Brainfuck |
bibtex
|
BibTeX |
blitzbasic b3d bplus
|
Blitz BASIC |
bnf
|
Backus-Naur-Form * pygments |
boo
|
Boo |
c
|
C |
cadlisp
|
AutoLISP |
carbon
|
Carbon |
cddl
|
Cddl * pygments |
cfm
|
Coldfusion Markup |
chaiscript chai
|
ChaiScript (ChaiScript [en]) |
chapel chpl
|
Chapel (Chapel (programming language) [en]) |
clean
|
Clean |
clojure clj
|
Clojure |
clojurescript cljs
|
ClojureScript |
cmake
|
CMake |
cobol
|
COBOL |
comal comal80
|
COMAL |
coffeescript coffee-script coffee
|
CoffeeScript |
control debcontrol
|
DebianControl |
coq
|
Coq |
cplint
|
Cplint * pygments |
cpp c++
|
C++ |
cpp-qt
|
Qt-Bibliothek |
cryptol cry
|
Cryptol (Cryptol [en]) |
csharp c#
|
CSharp (C#) * pygments |
css
|
Cascading Style Sheets (CSS) |
cython pyx pyrex
|
Cython |
d
|
D |
dart
|
Dart |
dax
|
Dax * pygments |
dcpu16
|
DCPU-16 (0x10c [en]) |
delphi pas pascal objectpascal
|
Delphi * pygments |
devicetree dts
|
Devicetree (Devicetree [en]) |
diff udiff
|
Diff |
dot graphviz
|
DOT |
dtd
|
DTD |
dylan
|
Dylan |
dylan-console dylan-repl
|
Dylan-Console * pygments |
ebnf
|
Extended Backus–Naur Form |
eiffel
|
Eiffel |
elpi
|
Elpi * pygments |
emacs elisp emacs-lisp
|
Emacs Lisp |
email eml
|
E-mail (RFC-Format) * pygments |
erb
|
ERB |
erlang
|
Erlang |
ezhil
|
Ezhil (Ezhil (programming language) [en]) |
factor
|
Factor |
fancy fy
|
Fancy (Ruby) * pygments |
fift fif
|
Fift * pygments |
fortran
|
Fortran |
freefem
|
FreeFem++ (FreeFem++ [en]) |
fsharp
|
F-Sharp |
fstar
|
Fstar (F* (programming language) [en]) |
func fc
|
FunC * pygments |
futhark
|
Futhark (Futhark (programming language) [en]) |
gap
|
GAP |
gap-console gap-repl
|
GAPConsole * pygments |
gdscript gd
|
GDScript |
genshi kid xml+genshi xml+kid
|
Genshi (Genshi (templating language) [en]) |
gherkin cucumber
|
Gherkin (Ruby) |
glsl
|
GLShader |
gnuplot
|
gnuplot |
go
|
Go |
groff nroff man
|
Groff |
groovy
|
Groovy |
handlebars
|
Handlebars |
haskell hs
|
Haskell |
haxe hx hxsl
|
Haxe |
hexdump
|
Hexdump * pygments |
html
|
Hypertext Markup Language (HTML) |
http
|
HTTP |
icon
|
Icon (icon (programming language) [en]) |
ini cfg dosini
|
INI (Datei) |
io
|
Io |
irc
|
IRC |
isabelle
|
Isabelle |
j
|
J |
java
|
Java |
javascript js
|
JavaScript |
jmespath jp
|
Jmespath * pygments |
json
|
JSON |
jsonld json-ld
|
JSON-LD |
jsonnet
|
Jsonnet * pygments |
jsp
|
Jsp |
k
|
K * pygments |
kotlin
|
Kotlin |
latex tex
|
LaTeX (TeX) |
lean lean3
|
Lean 3 |
lean4
|
Lean 4 |
lighttpd lighty
|
Lighttpd (Conf) |
lilypond
|
LilyPond |
lisp common-lisp cl
|
CommonLisp |
llvm
|
LLVM |
logtalk
|
Logtalk (Logtalk [en]) |
lsl
|
Linden Scripting Language |
lua
|
Lua * pygments |
m68k
|
Motorola 68000 |
make makefile mf bsdmake
|
Makefile |
mako
|
Mako (Mako (template engine) [en]) |
mapbasic
|
MapBasic |
markdown md
|
Markdown |
matlab
|
MATLAB (M) |
matlabsession
|
MatlabSession |
mathematica nb mma
|
Mathematica |
maxima
|
Maxima |
minid
|
MiniD |
modelica
|
Modelica |
modula2 m2
|
Modula-2 * pygments |
moin trac-wiki
|
Moin Wiki |
mojo
|
Mojo (Mojo (programming language) [en]) |
mpasm
|
PICmicro (Asm) |
msc mscgen
|
MSC |
mupad
|
MuPad |
mxml
|
MXML (MXML [en]) |
myghty
|
Myghty (Pylons project#templating [en]) |
mysql
|
MySQL |
nemerle
|
Nemerle (Nemerle [en]) |
netrexx
|
NetRexx (NetRexx [en]) |
newlisp
|
NewLISP |
newspeak
|
Newspeak (Newspeak (programming language) [en]) |
nginx
|
Nginx (Konfig.) |
nimrod nim
|
Nimrod (Nimrod (distributed computing) [en]) |
nsis nsi nsh
|
Nullsoft Scriptable Install System (NSIS) |
numpy
|
NumPy (NumPy [en]) |
objc obj-c objective-c objectivec
|
Objective-C |
objj obj-j objective-j objectivej
|
Objective-J (Objective-J [en]) |
ocaml ocaml-brief
|
OCaml |
octave
|
Octave |
oorexx
|
Object REXX (Object REXX [en]) |
openedge progress abl
|
OpenEdge (Progress) |
org org-mode orgmode
|
org-mode |
parasail
|
ParaSail (ParaSail (programming language) [en]) |
peg
|
Peg (Parsing expression grammar [en]) |
perl pl
|
Perl |
phix
|
Phix * pygments |
php php3 php4 php5
|
PHP * pygments |
php-brief
|
PHPBrief (nicht mehr in pygments gelistet) (deprecated – no colors, odd framing) |
pic16
|
PICmicro (Asm) |
pike
|
Pike |
po pot
|
Gettext * pygments |
portugol
|
Portugol (Portugol [en]) |
postgresql postgres
|
PostgreSQL |
psql postgresql-console postgres-console
|
PostgreSQL (Konsole) |
postgres-explain
|
PostgresExplain * pygments |
postscript postscr
|
PostScript |
pov
|
POV-Ray |
powershell posh ps1 psm1
|
Windows PowerShell |
promela
|
Promela |
ps1con
|
PowerShellSession |
praat
|
Praat * pygments |
prolog
|
Prolog |
promql
|
PromQL |
properties jproperties
|
Java-Properties-Datei |
pycon
|
Python Konsole * pygments |
pys60
|
Python (S60) |
python py sage
|
Python |
pytb
|
PythonTraceback |
python3 py3
|
Python3 |
py3tb
|
Python3Traceback |
q
|
Q * pygments |
qbasic basic
|
QBasic |
qlik qlikscript qliksense qlikview
|
Qlik |
r
|
R |
ragel
|
Ragel (Ragel [en]) |
rails
|
Rails |
raku perl6 pl6
|
Raku |
reason reasonml
|
Reason (Reason (programming language) [en]) |
red
|
Red (Red (programming language) [en]) |
redcde
|
Redcode (Asm) |
rita
|
RITA * pygments |
rs
|
RS (mit R) |
rst rest restructuredtext
|
RST |
robotframework
|
Robot Framework |
rebol
|
Rebol |
registry
|
Registry (MS Windows) |
rexx arexx
|
REXX |
rpmspec spec
|
RPM (Spec files) |
ruby rb duby
|
Ruby |
rbcon irb
|
Ruby Konsole * pygments |
rql
|
RQL |
rust
|
Rust |
s splus
|
S |
sas
|
SAS (SAS language [en]) |
savi
|
Savi * pygments |
scala
|
Scala |
scheme scm
|
Scheme |
scilab
|
Scilab |
sdlbasic
|
SDL-Basic |
sed
|
sed |
sh bash ksh shell
|
Shell (mit Kornshell) |
shell-session console
|
ShellSession |
sieve
|
Sieve |
slim
|
Slim (markup) * pygments |
smalltalk
|
Smalltalk |
smarty
|
Smarty |
sml
|
SML |
snbt
|
Snbt * pygments |
snobol
|
SNOBOL (SNOBOL [en]) |
sophia
|
Sophia * pygments |
spice
|
Spice * pygments |
sparql
|
SPARQL |
squid squidconf squid.conf
|
Squid (Konfig.) |
sql
|
SQL |
srcinfo
|
.SRCINFO * pygments |
systemverilog sv
|
SystemVerilog |
tal uxntal
|
Tal * pygments |
tid
|
Tiddly |
tlb
|
TL-b * pygments |
tcl
|
Tcl |
tcsh csh
|
Tcsh |
tcshcon
|
TcshSession |
teraterm teratermmacro ttl
|
Tera Term |
termcap
|
Termcap (Termcap [en]) |
terminfo
|
Terminfo (Terminfo [en]) |
terraform tf hcl
|
Terraform (Terraform (software) [en]) |
text
|
Plain text |
ts typescript
|
TypeScript |
typoscript
|
TypoScript |
tsql
|
Transact-SQL |
turtle
|
Turtle |
ucode
|
Ucode * pygments |
ul4
|
Ul4 * pygments |
unicon
|
Unicon (unicon (programming language) [en]) |
unixconfig linuxconfig
|
UnixConfig * pygments |
upc
|
Unified Parallel C (UPC) |
urbi
|
Urbi (URBI [en]) |
urbiscript
|
UrbiScript (Urbiscript [en]) |
usd usda
|
Universal Scene Description |
vala vapi
|
Vala |
vb
|
Visual Basic |
vbscript
|
Visual Basic Script |
vb.net vbnet oobas lobas sobas
|
Visual Basic .NET (und StarOffice Basic) * pygments |
verilog v
|
Verilog |
vhdl
|
VHDL |
vim
|
Vim |
foxpro vfp clipper xbase
|
FoxPro (MS-Visual) |
visualprolog
|
Visual Prolog (Visual Prolog [en]) |
webidl
|
WebIDL (Web IDL [en]) |
whiley
|
Whiley (Whiley (programming language) [en]) |
wikitext mediawiki
|
Wikitext |
wowtoc
|
WoWToc * pygments |
wren
|
Wren * pygments |
x10 xten
|
X10 |
xml
|
XML |
xorg.conf
|
Xorg configs (X.Org-Server-Konfiguration) |
xpp x++
|
Microsoft Dynamics AX |
xquery xqy xq xql xqm
|
XQuery |
xslt
|
XSLT |
yaml
|
YAML |
yang
|
Yang (YANG [en]) |
zig
|
Zig |
Die nachstehenden Codes gab es mit GeSHi, nicht mehr mit Pygments:
| Kürzel | Sprache |
|---|---|
4cs |
4CS |
algol68 |
Algol 68 |
arm |
Arm-Architektur |
apt_sources |
Apt sources |
asp |
ASP |
autoconf |
Autoconf |
avisynth |
AviSynth |
caddcl |
AutoCAD DCL (en) |
cil |
CIL |
cuesheet |
Cuesheet |
dcl |
Dialog Control Language (en) |
dcs |
Data Conversion System |
dos |
Stapelverarbeitungsdatei |
ecmascript |
JavaScript |
epc |
Enerscript |
f1 |
Formula One |
falcon |
Falcon (en) |
fo |
FO |
freebasic |
FreeBASIC |
freeswitch |
FreeSWITCH en |
gambas |
Gambas |
gdb |
GDB |
genie |
Genie (en) |
gettext |
GNU gettext |
gml |
GML |
gwbasic |
GW-BASIC |
| Kürzel | Sprache |
|---|---|
hicest |
HicEst |
hq9plus |
HQ9+ |
html4strict html5 |
HTML |
inno |
Inno Setup |
intercal |
INTERCAL |
kixtart |
KiXtart |
klonec |
Klone C |
klonecpp |
Klone C++ |
java5 |
Java |
jquery |
JavaScript |
lb |
Liberty Basic |
locobasic |
Locomotive BASIC |
ldif |
LDAP DIF |
lolcode |
LOLCODE (en) |
lotusformulas |
Formula language (en) |
lotusscript |
LotusScript |
lscript |
LScript |
lsl2 |
LSL |
magiksf |
magiks (en) |
mirc |
mIRC |
mmix |
MMIX |
modula3 |
Modula-3 |
nagios |
Nagios |
oberon2 |
Oberon |
objeck |
Objeck |
oracle8 oracle11 |
Oracle 8 Oracle 11 |
| Kürzel | Sprache |
|---|---|
oxygene |
Oxygene |
parigp |
PARI/GP (en) |
pcre |
Perl CRE |
per |
per |
pf |
PF |
pixelbender |
Adobe Pixel Bender |
pli |
PL/I |
plsql |
PL/SQL |
powerbuilder |
PowerBuilder |
proftpd |
ProFTPD |
providex |
ProvideX |
purebasic |
PureBasic |
q |
Q (en) |
reg |
RegDB |
robots |
Robots Exclusion Standard |
rsplus rspluse |
S mit R |
stonescript |
StoneScript, Skriptsprache für ShiVa |
thinbasic |
ThinBasic |
tls |
Transport Layer Security |
uscript |
UnrealScript |
visualfoxpro |
Microsoft Visual FoxPro |
vedit |
VEDIT |
whitespace |
Whitespace |
whois |
Whois-Protokoll |
z80 |
Zilog Z80 |
Es kann über den Parameter style= die aktuelle Einbindung angepasst werden, etwa Rahmen oder Einrückung.
<div> eingefügt, sondern (wenn nicht mit inline markiert) als <pre> mit dem hier standardmäßig vorgesehenen Rahmen.
style="border: none; padding: 0;"inline-Style (und ganz allgemein) der Zeilenumbruch erlaubt; das umrahmte Feld eignet sich aber nicht dazu, auf mehrere Zeilen verteilt zu werden, und insbesondere bei Assembler-Sprachen kann das Einpassen längerer Zeilen in die momentane Bildschirmbreite sehr störend sein.
style="white-space:nowrap" verhindert das.Seit Mitte 2015 werden nur noch die Elemente <pre> und <code> ausgeliefert.
Zu benutzerspezifischen Anpassungen siehe Skin/CSS.
.mw-highlight .err {
border: #FF0000 1px solid;
}
Weltweit einheitlich wird angepasst:
Benutzer können nach diesem Vorbild ihre eigenen Gewohnheiten wirken lassen.
Bei der Vorlagenprogrammierung mittels #tag: ist auf die Reihenfolge der Parameter zu achten. Es muss zwingend als erster Parameter der Content übergeben werden. Anschließend können die Angaben zur Sprache und dem umschließenden HTML-Tag erfolgen. Zudem dürfen keine Zeilenumbrüche zwischen den einzelnen Parametern enthalten sein.
{{#tag:syntaxhighlight|{{{code}}}|lang={{#if:{{{language|}}}|{{{language}}}|diff}}}}
Anschließend kann eine so entworfene Vorlage mit den Parametern
{{Vorlagenname
|language=
|code=
}}
eingebunden werden. Ein Beispiel für eine solche Verwendung ist die Vorlage „Patch“.
code selbst direkt kein Pipezeichen enthalten darf (wie immer in der Vorlagenprogrammierung), dieses muss dann ggf. durch ein {{!}} ersetzt werden (Beispiel).Der Code kann auch aus einer vollständigen Seite eingebunden werden:
{{#tag: syntaxhighlight | {{Modul:Hello}} | lang=lua}}
liefert
local p = {}
function p.hello(frame)
local name = frame.args[1]
if not name then
name = 'Welt'
end
return 'Hallo, ' .. name .. '! Dies ist Lua!'
end
return p
Seiten mit nicht erkanntem Sprachcode oder anderen ungültigen Werten werden in der Kategorie:Wikipedia:Seite mit Syntaxhervorhebungsfehlern aufgelistet.
Sie werden über MediaWiki:Syntaxhighlight-error-category, MediaWiki:Syntaxhighlight-source-category und MediaWiki:Syntaxhighlight-enclose-category definiert.
Bis zum 25. Juni 2015 wurde das Paket GeSHi benutzt, seitdem pygments.
Um nicht alle Pfade und Definitionen und Bezeichner umstellen zu müssen, nennt sich die Erweiterung aber weiterhin „GeSHi“, und Identifikatoren behalten diesen Namensbestandteil.
Die Umstellung wurde erforderlich, weil es keine Upstream-Wartung und Pflege bei GeSHi mehr gab.
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.