From 60b3bc34cb07b5bec87cbd667ea9f804ff14cf3c Mon Sep 17 00:00:00 2001
From: Jacky Zhao <j.zhao2k19@gmail.com>
Date: Sun, 22 Oct 2023 04:06:02 +0000
Subject: [PATCH] fix: catch html to jsx errors (closes #547)

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

diff --git a/quartz/components/scripts/spa.inline.ts b/quartz/components/scripts/spa.inline.ts
index 6f9399e..fc5aa74 100644
--- a/quartz/components/scripts/spa.inline.ts
+++ b/quartz/components/scripts/spa.inline.ts
@@ -64,7 +64,7 @@
   // scroll into place and add history
   if (!isBack) {
     if (url.hash) {
-      const el = document.getElementById(url.hash.substring(1))
+      const el = document.getElementById(decodeURIComponent(url.hash.substring(1)))
       el?.scrollIntoView()
     } else {
       window.scrollTo({ top: 0 })
@@ -79,7 +79,9 @@
 
   // delay setting the url until now
   // at this point everything is loaded so changing the url should resolve to the correct addresses
-  history.pushState({}, "", url)
+  if (!isBack) {
+    history.pushState({}, "", url)
+  }
   notifyNav(getFullSlug(window))
   delete announcer.dataset.persist
 }
@@ -90,7 +92,7 @@
   if (typeof window !== "undefined") {
     window.addEventListener("click", async (event) => {
       const { url } = getOpts(event) ?? {}
-      if (!url) return
+      if (!url || event.ctrlKey || event.metaKey) return
       event.preventDefault()
       try {
         navigate(url, false)

--
Gitblit v1.10.0