import { defineCollection, reference, z } from "astro:content"; import { glob, file } from 'astro/loaders'; const writing = defineCollection({ loader: glob({pattern: "**/*.(md|mdx)", base: "./src/content/wie-man-einen-code-schreibt"}), schema: z.object({ title: z.string(), chapter: reference("writingChapters"), part: z.number(), subtitle: z.string().optional(), }) }) const writingChapters = defineCollection({ loader: file("./src/content/wie-man-einen-code-schreibt/chapters.json"), schema: z.object({ name: z.string(), order: z.number(), subtitle: z.string(), }) }); const projects = defineCollection({ loader: glob({pattern: "**/*.(md|mdx)", base: "./src/content/projects"}), schema: z.object({ title: z.string(), site_title: z.string().optional(), summary: z.string(), repository: z.string().url().optional(), relatedWebsite: z.string().url().optional(), published: z.date(), tags: z.array(z.string()).optional(), isDraft: z.boolean().optional(), subtitle: z.string().optional(), }), }); const blog = defineCollection({ loader: glob({pattern: "**/*.(md|mdx)", base: "./src/content/blog"}), schema: z.object({ title: z.string(), site_title: z.string().optional(), relatedWebsite: z.string().url().optional(), published: z.date(), summary: z.string().optional(), tags: z.array(z.string()).optional(), isDraft: z.boolean().optional(), subtitle: z.string().optional(), }), }); export const collections = { writing, writingChapters, projects, blog };