From 8dd73704e6e95254d2addf51fede6329f90796b8 Mon Sep 17 00:00:00 2001
From: Jacky Zhao <j.zhao2k19@gmail.com>
Date: Sat, 22 Jul 2023 23:06:36 +0000
Subject: [PATCH] hot content reload

---
 quartz/bootstrap-cli.mjs |   27 ++++++++++++++-------------
 1 files changed, 14 insertions(+), 13 deletions(-)

diff --git a/quartz/bootstrap-cli.mjs b/quartz/bootstrap-cli.mjs
index f6f5543..b4bf3a9 100755
--- a/quartz/bootstrap-cli.mjs
+++ b/quartz/bootstrap-cli.mjs
@@ -72,7 +72,7 @@
   serve: {
     boolean: true,
     default: false,
-    describe: 'run a local server to preview your Quartz'
+    describe: 'run a local server to live-preview your Quartz'
   },
   port: {
     number: true,
@@ -128,16 +128,6 @@
       ]
     }))
 
-    // TODO
-    const linkResolutionStrategy = exitIfCancel(await select({
-      message: `Choose how Quartz should resolve links in your content. You can change this later in \`quartz.config.ts\`.`,
-      options: [
-        { value: 'absolute', label: "Treat links as absolute path", hint: "for content made for Quartz 3 and Hugo" },
-        { value: 'shortest', label: "Treat links as shortest path", hint: "for most Obsidian vaults" },
-        { value: 'relative', label: "Treat links as relative paths", hint: "for just normal Markdown files" },
-      ]
-    }))
-
     async function rmContentFolder() {
       const contentStat = await fs.promises.lstat(contentFolder)
       if (contentStat) {
@@ -182,6 +172,16 @@
 `
       )
     }
+    
+    // get a prefered link resolution strategy
+    const linkResolutionStrategy = exitIfCancel(await select({
+      message: `Choose how Quartz should resolve links in your content. You can change this later in \`quartz.config.ts\`.`,
+      options: [
+        { value: 'absolute', label: "Treat links as absolute path", hint: "for content made for Quartz 3 and Hugo" },
+        { value: 'shortest', label: "Treat links as shortest path", hint: "for most Obsidian vaults" },
+        { value: 'relative', label: "Treat links as relative paths", hint: "for just normal Markdown files" },
+      ]
+    }))
 
     // now, do config changes
     const configFilePath = path.join(cwd, "quartz.config.ts")
@@ -255,6 +255,7 @@
           setup(build) {
             build.onLoad({ filter: /\.inline\.(ts|js)$/ }, async (args) => {
               let text = await promises.readFile(args.path, 'utf8')
+
               // remove default exports that we manually inserted
               text = text.replace('export default', '')
               text = text.replace('export', '')
@@ -295,8 +296,8 @@
       console.log(`Successfully transpiled ${Object.keys(meta.inputs).length} files (${prettyBytes(meta.bytes)})`)
     }
 
-    const { default: init } = await import(cacheFile)
-    init(argv, version)
+    const { default: buildQuartz } = await import(cacheFile)
+    buildQuartz(argv, version)
   })
   .showHelpOnFail(false)
   .help()

--
Gitblit v1.10.0