From 635c47560b195805e990bd992f652bdf82d3471d Mon Sep 17 00:00:00 2001 From: Ben Schlegel Date: Sun, 10 Nov 2024 14:19:47 +0100 Subject: [PATCH] feat(open-graph): add frontmatter aliases for socialImage/cover/image --- quartz/components/Head.tsx | 7 ++----- quartz/plugins/transformers/frontmatter.ts | 5 +++++ 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/quartz/components/Head.tsx b/quartz/components/Head.tsx index 5ef3f0997..3a2a78db3 100644 --- a/quartz/components/Head.tsx +++ b/quartz/components/Head.tsx @@ -141,11 +141,8 @@ export default (() => { let ogImagePath = useDefaultOgImage ? ogImageDefaultPath : ogImageGeneratedPath // TODO: could be improved to support external images in the future - // Handle aliases (socialImage, image and cover are supported to ensure obsidian publish support) - const frontmatterImgUrl = - fileData.frontmatter?.socialImage ?? - fileData.frontmatter?.image ?? - fileData.frontmatter?.cover + // Aliases for image and cover handled in `frontmatter.ts` + const frontmatterImgUrl = fileData.frontmatter?.socialImage // Override with default og image if config option is set if (fileData.slug === "index") { diff --git a/quartz/plugins/transformers/frontmatter.ts b/quartz/plugins/transformers/frontmatter.ts index 2e599aa0e..5ef1ff7a0 100644 --- a/quartz/plugins/transformers/frontmatter.ts +++ b/quartz/plugins/transformers/frontmatter.ts @@ -71,6 +71,11 @@ export const FrontMatter: QuartzTransformerPlugin> = (userOpts) const cssclasses = coerceToArray(coalesceAliases(data, ["cssclasses", "cssclass"])) if (cssclasses) data.cssclasses = cssclasses + const socialImage = coerceToArray( + coalesceAliases(data, ["socialImage", "image", "cover"]), + ) + if (socialImage) data.socialImage = socialImage + // fill in frontmatter file.data.frontmatter = data as QuartzPluginData["frontmatter"] }