diff --git a/quartz/plugins/loader/config-loader.ts b/quartz/plugins/loader/config-loader.ts index a8842be58..1623f747d 100644 --- a/quartz/plugins/loader/config-loader.ts +++ b/quartz/plugins/loader/config-loader.ts @@ -258,8 +258,17 @@ export async function loadQuartzConfig(): Promise { for (const entry of enabledEntries) { const manifest = manifests.get(entry.source) const category = manifest?.category + // Resolve processing category: for array categories (e.g. ["transformer", "component"]), + // find the first processing category. "component" is handled separately via loadComponentsFromPackage. + const processingCategories = ["transformer", "filter", "emitter", "pageType"] as const + let resolvedCategory: string | undefined + if (Array.isArray(category)) { + resolvedCategory = category.find((c) => (processingCategories as readonly string[]).includes(c)) + } else { + resolvedCategory = category + } - switch (category) { + switch (resolvedCategory) { case "transformer": transformers.push({ entry, manifest }) break @@ -358,7 +367,7 @@ export async function loadQuartzConfig(): Promise { // Import built-in plugins const builtinPlugins = await import("../index") - const builtinTransformers = [builtinPlugins.FrontMatter()] + const builtinTransformers: unknown[] = [] const builtinEmitters = [ builtinPlugins.ComponentResources(), builtinPlugins.Assets(), diff --git a/quartz/plugins/loader/types.ts b/quartz/plugins/loader/types.ts index 012616282..c321fc70b 100644 --- a/quartz/plugins/loader/types.ts +++ b/quartz/plugins/loader/types.ts @@ -49,7 +49,7 @@ export interface PluginManifest { author?: string homepage?: string keywords?: string[] - category?: PluginCategory + category?: PluginCategory | PluginCategory[] quartzVersion?: string /** Plugin sources this plugin depends on (e.g., "github:quartz-community/crawl-links") */ dependencies?: string[]