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">