Skip to content

Latest commit

 

History

History
47 lines (37 loc) · 1.61 KB

File metadata and controls

47 lines (37 loc) · 1.61 KB
title transform.HighlightCodeBlock
description Highlights code received in context within a code block render hook.
categories
keywords
highlight
params
functions_and_methods
aliases returnType signatures
highlight.HighlightResult
transform.HighlightCodeBlock CONTEXT [OPTIONS]

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