返回 slidev
headmatter.json
根目录 / packages / vscode / schema / headmatter.json
1 {
2 "$schema": "http://json-schema.org/draft-07/schema#",
3 "$ref": "#/definitions/Headmatter",
4 "definitions": {
5 "Headmatter": {
6 "type": "object",
7 "properties": {
8 "layout": {
9 "anyOf": [
10 {
11 "$ref": "#/definitions/BuiltinLayouts"
12 },
13 {
14 "type": "string"
15 }
16 ],
17 "description": "Slide layout to use\n\nDefault to 'cover' for the first slide, 'default' for the rest",
18 "markdownDescription": "Slide layout to use\n\nDefault to 'cover' for the first slide, 'default' for the rest"
19 },
20 "class": {
21 "anyOf": [
22 {
23 "type": "string"
24 },
25 {
26 "type": "array",
27 "items": {
28 "type": "string"
29 }
30 },
31 {
32 "type": "object",
33 "additionalProperties": {}
34 }
35 ],
36 "description": "Custom class added to the slide root element",
37 "markdownDescription": "Custom class added to the slide root element"
38 },
39 "clicks": {
40 "type": "number",
41 "description": "Manually specified the total clicks needed to this slide\n\nWhen not specified, the clicks will be calculated by the usage of v-clicks\n\nSee https://sli.dev/guide/animations",
42 "markdownDescription": "Manually specified the total clicks needed to this slide\n\nWhen not specified, the clicks will be calculated by the usage of v-clicks\n\nSee https://sli.dev/guide/animations"
43 },
44 "clicksStart": {
45 "type": "number",
46 "description": "Manually specified the total clicks needed to this slide to start",
47 "markdownDescription": "Manually specified the total clicks needed to this slide to start",
48 "default": 0
49 },
50 "preload": {
51 "type": "boolean",
52 "description": "Preload the slide when the previous slide is active",
53 "markdownDescription": "Preload the slide when the previous slide is active",
54 "default": true
55 },
56 "hide": {
57 "type": "boolean",
58 "description": "Completely hide and disable the slide",
59 "markdownDescription": "Completely hide and disable the slide"
60 },
61 "disabled": {
62 "type": "boolean",
63 "description": "Same as `hide`, completely hide and disable the slide",
64 "markdownDescription": "Same as `hide`, completely hide and disable the slide"
65 },
66 "hideInToc": {
67 "type": "boolean",
68 "description": "Hide the slide for the `<Toc>` components\n\nSee https://sli.dev/builtin/components#toc",
69 "markdownDescription": "Hide the slide for the `<Toc>` components\n\nSee https://sli.dev/builtin/components#toc"
70 },
71 "level": {
72 "type": "number",
73 "description": "Override the title level for the `<TitleRenderer>` and `<Toc>` components Only if `title` has also been declared",
74 "markdownDescription": "Override the title level for the `<TitleRenderer>` and `<Toc>` components\nOnly if `title` has also been declared"
75 },
76 "routeAlias": {
77 "type": "string",
78 "description": "Create a route alias that can be used in the URL or with the `<Link>` component",
79 "markdownDescription": "Create a route alias that can be used in the URL or with the `<Link>` component"
80 },
81 "zoom": {
82 "type": "number",
83 "description": "Custom zoom level for the slide",
84 "markdownDescription": "Custom zoom level for the slide",
85 "default": 1
86 },
87 "clickAnimation": {
88 "type": "string",
89 "description": "Default click animation for the slides",
90 "markdownDescription": "Default click animation for the slides"
91 },
92 "dragPos": {
93 "type": "object",
94 "additionalProperties": {
95 "type": "string"
96 },
97 "description": "Store the positions of draggable elements Normally you don't need to set this manually\n\nSee https://sli.dev/features/draggable",
98 "markdownDescription": "Store the positions of draggable elements\nNormally you don't need to set this manually\n\nSee https://sli.dev/features/draggable"
99 },
100 "src": {
101 "type": "string",
102 "description": "Includes a markdown file\n\nSee https://sli.dev/guide/syntax.html#importing-slides",
103 "markdownDescription": "Includes a markdown file\n\nSee https://sli.dev/guide/syntax.html#importing-slides"
104 },
105 "transition": {
106 "anyOf": [
107 {
108 "$ref": "#/definitions/BuiltinSlideTransition"
109 },
110 {
111 "type": "string"
112 },
113 {
114 "$ref": "#/definitions/TransitionGroupProps"
115 },
116 {
117 "type": "null"
118 }
119 ],
120 "description": "Page transition, powered by Vue's `<TransitionGroup/>`\n\nBuilt-in transitions:\n- fade\n- fade-out\n- slide-left\n- slide-right\n- slide-up\n- slide-down\n- view-transition\n\nSee https://sli.dev/guide/animations.html#pages-transitions\n\nSee https://vuejs.org/guide/built-ins/transition.html",
121 "markdownDescription": "Page transition, powered by Vue's `<TransitionGroup/>`\n\nBuilt-in transitions:\n- fade\n- fade-out\n- slide-left\n- slide-right\n- slide-up\n- slide-down\n- view-transition\n\nSee https://sli.dev/guide/animations.html#pages-transitions\n\nSee https://vuejs.org/guide/built-ins/transition.html"
122 },
123 "title": {
124 "type": "string",
125 "description": "Title of the slides",
126 "markdownDescription": "Title of the slides"
127 },
128 "titleTemplate": {
129 "type": "string",
130 "description": "String template to compose title",
131 "markdownDescription": "String template to compose title",
132 "default": "%s - Slidev"
133 },
134 "theme": {
135 "type": "string",
136 "description": "Theme to use for the slides\n\nSee https://sli.dev/guide/theme-addon#use-theme",
137 "markdownDescription": "Theme to use for the slides\n\nSee https://sli.dev/guide/theme-addon#use-theme",
138 "default": "default"
139 },
140 "addons": {
141 "type": "array",
142 "items": {
143 "type": "string"
144 },
145 "description": "List of Slidev addons",
146 "markdownDescription": "List of Slidev addons",
147 "default": []
148 },
149 "remoteAssets": {
150 "anyOf": [
151 {
152 "type": "boolean"
153 },
154 {
155 "type": "string",
156 "const": "dev"
157 },
158 {
159 "type": "string",
160 "const": "build"
161 }
162 ],
163 "description": "Download remote assets in local using vite-plugin-remote-assets",
164 "markdownDescription": "Download remote assets in local using vite-plugin-remote-assets",
165 "default": false
166 },
167 "download": {
168 "type": [
169 "boolean",
170 "string"
171 ],
172 "description": "Show a download button in the SPA build, could also be a link to custom pdf",
173 "markdownDescription": "Show a download button in the SPA build,\ncould also be a link to custom pdf",
174 "default": false
175 },
176 "codeCopy": {
177 "type": "boolean",
178 "description": "Show a copy button in code blocks",
179 "markdownDescription": "Show a copy button in code blocks",
180 "default": true
181 },
182 "magicMoveCopy": {
183 "anyOf": [
184 {
185 "type": "boolean"
186 },
187 {
188 "type": "string",
189 "const": "final"
190 },
191 {
192 "type": "string",
193 "const": "always"
194 }
195 ],
196 "description": "Show copy button in magic move code blocks\n\n`'final'` for only show copy button on the final step `'always'` or `true` for show copy button on all steps",
197 "markdownDescription": "Show copy button in magic move code blocks\n\n`'final'` for only show copy button on the final step\n`'always'` or `true` for show copy button on all steps",
198 "default": true
199 },
200 "author": {
201 "type": "string",
202 "description": "The author of the slides",
203 "markdownDescription": "The author of the slides"
204 },
205 "info": {
206 "type": [
207 "string",
208 "boolean"
209 ],
210 "description": "Information shows on the built SPA Can be a markdown string",
211 "markdownDescription": "Information shows on the built SPA\nCan be a markdown string",
212 "default": false
213 },
214 "highlighter": {
215 "type": "string",
216 "const": "shiki",
217 "description": "Prefer highlighter\n\nSee https://sli.dev/custom/config-highlighter.html",
218 "markdownDescription": "Prefer highlighter\n\nSee https://sli.dev/custom/config-highlighter.html",
219 "default": "shiki"
220 },
221 "twoslash": {
222 "anyOf": [
223 {
224 "type": "boolean"
225 },
226 {
227 "type": "string",
228 "const": "dev"
229 },
230 {
231 "type": "string",
232 "const": "build"
233 }
234 ],
235 "description": "Enable Twoslash",
236 "markdownDescription": "Enable Twoslash",
237 "default": true
238 },
239 "lineNumbers": {
240 "type": "boolean",
241 "description": "Show line numbers in code blocks",
242 "markdownDescription": "Show line numbers in code blocks",
243 "default": false
244 },
245 "colorSchema": {
246 "type": "string",
247 "enum": [
248 "dark",
249 "light",
250 "all",
251 "auto"
252 ],
253 "description": "Force slides color schema",
254 "markdownDescription": "Force slides color schema",
255 "default": "auto"
256 },
257 "routerMode": {
258 "type": "string",
259 "enum": [
260 "hash",
261 "history",
262 "memory"
263 ],
264 "description": "Router mode for vue-router\n\n- `history`: the slide number is reflected in the URL path\n- `hash`: hash-based routing, for static hosts or subdirectory deploys\n- `memory`: routing is kept in memory, so the URL never reflects the slide number and cannot be used to navigate — useful for kiosk or externally driven \"follower\" decks (deep-links, `/presenter`, `/overview` and export-by-URL are unavailable)",
265 "markdownDescription": "Router mode for vue-router\n\n- `history`: the slide number is reflected in the URL path\n- `hash`: hash-based routing, for static hosts or subdirectory deploys\n- `memory`: routing is kept in memory, so the URL never reflects the slide number and cannot be used to navigate — useful for kiosk or externally driven \"follower\" decks (deep-links, `/presenter`, `/overview` and export-by-URL are unavailable)",
266 "default": "history"
267 },
268 "aspectRatio": {
269 "type": [
270 "number",
271 "string"
272 ],
273 "description": "Aspect ratio for slides should be like `16/9` or `1:1`",
274 "markdownDescription": "Aspect ratio for slides\nshould be like `16/9` or `1:1`",
275 "default": "16/9"
276 },
277 "canvasWidth": {
278 "type": "number",
279 "description": "The actual width for slides canvas. unit in px.",
280 "markdownDescription": "The actual width for slides canvas.\nunit in px.",
281 "default": "980"
282 },
283 "selectable": {
284 "type": "boolean",
285 "description": "Controls whether texts in slides are selectable",
286 "markdownDescription": "Controls whether texts in slides are selectable",
287 "default": true
288 },
289 "themeConfig": {
290 "$ref": "#/definitions/SlidevThemeConfig",
291 "description": "Configure for themes, will inject intro root styles as `--slidev-theme-x` for attribute `x`\n\nThis allows themes to have customization options in frontmatter Refer to themes' document for options avaliable",
292 "markdownDescription": "Configure for themes, will inject intro root styles as\n`--slidev-theme-x` for attribute `x`\n\nThis allows themes to have customization options in frontmatter\nRefer to themes' document for options avaliable",
293 "default": {}
294 },
295 "fonts": {
296 "$ref": "#/definitions/FontOptions",
297 "description": "Configure fonts for the slides and app",
298 "markdownDescription": "Configure fonts for the slides and app",
299 "default": {}
300 },
301 "favicon": {
302 "type": "string",
303 "description": "Configure the icon for app",
304 "markdownDescription": "Configure the icon for app",
305 "default": "https://cdn.jsdelivr.net/gh/slidevjs/slidev/assets/favicon.png"
306 },
307 "drawings": {
308 "$ref": "#/definitions/DrawingsOptions",
309 "description": "Options for drawings",
310 "markdownDescription": "Options for drawings",
311 "default": {}
312 },
313 "plantUmlServer": {
314 "type": "string",
315 "description": "URL of PlantUML server used to render diagrams",
316 "markdownDescription": "URL of PlantUML server used to render diagrams",
317 "default": "https://www.plantuml.com/plantuml"
318 },
319 "record": {
320 "anyOf": [
321 {
322 "type": "boolean"
323 },
324 {
325 "type": "string",
326 "const": "dev"
327 },
328 {
329 "type": "string",
330 "const": "build"
331 }
332 ],
333 "description": "Enable slides recording",
334 "markdownDescription": "Enable slides recording",
335 "default": "dev"
336 },
337 "remote": {
338 "type": [
339 "string",
340 "boolean"
341 ],
342 "description": "Expose the server to inbound requests (listen to `0.0.0.0`)\n\nPass a string to set the password for accessing presenter mode.",
343 "markdownDescription": "Expose the server to inbound requests (listen to `0.0.0.0`)\n\nPass a string to set the password for accessing presenter mode.",
344 "default": false
345 },
346 "css": {
347 "type": "string",
348 "const": "unocss",
349 "description": "Engine for Atomic CSS\n\nSee https://unocss.dev/",
350 "markdownDescription": "Engine for Atomic CSS\n\nSee https://unocss.dev/",
351 "deprecated": true,
352 "default": "unocss"
353 },
354 "presenter": {
355 "anyOf": [
356 {
357 "type": "boolean"
358 },
359 {
360 "type": "string",
361 "const": "dev"
362 },
363 {
364 "type": "string",
365 "const": "build"
366 }
367 ],
368 "description": "Enable presenter mode",
369 "markdownDescription": "Enable presenter mode",
370 "default": true
371 },
372 "browserExporter": {
373 "anyOf": [
374 {
375 "type": "boolean"
376 },
377 {
378 "type": "string",
379 "const": "dev"
380 },
381 {
382 "type": "string",
383 "const": "build"
384 }
385 ],
386 "description": "Enable browser exporter",
387 "markdownDescription": "Enable browser exporter",
388 "default": "dev"
389 },
390 "htmlAttrs": {
391 "type": "object",
392 "additionalProperties": {
393 "type": "string"
394 },
395 "description": "Attributes to apply to the HTML element",
396 "markdownDescription": "Attributes to apply to the HTML element",
397 "default": {}
398 },
399 "comark": {
400 "type": "boolean",
401 "description": "Suppport Comark syntax\n\nhttps://comark.dev/syntax/markdown",
402 "markdownDescription": "Suppport Comark syntax\n\nhttps://comark.dev/syntax/markdown",
403 "default": false
404 },
405 "mdc": {
406 "type": "boolean",
407 "deprecated": "MDC is now Comark. Use the `comark` option instead",
408 "default": false
409 },
410 "editor": {
411 "type": "boolean",
412 "description": "Enable built-in editor",
413 "markdownDescription": "Enable built-in editor",
414 "default": true
415 },
416 "mcp": {
417 "type": "boolean",
418 "description": "Enable the MCP (Model Context Protocol) server endpoint on the dev server, allowing AI agents to inspect and edit the slides",
419 "markdownDescription": "Enable the MCP (Model Context Protocol) server endpoint on the dev server,\nallowing AI agents to inspect and edit the slides",
420 "default": true
421 },
422 "contextMenu": {
423 "anyOf": [
424 {
425 "type": "boolean"
426 },
427 {
428 "type": "string",
429 "const": "dev"
430 },
431 {
432 "type": "string",
433 "const": "build"
434 },
435 {
436 "type": "null"
437 }
438 ],
439 "description": "Enable context menu",
440 "markdownDescription": "Enable context menu",
441 "default": true
442 },
443 "wakeLock": {
444 "anyOf": [
445 {
446 "type": "boolean"
447 },
448 {
449 "type": "string",
450 "const": "dev"
451 },
452 {
453 "type": "string",
454 "const": "build"
455 }
456 ],
457 "description": "Enable wake lock",
458 "markdownDescription": "Enable wake lock"
459 },
460 "pwa": {
461 "anyOf": [
462 {
463 "type": "boolean"
464 },
465 {
466 "type": "string",
467 "const": "dev"
468 },
469 {
470 "type": "string",
471 "const": "build"
472 }
473 ],
474 "description": "Enable PWA support: a service worker precaches all deck assets on first load so a served deck works fully offline afterward. Heavy; opt-in.",
475 "markdownDescription": "Enable PWA support: a service worker precaches all deck assets on first\nload so a served deck works fully offline afterward. Heavy; opt-in.",
476 "default": false
477 },
478 "exportFilename": {
479 "type": [
480 "string",
481 "null"
482 ],
483 "description": "Force the filename used when exporting the presentation. The extension, e.g. .pdf, gets automatically added.",
484 "markdownDescription": "Force the filename used when exporting the presentation.\nThe extension, e.g. .pdf, gets automatically added.",
485 "default": ""
486 },
487 "monaco": {
488 "anyOf": [
489 {
490 "type": "boolean"
491 },
492 {
493 "type": "string",
494 "const": "dev"
495 },
496 {
497 "type": "string",
498 "const": "build"
499 }
500 ],
501 "description": "Enable Monaco\n\nSee https://sli.dev/custom/config-monaco.html",
502 "markdownDescription": "Enable Monaco\n\nSee https://sli.dev/custom/config-monaco.html",
503 "default": true
504 },
505 "monacoTypesSource": {
506 "type": "string",
507 "enum": [
508 "cdn",
509 "local",
510 "none"
511 ],
512 "description": "Where to load monaco types from\n\n- `cdn` - load from CDN with `@typescript/ata`\n- `local` - load from local node_modules",
513 "markdownDescription": "Where to load monaco types from\n\n- `cdn` - load from CDN with `@typescript/ata`\n- `local` - load from local node_modules",
514 "default": "local"
515 },
516 "monacoTypesAdditionalPackages": {
517 "type": "array",
518 "items": {
519 "type": "string"
520 },
521 "description": "Additional node packages to load as monaco types",
522 "markdownDescription": "Additional node packages to load as monaco types",
523 "default": []
524 },
525 "monacoTypesIgnorePackages": {
526 "type": "array",
527 "items": {
528 "type": "string"
529 },
530 "description": "Packages to ignore when loading monaco types",
531 "markdownDescription": "Packages to ignore when loading monaco types",
532 "default": []
533 },
534 "monacoRunAdditionalDeps": {
535 "type": "array",
536 "items": {
537 "type": "string"
538 },
539 "description": "Additional local modules to load as dependencies of monaco runnable",
540 "markdownDescription": "Additional local modules to load as dependencies of monaco runnable",
541 "default": []
542 },
543 "monacoRunUseStrict": {
544 "type": "boolean",
545 "description": "Whether to run monaco runnable code in strict mode",
546 "markdownDescription": "Whether to run monaco runnable code in strict mode",
547 "default": true
548 },
549 "seoMeta": {
550 "$ref": "#/definitions/SeoMeta",
551 "description": "Seo meta tags settings",
552 "markdownDescription": "Seo meta tags settings",
553 "default": {}
554 },
555 "notesAutoRuby": {
556 "type": "object",
557 "additionalProperties": {
558 "type": "string"
559 },
560 "description": "Auto replace words with `<ruby>` tags in notes",
561 "markdownDescription": "Auto replace words with `<ruby>` tags in notes",
562 "default": {}
563 },
564 "duration": {
565 "type": [
566 "string",
567 "number"
568 ],
569 "description": "The expected duration of the slide",
570 "markdownDescription": "The expected duration of the slide",
571 "default": "30min"
572 },
573 "timer": {
574 "type": "string",
575 "enum": [
576 "stopwatch",
577 "countdown"
578 ],
579 "description": "Timer mode",
580 "markdownDescription": "Timer mode",
581 "default": "stopwatch"
582 },
583 "magicMoveDuration": {
584 "type": "number",
585 "description": "Duration for shiki magic move transitions in milliseconds",
586 "markdownDescription": "Duration for shiki magic move transitions in milliseconds",
587 "default": 800
588 },
589 "preloadImages": {
590 "anyOf": [
591 {
592 "type": "boolean"
593 },
594 {
595 "type": "object",
596 "properties": {
597 "ahead": {
598 "type": "number"
599 }
600 }
601 }
602 ],
603 "description": "Preload images extracted from slides for faster navigation.\n\n- `true` - enable with default look-ahead of 3 slides\n- `false` - disable image preloading\n- `{ ahead: number }` - enable with custom look-ahead window",
604 "markdownDescription": "Preload images extracted from slides for faster navigation.\n\n- `true` - enable with default look-ahead of 3 slides\n- `false` - disable image preloading\n- `{ ahead: number }` - enable with custom look-ahead window",
605 "default": true
606 },
607 "defaults": {
608 "$ref": "#/definitions/Frontmatter",
609 "description": "Default frontmatter options applied to all slides",
610 "markdownDescription": "Default frontmatter options applied to all slides"
611 }
612 }
613 },
614 "BuiltinLayouts": {
615 "type": "string",
616 "enum": [
617 "404",
618 "center",
619 "cover",
620 "default",
621 "end",
622 "error",
623 "fact",
624 "full",
625 "iframe-left",
626 "iframe-right",
627 "iframe",
628 "image-left",
629 "image-right",
630 "image",
631 "intro",
632 "none",
633 "quote",
634 "section",
635 "statement",
636 "two-cols-header",
637 "two-cols"
638 ]
639 },
640 "BuiltinSlideTransition": {
641 "type": "string",
642 "enum": [
643 "fade",
644 "fade-out",
645 "slide-up",
646 "slide-down",
647 "slide-left",
648 "slide-right",
649 "view-transition"
650 ]
651 },
652 "TransitionGroupProps": {
653 "type": "object",
654 "properties": {
655 "appear": {
656 "type": "boolean"
657 },
658 "persisted": {
659 "type": "boolean"
660 },
661 "tag": {
662 "type": "string"
663 },
664 "moveClass": {
665 "type": "string"
666 },
667 "css": {
668 "type": "boolean"
669 },
670 "duration": {
671 "anyOf": [
672 {
673 "type": "number"
674 },
675 {
676 "type": "object",
677 "properties": {
678 "enter": {
679 "type": "number"
680 },
681 "leave": {
682 "type": "number"
683 }
684 },
685 "required": [
686 "enter",
687 "leave"
688 ]
689 }
690 ]
691 },
692 "enterFromClass": {
693 "type": "string"
694 },
695 "enterActiveClass": {
696 "type": "string"
697 },
698 "enterToClass": {
699 "type": "string"
700 },
701 "appearFromClass": {
702 "type": "string"
703 },
704 "appearActiveClass": {
705 "type": "string"
706 },
707 "appearToClass": {
708 "type": "string"
709 },
710 "leaveFromClass": {
711 "type": "string"
712 },
713 "leaveActiveClass": {
714 "type": "string"
715 },
716 "leaveToClass": {
717 "type": "string"
718 }
719 }
720 },
721 "SlidevThemeConfig": {
722 "type": "object",
723 "additionalProperties": {
724 "type": [
725 "string",
726 "number"
727 ]
728 }
729 },
730 "FontOptions": {
731 "type": "object",
732 "properties": {
733 "sans": {
734 "anyOf": [
735 {
736 "type": "string"
737 },
738 {
739 "type": "array",
740 "items": {
741 "type": "string"
742 }
743 }
744 ],
745 "description": "Sans serif fonts (default fonts for most text)",
746 "markdownDescription": "Sans serif fonts (default fonts for most text)"
747 },
748 "serif": {
749 "anyOf": [
750 {
751 "type": "string"
752 },
753 {
754 "type": "array",
755 "items": {
756 "type": "string"
757 }
758 }
759 ],
760 "description": "Serif fonts",
761 "markdownDescription": "Serif fonts"
762 },
763 "mono": {
764 "anyOf": [
765 {
766 "type": "string"
767 },
768 {
769 "type": "array",
770 "items": {
771 "type": "string"
772 }
773 }
774 ],
775 "description": "Monospace fonts, for code blocks and etc.",
776 "markdownDescription": "Monospace fonts, for code blocks and etc."
777 },
778 "custom": {
779 "anyOf": [
780 {
781 "type": "string"
782 },
783 {
784 "type": "array",
785 "items": {
786 "type": "string"
787 }
788 }
789 ],
790 "description": "Load webfonts for custom CSS (does not apply anywhere by default)",
791 "markdownDescription": "Load webfonts for custom CSS (does not apply anywhere by default)"
792 },
793 "weights": {
794 "anyOf": [
795 {
796 "type": "string"
797 },
798 {
799 "type": "array",
800 "items": {
801 "type": [
802 "string",
803 "number"
804 ]
805 }
806 }
807 ],
808 "description": "Weights for fonts",
809 "markdownDescription": "Weights for fonts",
810 "default": [
811 200,
812 400,
813 600
814 ]
815 },
816 "italic": {
817 "type": "boolean",
818 "description": "Import italic fonts",
819 "markdownDescription": "Import italic fonts",
820 "default": false
821 },
822 "provider": {
823 "type": "string",
824 "enum": [
825 "none",
826 "google",
827 "coollabs"
828 ],
829 "default": "google"
830 },
831 "webfonts": {
832 "type": "array",
833 "items": {
834 "type": "string"
835 },
836 "description": "Specify web fonts names, will detect from `sans`, `mono`, `serif` if not provided",
837 "markdownDescription": "Specify web fonts names, will detect from `sans`, `mono`, `serif` if not provided"
838 },
839 "local": {
840 "type": "array",
841 "items": {
842 "type": "string"
843 },
844 "description": "Specify local fonts names, be excluded from webfonts",
845 "markdownDescription": "Specify local fonts names, be excluded from webfonts"
846 },
847 "fallbacks": {
848 "type": "boolean",
849 "description": "Use fonts fallback",
850 "markdownDescription": "Use fonts fallback",
851 "default": true
852 }
853 }
854 },
855 "DrawingsOptions": {
856 "type": "object",
857 "properties": {
858 "persist": {
859 "type": [
860 "boolean",
861 "string"
862 ],
863 "description": "Persist the drawings to disk Passing string to specify the directory (default to `.slidev/drawings`)",
864 "markdownDescription": "Persist the drawings to disk\nPassing string to specify the directory (default to `.slidev/drawings`)",
865 "default": false
866 },
867 "enabled": {
868 "anyOf": [
869 {
870 "type": "boolean"
871 },
872 {
873 "type": "string",
874 "const": "dev"
875 },
876 {
877 "type": "string",
878 "const": "build"
879 }
880 ],
881 "default": true
882 },
883 "presenterOnly": {
884 "type": "boolean",
885 "description": "Only allow drawing from presenter mode",
886 "markdownDescription": "Only allow drawing from presenter mode",
887 "default": false
888 },
889 "syncAll": {
890 "type": "boolean",
891 "description": "Sync drawing for all instances",
892 "markdownDescription": "Sync drawing for all instances",
893 "default": true
894 }
895 }
896 },
897 "SeoMeta": {
898 "type": "object",
899 "properties": {
900 "ogTitle": {
901 "type": "string"
902 },
903 "ogDescription": {
904 "type": "string"
905 },
906 "ogImage": {
907 "type": "string"
908 },
909 "ogUrl": {
910 "type": "string"
911 },
912 "twitterCard": {
913 "type": "string",
914 "enum": [
915 "summary",
916 "summary_large_image",
917 "app",
918 "player"
919 ]
920 },
921 "twitterSite": {
922 "type": "string"
923 },
924 "twitterTitle": {
925 "type": "string"
926 },
927 "twitterDescription": {
928 "type": "string"
929 },
930 "twitterImage": {
931 "type": "string"
932 },
933 "twitterUrl": {
934 "type": "string"
935 }
936 },
937 "description": "The following type should map to unhead MataFlat type",
938 "markdownDescription": "The following type should map to unhead MataFlat type"
939 },
940 "Frontmatter": {
941 "type": "object",
942 "properties": {
943 "transition": {
944 "anyOf": [
945 {
946 "$ref": "#/definitions/BuiltinSlideTransition"
947 },
948 {
949 "type": "string"
950 },
951 {
952 "$ref": "#/definitions/TransitionGroupProps"
953 },
954 {
955 "type": "null"
956 }
957 ],
958 "description": "Page transition, powered by Vue's `<TransitionGroup/>`\n\nBuilt-in transitions:\n- fade\n- fade-out\n- slide-left\n- slide-right\n- slide-up\n- slide-down\n- view-transition\n\nSee https://sli.dev/guide/animations.html#pages-transitions\n\nSee https://vuejs.org/guide/built-ins/transition.html",
959 "markdownDescription": "Page transition, powered by Vue's `<TransitionGroup/>`\n\nBuilt-in transitions:\n- fade\n- fade-out\n- slide-left\n- slide-right\n- slide-up\n- slide-down\n- view-transition\n\nSee https://sli.dev/guide/animations.html#pages-transitions\n\nSee https://vuejs.org/guide/built-ins/transition.html"
960 },
961 "layout": {
962 "anyOf": [
963 {
964 "$ref": "#/definitions/BuiltinLayouts"
965 },
966 {
967 "type": "string"
968 }
969 ],
970 "description": "Slide layout to use\n\nDefault to 'cover' for the first slide, 'default' for the rest",
971 "markdownDescription": "Slide layout to use\n\nDefault to 'cover' for the first slide, 'default' for the rest"
972 },
973 "class": {
974 "anyOf": [
975 {
976 "type": "string"
977 },
978 {
979 "type": "array",
980 "items": {
981 "type": "string"
982 }
983 },
984 {
985 "type": "object",
986 "additionalProperties": {}
987 }
988 ],
989 "description": "Custom class added to the slide root element",
990 "markdownDescription": "Custom class added to the slide root element"
991 },
992 "clicks": {
993 "type": "number",
994 "description": "Manually specified the total clicks needed to this slide\n\nWhen not specified, the clicks will be calculated by the usage of v-clicks\n\nSee https://sli.dev/guide/animations",
995 "markdownDescription": "Manually specified the total clicks needed to this slide\n\nWhen not specified, the clicks will be calculated by the usage of v-clicks\n\nSee https://sli.dev/guide/animations"
996 },
997 "clicksStart": {
998 "type": "number",
999 "description": "Manually specified the total clicks needed to this slide to start",
1000 "markdownDescription": "Manually specified the total clicks needed to this slide to start",
1001 "default": 0
1002 },
1003 "preload": {
1004 "type": "boolean",
1005 "description": "Preload the slide when the previous slide is active",
1006 "markdownDescription": "Preload the slide when the previous slide is active",
1007 "default": true
1008 },
1009 "hide": {
1010 "type": "boolean",
1011 "description": "Completely hide and disable the slide",
1012 "markdownDescription": "Completely hide and disable the slide"
1013 },
1014 "disabled": {
1015 "type": "boolean",
1016 "description": "Same as `hide`, completely hide and disable the slide",
1017 "markdownDescription": "Same as `hide`, completely hide and disable the slide"
1018 },
1019 "hideInToc": {
1020 "type": "boolean",
1021 "description": "Hide the slide for the `<Toc>` components\n\nSee https://sli.dev/builtin/components#toc",
1022 "markdownDescription": "Hide the slide for the `<Toc>` components\n\nSee https://sli.dev/builtin/components#toc"
1023 },
1024 "title": {
1025 "type": "string",
1026 "description": "Override the title for the `<TitleRenderer>` and `<Toc>` components Only if `title` has also been declared",
1027 "markdownDescription": "Override the title for the `<TitleRenderer>` and `<Toc>` components\nOnly if `title` has also been declared"
1028 },
1029 "level": {
1030 "type": "number",
1031 "description": "Override the title level for the `<TitleRenderer>` and `<Toc>` components Only if `title` has also been declared",
1032 "markdownDescription": "Override the title level for the `<TitleRenderer>` and `<Toc>` components\nOnly if `title` has also been declared"
1033 },
1034 "routeAlias": {
1035 "type": "string",
1036 "description": "Create a route alias that can be used in the URL or with the `<Link>` component",
1037 "markdownDescription": "Create a route alias that can be used in the URL or with the `<Link>` component"
1038 },
1039 "zoom": {
1040 "type": "number",
1041 "description": "Custom zoom level for the slide",
1042 "markdownDescription": "Custom zoom level for the slide",
1043 "default": 1
1044 },
1045 "clickAnimation": {
1046 "type": "string",
1047 "description": "Default click animation for the slide",
1048 "markdownDescription": "Default click animation for the slide"
1049 },
1050 "dragPos": {
1051 "type": "object",
1052 "additionalProperties": {
1053 "type": "string"
1054 },
1055 "description": "Store the positions of draggable elements Normally you don't need to set this manually\n\nSee https://sli.dev/features/draggable",
1056 "markdownDescription": "Store the positions of draggable elements\nNormally you don't need to set this manually\n\nSee https://sli.dev/features/draggable"
1057 },
1058 "src": {
1059 "type": "string",
1060 "description": "Includes a markdown file\n\nSee https://sli.dev/guide/syntax.html#importing-slides",
1061 "markdownDescription": "Includes a markdown file\n\nSee https://sli.dev/guide/syntax.html#importing-slides"
1062 }
1063 }
1064 }
1065 }
1066 }
1067
1067 lines JSON