41fa65cbf5
Currently, the new table of contents is disabled by default. I will change that after several versions. ------------- * feat: Table of Content (WIP) * fix: set scratch inside define block * fix(toc): darkmode text color * feat: unify page layout, and add config to disable toc * feat: add scroll-behavior: smooth to html * fix: use <ol> for TOC. And Disable TOC by default for now * refactor: use css flexbox for article page with toc enable toc for example site * feat(i18n): add i18n entry for "Back" and "Table of Contents" * style: remove unused `keep-sidebar` class * doc: add table of contents as feature
57 lines
1.8 KiB
HTML
57 lines
1.8 KiB
HTML
{{ define "body-class" }}
|
|
{{ $TOCEnabled := default (default false .Site.Params.article.toc) .Params.toc }}
|
|
{{- .Scratch.Set "hasTOC" (and (ge (len .TableOfContents) 100) $TOCEnabled) -}}
|
|
article-page {{ if (.Scratch.Get "hasTOC") }}has-toc{{ end }}
|
|
{{ end }}
|
|
|
|
{{ define "container-class" }}
|
|
{{ if (.Scratch.Get "hasTOC") }}
|
|
extended
|
|
{{ else }}
|
|
on-phone--column {{ if .Site.Params.widgets.enabled }}extended{{ else }}compact{{ end }}
|
|
{{ end }}
|
|
{{ end }}
|
|
|
|
{{ define "main" }}
|
|
{{ partial "article/article.html" . }}
|
|
|
|
{{ partial "article/components/related-contents" . }}
|
|
|
|
{{ if or (not (isset .Params "comments")) (eq .Params.comments "true")}}
|
|
{{ partial "comments/include" . }}
|
|
{{ end }}
|
|
|
|
{{ partialCached "footer/footer" . }}
|
|
|
|
{{ partialCached "article/components/photoswipe" . }}
|
|
{{ end }}
|
|
|
|
{{ define "left-sidebar" }}
|
|
{{ if (.Scratch.Get "hasTOC") }}
|
|
<div id="article-toolbar">
|
|
<a href="{{ .Site.BaseURL }}" class="back-home">
|
|
{{ (resources.Get "icons/back.svg").Content | safeHTML }}
|
|
<span>{{ T "article.back" }}</span>
|
|
</a>
|
|
</div>
|
|
{{ else }}
|
|
{{ partial "sidebar/left.html" . }}
|
|
{{ end }}
|
|
{{ end }}
|
|
|
|
{{ define "right-sidebar" }}
|
|
{{ if (.Scratch.Get "hasTOC") }}
|
|
<aside class="sidebar right-sidebar sticky">
|
|
<section class="widget archives">
|
|
<div class="widget-icon">
|
|
{{ partial "helper/icon" "hash" }}
|
|
</div>
|
|
<h2 class="widget-title section-title">{{ T "article.tableOfContents" }}</h2>
|
|
|
|
<div class="widget--toc">
|
|
{{ .TableOfContents }}
|
|
</div>
|
|
</section>
|
|
</aside>
|
|
{{ end }}
|
|
{{ end }} |