hugo-theme-more-contentful/layouts/partials/head.html
Gabriel Arazas db5a0b48de Move persistent theme script earlier
This makes it faster for the perceived performance and placing it the
moment after loading the stylesheet is the quickest way to avoid
unstyled flash of content.
2023-03-06 23:24:09 +08:00

61 lines
2.2 KiB
HTML

<title>{{ if not .IsHome }}{{ .Title | safeHTML }} |{{ end }} {{ $.Site.Title | safeHTML }}</title>
{{- $stylesheets := slice }}
<!-- The main stylesheet being compiled. -->
{{- $main := resources.Get "scss/main.scss" | resources.ToCSS }}
{{- /* Combine all of the custom schems in under one stylesheet */ -}}
{{- $themes := resources.Get "templates/theme.scss" | resources.ExecuteAsTemplate "css/themes.css" . | resources.ToCSS }}
{{- /* Append the main stylesheet to be the last so the resulting stylesheet will make the custom colorschemes at the front. */ -}}
{{ $stylesheets = $stylesheets | append $themes $main }}
{{ $style := $stylesheets | resources.Concat "css/main.css" }}
{{- /* Only enable asset bundling in production */ -}}
{{- if hugo.IsProduction }}
{{- $style = $style | resources.Minify | resources.Fingerprint -}}
{{- end }}
<link rel="stylesheet" href="{{ $style.Permalink }}" />
{{- /* Persistent theme.
It's a very small script so there's little effect on perceived performance. */ -}}
<script>
let theme = window.localStorage.getItem('theme');
if (theme) {
document.documentElement.dataset.theme = theme;
}
</script>
<link rel="shortcut icon" href="{{ absURL "favicon.png" }}" />
{{- /* Some sane <meta> tags default */ -}}
{{ hugo.Generator }}
<meta charset="utf-8">
{{- with .Site.Author }}
{{- $names := slice }}
{{- range . }}{{ $names = $names | append .name }}{{ end }}
<meta name="author" content="{{ delimit $names ", " (printf " %s " (i18n "and")) }}" />
{{- end }}
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="referrer" content="no-referrer" />
<meta name="description" content="{{ if (and (eq .Kind "home") .IsHome) }}{{ .Site.Title }}{{ else }}{{ .Summary | safeHTML }}{{ end }}" />
{{- template "_internal/twitter_cards.html" . }}
{{- template "_internal/opengraph.html" . }}
{{- template "_internal/schema.html" . }}
{{- /* Linking all of the output formats for discovery. */ -}}
{{- range .OutputFormats }}
{{- printf "<link rel=%q type=%q href=%q />" .Rel .MediaType.Type .Permalink | safeHTML }}
{{- end }}
{{- if hugo.IsProduction }}
{{ template "_internal/google_analytics_async.html" . }}
{{ template "_internal/disqus.html" . }}
{{- end }}