InkSoul/themes/meme_cdn/layouts/partials/utils/tree-sections.html

24 lines
1.1 KiB
HTML

<!-- Nested / Iteration / Recursion -->
{{- $.Scratch.Delete "sections" -}}
{{- $.Scratch.Delete "pages" -}}
{{- $contentDir := $.Site.Params.contentDir -}}
{{- template "treeSections" (dict "$" $ "path" (cond $.Site.IsMultiLingual (printf `./%s` $contentDir) (printf `./content`))) -}}
{{- define "treeSections" -}}
{{- $ := index . "$" -}}
{{- $path := .path -}}
{{- range (readDir $path) -}}
{{- $fileName := .Name -}}
{{- if .IsDir -}}
{{- $pagePath := (cond $.Site.IsMultiLingual (strings.TrimPrefix (printf `./%s` $.Site.Params.contentDir) (printf `%s/%s` $path $fileName)) (strings.TrimPrefix "./content" (printf `%s/%s` $path $fileName))) -}}
{{- with $.Site.GetPage $pagePath -}}
{{- if and (eq .Kind "section") (in $.Site.Params.mainSections .Section) -}}
{{- $.Scratch.Add "sections" (slice $fileName) -}}
{{- $.Scratch.Add "pages" (slice $pagePath) -}}
{{- end -}}
{{- end -}}
{{- template "treeSections" (dict "$" $ "path" (printf `%s/%s` $path $fileName)) -}}
{{- end -}}
{{- end -}}
{{- end -}}