<!DOCTYPE html>
<html lang="{{ site.LanguageCode }}">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  {{ hugo.Generator }}
  {{ if site.Params.schema }}{{ template "_internal/schema.html" . }}{{ end }}
  {{ if site.Params.opengraph }}{{ template "_internal/opengraph.html" . }}{{ end }}
  {{ if site.Params.twittercards }}{{ template "_internal/twitter_cards.html" . }}{{ end }}
  <title>
    {{ if eq .Title site.Title }}
    {{ site.Title }}
    {{ else }}
    {{ with .Title }}{{ . }} | {{ end }}{{ site.Title }}
    {{ end }}
  </title>
  <link rel="canonical" href="{{ .Permalink }}">
  {{ range .AlternativeOutputFormats }}
  {{ printf "<link rel=%q type=%q href=%q title=%q>" .Rel .MediaType .Permalink site.Title | safeHTML }}
  {{ end }}
  {{ resources.Get "css/base.temp.css" | resources.ExecuteAsTemplate "css/base.css" . | minify | fingerprint | .Page.Scratch.SetInMap "css" "base" }}
  {{/*
    In this block Hugo is forced to load the page's content, effectively
    pre-rendering all its shortcodes. Thanks to this pre-render,
    shortcodes can load additional CSS and JS resources by adding them
    to the "css" and "js" entries of the global .Scratch variable.
  */}}
  {{ block "loadshortcodes" . }}{{ with .Content }}{{ end }}{{ end }}
  {{ range .Scratch.GetSortedMapValues "css" }}
  <link rel="stylesheet" href="{{ .Permalink }}" integrity="{{ .Data.Integrity }}" crossorigin="anonymous">
  {{ end }}
  {{ range .Scratch.GetSortedMapValues "js" }}
  <script defer src="{{ .Permalink }}" integrity="{{ .Data.Integrity }}" crossorigin="anonymous"></script>
  {{ end }}
</head>
<body>
  {{ partialCached "banner.html" . }}
  <main>
    <div class="u-wrapper">
      <div class="u-padding">
        {{ block "main" . }}{{ end }}
      </div>
    </div>
  </main>
  {{ partialCached "footer.html" . }}
</body>
</html>
