通过 Markdown Render Hooks | Hugo
实现此功能
1 新建模板#
./layouts/_default/_markup/render-codeblock.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| {{- $lang := .Type | default "text" }}
{{- $title := (split (.Attributes.title | default "") ";") }}
{{- $titleText := (trim (index $title 0 | default "") " ") }}
{{- $titleShowName := (trim (index $title 1 | default "true") " ") }}
{{- $titleName := (trim (index $title 2 | default "") " ") }}
<div class="x-highlight-wrapper">
{{- if gt (len $titleText) 0 }}
<div class="x-highlight-title">
{{- if eq $titleShowName "true" }}
<strong>{{- $titleName }}</strong>
{{- end }}
{{ $titleText }}
</div>
{{- end }}
{{ highlight .Inner $lang .Options }}
</div>
|
2 添加样式#
./assets/css/extended/custom.css
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| .x-highlight-wrapper :nth-child(2) {
margin-top: 0 !important;
border-top-left-radius: 0 !important;
border-top-right-radius: 0 !important;
}
/* --hljs-bg 和 --radius 是 PaperMod 主题提供的变量 */
.x-highlight-title {
background: var(--hljs-bg) !important;
border-top-left-radius: var(--radius);
border-top-right-radius: var(--radius);
color: #e7ce56;
padding: 4px 0 0 16px;
font-size: .78em;
}
|
3 使用方式#
```html { title=“我是文件名” }
```
我是文件名
1
| 代码块加上 title 属性,使用时得加上代码块所属语言
|
```markdown { title=“我只是个标题;false” }
```
我只是个标题
1
| 第二个参数控制是否在标题前加前缀,默认值 "true"
|
```text { title=“loyayz;true;我是:” }
```