|
20 | 20 |
|
21 | 21 | <ul class="hidden lg:flex items-stretch list-none m-0">
|
22 | 22 | {{- range .Site.Data.nav }}
|
23 |
| - {{- if .Title }} |
| 23 | + {{- if .Dropdown }} |
24 | 24 | <!-- Dropdown item -->
|
25 | 25 | <li x-data="{ isDropdownOpen: false, openedByHover: false }" class="flex items-center mx-2 border-b-2 border-transparent" @mouseenter="isDropdownOpen = true; openedByHover = true" @mouseleave="isDropdownOpen = false; openedByHover = false" @click.outside="isDropdownOpen = false">
|
26 | 26 | <button @click="if (!openedByHover) { isDropdownOpen = !isDropdownOpen }" class="whitespace-nowrap p-2">
|
|
29 | 29 | </button>
|
30 | 30 | <div class="absolute">
|
31 | 31 | <ul x-show="isDropdownOpen" x-cloak class="absolute mt-6 py-2 whitespace-nowrap bg-white rounded-sm shadow-md z-50">
|
32 |
| - {{- range .Children }} |
33 |
| - {{- if eq . "|" }} |
34 |
| - <li> |
35 |
| - <hr class="border-gray-200 my-2"/> |
36 |
| - </li> |
37 |
| - {{- else }} |
38 |
| - {{- with $.Site.GetPage . }} |
| 32 | + {{- range $dropdownItem := .Dropdown }} |
| 33 | + {{- if $dropdownItem.Path }} |
| 34 | + {{- with $.Site.GetPage $dropdownItem.Path }} |
39 | 35 | <li>
|
40 | 36 | <a href="{{ .RelPermalink }}" class="flex items-center px-4 py-2 text-gray-800 hover:bg-secondary hover:text-white hover:no-underline" data-umami-event="nav-{{ replaceRE "^.*/([^/]+)/?$" "$1" .RelPermalink }}">
|
41 |
| - <span>{{ cond (isset .Params "navtitle") .Params.Navtitle .Title }}</span> |
42 |
| - {{- if .Params.Navbadge }} |
43 |
| - <span class="inline-flex px-2 py-1 rounded-full text-xs font-medium tracking-wide uppercase bg-primary-l2 text-dark ml-2">{{ .Params.Navbadge }}</span> |
| 37 | + <span>{{ .Title }}</span> |
| 38 | + {{- if $dropdownItem.Badge }} |
| 39 | + <span class="inline-flex px-2 py-1 rounded-full text-xs font-medium tracking-wide uppercase bg-primary-l2 text-dark ml-2">{{ i18n $dropdownItem.Badge . }}</span> |
44 | 40 | {{- end }}
|
45 | 41 | </a>
|
46 | 42 | </li>
|
47 | 43 | {{- end }}
|
| 44 | + {{- else if $dropdownItem.URL }} |
| 45 | + <li> |
| 46 | + <a href="{{ $dropdownItem.URL }}" target="_blank" rel="noopener" class="flex items-center px-4 py-2 text-gray-800 hover:bg-secondary hover:text-white hover:no-underline" data-umami-event="nav-{{ $dropdownItem.UmamiEvent }}"> |
| 47 | + <span>{{ i18n $dropdownItem.Title . }}</span> |
| 48 | + <i class="fas fa-external-link fa-fw ml-2"></i> |
| 49 | + </a> |
| 50 | + </li> |
| 51 | + {{- else if $dropdownItem.Separator }} |
| 52 | + <li> |
| 53 | + <hr class="border-gray-200 my-2"/> |
| 54 | + </li> |
48 | 55 | {{- end }}
|
49 | 56 | {{- end }}
|
50 | 57 | </ul>
|
51 | 58 | </div>
|
52 | 59 | </li>
|
53 |
| - {{- else if .URL }} |
54 |
| - <!-- Direct link --> |
55 |
| - {{- with $.Site.GetPage .URL }} |
| 60 | + {{- else if .Path }} |
| 61 | + <!-- Page item --> |
| 62 | + {{- with $.Site.GetPage .Path }} |
56 | 63 | {{- $navItemBorderColor := cond (hasPrefix $currentRelPermalink .RelPermalink) $borderColor "border-transparent" }}
|
57 | 64 | <li class="flex items-center mx-2 border-b-2 {{ $navItemBorderColor }} {{ $hoverBorderColor }}">
|
58 | 65 | <a class="p-2 hover:no-underline" href="{{ .RelPermalink }}" data-umami-event="nav-{{ replaceRE "^.*/([^/]+)/?$" "$1" .RelPermalink }}">
|
59 |
| - {{ cond (isset .Params "navtitle") .Params.Navtitle .Title }} |
| 66 | + {{ .Title }} |
60 | 67 | </a>
|
61 | 68 | </li>
|
62 | 69 | {{- end }}
|
|
107 | 114 | <!-- Smartphone Navigation -->
|
108 | 115 | <div :class="isNavOpen ? 'block' : 'hidden'" x-cloak class="lg:hidden max-h-[calc(100vh-48px)] overflow-y-auto">
|
109 | 116 | {{- range .Site.Data.nav }}
|
110 |
| - {{- if .Title }} |
| 117 | + {{- if .Dropdown }} |
111 | 118 | <div class="uppercase tracking-wide text-gray-500 text-xs font-bold p-2">
|
112 | 119 | {{ i18n .Title . }}
|
113 | 120 | </div>
|
114 |
| - {{- range .Children }} |
115 |
| - {{- if eq . "|" }} |
116 |
| - <hr class="border-primary my-2"/> |
117 |
| - {{- else }} |
118 |
| - {{- with $.Site.GetPage . }} |
119 |
| - <a class="block py-2 mx-2 hover:text-secondary hover:no-underline" |
120 |
| - href="{{ .RelPermalink }}" data-umami-event="nav-{{ replaceRE "^.*/([^/]+)/?$" "$1" .RelPermalink }}"> |
121 |
| - <span>{{ cond (isset .Params "navtitle") .Params.Navtitle .Title }}</span> |
122 |
| - {{- if .Params.Navbadge }} |
123 |
| - <span class="inline-flex px-2 py-1 rounded-full text-xs font-medium tracking-wide uppercase bg-primary-l2 text-dark ml-2">{{ .Params.Navbadge }}</span> |
| 121 | + {{- range $dropdownItem := .Dropdown }} |
| 122 | + <!-- Dropdown item --> |
| 123 | + {{- if $dropdownItem.Path }} |
| 124 | + {{- with $.Site.GetPage $dropdownItem.Path }} |
| 125 | + <a class="flex items-center py-2 mx-2 hover:text-secondary hover:no-underline" href="{{ .RelPermalink }}" data-umami-event="nav-{{ replaceRE "^.*/([^/]+)/?$" "$1" .RelPermalink }}"> |
| 126 | + <span>{{ .Title }}</span> |
| 127 | + {{- if $dropdownItem.Badge }} |
| 128 | + <span class="inline-flex px-2 py-1 rounded-full text-xs font-medium tracking-wide uppercase bg-primary-l2 text-dark ml-2">{{ i18n $dropdownItem.Badge . }}</span> |
124 | 129 | {{- end }}
|
125 | 130 | </a>
|
126 | 131 | {{- end }}
|
| 132 | + {{- else if $dropdownItem.URL }} |
| 133 | + <a class="flex items-center py-2 mx-2 hover:text-secondary hover:no-underline" href="{{ $dropdownItem.URL }}" target="_blank" rel="noopener" data-umami-event="nav-{{ $dropdownItem.UmamiEvent }}"> |
| 134 | + <span>{{ i18n $dropdownItem.Title . }}</span> |
| 135 | + <i class="fas fa-external-link fa-fw ml-2"></i> |
| 136 | + </a> |
| 137 | + {{- else if $dropdownItem.Separator }} |
| 138 | + <hr class="border-primary my-2"/> |
127 | 139 | {{- end }}
|
128 | 140 | {{- end }}
|
129 | 141 | <hr class="border-primary my-2"/>
|
130 |
| - {{- else if .URL }} |
131 |
| - {{- with $.Site.GetPage .URL }} |
| 142 | + {{- else if .Path }} |
| 143 | + <!-- Page item --> |
| 144 | + {{- with $.Site.GetPage .Path }} |
132 | 145 | <a class="block py-2 mx-2 hover:text-secondary hover:no-underline"
|
133 | 146 | href="{{ .RelPermalink }}" data-umami-event="nav-{{ replaceRE "^.*/([^/]+)/?$" "$1" .RelPermalink }}">
|
134 |
| - {{ cond (isset .Params "navtitle") .Params.Navtitle .Title }} |
| 147 | + {{ .Title }} |
135 | 148 | </a>
|
136 | 149 | <hr class="border-primary my-2"/>
|
137 | 150 | {{- end }}
|
|
0 commit comments