Jacky Zhao
2023-07-16 3ac6b42e16dca5a44ed3fec2c0314f1dbbc2322b
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,8 +15,8 @@
  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())`
@@ -32,23 +32,19 @@
  }
}
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">
      <div class="left-inner">
        {left.map(BodyComponent => <BodyComponent {...componentData} />)}
      </div>
    <div class="left sidebar">
      {left.map(BodyComponent => <BodyComponent {...componentData} />)}
    </div>
  const RightComponent =
    <div class="right">
      <div class="right-inner">
        {right.map(BodyComponent => <BodyComponent {...componentData} />)}
      </div>
    <div class="right sidebar">
      {right.map(BodyComponent => <BodyComponent {...componentData} />)}
    </div>
  const doc = <html>