hugo/content/en/functions/highlight.md
Bjørn Erik Pedersen 45e6fdb315 Squashed 'docs/' changes from 316cec249..4eb10c1a9
4eb10c1a9 Set a sensible maxAge on the image cache
2c37f4f89 Update lists.md
8690c018f Update introduction.md
0458c3d88 Update index.md
150982f5e Update index.md
50dc0b6b9 Update multilingual.md
648598090 Configure image cache to use :cacheDir/images
4dfb523c3 Update introduction.md
b94d42e6f Add text to social images
d3253d2aa Add resources/_gen/images/ to .gitignore
8a56e1dfd Delete resources/_gen/images
1521e79b6 Update introduction.md
c7110a597 Update introduction.md
f7c4d220f Update introduction.md
c14ecf1ff Update introduction.md
c4b388c20 Fix shortcode in hugo-pipes/introduction (#1605)
d9876bd68 Update introduction.md
a39a532d5 Update introduction.md
fa8758122 netlify: Hugo 0.90.1
50cc40570 Update Contribute to Hugo Development
fc98fc82c Add .vscode dir to .gitignore (#1602)
8f8bcdefc Add frontmatter param to code-toggle shortcode (#1601)
f3b432c7c Add markdownlint configuration file (#1597)
7ea3aea92 netlify: Bump to 0.90.0
e2b6f990b docs: Regenerate docs helper
c02259e33 Merge commit '8d9511a08f14260cbfb73119e4afae50e5a9966d'
2e3573899 Add custom font support to images.Text
3186e6458 images: Text filter that draws text with the given options (#9239)
424f219eb tpl/transform: Optional options for highlight func
7993f17d0 Implement XML data support
1eb9d34cf Make resources.Get use a file cache for remote resources
8a0fffd56 Add remote support to resources.Get

git-subtree-dir: docs
git-subtree-split: 4eb10c1a9689aebf652011a6260a14bf8a3dcef4
2021-12-13 21:04:12 +01:00

3.8 KiB

title linktitle description date publishdate lastmod categories menu keywords signature relatedfuncs deprecated toc
highlight highlight Renders code with a syntax highlighter. 2017-02-01 2017-02-01 2021-12-06
functions
docs
parent
functions
highlighting
code blocks
syntax
transform.Highlight INPUT LANG [OPTIONS]
highlight INPUT LANG [OPTIONS]
false true

The highlight function uses the Chroma syntax highlighter, supporting over 200 languages with more than 40 available styles.

Parameters

INPUT
The code to highlight.
LANG
The language of the code to highlight. Choose from one of the [supported languages]. Case-insensitive.
OPTIONS
An optional, comma-separated list of zero or more [options]. Set default values in [site configuration].

Options

lineNos
Boolean. Default is false.
Display a number at the beginning of each line.
lineNumbersInTable
Boolean. Default is true.
Render the highlighted code in an HTML table with two cells. The left table cell contains the line numbers. The right table cell contains the code, allowing a user to select and copy the code without line numbers. Irrelevant if lineNos is false.
anchorLineNos
Boolean. Default is false.
Render each line number as an HTML anchor element, and set the id attribute of the surrounding <span> to the line number. Irrelevant if lineNos is false.
lineAnchors
String. Default is "".
When rendering a line number as an HTML anchor element, prepend this value to the id attribute of the surrounding <span>. This provides unique id attributes when a page contains two or more code blocks. Irrelevant if lineNos or anchorLineNos is false.
lineNoStart
Integer. Default is 1.
The number to display at the beginning of the first line. Irrelevant if lineNos is false.
hl_Lines
String. Default is "".
A space-separated list of lines to emphasize within the highlighted code. To emphasize lines 2, 3, 4, and 7, set this value to 2-4 7. This option is independent of the lineNoStart option.
style
String. Default is monokai.
The CSS styles to apply to the highlighted code. See the [style gallery] for examples. Case-sensitive.
noClasses
Boolean. Default is true.
Use inline CSS styles instead of an external CSS file. To use an external CSS file, set this value to false and [generate the file with the hugo client][hugo client].
tabWidth
Integer. Default is 4.
Substitute this number of spaces for each tab character in your highlighted code.
guessSyntax
Boolean. Default is false.
If the LANG parameter is blank or an unrecognized language, auto-detect the language if possible, otherwise use a fallback language.

{{% note %}} Instead of specifying both lineNos and lineNumbersInTable, you can use the following shorthand notation:

lineNos=inline
equivalent to lineNos=true and lineNumbersInTable=false
lineNos=table
equivalent to lineNos=true and lineNumbersInTable=true {{% /note %}}

Examples

{{ $input := `fmt.Println("Hello World!")` }}
{{ transform.Highlight $input "go" }}

{{ $input := `console.log('Hello World!');` }}
{{ $lang := "js" }}
{{ transform.Highlight $input $lang "lineNos=table, style=api" }}

{{ $input := `echo "Hello World!"` }}
{{ $lang := "bash" }}
{{ $options := slice "lineNos=table" "style=dracula" }}
{{ transform.Highlight $input $lang (delimit $options ",") }}

[hugo client]: {{< relref "commands/hugo_gen_chromastyles" >}} [options]: {{< relref "#options" >}} [site configuration]: {{< relref "getting-started/configuration-markup#highlight">}} [style gallery]: https://xyproto.github.io/splash/docs/ [supported languages]: {{< relref "content-management/syntax-highlighting#list-of-chroma-highlighting-languages" >}}