import { glob } from "astro/loaders"; import { defineCollection, z } from "astro:content"; const blog = defineCollection({ // Load Markdown and MDX files in the `src/content/blog/` directory. loader: glob({ base: "./src/content/blog", pattern: "**/*.{md,mdx}" }), // Type-check frontmatter using a schema schema: ({ image }) => z.object({ title: z.string(), description: z.string(), // Transform string to Date object // Presence of this value indicates that the post is published pubDate: z.coerce.date().optional(), updatedDate: z.coerce.date().optional(), heroImage: image().optional(), }), }); const page = defineCollection({ loader: glob({ base: "./src/content/page", pattern: "**/*.{md,mdx}" }), schema: ({ image }) => z.object({ title: z.string(), }), }); export const collections = { blog, page };