19 lines
616 B
TypeScript
19 lines
616 B
TypeScript
|
|
import { defineCollection, z } from 'astro:content';
|
||
|
|
|
||
|
|
const blogCollection = defineCollection({
|
||
|
|
type: 'content',
|
||
|
|
// Opcionalmente podemos validar frontmatter, mas como nossa IA injeta as vezes markdown puro
|
||
|
|
// com as imagens inline, a validação de schema pode ser flexível.
|
||
|
|
schema: z.object({
|
||
|
|
title: z.string().optional(),
|
||
|
|
date: z.date().optional(),
|
||
|
|
excerpt: z.string().optional(),
|
||
|
|
author: z.string().optional(),
|
||
|
|
image: z.string().optional()
|
||
|
|
}).catchall(z.any()), // Aceita qualquer frontmatter adicional gerado pela IA
|
||
|
|
});
|
||
|
|
|
||
|
|
export const collections = {
|
||
|
|
'blog': blogCollection,
|
||
|
|
};
|