Jump to content

Template:Codesample/doc

From Wikitech

This template augments a <syntaxhighlight> block with fancy colors and an optional title

Template parameters

This template prefers block formatting of parameters.

ParameterDescriptionTypeStatus
Titlename

Title (name) of this code sample. Often a filename

Stringsuggested
Programming languagelang

Name of lexer to use for highlighting

Default
text
Example
shell-session
Stringsuggested
Codecode 1

Code sample to render

Stringrequired
Highlighted lineshighlight

Line(s) in example to highlight. Comma separated list of line numbers

Stringoptional
Show line numbersline

Enable line numbers for sample

Booleanoptional
Starting line numberstart

Starting line number when line numbers are shown. Note: Does not effect line numbers used for highlights.

Default
1
Numberoptional
Color schemescheme

Color scheme to use.

Default
dark
Stringoptional
Copy buttoncopy

Show a "copy" button to copy the code to the clipboard

Booleanoptional

Examples

{{Codesample |echo "hello world!"}}
echo "hello world!"
{{Codesample |echo "hello world!" |lang=text |scheme=light}}
echo "hello world!"
{{Codesample |$ echo "hello world!" |lang=shell-session |scheme=dark}}
$ echo "hello world!"
{{Codesample |code=<nowiki>{{Codesample}}</nowiki> |lang=wikitext}}
{{Codesample}}
{{Codesample |name=ingress.yaml |lang=yaml |scheme=dark |line=1 |highlight=5,8 |code=
---
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: foo-redirect
  namespace: tool-foo
  labels:
    name: foo-redirect
  annotations:
    kubernetes.io/ingress.class: nginx
}}
ingress.yaml
---
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: foo-redirect
  namespace: tool-foo
  labels:
    name: foo-redirect
  annotations:
    kubernetes.io/ingress.class: nginx
{{Codesample |name=metadata |lang=yaml |scheme=light |line=1 |start=5 |highlight=1,4 |code=
  name: foo-redirect
  namespace: tool-foo
  labels:
    name: foo-redirect
  annotations:
    kubernetes.io/ingress.class: nginx
}}
metadata
name: foo-redirect
  namespace: tool-foo
  labels:
    name: foo-redirect
  annotations:
    kubernetes.io/ingress.class: nginx
{{Codesample |echo "hello world!" |copy=}}
echo "hello world!"

Adding a new color scheme

The scheme=... parameter will load a css sub-page to add styles matching the Pygments markup definitions. The easiest way to introduce a new scheme is to export it from Pygments itself: pygmentize -f html -S $style -a .wt-codesample-${style}.