hugo-theme-relearn/layouts/partials/menu.html

188 lines
12 KiB
HTML
Raw Normal View History

2022-02-22 09:32:52 +00:00
{{- $showvisitedlinks := .Site.Params.showVisitedLinks }}
2022-11-17 21:12:18 +00:00
{{- $format := partial "get-format.hugo" . }}
{{- $outputFormat := partial "output-format.hugo" (dict "page" . "format" $format) }}
{{- $basename := "index" }}
{{- if ne $outputFormat "html" }}
{{- $basename = partial "BaseName.hugo" $format.RelPermalink }}
2022-11-17 21:12:18 +00:00
{{- end }}
2023-02-09 23:34:47 +00:00
<aside id="sidebar" class="default-animation{{ if $showvisitedlinks }} showVisitedLinks{{ end }}">
2021-09-12 08:33:24 +00:00
{{- $currentNode := . }}
<div id="header-wrapper" class="default-animation">
<div id="header" class="default-animation">
2021-09-12 08:33:24 +00:00
{{ partial "logo.html" . }}
</div>
{{- if not .Site.Params.disableSearch }}
{{ partial "search.html" . }}
{{- end }}
2021-09-12 08:33:24 +00:00
</div>
{{- if not .Site.Params.disableLandingPageButton }}
2023-06-09 21:42:03 +00:00
{{- if (ne .Site.Params.landingPageURL nil) }}
{{- warnf "%q: UNSUPPORTED usage of 'landingPageURL' config parameter found, remove it and optionally overwrite the `logo.html` partial to provide a link if it should not point to the project's home page; see https://mcshelby.github.io/hugo-theme-relearn/basics/migration/#420" .File.Path }}
2023-06-09 21:42:03 +00:00
{{- end }}
<div id="homelinks" class="default-animation">
<ul>
<li><a class="padding" href="{{ partial "relLangPrettyUglyURL.hugo" (dict "to" .Site.Home) }}">{{ .Site.Params.landingPageName | default `<i class="fas fa-home"></i> Home` | safeHTML }}</a></li>
2021-09-12 08:33:24 +00:00
</ul>
2021-09-13 17:23:38 +00:00
</div>
2021-09-12 08:33:24 +00:00
{{- end }}
2022-02-14 19:34:18 +00:00
<div id="content-wrapper" class="highlightable">
<ul class="topics enlarge morespace{{ if .Site.Params.collapsibleMenu }} collapsible-menu{{ end }}">
{{- $defaultOrdersectionsby := .Site.Params.ordersectionsby | default "weight" }}
{{- $currentOrdersectionsby := .Site.Home.Params.ordersectionsby | default $defaultOrdersectionsby }}
{{- $defaultAlwaysopen := .Site.Params.alwaysopen | default false }}
{{- if eq $currentOrdersectionsby "title" }}
2023-01-22 21:16:31 +00:00
{{- range .Site.Home.Pages.ByTitle }}
{{- template "section-tree-nav" dict "sect" . "currentnode" $currentNode "showvisitedlinks" $showvisitedlinks "alwaysopen" $defaultAlwaysopen }}
{{- end }}
{{- else }}
2023-01-22 21:16:31 +00:00
{{- range .Site.Home.Pages.ByWeight }}
{{- template "section-tree-nav" dict "sect" . "currentnode" $currentNode "showvisitedlinks" $showvisitedlinks "alwaysopen" $defaultAlwaysopen }}
{{- end }}
{{- end }}
</ul>
{{- $page := . }}
2021-09-12 08:33:24 +00:00
{{- $disableShortcutsTitle := .Site.Params.DisableShortcutsTitle }}
{{- with .Site.Menus.shortcuts }}
2021-09-13 17:23:38 +00:00
<div id="shortcuts">
<div class="nav-title padding">{{ if not $disableShortcutsTitle }}{{ T "Shortcuts-Title" }}{{ end }}</div>
<ul class="space">
2021-09-12 08:33:24 +00:00
{{- range sort . "Weight" }}
{{- $shortcut := . }}
{{- with $page.Site.GetPage (printf "%s" $shortcut.URL ) }}
{{- $to := . }}
<li>{{ $shortcut.Pre }}<a class="padding" href="{{ partial "relLangPrettyUglyURL.hugo" (dict "to" $to) }}">{{ safeHTML $shortcut.Name }}</a>{{ $shortcut.Post }}</li>
{{- else }}
<li>{{ $shortcut.Pre }}<a class="padding" href="{{ $shortcut.URL | relLangURL }}">{{ safeHTML $shortcut.Name }}</a>{{ $shortcut.Post }}</li>
{{- end }}
2021-09-12 08:33:24 +00:00
{{- end }}
</ul>
2021-09-13 17:23:38 +00:00
</div>
2021-09-12 08:33:24 +00:00
{{- end }}
{{- $siteLanguages := .Site.Languages }}
{{- $showlangswitch := and .Site.IsMultiLingual (not .Site.Params.disableLanguageSwitchingButton) (gt (int (len $siteLanguages)) 1) }}
{{- $themevariants := slice | append (.Site.Params.themeVariant | default "auto" ) }}
{{- $showvariantswitch := gt (int (len $themevariants)) 1 }}
{{- $footer := partial "menu-footer.html" . }}
{{- $showfooter := not (eq 0 (int (len ($footer | plainify)))) }}
<div class="padding footermargin footerLangSwitch footerVariantSwitch footerVisitedLinks footerFooter{{if $showlangswitch}} showLangSwitch{{end}}{{if $showvariantswitch}} showVariantSwitch{{end}}{{if $showvisitedlinks}} showVisitedLinks{{end}}{{if $showfooter}} showFooter{{end}}"></div>
<hr class="padding default-animation footerLangSwitch footerVariantSwitch footerVisitedLinks footerFooter{{if $showlangswitch}} showLangSwitch{{end}}{{if $showvariantswitch}} showVariantSwitch{{end}}{{if $showvisitedlinks}} showVisitedLinks{{end}}{{if $showfooter}} showFooter{{end}}">
<div id="prefooter" class="footerLangSwitch footerVariantSwitch footerVisitedLinks{{if $showlangswitch}} showLangSwitch{{end}}{{if $showvariantswitch}} showVariantSwitch{{end}}{{if $showvisitedlinks}} showVisitedLinks{{end}}">
2021-09-12 08:33:24 +00:00
<ul>
<li id="select-language-container" class="footerLangSwitch{{if $showlangswitch}} showLangSwitch{{end}}">
<div class="padding menu-control">
2021-09-12 08:33:24 +00:00
<i class="fas fa-language fa-fw"></i>
<span>&nbsp;</span>
<div class="control-style">
2022-10-04 20:18:54 +00:00
<label class="a11y-only" for="select-language">{{ T "Language" }}</label>
<select id="select-language" onchange="location = baseUri + this.value;">
{{- $page := .Page }}
2021-09-12 08:33:24 +00:00
{{- $pageLang := .Page.Lang }}
{{- range .Page.AllTranslations }}
{{- $translation := . }}
{{- range $siteLanguages }}
{{- if eq $translation.Lang .Lang }}
{{- if eq $pageLang .Lang }}
2022-11-17 21:12:18 +00:00
<option lang="{{ $translation.Lang }}" id="{{ $translation.Lang }}" value="{{ partial "relLangPrettyUglyURL.hugo" (dict "to" $translation "basename" $basename) }}" selected>{{ .LanguageName }}</option>
2021-09-12 08:33:24 +00:00
{{- else }}
2022-11-17 21:12:18 +00:00
<option lang="{{ $translation.Lang }}" id="{{ $translation.Lang }}" value="{{ partial "relLangPrettyUglyURL.hugo" (dict "to" $translation "basename" $basename) }}">{{ .LanguageName }}</option>
2021-09-12 08:33:24 +00:00
{{- end }}
{{- end }}
{{- end }}
{{- end }}
</select>
</div>
<div class="clear"></div>
</div>
2021-09-12 08:33:24 +00:00
</li>
<li id="select-variant-container" class="footerVariantSwitch{{if $showvariantswitch}} showVariantSwitch{{end}}">
<div class="padding menu-control">
2022-02-13 00:53:23 +00:00
<i class="fas fa-paint-brush fa-fw"></i>
<span>&nbsp;</span>
<div class="control-style">
2022-10-04 20:18:54 +00:00
<label class="a11y-only" for="select-variant">{{ T "Theme" }}</label>
<select id="select-variant" onchange="window.variants && variants.changeVariant( this.value );">
{{- $firstvariant := true }}
2022-02-13 00:53:23 +00:00
{{- range $themevariants }}
{{- $themevariant := . }}
2022-02-20 23:01:23 +00:00
{{- $variantname := replaceRE "[-_]+" " " $themevariant }}
{{- if $firstvariant }}
{{- $firstvariant = false }}
2022-02-20 23:01:23 +00:00
<option id="{{ $themevariant }}" value="{{ $themevariant }}" selected>{{ $variantname | title }}</option>
2022-02-13 00:53:23 +00:00
{{- else }}
2022-02-20 23:01:23 +00:00
<option id="{{ $themevariant }}" value="{{ $themevariant }}">{{ $variantname | title }}</option>
2022-02-13 00:53:23 +00:00
{{- end }}
{{- end }}
</select>
</div>
<div class="clear"></div>
</div>
<script>window.variants && variants.markSelectedVariant();</script>
2022-02-13 00:53:23 +00:00
</li>
<li class="footerVisitedLinks{{if $showvisitedlinks}} showVisitedLinks{{end}}">
<div class="padding menu-control">
<i class="fas fa-history fa-fw"></i>
<span>&nbsp;</span>
<div class="control-style">
<button onclick="clearHistory();">{{ T "Clear-History" }}</button>
</div>
<div class="clear"></div>
2023-07-26 18:36:45 +00:00
</div>
</li>
2021-09-12 08:33:24 +00:00
</ul>
2021-09-13 17:23:38 +00:00
</div>
<div id="footer" class="footerFooter{{if $showfooter}} showFooter{{end}}">
{{- $footer }}
2021-09-13 17:23:38 +00:00
</div>
2021-09-12 08:33:24 +00:00
</div>
2022-02-28 00:19:32 +00:00
</aside>
2021-09-12 08:33:24 +00:00
{{- define "section-tree-nav" }}
{{- $currentNode := .currentnode }}
{{- $showvisitedlinks := .showvisitedlinks }}
{{- $alwaysopen := .alwaysopen }}
{{- $currentFileRelPermalink := .currentnode.RelPermalink }}
2021-09-12 08:33:24 +00:00
{{- with .sect }}
{{- $isSelf := eq .RelPermalink $currentFileRelPermalink }}
{{- $isAncestor := and (not $isSelf) (.IsAncestor $currentNode) }}
{{- $isActive := $isSelf }}
{{- $pages := .Pages }}
{{- $relearnIsHiddenFrom := index ($currentNode.Scratch.Get "relearnIsHiddenFrom") .RelPermalink }}
{{- $hidden := and $relearnIsHiddenFrom (not $.showhidden) (not $isSelf) (not $isAncestor) }}
2021-09-12 08:33:24 +00:00
{{- if $hidden }}
2022-11-12 19:58:43 +00:00
{{- else }}
{{- $numberOfVisibleChildren := 0 }}
{{- range $pages }}
{{- $isSelfSub := eq .RelPermalink $currentFileRelPermalink }}
{{- $isAncestorSub := and (not $isSelf) (.IsAncestor $currentNode) }}
{{- $relearnIsSubHiddenFrom := index ($currentNode.Scratch.Get "relearnIsHiddenFrom") .RelPermalink }}
{{- $subHidden := and $relearnIsSubHiddenFrom (not $.showhidden) (not $isSelfSub) (not $isAncestorSub) }}
{{- $numberOfVisibleChildren = add $numberOfVisibleChildren (int (not $subHidden)) }}
{{- end }}
2021-09-12 08:33:24 +00:00
{{- safeHTML .Params.head }}
{{- if $numberOfVisibleChildren }}
{{- $defaultOrdersectionsby := .Site.Params.ordersectionsby | default "weight" }}
{{- $currentOrdersectionsby := .Params.ordersectionsby | default $defaultOrdersectionsby }}
{{- $currentAlwaysopen := .Params.alwaysopen | default $alwaysopen }}
{{- $pageHash := md5 .Page }}
{{- $isOpen := or $currentAlwaysopen $isSelf $isAncestor }}
<li data-nav-id="{{ partial "relLangPrettyUglyURL.hugo" (dict "to" .) }}" class="{{if $isActive }}active {{end}}{{if (or $isSelf $isAncestor) }}parent {{end}}{{if $currentAlwaysopen}}alwaysopen{{end}}">{{ if .Site.Params.collapsibleMenu }}<input type="checkbox" id="section-{{ $pageHash }}" aria-controls="subsections-{{ $pageHash }}"{{ if $isOpen }} checked{{ end }}><label for="section-{{ $pageHash }}"><i class="fas fa-chevron-down"></i><i class="fas fa-chevron-right"></i><span class="a11y-only">{{ T "Submenu" ( or .Params.menuTitle .LinkTitle .Title ) }}</span></label>{{ end }}<a class="padding" href="{{ partial "relLangPrettyUglyURL.hugo" (dict "to" .) }}">
2022-11-12 19:58:43 +00:00
{{- partial "menu-pre.html" . }}{{ or .Params.menuTitle .LinkTitle .Title }}{{ partial "menu-post.html" . }}
{{- if $showvisitedlinks }}<i class="fas fa-check read-icon"></i>{{ end }}</a><ul id="subsections-{{ $pageHash }}" class="morespace{{ if .Site.Params.collapsibleMenu }} collapsible-menu{{ end }}">
2022-11-12 19:58:43 +00:00
{{- $defaultAlwaysopen := .Site.Params.alwaysopen | default true }}
{{- if eq $currentOrdersectionsby "title" }}
{{- range $pages.ByTitle }}
{{- template "section-tree-nav" dict "sect" . "currentnode" $currentNode "showvisitedlinks" $showvisitedlinks "alwaysopen" $defaultAlwaysopen }}
{{- end }}
{{- else }}
2022-11-12 19:58:43 +00:00
{{- range $pages.ByWeight }}
{{- template "section-tree-nav" dict "sect" . "currentnode" $currentNode "showvisitedlinks" $showvisitedlinks "alwaysopen" $defaultAlwaysopen }}
{{- end }}
{{- end }}</ul></li>
{{- else }}
<li data-nav-id="{{ partial "relLangPrettyUglyURL.hugo" (dict "to" .) }}" class="{{if $isActive }}active{{end}}"><a class="padding" href="{{ partial "relLangPrettyUglyURL.hugo" (dict "to" .) }}">
{{- partial "menu-pre.html" . }}{{ or .Params.menuTitle .LinkTitle .Title }}{{ partial "menu-post.html" . }}
{{- if $showvisitedlinks }}<i class="fas fa-check read-icon"></i>{{ end }}</a></li>
2022-11-12 19:58:43 +00:00
{{- end }}
2021-09-12 08:33:24 +00:00
{{- end }}
{{- end }}
{{- end }}