diff options
Diffstat (limited to 'themes/PaperMod/layouts/partials/header.html')
m--------- | themes/PaperMod | 0 | ||||
-rw-r--r-- | themes/PaperMod/layouts/partials/header.html | 149 |
2 files changed, 149 insertions, 0 deletions
diff --git a/themes/PaperMod b/themes/PaperMod deleted file mode 160000 -Subproject 3a0a4811cbc07c0bea09ef55b3c1bfb39b48cdd diff --git a/themes/PaperMod/layouts/partials/header.html b/themes/PaperMod/layouts/partials/header.html new file mode 100644 index 0000000..4a7291e --- /dev/null +++ b/themes/PaperMod/layouts/partials/header.html @@ -0,0 +1,149 @@ +{{- /* theme-toggle is enabled */}} +{{- if (not site.Params.disableThemeToggle) }} +{{- /* theme is light */}} +{{- if (eq site.Params.defaultTheme "light") }} +<script> + if (localStorage.getItem("pref-theme") === "dark") { + document.body.classList.add('dark'); + } + +</script> +{{- /* theme is dark */}} +{{- else if (eq site.Params.defaultTheme "dark") }} +<script> + if (localStorage.getItem("pref-theme") === "light") { + document.body.classList.remove('dark') + } + +</script> +{{- else }} +{{- /* theme is auto */}} +<script> + if (localStorage.getItem("pref-theme") === "dark") { + document.body.classList.add('dark'); + } else if (localStorage.getItem("pref-theme") === "light") { + document.body.classList.remove('dark') + } else if (window.matchMedia('(prefers-color-scheme: dark)').matches) { + document.body.classList.add('dark'); + } + +</script> +{{- end }} +{{- /* theme-toggle is disabled and theme is auto */}} +{{- else if (and (ne site.Params.defaultTheme "light") (ne site.Params.defaultTheme "dark"))}} +<script> + if (window.matchMedia('(prefers-color-scheme: dark)').matches) { + document.body.classList.add('dark'); + } + +</script> +{{- end }} + +<header class="header"> + <nav class="nav"> + <div class="logo"> + {{- $label_text := (site.Params.label.text | default site.Title) }} + {{- if site.Title }} + <a href="{{ "" | absLangURL }}" accesskey="h" title="{{ $label_text }} (Alt + H)"> + {{- if site.Params.label.icon }} + {{- $img := resources.Get site.Params.label.icon }} + {{- if $img }} + {{- $processableFormats := (slice "jpg" "jpeg" "png" "tif" "bmp" "gif") -}} + {{- if hugo.IsExtended -}} + {{- $processableFormats = $processableFormats | append "webp" -}} + {{- end -}} + {{- $prod := (hugo.IsProduction | or (eq site.Params.env "production")) }} + {{- if and (in $processableFormats $img.MediaType.SubType) (eq $prod true)}} + {{- if site.Params.label.iconHeight }} + {{- $img = $img.Resize (printf "x%d" site.Params.label.iconHeight) }} + {{ else }} + {{- $img = $img.Resize "x30" }} + {{- end }} + {{- end }} + <img src="{{ $img.Permalink }}" alt="" aria-label="logo" + height="{{- site.Params.label.iconHeight | default "30" -}}"> + {{- else }} + <img src="{{- site.Params.label.icon | absURL -}}" alt="" aria-label="logo" + height="{{- site.Params.label.iconHeight | default "30" -}}"> + {{- end -}} + {{- else if hasPrefix site.Params.label.iconSVG "<svg" }} + {{ site.Params.label.iconSVG | safeHTML }} + {{- end -}} + {{- $label_text -}} + </a> + {{- end }} + <div class="logo-switches"> + {{- if (not site.Params.disableThemeToggle) }} + <button id="theme-toggle" accesskey="t" title="(Alt + T)"> + <svg id="moon" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24" + fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" + stroke-linejoin="round"> + <path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"></path> + </svg> + <svg id="sun" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24" + fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" + stroke-linejoin="round"> + <circle cx="12" cy="12" r="5"></circle> + <line x1="12" y1="1" x2="12" y2="3"></line> + <line x1="12" y1="21" x2="12" y2="23"></line> + <line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line> + <line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line> + <line x1="1" y1="12" x2="3" y2="12"></line> + <line x1="21" y1="12" x2="23" y2="12"></line> + <line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line> + <line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line> + </svg> + </button> + {{- end }} + + {{- $lang := .Lang}} + {{- $separator := or $label_text (not site.Params.disableThemeToggle)}} + {{- with site.Home.AllTranslations }} + <ul class="lang-switch"> + {{- if $separator }}<li>|</li>{{ end }} + {{- range . -}} + {{- if ne $lang .Lang }} + <li> + <a href="{{- .Permalink -}}" title="{{ .Language.Params.languageAltTitle | default (.Language.LanguageName | emojify) | default (.Lang | title) }}" + aria-label="{{ .Language.LanguageName | default (.Lang | title) }}"> + {{- if (and site.Params.displayFullLangName (.Language.LanguageName)) }} + {{- .Language.LanguageName | emojify -}} + {{- else }} + {{- .Lang | title -}} + {{- end -}} + </a> + </li> + {{- end -}} + {{- end}} + </ul> + {{- end }} + </div> + </div> + {{- $currentPage := . }} + <ul id="menu"> + {{- range site.Menus.main }} + {{- $menu_item_url := (cond (strings.HasSuffix .URL "/") .URL (printf "%s/" .URL) ) | absLangURL }} + {{- $page_url:= $currentPage.Permalink | absLangURL }} + {{- $is_search := eq (site.GetPage .KeyName).Layout `search` }} + <li> + <a href="{{ .URL | absLangURL }}" title="{{ .Title | default .Name }} {{- cond $is_search (" (Alt + /)" | safeHTMLAttr) ("" | safeHTMLAttr ) }}" + {{- cond $is_search (" accesskey=/" | safeHTMLAttr) ("" | safeHTMLAttr ) }}> + <span {{- if eq $menu_item_url $page_url }} class="active" {{- end }}> + {{- .Pre }} + {{- .Name -}} + {{ .Post -}} + </span> + {{- if (findRE "://" .URL) }} + <svg fill="none" shape-rendering="geometricPrecision" stroke="currentColor" stroke-linecap="round" + stroke-linejoin="round" stroke-width="2.5" viewBox="0 0 24 24" height="12" width="12"> + <path d="M18 13v6a2 2 0 01-2 2H5a2 2 0 01-2-2V8a2 2 0 012-2h6"></path> + <path d="M15 3h6v6"></path> + <path d="M10 14L21 3"></path> + </svg> + {{- end }} + </a> + </li> + {{- end }} + </ul> + </nav> +</header> |