<head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="theme-color" content="#1dc868"> {{ if .Description }} <meta name="description" content="{{ .Description }}"> {{ end }} {{ with index (.GetTerms "series") 0 }} <meta name="blog-series" content="{{ .Data.Term }}"> {{ end }} {{ range .Params.discussionRooms }} <meta name="matrix-highlight-comments" content="{{ . }}"> {{ end }} <!-- Fonts --> {{ if not (.Site.Params.noCss) }} {{ $fonts := resources.Get "scss/fonts.scss" | css.Sass | resources.Minify }} <link rel="stylesheet" href="{{ $fonts.Permalink }}" media="screen"> {{ end }} <!-- External CSS (normalize and KaTeX --> {{ if not (.Site.Params.noCss) }} {{ partial "defercss.html" (dict "url" .Site.Params.normalizeCssUrl "extra" "") }} {{ partial "defercss.html" (dict "url" .Site.Params.katexCssUrl "extra" "") }} {{ end }} <!-- Links to other formats (RSS, TOML) --> {{ range .Site.Home.AlternativeOutputFormats -}} <link rel="{{ .Rel }}" type="{{ .MediaType.Type | html }}" href="{{ .Permalink | safeURL }}"> {{ end -}} <!-- In-house CSS --> {{ $style := resources.Get "scss/style.scss" | css.Sass | resources.Minify }} {{ $sidenotes := resources.Get "scss/sidenotes.scss" | css.Sass | resources.Minify }} {{ $code := resources.Get "scss/code.scss" | css.Sass | resources.Minify }} {{ $icon := resources.Get "img/favicon.png" }} <style>.feather { display: inline !important; width: 10px; height: 10px; }</style> <style>img { max-width: 70%; }</style> {{ if not (.Site.Params.noCss) }} <link rel="stylesheet" href="{{ $style.Permalink }}"> {{ partial "defercss.html" (dict "url" $sidenotes.Permalink "extra" "") }} {{ partial "defercss.html" (dict "url" $code.Permalink "extra" "") }} {{ end }} <link rel="icon" type="image/png" href="{{ $icon.Permalink }}"> {{ if .Params.custom_js }} {{ range $customJs := .Params.custom_js }} <script src="{{ page.Resources.Get $customJs }}"></script> {{ end }} {{ end }} {{ if hugo.IsServer }} <!-- KaTeX auto-rendering for when we don't have a post-processing step. --> <script defer src="https://cdn.jsdelivr.net/npm/katex@0.16.0/dist/katex.min.js" integrity="sha384-X/XCfMm41VSsqRNQgDerQczD69XqmjOOOwYQvr/uuC+j4OPoNhVgjdGFwhvN02Ja" crossorigin="anonymous"></script> <script defer src="https://cdn.jsdelivr.net/npm/katex@0.16.0/dist/contrib/auto-render.min.js" integrity="sha384-+XBljXPPiv+OzfbB3cVmLHf4hdUFHlWNZN5spNQ7rmHTXpd7WvJum6fIACpNNfIR" crossorigin="anonymous" onload="renderMathInElement(document.body);"></script> {{ end }} {{ if .Params.bergamot }} <!-- Code to support the Bergamot JS widget --> <script defer src="{{ .Site.Params.katexJsUrl }}" crossorigin="anonymous"></script> {{ $katexComponentJs := resources.Get "js/katex-component.js" | resources.Minify }} <script defer src="{{ $katexComponentJs.Permalink }}"></script> <script defer src="{{ .Site.Params.bergamotJsUrl }}"></script> <script defer src="{{ .Site.Params.bergamotObjectLanguageJsUrl }}"></script> {{ $bergamotHelpers := resources.Get "js/bergamot-helpers.js" | resources.Minify }} <script defer src="{{ $bergamotHelpers.Permalink }}"></script> {{ $bergamotStyle := resources.Get "scss/bergamot.scss" | css.Sass | resources.Minify }} {{ partial "defercss.html" (dict "url" $bergamotStyle.Permalink "extra" "") }} {{ if .Params.bergamot.render_presets }} {{ range $name, $rulefile := .Params.bergamot.render_presets }} {{ $file := default (resources.Get $rulefile) (page.Resources.Get $rulefile) }} {{ partial "bergamotrenderpreset.html" (dict "name" $name "file" $file.Content) }} {{ end }} {{ else }} {{ partial "bergamotrenderpreset.html" (dict "name" "default" "file" (resources.Get "bergamot/rendering/minimal.bergamot").Content) }} {{ end }} {{ if .Params.bergamot.presets }} {{ range $name, $preset := .Params.bergamot.presets }} {{ $file := default (resources.Get $preset.file) (page.Resources.Get $preset.file) }} {{ $info := dict "name" $name "prompt" $preset.prompt "query" $preset.query "file" $file.Content "renderPreset" $preset.render_preset "inputModes" $preset.input_modes }} {{ partial "bergamotpreset.html" $info }} {{ end }} {{ end }} {{ if .Params.bergamot.input_modes }} {{ range $mode := .Params.bergamot.input_modes }} {{ partial "bergamotinputmode.html" (dict "name" $mode.name "fn" $mode.fn) }} {{ end }} {{ end }} {{ end }} {{ with .Site.Params.plausibleAnalyticsDomain }} <!-- Plausible analytics, because log parsing is not working all that well. --> <script defer data-domain="{{ . }}" src="https://plausible.io/js/script.js"></script> {{ end }} <title>{{ .Title }}</title> </head>