transform.Highlight
语法
transform.Highlight CODE LANG [OPTIONS]
返回值
template.HTML
别名
highlight
highlight
函数使用 Chroma 语法高亮器,支持超过 200 种语言和 40 多种可用样式。
参数
transform.Highlight
短代码接受三个参数。
- CODE
- (
string
)要高亮的代码。 - LANG
- (
string
)要高亮的代码的语言。 从支持的语言中选择一种。 此值不区分大小写。 - OPTIONS
- (
map
或string
)一个 map 或用引号括起来的以空格分隔的键值对。在您的站点配置中为每个选项设置默认值。键名不区分大小写。
示例
{{ $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 }}
选项
- anchorLineNos
- (
bool
)是否将每行行号渲染为 HTML 锚元素,并将周围的span
元素的id
属性设置为行号。如果lineNos
为false
,则无关紧要。默认为false
。 - codeFences
- (
bool
)是否高亮围栏代码块。默认为true
。 - guessSyntax
- (
bool
)如果LANG
参数为空或设置为没有相应词法分析器的语言,是否自动检测语言。如果无法自动检测语言,则回退到纯文本词法分析器。默认为false
。
- hl_Lines
- (
string
)一个空格分隔的列表,用于强调高亮代码中的行。要强调第 2、3、4 和 7 行,请将此值设置为2-4 7
。此选项独立于lineNoStart
选项。 - hl_inline
- (
bool
)是否在不包含包装容器的情况下渲染高亮的代码。默认为false
。 - lineAnchors
- (
string
)将行号渲染为 HTML 锚元素时,将此值添加到周围span
元素的id
属性的前面。当页面包含两个或多个代码块时,这将提供唯一的id
属性。如果lineNos
或anchorLineNos
为false
,则无关紧要。 - lineNoStart
- (
int
)要在第一行开头显示的数字。如果lineNos
为false
,则无关紧要。默认为1
。 - lineNos
- (
bool
)是否在每行开头显示一个数字。默认为false
。 - lineNumbersInTable
- (
bool
)是否在包含两个单元格的 HTML 表格中渲染高亮的代码。左侧表格单元格包含行号,而右侧表格单元格包含代码。如果lineNos
为false
,则无关紧要。默认为true
。 - noClasses
- (
bool
)是否使用内联 CSS 样式而不是外部 CSS 文件。要使用外部 CSS 文件,请将此值设置为false
并使用hugo gen chromastyles
命令生成 CSS 文件。默认为true
。 - style
- (
string
)要应用于高亮代码的 CSS 样式。有关示例,请参阅[样式库]。区分大小写。默认为monokai
。 - tabWidth
- (
int
)将此数量的空格替换为高亮代码中的每个制表符。如果noClasses
为false
,则无关紧要。默认为4
。 - wrapperClass
- v0.140.2 中的新功能
- (
string
)用于高亮代码最外层元素的类或多个类。默认为highlight
。