Files
homepage/src/content.config.ts
2026-03-04 17:46:10 +01:00

41 lines
1.1 KiB
TypeScript

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