aboutsummaryrefslogtreecommitdiff
path: root/themes/hugo-theme-stack/layouts/partials/head
diff options
context:
space:
mode:
authorAlexander Neonxp Kiryukhin <i@neonxp.ru>2024-11-03 20:08:36 +0300
committerAlexander Neonxp Kiryukhin <i@neonxp.ru>2024-11-03 20:08:36 +0300
commit59c7d4567380d1a9c80e96eb958fdbdd512ce006 (patch)
tree65410cfc10dbc7d060ec23be110662d9b7f6b0e9 /themes/hugo-theme-stack/layouts/partials/head
новая жизнь блога
Diffstat (limited to 'themes/hugo-theme-stack/layouts/partials/head')
-rw-r--r--themes/hugo-theme-stack/layouts/partials/head/colorScheme.html39
-rw-r--r--themes/hugo-theme-stack/layouts/partials/head/custom.html0
-rw-r--r--themes/hugo-theme-stack/layouts/partials/head/head.html26
-rw-r--r--themes/hugo-theme-stack/layouts/partials/head/opengraph/include.html2
-rw-r--r--themes/hugo-theme-stack/layouts/partials/head/opengraph/provider/base.html43
-rw-r--r--themes/hugo-theme-stack/layouts/partials/head/opengraph/provider/twitter.html16
-rw-r--r--themes/hugo-theme-stack/layouts/partials/head/script.html0
-rw-r--r--themes/hugo-theme-stack/layouts/partials/head/style.html3
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