diff --git a/layouts/docs/list.html b/layouts/docs/list.html index b8ba1bb..b78b4d5 100644 --- a/layouts/docs/list.html +++ b/layouts/docs/list.html @@ -1,5 +1,15 @@ {{ define "main" }}
{{ partial "sidebar.html" . }} + {{ partial "toc.html" . }} +
+
+ {{ partial "breadcrumb.html" . }} +
+

{{ .Title }}

+ {{ .Content }} +
+
+
{{ end }} diff --git a/layouts/docs/single.html b/layouts/docs/single.html new file mode 100644 index 0000000..b78b4d5 --- /dev/null +++ b/layouts/docs/single.html @@ -0,0 +1,15 @@ +{{ define "main" }} +
+ {{ partial "sidebar.html" . }} + {{ partial "toc.html" . }} +
+
+ {{ partial "breadcrumb.html" . }} +
+

{{ .Title }}

+ {{ .Content }} +
+
+
+
+{{ end }} diff --git a/layouts/partials/toc.html b/layouts/partials/toc.html new file mode 100644 index 0000000..12a4a0b --- /dev/null +++ b/layouts/partials/toc.html @@ -0,0 +1,55 @@ +{{/* Table of Contents */}} +{{/* TODO: toc should be able to get disabled through page frontmatter */}} +{{/* TODO: toc bottom part should be able to hide */}} +
+
+ {{ with .Fragments.Headings }} +

On This Page

+ {{ range . }} + + {{ end }} + {{ end }} + + {{ $borderClass := "mt-8 border-t bg-white pt-8 shadow-[0_-12px_16px_white] dark:bg-dark dark:shadow-[0_-12px_16px_#111]" }} + {{ if not .Fragments.Headings }} + {{ $borderClass = "" }} + {{ end }} + + + +
+
+ +{{/* TOC subheading component. + This is a recursive component that renders a list of headings. +*/}} +{{- define "side-toc-subheading" -}} + {{ $headings := .headings }} + {{ $level := .level }} + {{ if ge $level 6 }} + {{ return }} + {{ end }} + + {{ $padding := (mul $level 4) }} + {{ $class := cond (eq $level 0) "font-semibold" (printf "ltr:pl-%d rtl:pr-%d" $padding $padding) }} + + {{ range $headings }} + {{ if .Title }} +
  • + + {{ .Title }} + +
  • + {{ end }} + {{ with .Headings }} + {{ template "side-toc-subheading" (dict "headings" . "level" (add $level 1)) }} + {{ end }} + + {{ end }} +{{- end -}}