summaryrefslogtreecommitdiff
path: root/layouts/posts
diff options
context:
space:
mode:
authorEltrac <hi@guhub.cn>2025-05-16 15:03:14 +0800
committerEltrac <hi@guhub.cn>2025-05-16 15:03:14 +0800
commit5d37a104c4a413df04e4b0fbcfe6cb026cd52136 (patch)
tree0cf4e97f743a0cf4722d636accf8a9e65ac8538e /layouts/posts
parent8275be2d2bb9f170000171671629fc215f2d91cb (diff)
perf: replace tocbot with statically generated toc
Generate TOC with Hugo's built-in {{ .TableOfContents }} and add minimal script to implement collapsible list and active styles. Encapsulate TOC as a component where all JavaSript and CSS is in one place with HTML. Configure markup. Former-commit-id: 4b4629edb733d5ebd6485755fd2f63b0457f62c8
Diffstat (limited to 'layouts/posts')
-rw-r--r--layouts/posts/single.html16
1 files changed, 1 insertions, 15 deletions
diff --git a/layouts/posts/single.html b/layouts/posts/single.html
index bb0daca8..e6dc6006 100644
--- a/layouts/posts/single.html
+++ b/layouts/posts/single.html
@@ -37,9 +37,7 @@
<!-- Post Content -->
<div id="post-content" class="post-content markdown-body"
style="view-transition-name: post-content-{{ .File.UniqueID }}">
- {{ if .Params.toc }}
- <div id="toc-container"><div id="toc"></div></div>
- {{ end }}
+ {{ if .Params.toc }}{{ partial "components/toc" . }}{{ end }}
{{ .Site.Params.postHeaderContent | safeHTML }}
{{ .Content }}
{{ if eq .Site.Language.Lang "zh" }}
@@ -82,17 +80,5 @@
{{ else }}<li class="placeholder"></li>{{ end }}
</ul>
</nav>
-
- <script src="/js/tocbot.min.js"></script>
- <script>
- tocbot.init({
- tocSelector: '#toc',
- contentSelector: '#post-content',
- headingSelector: 'h2, h3:not(blockquote > h3)',
- hasInnerContainers: true,
- scrollSmoothOffset: -30
- });
- </script>
-
</article>
{{ end }}