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 <script src="/static/scripts/highlight-accessibility.js"></script>
29 {{# Load Sa11y #}}
30 <link rel="preconnect" href="https://cdn.jsdelivr.net">
31 <link
32 rel="stylesheet"
33 href="https://cdn.jsdelivr.net/gh/ryersondmp/sa11y@latest/dist/css/sa11y.min.css"
34 />
35 <script
36 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"
37 ></script>
38 <script defer>
39 Sa11y.Lang.addI18n(Sa11yLangEn.strings);
40 const sa11y = new Sa11y.Sa11y({
41 checkRoot: "body",
42 readabilityRoot: "main",
43 developerChecksOnByDefault: true,
44 showGoodLinkButton: false,
45 showGoodImageButton: false,
46 });
47 </script>
48{{ /if }}
49
50{{# Disable Dark Reader #}}
51<meta name="darkreader-lock">