make emitters async generators

This commit is contained in:
Jacky Zhao
2025-03-12 13:31:43 -07:00
parent 5d50282124
commit c5a8b199ae
18 changed files with 561 additions and 576 deletions

View File

@@ -94,9 +94,8 @@ export const ContentPage: QuartzEmitterPlugin<Partial<FullPageLayout>> = (userOp
return graph
},
async emit(ctx, content, resources): Promise<FilePath[]> {
async *emit(ctx, content, resources) {
const cfg = ctx.cfg.configuration
const fps: FilePath[] = []
const allFiles = content.map((c) => c[1].data)
let containsIndex = false
@@ -118,14 +117,12 @@ export const ContentPage: QuartzEmitterPlugin<Partial<FullPageLayout>> = (userOp
}
const content = renderPage(cfg, slug, componentData, opts, externalResources)
const fp = await write({
yield write({
ctx,
content,
slug,
ext: ".html",
})
fps.push(fp)
}
if (!containsIndex && !ctx.argv.fastRebuild) {
@@ -135,8 +132,6 @@ export const ContentPage: QuartzEmitterPlugin<Partial<FullPageLayout>> = (userOp
),
)
}
return fps
},
}
}