this repo has no description
at dev 25 lines 679 B view raw
1import { defineCollection, z } from "astro:content"; 2import { glob } from "astro/loaders"; 3import { generateSlug } from "~/utils/slug"; 4 5const writings = defineCollection({ 6 loader: glob({ pattern: "**/*.md", base: "./content/writings" }), 7 schema: z 8 .object({ 9 title: z.string(), 10 description: z.string(), 11 pubDate: z 12 .string() 13 .or(z.date()) 14 .transform((val) => new Date(val)), 15 slug: z.string().optional(), 16 tags: z.array(z.string()).optional(), 17 draft: z.boolean().optional().default(false), 18 }) 19 .transform((data) => ({ 20 ...data, 21 slug: data.slug || generateSlug(data.title, data.pubDate), 22 })), 23}); 24 25export const collections = { writings };