First draft

This commit is contained in:
2026-02-20 07:31:50 +01:00
committed by Daniel Kluge
parent 75a2514b05
commit fd1cf2e72c
55 changed files with 6202 additions and 5102 deletions

50
src/content.config.ts Normal file
View File

@@ -0,0 +1,50 @@
import { defineCollection, reference, z } from "astro:content";
import { glob, file } from 'astro/loaders';
const writing = defineCollection({
loader: glob({pattern: "**/*.(md|mdx)", base: "./src/content/wie-man-einen-code-schreibt"}),
schema: z.object({
title: z.string(),
chapter: reference("writingChapters"),
part: z.number()
})
})
const writingChapters = defineCollection({
loader: file("./src/content/wie-man-einen-code-schreibt/chapters.json"),
schema: z.object({
name: z.string(),
order: z.number(),
subtitle: z.string(),
})
});
const projects = defineCollection({
loader: glob({pattern: "**/*.(md|mdx)", base: "./src/content/projects"}),
schema: z.object({
title: z.string(),
site_title: z.string().optional(),
description: z.string(),
repository: z.string().url().optional(),
relatedWebsite: z.string().url().optional(),
published: z.date(),
tags: z.array(z.string()).optional(),
isDraft: z.boolean().optional(),
}),
});
const blog = defineCollection({
loader: glob({pattern: "**/*.(md|mdx)", base: "./src/content/blog"}),
schema: z.object({
title: z.string(),
site_title: z.string().optional(),
relatedWebsite: z.string().url().optional(),
published: z.date(),
tags: z.array(z.string()).optional(),
isDraft: z.boolean().optional(),
}),
});
export const collections = { writing, writingChapters, projects, blog };