{{ $current := . }} {{ $site := .Site }} {{ $current.Scratch.Set "prev" false }} {{ $current.Scratch.Set "getNext" false }} {{ $current.Scratch.Set "nextPage" false }} {{ $current.Scratch.Set "prevPage" false }} {{ template "menu_nextprev" dict "sect" $.Site.Data.menu.main.main "current" $current "site" $site }} {{ define "menu_nextprev" }} {{ $current := .current }} {{ $site := .site }} {{ range sort (default (seq 0) .sect) "weight" }} {{ $current.Scratch.Set "current" $current }} {{ $current.Scratch.Set "site" $site }} {{ $ref := default false .ref }} {{ if $ref }} {{ $site := $current.Scratch.Get "site" }} {{ $this := $site.GetPage .ref }} {{ $current := $current.Scratch.Get "current" }} {{ if $current.Scratch.Get "getNext" }} {{ $current.Scratch.Set "nextPage" (dict "name" .name "this" $this) }} {{ $current.Scratch.Set "getNext" false }} {{ end }} {{ if eq $current $this }} {{ $current.Scratch.Set "prevPage" ($current.Scratch.Get "prev") }} {{ $current.Scratch.Set "getNext" true }} {{ end }} {{ $current.Scratch.Set "prev" (dict "name" .name "this" $this) }} {{ end }} {{ $sub := default false .sub }} {{ if $sub }} {{ template "menu_nextprev" dict "sect" $sub "current" ($current.Scratch.Get "current") "site" ($current.Scratch.Get "site") }} {{ end }} {{ end }} {{ end }}