diff options
author | Alexander Neonxp Kiryukhin <i@neonxp.ru> | 2024-11-28 00:46:17 +0300 |
---|---|---|
committer | Alexander Neonxp Kiryukhin <i@neonxp.ru> | 2024-11-28 00:46:17 +0300 |
commit | 54375572e11d23dacb20c5742d171af3072d7b9c (patch) | |
tree | a190e43087c520846658f7d68cc3bb263427a254 /layouts/partials/menu.html | |
parent | 8b78390987476352a6459460e00d5c4cdc0717c2 (diff) |
Серьезная реновация
Diffstat (limited to 'layouts/partials/menu.html')
-rw-r--r-- | layouts/partials/menu.html | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/layouts/partials/menu.html b/layouts/partials/menu.html new file mode 100644 index 0000000..c860b4c --- /dev/null +++ b/layouts/partials/menu.html @@ -0,0 +1,53 @@ +{{- /* +Renders a menu for the given menu ID. + +@context {page} page The current page. +@context {string} menuID The menu ID. + +@example: {{ partial "menu.html" (dict "menuID" "main" "page" .) }} +*/}} + +{{- $page := .page }} +{{- $menuID := .menuID }} + +{{- with index site.Menus $menuID }} + <aside> + <nav> + <ol> + {{- partial "inline/menu/walk.html" (dict "page" $page "menuEntries" .) }} + </ol> + </nav> + </aside> +{{- end }} + +{{- define "partials/inline/menu/walk.html" }} + {{- $page := .page }} + {{- range .menuEntries }} + {{- $attrs := dict "href" .URL }} + {{- if $page.IsMenuCurrent .Menu . }} + {{- $attrs = merge $attrs (dict "class" "active" "aria-current" "page") }} + {{- else if $page.HasMenuCurrent .Menu .}} + {{- $attrs = merge $attrs (dict "class" "ancestor" "aria-current" "true") }} + {{- end }} + {{- $name := .Name }} + {{- with .Identifier }} + {{- with T . }} + {{- $name = . }} + {{- end }} + {{- end }} + <li> + <a + {{- range $k, $v := $attrs }} + {{- with $v }} + {{- printf " %s=%q" $k $v | safeHTMLAttr }} + {{- end }} + {{- end -}} + >{{ $name }}</a> + {{- with .Children }} + <ol> + {{- partial "inline/menu/walk.html" (dict "page" $page "menuEntries" .) }} + </ol> + {{- end }} + </li> + {{- end }} +{{- end }} |