| <div class="menu"> | |
| <ul> | |
| {{- $displayedNode := . }} | |
| {{- template "menu-loop" dict "currentnode" .Site.Home "displayednode" $displayedNode }} | |
| </ul> | |
| </div> | |
| <!-- Template --> | |
| {{- define "menu-loop" }} | |
| {{- $currentNode := .currentnode }} | |
| {{- $displayedNode := .displayednode }} | |
| {{- with .currentnode}} | |
| {{- $numberOfPages := (add (len .Pages) (len .Sections)) }} | |
| <li> | |
| <a class="{{- if .IsAncestor $displayedNode }} ancestor{{- end }} | |
| {{- if eq .RelPermalink $displayedNode.RelPermalink}} active{{- end }} | |
| {{- if .IsSection}} section{{- end }}" href="{{- .RelPermalink }}"> | |
| {{- if .LinkTitle }} | |
| {{- .LinkTitle }} | |
| {{- else }} | |
| {{- $noparent := .File.Dir }} | |
| {{- if .Parent.File }} | |
| {{- $noparent = replace .File.Dir .Parent.File.Dir "" }} | |
| {{- end }} | |
| {{- replaceRE "/" "-" $noparent }}{{- .File.TranslationBaseName }} | |
| {{- end }} | |
| </a> | |
| {{- if (or (.IsDescendant $displayedNode) (.IsAncestor $displayedNode) (.InSection $displayedNode)) }} | |
| <ul class="{{- if .IsAncestor $displayedNode}} ancestor{{- end }} | |
| {{- if ne $numberOfPages 0 }} parent{{- end }}"> | |
| {{- $subElements := dict }} | |
| {{- range (where .Site.Pages ".Params.unlisted" "!=" "true") }} | |
| {{- if and (eq .Parent $currentNode) (.IsDescendant $currentNode) }} | |
| {{- $subElements = merge $subElements (dict (string .) . ) }} | |
| {{- end }} | |
| {{- end }} | |
| {{- range $subElements }} | |
| {{- template "menu-loop" dict "currentnode" . "displayednode" $displayedNode }} | |
| {{- end }} | |
| </ul> | |
| {{- end }} | |
| </li> | |
| {{- end }} | |
| {{- end }} |