52 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
		
		
			
		
	
	
			52 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
|  | {{- /* | ||
|  | 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 }} | ||
|  |   <nav> | ||
|  |     <ul> | ||
|  |       {{- partial "inline/menu/walk.html" (dict "page" $page "menuEntries" .) }} | ||
|  |     </ul> | ||
|  |   </nav> | ||
|  | {{- 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 }} | ||
|  |         <ul> | ||
|  |           {{- partial "inline/menu/walk.html" (dict "page" $page "menuEntries" .) }} | ||
|  |         </ul> | ||
|  |       {{- end }} | ||
|  |     </li> | ||
|  |   {{- end }} | ||
|  | {{- end }} |