use heading render hook instead of refactor

This commit is contained in:
geekifan
2025-04-29 11:14:55 +08:00
parent 8bdf964087
commit 3e62b36e0f
2 changed files with 8 additions and 15 deletions

View File

@ -0,0 +1,8 @@
<h{{ .Level }} id="{{ .Anchor }}" {{- range $key, $value := .Attributes }} {{- printf " %s=%v" $key $value | safeHTMLAttr }}{{- end }}>
{{ if and (ne .Level 1) (not (index .Attributes "data-toc-skip")) }}
<span class="me-2">{{- .Text -}}</span>
<a href="#{{ .Anchor }}" class="anchor text-muted"><i class="fas fa-hashtag"></i></a>
{{ else }}
{{- .Text -}}
{{ end }}
</h{{ .Level }}>

View File

@ -18,19 +18,4 @@
{{ $content = replaceRE `<input.*?type="checkbox".*?>` `<i class="far fa-circle fa-fw"></i>` $content }} {{ $content = replaceRE `<input.*?type="checkbox".*?>` `<i class="far fa-circle fa-fw"></i>` $content }}
{{ end }} {{ end }}
<!-- Create heading anchors -->
{{ $headingLevels := slice "2" "3" "4" "5" }}
{{ $headingContent := $content }}
{{ range $level := $headingLevels }}
{{ $markStart := printf `<h%s id="` $level }}
{{ $markEnd := printf `</h%s>` $level }}
{{ $pattern := printf `%s([^"]+)">(.*?)%s` $markStart $markEnd }}
{{ $replacement := printf `%s$1"><span class="me-2">$2</span><a href="#$1" class="anchor text-muted"><i class="fas fa-hashtag"></i></a>%s` $markStart $markEnd }}
{{ $headingContent = replaceRE $pattern $replacement $headingContent }}
{{ end }}
{{ $content = $headingContent | safeHTML }}
{{ $content | safeHTML }} {{ $content | safeHTML }}