From 9b72edcd9cce10d6064e4e8b2f61b7db2966515d Mon Sep 17 00:00:00 2001
From: Jacky Zhao <j.zhao2k19@gmail.com>
Date: Tue, 25 Oct 2022 20:14:13 +0000
Subject: [PATCH] Merge branch 'hugo' of https://github.com/jackyzha0/quartz into hugo
---
assets/js/router.js | 45 +++++++++++++++++++++++----------------------
1 files changed, 23 insertions(+), 22 deletions(-)
diff --git a/assets/js/router.js b/assets/js/router.js
index 5c874ee..efaa10e 100644
--- a/assets/js/router.js
+++ b/assets/js/router.js
@@ -1,25 +1,26 @@
-import { router, navigate } from "https://unpkg.com/million/dist/router.mjs"
+import {
+ apply,
+ navigate,
+ prefetch,
+ router,
+} from "https://unpkg.com/million@1.11.5/dist/router.mjs"
-export const init = (loader) => {
- // SPA navigation for access later
- window.navigate = navigate
- // We only mutate document.title and content within .singlePage element
- router(".singlePage")
- // We need on initial load, then subsequent redirs
- window.addEventListener("million:navigate", () => callback(loader))
- window.addEventListener("DOMContentLoaded", () => callback(loader))
-}
-
-export const callback = (loader) => {
- // requestAnimationFrame() delays graph draw until SPA routing is finished
- 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 = ""
-
- loader()
+export const attachSPARouting = (init, rerender) => {
+ // Attach SPA functions to the global Million namespace
+ window.Million = {
+ apply,
+ navigate,
+ prefetch,
+ router,
}
- requestAnimationFrame(draw)
+
+ const render = () => requestAnimationFrame(rerender)
+
+ window.addEventListener("DOMContentLoaded", () => {
+ apply((doc) => init(doc))
+ init()
+ router(".singlePage")
+ render()
+ })
+ window.addEventListener("million:navigate", render)
}
--
Gitblit v1.10.0