@writedocs/generator 0.5.0 → 0.7.0

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.
@@ -0,0 +1,2291 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "title": "writedocs.json",
4
+ "description": "Configuration of a writedocs site: its name, look, navigation and integrations.",
5
+ "type": "object",
6
+ "properties": {
7
+ "$schema": {
8
+ "type": "string",
9
+ "description": "The JSON Schema this file follows - for editor autocompletion and checks.",
10
+ "markdownDescription": "The JSON Schema this file follows - for editor autocompletion and checks."
11
+ },
12
+ "name": {
13
+ "type": "string",
14
+ "description": "Required. The site's name - shown in the browser tab (\"Page title · name\") and as the topbar text when there's no logo.",
15
+ "markdownDescription": "Required. The site's name - shown in the browser tab (\"Page title · name\") and as the topbar text when there's no logo."
16
+ },
17
+ "description": {
18
+ "type": "string",
19
+ "description": "Description used for pages that don't set their own `description` in frontmatter.",
20
+ "markdownDescription": "Description used for pages that don't set their own `description` in frontmatter."
21
+ },
22
+ "styles": {
23
+ "default": {
24
+ "colors": {
25
+ "primary": "#6366f1"
26
+ }
27
+ },
28
+ "type": "object",
29
+ "properties": {
30
+ "colors": {
31
+ "default": {
32
+ "primary": "#6366f1"
33
+ },
34
+ "type": "object",
35
+ "properties": {
36
+ "primary": {
37
+ "default": "#6366f1",
38
+ "type": "string",
39
+ "description": "Main color: links, buttons, the active page in the sidebar. Default \"#6366f1\".",
40
+ "markdownDescription": "Main color: links, buttons, the active page in the sidebar. Default \"#6366f1\"."
41
+ },
42
+ "text": {
43
+ "type": "string",
44
+ "description": "Body text color in light mode. Default \"#0f172a\".",
45
+ "markdownDescription": "Body text color in light mode. Default \"#0f172a\"."
46
+ },
47
+ "dark": {
48
+ "type": "object",
49
+ "properties": {
50
+ "primary": {
51
+ "type": "string",
52
+ "description": "Main color in dark mode. Pick a lighter one if `primary` is dark - links use it on a dark background.",
53
+ "markdownDescription": "Main color in dark mode. Pick a lighter one if `primary` is dark - links use it on a dark background."
54
+ },
55
+ "text": {
56
+ "type": "string",
57
+ "description": "Body text color in dark mode. Default \"#e2e8f0\".",
58
+ "markdownDescription": "Body text color in dark mode. Default \"#e2e8f0\"."
59
+ }
60
+ },
61
+ "description": "Dark-mode colors. Anything left out uses the light-mode value.",
62
+ "markdownDescription": "Dark-mode colors. Anything left out uses the light-mode value."
63
+ }
64
+ },
65
+ "description": "The site's colors.",
66
+ "markdownDescription": "The site's colors."
67
+ },
68
+ "logo": {
69
+ "anyOf": [
70
+ {
71
+ "type": "string"
72
+ },
73
+ {
74
+ "type": "object",
75
+ "properties": {
76
+ "light": {
77
+ "type": "string",
78
+ "description": "Logo image shown in light mode.",
79
+ "markdownDescription": "Logo image shown in light mode."
80
+ },
81
+ "dark": {
82
+ "type": "string",
83
+ "description": "Logo image shown in dark mode.",
84
+ "markdownDescription": "Logo image shown in dark mode."
85
+ },
86
+ "label": {
87
+ "type": "string",
88
+ "description": "Text shown next to the logo. No text is shown by default - a logo is usually already a wordmark.",
89
+ "markdownDescription": "Text shown next to the logo. No text is shown by default - a logo is usually already a wordmark."
90
+ }
91
+ },
92
+ "additionalProperties": false
93
+ }
94
+ ],
95
+ "description": "The logo: one image path for both color modes, or `{ light, dark, label }` with an image per mode.",
96
+ "markdownDescription": "The logo: one image path for both color modes, or `{ light, dark, label }` with an image per mode."
97
+ },
98
+ "favicon": {
99
+ "type": "string",
100
+ "description": "Favicon image path.",
101
+ "markdownDescription": "Favicon image path."
102
+ },
103
+ "fonts": {
104
+ "type": "object",
105
+ "properties": {
106
+ "family": {
107
+ "type": "string",
108
+ "description": "Font family for all text. A Google Fonts name loads automatically; add `source` for a font file instead.",
109
+ "markdownDescription": "Font family for all text. A Google Fonts name loads automatically; add `source` for a font file instead."
110
+ },
111
+ "weight": {
112
+ "type": "number",
113
+ "description": "Font weight for all text, like 400 or 700.",
114
+ "markdownDescription": "Font weight for all text, like 400 or 700."
115
+ },
116
+ "source": {
117
+ "type": "string",
118
+ "description": "Path or URL of a font file to load, instead of Google Fonts.",
119
+ "markdownDescription": "Path or URL of a font file to load, instead of Google Fonts."
120
+ },
121
+ "format": {
122
+ "type": "string",
123
+ "enum": [
124
+ "woff",
125
+ "woff2"
126
+ ],
127
+ "description": "Format of the `source` font file.",
128
+ "markdownDescription": "Format of the `source` font file."
129
+ },
130
+ "heading": {
131
+ "type": "object",
132
+ "properties": {
133
+ "family": {
134
+ "type": "string",
135
+ "description": "Font family for headings. A Google Fonts name loads automatically; add `source` for a font file instead.",
136
+ "markdownDescription": "Font family for headings. A Google Fonts name loads automatically; add `source` for a font file instead."
137
+ },
138
+ "weight": {
139
+ "type": "number",
140
+ "description": "Font weight for headings, like 400 or 700.",
141
+ "markdownDescription": "Font weight for headings, like 400 or 700."
142
+ },
143
+ "source": {
144
+ "type": "string",
145
+ "description": "Path or URL of a font file to load, instead of Google Fonts.",
146
+ "markdownDescription": "Path or URL of a font file to load, instead of Google Fonts."
147
+ },
148
+ "format": {
149
+ "type": "string",
150
+ "enum": [
151
+ "woff",
152
+ "woff2"
153
+ ],
154
+ "description": "Format of the `source` font file.",
155
+ "markdownDescription": "Format of the `source` font file."
156
+ }
157
+ },
158
+ "required": [
159
+ "family"
160
+ ],
161
+ "additionalProperties": false,
162
+ "description": "Font for headings only.",
163
+ "markdownDescription": "Font for headings only."
164
+ },
165
+ "body": {
166
+ "type": "object",
167
+ "properties": {
168
+ "family": {
169
+ "type": "string",
170
+ "description": "Font family for body text. A Google Fonts name loads automatically; add `source` for a font file instead.",
171
+ "markdownDescription": "Font family for body text. A Google Fonts name loads automatically; add `source` for a font file instead."
172
+ },
173
+ "weight": {
174
+ "type": "number",
175
+ "description": "Font weight for body text, like 400 or 700.",
176
+ "markdownDescription": "Font weight for body text, like 400 or 700."
177
+ },
178
+ "source": {
179
+ "type": "string",
180
+ "description": "Path or URL of a font file to load, instead of Google Fonts.",
181
+ "markdownDescription": "Path or URL of a font file to load, instead of Google Fonts."
182
+ },
183
+ "format": {
184
+ "type": "string",
185
+ "enum": [
186
+ "woff",
187
+ "woff2"
188
+ ],
189
+ "description": "Format of the `source` font file.",
190
+ "markdownDescription": "Format of the `source` font file."
191
+ }
192
+ },
193
+ "required": [
194
+ "family"
195
+ ],
196
+ "additionalProperties": false,
197
+ "description": "Font for body text only.",
198
+ "markdownDescription": "Font for body text only."
199
+ }
200
+ },
201
+ "required": [
202
+ "family"
203
+ ],
204
+ "additionalProperties": false,
205
+ "description": "Fonts. Default: Inter. `heading` and `body` override just that part; anything they leave out comes from the top-level fields.",
206
+ "markdownDescription": "Fonts. Default: Inter. `heading` and `body` override just that part; anything they leave out comes from the top-level fields."
207
+ },
208
+ "codeblocks": {
209
+ "type": "object",
210
+ "properties": {
211
+ "light": {
212
+ "type": "string",
213
+ "description": "Shiki theme name for light mode (https://shiki.style/themes). Default \"github-light\".",
214
+ "markdownDescription": "Shiki theme name for light mode (https://shiki.style/themes). Default \"github-light\"."
215
+ },
216
+ "dark": {
217
+ "type": "string",
218
+ "description": "Shiki theme name for dark mode. Default \"github-dark\".",
219
+ "markdownDescription": "Shiki theme name for dark mode. Default \"github-dark\"."
220
+ },
221
+ "langAlias": {
222
+ "type": "object",
223
+ "propertyNames": {
224
+ "type": "string"
225
+ },
226
+ "additionalProperties": {
227
+ "type": "string"
228
+ },
229
+ "description": "Extra language names for code blocks, mapped to a language Shiki knows - like { \"curl\": \"bash\" }.",
230
+ "markdownDescription": "Extra language names for code blocks, mapped to a language Shiki knows - like { \"curl\": \"bash\" }."
231
+ }
232
+ },
233
+ "additionalProperties": false,
234
+ "description": "Syntax-highlighting themes for code blocks and the API playground.",
235
+ "markdownDescription": "Syntax-highlighting themes for code blocks and the API playground."
236
+ },
237
+ "navbar": {
238
+ "type": "object",
239
+ "properties": {
240
+ "light": {
241
+ "anyOf": [
242
+ {
243
+ "type": "string"
244
+ },
245
+ {
246
+ "type": "object",
247
+ "properties": {
248
+ "background": {
249
+ "type": "string",
250
+ "description": "Topbar background color in light mode.",
251
+ "markdownDescription": "Topbar background color in light mode."
252
+ },
253
+ "accent": {
254
+ "type": "string",
255
+ "description": "Color of the active tab and hover states in the topbar, in place of `styles.colors.primary`.",
256
+ "markdownDescription": "Color of the active tab and hover states in the topbar, in place of `styles.colors.primary`."
257
+ }
258
+ },
259
+ "required": [
260
+ "background"
261
+ ],
262
+ "additionalProperties": false
263
+ }
264
+ ],
265
+ "description": "Topbar in light mode: a background color, or `{ background, accent }`.",
266
+ "markdownDescription": "Topbar in light mode: a background color, or `{ background, accent }`."
267
+ },
268
+ "dark": {
269
+ "anyOf": [
270
+ {
271
+ "type": "string"
272
+ },
273
+ {
274
+ "type": "object",
275
+ "properties": {
276
+ "background": {
277
+ "type": "string",
278
+ "description": "Topbar background color in dark mode.",
279
+ "markdownDescription": "Topbar background color in dark mode."
280
+ },
281
+ "accent": {
282
+ "type": "string",
283
+ "description": "Color of the active tab and hover states in the topbar, in dark mode.",
284
+ "markdownDescription": "Color of the active tab and hover states in the topbar, in dark mode."
285
+ }
286
+ },
287
+ "required": [
288
+ "background"
289
+ ],
290
+ "additionalProperties": false
291
+ }
292
+ ],
293
+ "description": "Topbar in dark mode: a background color, or `{ background, accent }`.",
294
+ "markdownDescription": "Topbar in dark mode: a background color, or `{ background, accent }`."
295
+ }
296
+ },
297
+ "additionalProperties": false,
298
+ "description": "The topbar's own background. Without it, the topbar matches the page background. Its text turns black or white automatically.",
299
+ "markdownDescription": "The topbar's own background. Without it, the topbar matches the page background. Its text turns black or white automatically."
300
+ },
301
+ "background": {
302
+ "type": "object",
303
+ "properties": {
304
+ "colors": {
305
+ "type": "object",
306
+ "properties": {
307
+ "light": {
308
+ "type": "string",
309
+ "description": "Background color in light mode. Default \"#ffffff\".",
310
+ "markdownDescription": "Background color in light mode. Default \"#ffffff\"."
311
+ },
312
+ "dark": {
313
+ "type": "string",
314
+ "description": "Background color in dark mode. Default \"#0b1120\".",
315
+ "markdownDescription": "Background color in dark mode. Default \"#0b1120\"."
316
+ }
317
+ },
318
+ "additionalProperties": false,
319
+ "description": "Background colors.",
320
+ "markdownDescription": "Background colors."
321
+ },
322
+ "images": {
323
+ "type": "object",
324
+ "properties": {
325
+ "light": {
326
+ "type": "string",
327
+ "description": "Background image in light mode.",
328
+ "markdownDescription": "Background image in light mode."
329
+ },
330
+ "dark": {
331
+ "type": "string",
332
+ "description": "Background image in dark mode.",
333
+ "markdownDescription": "Background image in dark mode."
334
+ }
335
+ },
336
+ "additionalProperties": false,
337
+ "description": "Background images, shown behind the content and sidebar.",
338
+ "markdownDescription": "Background images, shown behind the content and sidebar."
339
+ }
340
+ },
341
+ "additionalProperties": false,
342
+ "description": "Background color of the site, and an optional background image.",
343
+ "markdownDescription": "Background color of the site, and an optional background image."
344
+ }
345
+ },
346
+ "description": "Colors, logo, favicon, fonts, code block themes, navbar and background.",
347
+ "markdownDescription": "Colors, logo, favicon, fonts, code block themes, navbar and background."
348
+ },
349
+ "navigation": {
350
+ "anyOf": [
351
+ {
352
+ "type": "array",
353
+ "items": {
354
+ "$ref": "#/definitions/NavigationItem"
355
+ }
356
+ },
357
+ {
358
+ "type": "object",
359
+ "properties": {
360
+ "global": {
361
+ "type": "object",
362
+ "properties": {
363
+ "dropdowns": {
364
+ "minItems": 1,
365
+ "type": "array",
366
+ "items": {
367
+ "$ref": "#/definitions/Dropdown"
368
+ },
369
+ "description": "Dropdowns shown on every page.",
370
+ "markdownDescription": "Dropdowns shown on every page."
371
+ }
372
+ },
373
+ "required": [
374
+ "dropdowns"
375
+ ],
376
+ "description": "Dropdowns shown on every page, whatever section is open.",
377
+ "markdownDescription": "Dropdowns shown on every page, whatever section is open."
378
+ },
379
+ "tabs": {
380
+ "minItems": 1,
381
+ "type": "array",
382
+ "items": {
383
+ "$ref": "#/definitions/Tab"
384
+ },
385
+ "description": "Tabs in the topbar, each with its own sidebar.",
386
+ "markdownDescription": "Tabs in the topbar, each with its own sidebar."
387
+ }
388
+ },
389
+ "required": [
390
+ "tabs"
391
+ ],
392
+ "additionalProperties": false
393
+ },
394
+ {
395
+ "type": "object",
396
+ "properties": {
397
+ "global": {
398
+ "type": "object",
399
+ "properties": {
400
+ "dropdowns": {
401
+ "minItems": 1,
402
+ "type": "array",
403
+ "items": {
404
+ "$ref": "#/definitions/Dropdown"
405
+ },
406
+ "description": "Dropdowns shown on every page.",
407
+ "markdownDescription": "Dropdowns shown on every page."
408
+ }
409
+ },
410
+ "required": [
411
+ "dropdowns"
412
+ ],
413
+ "description": "Dropdowns shown on every page, whatever section is open.",
414
+ "markdownDescription": "Dropdowns shown on every page, whatever section is open."
415
+ },
416
+ "versions": {
417
+ "minItems": 1,
418
+ "type": "array",
419
+ "items": {
420
+ "$ref": "#/definitions/Version"
421
+ },
422
+ "description": "Versions of the docs, with a version picker.",
423
+ "markdownDescription": "Versions of the docs, with a version picker."
424
+ }
425
+ },
426
+ "required": [
427
+ "versions"
428
+ ],
429
+ "additionalProperties": false
430
+ },
431
+ {
432
+ "type": "object",
433
+ "properties": {
434
+ "global": {
435
+ "type": "object",
436
+ "properties": {
437
+ "dropdowns": {
438
+ "minItems": 1,
439
+ "type": "array",
440
+ "items": {
441
+ "$ref": "#/definitions/Dropdown"
442
+ },
443
+ "description": "Dropdowns shown on every page.",
444
+ "markdownDescription": "Dropdowns shown on every page."
445
+ }
446
+ },
447
+ "required": [
448
+ "dropdowns"
449
+ ],
450
+ "description": "Dropdowns shown on every page, whatever section is open.",
451
+ "markdownDescription": "Dropdowns shown on every page, whatever section is open."
452
+ },
453
+ "languages": {
454
+ "minItems": 1,
455
+ "type": "array",
456
+ "items": {
457
+ "$ref": "#/definitions/Language"
458
+ },
459
+ "description": "Languages of the docs, with a language picker.",
460
+ "markdownDescription": "Languages of the docs, with a language picker."
461
+ }
462
+ },
463
+ "required": [
464
+ "languages"
465
+ ],
466
+ "additionalProperties": false
467
+ },
468
+ {
469
+ "type": "object",
470
+ "properties": {
471
+ "global": {
472
+ "type": "object",
473
+ "properties": {
474
+ "dropdowns": {
475
+ "minItems": 1,
476
+ "type": "array",
477
+ "items": {
478
+ "$ref": "#/definitions/Dropdown"
479
+ },
480
+ "description": "Dropdowns shown on every page.",
481
+ "markdownDescription": "Dropdowns shown on every page."
482
+ }
483
+ },
484
+ "required": [
485
+ "dropdowns"
486
+ ],
487
+ "description": "Dropdowns shown on every page, whatever section is open.",
488
+ "markdownDescription": "Dropdowns shown on every page, whatever section is open."
489
+ },
490
+ "dropdowns": {
491
+ "minItems": 1,
492
+ "type": "array",
493
+ "items": {
494
+ "$ref": "#/definitions/Dropdown"
495
+ },
496
+ "description": "Sections chosen from a dropdown menu.",
497
+ "markdownDescription": "Sections chosen from a dropdown menu."
498
+ }
499
+ },
500
+ "required": [
501
+ "dropdowns"
502
+ ],
503
+ "additionalProperties": false
504
+ },
505
+ {
506
+ "type": "object",
507
+ "properties": {
508
+ "global": {
509
+ "type": "object",
510
+ "properties": {
511
+ "dropdowns": {
512
+ "minItems": 1,
513
+ "type": "array",
514
+ "items": {
515
+ "$ref": "#/definitions/Dropdown"
516
+ },
517
+ "description": "Dropdowns shown on every page.",
518
+ "markdownDescription": "Dropdowns shown on every page."
519
+ }
520
+ },
521
+ "required": [
522
+ "dropdowns"
523
+ ],
524
+ "description": "Dropdowns shown on every page, whatever section is open.",
525
+ "markdownDescription": "Dropdowns shown on every page, whatever section is open."
526
+ },
527
+ "products": {
528
+ "minItems": 1,
529
+ "type": "array",
530
+ "items": {
531
+ "$ref": "#/definitions/Product"
532
+ },
533
+ "description": "Products, with a product picker.",
534
+ "markdownDescription": "Products, with a product picker."
535
+ }
536
+ },
537
+ "required": [
538
+ "products"
539
+ ],
540
+ "additionalProperties": false
541
+ }
542
+ ],
543
+ "description": "Required. The site's structure: a list of pages and groups, or an object with exactly one of `tabs`, `versions`, `languages`, `dropdowns` or `products`. Those can nest inside each other.",
544
+ "markdownDescription": "Required. The site's structure: a list of pages and groups, or an object with exactly one of `tabs`, `versions`, `languages`, `dropdowns` or `products`. Those can nest inside each other."
545
+ },
546
+ "socials": {
547
+ "default": {},
548
+ "type": "object",
549
+ "propertyNames": {
550
+ "type": "string"
551
+ },
552
+ "additionalProperties": {
553
+ "type": "string"
554
+ },
555
+ "description": "Icon links in the footer: platform -> URL, like { \"github\": \"https://github.com/acme\" }. The key is also the icon.",
556
+ "markdownDescription": "Icon links in the footer: platform -> URL, like { \"github\": \"https://github.com/acme\" }. The key is also the icon."
557
+ },
558
+ "topbar": {
559
+ "default": {
560
+ "links": []
561
+ },
562
+ "type": "object",
563
+ "properties": {
564
+ "links": {
565
+ "default": [],
566
+ "type": "array",
567
+ "items": {
568
+ "type": "object",
569
+ "properties": {
570
+ "label": {
571
+ "type": "string",
572
+ "description": "Link text. A link needs a label, an icon, or both.",
573
+ "markdownDescription": "Link text. A link needs a label, an icon, or both."
574
+ },
575
+ "href": {
576
+ "type": "string",
577
+ "description": "Where the link goes - a site path like \"/docs/intro/\" or a full URL.",
578
+ "markdownDescription": "Where the link goes - a site path like \"/docs/intro/\" or a full URL."
579
+ },
580
+ "icon": {
581
+ "type": "string",
582
+ "description": "Icon shown with the link: a Lucide name, \"collection:name\", an emoji, or an image path.",
583
+ "markdownDescription": "Icon shown with the link: a Lucide name, \"collection:name\", an emoji, or an image path."
584
+ }
585
+ },
586
+ "required": [
587
+ "href"
588
+ ],
589
+ "additionalProperties": false
590
+ },
591
+ "description": "Links at the right of the topbar.",
592
+ "markdownDescription": "Links at the right of the topbar."
593
+ }
594
+ },
595
+ "description": "The topbar.",
596
+ "markdownDescription": "The topbar."
597
+ },
598
+ "footer": {
599
+ "default": {
600
+ "columns": []
601
+ },
602
+ "type": "object",
603
+ "properties": {
604
+ "columns": {
605
+ "default": [],
606
+ "type": "array",
607
+ "items": {
608
+ "type": "object",
609
+ "properties": {
610
+ "title": {
611
+ "type": "string",
612
+ "description": "The column's heading. Optional.",
613
+ "markdownDescription": "The column's heading. Optional."
614
+ },
615
+ "links": {
616
+ "default": [],
617
+ "type": "array",
618
+ "items": {
619
+ "type": "object",
620
+ "properties": {
621
+ "label": {
622
+ "type": "string",
623
+ "description": "Link text. A link needs a label, an icon, or both.",
624
+ "markdownDescription": "Link text. A link needs a label, an icon, or both."
625
+ },
626
+ "href": {
627
+ "type": "string",
628
+ "description": "Where the link goes - a site path like \"/docs/intro/\" or a full URL.",
629
+ "markdownDescription": "Where the link goes - a site path like \"/docs/intro/\" or a full URL."
630
+ },
631
+ "icon": {
632
+ "type": "string",
633
+ "description": "Icon shown with the link: a Lucide name, \"collection:name\", an emoji, or an image path.",
634
+ "markdownDescription": "Icon shown with the link: a Lucide name, \"collection:name\", an emoji, or an image path."
635
+ }
636
+ },
637
+ "required": [
638
+ "href"
639
+ ],
640
+ "additionalProperties": false
641
+ },
642
+ "description": "The links in the column.",
643
+ "markdownDescription": "The links in the column."
644
+ }
645
+ },
646
+ "additionalProperties": false
647
+ },
648
+ "description": "Columns of links.",
649
+ "markdownDescription": "Columns of links."
650
+ },
651
+ "logo": {
652
+ "anyOf": [
653
+ {
654
+ "type": "string"
655
+ },
656
+ {
657
+ "type": "object",
658
+ "properties": {
659
+ "light": {
660
+ "type": "string",
661
+ "description": "Logo image shown in light mode.",
662
+ "markdownDescription": "Logo image shown in light mode."
663
+ },
664
+ "dark": {
665
+ "type": "string",
666
+ "description": "Logo image shown in dark mode.",
667
+ "markdownDescription": "Logo image shown in dark mode."
668
+ },
669
+ "label": {
670
+ "type": "string",
671
+ "description": "Text shown next to the logo. No text is shown by default - a logo is usually already a wordmark.",
672
+ "markdownDescription": "Text shown next to the logo. No text is shown by default - a logo is usually already a wordmark."
673
+ }
674
+ },
675
+ "additionalProperties": false
676
+ }
677
+ ],
678
+ "description": "The logo: one image path for both color modes, or `{ light, dark, label }` with an image per mode.",
679
+ "markdownDescription": "The logo: one image path for both color modes, or `{ light, dark, label }` with an image per mode."
680
+ }
681
+ },
682
+ "additionalProperties": false,
683
+ "description": "The footer: columns of links, and the `socials` icons.",
684
+ "markdownDescription": "The footer: columns of links, and the `socials` icons."
685
+ },
686
+ "api": {
687
+ "default": {
688
+ "proxy": true
689
+ },
690
+ "type": "object",
691
+ "properties": {
692
+ "proxy": {
693
+ "default": true,
694
+ "type": "boolean",
695
+ "description": "Send \"Try it\" requests through writedocs' proxy, for APIs that don't allow calls from other sites (CORS). Default true.",
696
+ "markdownDescription": "Send \"Try it\" requests through writedocs' proxy, for APIs that don't allow calls from other sites (CORS). Default true."
697
+ }
698
+ },
699
+ "additionalProperties": false,
700
+ "description": "The API playground.",
701
+ "markdownDescription": "The API playground."
702
+ },
703
+ "domain": {
704
+ "type": "string",
705
+ "description": "The site's address, like \"docs.example.com\". Turns on sitemap.xml and absolute URLs in link previews.",
706
+ "markdownDescription": "The site's address, like \"docs.example.com\". Turns on sitemap.xml and absolute URLs in link previews."
707
+ },
708
+ "seo": {
709
+ "default": {},
710
+ "type": "object",
711
+ "properties": {
712
+ "ogImage": {
713
+ "type": "string",
714
+ "description": "Image shown in link previews - a path or a full URL.",
715
+ "markdownDescription": "Image shown in link previews - a path or a full URL."
716
+ },
717
+ "ogType": {
718
+ "type": "string",
719
+ "description": "The og:type of pages. Default \"website\".",
720
+ "markdownDescription": "The og:type of pages. Default \"website\"."
721
+ },
722
+ "twitterCard": {
723
+ "type": "string",
724
+ "enum": [
725
+ "summary",
726
+ "summary_large_image"
727
+ ],
728
+ "description": "X/Twitter card style. Default \"summary_large_image\" with an `ogImage`, \"summary\" without.",
729
+ "markdownDescription": "X/Twitter card style. Default \"summary_large_image\" with an `ogImage`, \"summary\" without."
730
+ },
731
+ "keywords": {
732
+ "type": "array",
733
+ "items": {
734
+ "type": "string"
735
+ },
736
+ "description": "Keywords for the <meta name=\"keywords\"> tag.",
737
+ "markdownDescription": "Keywords for the <meta name=\"keywords\"> tag."
738
+ },
739
+ "noindex": {
740
+ "type": "boolean",
741
+ "description": "Ask search engines not to index pages, and leave them out of sitemap.xml.",
742
+ "markdownDescription": "Ask search engines not to index pages, and leave them out of sitemap.xml."
743
+ }
744
+ },
745
+ "additionalProperties": false,
746
+ "description": "Default metadata for every page. A page's own `seo` frontmatter overrides it field by field.",
747
+ "markdownDescription": "Default metadata for every page. A page's own `seo` frontmatter overrides it field by field."
748
+ },
749
+ "contextMenu": {
750
+ "type": "object",
751
+ "properties": {
752
+ "openIn": {
753
+ "default": [
754
+ "chatgpt",
755
+ "claude",
756
+ "perplexity"
757
+ ],
758
+ "type": "array",
759
+ "items": {
760
+ "type": "string",
761
+ "enum": [
762
+ "chatgpt",
763
+ "claude",
764
+ "perplexity"
765
+ ]
766
+ },
767
+ "description": "Which AI assistants the menu offers. Default: all three.",
768
+ "markdownDescription": "Which AI assistants the menu offers. Default: all three."
769
+ }
770
+ },
771
+ "additionalProperties": false,
772
+ "description": "Adds a \"Copy page\" menu to pages - copy as Markdown, or open the page in an AI assistant - and a Markdown copy of each page at its address + \".md\".",
773
+ "markdownDescription": "Adds a \"Copy page\" menu to pages - copy as Markdown, or open the page in an AI assistant - and a Markdown copy of each page at its address + \".md\"."
774
+ },
775
+ "redirects": {
776
+ "default": [],
777
+ "type": "array",
778
+ "items": {
779
+ "type": "object",
780
+ "properties": {
781
+ "source": {
782
+ "type": "string",
783
+ "description": "The old path, like \"/old-page\".",
784
+ "markdownDescription": "The old path, like \"/old-page\"."
785
+ },
786
+ "destination": {
787
+ "type": "string",
788
+ "description": "Where to send it, like \"/docs/new-page/\".",
789
+ "markdownDescription": "Where to send it, like \"/docs/new-page/\"."
790
+ }
791
+ },
792
+ "required": [
793
+ "source",
794
+ "destination"
795
+ ],
796
+ "additionalProperties": false
797
+ },
798
+ "description": "Redirects from old addresses. Each matches one exact path.",
799
+ "markdownDescription": "Redirects from old addresses. Each matches one exact path."
800
+ },
801
+ "variables": {
802
+ "default": {},
803
+ "type": "object",
804
+ "propertyNames": {
805
+ "type": "string"
806
+ },
807
+ "additionalProperties": {
808
+ "type": "string"
809
+ },
810
+ "description": "Values pages can insert with [[name]], like { \"productName\": \"Acme\" }.",
811
+ "markdownDescription": "Values pages can insert with [[name]], like { \"productName\": \"Acme\" }."
812
+ },
813
+ "banner": {
814
+ "type": "object",
815
+ "properties": {
816
+ "content": {
817
+ "type": "string",
818
+ "description": "The banner's text. Markdown links work.",
819
+ "markdownDescription": "The banner's text. Markdown links work."
820
+ },
821
+ "dismissible": {
822
+ "default": false,
823
+ "type": "boolean",
824
+ "description": "Let readers close it. Default false.",
825
+ "markdownDescription": "Let readers close it. Default false."
826
+ },
827
+ "type": {
828
+ "default": "info",
829
+ "type": "string",
830
+ "enum": [
831
+ "info",
832
+ "warning",
833
+ "critical"
834
+ ],
835
+ "description": "Its color: \"info\", \"warning\" or \"critical\". Default \"info\".",
836
+ "markdownDescription": "Its color: \"info\", \"warning\" or \"critical\". Default \"info\"."
837
+ }
838
+ },
839
+ "required": [
840
+ "content"
841
+ ],
842
+ "additionalProperties": false,
843
+ "description": "A banner above the topbar on every page.",
844
+ "markdownDescription": "A banner above the topbar on every page."
845
+ },
846
+ "notFound": {
847
+ "default": {},
848
+ "type": "object",
849
+ "properties": {
850
+ "title": {
851
+ "type": "string",
852
+ "description": "The 404 page's title.",
853
+ "markdownDescription": "The 404 page's title."
854
+ },
855
+ "description": {
856
+ "type": "string",
857
+ "description": "Text under the title on the 404 page.",
858
+ "markdownDescription": "Text under the title on the 404 page."
859
+ }
860
+ },
861
+ "additionalProperties": false,
862
+ "description": "The 404 page.",
863
+ "markdownDescription": "The 404 page."
864
+ },
865
+ "scripts": {
866
+ "default": {
867
+ "head": [],
868
+ "body": []
869
+ },
870
+ "type": "object",
871
+ "properties": {
872
+ "head": {
873
+ "default": [],
874
+ "type": "array",
875
+ "items": {
876
+ "type": "object",
877
+ "properties": {
878
+ "src": {
879
+ "type": "string",
880
+ "description": "URL of the script to load. Use either `src` or `content`, not both.",
881
+ "markdownDescription": "URL of the script to load. Use either `src` or `content`, not both."
882
+ },
883
+ "content": {
884
+ "type": "string",
885
+ "description": "The script's code, inline. Use either `src` or `content`, not both.",
886
+ "markdownDescription": "The script's code, inline. Use either `src` or `content`, not both."
887
+ }
888
+ },
889
+ "additionalProperties": false
890
+ },
891
+ "description": "Scripts added at the end of <head>.",
892
+ "markdownDescription": "Scripts added at the end of <head>."
893
+ },
894
+ "body": {
895
+ "default": [],
896
+ "type": "array",
897
+ "items": {
898
+ "type": "object",
899
+ "properties": {
900
+ "src": {
901
+ "type": "string",
902
+ "description": "URL of the script to load. Use either `src` or `content`, not both.",
903
+ "markdownDescription": "URL of the script to load. Use either `src` or `content`, not both."
904
+ },
905
+ "content": {
906
+ "type": "string",
907
+ "description": "The script's code, inline. Use either `src` or `content`, not both.",
908
+ "markdownDescription": "The script's code, inline. Use either `src` or `content`, not both."
909
+ }
910
+ },
911
+ "additionalProperties": false
912
+ },
913
+ "description": "Scripts added at the end of <body>.",
914
+ "markdownDescription": "Scripts added at the end of <body>."
915
+ }
916
+ },
917
+ "additionalProperties": false,
918
+ "description": "Scripts added to every page - for tools `integrations` doesn't cover.",
919
+ "markdownDescription": "Scripts added to every page - for tools `integrations` doesn't cover."
920
+ },
921
+ "integrations": {
922
+ "default": {},
923
+ "type": "object",
924
+ "properties": {
925
+ "ga4": {
926
+ "type": "object",
927
+ "properties": {
928
+ "measurementId": {
929
+ "type": "string",
930
+ "description": "Measurement ID, like \"G-XXXXXXXXXX\".",
931
+ "markdownDescription": "Measurement ID, like \"G-XXXXXXXXXX\"."
932
+ }
933
+ },
934
+ "required": [
935
+ "measurementId"
936
+ ],
937
+ "additionalProperties": false,
938
+ "description": "Google Analytics 4.",
939
+ "markdownDescription": "Google Analytics 4."
940
+ },
941
+ "googleTagManager": {
942
+ "type": "object",
943
+ "properties": {
944
+ "containerId": {
945
+ "type": "string",
946
+ "description": "Container ID, like \"GTM-XXXXXXX\".",
947
+ "markdownDescription": "Container ID, like \"GTM-XXXXXXX\"."
948
+ }
949
+ },
950
+ "required": [
951
+ "containerId"
952
+ ],
953
+ "additionalProperties": false,
954
+ "description": "Google Tag Manager.",
955
+ "markdownDescription": "Google Tag Manager."
956
+ },
957
+ "plausible": {
958
+ "type": "object",
959
+ "properties": {
960
+ "domain": {
961
+ "type": "string",
962
+ "description": "The site's domain, as registered in Plausible.",
963
+ "markdownDescription": "The site's domain, as registered in Plausible."
964
+ },
965
+ "src": {
966
+ "default": "https://plausible.io/js/script.js",
967
+ "type": "string",
968
+ "description": "Script URL, for a self-hosted Plausible. Default \"https://plausible.io/js/script.js\".",
969
+ "markdownDescription": "Script URL, for a self-hosted Plausible. Default \"https://plausible.io/js/script.js\"."
970
+ }
971
+ },
972
+ "required": [
973
+ "domain"
974
+ ],
975
+ "additionalProperties": false,
976
+ "description": "Plausible Analytics.",
977
+ "markdownDescription": "Plausible Analytics."
978
+ },
979
+ "fathom": {
980
+ "type": "object",
981
+ "properties": {
982
+ "siteId": {
983
+ "type": "string",
984
+ "description": "Fathom's site ID, like \"ABCDEFGH\".",
985
+ "markdownDescription": "Fathom's site ID, like \"ABCDEFGH\"."
986
+ }
987
+ },
988
+ "required": [
989
+ "siteId"
990
+ ],
991
+ "additionalProperties": false,
992
+ "description": "Fathom Analytics.",
993
+ "markdownDescription": "Fathom Analytics."
994
+ },
995
+ "posthog": {
996
+ "type": "object",
997
+ "properties": {
998
+ "apiKey": {
999
+ "type": "string",
1000
+ "description": "Project API key, starting with \"phc_\".",
1001
+ "markdownDescription": "Project API key, starting with \"phc_\"."
1002
+ },
1003
+ "apiHost": {
1004
+ "default": "https://us.i.posthog.com",
1005
+ "type": "string",
1006
+ "description": "API host. Default \"https://us.i.posthog.com\" - use yours for EU cloud or self-hosting.",
1007
+ "markdownDescription": "API host. Default \"https://us.i.posthog.com\" - use yours for EU cloud or self-hosting."
1008
+ }
1009
+ },
1010
+ "required": [
1011
+ "apiKey"
1012
+ ],
1013
+ "additionalProperties": false,
1014
+ "description": "PostHog.",
1015
+ "markdownDescription": "PostHog."
1016
+ },
1017
+ "umami": {
1018
+ "type": "object",
1019
+ "properties": {
1020
+ "websiteId": {
1021
+ "type": "string",
1022
+ "description": "Umami's website ID.",
1023
+ "markdownDescription": "Umami's website ID."
1024
+ },
1025
+ "src": {
1026
+ "default": "https://cloud.umami.is/script.js",
1027
+ "type": "string",
1028
+ "description": "Script URL. Default \"https://cloud.umami.is/script.js\" - use yours when self-hosting.",
1029
+ "markdownDescription": "Script URL. Default \"https://cloud.umami.is/script.js\" - use yours when self-hosting."
1030
+ }
1031
+ },
1032
+ "required": [
1033
+ "websiteId"
1034
+ ],
1035
+ "additionalProperties": false,
1036
+ "description": "Umami Analytics.",
1037
+ "markdownDescription": "Umami Analytics."
1038
+ },
1039
+ "askAi": {
1040
+ "type": "object",
1041
+ "properties": {
1042
+ "id": {
1043
+ "type": "string",
1044
+ "description": "DocsBot's \"teamId/botId\". The WRITEDOCS_ASK_AI_ID environment variable overrides it.",
1045
+ "markdownDescription": "DocsBot's \"teamId/botId\". The WRITEDOCS_ASK_AI_ID environment variable overrides it."
1046
+ }
1047
+ },
1048
+ "required": [
1049
+ "id"
1050
+ ],
1051
+ "additionalProperties": false,
1052
+ "description": "AI chat over the docs, with DocsBot.",
1053
+ "markdownDescription": "AI chat over the docs, with DocsBot."
1054
+ }
1055
+ },
1056
+ "additionalProperties": false,
1057
+ "description": "Analytics and chat tools.",
1058
+ "markdownDescription": "Analytics and chat tools."
1059
+ }
1060
+ },
1061
+ "required": [
1062
+ "name",
1063
+ "navigation"
1064
+ ],
1065
+ "definitions": {
1066
+ "NavigationItem": {
1067
+ "anyOf": [
1068
+ {
1069
+ "type": "string"
1070
+ },
1071
+ {
1072
+ "anyOf": [
1073
+ {
1074
+ "type": "object",
1075
+ "properties": {
1076
+ "group": {
1077
+ "type": "string",
1078
+ "description": "The group's name in the sidebar.",
1079
+ "markdownDescription": "The group's name in the sidebar."
1080
+ },
1081
+ "page": {
1082
+ "type": "string",
1083
+ "description": "A page the group's name links to.",
1084
+ "markdownDescription": "A page the group's name links to."
1085
+ },
1086
+ "pages": {
1087
+ "type": "array",
1088
+ "items": {
1089
+ "$ref": "#/definitions/NavigationItem"
1090
+ },
1091
+ "description": "The pages and groups inside this group.",
1092
+ "markdownDescription": "The pages and groups inside this group."
1093
+ }
1094
+ },
1095
+ "required": [
1096
+ "group",
1097
+ "pages"
1098
+ ],
1099
+ "additionalProperties": false
1100
+ },
1101
+ {
1102
+ "type": "object",
1103
+ "properties": {
1104
+ "group": {
1105
+ "type": "string",
1106
+ "description": "The group's name in the sidebar.",
1107
+ "markdownDescription": "The group's name in the sidebar."
1108
+ },
1109
+ "openapi": {
1110
+ "type": "object",
1111
+ "properties": {
1112
+ "src": {
1113
+ "type": "string",
1114
+ "description": "Path of the OpenAPI spec file, relative to writedocs.json.",
1115
+ "markdownDescription": "Path of the OpenAPI spec file, relative to writedocs.json."
1116
+ },
1117
+ "path": {
1118
+ "type": "string",
1119
+ "description": "URL path the generated pages go under, like \"/api\". Each OpenAPI group needs its own.",
1120
+ "markdownDescription": "URL path the generated pages go under, like \"/api\". Each OpenAPI group needs its own."
1121
+ }
1122
+ },
1123
+ "required": [
1124
+ "src",
1125
+ "path"
1126
+ ],
1127
+ "additionalProperties": false,
1128
+ "description": "Generate this group's pages from an OpenAPI spec - a page per operation, grouped by tag.",
1129
+ "markdownDescription": "Generate this group's pages from an OpenAPI spec - a page per operation, grouped by tag."
1130
+ }
1131
+ },
1132
+ "required": [
1133
+ "group",
1134
+ "openapi"
1135
+ ],
1136
+ "additionalProperties": false
1137
+ }
1138
+ ]
1139
+ },
1140
+ {
1141
+ "type": "object",
1142
+ "properties": {
1143
+ "label": {
1144
+ "type": "string",
1145
+ "description": "Link text in the sidebar.",
1146
+ "markdownDescription": "Link text in the sidebar."
1147
+ },
1148
+ "href": {
1149
+ "type": "string",
1150
+ "description": "Where the link goes.",
1151
+ "markdownDescription": "Where the link goes."
1152
+ }
1153
+ },
1154
+ "required": [
1155
+ "label",
1156
+ "href"
1157
+ ],
1158
+ "additionalProperties": false
1159
+ }
1160
+ ],
1161
+ "description": "A page (its path from the project folder, without the extension), a group of pages, or a link.",
1162
+ "markdownDescription": "A page (its path from the project folder, without the extension), a group of pages, or a link."
1163
+ },
1164
+ "Dropdown": {
1165
+ "anyOf": [
1166
+ {
1167
+ "type": "object",
1168
+ "properties": {
1169
+ "dropdown": {
1170
+ "type": "string",
1171
+ "description": "The dropdown's name.",
1172
+ "markdownDescription": "The dropdown's name."
1173
+ },
1174
+ "icon": {
1175
+ "type": "string",
1176
+ "description": "Icon next to the name: a Lucide name, \"collection:name\", an emoji, or an image path.",
1177
+ "markdownDescription": "Icon next to the name: a Lucide name, \"collection:name\", an emoji, or an image path."
1178
+ },
1179
+ "pages": {
1180
+ "type": "array",
1181
+ "items": {
1182
+ "$ref": "#/definitions/NavigationItem"
1183
+ },
1184
+ "description": "The pages and groups in this section of the sidebar.",
1185
+ "markdownDescription": "The pages and groups in this section of the sidebar."
1186
+ }
1187
+ },
1188
+ "required": [
1189
+ "dropdown",
1190
+ "pages"
1191
+ ],
1192
+ "additionalProperties": false
1193
+ },
1194
+ {
1195
+ "type": "object",
1196
+ "properties": {
1197
+ "dropdown": {
1198
+ "type": "string",
1199
+ "description": "The dropdown's name.",
1200
+ "markdownDescription": "The dropdown's name."
1201
+ },
1202
+ "icon": {
1203
+ "type": "string",
1204
+ "description": "Icon next to the name: a Lucide name, \"collection:name\", an emoji, or an image path.",
1205
+ "markdownDescription": "Icon next to the name: a Lucide name, \"collection:name\", an emoji, or an image path."
1206
+ },
1207
+ "tabs": {
1208
+ "minItems": 1,
1209
+ "type": "array",
1210
+ "items": {
1211
+ "$ref": "#/definitions/Tab"
1212
+ },
1213
+ "description": "Tabs inside this one.",
1214
+ "markdownDescription": "Tabs inside this one."
1215
+ }
1216
+ },
1217
+ "required": [
1218
+ "dropdown",
1219
+ "tabs"
1220
+ ],
1221
+ "additionalProperties": false
1222
+ },
1223
+ {
1224
+ "type": "object",
1225
+ "properties": {
1226
+ "dropdown": {
1227
+ "type": "string",
1228
+ "description": "The dropdown's name.",
1229
+ "markdownDescription": "The dropdown's name."
1230
+ },
1231
+ "icon": {
1232
+ "type": "string",
1233
+ "description": "Icon next to the name: a Lucide name, \"collection:name\", an emoji, or an image path.",
1234
+ "markdownDescription": "Icon next to the name: a Lucide name, \"collection:name\", an emoji, or an image path."
1235
+ },
1236
+ "versions": {
1237
+ "minItems": 1,
1238
+ "type": "array",
1239
+ "items": {
1240
+ "$ref": "#/definitions/Version"
1241
+ },
1242
+ "description": "Versions inside this one - a version picker in the sidebar.",
1243
+ "markdownDescription": "Versions inside this one - a version picker in the sidebar."
1244
+ }
1245
+ },
1246
+ "required": [
1247
+ "dropdown",
1248
+ "versions"
1249
+ ],
1250
+ "additionalProperties": false
1251
+ },
1252
+ {
1253
+ "type": "object",
1254
+ "properties": {
1255
+ "dropdown": {
1256
+ "type": "string",
1257
+ "description": "The dropdown's name.",
1258
+ "markdownDescription": "The dropdown's name."
1259
+ },
1260
+ "icon": {
1261
+ "type": "string",
1262
+ "description": "Icon next to the name: a Lucide name, \"collection:name\", an emoji, or an image path.",
1263
+ "markdownDescription": "Icon next to the name: a Lucide name, \"collection:name\", an emoji, or an image path."
1264
+ },
1265
+ "languages": {
1266
+ "minItems": 1,
1267
+ "type": "array",
1268
+ "items": {
1269
+ "$ref": "#/definitions/Language"
1270
+ },
1271
+ "description": "Languages inside this one - a language picker.",
1272
+ "markdownDescription": "Languages inside this one - a language picker."
1273
+ }
1274
+ },
1275
+ "required": [
1276
+ "dropdown",
1277
+ "languages"
1278
+ ],
1279
+ "additionalProperties": false
1280
+ },
1281
+ {
1282
+ "type": "object",
1283
+ "properties": {
1284
+ "dropdown": {
1285
+ "type": "string",
1286
+ "description": "The dropdown's name.",
1287
+ "markdownDescription": "The dropdown's name."
1288
+ },
1289
+ "icon": {
1290
+ "type": "string",
1291
+ "description": "Icon next to the name: a Lucide name, \"collection:name\", an emoji, or an image path.",
1292
+ "markdownDescription": "Icon next to the name: a Lucide name, \"collection:name\", an emoji, or an image path."
1293
+ },
1294
+ "dropdowns": {
1295
+ "minItems": 1,
1296
+ "type": "array",
1297
+ "items": {
1298
+ "$ref": "#/definitions/Dropdown"
1299
+ },
1300
+ "description": "Dropdowns inside this one - a menu of sections in the sidebar.",
1301
+ "markdownDescription": "Dropdowns inside this one - a menu of sections in the sidebar."
1302
+ }
1303
+ },
1304
+ "required": [
1305
+ "dropdown",
1306
+ "dropdowns"
1307
+ ],
1308
+ "additionalProperties": false
1309
+ },
1310
+ {
1311
+ "type": "object",
1312
+ "properties": {
1313
+ "dropdown": {
1314
+ "type": "string",
1315
+ "description": "The dropdown's name.",
1316
+ "markdownDescription": "The dropdown's name."
1317
+ },
1318
+ "icon": {
1319
+ "type": "string",
1320
+ "description": "Icon next to the name: a Lucide name, \"collection:name\", an emoji, or an image path.",
1321
+ "markdownDescription": "Icon next to the name: a Lucide name, \"collection:name\", an emoji, or an image path."
1322
+ },
1323
+ "products": {
1324
+ "minItems": 1,
1325
+ "type": "array",
1326
+ "items": {
1327
+ "$ref": "#/definitions/Product"
1328
+ },
1329
+ "description": "Products inside this one - a product picker.",
1330
+ "markdownDescription": "Products inside this one - a product picker."
1331
+ }
1332
+ },
1333
+ "required": [
1334
+ "dropdown",
1335
+ "products"
1336
+ ],
1337
+ "additionalProperties": false
1338
+ },
1339
+ {
1340
+ "type": "object",
1341
+ "properties": {
1342
+ "dropdown": {
1343
+ "type": "string",
1344
+ "description": "The dropdown's name.",
1345
+ "markdownDescription": "The dropdown's name."
1346
+ },
1347
+ "icon": {
1348
+ "type": "string",
1349
+ "description": "Icon next to the name: a Lucide name, \"collection:name\", an emoji, or an image path.",
1350
+ "markdownDescription": "Icon next to the name: a Lucide name, \"collection:name\", an emoji, or an image path."
1351
+ },
1352
+ "href": {
1353
+ "type": "string",
1354
+ "description": "Makes this a link to another address instead of a section with pages of its own.",
1355
+ "markdownDescription": "Makes this a link to another address instead of a section with pages of its own."
1356
+ }
1357
+ },
1358
+ "required": [
1359
+ "dropdown",
1360
+ "href"
1361
+ ],
1362
+ "additionalProperties": false
1363
+ }
1364
+ ],
1365
+ "description": "A section chosen from a dropdown menu.",
1366
+ "markdownDescription": "A section chosen from a dropdown menu."
1367
+ },
1368
+ "Tab": {
1369
+ "anyOf": [
1370
+ {
1371
+ "type": "object",
1372
+ "properties": {
1373
+ "tab": {
1374
+ "type": "string",
1375
+ "description": "The tab's name, shown in the topbar.",
1376
+ "markdownDescription": "The tab's name, shown in the topbar."
1377
+ },
1378
+ "icon": {
1379
+ "type": "string",
1380
+ "description": "Icon next to the name: a Lucide name (\"book-open\"), \"collection:name\" (\"mdi:server\"), an emoji, or an image path.",
1381
+ "markdownDescription": "Icon next to the name: a Lucide name (\"book-open\"), \"collection:name\" (\"mdi:server\"), an emoji, or an image path."
1382
+ },
1383
+ "pages": {
1384
+ "type": "array",
1385
+ "items": {
1386
+ "$ref": "#/definitions/NavigationItem"
1387
+ },
1388
+ "description": "The pages and groups in this section of the sidebar.",
1389
+ "markdownDescription": "The pages and groups in this section of the sidebar."
1390
+ }
1391
+ },
1392
+ "required": [
1393
+ "tab",
1394
+ "pages"
1395
+ ],
1396
+ "additionalProperties": false
1397
+ },
1398
+ {
1399
+ "type": "object",
1400
+ "properties": {
1401
+ "tab": {
1402
+ "type": "string",
1403
+ "description": "The tab's name, shown in the topbar.",
1404
+ "markdownDescription": "The tab's name, shown in the topbar."
1405
+ },
1406
+ "icon": {
1407
+ "type": "string",
1408
+ "description": "Icon next to the name: a Lucide name (\"book-open\"), \"collection:name\" (\"mdi:server\"), an emoji, or an image path.",
1409
+ "markdownDescription": "Icon next to the name: a Lucide name (\"book-open\"), \"collection:name\" (\"mdi:server\"), an emoji, or an image path."
1410
+ },
1411
+ "tabs": {
1412
+ "minItems": 1,
1413
+ "type": "array",
1414
+ "items": {
1415
+ "$ref": "#/definitions/Tab"
1416
+ },
1417
+ "description": "Tabs inside this one.",
1418
+ "markdownDescription": "Tabs inside this one."
1419
+ }
1420
+ },
1421
+ "required": [
1422
+ "tab",
1423
+ "tabs"
1424
+ ],
1425
+ "additionalProperties": false
1426
+ },
1427
+ {
1428
+ "type": "object",
1429
+ "properties": {
1430
+ "tab": {
1431
+ "type": "string",
1432
+ "description": "The tab's name, shown in the topbar.",
1433
+ "markdownDescription": "The tab's name, shown in the topbar."
1434
+ },
1435
+ "icon": {
1436
+ "type": "string",
1437
+ "description": "Icon next to the name: a Lucide name (\"book-open\"), \"collection:name\" (\"mdi:server\"), an emoji, or an image path.",
1438
+ "markdownDescription": "Icon next to the name: a Lucide name (\"book-open\"), \"collection:name\" (\"mdi:server\"), an emoji, or an image path."
1439
+ },
1440
+ "versions": {
1441
+ "minItems": 1,
1442
+ "type": "array",
1443
+ "items": {
1444
+ "$ref": "#/definitions/Version"
1445
+ },
1446
+ "description": "Versions inside this one - a version picker in the sidebar.",
1447
+ "markdownDescription": "Versions inside this one - a version picker in the sidebar."
1448
+ }
1449
+ },
1450
+ "required": [
1451
+ "tab",
1452
+ "versions"
1453
+ ],
1454
+ "additionalProperties": false
1455
+ },
1456
+ {
1457
+ "type": "object",
1458
+ "properties": {
1459
+ "tab": {
1460
+ "type": "string",
1461
+ "description": "The tab's name, shown in the topbar.",
1462
+ "markdownDescription": "The tab's name, shown in the topbar."
1463
+ },
1464
+ "icon": {
1465
+ "type": "string",
1466
+ "description": "Icon next to the name: a Lucide name (\"book-open\"), \"collection:name\" (\"mdi:server\"), an emoji, or an image path.",
1467
+ "markdownDescription": "Icon next to the name: a Lucide name (\"book-open\"), \"collection:name\" (\"mdi:server\"), an emoji, or an image path."
1468
+ },
1469
+ "languages": {
1470
+ "minItems": 1,
1471
+ "type": "array",
1472
+ "items": {
1473
+ "$ref": "#/definitions/Language"
1474
+ },
1475
+ "description": "Languages inside this one - a language picker.",
1476
+ "markdownDescription": "Languages inside this one - a language picker."
1477
+ }
1478
+ },
1479
+ "required": [
1480
+ "tab",
1481
+ "languages"
1482
+ ],
1483
+ "additionalProperties": false
1484
+ },
1485
+ {
1486
+ "type": "object",
1487
+ "properties": {
1488
+ "tab": {
1489
+ "type": "string",
1490
+ "description": "The tab's name, shown in the topbar.",
1491
+ "markdownDescription": "The tab's name, shown in the topbar."
1492
+ },
1493
+ "icon": {
1494
+ "type": "string",
1495
+ "description": "Icon next to the name: a Lucide name (\"book-open\"), \"collection:name\" (\"mdi:server\"), an emoji, or an image path.",
1496
+ "markdownDescription": "Icon next to the name: a Lucide name (\"book-open\"), \"collection:name\" (\"mdi:server\"), an emoji, or an image path."
1497
+ },
1498
+ "dropdowns": {
1499
+ "minItems": 1,
1500
+ "type": "array",
1501
+ "items": {
1502
+ "$ref": "#/definitions/Dropdown"
1503
+ },
1504
+ "description": "Dropdowns inside this one - a menu of sections in the sidebar.",
1505
+ "markdownDescription": "Dropdowns inside this one - a menu of sections in the sidebar."
1506
+ }
1507
+ },
1508
+ "required": [
1509
+ "tab",
1510
+ "dropdowns"
1511
+ ],
1512
+ "additionalProperties": false
1513
+ },
1514
+ {
1515
+ "type": "object",
1516
+ "properties": {
1517
+ "tab": {
1518
+ "type": "string",
1519
+ "description": "The tab's name, shown in the topbar.",
1520
+ "markdownDescription": "The tab's name, shown in the topbar."
1521
+ },
1522
+ "icon": {
1523
+ "type": "string",
1524
+ "description": "Icon next to the name: a Lucide name (\"book-open\"), \"collection:name\" (\"mdi:server\"), an emoji, or an image path.",
1525
+ "markdownDescription": "Icon next to the name: a Lucide name (\"book-open\"), \"collection:name\" (\"mdi:server\"), an emoji, or an image path."
1526
+ },
1527
+ "products": {
1528
+ "minItems": 1,
1529
+ "type": "array",
1530
+ "items": {
1531
+ "$ref": "#/definitions/Product"
1532
+ },
1533
+ "description": "Products inside this one - a product picker.",
1534
+ "markdownDescription": "Products inside this one - a product picker."
1535
+ }
1536
+ },
1537
+ "required": [
1538
+ "tab",
1539
+ "products"
1540
+ ],
1541
+ "additionalProperties": false
1542
+ },
1543
+ {
1544
+ "type": "object",
1545
+ "properties": {
1546
+ "tab": {
1547
+ "type": "string",
1548
+ "description": "The tab's name, shown in the topbar.",
1549
+ "markdownDescription": "The tab's name, shown in the topbar."
1550
+ },
1551
+ "icon": {
1552
+ "type": "string",
1553
+ "description": "Icon next to the name: a Lucide name (\"book-open\"), \"collection:name\" (\"mdi:server\"), an emoji, or an image path.",
1554
+ "markdownDescription": "Icon next to the name: a Lucide name (\"book-open\"), \"collection:name\" (\"mdi:server\"), an emoji, or an image path."
1555
+ },
1556
+ "href": {
1557
+ "type": "string",
1558
+ "description": "Makes this a link to another address instead of a section with pages of its own.",
1559
+ "markdownDescription": "Makes this a link to another address instead of a section with pages of its own."
1560
+ }
1561
+ },
1562
+ "required": [
1563
+ "tab",
1564
+ "href"
1565
+ ],
1566
+ "additionalProperties": false
1567
+ }
1568
+ ],
1569
+ "description": "A tab in the topbar, with its own sidebar.",
1570
+ "markdownDescription": "A tab in the topbar, with its own sidebar."
1571
+ },
1572
+ "Version": {
1573
+ "anyOf": [
1574
+ {
1575
+ "type": "object",
1576
+ "properties": {
1577
+ "version": {
1578
+ "type": "string",
1579
+ "description": "The version's name, like \"v2\".",
1580
+ "markdownDescription": "The version's name, like \"v2\"."
1581
+ },
1582
+ "label": {
1583
+ "type": "string",
1584
+ "description": "Text shown in the version picker instead of `version`.",
1585
+ "markdownDescription": "Text shown in the version picker instead of `version`."
1586
+ },
1587
+ "tag": {
1588
+ "type": "string",
1589
+ "description": "A short badge next to the version, like \"Latest\" or \"Deprecated\".",
1590
+ "markdownDescription": "A short badge next to the version, like \"Latest\" or \"Deprecated\"."
1591
+ },
1592
+ "default": {
1593
+ "type": "boolean",
1594
+ "description": "Open this version first. Without it, the first version is the default.",
1595
+ "markdownDescription": "Open this version first. Without it, the first version is the default."
1596
+ },
1597
+ "pages": {
1598
+ "type": "array",
1599
+ "items": {
1600
+ "$ref": "#/definitions/NavigationItem"
1601
+ },
1602
+ "description": "The pages and groups in this section of the sidebar.",
1603
+ "markdownDescription": "The pages and groups in this section of the sidebar."
1604
+ }
1605
+ },
1606
+ "required": [
1607
+ "version",
1608
+ "pages"
1609
+ ],
1610
+ "additionalProperties": false
1611
+ },
1612
+ {
1613
+ "type": "object",
1614
+ "properties": {
1615
+ "version": {
1616
+ "type": "string",
1617
+ "description": "The version's name, like \"v2\".",
1618
+ "markdownDescription": "The version's name, like \"v2\"."
1619
+ },
1620
+ "label": {
1621
+ "type": "string",
1622
+ "description": "Text shown in the version picker instead of `version`.",
1623
+ "markdownDescription": "Text shown in the version picker instead of `version`."
1624
+ },
1625
+ "tag": {
1626
+ "type": "string",
1627
+ "description": "A short badge next to the version, like \"Latest\" or \"Deprecated\".",
1628
+ "markdownDescription": "A short badge next to the version, like \"Latest\" or \"Deprecated\"."
1629
+ },
1630
+ "default": {
1631
+ "type": "boolean",
1632
+ "description": "Open this version first. Without it, the first version is the default.",
1633
+ "markdownDescription": "Open this version first. Without it, the first version is the default."
1634
+ },
1635
+ "tabs": {
1636
+ "minItems": 1,
1637
+ "type": "array",
1638
+ "items": {
1639
+ "$ref": "#/definitions/Tab"
1640
+ },
1641
+ "description": "Tabs inside this one.",
1642
+ "markdownDescription": "Tabs inside this one."
1643
+ }
1644
+ },
1645
+ "required": [
1646
+ "version",
1647
+ "tabs"
1648
+ ],
1649
+ "additionalProperties": false
1650
+ },
1651
+ {
1652
+ "type": "object",
1653
+ "properties": {
1654
+ "version": {
1655
+ "type": "string",
1656
+ "description": "The version's name, like \"v2\".",
1657
+ "markdownDescription": "The version's name, like \"v2\"."
1658
+ },
1659
+ "label": {
1660
+ "type": "string",
1661
+ "description": "Text shown in the version picker instead of `version`.",
1662
+ "markdownDescription": "Text shown in the version picker instead of `version`."
1663
+ },
1664
+ "tag": {
1665
+ "type": "string",
1666
+ "description": "A short badge next to the version, like \"Latest\" or \"Deprecated\".",
1667
+ "markdownDescription": "A short badge next to the version, like \"Latest\" or \"Deprecated\"."
1668
+ },
1669
+ "default": {
1670
+ "type": "boolean",
1671
+ "description": "Open this version first. Without it, the first version is the default.",
1672
+ "markdownDescription": "Open this version first. Without it, the first version is the default."
1673
+ },
1674
+ "versions": {
1675
+ "minItems": 1,
1676
+ "type": "array",
1677
+ "items": {
1678
+ "$ref": "#/definitions/Version"
1679
+ },
1680
+ "description": "Versions inside this one - a version picker in the sidebar.",
1681
+ "markdownDescription": "Versions inside this one - a version picker in the sidebar."
1682
+ }
1683
+ },
1684
+ "required": [
1685
+ "version",
1686
+ "versions"
1687
+ ],
1688
+ "additionalProperties": false
1689
+ },
1690
+ {
1691
+ "type": "object",
1692
+ "properties": {
1693
+ "version": {
1694
+ "type": "string",
1695
+ "description": "The version's name, like \"v2\".",
1696
+ "markdownDescription": "The version's name, like \"v2\"."
1697
+ },
1698
+ "label": {
1699
+ "type": "string",
1700
+ "description": "Text shown in the version picker instead of `version`.",
1701
+ "markdownDescription": "Text shown in the version picker instead of `version`."
1702
+ },
1703
+ "tag": {
1704
+ "type": "string",
1705
+ "description": "A short badge next to the version, like \"Latest\" or \"Deprecated\".",
1706
+ "markdownDescription": "A short badge next to the version, like \"Latest\" or \"Deprecated\"."
1707
+ },
1708
+ "default": {
1709
+ "type": "boolean",
1710
+ "description": "Open this version first. Without it, the first version is the default.",
1711
+ "markdownDescription": "Open this version first. Without it, the first version is the default."
1712
+ },
1713
+ "languages": {
1714
+ "minItems": 1,
1715
+ "type": "array",
1716
+ "items": {
1717
+ "$ref": "#/definitions/Language"
1718
+ },
1719
+ "description": "Languages inside this one - a language picker.",
1720
+ "markdownDescription": "Languages inside this one - a language picker."
1721
+ }
1722
+ },
1723
+ "required": [
1724
+ "version",
1725
+ "languages"
1726
+ ],
1727
+ "additionalProperties": false
1728
+ },
1729
+ {
1730
+ "type": "object",
1731
+ "properties": {
1732
+ "version": {
1733
+ "type": "string",
1734
+ "description": "The version's name, like \"v2\".",
1735
+ "markdownDescription": "The version's name, like \"v2\"."
1736
+ },
1737
+ "label": {
1738
+ "type": "string",
1739
+ "description": "Text shown in the version picker instead of `version`.",
1740
+ "markdownDescription": "Text shown in the version picker instead of `version`."
1741
+ },
1742
+ "tag": {
1743
+ "type": "string",
1744
+ "description": "A short badge next to the version, like \"Latest\" or \"Deprecated\".",
1745
+ "markdownDescription": "A short badge next to the version, like \"Latest\" or \"Deprecated\"."
1746
+ },
1747
+ "default": {
1748
+ "type": "boolean",
1749
+ "description": "Open this version first. Without it, the first version is the default.",
1750
+ "markdownDescription": "Open this version first. Without it, the first version is the default."
1751
+ },
1752
+ "dropdowns": {
1753
+ "minItems": 1,
1754
+ "type": "array",
1755
+ "items": {
1756
+ "$ref": "#/definitions/Dropdown"
1757
+ },
1758
+ "description": "Dropdowns inside this one - a menu of sections in the sidebar.",
1759
+ "markdownDescription": "Dropdowns inside this one - a menu of sections in the sidebar."
1760
+ }
1761
+ },
1762
+ "required": [
1763
+ "version",
1764
+ "dropdowns"
1765
+ ],
1766
+ "additionalProperties": false
1767
+ },
1768
+ {
1769
+ "type": "object",
1770
+ "properties": {
1771
+ "version": {
1772
+ "type": "string",
1773
+ "description": "The version's name, like \"v2\".",
1774
+ "markdownDescription": "The version's name, like \"v2\"."
1775
+ },
1776
+ "label": {
1777
+ "type": "string",
1778
+ "description": "Text shown in the version picker instead of `version`.",
1779
+ "markdownDescription": "Text shown in the version picker instead of `version`."
1780
+ },
1781
+ "tag": {
1782
+ "type": "string",
1783
+ "description": "A short badge next to the version, like \"Latest\" or \"Deprecated\".",
1784
+ "markdownDescription": "A short badge next to the version, like \"Latest\" or \"Deprecated\"."
1785
+ },
1786
+ "default": {
1787
+ "type": "boolean",
1788
+ "description": "Open this version first. Without it, the first version is the default.",
1789
+ "markdownDescription": "Open this version first. Without it, the first version is the default."
1790
+ },
1791
+ "products": {
1792
+ "minItems": 1,
1793
+ "type": "array",
1794
+ "items": {
1795
+ "$ref": "#/definitions/Product"
1796
+ },
1797
+ "description": "Products inside this one - a product picker.",
1798
+ "markdownDescription": "Products inside this one - a product picker."
1799
+ }
1800
+ },
1801
+ "required": [
1802
+ "version",
1803
+ "products"
1804
+ ],
1805
+ "additionalProperties": false
1806
+ },
1807
+ {
1808
+ "type": "object",
1809
+ "properties": {
1810
+ "version": {
1811
+ "type": "string",
1812
+ "description": "The version's name, like \"v2\".",
1813
+ "markdownDescription": "The version's name, like \"v2\"."
1814
+ },
1815
+ "label": {
1816
+ "type": "string",
1817
+ "description": "Text shown in the version picker instead of `version`.",
1818
+ "markdownDescription": "Text shown in the version picker instead of `version`."
1819
+ },
1820
+ "tag": {
1821
+ "type": "string",
1822
+ "description": "A short badge next to the version, like \"Latest\" or \"Deprecated\".",
1823
+ "markdownDescription": "A short badge next to the version, like \"Latest\" or \"Deprecated\"."
1824
+ },
1825
+ "default": {
1826
+ "type": "boolean",
1827
+ "description": "Open this version first. Without it, the first version is the default.",
1828
+ "markdownDescription": "Open this version first. Without it, the first version is the default."
1829
+ },
1830
+ "href": {
1831
+ "type": "string",
1832
+ "description": "Makes this a link to another address instead of a section with pages of its own.",
1833
+ "markdownDescription": "Makes this a link to another address instead of a section with pages of its own."
1834
+ }
1835
+ },
1836
+ "required": [
1837
+ "version",
1838
+ "href"
1839
+ ],
1840
+ "additionalProperties": false
1841
+ }
1842
+ ],
1843
+ "description": "A version of the docs, chosen from a version picker.",
1844
+ "markdownDescription": "A version of the docs, chosen from a version picker."
1845
+ },
1846
+ "Language": {
1847
+ "anyOf": [
1848
+ {
1849
+ "type": "object",
1850
+ "properties": {
1851
+ "language": {
1852
+ "type": "string",
1853
+ "description": "The language code, like \"en\" or \"pt-BR\".",
1854
+ "markdownDescription": "The language code, like \"en\" or \"pt-BR\"."
1855
+ },
1856
+ "label": {
1857
+ "type": "string",
1858
+ "description": "Text shown in the language picker instead of `language`, like \"Português\".",
1859
+ "markdownDescription": "Text shown in the language picker instead of `language`, like \"Português\"."
1860
+ },
1861
+ "pages": {
1862
+ "type": "array",
1863
+ "items": {
1864
+ "$ref": "#/definitions/NavigationItem"
1865
+ },
1866
+ "description": "The pages and groups in this section of the sidebar.",
1867
+ "markdownDescription": "The pages and groups in this section of the sidebar."
1868
+ }
1869
+ },
1870
+ "required": [
1871
+ "language",
1872
+ "pages"
1873
+ ],
1874
+ "additionalProperties": false
1875
+ },
1876
+ {
1877
+ "type": "object",
1878
+ "properties": {
1879
+ "language": {
1880
+ "type": "string",
1881
+ "description": "The language code, like \"en\" or \"pt-BR\".",
1882
+ "markdownDescription": "The language code, like \"en\" or \"pt-BR\"."
1883
+ },
1884
+ "label": {
1885
+ "type": "string",
1886
+ "description": "Text shown in the language picker instead of `language`, like \"Português\".",
1887
+ "markdownDescription": "Text shown in the language picker instead of `language`, like \"Português\"."
1888
+ },
1889
+ "tabs": {
1890
+ "minItems": 1,
1891
+ "type": "array",
1892
+ "items": {
1893
+ "$ref": "#/definitions/Tab"
1894
+ },
1895
+ "description": "Tabs inside this one.",
1896
+ "markdownDescription": "Tabs inside this one."
1897
+ }
1898
+ },
1899
+ "required": [
1900
+ "language",
1901
+ "tabs"
1902
+ ],
1903
+ "additionalProperties": false
1904
+ },
1905
+ {
1906
+ "type": "object",
1907
+ "properties": {
1908
+ "language": {
1909
+ "type": "string",
1910
+ "description": "The language code, like \"en\" or \"pt-BR\".",
1911
+ "markdownDescription": "The language code, like \"en\" or \"pt-BR\"."
1912
+ },
1913
+ "label": {
1914
+ "type": "string",
1915
+ "description": "Text shown in the language picker instead of `language`, like \"Português\".",
1916
+ "markdownDescription": "Text shown in the language picker instead of `language`, like \"Português\"."
1917
+ },
1918
+ "versions": {
1919
+ "minItems": 1,
1920
+ "type": "array",
1921
+ "items": {
1922
+ "$ref": "#/definitions/Version"
1923
+ },
1924
+ "description": "Versions inside this one - a version picker in the sidebar.",
1925
+ "markdownDescription": "Versions inside this one - a version picker in the sidebar."
1926
+ }
1927
+ },
1928
+ "required": [
1929
+ "language",
1930
+ "versions"
1931
+ ],
1932
+ "additionalProperties": false
1933
+ },
1934
+ {
1935
+ "type": "object",
1936
+ "properties": {
1937
+ "language": {
1938
+ "type": "string",
1939
+ "description": "The language code, like \"en\" or \"pt-BR\".",
1940
+ "markdownDescription": "The language code, like \"en\" or \"pt-BR\"."
1941
+ },
1942
+ "label": {
1943
+ "type": "string",
1944
+ "description": "Text shown in the language picker instead of `language`, like \"Português\".",
1945
+ "markdownDescription": "Text shown in the language picker instead of `language`, like \"Português\"."
1946
+ },
1947
+ "languages": {
1948
+ "minItems": 1,
1949
+ "type": "array",
1950
+ "items": {
1951
+ "$ref": "#/definitions/Language"
1952
+ },
1953
+ "description": "Languages inside this one - a language picker.",
1954
+ "markdownDescription": "Languages inside this one - a language picker."
1955
+ }
1956
+ },
1957
+ "required": [
1958
+ "language",
1959
+ "languages"
1960
+ ],
1961
+ "additionalProperties": false
1962
+ },
1963
+ {
1964
+ "type": "object",
1965
+ "properties": {
1966
+ "language": {
1967
+ "type": "string",
1968
+ "description": "The language code, like \"en\" or \"pt-BR\".",
1969
+ "markdownDescription": "The language code, like \"en\" or \"pt-BR\"."
1970
+ },
1971
+ "label": {
1972
+ "type": "string",
1973
+ "description": "Text shown in the language picker instead of `language`, like \"Português\".",
1974
+ "markdownDescription": "Text shown in the language picker instead of `language`, like \"Português\"."
1975
+ },
1976
+ "dropdowns": {
1977
+ "minItems": 1,
1978
+ "type": "array",
1979
+ "items": {
1980
+ "$ref": "#/definitions/Dropdown"
1981
+ },
1982
+ "description": "Dropdowns inside this one - a menu of sections in the sidebar.",
1983
+ "markdownDescription": "Dropdowns inside this one - a menu of sections in the sidebar."
1984
+ }
1985
+ },
1986
+ "required": [
1987
+ "language",
1988
+ "dropdowns"
1989
+ ],
1990
+ "additionalProperties": false
1991
+ },
1992
+ {
1993
+ "type": "object",
1994
+ "properties": {
1995
+ "language": {
1996
+ "type": "string",
1997
+ "description": "The language code, like \"en\" or \"pt-BR\".",
1998
+ "markdownDescription": "The language code, like \"en\" or \"pt-BR\"."
1999
+ },
2000
+ "label": {
2001
+ "type": "string",
2002
+ "description": "Text shown in the language picker instead of `language`, like \"Português\".",
2003
+ "markdownDescription": "Text shown in the language picker instead of `language`, like \"Português\"."
2004
+ },
2005
+ "products": {
2006
+ "minItems": 1,
2007
+ "type": "array",
2008
+ "items": {
2009
+ "$ref": "#/definitions/Product"
2010
+ },
2011
+ "description": "Products inside this one - a product picker.",
2012
+ "markdownDescription": "Products inside this one - a product picker."
2013
+ }
2014
+ },
2015
+ "required": [
2016
+ "language",
2017
+ "products"
2018
+ ],
2019
+ "additionalProperties": false
2020
+ },
2021
+ {
2022
+ "type": "object",
2023
+ "properties": {
2024
+ "language": {
2025
+ "type": "string",
2026
+ "description": "The language code, like \"en\" or \"pt-BR\".",
2027
+ "markdownDescription": "The language code, like \"en\" or \"pt-BR\"."
2028
+ },
2029
+ "label": {
2030
+ "type": "string",
2031
+ "description": "Text shown in the language picker instead of `language`, like \"Português\".",
2032
+ "markdownDescription": "Text shown in the language picker instead of `language`, like \"Português\"."
2033
+ },
2034
+ "href": {
2035
+ "type": "string",
2036
+ "description": "Makes this a link to another address instead of a section with pages of its own.",
2037
+ "markdownDescription": "Makes this a link to another address instead of a section with pages of its own."
2038
+ }
2039
+ },
2040
+ "required": [
2041
+ "language",
2042
+ "href"
2043
+ ],
2044
+ "additionalProperties": false
2045
+ }
2046
+ ],
2047
+ "description": "A language of the docs, chosen from a language picker.",
2048
+ "markdownDescription": "A language of the docs, chosen from a language picker."
2049
+ },
2050
+ "Product": {
2051
+ "anyOf": [
2052
+ {
2053
+ "type": "object",
2054
+ "properties": {
2055
+ "product": {
2056
+ "type": "string",
2057
+ "description": "The product's name, shown in the product picker.",
2058
+ "markdownDescription": "The product's name, shown in the product picker."
2059
+ },
2060
+ "icon": {
2061
+ "type": "string",
2062
+ "description": "Icon next to the name: a Lucide name, \"collection:name\", an emoji, or an image path.",
2063
+ "markdownDescription": "Icon next to the name: a Lucide name, \"collection:name\", an emoji, or an image path."
2064
+ },
2065
+ "description": {
2066
+ "type": "string",
2067
+ "description": "One line under the name in the product picker.",
2068
+ "markdownDescription": "One line under the name in the product picker."
2069
+ },
2070
+ "pages": {
2071
+ "type": "array",
2072
+ "items": {
2073
+ "$ref": "#/definitions/NavigationItem"
2074
+ },
2075
+ "description": "The pages and groups in this section of the sidebar.",
2076
+ "markdownDescription": "The pages and groups in this section of the sidebar."
2077
+ }
2078
+ },
2079
+ "required": [
2080
+ "product",
2081
+ "pages"
2082
+ ],
2083
+ "additionalProperties": false
2084
+ },
2085
+ {
2086
+ "type": "object",
2087
+ "properties": {
2088
+ "product": {
2089
+ "type": "string",
2090
+ "description": "The product's name, shown in the product picker.",
2091
+ "markdownDescription": "The product's name, shown in the product picker."
2092
+ },
2093
+ "icon": {
2094
+ "type": "string",
2095
+ "description": "Icon next to the name: a Lucide name, \"collection:name\", an emoji, or an image path.",
2096
+ "markdownDescription": "Icon next to the name: a Lucide name, \"collection:name\", an emoji, or an image path."
2097
+ },
2098
+ "description": {
2099
+ "type": "string",
2100
+ "description": "One line under the name in the product picker.",
2101
+ "markdownDescription": "One line under the name in the product picker."
2102
+ },
2103
+ "tabs": {
2104
+ "minItems": 1,
2105
+ "type": "array",
2106
+ "items": {
2107
+ "$ref": "#/definitions/Tab"
2108
+ },
2109
+ "description": "Tabs inside this one.",
2110
+ "markdownDescription": "Tabs inside this one."
2111
+ }
2112
+ },
2113
+ "required": [
2114
+ "product",
2115
+ "tabs"
2116
+ ],
2117
+ "additionalProperties": false
2118
+ },
2119
+ {
2120
+ "type": "object",
2121
+ "properties": {
2122
+ "product": {
2123
+ "type": "string",
2124
+ "description": "The product's name, shown in the product picker.",
2125
+ "markdownDescription": "The product's name, shown in the product picker."
2126
+ },
2127
+ "icon": {
2128
+ "type": "string",
2129
+ "description": "Icon next to the name: a Lucide name, \"collection:name\", an emoji, or an image path.",
2130
+ "markdownDescription": "Icon next to the name: a Lucide name, \"collection:name\", an emoji, or an image path."
2131
+ },
2132
+ "description": {
2133
+ "type": "string",
2134
+ "description": "One line under the name in the product picker.",
2135
+ "markdownDescription": "One line under the name in the product picker."
2136
+ },
2137
+ "versions": {
2138
+ "minItems": 1,
2139
+ "type": "array",
2140
+ "items": {
2141
+ "$ref": "#/definitions/Version"
2142
+ },
2143
+ "description": "Versions inside this one - a version picker in the sidebar.",
2144
+ "markdownDescription": "Versions inside this one - a version picker in the sidebar."
2145
+ }
2146
+ },
2147
+ "required": [
2148
+ "product",
2149
+ "versions"
2150
+ ],
2151
+ "additionalProperties": false
2152
+ },
2153
+ {
2154
+ "type": "object",
2155
+ "properties": {
2156
+ "product": {
2157
+ "type": "string",
2158
+ "description": "The product's name, shown in the product picker.",
2159
+ "markdownDescription": "The product's name, shown in the product picker."
2160
+ },
2161
+ "icon": {
2162
+ "type": "string",
2163
+ "description": "Icon next to the name: a Lucide name, \"collection:name\", an emoji, or an image path.",
2164
+ "markdownDescription": "Icon next to the name: a Lucide name, \"collection:name\", an emoji, or an image path."
2165
+ },
2166
+ "description": {
2167
+ "type": "string",
2168
+ "description": "One line under the name in the product picker.",
2169
+ "markdownDescription": "One line under the name in the product picker."
2170
+ },
2171
+ "languages": {
2172
+ "minItems": 1,
2173
+ "type": "array",
2174
+ "items": {
2175
+ "$ref": "#/definitions/Language"
2176
+ },
2177
+ "description": "Languages inside this one - a language picker.",
2178
+ "markdownDescription": "Languages inside this one - a language picker."
2179
+ }
2180
+ },
2181
+ "required": [
2182
+ "product",
2183
+ "languages"
2184
+ ],
2185
+ "additionalProperties": false
2186
+ },
2187
+ {
2188
+ "type": "object",
2189
+ "properties": {
2190
+ "product": {
2191
+ "type": "string",
2192
+ "description": "The product's name, shown in the product picker.",
2193
+ "markdownDescription": "The product's name, shown in the product picker."
2194
+ },
2195
+ "icon": {
2196
+ "type": "string",
2197
+ "description": "Icon next to the name: a Lucide name, \"collection:name\", an emoji, or an image path.",
2198
+ "markdownDescription": "Icon next to the name: a Lucide name, \"collection:name\", an emoji, or an image path."
2199
+ },
2200
+ "description": {
2201
+ "type": "string",
2202
+ "description": "One line under the name in the product picker.",
2203
+ "markdownDescription": "One line under the name in the product picker."
2204
+ },
2205
+ "dropdowns": {
2206
+ "minItems": 1,
2207
+ "type": "array",
2208
+ "items": {
2209
+ "$ref": "#/definitions/Dropdown"
2210
+ },
2211
+ "description": "Dropdowns inside this one - a menu of sections in the sidebar.",
2212
+ "markdownDescription": "Dropdowns inside this one - a menu of sections in the sidebar."
2213
+ }
2214
+ },
2215
+ "required": [
2216
+ "product",
2217
+ "dropdowns"
2218
+ ],
2219
+ "additionalProperties": false
2220
+ },
2221
+ {
2222
+ "type": "object",
2223
+ "properties": {
2224
+ "product": {
2225
+ "type": "string",
2226
+ "description": "The product's name, shown in the product picker.",
2227
+ "markdownDescription": "The product's name, shown in the product picker."
2228
+ },
2229
+ "icon": {
2230
+ "type": "string",
2231
+ "description": "Icon next to the name: a Lucide name, \"collection:name\", an emoji, or an image path.",
2232
+ "markdownDescription": "Icon next to the name: a Lucide name, \"collection:name\", an emoji, or an image path."
2233
+ },
2234
+ "description": {
2235
+ "type": "string",
2236
+ "description": "One line under the name in the product picker.",
2237
+ "markdownDescription": "One line under the name in the product picker."
2238
+ },
2239
+ "products": {
2240
+ "minItems": 1,
2241
+ "type": "array",
2242
+ "items": {
2243
+ "$ref": "#/definitions/Product"
2244
+ },
2245
+ "description": "Products inside this one - a product picker.",
2246
+ "markdownDescription": "Products inside this one - a product picker."
2247
+ }
2248
+ },
2249
+ "required": [
2250
+ "product",
2251
+ "products"
2252
+ ],
2253
+ "additionalProperties": false
2254
+ },
2255
+ {
2256
+ "type": "object",
2257
+ "properties": {
2258
+ "product": {
2259
+ "type": "string",
2260
+ "description": "The product's name, shown in the product picker.",
2261
+ "markdownDescription": "The product's name, shown in the product picker."
2262
+ },
2263
+ "icon": {
2264
+ "type": "string",
2265
+ "description": "Icon next to the name: a Lucide name, \"collection:name\", an emoji, or an image path.",
2266
+ "markdownDescription": "Icon next to the name: a Lucide name, \"collection:name\", an emoji, or an image path."
2267
+ },
2268
+ "description": {
2269
+ "type": "string",
2270
+ "description": "One line under the name in the product picker.",
2271
+ "markdownDescription": "One line under the name in the product picker."
2272
+ },
2273
+ "href": {
2274
+ "type": "string",
2275
+ "description": "Makes this a link to another address instead of a section with pages of its own.",
2276
+ "markdownDescription": "Makes this a link to another address instead of a section with pages of its own."
2277
+ }
2278
+ },
2279
+ "required": [
2280
+ "product",
2281
+ "href"
2282
+ ],
2283
+ "additionalProperties": false
2284
+ }
2285
+ ],
2286
+ "description": "A product, chosen from a product picker.",
2287
+ "markdownDescription": "A product, chosen from a product picker."
2288
+ }
2289
+ },
2290
+ "additionalProperties": false
2291
+ }