@aravindc26/velu 0.10.0 → 0.11.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +15 -6
- package/schema/velu.schema.json +1864 -30
- package/src/build.ts +1161 -180
- package/src/cli.ts +121 -16
- package/src/engine/_server.mjs +1708 -192
- package/src/engine/app/(docs)/[...slug]/layout.tsx +377 -0
- package/src/engine/app/(docs)/[...slug]/page.tsx +917 -0
- package/src/engine/app/(docs)/layout.tsx +1 -13
- package/src/engine/app/api/proxy/route.ts +23 -0
- package/src/engine/app/copy-page.css +59 -1
- package/src/engine/app/global.css +3487 -6
- package/src/engine/app/layout.tsx +59 -8
- package/src/engine/app/llms-file/route.ts +87 -0
- package/src/engine/app/llms-full-file/route.ts +62 -0
- package/src/engine/app/md-file/[...slug]/route.ts +409 -0
- package/src/engine/app/page.tsx +45 -0
- package/src/engine/app/robots.txt/route.ts +61 -0
- package/src/engine/app/rss-file/[...slug]/route.ts +176 -0
- package/src/engine/app/search.css +20 -0
- package/src/engine/app/sitemap.xml/route.ts +80 -0
- package/src/engine/components/assistant.tsx +16 -5
- package/src/engine/components/changelog-filters.tsx +114 -0
- package/src/engine/components/code-group.tsx +383 -0
- package/src/engine/components/color.tsx +118 -0
- package/src/engine/components/expandable.tsx +77 -0
- package/src/engine/components/icon.tsx +136 -0
- package/src/engine/components/image-zoom-fallback.tsx +147 -0
- package/src/engine/components/image.tsx +111 -0
- package/src/engine/components/lang-switcher.tsx +95 -0
- package/src/engine/components/manual-api-playground.tsx +154 -0
- package/src/engine/components/mermaid.tsx +142 -0
- package/src/engine/components/openapi-toc-sync.tsx +59 -0
- package/src/engine/components/openapi.tsx +1679 -0
- package/src/engine/components/page-feedback.tsx +153 -0
- package/src/engine/components/product-switcher.tsx +102 -0
- package/src/engine/components/prompt.tsx +90 -0
- package/src/engine/components/providers.tsx +21 -0
- package/src/engine/components/search.tsx +70 -3
- package/src/engine/components/sidebar-links.tsx +49 -0
- package/src/engine/components/synced-tabs.tsx +57 -0
- package/src/engine/components/theme-toggle.tsx +39 -0
- package/src/engine/components/toc-examples.tsx +110 -0
- package/src/engine/components/version-switcher.tsx +89 -0
- package/src/engine/components/view.tsx +344 -0
- package/src/engine/generated/redirects.ts +3 -0
- package/src/engine/lib/changelog.ts +246 -0
- package/src/engine/lib/layout.shared.ts +57 -7
- package/src/engine/lib/llms.ts +444 -0
- package/src/engine/lib/navigation-normalize.mjs +525 -0
- package/src/engine/lib/navigation-normalize.ts +695 -0
- package/src/engine/lib/redirects.ts +194 -0
- package/src/engine/lib/source.ts +121 -4
- package/src/engine/lib/velu.ts +635 -5
- package/src/engine/mdx-components.tsx +648 -0
- package/src/engine/middleware.ts +66 -0
- package/src/engine/next.config.mjs +2 -2
- package/src/engine/public/icons/cursor-dark.svg +12 -0
- package/src/engine/public/icons/cursor-light.svg +12 -0
- package/src/engine/source.config.ts +98 -1
- package/src/engine/src/components/PageTitle.astro +16 -5
- package/src/engine/src/lib/velu.ts +97 -16
- package/src/navigation-normalize.ts +686 -0
- package/src/themes.ts +6 -6
- package/src/validate.ts +235 -24
- package/src/engine/app/(docs)/[[...slug]]/page.tsx +0 -69
package/schema/velu.schema.json
CHANGED
|
@@ -4,7 +4,9 @@
|
|
|
4
4
|
"title": "Velu Configuration",
|
|
5
5
|
"description": "Configuration schema for velu.json — the core config file for Velu documentation sites.",
|
|
6
6
|
"type": "object",
|
|
7
|
-
"required": [
|
|
7
|
+
"required": [
|
|
8
|
+
"navigation"
|
|
9
|
+
],
|
|
8
10
|
"properties": {
|
|
9
11
|
"$schema": {
|
|
10
12
|
"type": "string",
|
|
@@ -13,9 +15,43 @@
|
|
|
13
15
|
"theme": {
|
|
14
16
|
"type": "string",
|
|
15
17
|
"description": "Named theme preset that controls the overall look and feel. Supports Fumadocs presets and legacy Velu aliases.",
|
|
16
|
-
"enum": [
|
|
18
|
+
"enum": [
|
|
19
|
+
"neutral",
|
|
20
|
+
"black",
|
|
21
|
+
"vitepress",
|
|
22
|
+
"dusk",
|
|
23
|
+
"catppuccin",
|
|
24
|
+
"ocean",
|
|
25
|
+
"emerald",
|
|
26
|
+
"ruby",
|
|
27
|
+
"purple",
|
|
28
|
+
"solar",
|
|
29
|
+
"aspen",
|
|
30
|
+
"violet",
|
|
31
|
+
"maple",
|
|
32
|
+
"palm",
|
|
33
|
+
"willow",
|
|
34
|
+
"linden",
|
|
35
|
+
"almond"
|
|
36
|
+
],
|
|
17
37
|
"default": "neutral"
|
|
18
38
|
},
|
|
39
|
+
"name": {
|
|
40
|
+
"type": "string",
|
|
41
|
+
"description": "Site name shown in metadata and brand text."
|
|
42
|
+
},
|
|
43
|
+
"title": {
|
|
44
|
+
"type": "string",
|
|
45
|
+
"description": "Legacy alias for site name. Used when `name` is not provided."
|
|
46
|
+
},
|
|
47
|
+
"favicon": {
|
|
48
|
+
"$ref": "#/definitions/themeAsset",
|
|
49
|
+
"description": "Favicon path or light/dark favicon object."
|
|
50
|
+
},
|
|
51
|
+
"logo": {
|
|
52
|
+
"$ref": "#/definitions/logoAsset",
|
|
53
|
+
"description": "Brand logo path or light/dark logo object."
|
|
54
|
+
},
|
|
19
55
|
"colors": {
|
|
20
56
|
"type": "object",
|
|
21
57
|
"description": "Override the theme's accent colors.",
|
|
@@ -41,9 +77,33 @@
|
|
|
41
77
|
"appearance": {
|
|
42
78
|
"type": "string",
|
|
43
79
|
"description": "Controls light/dark mode behavior.",
|
|
44
|
-
"enum": [
|
|
80
|
+
"enum": [
|
|
81
|
+
"system",
|
|
82
|
+
"light",
|
|
83
|
+
"dark"
|
|
84
|
+
],
|
|
45
85
|
"default": "system"
|
|
46
86
|
},
|
|
87
|
+
"icons": {
|
|
88
|
+
"type": "object",
|
|
89
|
+
"description": "Icon settings compatible with Mint-style configuration.",
|
|
90
|
+
"properties": {
|
|
91
|
+
"library": {
|
|
92
|
+
"type": "string",
|
|
93
|
+
"description": "Icon library used for named icon strings.",
|
|
94
|
+
"enum": [
|
|
95
|
+
"fontawesome",
|
|
96
|
+
"lucide",
|
|
97
|
+
"tabler"
|
|
98
|
+
],
|
|
99
|
+
"default": "fontawesome"
|
|
100
|
+
}
|
|
101
|
+
},
|
|
102
|
+
"required": [
|
|
103
|
+
"library"
|
|
104
|
+
],
|
|
105
|
+
"additionalProperties": false
|
|
106
|
+
},
|
|
47
107
|
"styling": {
|
|
48
108
|
"type": "object",
|
|
49
109
|
"description": "Fine-grained styling options.",
|
|
@@ -55,14 +115,23 @@
|
|
|
55
115
|
"theme": {
|
|
56
116
|
"description": "Shiki theme for syntax highlighting. Use a string for a single theme, or an object with light/dark keys.",
|
|
57
117
|
"oneOf": [
|
|
58
|
-
{
|
|
118
|
+
{
|
|
119
|
+
"type": "string"
|
|
120
|
+
},
|
|
59
121
|
{
|
|
60
122
|
"type": "object",
|
|
61
123
|
"properties": {
|
|
62
|
-
"light": {
|
|
63
|
-
|
|
124
|
+
"light": {
|
|
125
|
+
"type": "string"
|
|
126
|
+
},
|
|
127
|
+
"dark": {
|
|
128
|
+
"type": "string"
|
|
129
|
+
}
|
|
64
130
|
},
|
|
65
|
-
"required": [
|
|
131
|
+
"required": [
|
|
132
|
+
"light",
|
|
133
|
+
"dark"
|
|
134
|
+
],
|
|
66
135
|
"additionalProperties": false
|
|
67
136
|
}
|
|
68
137
|
]
|
|
@@ -73,33 +142,477 @@
|
|
|
73
142
|
},
|
|
74
143
|
"additionalProperties": false
|
|
75
144
|
},
|
|
145
|
+
"languages": {
|
|
146
|
+
"type": "array",
|
|
147
|
+
"description": "Supported language codes (e.g. [\"en\", \"es\", \"ja\"]). The first is the default. Display labels are auto-derived.",
|
|
148
|
+
"items": {
|
|
149
|
+
"type": "string",
|
|
150
|
+
"description": "BCP 47 language code (e.g. en, es, fr, ja, zh)."
|
|
151
|
+
},
|
|
152
|
+
"minItems": 1
|
|
153
|
+
},
|
|
154
|
+
"openapi": {
|
|
155
|
+
"$ref": "#/definitions/openapiSource",
|
|
156
|
+
"description": "Default OpenAPI source used by API pages."
|
|
157
|
+
},
|
|
158
|
+
"api": {
|
|
159
|
+
"type": "object",
|
|
160
|
+
"description": "API playground and MDX endpoint settings.",
|
|
161
|
+
"properties": {
|
|
162
|
+
"baseUrl": {
|
|
163
|
+
"type": "string",
|
|
164
|
+
"description": "Base API URL used by generated examples."
|
|
165
|
+
},
|
|
166
|
+
"playground": {
|
|
167
|
+
"type": "object",
|
|
168
|
+
"description": "Global playground display settings.",
|
|
169
|
+
"properties": {
|
|
170
|
+
"mode": {
|
|
171
|
+
"type": "string",
|
|
172
|
+
"enum": [
|
|
173
|
+
"show",
|
|
174
|
+
"hide",
|
|
175
|
+
"none"
|
|
176
|
+
]
|
|
177
|
+
},
|
|
178
|
+
"display": {
|
|
179
|
+
"type": "string",
|
|
180
|
+
"enum": [
|
|
181
|
+
"interactive",
|
|
182
|
+
"simple",
|
|
183
|
+
"none",
|
|
184
|
+
"auth"
|
|
185
|
+
]
|
|
186
|
+
},
|
|
187
|
+
"proxy": {
|
|
188
|
+
"type": "boolean",
|
|
189
|
+
"description": "Whether to send playground requests through the proxy endpoint. Defaults to true.",
|
|
190
|
+
"default": true
|
|
191
|
+
}
|
|
192
|
+
},
|
|
193
|
+
"additionalProperties": true
|
|
194
|
+
},
|
|
195
|
+
"examples": {
|
|
196
|
+
"type": "object",
|
|
197
|
+
"description": "Autogenerated API code sample settings.",
|
|
198
|
+
"properties": {
|
|
199
|
+
"languages": {
|
|
200
|
+
"type": "array",
|
|
201
|
+
"description": "Enabled API example languages.",
|
|
202
|
+
"items": {
|
|
203
|
+
"type": "string"
|
|
204
|
+
},
|
|
205
|
+
"minItems": 1
|
|
206
|
+
},
|
|
207
|
+
"defaults": {
|
|
208
|
+
"type": "string",
|
|
209
|
+
"enum": [
|
|
210
|
+
"required",
|
|
211
|
+
"all"
|
|
212
|
+
],
|
|
213
|
+
"description": "Whether examples should prioritize required-only or all parameters."
|
|
214
|
+
},
|
|
215
|
+
"prefill": {
|
|
216
|
+
"type": "boolean",
|
|
217
|
+
"description": "Whether to prefill playground fields from schema examples.",
|
|
218
|
+
"default": false
|
|
219
|
+
},
|
|
220
|
+
"autogenerate": {
|
|
221
|
+
"type": "boolean",
|
|
222
|
+
"description": "Whether to autogenerate API code samples from OpenAPI operations.",
|
|
223
|
+
"default": true
|
|
224
|
+
}
|
|
225
|
+
},
|
|
226
|
+
"additionalProperties": true
|
|
227
|
+
},
|
|
228
|
+
"mdx": {
|
|
229
|
+
"type": "object",
|
|
230
|
+
"description": "Defaults for manually-authored MDX API endpoint pages.",
|
|
231
|
+
"properties": {
|
|
232
|
+
"server": {
|
|
233
|
+
"description": "Server URL prepended to relative `api` frontmatter paths. Supports one server URL or multiple server URLs.",
|
|
234
|
+
"oneOf": [
|
|
235
|
+
{
|
|
236
|
+
"type": "string"
|
|
237
|
+
},
|
|
238
|
+
{
|
|
239
|
+
"type": "array",
|
|
240
|
+
"items": {
|
|
241
|
+
"type": "string"
|
|
242
|
+
},
|
|
243
|
+
"minItems": 1
|
|
244
|
+
}
|
|
245
|
+
]
|
|
246
|
+
},
|
|
247
|
+
"auth": {
|
|
248
|
+
"type": "object",
|
|
249
|
+
"properties": {
|
|
250
|
+
"method": {
|
|
251
|
+
"type": "string",
|
|
252
|
+
"enum": [
|
|
253
|
+
"bearer",
|
|
254
|
+
"basic",
|
|
255
|
+
"key",
|
|
256
|
+
"none"
|
|
257
|
+
]
|
|
258
|
+
},
|
|
259
|
+
"name": {
|
|
260
|
+
"type": "string",
|
|
261
|
+
"description": "Header name when `method` is `key`."
|
|
262
|
+
}
|
|
263
|
+
},
|
|
264
|
+
"additionalProperties": false
|
|
265
|
+
}
|
|
266
|
+
},
|
|
267
|
+
"additionalProperties": true
|
|
268
|
+
}
|
|
269
|
+
},
|
|
270
|
+
"additionalProperties": true
|
|
271
|
+
},
|
|
272
|
+
"seo": {
|
|
273
|
+
"$ref": "#/definitions/seoConfig",
|
|
274
|
+
"description": "SEO configuration for metadata and indexing behavior."
|
|
275
|
+
},
|
|
276
|
+
"redirects": {
|
|
277
|
+
"type": "array",
|
|
278
|
+
"description": "Permanent or temporary redirects for moved pages.",
|
|
279
|
+
"items": {
|
|
280
|
+
"$ref": "#/definitions/redirect"
|
|
281
|
+
}
|
|
282
|
+
},
|
|
76
283
|
"navigation": {
|
|
77
284
|
"type": "object",
|
|
78
|
-
"description": "Defines the site navigation hierarchy
|
|
79
|
-
"required": ["tabs"],
|
|
285
|
+
"description": "Defines the site navigation hierarchy. Use 'tabs' for single-language sites, or 'languages' for per-language navigation (like Mintlify).",
|
|
80
286
|
"properties": {
|
|
287
|
+
"openapi": {
|
|
288
|
+
"$ref": "#/definitions/openapiSource",
|
|
289
|
+
"description": "Default OpenAPI source inherited by tabs/groups/pages in this navigation section."
|
|
290
|
+
},
|
|
81
291
|
"tabs": {
|
|
82
292
|
"type": "array",
|
|
83
|
-
"description": "Top-level navigation tabs.
|
|
293
|
+
"description": "Top-level navigation tabs (single-language mode). Ignored when 'languages' is present.",
|
|
84
294
|
"items": {
|
|
85
295
|
"$ref": "#/definitions/tab"
|
|
86
296
|
},
|
|
87
297
|
"minItems": 1
|
|
298
|
+
},
|
|
299
|
+
"dropdowns": {
|
|
300
|
+
"type": "array",
|
|
301
|
+
"description": "Top-level dropdown containers. Each dropdown can include groups, pages, anchors, or links.",
|
|
302
|
+
"items": {
|
|
303
|
+
"$ref": "#/definitions/dropdown"
|
|
304
|
+
},
|
|
305
|
+
"minItems": 1
|
|
306
|
+
},
|
|
307
|
+
"groups": {
|
|
308
|
+
"type": "array",
|
|
309
|
+
"description": "Top-level sidebar groups when tabs/dropdowns are not used.",
|
|
310
|
+
"items": {
|
|
311
|
+
"$ref": "#/definitions/group"
|
|
312
|
+
},
|
|
313
|
+
"minItems": 1
|
|
314
|
+
},
|
|
315
|
+
"pages": {
|
|
316
|
+
"type": "array",
|
|
317
|
+
"description": "Top-level pages when tabs/dropdowns are not used.",
|
|
318
|
+
"items": {
|
|
319
|
+
"oneOf": [
|
|
320
|
+
{
|
|
321
|
+
"$ref": "#/definitions/page"
|
|
322
|
+
},
|
|
323
|
+
{
|
|
324
|
+
"$ref": "#/definitions/separator"
|
|
325
|
+
},
|
|
326
|
+
{
|
|
327
|
+
"$ref": "#/definitions/link"
|
|
328
|
+
}
|
|
329
|
+
]
|
|
330
|
+
},
|
|
331
|
+
"minItems": 1
|
|
332
|
+
},
|
|
333
|
+
"languages": {
|
|
334
|
+
"type": "array",
|
|
335
|
+
"description": "Per-language navigation. Each entry defines tabs/groups/pages for one language. First entry is the default language (no URL prefix).",
|
|
336
|
+
"items": {
|
|
337
|
+
"$ref": "#/definitions/languageNav"
|
|
338
|
+
},
|
|
339
|
+
"minItems": 1
|
|
340
|
+
},
|
|
341
|
+
"products": {
|
|
342
|
+
"type": "array",
|
|
343
|
+
"description": "Multi-product navigation. Each product can define its own tabs or top-level pages.",
|
|
344
|
+
"items": {
|
|
345
|
+
"$ref": "#/definitions/productNav"
|
|
346
|
+
},
|
|
347
|
+
"minItems": 1
|
|
348
|
+
},
|
|
349
|
+
"versions": {
|
|
350
|
+
"type": "array",
|
|
351
|
+
"description": "Versioned navigation. Each version defines its own set of tabs.",
|
|
352
|
+
"items": {
|
|
353
|
+
"$ref": "#/definitions/versionNav"
|
|
354
|
+
},
|
|
355
|
+
"minItems": 1
|
|
356
|
+
},
|
|
357
|
+
"anchors": {
|
|
358
|
+
"type": "array",
|
|
359
|
+
"description": "Prominent external links displayed in the navbar (e.g. GitHub, Discord).",
|
|
360
|
+
"items": {
|
|
361
|
+
"$ref": "#/definitions/anchor"
|
|
362
|
+
}
|
|
363
|
+
},
|
|
364
|
+
"global": {
|
|
365
|
+
"type": "object",
|
|
366
|
+
"description": "Cross-cutting navigation elements visible on every page.",
|
|
367
|
+
"properties": {
|
|
368
|
+
"tabs": {
|
|
369
|
+
"type": "array",
|
|
370
|
+
"description": "Global external tabs shown across all pages.",
|
|
371
|
+
"items": {
|
|
372
|
+
"$ref": "#/definitions/globalTab"
|
|
373
|
+
}
|
|
374
|
+
},
|
|
375
|
+
"anchors": {
|
|
376
|
+
"type": "array",
|
|
377
|
+
"description": "Global anchors shown across all tabs.",
|
|
378
|
+
"items": {
|
|
379
|
+
"$ref": "#/definitions/anchor"
|
|
380
|
+
}
|
|
381
|
+
}
|
|
382
|
+
},
|
|
383
|
+
"additionalProperties": false
|
|
384
|
+
},
|
|
385
|
+
"asyncapi": {
|
|
386
|
+
"$ref": "#/definitions/openapiSource",
|
|
387
|
+
"description": "Default AsyncAPI source inherited by tabs/groups/pages in this navigation section."
|
|
88
388
|
}
|
|
89
389
|
},
|
|
390
|
+
"anyOf": [
|
|
391
|
+
{
|
|
392
|
+
"required": [
|
|
393
|
+
"tabs"
|
|
394
|
+
]
|
|
395
|
+
},
|
|
396
|
+
{
|
|
397
|
+
"required": [
|
|
398
|
+
"dropdowns"
|
|
399
|
+
]
|
|
400
|
+
},
|
|
401
|
+
{
|
|
402
|
+
"required": [
|
|
403
|
+
"groups"
|
|
404
|
+
]
|
|
405
|
+
},
|
|
406
|
+
{
|
|
407
|
+
"required": [
|
|
408
|
+
"pages"
|
|
409
|
+
]
|
|
410
|
+
},
|
|
411
|
+
{
|
|
412
|
+
"required": [
|
|
413
|
+
"languages"
|
|
414
|
+
]
|
|
415
|
+
},
|
|
416
|
+
{
|
|
417
|
+
"required": [
|
|
418
|
+
"products"
|
|
419
|
+
]
|
|
420
|
+
},
|
|
421
|
+
{
|
|
422
|
+
"required": [
|
|
423
|
+
"versions"
|
|
424
|
+
]
|
|
425
|
+
},
|
|
426
|
+
{
|
|
427
|
+
"required": [
|
|
428
|
+
"anchors"
|
|
429
|
+
]
|
|
430
|
+
}
|
|
431
|
+
],
|
|
90
432
|
"additionalProperties": false
|
|
433
|
+
},
|
|
434
|
+
"asyncapi": {
|
|
435
|
+
"$ref": "#/definitions/openapiSource",
|
|
436
|
+
"description": "Default AsyncAPI source used by API pages."
|
|
91
437
|
}
|
|
92
438
|
},
|
|
93
439
|
"additionalProperties": false,
|
|
94
440
|
"definitions": {
|
|
441
|
+
"themeAsset": {
|
|
442
|
+
"description": "Theme-aware asset path. Supports a string or an object with light/dark variants.",
|
|
443
|
+
"oneOf": [
|
|
444
|
+
{
|
|
445
|
+
"type": "string"
|
|
446
|
+
},
|
|
447
|
+
{
|
|
448
|
+
"type": "object",
|
|
449
|
+
"properties": {
|
|
450
|
+
"light": {
|
|
451
|
+
"type": "string"
|
|
452
|
+
},
|
|
453
|
+
"dark": {
|
|
454
|
+
"type": "string"
|
|
455
|
+
},
|
|
456
|
+
"default": {
|
|
457
|
+
"type": "string",
|
|
458
|
+
"description": "Fallback used when a mode-specific value is not provided."
|
|
459
|
+
}
|
|
460
|
+
},
|
|
461
|
+
"additionalProperties": false
|
|
462
|
+
}
|
|
463
|
+
]
|
|
464
|
+
},
|
|
465
|
+
"logoAsset": {
|
|
466
|
+
"description": "Logo asset config. Same as themeAsset, with optional logo link target.",
|
|
467
|
+
"oneOf": [
|
|
468
|
+
{
|
|
469
|
+
"type": "string"
|
|
470
|
+
},
|
|
471
|
+
{
|
|
472
|
+
"type": "object",
|
|
473
|
+
"properties": {
|
|
474
|
+
"light": {
|
|
475
|
+
"type": "string"
|
|
476
|
+
},
|
|
477
|
+
"dark": {
|
|
478
|
+
"type": "string"
|
|
479
|
+
},
|
|
480
|
+
"default": {
|
|
481
|
+
"type": "string",
|
|
482
|
+
"description": "Fallback used when a mode-specific value is not provided."
|
|
483
|
+
},
|
|
484
|
+
"href": {
|
|
485
|
+
"$ref": "#/definitions/href",
|
|
486
|
+
"description": "Optional link target when clicking the logo."
|
|
487
|
+
}
|
|
488
|
+
},
|
|
489
|
+
"additionalProperties": false
|
|
490
|
+
}
|
|
491
|
+
]
|
|
492
|
+
},
|
|
493
|
+
"seoConfig": {
|
|
494
|
+
"type": "object",
|
|
495
|
+
"description": "SEO settings including global metatags and indexing policy.",
|
|
496
|
+
"properties": {
|
|
497
|
+
"metatags": {
|
|
498
|
+
"type": "object",
|
|
499
|
+
"description": "Global metatags applied to page metadata. Keys are tag names (for example 'og:title' or 'twitter:card').",
|
|
500
|
+
"additionalProperties": {
|
|
501
|
+
"type": "string"
|
|
502
|
+
}
|
|
503
|
+
},
|
|
504
|
+
"indexing": {
|
|
505
|
+
"type": "string",
|
|
506
|
+
"description": "Controls which pages are included in generated indexing outputs like sitemap and llms files.",
|
|
507
|
+
"enum": [
|
|
508
|
+
"navigable",
|
|
509
|
+
"all"
|
|
510
|
+
],
|
|
511
|
+
"default": "navigable"
|
|
512
|
+
}
|
|
513
|
+
},
|
|
514
|
+
"additionalProperties": false
|
|
515
|
+
},
|
|
516
|
+
"openapiSource": {
|
|
517
|
+
"description": "OpenAPI source value. Supports a spec URL/path, a list of sources, or an object form.",
|
|
518
|
+
"oneOf": [
|
|
519
|
+
{
|
|
520
|
+
"type": "string"
|
|
521
|
+
},
|
|
522
|
+
{
|
|
523
|
+
"type": "array",
|
|
524
|
+
"items": {
|
|
525
|
+
"type": "string"
|
|
526
|
+
},
|
|
527
|
+
"minItems": 1
|
|
528
|
+
},
|
|
529
|
+
{
|
|
530
|
+
"type": "object",
|
|
531
|
+
"required": [
|
|
532
|
+
"source"
|
|
533
|
+
],
|
|
534
|
+
"properties": {
|
|
535
|
+
"source": {
|
|
536
|
+
"oneOf": [
|
|
537
|
+
{
|
|
538
|
+
"type": "string"
|
|
539
|
+
},
|
|
540
|
+
{
|
|
541
|
+
"type": "array",
|
|
542
|
+
"items": {
|
|
543
|
+
"type": "string"
|
|
544
|
+
},
|
|
545
|
+
"minItems": 1
|
|
546
|
+
}
|
|
547
|
+
]
|
|
548
|
+
},
|
|
549
|
+
"directory": {
|
|
550
|
+
"type": "string",
|
|
551
|
+
"description": "Optional directory for generated OpenAPI pages."
|
|
552
|
+
}
|
|
553
|
+
},
|
|
554
|
+
"additionalProperties": false
|
|
555
|
+
}
|
|
556
|
+
]
|
|
557
|
+
},
|
|
95
558
|
"page": {
|
|
96
559
|
"type": "string",
|
|
97
|
-
"description": "
|
|
560
|
+
"description": "Explicit markdown file path relative to the docs directory (without .md extension). No automatic language fallback is applied. Example: 'quickstart' → docs/quickstart.md, 'ja/quickstart' → docs/ja/quickstart.md, 'writing-content/page' → docs/writing-content/page.md."
|
|
561
|
+
},
|
|
562
|
+
"href": {
|
|
563
|
+
"type": "string",
|
|
564
|
+
"description": "Navigation link target. Supports absolute URLs and internal paths (for example '/changelog' or 'guides/intro').",
|
|
565
|
+
"anyOf": [
|
|
566
|
+
{
|
|
567
|
+
"format": "uri"
|
|
568
|
+
},
|
|
569
|
+
{
|
|
570
|
+
"pattern": "^/[^\\s]*$"
|
|
571
|
+
},
|
|
572
|
+
{
|
|
573
|
+
"pattern": "^(?![a-zA-Z][a-zA-Z\\d+.-]*:)[^\\s]+$"
|
|
574
|
+
}
|
|
575
|
+
]
|
|
576
|
+
},
|
|
577
|
+
"redirect": {
|
|
578
|
+
"type": "object",
|
|
579
|
+
"description": "Redirect rule for moved, renamed, or deleted pages.",
|
|
580
|
+
"required": [
|
|
581
|
+
"source",
|
|
582
|
+
"destination"
|
|
583
|
+
],
|
|
584
|
+
"properties": {
|
|
585
|
+
"source": {
|
|
586
|
+
"type": "string",
|
|
587
|
+
"description": "Source path to match. Query params and anchors are not supported.",
|
|
588
|
+
"pattern": "^/[^?#]*$"
|
|
589
|
+
},
|
|
590
|
+
"destination": {
|
|
591
|
+
"type": "string",
|
|
592
|
+
"description": "Destination path or absolute URL. Query params and anchors are not supported.",
|
|
593
|
+
"anyOf": [
|
|
594
|
+
{
|
|
595
|
+
"format": "uri"
|
|
596
|
+
},
|
|
597
|
+
{
|
|
598
|
+
"pattern": "^/[^?#]*$"
|
|
599
|
+
}
|
|
600
|
+
]
|
|
601
|
+
},
|
|
602
|
+
"permanent": {
|
|
603
|
+
"type": "boolean",
|
|
604
|
+
"description": "Whether to use a permanent redirect status. Defaults to true.",
|
|
605
|
+
"default": true
|
|
606
|
+
}
|
|
607
|
+
},
|
|
608
|
+
"additionalProperties": false
|
|
98
609
|
},
|
|
99
610
|
"group": {
|
|
100
611
|
"type": "object",
|
|
101
612
|
"description": "A group of pages, optionally nested.",
|
|
102
|
-
"required": [
|
|
613
|
+
"required": [
|
|
614
|
+
"group"
|
|
615
|
+
],
|
|
103
616
|
"properties": {
|
|
104
617
|
"group": {
|
|
105
618
|
"type": "string",
|
|
@@ -114,6 +627,10 @@
|
|
|
114
627
|
"type": "string",
|
|
115
628
|
"description": "Icon identifier for the group."
|
|
116
629
|
},
|
|
630
|
+
"iconType": {
|
|
631
|
+
"type": "string",
|
|
632
|
+
"description": "Icon style hint (primarily for Font Awesome)."
|
|
633
|
+
},
|
|
117
634
|
"tag": {
|
|
118
635
|
"type": "string",
|
|
119
636
|
"description": "Optional badge/tag label displayed next to the group name."
|
|
@@ -123,47 +640,113 @@
|
|
|
123
640
|
"description": "Whether the group is expanded by default. Defaults to true.",
|
|
124
641
|
"default": true
|
|
125
642
|
},
|
|
643
|
+
"description": {
|
|
644
|
+
"type": "string",
|
|
645
|
+
"description": "Optional description displayed below the group name."
|
|
646
|
+
},
|
|
647
|
+
"hidden": {
|
|
648
|
+
"type": "boolean",
|
|
649
|
+
"description": "Whether the group is hidden from navigation. Defaults to false.",
|
|
650
|
+
"default": false
|
|
651
|
+
},
|
|
652
|
+
"openapi": {
|
|
653
|
+
"$ref": "#/definitions/openapiSource",
|
|
654
|
+
"description": "Default OpenAPI source inherited by page entries in this group."
|
|
655
|
+
},
|
|
126
656
|
"pages": {
|
|
127
657
|
"type": "array",
|
|
128
|
-
"description": "Pages
|
|
658
|
+
"description": "Pages, nested groups, separators, or external links within this group.",
|
|
129
659
|
"items": {
|
|
130
660
|
"oneOf": [
|
|
131
|
-
{
|
|
132
|
-
|
|
661
|
+
{
|
|
662
|
+
"$ref": "#/definitions/page"
|
|
663
|
+
},
|
|
664
|
+
{
|
|
665
|
+
"$ref": "#/definitions/group"
|
|
666
|
+
},
|
|
667
|
+
{
|
|
668
|
+
"$ref": "#/definitions/separator"
|
|
669
|
+
},
|
|
670
|
+
{
|
|
671
|
+
"$ref": "#/definitions/link"
|
|
672
|
+
}
|
|
133
673
|
]
|
|
134
674
|
}
|
|
675
|
+
},
|
|
676
|
+
"asyncapi": {
|
|
677
|
+
"$ref": "#/definitions/openapiSource",
|
|
678
|
+
"description": "Default AsyncAPI source inherited by page entries in this group."
|
|
135
679
|
}
|
|
136
680
|
},
|
|
681
|
+
"anyOf": [
|
|
682
|
+
{
|
|
683
|
+
"required": [
|
|
684
|
+
"pages"
|
|
685
|
+
]
|
|
686
|
+
},
|
|
687
|
+
{
|
|
688
|
+
"required": [
|
|
689
|
+
"openapi"
|
|
690
|
+
]
|
|
691
|
+
},
|
|
692
|
+
{
|
|
693
|
+
"required": [
|
|
694
|
+
"asyncapi"
|
|
695
|
+
]
|
|
696
|
+
}
|
|
697
|
+
],
|
|
137
698
|
"additionalProperties": false
|
|
138
699
|
},
|
|
139
700
|
"tab": {
|
|
140
701
|
"type": "object",
|
|
141
702
|
"description": "A top-level navigation tab.",
|
|
142
|
-
"required": [
|
|
703
|
+
"required": [
|
|
704
|
+
"tab"
|
|
705
|
+
],
|
|
143
706
|
"properties": {
|
|
144
707
|
"tab": {
|
|
145
708
|
"type": "string",
|
|
146
709
|
"description": "Display name for the tab."
|
|
147
710
|
},
|
|
711
|
+
"version": {
|
|
712
|
+
"type": "string",
|
|
713
|
+
"description": "Optional version label inherited by generated OpenAPI operation pages under this tab."
|
|
714
|
+
},
|
|
148
715
|
"slug": {
|
|
149
716
|
"type": "string",
|
|
150
|
-
"description": "URL slug prefix for pages in this tab.
|
|
717
|
+
"description": "Optional URL slug prefix for pages in this tab. If omitted, Velu derives one from the tab label.",
|
|
151
718
|
"pattern": "^[a-z0-9]+(-[a-z0-9]+)*$"
|
|
152
719
|
},
|
|
153
720
|
"icon": {
|
|
154
721
|
"type": "string",
|
|
155
722
|
"description": "Icon identifier for the tab."
|
|
156
723
|
},
|
|
157
|
-
"
|
|
724
|
+
"iconType": {
|
|
158
725
|
"type": "string",
|
|
159
|
-
"description": "
|
|
160
|
-
|
|
726
|
+
"description": "Icon style hint (primarily for Font Awesome)."
|
|
727
|
+
},
|
|
728
|
+
"href": {
|
|
729
|
+
"$ref": "#/definitions/href"
|
|
730
|
+
},
|
|
731
|
+
"openapi": {
|
|
732
|
+
"$ref": "#/definitions/openapiSource",
|
|
733
|
+
"description": "Default OpenAPI source inherited by groups/pages in this tab."
|
|
161
734
|
},
|
|
162
735
|
"pages": {
|
|
163
736
|
"type": "array",
|
|
164
|
-
"description": "Standalone pages directly under this tab.",
|
|
737
|
+
"description": "Standalone pages, separators, or external links directly under this tab.",
|
|
165
738
|
"items": {
|
|
166
|
-
"
|
|
739
|
+
"oneOf": [
|
|
740
|
+
{
|
|
741
|
+
"$ref": "#/definitions/page"
|
|
742
|
+
},
|
|
743
|
+
{
|
|
744
|
+
"$ref": "#/definitions/separator"
|
|
745
|
+
},
|
|
746
|
+
{
|
|
747
|
+
"$ref": "#/definitions/link"
|
|
748
|
+
}
|
|
749
|
+
]
|
|
167
750
|
}
|
|
168
751
|
},
|
|
169
752
|
"groups": {
|
|
@@ -172,27 +755,1278 @@
|
|
|
172
755
|
"items": {
|
|
173
756
|
"$ref": "#/definitions/group"
|
|
174
757
|
}
|
|
758
|
+
},
|
|
759
|
+
"menu": {
|
|
760
|
+
"type": "array",
|
|
761
|
+
"description": "Optional menu items for this tab. Each menu item is normalized into a sidebar group.",
|
|
762
|
+
"items": {
|
|
763
|
+
"$ref": "#/definitions/menuItem"
|
|
764
|
+
}
|
|
765
|
+
},
|
|
766
|
+
"anchors": {
|
|
767
|
+
"type": "array",
|
|
768
|
+
"description": "Anchors nested under this tab.",
|
|
769
|
+
"items": {
|
|
770
|
+
"$ref": "#/definitions/anchor"
|
|
771
|
+
}
|
|
772
|
+
},
|
|
773
|
+
"dropdowns": {
|
|
774
|
+
"type": "array",
|
|
775
|
+
"description": "Dropdowns nested under this tab.",
|
|
776
|
+
"items": {
|
|
777
|
+
"$ref": "#/definitions/dropdown"
|
|
778
|
+
}
|
|
779
|
+
},
|
|
780
|
+
"asyncapi": {
|
|
781
|
+
"$ref": "#/definitions/openapiSource",
|
|
782
|
+
"description": "Default AsyncAPI source inherited by groups/pages in this tab."
|
|
175
783
|
}
|
|
176
784
|
},
|
|
177
785
|
"additionalProperties": false,
|
|
786
|
+
"allOf": [
|
|
787
|
+
{
|
|
788
|
+
"not": {
|
|
789
|
+
"allOf": [
|
|
790
|
+
{
|
|
791
|
+
"required": [
|
|
792
|
+
"menu"
|
|
793
|
+
]
|
|
794
|
+
},
|
|
795
|
+
{
|
|
796
|
+
"anyOf": [
|
|
797
|
+
{
|
|
798
|
+
"required": [
|
|
799
|
+
"groups"
|
|
800
|
+
]
|
|
801
|
+
},
|
|
802
|
+
{
|
|
803
|
+
"required": [
|
|
804
|
+
"pages"
|
|
805
|
+
]
|
|
806
|
+
},
|
|
807
|
+
{
|
|
808
|
+
"required": [
|
|
809
|
+
"anchors"
|
|
810
|
+
]
|
|
811
|
+
},
|
|
812
|
+
{
|
|
813
|
+
"required": [
|
|
814
|
+
"dropdowns"
|
|
815
|
+
]
|
|
816
|
+
}
|
|
817
|
+
]
|
|
818
|
+
}
|
|
819
|
+
]
|
|
820
|
+
}
|
|
821
|
+
}
|
|
822
|
+
],
|
|
178
823
|
"oneOf": [
|
|
179
824
|
{
|
|
180
|
-
"required": [
|
|
825
|
+
"required": [
|
|
826
|
+
"href"
|
|
827
|
+
],
|
|
181
828
|
"not": {
|
|
182
829
|
"anyOf": [
|
|
183
|
-
{
|
|
184
|
-
|
|
830
|
+
{
|
|
831
|
+
"required": [
|
|
832
|
+
"pages"
|
|
833
|
+
]
|
|
834
|
+
},
|
|
835
|
+
{
|
|
836
|
+
"required": [
|
|
837
|
+
"groups"
|
|
838
|
+
]
|
|
839
|
+
},
|
|
840
|
+
{
|
|
841
|
+
"required": [
|
|
842
|
+
"menu"
|
|
843
|
+
]
|
|
844
|
+
},
|
|
845
|
+
{
|
|
846
|
+
"required": [
|
|
847
|
+
"anchors"
|
|
848
|
+
]
|
|
849
|
+
},
|
|
850
|
+
{
|
|
851
|
+
"required": [
|
|
852
|
+
"dropdowns"
|
|
853
|
+
]
|
|
854
|
+
}
|
|
185
855
|
]
|
|
186
856
|
}
|
|
187
857
|
},
|
|
188
858
|
{
|
|
189
|
-
"not": {
|
|
859
|
+
"not": {
|
|
860
|
+
"required": [
|
|
861
|
+
"href"
|
|
862
|
+
]
|
|
863
|
+
},
|
|
190
864
|
"anyOf": [
|
|
191
|
-
{
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
865
|
+
{
|
|
866
|
+
"required": [
|
|
867
|
+
"pages"
|
|
868
|
+
]
|
|
869
|
+
},
|
|
870
|
+
{
|
|
871
|
+
"required": [
|
|
872
|
+
"groups"
|
|
873
|
+
]
|
|
874
|
+
},
|
|
875
|
+
{
|
|
876
|
+
"required": [
|
|
877
|
+
"menu"
|
|
878
|
+
]
|
|
879
|
+
},
|
|
880
|
+
{
|
|
881
|
+
"required": [
|
|
882
|
+
"anchors"
|
|
883
|
+
]
|
|
884
|
+
},
|
|
885
|
+
{
|
|
886
|
+
"required": [
|
|
887
|
+
"dropdowns"
|
|
888
|
+
]
|
|
889
|
+
},
|
|
890
|
+
{
|
|
891
|
+
"required": [
|
|
892
|
+
"openapi"
|
|
893
|
+
]
|
|
894
|
+
},
|
|
895
|
+
{
|
|
896
|
+
"required": [
|
|
897
|
+
"asyncapi"
|
|
898
|
+
]
|
|
899
|
+
}
|
|
900
|
+
]
|
|
901
|
+
}
|
|
195
902
|
]
|
|
903
|
+
},
|
|
904
|
+
"dropdown": {
|
|
905
|
+
"type": "object",
|
|
906
|
+
"description": "A dropdown navigation container.",
|
|
907
|
+
"required": [
|
|
908
|
+
"dropdown"
|
|
909
|
+
],
|
|
910
|
+
"properties": {
|
|
911
|
+
"dropdown": {
|
|
912
|
+
"type": "string",
|
|
913
|
+
"description": "Display label for the dropdown."
|
|
914
|
+
},
|
|
915
|
+
"slug": {
|
|
916
|
+
"type": "string",
|
|
917
|
+
"description": "Optional URL slug for this dropdown.",
|
|
918
|
+
"pattern": "^[a-z0-9]+(-[a-z0-9]+)*$"
|
|
919
|
+
},
|
|
920
|
+
"icon": {
|
|
921
|
+
"type": "string",
|
|
922
|
+
"description": "Icon identifier for the dropdown."
|
|
923
|
+
},
|
|
924
|
+
"iconType": {
|
|
925
|
+
"type": "string",
|
|
926
|
+
"description": "Icon style hint (primarily for Font Awesome)."
|
|
927
|
+
},
|
|
928
|
+
"href": {
|
|
929
|
+
"$ref": "#/definitions/href"
|
|
930
|
+
},
|
|
931
|
+
"openapi": {
|
|
932
|
+
"$ref": "#/definitions/openapiSource",
|
|
933
|
+
"description": "Default OpenAPI source inherited by groups/pages in this dropdown."
|
|
934
|
+
},
|
|
935
|
+
"pages": {
|
|
936
|
+
"type": "array",
|
|
937
|
+
"description": "Pages directly under this dropdown.",
|
|
938
|
+
"items": {
|
|
939
|
+
"oneOf": [
|
|
940
|
+
{
|
|
941
|
+
"$ref": "#/definitions/page"
|
|
942
|
+
},
|
|
943
|
+
{
|
|
944
|
+
"$ref": "#/definitions/separator"
|
|
945
|
+
},
|
|
946
|
+
{
|
|
947
|
+
"$ref": "#/definitions/link"
|
|
948
|
+
}
|
|
949
|
+
]
|
|
950
|
+
}
|
|
951
|
+
},
|
|
952
|
+
"groups": {
|
|
953
|
+
"type": "array",
|
|
954
|
+
"description": "Groups nested under this dropdown.",
|
|
955
|
+
"items": {
|
|
956
|
+
"$ref": "#/definitions/group"
|
|
957
|
+
}
|
|
958
|
+
},
|
|
959
|
+
"menu": {
|
|
960
|
+
"type": "array",
|
|
961
|
+
"description": "Menu items nested under this dropdown.",
|
|
962
|
+
"items": {
|
|
963
|
+
"$ref": "#/definitions/menuItem"
|
|
964
|
+
}
|
|
965
|
+
},
|
|
966
|
+
"anchors": {
|
|
967
|
+
"type": "array",
|
|
968
|
+
"description": "Anchors nested under this dropdown.",
|
|
969
|
+
"items": {
|
|
970
|
+
"$ref": "#/definitions/anchor"
|
|
971
|
+
}
|
|
972
|
+
},
|
|
973
|
+
"asyncapi": {
|
|
974
|
+
"$ref": "#/definitions/openapiSource",
|
|
975
|
+
"description": "Default AsyncAPI source inherited by groups/pages in this dropdown."
|
|
976
|
+
}
|
|
977
|
+
},
|
|
978
|
+
"additionalProperties": false,
|
|
979
|
+
"allOf": [
|
|
980
|
+
{
|
|
981
|
+
"not": {
|
|
982
|
+
"allOf": [
|
|
983
|
+
{
|
|
984
|
+
"required": [
|
|
985
|
+
"menu"
|
|
986
|
+
]
|
|
987
|
+
},
|
|
988
|
+
{
|
|
989
|
+
"anyOf": [
|
|
990
|
+
{
|
|
991
|
+
"required": [
|
|
992
|
+
"groups"
|
|
993
|
+
]
|
|
994
|
+
},
|
|
995
|
+
{
|
|
996
|
+
"required": [
|
|
997
|
+
"pages"
|
|
998
|
+
]
|
|
999
|
+
},
|
|
1000
|
+
{
|
|
1001
|
+
"required": [
|
|
1002
|
+
"anchors"
|
|
1003
|
+
]
|
|
1004
|
+
}
|
|
1005
|
+
]
|
|
1006
|
+
}
|
|
1007
|
+
]
|
|
1008
|
+
}
|
|
1009
|
+
}
|
|
1010
|
+
],
|
|
1011
|
+
"oneOf": [
|
|
1012
|
+
{
|
|
1013
|
+
"required": [
|
|
1014
|
+
"href"
|
|
1015
|
+
],
|
|
1016
|
+
"not": {
|
|
1017
|
+
"anyOf": [
|
|
1018
|
+
{
|
|
1019
|
+
"required": [
|
|
1020
|
+
"pages"
|
|
1021
|
+
]
|
|
1022
|
+
},
|
|
1023
|
+
{
|
|
1024
|
+
"required": [
|
|
1025
|
+
"groups"
|
|
1026
|
+
]
|
|
1027
|
+
},
|
|
1028
|
+
{
|
|
1029
|
+
"required": [
|
|
1030
|
+
"menu"
|
|
1031
|
+
]
|
|
1032
|
+
},
|
|
1033
|
+
{
|
|
1034
|
+
"required": [
|
|
1035
|
+
"anchors"
|
|
1036
|
+
]
|
|
1037
|
+
}
|
|
1038
|
+
]
|
|
1039
|
+
}
|
|
1040
|
+
},
|
|
1041
|
+
{
|
|
1042
|
+
"not": {
|
|
1043
|
+
"required": [
|
|
1044
|
+
"href"
|
|
1045
|
+
]
|
|
1046
|
+
},
|
|
1047
|
+
"anyOf": [
|
|
1048
|
+
{
|
|
1049
|
+
"required": [
|
|
1050
|
+
"pages"
|
|
1051
|
+
]
|
|
1052
|
+
},
|
|
1053
|
+
{
|
|
1054
|
+
"required": [
|
|
1055
|
+
"groups"
|
|
1056
|
+
]
|
|
1057
|
+
},
|
|
1058
|
+
{
|
|
1059
|
+
"required": [
|
|
1060
|
+
"menu"
|
|
1061
|
+
]
|
|
1062
|
+
},
|
|
1063
|
+
{
|
|
1064
|
+
"required": [
|
|
1065
|
+
"anchors"
|
|
1066
|
+
]
|
|
1067
|
+
},
|
|
1068
|
+
{
|
|
1069
|
+
"required": [
|
|
1070
|
+
"openapi"
|
|
1071
|
+
]
|
|
1072
|
+
},
|
|
1073
|
+
{
|
|
1074
|
+
"required": [
|
|
1075
|
+
"asyncapi"
|
|
1076
|
+
]
|
|
1077
|
+
}
|
|
1078
|
+
]
|
|
1079
|
+
}
|
|
1080
|
+
]
|
|
1081
|
+
},
|
|
1082
|
+
"menuItem": {
|
|
1083
|
+
"type": "object",
|
|
1084
|
+
"description": "A named menu item within a tab. Normalized into a sidebar group.",
|
|
1085
|
+
"required": [
|
|
1086
|
+
"item"
|
|
1087
|
+
],
|
|
1088
|
+
"properties": {
|
|
1089
|
+
"item": {
|
|
1090
|
+
"type": "string",
|
|
1091
|
+
"description": "Display label for the menu item."
|
|
1092
|
+
},
|
|
1093
|
+
"icon": {
|
|
1094
|
+
"type": "string",
|
|
1095
|
+
"description": "Icon identifier for the menu item."
|
|
1096
|
+
},
|
|
1097
|
+
"iconType": {
|
|
1098
|
+
"type": "string",
|
|
1099
|
+
"description": "Icon style hint (primarily for Font Awesome)."
|
|
1100
|
+
},
|
|
1101
|
+
"openapi": {
|
|
1102
|
+
"$ref": "#/definitions/openapiSource",
|
|
1103
|
+
"description": "Default OpenAPI source inherited by groups/pages in this menu item."
|
|
1104
|
+
},
|
|
1105
|
+
"pages": {
|
|
1106
|
+
"type": "array",
|
|
1107
|
+
"description": "Pages directly under this menu item.",
|
|
1108
|
+
"items": {
|
|
1109
|
+
"oneOf": [
|
|
1110
|
+
{
|
|
1111
|
+
"$ref": "#/definitions/page"
|
|
1112
|
+
},
|
|
1113
|
+
{
|
|
1114
|
+
"$ref": "#/definitions/separator"
|
|
1115
|
+
},
|
|
1116
|
+
{
|
|
1117
|
+
"$ref": "#/definitions/link"
|
|
1118
|
+
}
|
|
1119
|
+
]
|
|
1120
|
+
}
|
|
1121
|
+
},
|
|
1122
|
+
"groups": {
|
|
1123
|
+
"type": "array",
|
|
1124
|
+
"description": "Groups nested under this menu item.",
|
|
1125
|
+
"items": {
|
|
1126
|
+
"$ref": "#/definitions/group"
|
|
1127
|
+
}
|
|
1128
|
+
},
|
|
1129
|
+
"asyncapi": {
|
|
1130
|
+
"$ref": "#/definitions/openapiSource",
|
|
1131
|
+
"description": "Default AsyncAPI source inherited by groups/pages in this menu item."
|
|
1132
|
+
}
|
|
1133
|
+
},
|
|
1134
|
+
"additionalProperties": false,
|
|
1135
|
+
"anyOf": [
|
|
1136
|
+
{
|
|
1137
|
+
"required": [
|
|
1138
|
+
"pages"
|
|
1139
|
+
]
|
|
1140
|
+
},
|
|
1141
|
+
{
|
|
1142
|
+
"required": [
|
|
1143
|
+
"groups"
|
|
1144
|
+
]
|
|
1145
|
+
},
|
|
1146
|
+
{
|
|
1147
|
+
"required": [
|
|
1148
|
+
"openapi"
|
|
1149
|
+
]
|
|
1150
|
+
},
|
|
1151
|
+
{
|
|
1152
|
+
"required": [
|
|
1153
|
+
"asyncapi"
|
|
1154
|
+
]
|
|
1155
|
+
}
|
|
1156
|
+
]
|
|
1157
|
+
},
|
|
1158
|
+
"separator": {
|
|
1159
|
+
"type": "object",
|
|
1160
|
+
"description": "A visual separator/label in the sidebar navigation.",
|
|
1161
|
+
"required": [
|
|
1162
|
+
"separator"
|
|
1163
|
+
],
|
|
1164
|
+
"properties": {
|
|
1165
|
+
"separator": {
|
|
1166
|
+
"type": "string",
|
|
1167
|
+
"description": "Label text for the separator."
|
|
1168
|
+
}
|
|
1169
|
+
},
|
|
1170
|
+
"additionalProperties": false
|
|
1171
|
+
},
|
|
1172
|
+
"link": {
|
|
1173
|
+
"type": "object",
|
|
1174
|
+
"description": "An external link displayed in the sidebar.",
|
|
1175
|
+
"required": [
|
|
1176
|
+
"href",
|
|
1177
|
+
"label"
|
|
1178
|
+
],
|
|
1179
|
+
"properties": {
|
|
1180
|
+
"href": {
|
|
1181
|
+
"$ref": "#/definitions/href"
|
|
1182
|
+
},
|
|
1183
|
+
"label": {
|
|
1184
|
+
"type": "string",
|
|
1185
|
+
"description": "Display text for the link."
|
|
1186
|
+
},
|
|
1187
|
+
"icon": {
|
|
1188
|
+
"type": "string",
|
|
1189
|
+
"description": "Icon identifier for the link."
|
|
1190
|
+
},
|
|
1191
|
+
"iconType": {
|
|
1192
|
+
"type": "string",
|
|
1193
|
+
"description": "Icon style hint (primarily for Font Awesome)."
|
|
1194
|
+
}
|
|
1195
|
+
},
|
|
1196
|
+
"additionalProperties": false
|
|
1197
|
+
},
|
|
1198
|
+
"anchor": {
|
|
1199
|
+
"type": "object",
|
|
1200
|
+
"description": "A prominent navigation anchor. Can be an external link or a container of tabs.",
|
|
1201
|
+
"required": [
|
|
1202
|
+
"anchor"
|
|
1203
|
+
],
|
|
1204
|
+
"properties": {
|
|
1205
|
+
"anchor": {
|
|
1206
|
+
"type": "string",
|
|
1207
|
+
"description": "Display name for the anchor."
|
|
1208
|
+
},
|
|
1209
|
+
"version": {
|
|
1210
|
+
"type": "string",
|
|
1211
|
+
"description": "Optional version label inherited by generated OpenAPI operation pages under this anchor."
|
|
1212
|
+
},
|
|
1213
|
+
"href": {
|
|
1214
|
+
"$ref": "#/definitions/href"
|
|
1215
|
+
},
|
|
1216
|
+
"openapi": {
|
|
1217
|
+
"$ref": "#/definitions/openapiSource",
|
|
1218
|
+
"description": "Default OpenAPI source inherited by tabs/groups/pages in this anchor."
|
|
1219
|
+
},
|
|
1220
|
+
"tabs": {
|
|
1221
|
+
"type": "array",
|
|
1222
|
+
"description": "Optional tabs promoted to top-level navigation under this anchor.",
|
|
1223
|
+
"items": {
|
|
1224
|
+
"$ref": "#/definitions/tab"
|
|
1225
|
+
}
|
|
1226
|
+
},
|
|
1227
|
+
"groups": {
|
|
1228
|
+
"type": "array",
|
|
1229
|
+
"description": "Groups nested under this anchor.",
|
|
1230
|
+
"items": {
|
|
1231
|
+
"$ref": "#/definitions/group"
|
|
1232
|
+
}
|
|
1233
|
+
},
|
|
1234
|
+
"pages": {
|
|
1235
|
+
"type": "array",
|
|
1236
|
+
"description": "Pages nested under this anchor.",
|
|
1237
|
+
"items": {
|
|
1238
|
+
"oneOf": [
|
|
1239
|
+
{
|
|
1240
|
+
"$ref": "#/definitions/page"
|
|
1241
|
+
},
|
|
1242
|
+
{
|
|
1243
|
+
"$ref": "#/definitions/separator"
|
|
1244
|
+
},
|
|
1245
|
+
{
|
|
1246
|
+
"$ref": "#/definitions/link"
|
|
1247
|
+
}
|
|
1248
|
+
]
|
|
1249
|
+
}
|
|
1250
|
+
},
|
|
1251
|
+
"menu": {
|
|
1252
|
+
"type": "array",
|
|
1253
|
+
"description": "Menu items nested under this anchor.",
|
|
1254
|
+
"items": {
|
|
1255
|
+
"$ref": "#/definitions/menuItem"
|
|
1256
|
+
}
|
|
1257
|
+
},
|
|
1258
|
+
"anchors": {
|
|
1259
|
+
"type": "array",
|
|
1260
|
+
"description": "Anchors nested under this anchor.",
|
|
1261
|
+
"items": {
|
|
1262
|
+
"$ref": "#/definitions/anchor"
|
|
1263
|
+
}
|
|
1264
|
+
},
|
|
1265
|
+
"dropdowns": {
|
|
1266
|
+
"type": "array",
|
|
1267
|
+
"description": "Dropdowns nested under this anchor.",
|
|
1268
|
+
"items": {
|
|
1269
|
+
"$ref": "#/definitions/dropdown"
|
|
1270
|
+
}
|
|
1271
|
+
},
|
|
1272
|
+
"icon": {
|
|
1273
|
+
"type": "string",
|
|
1274
|
+
"description": "Icon identifier for the anchor."
|
|
1275
|
+
},
|
|
1276
|
+
"iconType": {
|
|
1277
|
+
"type": "string",
|
|
1278
|
+
"description": "Icon style hint (primarily for Font Awesome)."
|
|
1279
|
+
},
|
|
1280
|
+
"color": {
|
|
1281
|
+
"type": "object",
|
|
1282
|
+
"description": "Optional light/dark color hints for displaying this anchor.",
|
|
1283
|
+
"properties": {
|
|
1284
|
+
"light": {
|
|
1285
|
+
"type": "string",
|
|
1286
|
+
"description": "Color used in light mode (hex).",
|
|
1287
|
+
"pattern": "^#[0-9a-fA-F]{6}$"
|
|
1288
|
+
},
|
|
1289
|
+
"dark": {
|
|
1290
|
+
"type": "string",
|
|
1291
|
+
"description": "Color used in dark mode (hex).",
|
|
1292
|
+
"pattern": "^#[0-9a-fA-F]{6}$"
|
|
1293
|
+
}
|
|
1294
|
+
},
|
|
1295
|
+
"required": [
|
|
1296
|
+
"light",
|
|
1297
|
+
"dark"
|
|
1298
|
+
],
|
|
1299
|
+
"additionalProperties": false
|
|
1300
|
+
},
|
|
1301
|
+
"hidden": {
|
|
1302
|
+
"type": "boolean",
|
|
1303
|
+
"description": "Whether the anchor is hidden. Defaults to false.",
|
|
1304
|
+
"default": false
|
|
1305
|
+
},
|
|
1306
|
+
"asyncapi": {
|
|
1307
|
+
"$ref": "#/definitions/openapiSource",
|
|
1308
|
+
"description": "Default AsyncAPI source inherited by tabs/groups/pages in this anchor."
|
|
1309
|
+
}
|
|
1310
|
+
},
|
|
1311
|
+
"allOf": [
|
|
1312
|
+
{
|
|
1313
|
+
"not": {
|
|
1314
|
+
"allOf": [
|
|
1315
|
+
{
|
|
1316
|
+
"required": [
|
|
1317
|
+
"menu"
|
|
1318
|
+
]
|
|
1319
|
+
},
|
|
1320
|
+
{
|
|
1321
|
+
"anyOf": [
|
|
1322
|
+
{
|
|
1323
|
+
"required": [
|
|
1324
|
+
"tabs"
|
|
1325
|
+
]
|
|
1326
|
+
},
|
|
1327
|
+
{
|
|
1328
|
+
"required": [
|
|
1329
|
+
"groups"
|
|
1330
|
+
]
|
|
1331
|
+
},
|
|
1332
|
+
{
|
|
1333
|
+
"required": [
|
|
1334
|
+
"pages"
|
|
1335
|
+
]
|
|
1336
|
+
},
|
|
1337
|
+
{
|
|
1338
|
+
"required": [
|
|
1339
|
+
"anchors"
|
|
1340
|
+
]
|
|
1341
|
+
},
|
|
1342
|
+
{
|
|
1343
|
+
"required": [
|
|
1344
|
+
"dropdowns"
|
|
1345
|
+
]
|
|
1346
|
+
}
|
|
1347
|
+
]
|
|
1348
|
+
}
|
|
1349
|
+
]
|
|
1350
|
+
}
|
|
1351
|
+
}
|
|
1352
|
+
],
|
|
1353
|
+
"oneOf": [
|
|
1354
|
+
{
|
|
1355
|
+
"required": [
|
|
1356
|
+
"href"
|
|
1357
|
+
],
|
|
1358
|
+
"not": {
|
|
1359
|
+
"anyOf": [
|
|
1360
|
+
{
|
|
1361
|
+
"required": [
|
|
1362
|
+
"tabs"
|
|
1363
|
+
]
|
|
1364
|
+
},
|
|
1365
|
+
{
|
|
1366
|
+
"required": [
|
|
1367
|
+
"groups"
|
|
1368
|
+
]
|
|
1369
|
+
},
|
|
1370
|
+
{
|
|
1371
|
+
"required": [
|
|
1372
|
+
"pages"
|
|
1373
|
+
]
|
|
1374
|
+
},
|
|
1375
|
+
{
|
|
1376
|
+
"required": [
|
|
1377
|
+
"menu"
|
|
1378
|
+
]
|
|
1379
|
+
},
|
|
1380
|
+
{
|
|
1381
|
+
"required": [
|
|
1382
|
+
"anchors"
|
|
1383
|
+
]
|
|
1384
|
+
},
|
|
1385
|
+
{
|
|
1386
|
+
"required": [
|
|
1387
|
+
"dropdowns"
|
|
1388
|
+
]
|
|
1389
|
+
}
|
|
1390
|
+
]
|
|
1391
|
+
}
|
|
1392
|
+
},
|
|
1393
|
+
{
|
|
1394
|
+
"not": {
|
|
1395
|
+
"required": [
|
|
1396
|
+
"href"
|
|
1397
|
+
]
|
|
1398
|
+
},
|
|
1399
|
+
"anyOf": [
|
|
1400
|
+
{
|
|
1401
|
+
"required": [
|
|
1402
|
+
"tabs"
|
|
1403
|
+
]
|
|
1404
|
+
},
|
|
1405
|
+
{
|
|
1406
|
+
"required": [
|
|
1407
|
+
"groups"
|
|
1408
|
+
]
|
|
1409
|
+
},
|
|
1410
|
+
{
|
|
1411
|
+
"required": [
|
|
1412
|
+
"pages"
|
|
1413
|
+
]
|
|
1414
|
+
},
|
|
1415
|
+
{
|
|
1416
|
+
"required": [
|
|
1417
|
+
"menu"
|
|
1418
|
+
]
|
|
1419
|
+
},
|
|
1420
|
+
{
|
|
1421
|
+
"required": [
|
|
1422
|
+
"anchors"
|
|
1423
|
+
]
|
|
1424
|
+
},
|
|
1425
|
+
{
|
|
1426
|
+
"required": [
|
|
1427
|
+
"dropdowns"
|
|
1428
|
+
]
|
|
1429
|
+
},
|
|
1430
|
+
{
|
|
1431
|
+
"required": [
|
|
1432
|
+
"openapi"
|
|
1433
|
+
]
|
|
1434
|
+
},
|
|
1435
|
+
{
|
|
1436
|
+
"required": [
|
|
1437
|
+
"asyncapi"
|
|
1438
|
+
]
|
|
1439
|
+
}
|
|
1440
|
+
]
|
|
1441
|
+
}
|
|
1442
|
+
],
|
|
1443
|
+
"additionalProperties": false
|
|
1444
|
+
},
|
|
1445
|
+
"productNav": {
|
|
1446
|
+
"type": "object",
|
|
1447
|
+
"description": "Navigation definition for a product docs area.",
|
|
1448
|
+
"required": [
|
|
1449
|
+
"product"
|
|
1450
|
+
],
|
|
1451
|
+
"properties": {
|
|
1452
|
+
"product": {
|
|
1453
|
+
"type": "string",
|
|
1454
|
+
"description": "Product label (used for route prefix derivation)."
|
|
1455
|
+
},
|
|
1456
|
+
"icon": {
|
|
1457
|
+
"type": "string",
|
|
1458
|
+
"description": "Icon identifier for the product."
|
|
1459
|
+
},
|
|
1460
|
+
"iconType": {
|
|
1461
|
+
"type": "string",
|
|
1462
|
+
"description": "Icon style hint (primarily for Font Awesome)."
|
|
1463
|
+
},
|
|
1464
|
+
"name": {
|
|
1465
|
+
"type": "string",
|
|
1466
|
+
"description": "Optional display name for the product."
|
|
1467
|
+
},
|
|
1468
|
+
"description": {
|
|
1469
|
+
"type": "string",
|
|
1470
|
+
"description": "Optional description for the product."
|
|
1471
|
+
},
|
|
1472
|
+
"hidden": {
|
|
1473
|
+
"type": "boolean",
|
|
1474
|
+
"description": "Whether this product is hidden from navigation. Defaults to false.",
|
|
1475
|
+
"default": false
|
|
1476
|
+
},
|
|
1477
|
+
"href": {
|
|
1478
|
+
"$ref": "#/definitions/href"
|
|
1479
|
+
},
|
|
1480
|
+
"color": {
|
|
1481
|
+
"type": "object",
|
|
1482
|
+
"description": "Optional light/dark color hints for this product.",
|
|
1483
|
+
"properties": {
|
|
1484
|
+
"light": {
|
|
1485
|
+
"type": "string",
|
|
1486
|
+
"description": "Color used in light mode (hex).",
|
|
1487
|
+
"pattern": "^#[0-9a-fA-F]{6}$"
|
|
1488
|
+
},
|
|
1489
|
+
"dark": {
|
|
1490
|
+
"type": "string",
|
|
1491
|
+
"description": "Color used in dark mode (hex).",
|
|
1492
|
+
"pattern": "^#[0-9a-fA-F]{6}$"
|
|
1493
|
+
}
|
|
1494
|
+
},
|
|
1495
|
+
"required": [
|
|
1496
|
+
"light",
|
|
1497
|
+
"dark"
|
|
1498
|
+
],
|
|
1499
|
+
"additionalProperties": false
|
|
1500
|
+
},
|
|
1501
|
+
"openapi": {
|
|
1502
|
+
"$ref": "#/definitions/openapiSource",
|
|
1503
|
+
"description": "Default OpenAPI source inherited by tabs/groups/pages in this product."
|
|
1504
|
+
},
|
|
1505
|
+
"tabs": {
|
|
1506
|
+
"type": "array",
|
|
1507
|
+
"description": "Tabs within this product.",
|
|
1508
|
+
"items": {
|
|
1509
|
+
"$ref": "#/definitions/tab"
|
|
1510
|
+
}
|
|
1511
|
+
},
|
|
1512
|
+
"dropdowns": {
|
|
1513
|
+
"type": "array",
|
|
1514
|
+
"description": "Dropdowns within this product.",
|
|
1515
|
+
"items": {
|
|
1516
|
+
"$ref": "#/definitions/dropdown"
|
|
1517
|
+
}
|
|
1518
|
+
},
|
|
1519
|
+
"groups": {
|
|
1520
|
+
"type": "array",
|
|
1521
|
+
"description": "Groups directly within this product.",
|
|
1522
|
+
"items": {
|
|
1523
|
+
"$ref": "#/definitions/group"
|
|
1524
|
+
}
|
|
1525
|
+
},
|
|
1526
|
+
"pages": {
|
|
1527
|
+
"type": "array",
|
|
1528
|
+
"description": "Pages directly under this product when tabs are not needed.",
|
|
1529
|
+
"items": {
|
|
1530
|
+
"oneOf": [
|
|
1531
|
+
{
|
|
1532
|
+
"$ref": "#/definitions/page"
|
|
1533
|
+
},
|
|
1534
|
+
{
|
|
1535
|
+
"$ref": "#/definitions/separator"
|
|
1536
|
+
},
|
|
1537
|
+
{
|
|
1538
|
+
"$ref": "#/definitions/link"
|
|
1539
|
+
}
|
|
1540
|
+
]
|
|
1541
|
+
}
|
|
1542
|
+
},
|
|
1543
|
+
"menu": {
|
|
1544
|
+
"type": "array",
|
|
1545
|
+
"description": "Menu items directly within this product.",
|
|
1546
|
+
"items": {
|
|
1547
|
+
"$ref": "#/definitions/menuItem"
|
|
1548
|
+
}
|
|
1549
|
+
},
|
|
1550
|
+
"anchors": {
|
|
1551
|
+
"type": "array",
|
|
1552
|
+
"description": "Anchors directly within this product.",
|
|
1553
|
+
"items": {
|
|
1554
|
+
"$ref": "#/definitions/anchor"
|
|
1555
|
+
}
|
|
1556
|
+
},
|
|
1557
|
+
"asyncapi": {
|
|
1558
|
+
"$ref": "#/definitions/openapiSource",
|
|
1559
|
+
"description": "Default AsyncAPI source inherited by tabs/groups/pages in this product."
|
|
1560
|
+
}
|
|
1561
|
+
},
|
|
1562
|
+
"additionalProperties": false,
|
|
1563
|
+
"allOf": [
|
|
1564
|
+
{
|
|
1565
|
+
"not": {
|
|
1566
|
+
"allOf": [
|
|
1567
|
+
{
|
|
1568
|
+
"required": [
|
|
1569
|
+
"menu"
|
|
1570
|
+
]
|
|
1571
|
+
},
|
|
1572
|
+
{
|
|
1573
|
+
"anyOf": [
|
|
1574
|
+
{
|
|
1575
|
+
"required": [
|
|
1576
|
+
"tabs"
|
|
1577
|
+
]
|
|
1578
|
+
},
|
|
1579
|
+
{
|
|
1580
|
+
"required": [
|
|
1581
|
+
"dropdowns"
|
|
1582
|
+
]
|
|
1583
|
+
},
|
|
1584
|
+
{
|
|
1585
|
+
"required": [
|
|
1586
|
+
"groups"
|
|
1587
|
+
]
|
|
1588
|
+
},
|
|
1589
|
+
{
|
|
1590
|
+
"required": [
|
|
1591
|
+
"pages"
|
|
1592
|
+
]
|
|
1593
|
+
},
|
|
1594
|
+
{
|
|
1595
|
+
"required": [
|
|
1596
|
+
"anchors"
|
|
1597
|
+
]
|
|
1598
|
+
}
|
|
1599
|
+
]
|
|
1600
|
+
}
|
|
1601
|
+
]
|
|
1602
|
+
}
|
|
1603
|
+
}
|
|
1604
|
+
],
|
|
1605
|
+
"anyOf": [
|
|
1606
|
+
{
|
|
1607
|
+
"required": [
|
|
1608
|
+
"href"
|
|
1609
|
+
]
|
|
1610
|
+
},
|
|
1611
|
+
{
|
|
1612
|
+
"required": [
|
|
1613
|
+
"tabs"
|
|
1614
|
+
]
|
|
1615
|
+
},
|
|
1616
|
+
{
|
|
1617
|
+
"required": [
|
|
1618
|
+
"dropdowns"
|
|
1619
|
+
]
|
|
1620
|
+
},
|
|
1621
|
+
{
|
|
1622
|
+
"required": [
|
|
1623
|
+
"groups"
|
|
1624
|
+
]
|
|
1625
|
+
},
|
|
1626
|
+
{
|
|
1627
|
+
"required": [
|
|
1628
|
+
"pages"
|
|
1629
|
+
]
|
|
1630
|
+
},
|
|
1631
|
+
{
|
|
1632
|
+
"required": [
|
|
1633
|
+
"menu"
|
|
1634
|
+
]
|
|
1635
|
+
},
|
|
1636
|
+
{
|
|
1637
|
+
"required": [
|
|
1638
|
+
"anchors"
|
|
1639
|
+
]
|
|
1640
|
+
},
|
|
1641
|
+
{
|
|
1642
|
+
"required": [
|
|
1643
|
+
"openapi"
|
|
1644
|
+
]
|
|
1645
|
+
},
|
|
1646
|
+
{
|
|
1647
|
+
"required": [
|
|
1648
|
+
"asyncapi"
|
|
1649
|
+
]
|
|
1650
|
+
}
|
|
1651
|
+
]
|
|
1652
|
+
},
|
|
1653
|
+
"versionNav": {
|
|
1654
|
+
"type": "object",
|
|
1655
|
+
"description": "Navigation definition for a specific docs version.",
|
|
1656
|
+
"required": [
|
|
1657
|
+
"version"
|
|
1658
|
+
],
|
|
1659
|
+
"properties": {
|
|
1660
|
+
"version": {
|
|
1661
|
+
"type": "string",
|
|
1662
|
+
"description": "Version label (used for route prefix derivation)."
|
|
1663
|
+
},
|
|
1664
|
+
"default": {
|
|
1665
|
+
"type": "boolean",
|
|
1666
|
+
"description": "Whether this is the default version.",
|
|
1667
|
+
"default": false
|
|
1668
|
+
},
|
|
1669
|
+
"hidden": {
|
|
1670
|
+
"type": "boolean",
|
|
1671
|
+
"description": "Whether this version is hidden from navigation. Defaults to false.",
|
|
1672
|
+
"default": false
|
|
1673
|
+
},
|
|
1674
|
+
"href": {
|
|
1675
|
+
"$ref": "#/definitions/href"
|
|
1676
|
+
},
|
|
1677
|
+
"openapi": {
|
|
1678
|
+
"$ref": "#/definitions/openapiSource",
|
|
1679
|
+
"description": "Default OpenAPI source inherited by tabs/groups/pages in this version."
|
|
1680
|
+
},
|
|
1681
|
+
"tabs": {
|
|
1682
|
+
"type": "array",
|
|
1683
|
+
"description": "Tabs for this version.",
|
|
1684
|
+
"items": {
|
|
1685
|
+
"$ref": "#/definitions/tab"
|
|
1686
|
+
}
|
|
1687
|
+
},
|
|
1688
|
+
"dropdowns": {
|
|
1689
|
+
"type": "array",
|
|
1690
|
+
"description": "Dropdowns for this version.",
|
|
1691
|
+
"items": {
|
|
1692
|
+
"$ref": "#/definitions/dropdown"
|
|
1693
|
+
}
|
|
1694
|
+
},
|
|
1695
|
+
"groups": {
|
|
1696
|
+
"type": "array",
|
|
1697
|
+
"description": "Groups for this version.",
|
|
1698
|
+
"items": {
|
|
1699
|
+
"$ref": "#/definitions/group"
|
|
1700
|
+
}
|
|
1701
|
+
},
|
|
1702
|
+
"pages": {
|
|
1703
|
+
"type": "array",
|
|
1704
|
+
"description": "Pages for this version.",
|
|
1705
|
+
"items": {
|
|
1706
|
+
"oneOf": [
|
|
1707
|
+
{
|
|
1708
|
+
"$ref": "#/definitions/page"
|
|
1709
|
+
},
|
|
1710
|
+
{
|
|
1711
|
+
"$ref": "#/definitions/separator"
|
|
1712
|
+
},
|
|
1713
|
+
{
|
|
1714
|
+
"$ref": "#/definitions/link"
|
|
1715
|
+
}
|
|
1716
|
+
]
|
|
1717
|
+
}
|
|
1718
|
+
},
|
|
1719
|
+
"menu": {
|
|
1720
|
+
"type": "array",
|
|
1721
|
+
"description": "Menu items for this version.",
|
|
1722
|
+
"items": {
|
|
1723
|
+
"$ref": "#/definitions/menuItem"
|
|
1724
|
+
}
|
|
1725
|
+
},
|
|
1726
|
+
"anchors": {
|
|
1727
|
+
"type": "array",
|
|
1728
|
+
"description": "Anchors for this version.",
|
|
1729
|
+
"items": {
|
|
1730
|
+
"$ref": "#/definitions/anchor"
|
|
1731
|
+
}
|
|
1732
|
+
},
|
|
1733
|
+
"asyncapi": {
|
|
1734
|
+
"$ref": "#/definitions/openapiSource",
|
|
1735
|
+
"description": "Default AsyncAPI source inherited by tabs/groups/pages in this version."
|
|
1736
|
+
}
|
|
1737
|
+
},
|
|
1738
|
+
"allOf": [
|
|
1739
|
+
{
|
|
1740
|
+
"not": {
|
|
1741
|
+
"allOf": [
|
|
1742
|
+
{
|
|
1743
|
+
"required": [
|
|
1744
|
+
"menu"
|
|
1745
|
+
]
|
|
1746
|
+
},
|
|
1747
|
+
{
|
|
1748
|
+
"anyOf": [
|
|
1749
|
+
{
|
|
1750
|
+
"required": [
|
|
1751
|
+
"tabs"
|
|
1752
|
+
]
|
|
1753
|
+
},
|
|
1754
|
+
{
|
|
1755
|
+
"required": [
|
|
1756
|
+
"dropdowns"
|
|
1757
|
+
]
|
|
1758
|
+
},
|
|
1759
|
+
{
|
|
1760
|
+
"required": [
|
|
1761
|
+
"groups"
|
|
1762
|
+
]
|
|
1763
|
+
},
|
|
1764
|
+
{
|
|
1765
|
+
"required": [
|
|
1766
|
+
"pages"
|
|
1767
|
+
]
|
|
1768
|
+
},
|
|
1769
|
+
{
|
|
1770
|
+
"required": [
|
|
1771
|
+
"anchors"
|
|
1772
|
+
]
|
|
1773
|
+
}
|
|
1774
|
+
]
|
|
1775
|
+
}
|
|
1776
|
+
]
|
|
1777
|
+
}
|
|
1778
|
+
}
|
|
1779
|
+
],
|
|
1780
|
+
"anyOf": [
|
|
1781
|
+
{
|
|
1782
|
+
"required": [
|
|
1783
|
+
"href"
|
|
1784
|
+
]
|
|
1785
|
+
},
|
|
1786
|
+
{
|
|
1787
|
+
"required": [
|
|
1788
|
+
"tabs"
|
|
1789
|
+
]
|
|
1790
|
+
},
|
|
1791
|
+
{
|
|
1792
|
+
"required": [
|
|
1793
|
+
"dropdowns"
|
|
1794
|
+
]
|
|
1795
|
+
},
|
|
1796
|
+
{
|
|
1797
|
+
"required": [
|
|
1798
|
+
"groups"
|
|
1799
|
+
]
|
|
1800
|
+
},
|
|
1801
|
+
{
|
|
1802
|
+
"required": [
|
|
1803
|
+
"pages"
|
|
1804
|
+
]
|
|
1805
|
+
},
|
|
1806
|
+
{
|
|
1807
|
+
"required": [
|
|
1808
|
+
"menu"
|
|
1809
|
+
]
|
|
1810
|
+
},
|
|
1811
|
+
{
|
|
1812
|
+
"required": [
|
|
1813
|
+
"anchors"
|
|
1814
|
+
]
|
|
1815
|
+
},
|
|
1816
|
+
{
|
|
1817
|
+
"required": [
|
|
1818
|
+
"openapi"
|
|
1819
|
+
]
|
|
1820
|
+
},
|
|
1821
|
+
{
|
|
1822
|
+
"required": [
|
|
1823
|
+
"asyncapi"
|
|
1824
|
+
]
|
|
1825
|
+
}
|
|
1826
|
+
],
|
|
1827
|
+
"additionalProperties": false
|
|
1828
|
+
},
|
|
1829
|
+
"globalTab": {
|
|
1830
|
+
"type": "object",
|
|
1831
|
+
"description": "Global external tab shown in the navbar across all pages.",
|
|
1832
|
+
"required": [
|
|
1833
|
+
"tab",
|
|
1834
|
+
"href"
|
|
1835
|
+
],
|
|
1836
|
+
"properties": {
|
|
1837
|
+
"tab": {
|
|
1838
|
+
"type": "string",
|
|
1839
|
+
"description": "Display name for the global tab."
|
|
1840
|
+
},
|
|
1841
|
+
"href": {
|
|
1842
|
+
"$ref": "#/definitions/href"
|
|
1843
|
+
},
|
|
1844
|
+
"icon": {
|
|
1845
|
+
"type": "string",
|
|
1846
|
+
"description": "Icon identifier for the global tab."
|
|
1847
|
+
},
|
|
1848
|
+
"iconType": {
|
|
1849
|
+
"type": "string",
|
|
1850
|
+
"description": "Icon style hint (primarily for Font Awesome)."
|
|
1851
|
+
}
|
|
1852
|
+
},
|
|
1853
|
+
"additionalProperties": false
|
|
1854
|
+
},
|
|
1855
|
+
"languageNav": {
|
|
1856
|
+
"type": "object",
|
|
1857
|
+
"description": "Per-language navigation entry. Defines the full tab/group/page structure for one language.",
|
|
1858
|
+
"required": [
|
|
1859
|
+
"language"
|
|
1860
|
+
],
|
|
1861
|
+
"properties": {
|
|
1862
|
+
"language": {
|
|
1863
|
+
"type": "string",
|
|
1864
|
+
"description": "BCP 47 language code (e.g. en, es, ja)."
|
|
1865
|
+
},
|
|
1866
|
+
"default": {
|
|
1867
|
+
"type": "boolean",
|
|
1868
|
+
"description": "Whether this is the default language.",
|
|
1869
|
+
"default": false
|
|
1870
|
+
},
|
|
1871
|
+
"hidden": {
|
|
1872
|
+
"type": "boolean",
|
|
1873
|
+
"description": "Whether this language is hidden from navigation. Defaults to false.",
|
|
1874
|
+
"default": false
|
|
1875
|
+
},
|
|
1876
|
+
"href": {
|
|
1877
|
+
"$ref": "#/definitions/href"
|
|
1878
|
+
},
|
|
1879
|
+
"openapi": {
|
|
1880
|
+
"$ref": "#/definitions/openapiSource",
|
|
1881
|
+
"description": "Default OpenAPI source inherited by tabs/groups/pages in this language entry."
|
|
1882
|
+
},
|
|
1883
|
+
"tabs": {
|
|
1884
|
+
"type": "array",
|
|
1885
|
+
"description": "Navigation tabs for this language.",
|
|
1886
|
+
"items": {
|
|
1887
|
+
"$ref": "#/definitions/tab"
|
|
1888
|
+
}
|
|
1889
|
+
},
|
|
1890
|
+
"dropdowns": {
|
|
1891
|
+
"type": "array",
|
|
1892
|
+
"description": "Dropdowns for this language.",
|
|
1893
|
+
"items": {
|
|
1894
|
+
"$ref": "#/definitions/dropdown"
|
|
1895
|
+
}
|
|
1896
|
+
},
|
|
1897
|
+
"groups": {
|
|
1898
|
+
"type": "array",
|
|
1899
|
+
"description": "Groups for this language.",
|
|
1900
|
+
"items": {
|
|
1901
|
+
"$ref": "#/definitions/group"
|
|
1902
|
+
}
|
|
1903
|
+
},
|
|
1904
|
+
"pages": {
|
|
1905
|
+
"type": "array",
|
|
1906
|
+
"description": "Pages for this language.",
|
|
1907
|
+
"items": {
|
|
1908
|
+
"oneOf": [
|
|
1909
|
+
{
|
|
1910
|
+
"$ref": "#/definitions/page"
|
|
1911
|
+
},
|
|
1912
|
+
{
|
|
1913
|
+
"$ref": "#/definitions/separator"
|
|
1914
|
+
},
|
|
1915
|
+
{
|
|
1916
|
+
"$ref": "#/definitions/link"
|
|
1917
|
+
}
|
|
1918
|
+
]
|
|
1919
|
+
}
|
|
1920
|
+
},
|
|
1921
|
+
"menu": {
|
|
1922
|
+
"type": "array",
|
|
1923
|
+
"description": "Menu items for this language.",
|
|
1924
|
+
"items": {
|
|
1925
|
+
"$ref": "#/definitions/menuItem"
|
|
1926
|
+
}
|
|
1927
|
+
},
|
|
1928
|
+
"anchors": {
|
|
1929
|
+
"type": "array",
|
|
1930
|
+
"description": "Anchors for this language.",
|
|
1931
|
+
"items": {
|
|
1932
|
+
"$ref": "#/definitions/anchor"
|
|
1933
|
+
}
|
|
1934
|
+
},
|
|
1935
|
+
"asyncapi": {
|
|
1936
|
+
"$ref": "#/definitions/openapiSource",
|
|
1937
|
+
"description": "Default AsyncAPI source inherited by tabs/groups/pages in this language entry."
|
|
1938
|
+
}
|
|
1939
|
+
},
|
|
1940
|
+
"allOf": [
|
|
1941
|
+
{
|
|
1942
|
+
"not": {
|
|
1943
|
+
"allOf": [
|
|
1944
|
+
{
|
|
1945
|
+
"required": [
|
|
1946
|
+
"menu"
|
|
1947
|
+
]
|
|
1948
|
+
},
|
|
1949
|
+
{
|
|
1950
|
+
"anyOf": [
|
|
1951
|
+
{
|
|
1952
|
+
"required": [
|
|
1953
|
+
"tabs"
|
|
1954
|
+
]
|
|
1955
|
+
},
|
|
1956
|
+
{
|
|
1957
|
+
"required": [
|
|
1958
|
+
"dropdowns"
|
|
1959
|
+
]
|
|
1960
|
+
},
|
|
1961
|
+
{
|
|
1962
|
+
"required": [
|
|
1963
|
+
"groups"
|
|
1964
|
+
]
|
|
1965
|
+
},
|
|
1966
|
+
{
|
|
1967
|
+
"required": [
|
|
1968
|
+
"pages"
|
|
1969
|
+
]
|
|
1970
|
+
},
|
|
1971
|
+
{
|
|
1972
|
+
"required": [
|
|
1973
|
+
"anchors"
|
|
1974
|
+
]
|
|
1975
|
+
}
|
|
1976
|
+
]
|
|
1977
|
+
}
|
|
1978
|
+
]
|
|
1979
|
+
}
|
|
1980
|
+
}
|
|
1981
|
+
],
|
|
1982
|
+
"anyOf": [
|
|
1983
|
+
{
|
|
1984
|
+
"required": [
|
|
1985
|
+
"href"
|
|
1986
|
+
]
|
|
1987
|
+
},
|
|
1988
|
+
{
|
|
1989
|
+
"required": [
|
|
1990
|
+
"tabs"
|
|
1991
|
+
]
|
|
1992
|
+
},
|
|
1993
|
+
{
|
|
1994
|
+
"required": [
|
|
1995
|
+
"dropdowns"
|
|
1996
|
+
]
|
|
1997
|
+
},
|
|
1998
|
+
{
|
|
1999
|
+
"required": [
|
|
2000
|
+
"groups"
|
|
2001
|
+
]
|
|
2002
|
+
},
|
|
2003
|
+
{
|
|
2004
|
+
"required": [
|
|
2005
|
+
"pages"
|
|
2006
|
+
]
|
|
2007
|
+
},
|
|
2008
|
+
{
|
|
2009
|
+
"required": [
|
|
2010
|
+
"menu"
|
|
2011
|
+
]
|
|
2012
|
+
},
|
|
2013
|
+
{
|
|
2014
|
+
"required": [
|
|
2015
|
+
"anchors"
|
|
2016
|
+
]
|
|
2017
|
+
},
|
|
2018
|
+
{
|
|
2019
|
+
"required": [
|
|
2020
|
+
"openapi"
|
|
2021
|
+
]
|
|
2022
|
+
},
|
|
2023
|
+
{
|
|
2024
|
+
"required": [
|
|
2025
|
+
"asyncapi"
|
|
2026
|
+
]
|
|
2027
|
+
}
|
|
2028
|
+
],
|
|
2029
|
+
"additionalProperties": false
|
|
196
2030
|
}
|
|
197
2031
|
}
|
|
198
2032
|
}
|