hugo-theme-relearn/layouts/partials/toc-id.html

31 lines
1.4 KiB
HTML
Raw Normal View History

{{- if or (eq .Kind "taxonomy") (eq .Kind "term") }}
2023-10-30 18:11:39 +00:00
{{- $lastCapital := "" }}
{{- $pages := slice }}
{{- if eq .Kind "taxonomy" }}
{{- $pages = partialCached "partials/_relearn/pagesTaxonomy.gotmpl" . .Path }}
{{- else if eq .Kind "term" }}
{{- $pages = partialCached "partials/_relearn/pagesTerm.gotmpl" . .Path }}
2023-10-30 18:11:39 +00:00
{{- end }}
{{- $toc_pages := "" }}
{{- range $pages }}
2023-10-30 18:11:39 +00:00
{{- $capital := substr .Title 0 1 | upper }}
{{- if ne $lastCapital $capital }}
{{- $toc_pages = printf "%s <li><a href=\"#%s\">%s</a></li>\n" $toc_pages ($capital | plainify | anchorize) $capital }}
2023-10-30 18:11:39 +00:00
{{- end }}
{{- $lastCapital = $capital }}
{{- end }}
2024-09-01 18:37:58 +00:00
{{- $toc := trim (partial "toc.html" .) "\n\r\t " }}
{{- if and (not $toc) $toc_pages }}
{{- $toc = printf "<nav id=\"TableOfContents\"></nav>" }}
{{- end }}
{{- if and $toc $toc_pages }}
{{- $toc = replaceRE "^(<nav id=\"TableOfContents\">)[\\s]*" "${1}\n <ul>\n" $toc }}
{{- $toc = replaceRE "^(<nav id=\"TableOfContents\">[\\s]*<ul>)[\\s]*<ul>[\\n\\r]*" "${1}\n" $toc }}
{{- $toc = replaceRE "[\\s]*(</nav>)$" "\n </ul>\n${1}" $toc }}
{{- $toc = replaceRE "[ \\t]*</ul>[\\s]*(</ul>[\\s]*</nav>)$" " ${1}" $toc }}
{{- $toc = replaceRE "([ \\t]*</ul>[\\s]*</nav>)$" (printf "%s${1}" $toc_pages) $toc }}
{{- end }}
{{ $toc | safeHTML }}
2023-10-30 18:11:39 +00:00
{{- else }}
{{- partial "toc.html" . }}
{{- end }}