| title | transform.HighlightCodeBlock | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| description | Highlights code received in context within a code block render hook. | |||||||||
| categories | ||||||||||
| keywords |
|
|||||||||
| params |
|
This function is only useful within a code block render hook.
Given the context passed into a code block render hook, transform.HighlightCodeBlock returns a HighlightResult object with two methods.
.Wrapped
: (template.HTML) Returns highlighted code wrapped in <div>, <pre>, and <code> elements. This is identical to the value returned by the transform.Highlight function.
.Inner
: (template.HTML) Returns highlighted code without any wrapping elements, allowing you to create your own wrapper.
{{ $result := transform.HighlightCodeBlock . }}
{{ $result.Wrapped }}
To override the default highlighting options:
{{ $opts := merge .Options (dict "linenos" true) }}
{{ $result := transform.HighlightCodeBlock . $opts }}
{{ $result.Wrapped }}
The type and code keys are special: they override the language and the code received from the code block respectively. {{< new-in "0.162.0" />}} For example, to fall back to plain text when the language is not supported by the highlighter:
{{ $opts := dict }}
{{ if not (transform.CanHighlight .Type) }}
{{ $opts = dict "type" "text" }}
{{ end }}
{{ $result := transform.HighlightCodeBlock . $opts }}
{{ $result.Wrapped }}