-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathcontent.config.ts
More file actions
123 lines (122 loc) · 3.97 KB
/
content.config.ts
File metadata and controls
123 lines (122 loc) · 3.97 KB
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
import { defineCollection, defineContentConfig, z } from '@nuxt/content';
export default defineContentConfig({
collections: {
pieces: defineCollection({
source: 'pieces/**/*.yaml',
type: 'page',
schema: z.object({
composer: z.string(),
key: z.string(),
largerWorkTitle: z.string(),
majorMinor: z.string(),
meter: z.array(z.string()),
movementDesignation: z.array(z.string()),
mv: z.number(),
nr: z.number(),
op: z.number(),
slug: z.string(),
title: z.string(),
}),
}),
chords: defineCollection({
source: 'chords.yaml',
type: 'data',
schema: z.object({
chords: z.array(z.object({
beat: z.number(),
fb: z.string(),
hint: z.string(),
deg: z.string(),
lineNumber: z.number(),
pieceId: z.string(),
nextDeg: z.string(),
meterWeight: z.string(),
})),
}),
}),
modulations: defineCollection({
source: 'modulations/*.yaml',
type: 'data',
schema: z.object({
deg: z.string(),
endBeat: z.number(),
endLine: z.number(),
key: z.string(),
pieceId: z.string(),
startBeat: z.number(),
startLine: z.number(),
slug: z.string(),
}),
}),
transitions: defineCollection({
source: 'transitions.yaml',
type: 'data',
schema: z.object({}).passthrough(),
}),
cadences: defineCollection({
source: 'cadences/*.yaml',
type: 'data',
schema:z.object({
slug: z.string(),
deg: z.string(),
endBassDeg: z.string(),
endBeat: z.number(),
endLine: z.number(),
key: z.string(),
pieceId: z.string(),
startBeat: z.number(),
startLine:z.number(),
tags: z.array(z.string()),
}),
}),
sequences: defineCollection({
source: 'sequences.yaml',
type: 'data',
schema: z.object({
sequences: z.array(z.object({
endBeat: z.number(),
endLine: z.number(),
pieceId: z.string(),
startBeat: z.number(),
startLine:z.number(),
tags: z.array(z.string()),
})),
}),
}),
reviews: defineCollection({
source: 'reviews.yaml',
type: 'data',
schema: z.object({
reviews: z.array(z.object({
pieceId: z.string(),
date: z.date(),
needsReview: z.boolean(),
})),
}),
}),
initialVoicings: defineCollection({
source: 'initial-voicings.yaml',
type: 'data',
schema: z.object({
initialVoicings: z.array(z.object({
fb: z.string(),
pieceId: z.string(),
})),
}),
}),
voiceExchange: defineCollection({
source: 'voice-exchange.yaml',
type: 'data',
schema: z.object({
voiceExchange: z.array(z.object({
countLines: z.number(),
endBeat: z.number(),
endLine: z.number(),
pieceId: z.string(),
startBeat: z.number(),
startLine: z.number(),
})),
}),
}),
},
});