From 6bd7c45dd6c477c2f288a26f9dddcaff6b14d73e Mon Sep 17 00:00:00 2001 From: Pinapelz Date: Thu, 13 Aug 2026 20:24:43 -0700 Subject: migrate codebase to astro blog v7 --- src/content.config.ts | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 src/content.config.ts (limited to 'src/content.config.ts') diff --git a/src/content.config.ts b/src/content.config.ts new file mode 100644 index 0000000..e244388 --- /dev/null +++ b/src/content.config.ts @@ -0,0 +1,50 @@ +import { defineCollection, z } from 'astro:content'; +import { glob } from 'astro/loaders'; + +const blog = defineCollection({ + loader: glob({ + pattern: '**/*.{md,mdx}', + base: './src/content/blog', + generate: (entry) => entry.replace(/\.(md|mdx)$/, '').replace(/\/index$/, ''), + }), + // Type-check frontmatter using a schema + schema: z.object({ + title: z.string(), + description: z.string(), + // Transform string to Date object + pubDate: z + .string() + .or(z.date()) + .transform((val) => new Date(val)), + updatedDate: z + .string() + .optional() + .transform((str) => (str ? new Date(str) : undefined)), + heroImage: z.string().optional(), + }), +}); + +const micro = defineCollection({ + loader: glob({ + pattern: '**/*.{md,mdx}', + base: './src/content/micro', + generate: (entry) => entry.replace(/\.(md|mdx)$/, '').replace(/\/index$/, ''), + }), + // Type-check frontmatter using a schema + schema: z.object({ + title: z.string(), + description: z.string(), + // Transform string to Date object + pubDate: z + .string() + .or(z.date()) + .transform((val) => new Date(val)), + updatedDate: z + .string() + .optional() + .transform((str) => (str ? new Date(str) : undefined)), + heroImage: z.string().optional(), + }), +}); + +export const collections = { blog, micro }; -- cgit v1.2.3