From bcb166c21cf4cf6d923608c12729373cf926eddb Mon Sep 17 00:00:00 2001
From: Aiden Bai <aiden.bai05@gmail.com>
Date: Mon, 02 May 2022 05:06:33 +0000
Subject: [PATCH] Add router

---
 layouts/partials/head.html |  121 +++++++++++++++++++++++++++-------------
 1 files changed, 81 insertions(+), 40 deletions(-)

diff --git a/layouts/partials/head.html b/layouts/partials/head.html
index 195cade..772153a 100644
--- a/layouts/partials/head.html
+++ b/layouts/partials/head.html
@@ -1,46 +1,87 @@
 <head>
-    <!-- Meta tags -->
-    <meta charset="UTF-8">
-    <meta name="description" content="{{if .IsHome}}{{$.Site.Data.config.description}}{{else}}{{.Summary}}{{end}}">
-    <title>{{ if .Title }}{{ .Title }}{{ else }}{{ $.Site.Data.config.page_title }}{{ end }}</title>
-    <meta name="viewport" content="width=device-width, initial-scale=1">
-  <link rel="shortcut icon" type="image/png" href="{{$.Site.BaseURL}}/icon.png" />
+  <!-- Meta tags -->
+  <meta charset="UTF-8" />
+  <meta
+    name="description"
+    content="{{if .IsHome}}{{$.Site.Data.config.description}}{{else}}{{.Summary}}{{end}}"
+  />
+  <title>
+    {{ if .Title }}{{ .Title }}{{ else }}{{ $.Site.Data.config.page_title }}{{
+    end }}
+  </title>
+  <meta name="viewport" content="width=device-width, initial-scale=1" />
+  <link
+    rel="shortcut icon"
+    type="image/png"
+    href="{{$.Site.BaseURL}}/icon.png"
+  />
 
-    <!-- CSS Stylesheets and Fonts -->
-    <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700&family=Source+Sans+Pro:wght@400;600;700&family=Fira+Code:wght@400;700&display=swap" rel="stylesheet">
-    {{$sass := resources.Match "styles/[!_]*.scss" }}
-    {{$css := slice }}
-    {{range $sass}}
-    {{$scss := . | resources.ToCSS (dict "outputStyle" "compressed") }}
-    {{$css = $css | append $scss}}
-    {{end}}
-    {{$finalCss := $css | resources.Concat "styles.css" | resources.Fingerprint "md5" | resources.Minify  }}
-    <link href="{{$finalCss.Permalink}}" rel="stylesheet">
+  <!-- CSS Stylesheets and Fonts -->
+  <link
+    href="https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700&family=Source+Sans+Pro:wght@400;600;700&family=Fira+Code:wght@400;700&display=swap"
+    rel="stylesheet"
+  />
+  {{$sass := resources.Match "styles/[!_]*.scss" }} {{$css := slice }} {{range
+  $sass}} {{$scss := . | resources.ToCSS (dict "outputStyle" "compressed") }}
+  {{$css = $css | append $scss}} {{end}} {{$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 }}
-    <script src="{{$darkMode.Permalink}}"></script>
-    {{partial "katex.html" .}}
+  {{ $darkMode := resources.Get "js/darkmode.js" | resources.Fingerprint "md5" |
+  resources.Minify }}
+  <script src="{{$darkMode.Permalink}}"></script>
+  {{partial "katex.html" .}}
 
-    <!--  Preload page vars  -->
-    {{$linkIndex := resources.Get "indices/linkIndex.json" | resources.Fingerprint "md5" | resources.Minify |  }}
-    {{$contentIndex := resources.Get "indices/contentIndex.json" | resources.Fingerprint "md5" | resources.Minify }}
-    <script>
-      const BASE_URL = {{.Site.BaseURL}}
-      const fetchData = Promise.all([
-            fetch("{{ $linkIndex.Permalink }}")
-              .then(data => data.json())
-              .then(data => ({
-                index: data.index,
-                links: data.links,
-              })),
-            fetch("{{ $contentIndex.Permalink }}")
-              .then(data => data.json()),
-          ])
-          .then(([{index, links}, content]) => ({
-            index,
-            links,
-            content,
-          }))
-    </script>
+  <!--  Preload page vars  -->
+  {{$linkIndex := resources.Get "indices/linkIndex.json" | resources.Fingerprint
+  "md5" | resources.Minify | }} {{$contentIndex := resources.Get
+  "indices/contentIndex.json" | resources.Fingerprint "md5" | resources.Minify
+  }}
+  <script>
+    const BASE_URL = {{.Site.BaseURL}}
+    const fetchData = Promise.all([
+          fetch("{{ $linkIndex.Permalink }}")
+            .then(data => data.json())
+            .then(data => ({
+              index: data.index,
+              links: data.links,
+            })),
+          fetch("{{ $contentIndex.Permalink }}")
+            .then(data => data.json()),
+        ])
+        .then(([{index, links}, content]) => ({
+          index,
+          links,
+          content,
+        }))
+  </script>
+  <script type="module">
+    import { router, navigate } from "https://unpkg.com/million/dist/router.mjs";
+    window.navigate = navigate;
+    router(".singlePage");
+    const callback = () => {
+      const draw = () => {
+        const container = document.getElementById("graph-container");
+        // retry if the graph is not ready
+        if (!container) return requestAnimationFrame(draw);
+        // clear the graph in case there is anything within it
+        container.textContent = "";
+
+        drawGraph(
+          {{strings.TrimRight "/" .Page.Permalink}},
+          {{strings.TrimRight "/" .Site.BaseURL}},
+          {{$.Site.Data.graphConfig.paths}},
+          {{$.Site.Data.graphConfig.depth}},
+          {{$.Site.Data.graphConfig.enableDrag}},
+          {{$.Site.Data.graphConfig.enableLegend}},
+          {{$.Site.Data.graphConfig.enableZoom}}
+        );
+      };
+      requestAnimationFrame(draw);
+    };
+    // We need on initial load, then subsequent redirs
+    window.addEventListener("million:navigate", callback);
+    window.addEventListener("DOMContentLoaded", callback);
+  </script>
 </head>
 {{ template "_internal/google_analytics.html" . }}

--
Gitblit v1.10.0