From 8fd75ffbfda30edd5a134a1fbf9b81ac3cebb2ff Mon Sep 17 00:00:00 2001
From: Jacky Zhao <j.zhao2k19@gmail.com>
Date: Mon, 24 Jul 2023 00:42:00 +0000
Subject: [PATCH] support attachments folder

---
 quartz/worker.ts |   34 +++++++++++-----------------------
 1 files changed, 11 insertions(+), 23 deletions(-)

diff --git a/quartz/worker.ts b/quartz/worker.ts
index 71678b8..eef4907 100644
--- a/quartz/worker.ts
+++ b/quartz/worker.ts
@@ -1,30 +1,18 @@
-import { read } from "to-vfile"
-import config from "../quartz.config"
-import { createProcessor } from "./processors/parse"
-import { slugify } from "./path"
-import path from "path"
-import { ProcessedContent } from "./plugins/vfile"
+import cfg from "../quartz.config"
+import { Argv, BuildCtx } from "./ctx"
+import { FilePath, ServerSlug } from "./path"
+import { createFileParser, createProcessor } from "./processors/parse"
 
-const transformers = config.plugins.transformers
+const transformers = cfg.plugins.transformers
 const processor = createProcessor(transformers)
 
 // only called from worker thread
-export async function parseFiles(baseDir: string, fps: string[], verbose: boolean) {
-  const res: ProcessedContent[] = []
-  for (const fp of fps) {
-    const file = await read(fp)
-
-    // base data properties that plugins may use
-    file.data.slug = slugify(path.relative(baseDir, file.path))
-    file.data.filePath = fp
-
-    const ast = processor.parse(file)
-    res.push([await processor.run(ast, file), file])
-
-    if (verbose) {
-      console.log(`[process] ${fp} -> ${file.data.slug}`)
-    }
+export async function parseFiles(argv: Argv, fps: FilePath[], allSlugs: ServerSlug[]) {
+  const ctx: BuildCtx = {
+    cfg,
+    argv,
   }
 
-  return res
+  const parse = createFileParser(ctx, fps, allSlugs)
+  return parse(processor)
 }

--
Gitblit v1.10.0