From e0ebee5aa9b3646de722f139f1d8d15591df538e Mon Sep 17 00:00:00 2001
From: Jacky Zhao <j.zhao2k19@gmail.com>
Date: Sun, 02 Jul 2023 20:08:29 +0000
Subject: [PATCH] various polish

---
 quartz/components/renderPage.tsx |   43 ++++++++++++++++++++++++++++++-------------
 1 files changed, 30 insertions(+), 13 deletions(-)

diff --git a/quartz/components/renderPage.tsx b/quartz/components/renderPage.tsx
index 0e0f4c0..c70f092 100644
--- a/quartz/components/renderPage.tsx
+++ b/quartz/components/renderPage.tsx
@@ -17,10 +17,15 @@
 
 export function pageResources(slug: string, staticResources: StaticResources): StaticResources {
   const baseDir = resolveToRoot(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: "afterDOMReady", contentType: "inline", spaPreserve: true, script: contentIndexScript },
       ...staticResources.js,
       { src: baseDir + "/postscript.js", loadTime: "afterDOMReady", moduleType: 'module', contentType: "external" }
     ]
@@ -32,28 +37,40 @@
   const Header = HeaderConstructor()
   const Body = BodyConstructor()
 
+  const LeftComponent =
+    <div class="left">
+      <div class="left-inner">
+        {left.map(BodyComponent => <BodyComponent {...componentData} />)}
+      </div>
+    </div>
+
+  const RightComponent =
+    <div class="right">
+      <div class="right-inner">
+        {right.map(BodyComponent => <BodyComponent {...componentData} />)}
+      </div>
+    </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 class="page-header">
+          <Header {...componentData} >
+            {header.map(HeaderComponent => <HeaderComponent {...componentData} />)}
+          </Header>
+          <div class="popover-hint">
+            {beforeBody.map(BodyComponent => <BodyComponent {...componentData} />)}
+          </div>
         </div>
         <Body {...componentData}>
-          <div class="left">
-            {left.map(BodyComponent => <BodyComponent {...componentData} />)}
-          </div>
-          <div class="center popover-hint">
+          {LeftComponent}
+          <div class="center">
             <Content {...componentData} />
+            <Footer {...componentData} />
           </div>
-          <div class="right">
-            {right.map(BodyComponent => <BodyComponent {...componentData} />)}
-          </div>
+          {RightComponent}
         </Body>
-        <Footer {...componentData} />
       </div>
     </body>
     {pageResources.js.filter(resource => resource.loadTime === "afterDOMReady").map(res => JSResourceToScriptElement(res))}

--
Gitblit v1.10.0