-
Notifications
You must be signed in to change notification settings - Fork 19
Expand file tree
/
Copy pathdocs-yml.schema.json
More file actions
179 lines (179 loc) · 5.91 KB
/
Copy pathdocs-yml.schema.json
File metadata and controls
179 lines (179 loc) · 5.91 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
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Alchemy docs.yml",
"description": "Navigation configuration for the Alchemy docs site. Allows only the options supported by the content indexer (src/content-indexer/types/docsYaml.ts), including Alchemy-specific extensions (skip-slug, flattened).",
"type": "object",
"additionalProperties": false,
"required": ["navigation"],
"properties": {
"tabs": {
"description": "Top-level tabs shown in the docs header. Keys are tab identifiers referenced by navigation[].tab.",
"type": "object",
"additionalProperties": {
"$ref": "#/definitions/tabConfig"
}
},
"navigation": {
"description": "Sidebar navigation layout for each tab.",
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": ["tab"],
"properties": {
"tab": {
"description": "Tab identifier; must match a key under tabs.",
"type": "string"
},
"layout": {
"description": "Navigation items for this tab. Omit for tabs whose content is generated elsewhere (e.g. the changelog tab).",
"type": "array",
"items": {
"$ref": "#/definitions/navigationItem"
}
}
}
}
}
},
"definitions": {
"tabConfig": {
"type": "object",
"additionalProperties": false,
"required": ["display-name"],
"properties": {
"display-name": {
"description": "Human-readable tab label shown in the header.",
"type": "string"
},
"slug": {
"description": "URL segment for the tab. Defaults to the kebab-cased tab key.",
"type": "string"
},
"skip-slug": {
"description": "Alchemy extension: omit this tab's slug from descendant URL paths.",
"type": "boolean"
}
}
},
"navigationItem": {
"oneOf": [
{ "$ref": "#/definitions/pageItem" },
{ "$ref": "#/definitions/sectionItem" },
{ "$ref": "#/definitions/linkItem" },
{ "$ref": "#/definitions/apiItem" }
]
},
"mdxPath": {
"type": "string",
"pattern": "\\.mdx$"
},
"pageItem": {
"description": "A single docs page backed by an MDX file.",
"type": "object",
"additionalProperties": false,
"required": ["page", "path"],
"properties": {
"page": {
"description": "Page title shown in the sidebar.",
"type": "string"
},
"path": {
"description": "Path to the page's .mdx file, relative to the content directory.",
"$ref": "#/definitions/mdxPath"
},
"slug": {
"description": "URL segment for the page. Defaults to the kebab-cased page title. May contain slashes to override the full path.",
"type": "string"
},
"hidden": {
"description": "Hide this page from the sidebar and search indexing.",
"type": "boolean"
}
}
},
"sectionItem": {
"description": "A collapsible group of navigation items, optionally with an overview page.",
"type": "object",
"additionalProperties": false,
"required": ["section", "contents"],
"properties": {
"section": {
"description": "Section title shown in the sidebar.",
"type": "string"
},
"contents": {
"description": "Child navigation items.",
"type": "array",
"items": {
"$ref": "#/definitions/navigationItem"
}
},
"path": {
"description": "Optional overview page for the section: path to an .mdx file, relative to the content directory.",
"$ref": "#/definitions/mdxPath"
},
"slug": {
"description": "URL segment for the section. Defaults to the kebab-cased section title.",
"type": "string"
},
"skip-slug": {
"description": "Alchemy extension: omit this section's slug from descendant URL paths.",
"type": "boolean"
},
"hidden": {
"description": "Hide this section and its contents from the sidebar and search indexing.",
"type": "boolean"
}
}
},
"linkItem": {
"description": "A sidebar entry linking to an internal path or external URL.",
"type": "object",
"additionalProperties": false,
"required": ["link", "href"],
"properties": {
"link": {
"description": "Link text shown in the sidebar.",
"type": "string"
},
"href": {
"description": "Destination: an internal path (e.g. /docs/...) or an external URL.",
"type": "string"
}
}
},
"apiItem": {
"description": "An auto-generated API reference section backed by an uploaded API spec.",
"type": "object",
"additionalProperties": false,
"required": ["api", "api-name"],
"properties": {
"api": {
"description": "Title for the API reference section.",
"type": "string"
},
"api-name": {
"description": "Identifier of the API spec to render (must match an uploaded spec name).",
"type": "string"
},
"slug": {
"description": "URL segment for the API section. Defaults to the kebab-cased title.",
"type": "string"
},
"skip-slug": {
"description": "Alchemy extension: omit this section's slug from endpoint URL paths.",
"type": "boolean"
},
"hidden": {
"description": "Hide the endpoints from the sidebar and search indexing.",
"type": "boolean"
},
"flattened": {
"description": "Alchemy extension: render endpoints as a flat list instead of grouped by spec hierarchy.",
"type": "boolean"
}
}
}
}
}