notes/quartz/worker.ts

49 lines
1.2 KiB
TypeScript
Raw Normal View History

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"
2023-08-16 22:09:11 -07:00
import { options } from "./util/sourcemap"
import { MarkdownContent, ProcessedContent } from "./plugins/vfile"
2023-06-04 12:35:45 -04:00
// only called from worker thread
export async function parseMarkdown(
2024-08-08 19:33:27 -07:00
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]
}
// only called from worker thread
export function processHtml(
buildId: string,
argv: Argv,
mds: MarkdownContent[],
2024-08-08 19:33:27 -07:00
allSlugs: FullSlug[],
): Promise<ProcessedContent[]> {
const ctx: BuildCtx = {
2024-08-08 19:33:27 -07:00
buildId,
cfg,
argv,
2023-07-24 00:04:01 -07:00
allSlugs,
}
return createMarkdownParser(ctx, mds)(createHtmlProcessor(ctx))
2023-06-04 12:35:45 -04:00
}