From 9db66d500eee958b61d73182e9f274d32a633c79 Mon Sep 17 00:00:00 2001
From: Emile Bangma <github@emilebangma.com>
Date: Sun, 06 Apr 2025 22:23:49 +0000
Subject: [PATCH] fix(popover): round coords remove blurred popovers (#1911)

---
 quartz/components/scripts/popover.inline.ts |   16 ++++++++--------
 1 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/quartz/components/scripts/popover.inline.ts b/quartz/components/scripts/popover.inline.ts
index d02b0b7..86cc885 100644
--- a/quartz/components/scripts/popover.inline.ts
+++ b/quartz/components/scripts/popover.inline.ts
@@ -12,7 +12,7 @@
   clearActivePopover()
 
   const link = this
-  link.id = `backlink-${randomIdNonSecure()}`
+  const id = randomIdNonSecure()
   if (link.dataset.noPopover === "true") {
     return
   }
@@ -23,12 +23,12 @@
       middleware: [inline({ x: clientX, y: clientY }), shift(), flip()],
     })
     Object.assign(popoverElement.style, {
-      transform: `translate(${x}px, ${y}px)`,
+      transform: `translate(${x.toFixed()}px, ${y.toFixed()}px)`,
     })
   }
 
-  const prevPopoverElement = document.getElementById(`popover-${link.id.split("-")[1]}`)
-  const hasAlreadyBeenFetched = () => !!prevPopoverElement
+  const prevPopoverElement = document.getElementById(`popover-${id}`)
+  const hasAlreadyBeenFetched = () => !!document.getElementById(`popover-${id}`)
 
   // dont refetch if there's already a popover
   if (hasAlreadyBeenFetched()) {
@@ -91,7 +91,7 @@
       normalizeRelativeURLs(html, targetUrl)
       // prepend all IDs inside popovers to prevent duplicates
       html.querySelectorAll("[id]").forEach((el) => {
-        const targetID = `popover-${el.id}`
+        const targetID = `popover-internal-${el.id}`
         el.id = targetID
       })
       const elts = [...html.getElementsByClassName("popover-hint")]
@@ -101,12 +101,12 @@
   }
 
   setPosition(popoverElement)
-  popoverElement.id = `popover-${link.id.split("-")[1]}`
-  popoverElement?.classList.add("active-popover")
+  popoverElement.id = `popover-${id}`
+  popoverElement.classList.add("active-popover")
   document.body.appendChild(popoverElement)
 
   if (hash !== "") {
-    const targetAnchor = hash.startsWith("#popover") ? hash : `#popover-${hash.slice(1)}`
+    const targetAnchor = `#popover-internal-${hash.slice(1)}`
     const heading = popoverInner.querySelector(targetAnchor) as HTMLElement | null
     if (heading) {
       // leave ~12px of buffer when scrolling to a heading

--
Gitblit v1.10.0