First draft
This commit is contained in:
50
src/content.config.ts
Normal file
50
src/content.config.ts
Normal 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 };
|
||||
Reference in New Issue
Block a user