diff options
Diffstat (limited to 'src/content/config.ts')
| -rw-r--r-- | src/content/config.ts | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/src/content/config.ts b/src/content/config.ts index d8c4bec..74e6b89 100644 --- a/src/content/config.ts +++ b/src/content/config.ts @@ -1,4 +1,5 @@ import { defineCollection, z } from 'astro:content'; +import { file } from 'astro/loaders'; const posts = defineCollection({ type: 'content', @@ -9,4 +10,22 @@ const posts = defineCollection({ }), }); -export const collections = { posts }; +const readingEntry = z.object({ + title: z.string(), + author: z.string().optional(), + type: z.enum(['book', 'article']).default('book'), + status: z.enum(['done', 'reading']).default('done'), + isbn: z.string().optional(), + url: z.string().url().optional(), + note: z.string().optional(), +}); + +const reading = defineCollection({ + loader: file('src/content/reading.yaml'), + schema: z.object({ + year: z.number(), + entries: z.array(readingEntry), + }), +}); + +export const collections = { posts, reading }; |
