tasko/content-collections.ts
2024-11-17 16:28:51 -05:00

31 lines
878 B
TypeScript

import { defineCollection, defineConfig } from '@content-collections/core';
import { compileMDX } from '@content-collections/mdx';
const posts = defineCollection({
name: 'BlogPosts',
directory: 'app/(main)/blog/posts',
include: '*.mdx',
schema: (z) => ({
title: z
.string()
.min(3, { message: 'Title must be at least 3 characters' })
.max(30, { message: 'Title must be at most 30 characters' }),
summary: z
.string()
.min(10, { message: 'Summary must be at least 10 characters' })
.max(50, { message: 'Summary must be at most 50 characters' }),
coverImage: z.string(),
datePublished: z.string(),
}),
transform: async (document, context) => {
const mdx = await compileMDX(context, document);
return {
...document,
mdx,
};
},
});
export default defineConfig({
collections: [posts],
});