From 581f6707dad87b6803785d5c06446f5a60c0f786 Mon Sep 17 00:00:00 2001 From: Emile Bangma Date: Thu, 23 Jul 2026 15:30:37 +0200 Subject: [PATCH] fix: decouple Head.tsx from og-image plugin import (#2495) Remove unconditional import of CustomOgImagesEmitterName from .quartz/plugins in Head.tsx. This caused builds to fail when the og-image plugin was not listed in quartz.config.yaml, violating the plugin system's opt-in contract. The fix inlines the emitter name string constant at the usage site. Also convert the ContentDetails import in fileTrie.ts to `import type` since it is only used in a type position. --- quartz/components/Head.tsx | 6 ++---- quartz/util/fileTrie.ts | 2 +- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/quartz/components/Head.tsx b/quartz/components/Head.tsx index 0cb31fa..c7403dd 100644 --- a/quartz/components/Head.tsx +++ b/quartz/components/Head.tsx @@ -4,7 +4,7 @@ import { CSSResourceToStyleElement, JSResourceToScriptElement } from "../util/re import { googleFontHref, googleFontSubsetHref } from "../util/theme" import { QuartzComponent, QuartzComponentConstructor, QuartzComponentProps } from "./types" import { unescapeHTML } from "../util/escape" -import { CustomOgImagesEmitterName } from "../../.quartz/plugins" + export default (() => { const Head: QuartzComponent = ({ cfg, @@ -31,9 +31,7 @@ export default (() => { const socialUrl = fileData.slug === "404" ? url.toString() : joinSegments(url.toString(), fileData.slug!) - const usesCustomOgImage = ctx.cfg.plugins.emitters.some( - (e) => e.name === CustomOgImagesEmitterName, - ) + const usesCustomOgImage = ctx.cfg.plugins.emitters.some((e) => e.name === "CustomOgImages") const ogImageDefaultPath = `https://${cfg.baseUrl}/static/og-image.png` const coreStylesheet = css[0]?.content diff --git a/quartz/util/fileTrie.ts b/quartz/util/fileTrie.ts index 31fa499..0b2a930 100644 --- a/quartz/util/fileTrie.ts +++ b/quartz/util/fileTrie.ts @@ -1,4 +1,4 @@ -import { ContentDetails } from "../../.quartz/plugins" +import type { ContentDetails } from "../../.quartz/plugins" import { FullSlug, joinSegments } from "./path" interface FileTrieData {