{{ $currentNode := . }} {{ range $p := .Site.RegularPages }} {{ $pageFilePath := printf "/%s" $p.File }} {{ $pageDir := "" }} {{ with $p.File }} {{ $pageDir = (substr .Dir 0 -1)}} {{ end }} {{ range $triad := (index $currentNode.Site.Data.sandpointsnamegraph "triads") }} {{ with intersect $triad (slice $pageDir) }} {{ $t := index . 0 }} {{ if eq $t (index $triad 0) }} {{ $.Scratch.SetInMap $pageFilePath "depth" "core" }} {{ $.Scratch.SetInMap $pageFilePath "child_depth" "mantle" }} {{ $.Scratch.SetInMap $pageFilePath "plural" (index $triad 1)}} {{ $.Scratch.SetInMap $pageFilePath "has" (slice (index $triad 2) (index $triad 3))}} {{ range index $p.Params (printf "has_%s" (index $triad 3)) }} {{ $childPath := printf "/%s/%s" (index $triad 2) . }} {{ with $.Scratch.Get $childPath }} {{ if isset . "is_in" }} {{ $isin := index . "is_in" | append ($.GetPage $pageFilePath) }} {{ $.Scratch.SetInMap $childPath "is_in" $isin }} {{ else }} {{ $.Scratch.SetInMap $childPath "is_in" (slice ($.GetPage $pageFilePath)) }} {{ end }} {{ else }} {{ $.Scratch.SetInMap $childPath "is_in" (slice ($.GetPage $pageFilePath)) }} {{ end }} {{ end }} {{ else if eq $t (index $triad 2) }} {{ $.Scratch.SetInMap $pageFilePath "depth" "mantle" }} {{ $.Scratch.SetInMap $pageFilePath "child_depth" "crust" }} {{ $.Scratch.SetInMap $pageFilePath "plural" (index $triad 3)}} {{ $.Scratch.SetInMap $pageFilePath "has" (slice (index $triad 4) (index $triad 5))}} {{ range index $p.Params (printf "has_%s" (index $triad 5)) }} {{ $childPath := printf "/%s/%s" (index $triad 4) . }} {{ with $.Scratch.Get $childPath }} {{ if isset . "is_in" }} {{ $isin := index . "is_in" | append ($.GetPage $pageFilePath) }} {{ $.Scratch.SetInMap $childPath "is_in" $isin }} {{ else }} {{ $.Scratch.SetInMap $childPath "is_in" (slice ($.GetPage $pageFilePath)) }} {{ end }} {{ else }} {{ $.Scratch.SetInMap $childPath "is_in" (slice ($.GetPage $pageFilePath)) }} {{ end }} {{ end }} {{ else if eq $t (index $triad 4) }} {{ $.Scratch.SetInMap $pageFilePath "depth" "crust" }} {{ $.Scratch.SetInMap $pageFilePath "mantle_has" (index $triad 5) }} {{ $.Scratch.SetInMap $pageFilePath "plural" (index $triad 5)}} {{ $.Scratch.SetInMap $pageFilePath "in" (slice (index $triad 2) (index $triad 3))}} {{ end }} {{ $.Scratch.SetInMap $pageFilePath "core" (index $triad 0) }} {{ $.Scratch.SetInMap $pageFilePath "mantle" (index $triad 2) }} {{ $.Scratch.SetInMap $pageFilePath "crust" (index $triad 4) }} {{ end }} {{ end }} {{ end }} {{ return $.Scratch }}