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 class="topnav">
 | |
|     <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 class="navlink">
 | |
|       <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 }}
 |