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    {{ $options := (dict "outputStyle" "compressed" "enableSourceMap" true) }}
42    {{ $scss := resources.Get "scss/imports.scss" }}
43    {{ $style := $scss | resources.ToCSS $options }}
44    <link rel="preload" href="{{ $style.RelPermalink }}?{{ now.Unix }}" as="style">
45    <link rel="stylesheet" href="{{ $style.RelPermalink }}?{{ now.Unix }}">
46
47    {{ partialCached "favicons.html" . }}
48
49    <!-- Self-hosted analytics -->
50    <script async defer data-website-id="a790c0da-a30d-4224-909a-0ac50eaad3b6" data-do-not-track="true" src="https://umami.secluded.site/script.js"></script>
51
52    <!-- Funny cursor -->
53    <script async src="/js/ghostCursor.js"></script>
54</head>