From e89c395f7c8cabffb880ce36cc27926667b608de Mon Sep 17 00:00:00 2001
From: Jacky Zhao <j.zhao2k19@gmail.com>
Date: Fri, 09 Aug 2024 02:17:20 +0000
Subject: [PATCH] fix: unmemoize explorer on rebuild (closes #1077)
---
quartz/build.ts | 21 +++++++++++++++------
1 files changed, 15 insertions(+), 6 deletions(-)
diff --git a/quartz/build.ts b/quartz/build.ts
index 972a7e8..342a27c 100644
--- a/quartz/build.ts
+++ b/quartz/build.ts
@@ -38,8 +38,13 @@
type FileEvent = "add" | "change" | "delete"
+function newBuildId() {
+ return new Date().toISOString()
+}
+
async function buildQuartz(argv: Argv, mut: Mutex, clientRefresh: () => void) {
const ctx: BuildCtx = {
+ buildId: newBuildId(),
argv,
cfg,
allSlugs: [],
@@ -167,6 +172,7 @@
const perf = new PerfTimer()
console.log(chalk.yellow("Detected change, rebuilding..."))
+ ctx.buildId = newBuildId()
// UPDATE DEP GRAPH
const fp = joinSegments(argv.directory, toPosixPath(filepath)) as FilePath
@@ -363,14 +369,10 @@
const perf = new PerfTimer()
console.log(chalk.yellow("Detected change, rebuilding..."))
+ ctx.buildId = newBuildId()
+
try {
const filesToRebuild = [...toRebuild].filter((fp) => !toRemove.has(fp))
-
- 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
@@ -384,6 +386,13 @@
const parsedFiles = [...contentMap.values()]
const filteredContent = filterContent(ctx, parsedFiles)
+ // re-update slugs
+ 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])]
+
// TODO: we can probably traverse the link graph to figure out what's safe to delete here
// instead of just deleting everything
await rimraf(path.join(argv.output, ".*"), { glob: true })
--
Gitblit v1.10.0