Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/zzossig/hugo-theme-zdoc.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'layouts/partials/main/sections/list-menu.html')
-rw-r--r--layouts/partials/main/sections/list-menu.html80
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');