Aiden Bai 白宇彤
2022-07-03 015ed4cfa2db4636e03debcda0d4201f24346098
layouts/partials/head.html
@@ -18,7 +18,7 @@
  {{ $favicon | safeHTML }}
  {{ else }}
  {{ range $favicon }}
  <link rel="{{.rel}}" {{if .type}}type="{{.type}}"{{end}} {{if .sizes}}sizes="{{.sizes}}"{{end}} href="{{$.Site.BaseURL}}{{.href}}" />
  <link rel="{{.rel}}" {{if .type}}type="{{.type}}"{{end}} {{if .sizes}}sizes="{{.sizes}}"{{end}} href="{{$.Site.BaseURL}}/{{.href}}" />
  {{- end }}
  {{ end }}
@@ -36,7 +36,11 @@
  {{$finalCss := $css | resources.Concat "styles.css" | resources.Fingerprint "md5" | resources.Minify  }}
  <link href="{{$finalCss.Permalink}}" rel="stylesheet" />
  {{ $darkMode := resources.Get "js/darkmode.js" | resources.Fingerprint "md5" | resources.Minify }}
  {{$lightSyntax := resources.Get "styles/_light_syntax.scss" | resources.ToCSS (dict "outputStyle" "compressed") | resources.Fingerprint "md5" | resources.Minify  }}
  <link href="{{$lightSyntax.Permalink}}" rel="stylesheet" id="theme-link">
   <!-- Base scripts -->
  {{ $darkMode := resources.Get "js/darkmode.js" | resources.ExecuteAsTemplate "js/darkmode.js" . | resources.Fingerprint "md5" | resources.Minify }}
  <script src="{{$darkMode.Permalink}}"></script>
  {{partial "katex.html" .}}
@@ -44,6 +48,12 @@
  resources.Minify }}
  <script src="{{$popover.Permalink}}"></script>
  <!-- Optional scripts -->
  {{ if $.Site.Data.config.enableCodeBlockTitle }}
  {{ $codeTitle := resources.Get "js/code-title.js" | resources.Fingerprint "md5" | resources.Minify }}
  <script src="{{$codeTitle.Permalink}}"></script>
  {{end}}
  <!--  Preload page vars  -->
  {{$linkIndex := resources.Get "indices/linkIndex.json" | resources.Fingerprint
  "md5" | resources.Minify | }} {{$contentIndex := resources.Get
@@ -70,11 +80,15 @@
      const render = () => {
      // NOTE: everything within this callback will be executed for every page navigation. This is a good place to put JavaScript that loads or modifies data on the page, adds event listeners, etc. If you are only dealing with basic DOM replacement, use the init function
      const siteBaseURL = new URL({{$.Site.BaseURL}});
      const siteBaseURL = new URL(BASE_URL);
      const pathBase = siteBaseURL.pathname;
      const pathWindow = window.location.pathname;
      const isHome = pathBase == pathWindow;
      {{if $.Site.Data.config.enableSPA -}}
      addTitleToCodeBlocks();
      {{ end }}
      {{if $.Site.Data.config.enableFooter}}
      const container = document.getElementById("graph-container")
      // retry if the graph is not ready
@@ -92,6 +106,7 @@
      {{end}}
      {{if $.Site.Data.config.enableLinkPreview}}
      initPopover(
        {{strings.TrimRight "/" .Site.BaseURL }},
@@ -103,6 +118,13 @@
    const init = (doc = document) => {
      // NOTE: everything within this callback will be executed for initial page navigation. This is a good place to put JavaScript that only replaces DOM nodes.
      {{if $.Site.Data.config.enableCodeBlockTitle -}}
      {{if $.Site.Data.config.enableSPA -}}
      addTitleToCodeBlocks();
      {{ else }}
      window.addEventListener("DOMContentLoaded", addTitleToCodeBlocks);
      {{- end -}}
      {{- end -}}
      {{if $.Site.Data.config.enableLatex}}
      renderMathInElement(doc.body, {
        delimiters: [
@@ -127,8 +149,11 @@
      navigate: (url) => (window.location.href = url),
      prefetch: () => {},
    }
    init()
    render()
    window.addEventListener("DOMContentLoaded", () => {
      init()
      render()
    })
  </script>
  {{end}}
</head>