diff --git a/src/content/config.ts b/src/content/config.ts index e423774..55380de 100644 --- a/src/content/config.ts +++ b/src/content/config.ts @@ -2,18 +2,23 @@ import { defineCollection, z } from "astro:content"; const blog = defineCollection({ type: "content", - schema: z.object({ - author: z.string().optional(), - pubDatetime: z.date(), - title: z.string(), - postSlug: z.string().optional(), - featured: z.boolean().optional(), - draft: z.boolean().optional(), - tags: z.array(z.string()).default(["others"]), - ogImage: z.string().optional(), - description: z.string(), - canonicalURL: z.string().optional(), - }), + schema: ({ image }) => + z.object({ + author: z.string().optional(), + pubDatetime: z.date(), + title: z.string(), + postSlug: z.string().optional(), + featured: z.boolean().optional(), + draft: z.boolean().optional(), + tags: z.array(z.string()).default(["others"]), + ogImage: image() + .refine(img => img.width >= 1200 && img.height >= 630, { + message: "OpenGraph image must be at least 1200 X 630 pixels!", + }) + .optional(), + description: z.string(), + canonicalURL: z.string().optional(), + }), }); export const collections = { blog };