语法高亮

语法高亮

Hugo 使用纯 Go 编写的通用语法高亮工具 Chroma 来实现代码高亮。建议在 Markdown 内容中使用反引号标记代码块,例如:

Markdown
```python
def say_hello():
    print("Hello!")
```

将渲染为:

def say_hello():
    print("Hello!")

功能特性

文件名标注

通过设置 filename 属性可为代码块添加文件名或标题:

Markdown
```python {filename="hello.py"}
def say_hello():
    print("Hello!")
```
hello.py
def say_hello():
    print("Hello!")

文件链接

New in v0.9.2

通过 base_url 属性可设置基础 URL,该 URL 会与文件名组合生成可点击的链接。文件名可包含相对路径以指定文件在基础路径中的位置。

Markdown
```go {base_url="https://github.com/imfing/hextra/blob/main/",filename="exampleSite/hugo.work"}
go 1.20
```

行号显示

设置 linenos=table 可启用行号,并通过 linenostart 指定起始行号:

Markdown
```python {linenos=table,linenostart=42}
def say_hello():
    print("Hello!")
```
42
43
def say_hello():
    print("Hello!")

行高亮

通过 hl_lines 属性可高亮指定行号(支持数组格式):

Markdown
```python {linenos=table,hl_lines=[2,4],linenostart=1,filename="hello.py"}
def say_hello():
    print("Hello!")

def main():
    say_hello()
```
hello.py
1
2
3
4
5
def say_hello():
    print("Hello!")

def main():
    say_hello()

复制按钮

代码块默认启用复制功能,可通过站点配置文件修改其行为:

hugo.yaml
42
43
44
45
46
47
params:
  highlight:
    copy:
      enable: true
      # hover | always
      display: hover

支持语言

完整支持的语言列表请参阅 Chroma 文档

最后更新于