From fe2e16d937e2b57fb2bb1d10dea47db7256a4a49 Mon Sep 17 00:00:00 2001
From: Jacky Zhao <j.zhao2k19@gmail.com>
Date: Mon, 24 Mar 2025 01:08:07 +0000
Subject: [PATCH] fix: disallow user-select in popover
---
quartz/components/renderPage.tsx | 45 +++++++++++++++++++++++++++++----------------
1 files changed, 29 insertions(+), 16 deletions(-)
diff --git a/quartz/components/renderPage.tsx b/quartz/components/renderPage.tsx
index 9c53096..19324f5 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"
@@ -28,7 +29,7 @@
const contentIndexPath = joinSegments(baseDir, "static/contentIndex.json")
const contentIndexScript = `const fetchData = fetch("${contentIndexPath}").then(data => data.json())`
- return {
+ const resources: StaticResources = {
css: [
{
content: joinSegments(baseDir, "index.css"),
@@ -48,27 +49,26 @@
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") {
@@ -184,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
--
Gitblit v1.10.0