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>