{{- $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 -}}