41 lines
1.8 KiB
HTML
41 lines
1.8 KiB
HTML
|
{{- $currentPage := . -}}
|
||
|
{{- $sectionMap := site.Data.sandpointsnamegraph -}}
|
||
|
|
||
|
{{ $currentEntry := dict }}
|
||
|
|
||
|
{{- $menuPrefix := "" -}}
|
||
|
{{- $section := "" -}}
|
||
|
{{- range $sectionMaybe, $pages := $currentPage.Params -}}
|
||
|
{{- if strings.Contains $sectionMaybe "_" -}}
|
||
|
{{- $sectionsSlice := split (strings.TrimPrefix "_" $sectionMaybe) "_" -}}
|
||
|
{{- if gt (len $sectionsSlice) 0 -}}
|
||
|
{{- $pluralSection := index (last 1 $sectionsSlice) 0 -}}
|
||
|
{{- range $singular, $plural := $sectionMap -}}
|
||
|
{{- if eq $plural $pluralSection -}}
|
||
|
{{- $section = $singular -}}
|
||
|
{{- end -}}
|
||
|
{{- end -}}
|
||
|
{{- where site.Pages "Section" $section -}}
|
||
|
{{- $menuPrefix = "no-prefix" -}}
|
||
|
{{- if gt (len $sectionsSlice) 1 -}}
|
||
|
{{- $menuPrefix = delimit (first (sub (len $sectionsSlice) 1) $sectionsSlice) " " -}}
|
||
|
{{- else -}}
|
||
|
{{- end -}}
|
||
|
{{- if reflect.IsSlice $pages -}}
|
||
|
{{- range $page := $pages -}}
|
||
|
{{- with site.GetPage (printf "%s/%s" $section $page) -}}
|
||
|
{{- $currentPrefix := index $currentEntry $currentPage.RelPermalink | default (dict $menuPrefix slice) -}}
|
||
|
{{- $currentPages := index $currentPrefix $menuPrefix | default (slice .RelPermalink) -}}
|
||
|
{{- $currentPages = $currentPages | append .RelPermalink -}}
|
||
|
{{- $currentPrefix = merge $currentPrefix (dict $menuPrefix (uniq $currentPages)) -}}
|
||
|
{{- $currentEntry = merge $currentEntry (dict $currentPage.RelPermalink $currentPrefix) -}}
|
||
|
{{- end -}}
|
||
|
{{- end -}}
|
||
|
{{- end -}}
|
||
|
{{- end -}}
|
||
|
{{- end -}}
|
||
|
{{- end -}}
|
||
|
{{- if gt (len $currentEntry) 0 -}}
|
||
|
{{- site.Home.Store.SetInMap "graph" $currentPage.RelPermalink $currentEntry -}}
|
||
|
{{- end -}}
|