{{- $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) -}} {{- $currentPages := index $currentEntry $menuPrefix | default slice -}} {{- $currentPages = $currentPages | append .RelPermalink -}} {{- $currentEntry = merge $currentEntry (dict $menuPrefix $currentPages) -}} {{- $isInSlice := .Store.Get "isin"|default slice -}} {{ warnf "%s: %#v" .RelPermalink $isInSlice }} {{- $isInSlice = $isInSlice | append $currentPage.RelPermalink -}} {{ .Store.Set "isin" (uniq $isInSlice) }} {{- end -}} {{- end -}} {{- end -}} {{- end -}} {{- end -}} {{- end -}} {{- if gt (len $currentEntry) 0 -}} {{- $currentPage.Store.Set "graph" $currentEntry -}} {{- end -}}