Template:Syntaxhighlight
{{{1}}}
Simple wrapper around the <syntaxhighlight>...</syntaxhighlight> tag to show syntax-highlighted text. Unlike <syntaxhighlight>, text that does not fit on the screen will be wrapped.
Parameters
[edit]- 1 or code: the source code to highlight
- Note that if the included code includes some syntax that looks like a MediaWiki template or ParserFunction, any code present in parameter 1 or code will be evaluated and expanded during the expansion of this template (as if it was written using the wiki syntax) before it is itself expanded to perform the highlighting, so the expansion of the parameter may be replacing fragments of the embedded code, and it can possibly break the generated highlighted code, possibly producing spurious results (e.g. categorization, wiki parsing errors of the parameter value).
- The only workaround is to not use this template but replace:
{{Syntaxhighlight|code=any source code|lang=languagename}}, or
{{Syntaxhighlight|any source code|lang=languagename}}, simply by:
{{#tag:syntaxhighlight|any source code|lang=languagename}}(i.e adding the#tag:prefix, and removingcode=(if it is used to explicitly name the parameter 1 for the template), and make sure that the required|lang=languagenameparameter occurs at end just before the closing braces, always after the unnamed first parameter of the tag. - The source code must also be unescaped (if it was escaped by transclusion of any page with
{{msgnw:Full:Pagename{{}}}}, which generates lot of numbered character entities for most ASCII punctuations or symbols, and all newline and tab controls). Original pipe characters (|) present in the source code still need to be escaped using{{!}}instead).
- The only workaround is to not use this template but replace:
- lang: one of the following programming language name abbreviations
| Code | Language |
|---|---|
4cs |
4CS |
6502acme |
MOS 6502 (6510) ACME Cross Assembler |
6502kickass |
MOS 6502 (6510) Kick Assembler |
6502tasm |
MOS 6502 (6510) TASM/64TASS |
68000devpac |
Motorola 68000 - HiSoft Devpac ST 2 Assembler |
abap |
ABAP |
actionscript |
ActionScript |
actionscript3 |
ActionScript3 |
ada |
Ada |
algol68 |
ALGOL 68 |
apache |
Apache configuration |
applescript |
AppleScript |
apt_sources |
APT sources |
arm |
ARM Assembler |
asm |
Assembly |
asp |
Active Server Pages (ASP) |
asymptote |
Asymptote |
autoconf |
Autoconf |
autohotkey |
AutoHotkey |
autoit |
AutoIt |
avisynth |
AviSynth |
awk |
AWK |
bascomavr |
BASCOM AVR |
bash |
Bash |
basic4gl |
Basic4GL |
bf |
Brainfuck |
bibtex |
BibTeX |
blitzbasic |
Blitz BASIC |
bnf |
Backus–Naur form |
boo |
Boo |
c |
C |
c_loadrunner |
C Loadrunner |
c_mac |
C (Mac) |
caddcl |
AutoCAD DCL |
cadlisp |
AutoLISP |
cfdg |
CFDG |
cfm |
ColdFusion Markup Language |
chaiscript |
ChaiScript |
cil |
Common Intermediate Language (CIL) |
clojure |
Clojure |
clp |
Control Language Program |
cmake |
CMake |
cobol |
COBOL |
coffeescript |
CoffeeScript |
cpp |
C++ |
cpp-qt |
C++ (Qt toolkit) |
csharp |
C# |
css |
Cascading Style Sheets (CSS) |
cuesheet |
Cue sheet |
d |
D |
dcl |
DIGITAL Command Language |
dcpu16 |
DCPU-16 |
dcs |
Data Conversion System |
delphi |
Delphi |
diff |
Diff |
div |
DIV |
dos |
DOS batch file |
dot |
DOT |
e |
E |
ecmascript |
ECMAScript |
eiffel |
Eiffel |
email |
Email (mbox \ eml \ RFC format) |
epc |
Enerscript |
erlang |
Erlang |
euphoria |
Euphoria |
f1 |
Formula One |
falcon |
Falcon |
fo |
FO |
fortran |
Fortran |
freebasic |
FreeBASIC |
freeswitch |
FreeSWITCH |
fsharp |
Fsharp |
gambas |
Gambas |
gdb |
GDB |
genero |
Genero |
genie |
Genie |
gettext |
gettext |
glsl |
OpenGL Shading Language (GLSL) |
gml |
Game Maker Language (GML) |
gnuplot |
gnuplot |
go |
Go |
groovy |
Groovy |
gwbasic |
GW-BASIC |
haskell |
Haskell |
haxe |
Haxe |
hicest |
HicEst |
hq9plus |
HQ9+ |
html4strict |
HTML |
html5 |
HTML5 |
icon |
Icon |
idl |
Uno IDL |
ini |
INI |
inno |
Inno |
intercal |
INTERCAL |
io |
Io |
j |
J |
java |
Java |
java5 |
Java(TM) 2 Platform Standard Edition 5.0 |
javascript |
JavaScript |
jcl |
Job Control Language |
kixtart |
KiXtart |
klonec |
Klone C |
klonecpp |
Klone C++ |
latex |
LaTeX |
lb |
Liberty BASIC |
ldif |
LDAP Data Interchange Format |
lisp |
Lisp |
llvm |
LLVM |
locobasic |
Locomotive BASIC |
logtalk |
Logtalk |
lolcode |
LOLCODE |
lotusformulas |
Formula language |
lotusscript |
LotusScript |
lscript |
LightWave 3D |
lsl2 |
Linden Scripting Language |
lua |
Lua |
magiksf |
Magik |
m68k |
Motorola 68000 Assembler |
make |
make |
mapbasic |
MapBasic |
matlab |
MATLAB M |
mirc |
mIRC scripting language |
mmix |
MMIX |
modula2 |
Modula-2 |
modula3 |
Modula-3 |
mpasm |
Microchip Assembler |
mxml |
MXML |
mysql |
MySQL |
nagios |
Nagios |
netrexx |
NetRexx |
newlisp |
NewLISP |
nsis |
Nullsoft Scriptable Install System (NSIS) |
oberon2 |
Oberon-2 |
objc |
Objective-C |
objeck |
Objeck |
ocaml |
OCaml |
ocaml-brief |
OCaml |
ocl |
Operational Control Language |
octave |
Octave |
oobas |
OpenOffice.org Basic |
oorexx |
Object REXX |
oracle11 |
Oracle 11 SQL |
oracle8 |
Oracle 8 SQL |
oxygene |
Oxygene |
oz |
Oz |
parasail |
ParaSail |
parigp |
PARI/GP |
pascal |
Pascal |
pcre |
Perl Compatible Regular Expressions |
per |
per |
perl |
Perl |
perl6 |
Perl 6 |
pf |
PF |
php |
PHP |
php-brief |
PHP |
pic16 |
PIC assembly language |
pike |
Pike |
pixelbender |
Pixel Bender |
pli |
PL/I |
plsql |
PL/SQL |
postgresql |
PostgreSQL |
povray |
Persistence of Vision Raytracer |
powerbuilder |
PowerBuilder |
powershell |
PowerShell |
proftpd |
ProFTPD |
progress |
OpenEdge Advanced Business Language |
prolog |
Prolog |
properties |
Properties file |
providex |
ProvideX |
purebasic |
PureBasic |
pycon |
Python |
pys60 |
PyS60 |
python |
Python |
q |
Q |
qbasic |
QBasic/QuickBASIC |
rails |
Rails |
rebol |
Rebol |
reg |
Windows Registry |
rexx |
Rexx |
robots |
robots.txt |
rpg |
RPG |
rpgii |
RPG II |
rpgiii |
RPG III |
rpg400 |
RPG/400 |
rpgiv |
RPG IV |
rpmspec |
RPM Spec files |
rsplus |
R |
ruby |
Ruby |
sas |
SAS |
scala |
Scala |
scheme |
Scheme |
scilab |
Scilab |
sdlbasic |
SdlBasic |
smalltalk |
Smalltalk |
smarty |
Smarty |
spark |
SPARK |
sparql |
SPARQL |
sql |
SQL |
stonescript |
StoneScript (Scripting language for ShiVa3D) |
systemverilog |
SystemVerilog |
tcl |
Tcl |
teraterm |
Tera Term |
text |
Plain text |
thinbasic |
thinBasic |
tsql |
Transact-SQL |
typoscript |
TypoScript |
unicon |
Unicon |
upc |
Unified Parallel C |
urbi |
URBI |
uscript |
UnrealScript |
vala |
Vala |
vb |
Visual Basic |
vbnet |
Visual Basic .NET |
vedit |
VEDIT |
verilog |
Verilog |
vhdl |
VHDL |
vim |
Vim script |
visualfoxpro |
Visual FoxPro |
visualprolog |
Visual Prolog |
whitespace |
Whitespace |
whois |
Whois |
winbatch |
Winbatch |
xml |
XML |
xorg_conf |
Xorg.conf |
yaml |
YAML |
xpp |
Microsoft Dynamics AX |
z80 |
ZiLOG Z80 Assembler |
zxbasic |
ZXBasic |
- code: The contents of the syntax highlighted block.
Examples
[edit]{{syntaxhighlight|lang=javascript|code=mw.util.addPortletLink('p-personal', '/w/index.php?title=Special:MyPage/Sandbox&action=edit&preload=Template%3AUser_sandbox%2Fpreload&editintro=Template%3AUser_sandbox', 'My sandbox', 'pt-mysandbox', 'Go to my sandbox');}}
mw.util.addPortletLink('p-personal', '/w/index.php?title=Special:MyPage/Sandbox&action=edit&preload=Template%3AUser_sandbox%2Fpreload&editintro=Template%3AUser_sandbox', 'My sandbox', 'pt-mysandbox', 'Go to my sandbox');
{{syntaxhighlight|inline=1|lang=javascript|code=mw.util.addPortletLink('p-personal', '/w/index.php?title=Special:MyPage/Sandbox&action=edit&preload=Template%3AUser_sandbox%2Fpreload&editintro=Template%3AUser_sandbox', 'My sandbox', 'pt-mysandbox', 'Go to my sandbox');}}
mw.util.addPortletLink('p-personal', '/w/index.php?title=Special:MyPage/Sandbox&action=edit&preload=Template%3AUser_sandbox%2Fpreload&editintro=Template%3AUser_sandbox', 'My sandbox', 'pt-mysandbox', 'Go to my sandbox');
TemplateData
[edit]- TemplateData
TemplateData is a way to store information about template parameters (the description of those and of the whole template) for both humans and machines. It is used by VisualEditor and possibly other tools like Upload Wizard.
Existing template documentation
At Wikimedia Commons, it is recommended to use {{TemplateBox}} with either useTemplateData=1 or useTemplateData=only on the /doc subpage and transcluding it with {{Documentation}} into the template. <nowiki>-tags can be wrapped around the arguments, if required, to avoid templates being expanded.
Newly created template documentation and imports
Another option, especially for imported templates, or for users with JSON experience, is placing raw <templatedata>-tags into the Wikitext of the template, as described in various Wikipediae.
Wikipedia's help about TemplateData • Commons-specific information
Simple wrapper around the <syntaxhighlight> tag to show syntax-highlighted text.
| Parameter | Description | Type | Status | |
|---|---|---|---|---|
| Language | lang 2 | The source code language
| String | suggested |
| Inline? | inline | Whether to use inline formatting
| Boolean | optional |
| Source Code | 1 code | The source code | String | required |