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
11 rel="stylesheet"
12 href='/static/styles.css?v={{ new Date(Date.now()).toISOString() |> date("t") }}'
13/>
14<link
15 rel="stylesheet"
16 href='/styles.css?v={{ new Date(Date.now()).toISOString() |> date("t") }}'
17/>
18<link
19 rel="stylesheet"
20 href='/static/icons/bsi.min.css?v={{ new Date(Date.now()).toISOString() |> date("t") }}'
21/>
22<link
23 rel="stylesheet"
24 href='/static/icons/si.min.css?v={{ new Date(Date.now()).toISOString() |> date("t") }}'
25/>
26{{# Page Metadata #}}
27<link rel="canonical" href="{{ url |> url(true) }}" />
28<title>{{ title }}</title>
29{{ if !production }}
30 <script defer src="/static/scripts/open-in-editor.js"></script>
31 <script src="/static/scripts/highlight-accessibility.js"></script>
32 {{# Load Sa11y #}}
33 <link rel="preconnect" href="https://cdn.jsdelivr.net">
34 <link
35 rel="stylesheet"
36 href="https://cdn.jsdelivr.net/gh/ryersondmp/sa11y@latest/dist/css/sa11y.min.css"
37 />
38 <script
39 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"
40 ></script>
41 <script defer>
42 Sa11y.Lang.addI18n(Sa11yLangEn.strings);
43 const sa11y = new Sa11y.Sa11y({
44 checkRoot: "body",
45 readabilityRoot: "main",
46 developerChecksOnByDefault: true,
47 showGoodLinkButton: false,
48 showGoodImageButton: false,
49 });
50 </script>
51{{ /if }}
52
53{{# Disable Dark Reader #}}
54<meta name="darkreader-lock">