From 8cf3e3001f2cbd18da73fcc92ae5f4b76d3ecf21 Mon Sep 17 00:00:00 2001
From: Patsagorn Y. <49602385+ptsgrn@users.noreply.github.com>
Date: Thu, 16 Jan 2025 20:44:33 +0000
Subject: [PATCH] feat(i18n): Thai translations (#1722)
---
quartz/worker.ts | 68 +++++++++++++++++++++------------
1 files changed, 43 insertions(+), 25 deletions(-)
diff --git a/quartz/worker.ts b/quartz/worker.ts
index 71678b8..c9cd980 100644
--- a/quartz/worker.ts
+++ b/quartz/worker.ts
@@ -1,30 +1,48 @@
-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"
-
-const transformers = config.plugins.transformers
-const processor = createProcessor(transformers)
+import sourceMapSupport from "source-map-support"
+sourceMapSupport.install(options)
+import cfg from "../quartz.config"
+import { Argv, BuildCtx } from "./util/ctx"
+import { FilePath, FullSlug } from "./util/path"
+import {
+ createFileParser,
+ createHtmlProcessor,
+ createMarkdownParser,
+ createMdProcessor,
+} from "./processors/parse"
+import { options } from "./util/sourcemap"
+import { MarkdownContent, ProcessedContent } from "./plugins/vfile"
// 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 parseMarkdown(
+ buildId: string,
+ argv: Argv,
+ fps: FilePath[],
+): Promise<[MarkdownContent[], FullSlug[]]> {
+ // this is a hack
+ // we assume markdown parsers can add to `allSlugs`,
+ // but don't actually use them
+ const allSlugs: FullSlug[] = []
+ const ctx: BuildCtx = {
+ buildId,
+ cfg,
+ argv,
+ allSlugs,
}
+ return [await createFileParser(ctx, fps)(createMdProcessor(ctx)), allSlugs]
+}
- return res
+// only called from worker thread
+export function processHtml(
+ buildId: string,
+ argv: Argv,
+ mds: MarkdownContent[],
+ allSlugs: FullSlug[],
+): Promise<ProcessedContent[]> {
+ const ctx: BuildCtx = {
+ buildId,
+ cfg,
+ argv,
+ allSlugs,
+ }
+ return createMarkdownParser(ctx, mds)(createHtmlProcessor(ctx))
}
--
Gitblit v1.10.0