From c89f8b1a9a20becd982ed0b4bc88b1685a15832d Mon Sep 17 00:00:00 2001
From: Jacky Zhao <j.zhao2k19@gmail.com>
Date: Sun, 13 Aug 2023 04:16:43 +0000
Subject: [PATCH] fix nested callout folding
---
content/features/upcoming features.md | 1 -
quartz/styles/callouts.scss | 1 +
quartz/components/scripts/callout.inline.ts | 16 ++++++++++++++++
3 files changed, 17 insertions(+), 1 deletions(-)
diff --git a/content/features/upcoming features.md b/content/features/upcoming features.md
index 728d16a..d2a7617 100644
--- a/content/features/upcoming features.md
+++ b/content/features/upcoming features.md
@@ -4,7 +4,6 @@
## todo
-- blockquote with link in first child broken
- 404 using base url
- back button with anchors / popovers + spa is broken
- search should be fast for large repos
diff --git a/quartz/components/scripts/callout.inline.ts b/quartz/components/scripts/callout.inline.ts
index 556ef3c..d8cf518 100644
--- a/quartz/components/scripts/callout.inline.ts
+++ b/quartz/components/scripts/callout.inline.ts
@@ -4,6 +4,22 @@
const collapsed = outerBlock.classList.contains(`is-collapsed`)
const height = collapsed ? this.scrollHeight : outerBlock.scrollHeight
outerBlock.style.maxHeight = height + `px`
+
+ // walk and adjust height of all parents
+ let current = outerBlock
+ let parent = outerBlock.parentElement
+ while (parent) {
+ if (!parent.classList.contains(`callout`)) {
+ return
+ }
+
+ const collapsed = parent.classList.contains(`is-collapsed`)
+ const height = collapsed ? parent.scrollHeight : parent.scrollHeight + current.scrollHeight
+ parent.style.maxHeight = height + `px`
+
+ current = parent
+ parent = parent.parentElement
+ }
}
function setupCallout() {
diff --git a/quartz/styles/callouts.scss b/quartz/styles/callouts.scss
index 149321c..ad99165 100644
--- a/quartz/styles/callouts.scss
+++ b/quartz/styles/callouts.scss
@@ -7,6 +7,7 @@
padding: 0 1rem;
overflow-y: hidden;
transition: max-height 0.3s ease;
+ box-sizing: border-box;
& > *:nth-child(2) {
margin-top: 0;
--
Gitblit v1.10.0