{{ $scratch := newScratch }} {{ template "recurse" (dict "Scratch" $scratch "Sections" .) }} {{ define "recurse" }} {{ range .Sections }} {{ if and .Content (not .Params.BookHidden) }} {{ $.Scratch.Add "BookPages" (slice .) }} {{ end }} {{ if .IsSection }} {{ template "recurse" (dict "Scratch" $.Scratch "Sections" .Pages) }} {{ end }} {{ end }} {{ end }} {{ return $scratch.Get "BookPages" }}