diff options
Diffstat (limited to 'themes/hugo-theme-stack/layouts/partials/head')
8 files changed, 129 insertions, 0 deletions
diff --git a/themes/hugo-theme-stack/layouts/partials/head/colorScheme.html b/themes/hugo-theme-stack/layouts/partials/head/colorScheme.html new file mode 100644 index 0000000..42f4dd8 --- /dev/null +++ b/themes/hugo-theme-stack/layouts/partials/head/colorScheme.html @@ -0,0 +1,39 @@ +{{- $defaultColorScheme := default "auto" .Site.Params.colorScheme.default -}} +{{- if not (default false .Site.Params.colorScheme.toggle) -}} + {{/* If toggle is disabled, force default scheme */}} + <script> + (function() { + const colorSchemeKey = 'StackColorScheme'; + localStorage.setItem(colorSchemeKey, "{{ $defaultColorScheme }}"); + })(); + </script> +{{- else -}} + {{/* Otherwise set to default scheme only if no preference is set by user */}} + <script> + (function() { + const colorSchemeKey = 'StackColorScheme'; + if(!localStorage.getItem(colorSchemeKey)){ + localStorage.setItem(colorSchemeKey, "{{ $defaultColorScheme }}"); + } + })(); + </script> +{{- end -}} + +<script> + (function() { + const colorSchemeKey = 'StackColorScheme'; + const colorSchemeItem = localStorage.getItem(colorSchemeKey); + const supportDarkMode = window.matchMedia('(prefers-color-scheme: dark)').matches === true; + + if (colorSchemeItem == 'dark' || colorSchemeItem === 'auto' && supportDarkMode) { + /** + * Enable dark mode if: + * 1. If dark mode is set already (in local storage) + * 2. Auto mode & prefere color scheme is dark + */ + document.documentElement.dataset.scheme = 'dark'; + } else { + document.documentElement.dataset.scheme = 'light'; + } + })(); +</script> diff --git a/themes/hugo-theme-stack/layouts/partials/head/custom.html b/themes/hugo-theme-stack/layouts/partials/head/custom.html new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/themes/hugo-theme-stack/layouts/partials/head/custom.html diff --git a/themes/hugo-theme-stack/layouts/partials/head/head.html b/themes/hugo-theme-stack/layouts/partials/head/head.html new file mode 100644 index 0000000..a7991c1 --- /dev/null +++ b/themes/hugo-theme-stack/layouts/partials/head/head.html @@ -0,0 +1,26 @@ +<meta charset='utf-8'> +<meta name='viewport' content='width=device-width, initial-scale=1'> + +{{- $description := partialCached "data/description" . .RelPermalink -}} +<meta name='description' {{ printf "content=%q" $description | safeHTMLAttr }}> +{{ with .Params.Keywords }}<meta name="keywords" content="{{ delimit . ", " }}">{{ end }} + +{{- $title := partial "data/title" . -}} +<title>{{ $title }}</title> + +<link rel='canonical' href='{{ .Permalink }}'> + +{{- partial "head/style.html" . -}} +{{- partial "head/script.html" . -}} +{{- partial "head/opengraph/include.html" . -}} + +{{- range .AlternativeOutputFormats -}} + <link rel="{{ .Rel }}" type="{{ .MediaType.Type }}" href="{{ .Permalink | safeURL }}"> +{{- end -}} + +{{ with .Site.Params.favicon }} + <link rel="shortcut icon" href="{{ . | relURL }}" /> +{{ end }} + +{{- template "_internal/google_analytics.html" . -}} +{{- partial "head/custom.html" . -}} diff --git a/themes/hugo-theme-stack/layouts/partials/head/opengraph/include.html b/themes/hugo-theme-stack/layouts/partials/head/opengraph/include.html new file mode 100644 index 0000000..3a43f48 --- /dev/null +++ b/themes/hugo-theme-stack/layouts/partials/head/opengraph/include.html @@ -0,0 +1,2 @@ +{{ partial "head/opengraph/provider/base" . }} +{{ partial "head/opengraph/provider/twitter" . }}
\ No newline at end of file diff --git a/themes/hugo-theme-stack/layouts/partials/head/opengraph/provider/base.html b/themes/hugo-theme-stack/layouts/partials/head/opengraph/provider/base.html new file mode 100644 index 0000000..055745d --- /dev/null +++ b/themes/hugo-theme-stack/layouts/partials/head/opengraph/provider/base.html @@ -0,0 +1,43 @@ +{{- $title := partialCached "data/title" . .RelPermalink -}} +{{- $description := partialCached "data/description" . .RelPermalink -}} + +<meta property='og:title' {{ printf "content=%q" $title | safeHTMLAttr }}> +<meta property='og:description' {{ printf "content=%q" $description | safeHTMLAttr }}> +<meta property='og:url' content='{{ .Permalink }}'> +<meta property='og:site_name' content='{{ .Site.Title }}'> +<meta property='og:type' content=' + {{- if .IsPage -}} + article + {{- else -}} + website + {{- end -}} +'> + +{{- with .Params.locale -}} + <meta property='og:locale' content='{{ . }}'> +{{- end -}} + +{{- if .IsPage -}} + <meta property='article:section' content='{{ .Section | title }}' /> + {{- range .Params.tags -}} + <meta property='article:tag' content='{{ . }}' /> + {{- end -}} +{{- end -}} + +{{- if .IsPage -}} + {{- if not .Date.IsZero -}} + <meta property='article:published_time' content='{{ .Date.Format "2006-01-02T15:04:05-07:00" | safeHTML }}'/> + {{- end -}} + {{- if not .Lastmod.IsZero -}} + <meta property='article:modified_time' content='{{ .Lastmod.Format "2006-01-02T15:04:05-07:00" | safeHTML }}'/> + {{- end -}} +{{- else -}} + {{- if not .Site.Lastmod.IsZero -}} + <meta property='og:updated_time' content='{{ .Site.Lastmod.Format " 2006-01-02T15:04:05-07:00 " | safeHTML }}'/> + {{- end -}} +{{- end -}} + +{{ $image := partialCached "helper/image" (dict "Context" . "Type" "opengraph") .RelPermalink "opengraph" }} +{{- if $image.exists -}} + <meta property='og:image' content='{{ absURL $image.permalink }}' /> +{{- end -}}
\ No newline at end of file diff --git a/themes/hugo-theme-stack/layouts/partials/head/opengraph/provider/twitter.html b/themes/hugo-theme-stack/layouts/partials/head/opengraph/provider/twitter.html new file mode 100644 index 0000000..c39eba3 --- /dev/null +++ b/themes/hugo-theme-stack/layouts/partials/head/opengraph/provider/twitter.html @@ -0,0 +1,16 @@ +{{- with .Site.Params.opengraph.twitter.site -}} + <meta name="twitter:site" content="@{{ . }}"> + <meta name="twitter:creator" content="@{{ . }}"> +{{- end -}} + +{{- $title := partialCached "data/title" . .RelPermalink -}} +{{- $description := partialCached "data/description" . .RelPermalink -}} + +<meta name="twitter:title" {{ printf "content=%q" $title | safeHTMLAttr }}> +<meta name="twitter:description" {{ printf "content=%q" $description | safeHTMLAttr }}> + +{{- $image := partialCached "helper/image" (dict "Context" . "Type" "opengraph") .RelPermalink "opengraph" -}} +{{- if $image.exists -}} + <meta name="twitter:card" content="{{ default `summary_large_image` .Site.Params.opengraph.twitter.card }}"> + <meta name="twitter:image" content='{{ absURL $image.permalink }}' /> +{{- end -}}
\ No newline at end of file diff --git a/themes/hugo-theme-stack/layouts/partials/head/script.html b/themes/hugo-theme-stack/layouts/partials/head/script.html new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/themes/hugo-theme-stack/layouts/partials/head/script.html diff --git a/themes/hugo-theme-stack/layouts/partials/head/style.html b/themes/hugo-theme-stack/layouts/partials/head/style.html new file mode 100644 index 0000000..30ca26e --- /dev/null +++ b/themes/hugo-theme-stack/layouts/partials/head/style.html @@ -0,0 +1,3 @@ +{{ $sass := resources.Get "scss/style.scss" }} +{{ $style := $sass | toCSS | minify | resources.Fingerprint "sha256" }} +<link rel="stylesheet" href="{{ $style.RelPermalink }}">
\ No newline at end of file |