diff options
Diffstat (limited to 'layouts/partials/main/sections/list-menu.html')
-rw-r--r-- | layouts/partials/main/sections/list-menu.html | 80 |
1 files changed, 51 insertions, 29 deletions
diff --git a/layouts/partials/main/sections/list-menu.html b/layouts/partials/main/sections/list-menu.html index 4a26b3f..3e3ff9f 100644 --- a/layouts/partials/main/sections/list-menu.html +++ b/layouts/partials/main/sections/list-menu.html @@ -7,40 +7,62 @@ {{ end }} </h6> <ul> - {{ $currentURL := .Permalink }} + {{ $root := . }} {{ range (.Site.GetPage "section" .Type).Pages }} - {{ $sectionName1 := index (last 1 (split (delimit (split .Permalink "/") "," "") ",")) 0 }} - {{ $sectionName2 := index (last 2 (split (delimit (split $currentURL "/") "," "") ",")) 0 }} - {{ if .Params.Collapsible }} - <span class="menu__title--collapse {{ if and (in $currentURL .Permalink) (eq $sectionName1 $sectionName2) }}active{{ end }}"> - {{ .Title }} - <span class="menu__title--icon {{ if and (in $currentURL .Permalink) (eq $sectionName1 $sectionName2) }}{{ if eq ($.Param "languagedir") "rtl" }}downrtl{{ else }}down{{ end }}{{ else }}right{{ end }}"> - {{ if eq ($.Param "languagedir") "rtl" }} - {{ partial "svgs/arrow-left.svg" (dict "width" 22 "height" 22) }} - {{ else }} - {{ partial "svgs/arrow-right.svg" (dict "width" 22 "height" 22) }} - {{ end }} - </span> - </span> - <ul class="menu__list {{ if and (in $currentURL .Permalink) (eq $sectionName1 $sectionName2) }}active{{ end }}"> - {{ range .Pages.ByWeight }} - {{ $lastUrlElement1 := index (last 1 (split (delimit (split .Permalink "/") "," "") ",")) 0 }} - {{ $lastUrlElement2 := index (last 1 (split (delimit (split $currentURL "/") "," "") ",")) 0 }} - <li> - <a href="{{ .Permalink }}" class="menu__title {{ if and (eq $lastUrlElement1 $lastUrlElement2) (eq $sectionName1 $sectionName2) }}active{{ end }}">{{ .Title }}</a> - </li> - {{ end }} - </ul> + {{ template "render-menu" (dict "ctx" . "root" $root "depth" 0)}} + {{ end }} + </ul> +</div> + +{{ define "render-menu" }} + {{ $root := .root }} + {{ $ctx := .ctx }} + {{ $depth := .depth }} + {{ $currentURL := $root.Permalink }} + + {{ $sectionName1 := index (last 1 (split (delimit (split $ctx.Permalink "/") "," "") ",")) 0 }} + {{ $sectionName2 := index (last 2 (split (delimit (split $currentURL "/") "," "") ",")) 0 }} + + {{ $active := in $currentURL $ctx.Permalink }} + {{ $active = or $active (eq $sectionName1 $sectionName2) }} + {{ $active = or $active (in $currentURL $sectionName1) }} + + {{ if $ctx.Params.Collapsible }} + <span class="menu__title--collapse {{ if $active }}active{{ end }}" data-depth="{{ $depth }}"> + {{ $ctx.Title }} + <span + class="menu__title--icon {{ if $active }}{{ if eq ($root.Param "languagedir") "rtl" }}downrtl{{ else }}down{{ end }}{{ else }}right{{ end }}"> + {{ if eq ($root.Param "languagedir") "rtl" }} + {{ partial "svgs/arrow-left.svg" (dict "width" 22 "height" 22) }} {{ else }} - {{ $lastUrlElement1 := index (last 1 (split (delimit (split .Permalink "/") "," "") ",")) 0 }} - {{ $lastUrlElement2 := index (last 1 (split (delimit (split $currentURL "/") "," "") ",")) 0 }} - <li class="{{ if and (eq $lastUrlElement1 $lastUrlElement2) (eq $sectionName1 $sectionName2) }}active{{ end }}"> - <a href="{{ .Permalink }}" class="menu__title {{ if and (eq $lastUrlElement1 $lastUrlElement2) (eq $sectionName1 $sectionName2) }}active{{ end }}">{{ .Title }}</a> - </li> + {{ partial "svgs/arrow-right.svg" (dict "width" 22 "height" 22) }} {{ end }} + </span> + </span> + <ul class="menu__list {{ if $active }}active{{ else if (in $ctx.Permalink (print "/" $sectionName1 "/")) }}{{ end }}" + data-data={{ print "/" $sectionName1 "/"}} data-link={{ .root.Permalink }}> + {{ range $ctx.Pages.ByWeight }} + {{ if .Params.Collapsible }} + {{ template "render-menu" (dict "ctx" . "root" $root "depth" (add $depth 1)) }} + {{ else }} + {{ $lastUrlElement1 := index (last 1 (split (delimit (split .Permalink "/") "," "") ",")) 0 }} + {{ $lastUrlElement2 := index (last 1 (split (delimit (split $currentURL "/") "," "") ",")) 0 }} + <li> + <a href="{{ .Permalink }}" + class="menu__title {{ if and (eq $lastUrlElement1 $lastUrlElement2) (eq $sectionName1 $sectionName2) }}active{{ end }}" + data-depth="{{ $depth }}">{{ .Title }}</a> + </li> + {{ end }} {{ end }} </ul> -</div> + {{ else }} + {{ $lastUrlElement1 := index (last 1 (split (delimit (split $ctx.Permalink "/") "," "") ",")) 0 }} + {{ $lastUrlElement2 := index (last 1 (split (delimit (split $currentURL "/") "," "") ",")) 0 }} + <li class="{{ if $active }}active{{ end }}"> + <a href="{{ $ctx.Permalink }}" class="menu__title {{ if $active }}active{{ end }}">{{ $ctx.Title }}</a> + </li> + {{ end }} +{{ end }} <script> var menuTitle = document.querySelectorAll('.menu__title'); |