Hjælp: fremhævelse af syntaks

fra Wikipedia, den gratis encyklopædi
Spring til navigation Spring til søgning

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

style
id
title
dir

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"
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 med 6em henhold til konteksten:
 <syntax highlight style = "margin-left: 6em;" lang = "html4strict">
enclose
<syntaxhighlight enclose="none" lang="css">
Forældet parameter, der som enclose="none" præcist svarede til inline .
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
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:

Sprog understøttes ikke længere
Forkortelse Sprog
4cs 4CS
algol68 Algol 68
apt_sources Apt kilder
autoconf Autokonf
avisynth AviSynth
caddcl AutoCAD DCL
AutoCAD DCL
cil Fælles mellemsprog
cuesheet Cuesheet
dcl Dialog kontrol sprog
Datakontrol sprog
dcs Datakonverteringssystem
email E -mail (mbox \ eml \ RFC -format)
epc Indskrevet
f1 Formel 1
falcon Falk
da: Falcon (programmeringssprog)
fo FO
freeswitch FreeSWITCH
da: FreeSWITCH
gdb GDB
genie geni
da: Genie (programmeringssprog)
gml Game Maker Language (GML)
Forkortelse Sprog
hicest HicEst
hq9plus HQ9 +
icon Ikon
inno Inno opsætning
intercal INTERCAL
kixtart KiXtart
klonec Kloner C.
klonecpp Kloner C ++
lb Liberty Basic
ldif LDAP Data Interchange Format
lolcode LOLCODE (da)
lotusformulas Formelsprog (da)
lotusscript LotusScript
lscript LScript
lsl2 Linden Scripting Language
magiksf magiks
da: Magik (programmeringssprog)
mirc mIRC
modula3 Modula-3
nagios Nagios
objeck Objekt
oxygene Oxygene
parasail ParaSail
Forkortelse Sprog
parigp PARI / GP (da)
pcre Perl -kompatible regulære udtryk
per ved
pf PF
pixelbender Adobe Pixel Bender
pli PL / I
powerbuilder PowerBuilder
proftpd ProFTPD
providex GiveX
q Q (da)
robots Robots Exclusion Standard
sas sas
da: SAS (software)
stonescript StoneScript, scriptsprog til ShiVa
teraterm Tera Term
typoscript TypoScript
unicon unikon
da: Unicon (programmeringssprog)
uscript UnrealScript
vedit VEDIT
whitespace Hvidt rum
whois Whois protokol
xorg_conf X.Org -serverkonfiguration

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 med inline ) 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:

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  
        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

Lister over understøttede sprog (engelsk)

Ekstern

Bemærkninger

  1. 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.
  2. Den aktuelle liste er altid med den originale dokumentation
  3. Med dialekter og varianter opnås normalt den samme optiske effekt med modersproget.
  4. phab: T21416 ( Bugzilla: 19416 ) , rev: 113190