From 527ce6546e7ec50e7720ff7b9b6ff79a89c3b7fc Mon Sep 17 00:00:00 2001 From: Jacky Zhao Date: Mon, 7 Aug 2023 21:41:18 -0700 Subject: [PATCH] various css fixes, fix new image loading bug when previewing, path docs --- content/advanced/architecture.md | 6 ++-- content/advanced/paths.md | 45 +++++++++++++++++++++++++++++ content/images/quartz-layout.png | Bin 63222 -> 56729 bytes content/migrating from Quartz 3.md | 1 + quartz/build.ts | 20 +++++++------ quartz/plugins/transformers/ofm.ts | 14 +++++---- quartz/styles/base.scss | 4 +-- 7 files changed, 71 insertions(+), 19 deletions(-) diff --git a/content/advanced/architecture.md b/content/advanced/architecture.md index 31a9d7fb..f30331c1 100644 --- a/content/advanced/architecture.md +++ b/content/advanced/architecture.md @@ -12,17 +12,17 @@ This question is best answered by tracing what happens when a user (you!) runs ` 2. This file has a [shebang]() line at the top which tells npm to execute it using Node. 3. `bootstrap-cli.mjs` is responsible for a few things: 1. Parsing the command-line arguments using [yargs](http://yargs.js.org/). - 2. Transpiling and bundling the rest of Quartz (which is in Typescript) to regular JavaScript using [esbuild](https://esbuild.github.io/). The `esbuild` configuration here is slightly special as it also handles `.scss` file imports using [esbuild-sass-plugin v2](https://www.npmjs.com/package/esbuild-sass-plugin). Additionally, we bundle 'inline' scripts (any `.inline.ts` file) that components can run client-side using a custom plugin that runs another instance of `esbuild` that bundles for browser instead of `node`. Both of these are imported as plain text. + 2. Transpiling and bundling the rest of Quartz (which is in Typescript) to regular JavaScript using [esbuild](https://esbuild.github.io/). The `esbuild` configuration here is slightly special as it also handles `.scss` file imports using [esbuild-sass-plugin v2](https://www.npmjs.com/package/esbuild-sass-plugin). Additionally, we bundle 'inline' client-side scripts (any `.inline.ts` file) that components declare usiong a custom `esbuild` plugin that runs another instance of `esbuild` that bundles for the browser instead of `node`. Modules of both types are imported as plain text. 3. Running the local preview server if `--serve` is set. This starts two servers: 1. A WebSocket server on port 3001 to handle hot-reload signals. This tracks all inbound connections and sends a 'rebuild' message a server-side change is detected (either content or configuration). 2. An HTTP file-server on a user defined port (normally 8080) to serve the actual website files. - 4. Again, if the local preview server is running, it also starts a file watcher to detect source-code changes (e.g. anything that is `.ts`, `.tsx`, `.scss`, or packager files). On a change, we _rebuild_ the module (step 2 above) using esbuild's [rebuild API](https://esbuild.github.io/api/#rebuild) which drastically reduces the build times. + 4. If the `--serve` flag is set, it also starts a file watcher to detect source-code changes (e.g. anything that is `.ts`, `.tsx`, `.scss`, or packager files). On a change, we rebuild the module (step 2 above) using esbuild's [rebuild API](https://esbuild.github.io/api/#rebuild) which drastically reduces the build times. 5. After transpiling the main Quartz build module (`quartz/build.ts`), we write it to a cache file `.quartz-cache/transpiled-build.mjs` and then dynamically import this using `await import(cacheFile)`. However, we need to be pretty smart about how to bust Node's [import cache](https://github.com/nodejs/modules/issues/307) so we add a random query string to fake Node into thinking it's a new module. This does, however, cause memory leaks so we just hope that the user doesn't hot-reload their configuration too many times in a single session :)) (it leaks about ~350kB memory on each reload). After importing the module, we then invoke it, passing in the command line arguments we parsed earlier along with a callback function to signal the client to refresh. 4. In `build.ts`, we start by installing source map support manually to account for the query string cache busting hack we introduced earlier. Then, we start processing content: 1. Clean the output directory. 2. Recursively glob all files in the `content` folder, respecting the `.gitignore`. 3. Parse the Markdown files. - 1. Quartz detects the number of threads available and chooses to spawn worker threads if there are >128 pieces of content to parse (rough heuristic). If it needs to spawn workers, it will do another esbuild transpile of the worker script `quartz/worker.ts`. Then, a work-stealing [workerpool](https://www.npmjs.com/package/workerpool) is then created and 'chunks' of 128 files are assigned to workers. + 1. Quartz detects the number of threads available and chooses to spawn worker threads if there are >128 pieces of content to parse (rough heuristic). If it needs to spawn workers, it will invoke esbuild again to transpile the worker script `quartz/worker.ts`. Then, a work-stealing [workerpool](https://www.npmjs.com/package/workerpool) is then created and batches of 128 files are assigned to workers. 2. Each worker (or just the main thread if there is no concurrency) creates a [unified](https://github.com/unifiedjs/unified) parser based off of the plugins defined in the [[configuration]]. 3. Parsing has three steps: 1. Read the file into a [vfile](https://github.com/vfile/vfile). diff --git a/content/advanced/paths.md b/content/advanced/paths.md index e69de29b..2a5e09fb 100644 --- a/content/advanced/paths.md +++ b/content/advanced/paths.md @@ -0,0 +1,45 @@ +--- +title: Paths in Quartz +--- + +Paths are pretty complex to reason about because, especially for a static site generator, they can come from so many places. + +The current browser URL? Technically a path. A full file path to a piece of content? Also a path. What about a slug for a piece of content? Yet another path. + +It would be silly to type these all as `string` and call it a day as it's pretty common to accidentally mistake one type of path for another. Unfortunately, TypeScript does not have [nominal types](https://en.wikipedia.org/wiki/Nominal_type_system) for type aliases meaning even if you made custom types of a server-side slug or a client-slug slug, you can still accidentally assign one to another and TypeScript wouldn't catch it. + +Luckily, we can mimic nominal typing using [brands](https://www.typescriptlang.org/play#example/nominal-typing). + +```typescript +// instead of +type ClientSlug = string + +// we do +type ClientSlug = string & { __brand: "client" } + +// that way, the following will fail typechecking +const slug: ClientSlug = "some random slug" +``` + +While this prevents most typing mistakes *within* our nominal typing system (e.g. mistaking a server slug for a client slug), it doesn't prevent us from *accidentally* mistaking a string for a client slug when we forcibly cast it. + +Thus, we still need to be careful when casting from a string to one of these nominal types in the 'entrypoints', illustrated with hexagon shapes in the diagram below. + +The following diagram draws the relationships between all the path sources, nominal path types, and what functions in `quartz/path.ts` convert between them. + +```mermaid +graph LR + Browser{{Browser}} --> Window{{Window}} & LinkElement{{Link Element}} + Window --"getCanonicalSlug()"--> Canonical[Canonical Slug] + Window --"getClientSlug()"--> Client[Client Slug] + LinkElement --".href"--> Relative[Relative URL] + Client --"canonicalizeClient()"--> Canonical + Canonical --"pathToRoot()"--> Relative + Canonical --"resolveRelative()" --> Relative + MD{{Markdown File}} --> FilePath{{File Path}} & Links[Markdown links] + Links --"transformLink()"--> Relative + FilePath --"slugifyFilePath()"--> Server[Server Slug] + Server --> HTML["HTML File"] + Server --"canonicalizeServer()"--> Canonical + style Canonical stroke-width:4px +``` diff --git a/content/images/quartz-layout.png b/content/images/quartz-layout.png index 4767b549c2469c65482dde2fc69dfea67c0e781b..03435f7d57874b5c7c438dd0866318fe3c8d61dd 100644 GIT binary patch literal 56729 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≧itPg6L@|j0))h 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�oFQF7lI>fxZupq*R(>;lRsuhPjwrs_ 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 diff --git a/content/migrating from Quartz 3.md b/content/migrating from Quartz 3.md index 98a5b9a5..d3feb3fb 100644 --- a/content/migrating from Quartz 3.md +++ b/content/migrating from Quartz 3.md @@ -6,6 +6,7 @@ As you already have Quartz locally, you don't need to fork or clone it again. Si ```bash git checkout v4-alpha +git pull upstream v4-alpha npm i npx quartz create ``` diff --git a/quartz/build.ts b/quartz/build.ts index ae5fd409..05edf865 100644 --- a/quartz/build.ts +++ b/quartz/build.ts @@ -23,7 +23,7 @@ import { parseMarkdown } from "./processors/parse" import { filterContent } from "./processors/filter" import { emitContent } from "./processors/emit" import cfg from "../quartz.config" -import { FilePath, joinSegments, slugifyFilePath } from "./path" +import { FilePath, ServerSlug, joinSegments, slugifyFilePath } from "./path" import chokidar from "chokidar" import { ProcessedContent } from "./plugins/vfile" import { Argv, BuildCtx } from "./ctx" @@ -91,6 +91,7 @@ async function startServing( contentMap.set(vfile.data.filePath!, content) } + const initialSlugs = ctx.allSlugs let timeoutId: ReturnType | null = null let toRebuild: Set = new Set() let toRemove: Set = new Set() @@ -102,20 +103,19 @@ async function startServing( } // dont bother rebuilding for non-content files, just track and refresh + fp = toPosixPath(fp) + const filePath = joinSegments(argv.directory, fp) as FilePath if (path.extname(fp) !== ".md") { - fp = toPosixPath(fp) - const filePath = joinSegments(argv.directory, fp) as FilePath if (action === "add" || action === "change") { trackedAssets.add(filePath) } else if (action === "delete") { - trackedAssets.add(filePath) + trackedAssets.delete(filePath) } clientRefresh() return } - fp = toPosixPath(fp) - const filePath = joinSegments(argv.directory, fp) as FilePath + if (action === "add" || action === "change") { toRebuild.add(filePath) } else if (action === "delete") { @@ -133,10 +133,12 @@ async function startServing( try { const filesToRebuild = [...toRebuild].filter((fp) => !toRemove.has(fp)) - ctx.allSlugs = [...new Set([...contentMap.keys(), ...toRebuild, ...trackedAssets])] - .filter((fp) => !toRemove.has(fp)) - .map((fp) => slugifyFilePath(path.posix.relative(argv.directory, fp) as FilePath)) + const trackedSlugs = + [...new Set([...contentMap.keys(), ...toRebuild, ...trackedAssets])] + .filter((fp) => !toRemove.has(fp)) + .map((fp) => slugifyFilePath(path.posix.relative(argv.directory, fp) as FilePath)) + ctx.allSlugs = [...new Set([...initialSlugs, ...trackedSlugs])] const parsedContent = await parseMarkdown(ctx, filesToRebuild) for (const content of parsedContent) { const [_tree, vfile] = content diff --git a/quartz/plugins/transformers/ofm.ts b/quartz/plugins/transformers/ofm.ts index 0904ed12..e7438aa9 100644 --- a/quartz/plugins/transformers/ofm.ts +++ b/quartz/plugins/transformers/ofm.ts @@ -413,12 +413,16 @@ export const ObsidianFlavoredMarkdown: QuartzTransformerPlugin js.push({ script: ` import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.esm.min.mjs'; + const darkMode = document.documentElement.getAttribute('saved-theme') === 'dark' + mermaid.initialize({ + startOnLoad: false, + securityLevel: 'loose', + theme: darkMode ? 'dark' : 'default' + }); document.addEventListener('nav', async () => { - const darkMode = document.documentElement.getAttribute('saved-theme') === 'dark' - mermaid.initialize({ - securityLevel: 'loose', - theme: darkMode ? 'dark' : 'default' - }); + await mermaid.run({ + querySelector: '.mermaid' + }) }); `, loadTime: "afterDOMReady", diff --git a/quartz/styles/base.scss b/quartz/styles/base.scss index e219cc57..185582e8 100644 --- a/quartz/styles/base.scss +++ b/quartz/styles/base.scss @@ -7,7 +7,7 @@ html { scroll-behavior: smooth; -webkit-text-size-adjust: none; text-size-adjust: none; - overflow-x: none; + overflow-x: hidden; width: 100vw; } @@ -311,10 +311,10 @@ pre { border-radius: 5px; overflow-x: auto; border: 1px solid var(--lightgray); + position: relative; &:has(> code.mermaid) { border: none; - position: relative; } & > code {