Barebone Baseline
This commit is contained in:
@@ -1,11 +1,45 @@
|
||||
// @ts-ignore
|
||||
import { defineCollection, z } from 'astro:content';
|
||||
|
||||
const posts = defineCollection({
|
||||
// Type-check frontmatter using a schema
|
||||
const articles = defineCollection({
|
||||
schema: z.object({
|
||||
title: z.string(),
|
||||
summary: z.string(),
|
||||
cover: z
|
||||
.object({
|
||||
src: z.string().optional(),
|
||||
alt: z.string().optional(),
|
||||
caption: z.string().optional(),
|
||||
showInHeader: z.boolean().default(false),
|
||||
})
|
||||
.optional(),
|
||||
publishDate: z.string(),
|
||||
updateDate: z.string().optional(),
|
||||
status: z.enum(['draft', 'published', 'archived']).default('draft'),
|
||||
isFeatured: z.boolean().default(false),
|
||||
parent: z.string().optional(),
|
||||
tags: z.array(z.string()).default([]),
|
||||
relatedArticles: z.array(z.string()).default([]),
|
||||
seo: z
|
||||
.object({
|
||||
title: z.string().optional(),
|
||||
description: z.string().optional(),
|
||||
noIndex: z.boolean().default(false),
|
||||
})
|
||||
.optional(),
|
||||
}),
|
||||
});
|
||||
|
||||
export const collections = { posts };
|
||||
const pages = defineCollection({
|
||||
schema: z.object({
|
||||
title: z.string(),
|
||||
seo: z
|
||||
.object({
|
||||
title: z.string().optional(),
|
||||
description: z.string().optional(),
|
||||
noIndex: z.boolean().default(false),
|
||||
})
|
||||
.optional(),
|
||||
}),
|
||||
});
|
||||
|
||||
export const collections = { articles, pages };
|
||||
|
||||
Reference in New Issue
Block a user