Hjælp: fremhævelse af syntaks
Syntaks fremhæve ( "Syntaks fremhævning") er en udvidelse af den MediaWiki -softwaren til visning program kildetekster på Wiki-sider. Kildeteksterne vises i farver i henhold til deres syntaks. [1]
syntaks
Grundlæggende syntaks til oprettelse af kildetekster:
<syntax highlight lang = "php"> <? php ekko "Hej verden!"; ?> </syntaxhighlight>
Produktion:
<? php
ekko "Hej verden!" ;
?>
Der er også specifikation af valgfrie parametre .
Kopier skabelon
<syntax highlight lang = ""> </syntaxhighlight>
<kilde>
Først hed elementet <source>
; indtil 2009 var dette den foretrukne dag. Efter at et multimedieelement med samme navn blev introduceret i HTML5 , blev præferencen byttet. Fordi <source>
i det viste HTML-eksempel, bør kun den kollisionsfrie <syntaxhighlight>
bruges. Det tyske sprog Wikipedia har elimineret <source>
i årevis. Fra 2020 elimineres dette element helt.
parameter
Specifikationen af lang
er en obligatorisk parameter. Der er også valgfrit:
inline | Type integration |
highlight | Fremhæv linjer |
line | Vis linjenumre |
start | Start på linjenummer |
strict | Fortolk programmeringssprog strengt |
enclose | (Type integration) |
class | Standardparametre |
-
inline
-
<syntaxhighlight lang="css" inline >
- Dette gør det muligt at generere formateret computerkode i et afsnit. Eksempel: "Dette er en test for at vise, at for eksempel CSS kode
table { display : none ;}
. Kan vises inline"
- Dette gør det muligt at generere formateret computerkode i et afsnit. Eksempel: "Dette er en test for at vise, at for eksempel CSS kode
-
highlight
-
<syntaxhighlight lang="php" highlight= "1,3-5,8" line>
- Linje 1, 3 til 5 og 8 er markeret med lysegul.
<? php
ekko "Hej verden!" ;
ekko "Hej verden!" ;
ekko "Hej verden!" ;
ekko "Hej verden!" ;
ekko "Hej verden!" ;
ekko "Hej verden!" ;
?>
line
-
<syntaxhighlight lang="php" line >
- Linjerne nummereres fortløbende.
<? php
ekko "Hej verden!" ;
ekko "Hej verden!" ;
ekko "Hej verden!" ;
ekko "Hej verden!" ;
ekko "Hej verden!" ;
ekko "Hej verden!" ;
?>
GeSHi -funktionaliteten til at markere hvert femte linjenummer var endnu ikke blevet gendannet i 2016.
-
start
-
<syntaxhighlight lang="php" start= "10" line>
- Linjerne nummereres fortløbende, linjetællingen starter ved 10.
<? php
ekko "Hej verden!" ;
?>
Kan ikke bruges sammen med highlight
.
-
style
-
<syntaxhighlight style= "margin-left: 6em;" lang="html4strict">
- Standardattribut i HTML .
- Eksempel: Her for at
6em
en hel blok med6em
henhold til konteksten:
- Eksempel: Her for at
<syntax highlight style = "margin-left: 6em;" lang = "html4strict">
enclose
-
<syntaxhighlight enclose="none" lang="css">
- Forældet parameter, der som
enclose="none"
præcist svarede tilinline
. -
enclose=
kunne antage andre værdier (f.eks."div"
), der ikke længere er relevante i dag.
-
strict
- Med opgaven
strict="1"
kunne den underliggende software instrueres i at fortolke programmeringssproget i henhold til standarden, hvis en separat definition er tilgængelig for det. Dette er dog sandsynligvis ikke længere effektivt under pygmenter.
Sprog
Understøttede sprog
Følgende sprog understøttes af denne udvidelse (uddrag): [2] [3]
kode | Sprog |
---|---|
abap | ABAP |
abnf | ABNF |
actionscript as | ActionScript |
actionscript3 as3 | ActionScript3 |
ada ada95 ada2005 | Ada |
amdgpu | Amdgpu * pygmenter |
antlr | ANTLR |
apache apacheconf aconf | Apache -konfiguration |
applescript | AppleScript |
arm | FATTIGE |
asm gas | Assembler ( gas ) |
aspx-vb asp | Aktive serversider (ASP til Visual Basic ) |
asymptote asy | asymptote |
autohotkey ahk | AutoHotkey |
autoit | AutoIt |
awk gawk mawk nawk | AWK |
basic4gl | Basic4GL ( Basic4GL [da]) |
bat dos dosbatch winbatch batch | Batch ( Winbatch [en]) * pygmenter |
bbcode | BBCode |
befunge | Befunge |
bf brainfuck | Brainfuck |
bibtex | BibTeX |
blitzbasic b3d bplus | Blitz BASIC |
bnf | Backus-Naur-Form * pygmenter |
boo | Boo |
c | C. |
cadlisp | AutoLISP |
cddl | Cddl * pygmenter |
cfm | Coldfusion -markering |
chaiscript chai | ChaiScript ( ChaiScript [da]) |
clojure clj | Clojure |
clojurescript cljs | ClojureScript |
cmake | CMag |
cobol | COBOL |
coffeescript coffee-script coffee | CoffeeScript |
control debcontrol | DebianControl |
coq | Coq |
cpp c++ | C ++ |
cpp-qt | Qt bibliotek |
cryptol cry | Cryptol ( Cryptol [en]) |
csharp c# | CSharp (C #) * pygmenter |
css | Cascading Style Sheets (CSS) |
cython pyx pyrex | Cython |
d | D. |
dart | Dart |
dcpu16 | DCPU-16 ( 0x10c [da]) |
delphi pas pascal objectpascal | Delphi * pygmenter |
diff udiff | Forskellig |
dot graphviz | DOT |
dtd | DTD |
dylan | Dylan |
dylan-console dylan-repl | Dylan Console * pygmenter |
ebnf | Udvidet Backus - Naur Form |
eiffel | Eiffel |
emacs elisp emacs-lisp | Emacs Lisp |
erb | ERB |
erlang | Erlang |
ezhil | Ezhil ( Ezhil (programmeringssprog) [da]) |
factor | Faktor |
fancy fy | Fancy (Ruby) * pygmenter |
fortran | Fortran |
freebasic | FreeBASIC |
fsharp | F-Sharp |
fstar | Fstar ( F * (programmeringssprog) [da]) |
futhark | Futhark ( Futhark (programmeringssprog) [da]) |
gambas | Rejer |
gap | Kasket |
gdscript gd | GDScript |
genshi kid xml+genshi xml+kid | Genshi ( Genshi (skabelonsprog) [da]) |
gettext pot po | Gettext * pygments |
gherkin cucumber | Agurker (Rubin) |
glsl | GLShader |
gnuplot | gnuplot |
go | Gå |
groff nroff man | Groff |
groovy | Groovy |
gwbasic | GW-BASIC |
haskell hs | Haskell |
haxe hx hxsl | Kno |
hexdump | Hexdump * pygmenter |
html html4strict html5 | Hypertext Markup Language (HTML) |
http | HTTP |
ini cfg dosini | INI (fil) |
io | Io |
irc | IRC |
j | J |
java java5 | Java |
javascript js ecmascript jquery | JavaScript |
json | JSON |
jsonld json-ld | JSON-LD |
jsp | Jsp |
kotlin | Kotlin |
latex tex | LaTeX (TeX) |
lighttpd lighty | Lighttpd (konf) |
lisp common-lisp cl | Almindelig |
llvm | LLVM |
locobasic | Lokomotiv BASIC |
logtalk | Logtalk ( Logtalk [da]) |
lsl | Linden Scripting Language |
lua | Lua * pygmenter |
m68k | Motorola 68000 |
make makefile mf bsdmake | Makefile |
mako | Mako ( Mako (skabelonmotor) [da]) |
mapbasic | MapBasic |
markdown md | Markdown |
matlab | MATLAB (M) |
matlabsession | MatlabSession |
mathematica nb mma | Mathematica |
minid | MiniD |
mmix | MMIX (Asm) |
modelica | Modelica |
modula2 m2 | Modula-2 * pygmenter |
moin trac-wiki | Moin Wiki |
mpasm | PICmicro (Asm) |
msc mscgen | MSC |
mupad | MuPad |
mxml | MXML ( MXML [da]) |
myghty | Myghty ( Pylons -projekt # skabelon [da]) |
mysql | MySQL |
nemerle | Nemerle ( Nemerle [en]) |
netrexx | NetRexx ( NetRexx [da]) |
newlisp | NyLISP |
newspeak | Newspeak ( Newspeak (programmeringssprog) [da]) |
nginx | Nginx (konfiguration) |
nimrod nim | Nimrod ( Nimrod (distribueret computing) [da]) |
nsis nsi nsh | Nullsoft Scriptable Install System (NSIS) |
numpy | NumPy ( NumPy [en]) |
oberon2 | Oberon-2 |
objc obj-c objective-c objectivec | Mål-C |
objj obj-j objective-j objectivej | Objective-J ( Objective-J [en]) |
ocaml ocaml-brief | OCaml |
octave | Octave |
oobas | OpenOffice Basic |
oorexx | Object REXX ( Object REXX [da]) |
openedge progress abl | OpenEdge (fremskridt) |
oracle11 | Oracle 11 |
oracle8 | Oracle 8 |
peg | Peg ( Parsing expression grammar [en]) |
perl pl | Perle |
php php3 php4 php5 | PHP * pygmenter |
php-brief | PHP -bogstav ( forældet - ingen farver, ulige indramninger) |
pic16 | PICmicro (Asm) |
pike | gedde |
plsql | PL / SQL |
postgresql postgres | PostgreSQL |
postscript postscr | PostScript |
psql postgresql-console postgres-console | PostgreSQL (konsol) |
pov povray | POV-Ray |
powershell posh ps1 psm1 | Windows PowerShell |
ps1con | PowerShellSession |
praat | Praat * pygmenter |
prolog | prolog |
promql | PromQL |
properties jproperties | Java egenskabsfil |
purebasic | PureBasic |
pycon | Python -konsol * pygmenter |
pys60 | Python (S60) |
python py sage | python |
pytb | PythonTraceback |
python3 py3 | Python3 |
py3tb | Python3Traceback |
qbasic basic | QBasic |
ragel | Ragel ( Ragel [en]) |
rails | Skinner |
raku perl6 pl6 | Raku |
reason reasonml | Reason ( Reason (programmeringssprog) [da]) |
red | Rød ( Rød (programmeringssprog) [da]) |
redcde | Rød kode (Asm) |
rst rest restructuredtext | RST |
robotframework | Robotramme |
rebol | Rebol |
registry reg | Registreringsdatabase (MS Windows) |
rexx arexx | REXX |
rpmspec spec | RPM (Spec -filer) |
ruby rb duby | Rubin |
rbcon irb | Ruby konsol * pygments |
rql | RQL |
rust | Rust |
s splus r rspluse | S (med R ) |
scala | Scala |
scheme scm | Skema |
scilab | Scilab |
sdlbasic | SDL-Basic |
sh bash ksh shell | Skal (med Kornshell ) |
shell-session console | ShellSession |
sieve | Sigt |
smalltalk | Småsnak |
smarty | Smarty |
sml | SML |
snobol | SNOBOL ( SNOBOL [en]) |
sparql | SPARQL |
squid squidconf squid.conf | Blæksprutte (konfigur.) |
sql | SQL |
systemverilog sv | SystemVerilog |
tcl | Tcl |
tcsh csh | Tcsh |
tcshcon | TcshSession |
text | Simpel tekst |
thinbasic | ThinBasic |
ts typescript | TypeScript |
tsql | Transact-SQL |
turtle | Skildpadde |
upc | Unified Parallel C (UPC) |
urbi | Urbi ( URBI [da]) |
urbiscript | UrbiScript ( Urbiscript [en]) |
vala vapi | Vala |
vb vbnet vb.net | Visual Basic (og Visual Basic .NET ) |
verilog v | Verilog |
vhdl | VHDL |
vim | Vim |
visualfoxpro | Visual FoxPro |
foxpro vfp clipper xbase | FoxPro (MS-Visual) |
visualprolog | Visual Prolog ( Visual Prolog [en]) |
webidl | WebIDL ( Web IDL [da]) |
xml | XML |
xpp | Microsoft Dynamics AX |
xquery xqy xq xql xqm | XQuery |
xslt | XSLT |
yaml | YAML |
yang | Yang ( YANG [da]) |
z80 | ZiLOG Z80 <Asm |
I øjeblikket ikke understøttet under pygmenter
Følgende koder eksisterede med GeSHi, men ikke længere med pygmenter siden sommeren 2015:
|
|
|
Justeringer
Enkeltbrug
Den aktuelle integration kan justeres ved hjælp af parameteren style=
såsom en ramme eller indrykning.
- Siden midten af 2012 [4] er blokkene ikke længere indsat som
<div>
, men (hvis de ikke er markeret medinline
) som<pre>
med standardrammen her.- Dette er nyttigt for en blok med flere linjer; men hvis du kun har en eller to linjer, kan dette være irriterende.
-
style="border: none; padding: 0;"
reducerer dekorationen så meget som muligt.
- Linjeskift har været tilladt i
inline
-stil (og generelt) siden 2015; det indrammede felt er imidlertid ikke egnet til at blive fordelt over flere linjer, og især med montagesprog kan det være meget irriterende at montere længere linjer i den aktuelle skærmbredde.-
style="white-space:nowrap"
forhindrer det.
-
Siden midten af 2015 er kun elementerne <pre>
og <code>
blevet leveret.
bruger
For brugerspecifikke justeringer se Skin / CSS .
- Et interessant træk blandt pygmenter ; men kan være meget udmattende - følgende CSS -sekvens gør opmærksom på syntaksfejl:
. mw fremhævning . fejle {
kant : # FF0000 1 px fast ;
}
Mediawiki
Følgende vil blive justeret ensartet på verdensplan:
- modules / pygments.generated.css - Dekoration af de enkelte syntakskonstruktioner (kommentar, operator, tegnstreng osv.)
- modules / pygments.wrapper.css - Repræsentation af koden i konteksten af wikisiden (indrykning, fremhævelse)
Efter dette eksempel kan brugerne lade deres egne vaner fungere.
Skabelonprogrammering
Når du #tag:
skabeloner med #tag:
skal du være opmærksom på rækkefølgen af parametrene. Indholdet skal sendes som den første parameter. Derefter kan oplysningerne om sproget og det vedlagte HTML -tag laves. Derudover må der ikke være linjeskift mellem de enkelte parametre.
-
{{#tag:syntaxhighlight|{{{code}}}|lang={{#if:{{{language|}}}|{{{language}}}|diff}}}}
En skabelon designet på denne måde kan derefter bruges med parametrene
{{Skabelonnavn | sprog = | kode = }}
blive kaldt. Der henvises til patch -skabelonen som et eksempel på en sådan anvendelse.
- Det skal også bemærkes, at
code
parameter selv ikke må direkte indeholde en pibe karakter (som altid i skabelon -programmering ), skal dette erstattes af et{{!}}
( Eksempel ).
Koden kan også inkluderes fra en komplet side:
-
{{#tag:syntaxhighlight | {{Modul:Hello}} | lang=lua}}
forsyninger
lokal p = {}
funktion s . hej ( ramme )
lokalt navn = ramme . args [ 1 ]
hvis ikke navn så
name = 'verden'
ende
returner 'Hej,' .. navn .. '! Dette er Lua! '
ende
vende tilbage s
vedligeholdelse
Sider med ukendt sprogkode eller andre ugyldige værdier er angivet i kategorien: Wikipedia: Side med fejl i syntaksfremhævning .
De er defineret via MediaWiki: Syntaxhighlight-error-category , MediaWiki: Syntaxhighlight-source-category og MediaWiki: Syntaxhighlight-enclose-category .
GeSHi
GeSHi -pakken blev brugt indtil den 25. juni 2015 og pygmenter siden da.
For ikke at skulle ændre alle stier og definitioner og identifikatorer kaldes udvidelsen stadig "GeSHi", og identifikatorer beholder denne del af navnet.
Ændringen blev nødvendig, fordi GeSHi ikke længere havde opstrøms vedligeholdelse og pleje.
Yderligere Information
- Hjælp: Syntaksfremhævning / VisualEditor - Beskrivelse af, hvordan syntakskodeblokke kan indsættes eller redigeres med VisualEditor .
Lister over understøttede sprog (engelsk)
- mw: Extension: SyntaxHighlight GeSHi #Supporterede sprog
- pygment -id'er (PHP)
- MW -alias (PHP)
- pygment -id'er (PHP)
- pygments.org
Ekstern
Bemærkninger
- ↑ Hvis du har valgt indstillingen Vis forhåndsvisning uden at genindlæse siden i dine indstillinger, vises syntaksfremhævningen ikke i forhåndsvisningen af en side. Det skal derefter gemmes for at være synligt.
- ↑ Den aktuelle liste er altid med den originale dokumentation
- ↑ Med dialekter og varianter opnås normalt den samme optiske effekt med modersproget.
- ↑ phab: T21416 ( Bugzilla: 19416 ) , rev: 113190