Skip to content
Snippets Groups Projects
menu.html 2.80 KiB
{{- $kind := .kind -}}
{{ $items := .items }}
{{ $context := .context }}
{{ if $kind }}
  {{ $menu := partial "GetMenu" $kind }}
  {{ $items = $menu.items }}
{{ end }}
{{- $level := .level -}}
{{- $stop := .stop -}}
{{- $dropdown := .dropdown }}
{{- $ulClass := "" -}}
{{- if .class -}}
  {{- $ulClass = printf "%s " .class -}}
{{- end -}}
{{ $extern_link := i18n "commons.link.blank" }}
<ul class="{{ $ulClass }}{{ if $level }}nav-level-{{ $level }}{{ end }}">
  {{ range $items -}}
    {{- $slug := urlize .title -}}
    {{- $itemClass := "" -}}
    {{- $linkClass := "" -}}
    {{- $attr := "" -}}
    {{- $attr_title := "" -}}
    {{- $hasDropdown := false -}}
    {{ if eq $context.RelPermalink .target }}
      {{ $linkClass = "active" }}
    {{ end }}
    {{- if gt (len .children) 0 -}}
      {{- $itemClass = printf "%shas-children" $itemClass -}}
    {{- end -}}
    {{- if and (gt (len .children) 0) $dropdown (eq $level 1) -}}
      {{- $hasDropdown = true -}}
      {{- $attr = printf "id=\"dropdown-%s\" role=\"button\" aria-expanded=\"false\" tabindex=\"0\"" $slug -}}
    {{- end -}}
    {{- if and (hasPrefix .target "http") (eq .kind "url") -}}
      {{- $attr = " target=\"_blank\" rel=\"noreferrer\"" -}}
      {{- $attr_title = printf "title=\"%s - %s\"" .title $extern_link -}}
    {{- end -}}
    {{- if or (ne $stop 1) (and (eq $stop 1) (ne .kind "blank")) -}}
    <li{{ if ne $itemClass ""}} class="{{ $itemClass }}"{{ end }}>
      {{- if ne .kind "blank" -}}
        <a href="{{ .target }}"{{ if ne $linkClass ""}} class="{{ $linkClass }}"{{ end }} {{ safeHTMLAttr $attr }} {{ safeHTMLAttr $attr_title }}>{{ .title }}</a>
      {{- else -}}
        <span class="{{ if ne $linkClass ""}} {{ $linkClass }}{{ end }}{{ if gt .level 1 }} disabled{{ end }}" {{ safeHTMLAttr $attr }}>{{ .title }}</span>
      {{- end -}}
      {{- if ne $stop $level -}}
        {{- if $hasDropdown }}
          <div class="dropdown-menu" aria-labelledby="dropdown-{{ $slug }}">
        {{- end -}}
        {{- if gt (len .children) 0 -}}
          {{- $nextLevel := add $level 1 -}}
          {{- partial "commons/menu.html"
                (dict
                  "items" .children
                  "level" $nextLevel
                  "context" $context
                ) -}}
        {{- end -}}
        {{- if $hasDropdown -}}
          </div>
        {{- end -}}
      {{- end -}}
    </li>
    {{- end -}}
  {{ end -}}
  
  {{ if and (eq $kind "primary") (site.Params.search.active) (eq site.Params.search.position "menu")}}
    <button id="search-button" class="pagefind-ui__toggle" aria-expanded="false">
      {{- i18n (printf "commons.search.title") -}}
    </button>
    {{- partial "header/search.html" . -}}
  {{ end }}
  {{ if and (eq $kind "primary") (site.Params.menu.i18n.display) }}
    {{ partial "header/i18n.html" . }}
  {{ end }}
</ul>