From 685c06ce2e7c559b4e2cc544e300c1262c739b1c Mon Sep 17 00:00:00 2001
From: K Gopal Krishna <30401343+kayg04@users.noreply.github.com>
Date: Fri, 04 Apr 2025 17:36:29 +0000
Subject: [PATCH] fix(RecentNotes): Prevent folder pages from always appearing first (closes #1901) (#1904)
---
quartz/components/scripts/toc.inline.ts | 21 ++++++++++-----------
1 files changed, 10 insertions(+), 11 deletions(-)
diff --git a/quartz/components/scripts/toc.inline.ts b/quartz/components/scripts/toc.inline.ts
index a518c10..4148fa2 100644
--- a/quartz/components/scripts/toc.inline.ts
+++ b/quartz/components/scripts/toc.inline.ts
@@ -1,13 +1,13 @@
const observer = new IntersectionObserver((entries) => {
for (const entry of entries) {
const slug = entry.target.id
- const tocEntryElement = document.querySelector(`a[data-for="${slug}"]`)
+ const tocEntryElements = document.querySelectorAll(`a[data-for="${slug}"]`)
const windowHeight = entry.rootBounds?.height
- if (windowHeight && tocEntryElement) {
+ if (windowHeight && tocEntryElements.length > 0) {
if (entry.boundingClientRect.y < windowHeight) {
- tocEntryElement.classList.add("in-view")
+ tocEntryElements.forEach((tocEntryElement) => tocEntryElement.classList.add("in-view"))
} else {
- tocEntryElement.classList.remove("in-view")
+ tocEntryElements.forEach((tocEntryElement) => tocEntryElement.classList.remove("in-view"))
}
}
}
@@ -25,16 +25,15 @@
}
function setupToc() {
- const toc = document.getElementById("toc")
- if (toc) {
- const content = toc.nextElementSibling as HTMLElement | undefined
- if (!content) return
- toc.addEventListener("click", toggleToc)
- window.addCleanup(() => toc.removeEventListener("click", toggleToc))
+ for (const toc of document.getElementsByClassName("toc")) {
+ const button = toc.querySelector(".toc-header")
+ const content = toc.querySelector(".toc-content")
+ if (!button || !content) return
+ button.addEventListener("click", toggleToc)
+ window.addCleanup(() => button.removeEventListener("click", toggleToc))
}
}
-window.addEventListener("resize", setupToc)
document.addEventListener("nav", () => {
setupToc()
--
Gitblit v1.10.0