From 3ac6b42e16dca5a44ed3fec2c0314f1dbbc2322b Mon Sep 17 00:00:00 2001
From: Jacky Zhao <j.zhao2k19@gmail.com>
Date: Sun, 16 Jul 2023 06:02:12 +0000
Subject: [PATCH] finish path refactoring, add sourcemap + better trace support
---
quartz/components/renderPage.tsx | 47 ++++++++++++++++++++++++++++++-----------------
1 files changed, 30 insertions(+), 17 deletions(-)
diff --git a/quartz/components/renderPage.tsx b/quartz/components/renderPage.tsx
index 0e0f4c0..e5cf5eb 100644
--- a/quartz/components/renderPage.tsx
+++ b/quartz/components/renderPage.tsx
@@ -3,7 +3,7 @@
import HeaderConstructor from "./Header"
import BodyConstructor from "./Body"
import { JSResourceToScriptElement, StaticResources } from "../resources";
-import { resolveToRoot } from "../path";
+import { CanonicalSlug, pathToRoot } from "../path";
interface RenderComponents {
head: QuartzComponent
@@ -15,43 +15,56 @@
footer: QuartzComponent,
}
-export function pageResources(slug: string, staticResources: StaticResources): StaticResources {
- const baseDir = resolveToRoot(slug)
+export function pageResources(slug: CanonicalSlug, staticResources: StaticResources): StaticResources {
+ const baseDir = pathToRoot(slug)
+
+ const contentIndexPath = baseDir + "/static/contentIndex.json"
+ const contentIndexScript = `const fetchData = fetch(\`${contentIndexPath}\`).then(data => data.json())`
+
return {
css: [baseDir + "/index.css", ...staticResources.css],
js: [
{ src: baseDir + "/prescript.js", loadTime: "beforeDOMReady", contentType: "external" },
+ { loadTime: "beforeDOMReady", contentType: "inline", spaPreserve: true, script: contentIndexScript },
...staticResources.js,
{ src: baseDir + "/postscript.js", loadTime: "afterDOMReady", moduleType: 'module', contentType: "external" }
]
}
}
-export function renderPage(slug: string, componentData: QuartzComponentProps, components: RenderComponents, pageResources: StaticResources): string {
+export function renderPage(slug: CanonicalSlug, componentData: QuartzComponentProps, components: RenderComponents, pageResources: StaticResources): string {
const { head: Head, header, beforeBody, pageBody: Content, left, right, footer: Footer } = components
const Header = HeaderConstructor()
const Body = BodyConstructor()
+ const LeftComponent =
+ <div class="left sidebar">
+ {left.map(BodyComponent => <BodyComponent {...componentData} />)}
+ </div>
+
+ const RightComponent =
+ <div class="right sidebar">
+ {right.map(BodyComponent => <BodyComponent {...componentData} />)}
+ </div>
+
const doc = <html>
<Head {...componentData} />
<body data-slug={slug}>
<div id="quartz-root" class="page">
- <Header {...componentData} >
- {header.map(HeaderComponent => <HeaderComponent {...componentData} />)}
- </Header>
- <div class="popover-hint">
- {beforeBody.map(BodyComponent => <BodyComponent {...componentData} />)}
- </div>
<Body {...componentData}>
- <div class="left">
- {left.map(BodyComponent => <BodyComponent {...componentData} />)}
- </div>
- <div class="center popover-hint">
+ {LeftComponent}
+ <div class="center">
+ <div class="page-header">
+ <Header {...componentData} >
+ {header.map(HeaderComponent => <HeaderComponent {...componentData} />)}
+ </Header>
+ <div class="popover-hint">
+ {beforeBody.map(BodyComponent => <BodyComponent {...componentData} />)}
+ </div>
+ </div>
<Content {...componentData} />
</div>
- <div class="right">
- {right.map(BodyComponent => <BodyComponent {...componentData} />)}
- </div>
+ {RightComponent}
</Body>
<Footer {...componentData} />
</div>
--
Gitblit v1.10.0