-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcontent.config.ts
48 lines (47 loc) · 1.39 KB
/
content.config.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
import { defineCollection, defineContentConfig, z } from '@nuxt/content'
import { imageSchema, pageHeroSchema, pageSectionSchema } from './types'
export default defineContentConfig({
collections: {
landing: defineCollection({
type: 'page',
source: '**/*.yaml',
schema: z.object({
hero: pageSectionSchema.extend({
image: imageSchema.optional(),
}),
sections: z.array(
pageSectionSchema.extend({
image: imageSchema.optional(),
}),
),
ui: z.object({
footer: z.any().optional(),
}),
}),
}),
content: defineCollection({
type: 'page',
source: '**/*.{md,yaml}',
schema: z.object({
layout: z.object({
metadataComponent: z.enum(['none', 'header', 'hero']).default('header'),
container: z.boolean().optional(),
toc: z.boolean().optional(),
prose: z.boolean().optional(),
}),
hero: pageHeroSchema.optional(),
header: pageHeroSchema.optional(),
ui: z.object({
main: z.any().optional(),
container: z.any().optional(),
hero: z.any().optional(),
page: z.any().optional(),
header: z.any().optional(),
body: z.any().optional(),
toc: z.any().optional(),
footer: z.any().optional(),
}),
}),
}),
},
})