toc: simplify user-defined toc generation #705

dry out too much duplication in the theme
This commit is contained in:
Sören Weber 2023-10-30 07:31:21 +01:00
parent 73d8491b81
commit 589ef2040d
No known key found for this signature in database
GPG key ID: BEC6D55545451B6D
4 changed files with 6 additions and 52 deletions

View file

@ -0,0 +1,4 @@
{{- partial "shortcodes/piratify.html" (dict
"page" .
"pagefield" "TableOfContents"
) }}

View file

@ -1,51 +0,0 @@
{{- if eq .Kind "taxonomy" }}
<nav id="TableOfContents">
<ul>
{{- $lastCapital := "" }}
{{- $terms := slice }}
{{- range .Data.Terms }}
{{- $terms = $terms | append (dict "Title" (default .Page.Data.Term .Page.Title) "Term" . )}}
{{- end }}
{{- range sort $terms ".Title" }}
{{- $capital := substr .Title 0 1 | upper }}
{{- $len := 0 }}
{{- range .Term.Pages }}
{{- $c:=""}}{{/* count pages of term */}}
{{- if and .Title .RelPermalink (or (ne (.Scratch.Get "relearnIsHiddenStem") true) (ne .Site.Params.disableTagHiddenPages true) ) }}
{{- $len = add $len 1 }}
{{- end }}
{{- end }}
{{- if $len }}
{{- if ne $lastCapital $capital }}
<li><a href="#{{ $capital | plainify | anchorize }}">{{ $capital }}</a></li>
{{- end }}
{{- $lastCapital = $capital }}
{{- end }}
{{- end }}
</ul>
</nav>
{{- else if eq .Kind "term" }}
<nav id="TableOfContents">
<ul>
{{- $lastCapital := "" }}
{{- $pages := slice }}
{{- range .Pages }}
{{- if and .Title .RelPermalink (or (ne (.Scratch.Get "relearnIsHiddenStem") true) (ne .Site.Params.disableTagHiddenPages true) ) }}
{{- $pages = $pages | append (dict "Title" .Title "Page" . )}}
{{- end }}
{{- end }}
{{- range sort $pages ".Title" }}
{{- $capital := substr .Title 0 1 | upper }}
{{- if ne $lastCapital $capital }}
<li><a href="#{{ $capital | plainify | anchorize }}">{{ $capital }}</a></li>
{{- end }}
{{- $lastCapital = $capital }}
{{- end }}
</ul>
</nav>
{{- else }}
{{- partial "shortcodes/piratify.html" (dict
"page" .
"pagefield" "TableOfContents"
) }}
{{- end }}

View file

@ -0,0 +1 @@
{{- .TableOfContents }}

View file

@ -44,5 +44,5 @@
</ul>
</nav>
{{- else }}
{{- .TableOfContents }}
{{- partial "toc-content.html" . }}
{{- end }}