1{{# Site-wide Metadata #}}
2<meta charset="utf-8" />
3<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover" />
4<meta name="view-transition" content="same-origin" />
5<meta name="supported-color-schemes" content="dark light" />
6{{# Feed Links #}}
7<link rel="alternate" type="application/feed+json" href="/blog.json" />
8<link rel="alternate" type="application/rss+xml" href="/blog.rss" />
9{{# Stylesheets #}}
10<link rel="stylesheet" href="/static/fonts.css" />
11<link
12 rel="stylesheet"
13 href='/static/styles.css?v={{ new Date(Date.now()).toISOString() |> date("t") }}'
14/>
15<link
16 rel="stylesheet"
17 href='/static/icons/bsi.min.css?v={{ new Date(Date.now()).toISOString() |> date("t") }}'
18/>
19<link
20 rel="stylesheet"
21 href='/static/icons/si.min.css?v={{ new Date(Date.now()).toISOString() |> date("t") }}'
22/>
23{{# Page Metadata #}}
24<link rel="canonical" href="{{ url |> url(true) }}" />
25<title>{{ title }}</title>
26{{ if !production }}
27 <script defer src="/static/scripts/open-in-editor.js"></script>
28 {{# Load Sa11y #}}
29 <link rel="preconnect" href="https://cdn.jsdelivr.net">
30 <link
31 rel="stylesheet"
32 href="https://cdn.jsdelivr.net/gh/ryersondmp/sa11y@latest/dist/css/sa11y.min.css"
33 />
34 <script
35 src="https://cdn.jsdelivr.net/combine/gh/ryersondmp/sa11y@latest/dist/js/lang/en.umd.js,gh/ryersondmp/sa11y@latest/dist/js/sa11y.umd.min.js"
36 ></script>
37 <script defer>
38 Sa11y.Lang.addI18n(Sa11yLangEn.strings);
39 const sa11y = new Sa11y.Sa11y({
40 checkRoot: "body",
41 readabilityRoot: "main",
42 developerChecksOnByDefault: true,
43 showGoodLinkButton: false,
44 showGoodImageButton: false,
45 });
46 </script>
47{{ /if }}
48
49{{# Disable Dark Reader #}}
50<meta name="darkreader-lock">