From d0d30f62452a80eaff50bc6469042a24392000f0 Mon Sep 17 00:00:00 2001 From: Karim H Date: Fri, 21 Mar 2025 11:34:58 -0400 Subject: [PATCH] fix(ogImage): handle absolute paths for user defined og image paths --- quartz/plugins/emitters/ogImage.tsx | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/quartz/plugins/emitters/ogImage.tsx b/quartz/plugins/emitters/ogImage.tsx index 1f06588a2..201dbeced 100644 --- a/quartz/plugins/emitters/ogImage.tsx +++ b/quartz/plugins/emitters/ogImage.tsx @@ -1,7 +1,13 @@ import { QuartzEmitterPlugin } from "../types" import { i18n } from "../../i18n" import { unescapeHTML } from "../../util/escape" -import { FullSlug, getFileExtension, joinSegments, QUARTZ } from "../../util/path" +import { + FullSlug, + getFileExtension, + isAbsoluteFilePath, + joinSegments, + QUARTZ, +} from "../../util/path" import { ImageOptions, SocialImageOptions, defaultImage, getSatoriFonts } from "../../util/og" import sharp from "sharp" import satori, { SatoriOptions } from "satori" @@ -144,9 +150,14 @@ export const CustomOgImages: QuartzEmitterPlugin> = additionalHead: [ (pageData) => { const isRealFile = pageData.filePath !== undefined - const userDefinedOgImagePath = pageData.frontmatter?.socialImage - ? `https://${baseUrl}/static/${pageData.frontmatter?.socialImage}` - : undefined + const socialImage = pageData.frontmatter?.socialImage + + let userDefinedOgImagePath = undefined + if (socialImage) { + userDefinedOgImagePath = isAbsoluteFilePath(socialImage) + ? socialImage + : `https://${baseUrl}/static/${socialImage}` + const generatedOgImagePath = isRealFile ? `https://${baseUrl}/${pageData.slug!}-og-image.webp` : undefined