Files
webSostenible/src/content.config.ts

25 lines
766 B
TypeScript

// src/content.config.ts
import { defineCollection, z } from 'astro:content';
import { glob } from 'astro/loaders';
const posts = defineCollection({
// Usa el loader "glob" para buscar archivos .md en la carpeta indicada.
loader: glob({ pattern: '**/*.mdx', base: './src/posts' }),
// Define un esquema para validar el frontmatter de cada post
schema: z.object({
titulo: z.string(),
descripcion: z.string(),
fecha: z.coerce.date(),
autor: z.string(),
imagen: z.string().optional()
}).passthrough(),
computedFields: {
url: {
type: 'string',
resolve: (entry) => `${entry}` // Genera la URL usando el slug calculado de cada post.
}
}
});
// Exporta las colecciones definidas
export const collections = { posts };