From ee9ed4f2877bff1a64104b6d97ed0d51b1bb6fa3 Mon Sep 17 00:00:00 2001 From: Jacky Zhao Date: Tue, 8 Aug 2023 20:36:24 -0700 Subject: [PATCH] fix head.tsx --- content/advanced/creating components.md | 33 ++++++++++++------------ quartz/components/Head.tsx | 10 +++---- quartz/static/og-image.png | Bin 0 -> 39281 bytes quartz/styles/base.scss | 12 ++++++--- 4 files changed, 29 insertions(+), 26 deletions(-) create mode 100644 quartz/static/og-image.png diff --git a/content/advanced/creating components.md b/content/advanced/creating components.md index a907013..e9f1385 100644 --- a/content/advanced/creating components.md +++ b/content/advanced/creating components.md @@ -140,17 +140,16 @@ export default (() => { ` return YourComponent }) satisfies QuartzComponentConstructor - ``` > [!hint] > For those coming from React, Quartz components are different from React components in that it only uses JSX for templating and layout. Hooks like `useEffect`, `useState`, etc. are not rendered and other properties that accept functions like `onClick` handlers will not work. Instead, do it using a regular JS script that modifies the DOM element directly. -As the names suggest, the `.beforeDOMLoaded` scripts are executed *before* the page is done loading so it doesn't have access to any elements on the page. This is mostly used to prefetch any critical data. +As the names suggest, the `.beforeDOMLoaded` scripts are executed _before_ the page is done loading so it doesn't have access to any elements on the page. This is mostly used to prefetch any critical data. The `.afterDOMLoaded` script executes once the page has been completely loaded. This is a good place to setup anything that should last for the duration of a site visit (e.g. getting something saved from local storage). -If you need to create an `afterDOMLoaded` script that depends on *page specific* elements that may change when navigating to a new page, you can listen for the `"nav"` event that gets fired whenever a page loads (which may happen on navigation if [[SPA Routing]] is enabled). +If you need to create an `afterDOMLoaded` script that depends on _page specific_ elements that may change when navigating to a new page, you can listen for the `"nav"` event that gets fired whenever a page loads (which may happen on navigation if [[SPA Routing]] is enabled). ```ts document.addEventListener("nav", () => { @@ -163,7 +162,9 @@ document.addEventListener("nav", () => { ``` It is best practice to also unmount any existing event handlers to prevent memory leaks. + #### Importing Code + Of course, it isn't always practical (nor desired!) to write your code as a string literal in the component. Quartz supports importing component code through `.inline.ts` files. @@ -181,20 +182,21 @@ export default (() => { YourComponent.afterDOM = script return YourComponent }) satisfies QuartzComponentConstructor - ``` ```ts title="quartz/components/scripts/graph.inline.ts" // any imports here are bundled for the browser import * as d3 from "d3" -document.getElementById('btn').onclick = () => { - alert('button clicked!') +document.getElementById("btn").onclick = () => { + alert("button clicked!") } ``` Additionally, like what is shown in the example above, you can import packages in `.inline.ts` files. This will be bundled by Quartz and included in the actual script. -### Using a Component + +### Using a Component + After creating your custom component, re-export it in `quartz/components/index.ts`: ```ts title="quartz/components/index.ts" {4,10} @@ -203,12 +205,7 @@ import Content from "./pages/Content" import Darkmode from "./Darkmode" import YourComponent from "./YourComponent" -export { - ArticleTitle, - Content, - Darkmode, - YourComponent -} +export { ArticleTitle, Content, Darkmode, YourComponent } ``` Then, you can use it like any other component in `quartz.layout.ts` via `Component.YourComponent()`. See the [[configuration#Layout|layout]] section for more details. @@ -220,10 +217,12 @@ import YourComponent from "./YourComponent" export default (() => { function AnotherComponent(props: QuartzComponentProps) { - return
-

It's nested!

- -
+ return ( +
+

It's nested!

+ +
+ ) } return AnotherComponent diff --git a/quartz/components/Head.tsx b/quartz/components/Head.tsx index 44decac..0651b95 100644 --- a/quartz/components/Head.tsx +++ b/quartz/components/Head.tsx @@ -3,14 +3,14 @@ import { JSResourceToScriptElement } from "../resources" import { QuartzComponentConstructor, QuartzComponentProps } from "./types" export default (() => { - function Head({ fileData, externalResources }: QuartzComponentProps) { + function Head({ cfg, fileData, externalResources }: QuartzComponentProps) { const slug = canonicalizeServer(fileData.slug!) const title = fileData.frontmatter?.title ?? "Untitled" - const description = fileData.description ?? "No description provided" + const description = fileData.description?.trim() ?? "No description provided" const { css, js } = externalResources const baseDir = pathToRoot(slug) const iconPath = baseDir + "/static/icon.png" - const ogImagePath = baseDir + "/static/og-image.png" + const ogImagePath = `https://${cfg.baseUrl}/static/og-image.png` return ( @@ -18,8 +18,8 @@ export default (() => { - - + + {cfg.baseUrl && } diff --git a/quartz/static/og-image.png b/quartz/static/og-image.png new file mode 100644 index 0000000000000000000000000000000000000000..f1321455b370d6ac9c89fa26b678a84972092c05 GIT binary patch literal 39281 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 literal 0 HcmV?d00001 diff --git a/quartz/styles/base.scss b/quartz/styles/base.scss index bd072d7..3fbbf87 100644 --- a/quartz/styles/base.scss +++ b/quartz/styles/base.scss @@ -269,24 +269,28 @@ h6 { // typography improvements h1 { font-size: 1.75rem; - margin-top: 2.75rem; + margin-top: 2.25rem; + margin-bottom: 1rem; } h2 { font-size: 1.4rem; - margin-top: 2.4rem; + margin-top: 1.9rem; + margin-bottom: 1rem; } h3 { font-size: 1.12rem; - margin-top: 2.12rem; + margin-top: 1.62rem; + margin-bottom: 1rem; } h4, h5, h6 { font-size: 1rem; - margin-top: 2rem; + margin-top: 1.5rem; + margin-bottom: 1rem; } div[data-rehype-pretty-code-fragment] {