
You can use the 'tableofcontents' front matter option to enable or disable the display of a table of contents. Setting this option will override the new site-wide parameter 'tableofcontentswordcount' which will automatically add a table of contents on pages with more than the specified number of words. Set to '0' to always show a table of contents, or set to '-1' to never show a table of contents (the default behaviour).
32 lines
1.5 KiB
HTML
32 lines
1.5 KiB
HTML
{{ define "title" }}{{ .Title }} – {{ .Site.Title }}{{ end }}
|
|
{{ define "main" }}
|
|
<div class="title-header">
|
|
<h1>{{ if .Draft }}<i>(Draft)</i> {{ end }}{{ .Title }}</h1>
|
|
<div class="title-header-date">
|
|
{{- if eq .Date.IsZero false }}
|
|
<time>{{ .Date.Format "Monday, January 2, 2006" }}</time>
|
|
{{- end }}
|
|
{{- if (and (eq .Lastmod.IsZero false) (ne .Lastmod .Date)) }}
|
|
— last updated <time>{{ .Lastmod.Format "January 2, 2006" }}</time>
|
|
{{- end }}
|
|
</div>
|
|
</div>
|
|
{{ if or (.Params.tableofcontents) (and (ne .Params.tableofcontents false) (isset .Site.Params "tableofcontentswordcount") (ge .Site.Params.TableOfContentsWordCount 0) (gt .WordCount .Site.Params.TableOfContentsWordCount)) }}
|
|
{{/* If the front matter parameter is true, show the toc */}}
|
|
{{/* Elif the front matter parameter is false, don't show the toc */}}
|
|
{{/* Elif the front matter parameter is not set, show the toc if the site parameter is set, non-negative, and less than the word count */}}
|
|
<div class="table-of-contents">
|
|
<details open="open">
|
|
<summary>
|
|
<span class="table-of-contents-title">Table of Contents</span>
|
|
</summary>
|
|
{{ $toc := .TableOfContents -}}
|
|
{{- $toc := replaceRE `<ul>\s?<li>\s?<ul>` `<ul>` $toc -}}
|
|
{{- $toc := replaceRE `</ul>\s?</li>\s?</ul>` `</ul>` $toc -}}
|
|
{{- safeHTML $toc }}
|
|
</details>
|
|
</div>
|
|
{{ end }}
|
|
{{ .Content }}
|
|
{{ end }}
|