head.html

 1<head>
 2    <meta charset="UTF-8">
 3    <meta http-equiv="X-UA-Compatible" content="IE=edge">
 4    <meta name="viewport" content="width=device-width, initial-scale=1">
 5    {{ block "title" . }}
 6    <title>
 7        {{ if .IsHome }}
 8            {{ $.Site.Title }}
 9        {{ else }}
10            {{ .Title }} — {{ $.Site.Title }}
11        {{ end }}
12    </title>
13    {{ end }}
14    <meta name="author" content="{{ $.Site.Params.author }}">
15    <meta name="description" content="{{if .IsHome}}{{ $.Site.Params.description }}{{else}}{{.Description}}{{end}}" />
16    <link rel="canonical" href="{{ .Permalink }}" />
17    <link rel="me" href="{{ $.Site.Params.contact.fediverse }}">
18    <link rel="me" href="{{ $.Site.Params.contact.email }}">
19    <link rel="pgpkey" href="/{{ $.Site.Params.contact.pgp }}">
20    <meta http-equiv="X-Clacks-Overhead" content="GNU Terry Pratchett{{ range .Site.Params.clacks }}, {{ . }}{{end}}" />
21
22    <!-- Enable fancy transitions -->
23    <meta name="view-transition" content="same-origin" />
24
25    <!-- Social: Twitter -->
26    <meta name="twitter:card" content="summary_large_image" />
27    <meta name="twitter:title" content="{{ if .IsHome }}{{ $.Site.Title }}{{ with $.Site.Params.Subtitle }} — {{ . }}{{ end }}{{ else }}{{ .Title }}{{ with $.Site.Params.Subtitle }} — {{ . }}{{ end }}{{ end }}" />
28    <meta name="twitter:description" content="{{if .IsHome}}{{ $.Site.Params.description }}{{else}}{{.Description}}{{end}}"/>
29    <meta name="twitter:image" content="{{ if .IsHome }}{{ .Site.Params.cover }}{{ else }}{{ .Params.Cover }}{{ end }}" />
30
31    <!-- Social: OpenGraph -->
32    <meta property="og:locale" content="en_GB">
33    <meta property="og:type" content="article">
34    <meta property="og:title" content="{{ .Title }}">
35    <meta property="og:description" content="{{if .IsHome}}{{ $.Site.Params.description }}{{else}}{{.Description}}{{end}}">
36    <meta property="og:url" content="{{ .Permalink }}">
37    <meta property="og:site_name" content="{{ $.Site.Title }}">
38    <meta property="og:image" content="{{ if .IsHome }}{{ .Site.Params.cover }}{{ else }}{{ .Params.Cover }}{{ end }}" />
39
40    <!-- Styles -->
41    {{ with resources.Get "scss/imports.scss" }}
42    {{ $opts := dict "outputStyle" "compressed" "enabledSourceMap" true "transpiler" "libsass" "targetPath" "css/style.css" }}
43    {{ with . | toCSS $opts }}
44    {{ if hugo.IsDevelopment }}
45    <link rel="preload" href="{{ .RelPermalink }}" as="style">
46    <link rel="stylesheet" href="{{ .RelPermalink }}">
47    {{ else }}
48    {{ with . | minify | fingerprint }}
49    <link rel="preload" href="{{ .RelPermalink }}" as="style">
50    <link rel="stylesheet" href="{{ .RelPermalink }}" integrity="{{ .Data.Integrity }}" crossorigin="anonymous">
51    {{ end }}
52    {{ end }}
53    {{ end }}
54    {{ end }}
55
56    {{ partialCached "favicons.html" . }}
57
58    <!-- Self-hosted analytics -->
59    <script async defer data-website-id="a790c0da-a30d-4224-909a-0ac50eaad3b6" data-do-not-track="true" src="https://umami.secluded.site/script.js"></script>
60</head>