{{ $currentLevel := .Level }} {{ $currentHeaderKey := printf "H_%d" $currentLevel }} {{ if not (.Page.Store.Get $currentHeaderKey) }} {{ .Page.Store.Set $currentHeaderKey 1 }} {{ else }} {{ .Page.Store.Set $currentHeaderKey (add 1 (.Page.Store.Get $currentHeaderKey)) }} {{ end }} {{ if .Page.Store.Get "previousLevel" }} {{ $previousLevel := .Page.Store.Get "previousLevel" }} {{ if gt $previousLevel $currentLevel }} {{ range $header := slice 1 2 3 4 5 6 }} {{ if gt $header $currentLevel }} {{ $.Page.Store.Delete (printf "H_%d" $header) }} {{ end }} {{ end }} {{ end }} {{ end }} {{ $counter := "" }} {{ range $header := slice 1 2 3 4 5 6 }} {{ if gt ($.Page.Store.Get (printf "H_%d" $header)) 0 }} {{ $counter = printf "%s%d." $counter ($.Page.Store.Get (printf "H_%d" $header))}} {{ end }} {{end}} {{ $counter }} {{ .Text | safeHTML }} {{ .Page.Store.Get "level" }} {{ .Page.Store.Set "previousLevel" .Level }}