transform.Highlight
Syntax
transform.Highlight INPUT LANG [OPTIONS]
Returns
template.HTML
Alias
highlight
highlight
函数使用 Chroma 语法高亮器,支持200多种语言,有40多种可用的样式。
参数
- INPUT
- 需要高亮的代码。
- LANG
- 需要高亮的代码的语言。从 支持的语言 中选择。不区分大小写。
- OPTIONS
- 一个可选的、由逗号分隔的零个或多个 [选项] 组成的列表。在 站点配置 中设置默认值。
选项
- lineNos
- 布尔值。默认为
false
。
在每一行的开头显示行号。 - lineNumbersInTable
- 布尔值。默认为
true
。
将高亮的代码渲染为带有两个单元格的HTML表格。左侧单元格包含行号。右侧单元格包含代码,允许用户选择和复制不带行号的代码。如果lineNos
为false
,则无效。 - anchorLineNos
- 布尔值。默认为
false
。
将每个行号渲染为HTML锚元素,并将周围<span>
的id
属性设置为行号。如果lineNos
为false
,则无效。 - lineAnchors
- 字符串。默认为空。
当将行号渲染为HTML锚元素时,在周围<span>
的id
属性之前添加此值。当页面包含两个或多个代码块时,提供唯一的id
属性。如果lineNos
或anchorLineNos
为false
,则无效。 - lineNoStart
- 整数。默认为
1
。
在第一行的开头显示的数字。如果lineNos
为false
,则无效。 - hl_Lines
- 字符串。默认为空。
要在高亮的代码中强调的行的以空格分隔的列表。要强调第2行、第3行、第4行和第7行,将该值设置为2-4 7
。此选项与lineNoStart
选项无关。 - hl_inline
- 布尔值。默认为
false
。
将高亮的代码渲染为不带包装容器的形式。 - style
- 字符串。默认为
monokai
。
应用于高亮代码的CSS样式。参见 样式库 获取示例。区分大小写。 - noClasses
- 布尔值。默认为
true
。
使用内联CSS样式而不是外部CSS文件。要使用外部CSS文件,请将该值设置为false
,并通过 hugo客户端生成该文件。 - tabWidth
- 整数。默认为
4
。
将这个数字的空格替换为你高亮代码中的每个制表符字符。如果noClasses
为false
,则无效。 - guessSyntax
- 布尔值。默认为
false
。
如果LANG
参数为空或为不可识别的语言,则自动检测语言,否则使用回退语言。
示例
{{ $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" }}
{{ $opts := dict "lineNos" "table" "style" "dracula" }}
{{ transform.Highlight $input $lang $opts }}