From 6d5491fdcbccfad7af6c6dcc63ce2f67abd3850c Mon Sep 17 00:00:00 2001
From: Jacky Zhao <j.zhao2k19@gmail.com>
Date: Sat, 17 Jun 2023 19:07:40 +0000
Subject: [PATCH] collapsible toc

---
 quartz/components/scripts/spa.inline.ts |   11 ++++++++---
 1 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/quartz/components/scripts/spa.inline.ts b/quartz/components/scripts/spa.inline.ts
index 2063a15..a129dc4 100644
--- a/quartz/components/scripts/spa.inline.ts
+++ b/quartz/components/scripts/spa.inline.ts
@@ -29,6 +29,11 @@
   return { url: new URL(href), scroll: 'routerNoscroll' in a.dataset ? false : undefined }
 }
 
+function notifyNav(slug: string) {
+  const event = new CustomEvent("nav", { detail: { slug } })
+  document.dispatchEvent(event)
+}
+
 let p: DOMParser
 async function navigate(url: URL, isBack: boolean = false) {
   p = p || new DOMParser()
@@ -64,9 +69,7 @@
   const elementsToAdd = html.head.querySelectorAll(':not([spa-preserve])')
   elementsToAdd.forEach(el => document.head.appendChild(el))
 
-  if (!document.activeElement?.closest('[data-persist]')) {
-    document.body.focus()
-  }
+  notifyNav(document.body.dataset.slug!)
   delete announcer.dataset.persist
 }
 
@@ -93,6 +96,7 @@
       return
     })
   }
+
   return new class Router {
     go(pathname: string) {
       const url = new URL(pathname, window.location.toString())
@@ -110,6 +114,7 @@
 }
 
 createRouter()
+notifyNav(document.body.dataset.slug!)
 
 if (!customElements.get('route-announcer')) {
   const attrs = {

--
Gitblit v1.10.0