From d41eff9eccf66644c4c60f53cb516bf079937a28 Mon Sep 17 00:00:00 2001 From: aman333nolawz Date: Mon, 2 Mar 2026 21:49:13 +0530 Subject: Using astro-erudite for static site generation --- src/content.config.ts | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 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..ed8186c --- /dev/null +++ b/src/content.config.ts @@ -0,0 +1,49 @@ +import { glob } from 'astro/loaders' +import { defineCollection, z } from 'astro:content' + +const blog = defineCollection({ + loader: glob({ pattern: '**/*.{md,mdx}', base: './src/content/blog' }), + schema: ({ image }) => + z.object({ + title: z.string(), + description: z.string(), + date: z.coerce.date(), + order: z.number().optional(), + image: image().optional(), + tags: z.array(z.string()).optional(), + authors: z.array(z.string()).optional(), + draft: z.boolean().optional(), + }), +}) + +const authors = defineCollection({ + loader: glob({ pattern: '**/*.{md,mdx}', base: './src/content/authors' }), + schema: z.object({ + name: z.string(), + pronouns: z.string().optional(), + avatar: z.string().url().or(z.string().startsWith('/')), + bio: z.string().optional(), + mail: z.string().email().optional(), + website: z.string().url().optional(), + twitter: z.string().url().optional(), + github: z.string().url().optional(), + linkedin: z.string().url().optional(), + discord: z.string().url().optional(), + }), +}) + +const projects = defineCollection({ + loader: glob({ pattern: '**/*.{md,mdx}', base: './src/content/projects' }), + schema: ({ image }) => + z.object({ + name: z.string(), + description: z.string(), + tags: z.array(z.string()), + image: image(), + link: z.string().url(), + startDate: z.coerce.date().optional(), + endDate: z.coerce.date().optional(), + }), +}) + +export const collections = { blog, authors, projects } -- cgit v1.2.3