You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

202 lines
8.8 KiB

{{ $currentNode := . }}
{{ $_ := newScratch }}
{{ $debug := (slice) }}
{{ $sandnameSingular := (slice) }}
{{ $sandnamePlural := (slice) }}
{{ range $k, $v := $.Site.Data.sandpointsnamegraph }}
{{ $sandnameSingular = $sandnameSingular | append $k }}
{{ $sandnamePlural = $sandnamePlural | append $v }}
{{ end }}
{{ $pPath := "" }}
{{ range $p := .Site.RegularPages }}
{{ $pPath = printf "/%s" $p.File }}
{{ $pageDir := "" }}
{{ with $p.File }}
{{ $pageDir = (substr .Dir 0 -1)}}
{{ end }}
{{ $content := $p.Content }}
{{ with $links := $p.Scratch.Get "links" }}
{{ range $link := $links }}
{{ $linkPath := printf "/%s" $link.File}}
{{ with ($_.Get $linkPath) }}
{{ $_.SetInMap $linkPath "backlinks" (uniq ((index ($_.Get $linkPath) "backlinks") | append $p)) }}
{{ else }}
{{ $_.SetInMap $linkPath "backlinks" (slice $p) }}
{{ end }}
{{ end }}
{{ end }}
{{ $paramsKeys := (slice) }}
{{ range $k, $v := $p.Params }}
{{ $paramsKeys = $paramsKeys | append $k }}
{{ end }}
{{ $mentions := intersect $paramsKeys $sandnamePlural }}
{{ range $mention := $mentions }}
{{ range $m := index $p.Params $mention }}
{{ $mentionLink := printf "/%s/%s" (substr $mention 0 -1) $m }}
{{ with ($_.Get $mentionLink) }}
{{ $p.Scratch.Add "links" (uniq (($p.Scratch.Get "links")| append ($.GetPage $mentionLink))) }}
{{ $_.SetInMap $mentionLink "backlinks" (uniq ((index ($_.Get $mentionLink) "backlinks") | append $p)) }}
{{ else }}
{{ $p.Scratch.Add "links" (uniq (($p.Scratch.Get "links")| append ($.GetPage $mentionLink))) }}
{{ $_.SetInMap $mentionLink "backlinks" (slice $p) }}
{{ end }}
{{ end }}
{{ end }}
{{ $gp := $.GetPage $pPath }}
{{ $gpPath := printf "/%s" $gp.File }}
{{ range $k, $v := $gp.Params }}
{{ with in $k "has_" }}
{{ $s := index (split $k "has_") 1 }}
{{ range $sin,$plur := $currentNode.Site.Data.sandpointsnamegraph }}
{{ if eq $s $plur }}
{{ range index $gp.Params $k }}
{{ $cp := $.GetPage (printf "/%s/%s" $sin .) }}
{{ $cpPath := printf "/%s" $cp.File }}
{{ range $kcp, $vcp := $cp.Params }}
{{ with in $kcp "has_" }}
{{ $scp := index (split $kcp "has_") 1 }}
{{ range $sincp,$plurcp := $currentNode.Site.Data.sandpointsnamegraph }}
{{ if eq $scp $plurcp }}
{{ $_.SetInMap $gpPath "depth" "core" }}
{{ $_.SetInMap $gpPath "child_depth" "mantle" }}
{{ $_.SetInMap $gpPath "has" $s }}
{{ with $gp.File }}
{{ $core := substr .Dir 0 -1 }}
{{ with index ($_.Get $gpPath) "core" }}
{{ $_.SetInMap $gpPath "core" (uniq ((index ($_.Get $gpPath) "core") | append $core)) }}
{{ else }}
{{ $_.SetInMap $gpPath "core" (slice $core) }}
{{ end }}
{{ $cor := $_.Get $cpPath }}
{{ with $cor.core }}
{{ $_.SetInMap $cpPath "core" (uniq ((index ($_.Get $cpPath) "core") | append $core)) }}
{{ else }}
{{ $_.SetInMap $cpPath "core" (slice $core) }}
{{ end }}
{{ end }}
{{ with $cp.File }}
{{ $mantle := substr .Dir 0 -1 }}
{{ with index ($_.Get $gpPath) "mantle" }}
{{ $_.SetInMap $gpPath "mantle" (uniq ((index ($_.Get $gpPath) "mantle") | append $mantle)) }}
{{ else }}
{{ $_.SetInMap $gpPath "mantle" (slice $mantle) }}
{{ end }}
{{ with index ($_.Get $cpPath) "mantle" }}
{{ $_.SetInMap $cpPath "mantle" (uniq ((index ($_.Get $cpPath) "mantle") | append $mantle)) }}
{{ else }}
{{ $_.SetInMap $cpPath "mantle" (slice $mantle) }}
{{ end }}
{{ end }}
{{ with $_.Get $gpPath }}
{{ if .has_children }}
{{ $hasChildren := index . "has_children" | append $cp }}
{{ $_.SetInMap $gpPath "has_children" (uniq $hasChildren) }}
{{ else }}
{{ $_.SetInMap $gpPath "has_children" (slice $cp) }}
{{ end }}
{{ end }}
{{ $_.SetInMap $cpPath "depth" "mantle" }}
{{ $_.SetInMap $cpPath "child_depth" "crust" }}
{{ $_.SetInMap $cpPath "plural" $plur }}
{{ $_.SetInMap $cpPath "has" $scp }}
{{ if isset $cp.Params $kcp }}
{{ $_.SetInMap $cpPath "has_children" (slice) }}
{{ with index ($_.Get $cpPath) "is_in" }}
{{ $isincore := index ($_.Get $cpPath) "is_in" | append $gp}}
{{ $_.SetInMap $cpPath "is_in" (uniq $isincore) }}
{{ else }}
{{ $_.SetInMap $cpPath "is_in" (slice $gp) }}
{{ end }}
{{ end }}
{{ range index $cp.Params $kcp }}
{{ $gcp := $.GetPage (printf "/%s/%s" $sincp .) }}
{{ $gcpPath := printf "/%s" $gcp.File }}
{{ with $_.Get $cpPath }}
{{ if .has_children }}
{{ $hasGChildren := index . "has_children" | append $gcp }}
{{ $_.SetInMap $cpPath "has_children" (uniq $hasGChildren) }}
{{ else }}
{{ $_.SetInMap $cpPath "has_children" (slice $gcp) }}
{{ end }}
{{ end }}
{{ $_.SetInMap $gcpPath "depth" "crust" }}
{{ $_.SetInMap $gcpPath "plural" $plurcp }}
{{ $_.SetInMap $gcpPath "in" (slice $sin $plur) }}
{{ with $gp.File }}
{{ $core := substr .Dir 0 -1 }}
{{ with index ($_.Get $gcpPath) "core" }}
{{ $_.SetInMap $gcpPath "core" (uniq ((index ($_.Get $gcpPath) "core") | append $core)) }}
{{ else }}
{{ $_.SetInMap $gcpPath "core" (slice $core) }}
{{ end }}
{{ end }}
{{ with $cp.File }}
{{ $mantle := substr .Dir 0 -1 }}
{{ with index ($_.Get $gcpPath) "mantle" }}
{{ $_.SetInMap $gcpPath "mantle" (uniq ((index ($_.Get $gcpPath) "mantle") | append $mantle)) }}
{{ else }}
{{ $_.SetInMap $gcpPath "mantle" (slice $mantle) }}
{{ end }}
{{ end }}
{{ with $gcp.File }}
{{ $crust := substr .Dir 0 -1 }}
{{ with index ($_.Get $gpPath) "crust" }}
{{ $_.SetInMap $gpPath "crust" (uniq ((index ($_.Get $gpPath) "crust") | append $crust)) }}
{{ else }}
{{ $_.SetInMap $gpPath "crust" (slice $crust) }}
{{ end }}
{{ with index ($_.Get $cpPath) "crust" }}
{{ $_.SetInMap $cpPath "crust" (uniq ((index ($_.Get $cpPath) "crust") | append $crust)) }}
{{ else }}
{{ $_.SetInMap $cpPath "crust" (slice $crust) }}
{{ end }}
{{ with index ($_.Get $gcpPath) "crust" }}
{{ $_.SetInMap $gcpPath "crust" (uniq ((index ($_.Get $gcpPath) "crust") | append $crust)) }}
{{ else }}
{{ $_.SetInMap $gcpPath "crust" (slice $crust) }}
{{ end }}
{{ end }}
{{ with $_.Get $gcpPath }}
{{ if .is_in }}
{{ $isinmantle := index . "is_in" | append $cp}}
{{ $_.SetInMap $gcpPath "is_in" (uniq $isinmantle) }}
{{ else }}
{{ $_.SetInMap $gcpPath "is_in" (slice $cp) }}
{{ end }}
{{ end }}
{{ end }}
{{ end }}
{{ end }}
{{ end }}
{{ end }}
{{ end }}
{{ end }}
{{ end }}
{{ end }}
{{ end }}
{{ $_.SetInMap $pPath "debug" (printf "%#v" $debug) }}
{{ end }}
{{ return $_ }}