Files
martials.no/src/content/config.ts
2025-07-28 18:17:18 +00:00

34 lines
942 B
TypeScript

import { defineCollection, z } from "astro:content"
import { glob } from "astro/loaders"
const projectCollection = defineCollection({
loader: glob({ pattern: "**/*.mdx", base: "./src/content/projects" }),
schema: ({ image }) =>
z.object({
lang: z.union([z.literal("en"), z.literal("nb")]),
title: z.string(),
description: z.string(),
heroImage: image(),
heroImageAlt: z.string(),
tags: z.array(z.string()),
keywords: z.array(z.string()),
source: z.string().url(),
createdAt: z.string().date(),
updatedAt: z.string().date(),
}),
})
const usesCollection = defineCollection({
loader: glob({ pattern: "**/*.yaml", base: "./src/content/uses" }),
schema: z.object({
title: z.string(),
accessories: z.optional(z.array(z.string())),
hardware: z.array(z.string()),
}),
})
export const collections = {
projects: projectCollection,
uses: usesCollection,
}