From 0b348a053241d31245e5aa7176f47b2ae4719dfd Mon Sep 17 00:00:00 2001
From: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 07 May 2025 19:46:23 +0000
Subject: [PATCH] chore(deps): bump the production-dependencies group with 7 updates (#1964)
---
quartz/components/renderPage.tsx | 67 +++++++++++++++++++++++----------
1 files changed, 47 insertions(+), 20 deletions(-)
diff --git a/quartz/components/renderPage.tsx b/quartz/components/renderPage.tsx
index 0c18544..e43189d 100644
--- a/quartz/components/renderPage.tsx
+++ b/quartz/components/renderPage.tsx
@@ -3,7 +3,8 @@
import HeaderConstructor from "./Header"
import BodyConstructor from "./Body"
import { JSResourceToScriptElement, StaticResources } from "../util/resources"
-import { clone, FullSlug, RelativeURL, joinSegments, normalizeHastElement } from "../util/path"
+import { FullSlug, RelativeURL, joinSegments, normalizeHastElement } from "../util/path"
+import { clone } from "../util/clone"
import { visit } from "unist-util-visit"
import { Root, Element, ElementContent } from "hast"
import { GlobalConfiguration } from "../cfg"
@@ -14,6 +15,7 @@
header: QuartzComponent[]
beforeBody: QuartzComponent[]
pageBody: QuartzComponent
+ afterBody: QuartzComponent[]
left: QuartzComponent[]
right: QuartzComponent[]
footer: QuartzComponent
@@ -27,8 +29,13 @@
const contentIndexPath = joinSegments(baseDir, "static/contentIndex.json")
const contentIndexScript = `const fetchData = fetch("${contentIndexPath}").then(data => data.json())`
- return {
- css: [joinSegments(baseDir, "index.css"), ...staticResources.css],
+ const resources: StaticResources = {
+ css: [
+ {
+ content: joinSegments(baseDir, "index.css"),
+ },
+ ...staticResources.css,
+ ],
js: [
{
src: joinSegments(baseDir, "prescript.js"),
@@ -42,34 +49,33 @@
script: contentIndexScript,
},
...staticResources.js,
- {
- src: joinSegments(baseDir, "postscript.js"),
- loadTime: "afterDOMReady",
- moduleType: "module",
- contentType: "external",
- },
],
+ additionalHead: staticResources.additionalHead,
}
+
+ resources.js.push({
+ src: joinSegments(baseDir, "postscript.js"),
+ loadTime: "afterDOMReady",
+ moduleType: "module",
+ contentType: "external",
+ })
+
+ return resources
}
-export function renderPage(
+function renderTranscludes(
+ root: Root,
cfg: GlobalConfiguration,
slug: FullSlug,
componentData: QuartzComponentProps,
- components: RenderComponents,
- pageResources: StaticResources,
-): string {
- // make a deep copy of the tree so we don't remove the transclusion references
- // for the file cached in contentMap in build.ts
- const root = clone(componentData.tree) as Root
-
+) {
// process transcludes in componentData
visit(root, "element", (node, _index, _parent) => {
if (node.tagName === "blockquote") {
const classNames = (node.properties?.className ?? []) as string[]
if (classNames.includes("transclude")) {
const inner = node.children[0] as Element
- const transcludeTarget = inner.properties["data-slug"] as FullSlug
+ const transcludeTarget = (inner.properties["data-slug"] ?? slug) as FullSlug
const page = componentData.allFiles.find((f) => f.slug === transcludeTarget)
if (!page) {
return
@@ -118,11 +124,12 @@
// skip until we find the blockref that matches
if (el.properties?.id === blockRef) {
startIdx = i
- startDepth = Number(el.tagName.substring(1))
+ startDepth = depth
}
} else if (depth <= startDepth) {
// looking for new header that is same level or higher
endIdx = i
+ break
}
}
@@ -177,6 +184,19 @@
}
}
})
+}
+
+export function renderPage(
+ cfg: GlobalConfiguration,
+ slug: FullSlug,
+ componentData: QuartzComponentProps,
+ components: RenderComponents,
+ pageResources: StaticResources,
+): string {
+ // make a deep copy of the tree so we don't remove the transclusion references
+ // for the file cached in contentMap in build.ts
+ const root = clone(componentData.tree) as Root
+ renderTranscludes(root, cfg, slug, componentData)
// set componentData.tree to the edited html that has transclusions rendered
componentData.tree = root
@@ -186,6 +206,7 @@
header,
beforeBody,
pageBody: Content,
+ afterBody,
left,
right,
footer: Footer,
@@ -231,10 +252,16 @@
</div>
</div>
<Content {...componentData} />
+ <hr />
+ <div class="page-footer">
+ {afterBody.map((BodyComponent) => (
+ <BodyComponent {...componentData} />
+ ))}
+ </div>
</div>
{RightComponent}
+ <Footer {...componentData} />
</Body>
- <Footer {...componentData} />
</div>
</body>
{pageResources.js
--
Gitblit v1.10.0