Barebone Baseline

This commit is contained in:
2026-02-19 14:10:37 +01:00
parent c48218e225
commit 857467409d
35 changed files with 6879 additions and 141 deletions

View File

@@ -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 };