Highlight.JS
默认使用 Highlight.JS 进行代码语法高亮。
可通过代码块或短代码使用。
支持的语言
默认情况下只支持以下 “Common” 类别中的语言 1 :
bash、c、cpp、csharp、css、diff、go、graphql、ini、java、javascript、json、kotlin、less、lua、makefile、markdown、objectivec、perl、php、php-template、plaintext、python、python-repl、r、ruby、rust、scss、shell、sql、swift、typescript、vbnet、wasm、xml、yaml可通过 页面参数2
hljs.languages添加其他 HLJS 支持的语言例如添加
powershell的支持:content/example.md--- title: Example params: hljs: languages: - powershell ---+++ title = 'Example' [params.hljs] languages = [ "powershell" ] +++
{ "title": "Example", "params": { "hljs": { "languages": [ "powershell" ] } } }
用法
代码块
| Markdown | 渲染效果 |
|---|---|
```javascript const array1 = [1, 2, 3, 4]; const sum = array1.reduce((a, b) => a + b); ``` | const array1 = [1, 2, 3, 4]; const sum = array1.reduce((a, b) => a + b); |
参数
可以添加以花括号包裹、以空格为分割的参数:
| Markdown | 渲染效果 |
|---|---|
```javascript {lineNos=true title="helloworld.js" copy=true }
(() => {
console.log("Hello World!");
})();
``` | (() => {
console.log("Hello World!");
})(); |
| 名称 | 类型 | 必要 | 值 | 描述 |
|---|---|---|---|---|
noHeader | 否 | true、false(默认) | 是否禁用代码顶部的标题栏 | |
title | 否 | 标题 | ||
copy | 否 | true、false(默认) | 是否显示「复制」按钮 | |
lineNos | 否 | true、false(默认) | 是否显示行号 | |
lineNoStart | 否 | 默认为 1 | 起始行号 | |
hl_Lines | 否(未实现) | a 行号为a的行a,b 行号为a和b的行a-b 行号为a到b的行 |
短代码
使用 code 短代码对行内的代码进行语法高亮:
| Markdown | 渲染效果 |
|---|---|
行内 {{< code >}}console.log("a"){{< /code >}} | 行内 console.log("a") |
通常情况下,HLJS 会自动判断代码的语言,如果自动检测结果有误或您希望明确指明代码的语言,可以使用首个位置参数指定语言:
| Markdown | 渲染效果 |
|---|---|
行内 {{< code java >}}console.log("a"){{< /code >}} | 行内 console.log("a") |
Chroma
保留了 Hugo 内建的 Chroma 代码语法高亮,须使用短代码来调用。
更多信息见 Hugo 文档。
| Markdown | 渲染效果 |
|---|---|
{{< highlight go "linenos=inline, style=github" >}}
package main
import "fmt"
func main() {
for i := 0; i < 3; i++ {
fmt.Println("Value of i:", i)
}
}
{{< /highlight >}} | |