返回 reveal.js
config.ts
根目录 / js / config.ts
1 /**
2 * Slide transition styles.
3 *
4 * @see {@link https://revealjs.com/transitions/}
5 */
6 type TransitionStyle = 'none' | 'fade' | 'slide' | 'convex' | 'concave' | 'zoom';
7
8 /**
9 * Slide transition speeds.
10 *
11 * @see {@link https://revealjs.com/transitions/}
12 */
13 type TransitionSpeed = 'default' | 'fast' | 'slow';
14
15 /**
16 * Fragment animation classes.
17 *
18 * @see {@link https://revealjs.com/fragments/}
19 */
20 type FragmentAnimation =
21 | 'fade-out'
22 | 'fade-up'
23 | 'fade-down'
24 | 'fade-left'
25 | 'fade-right'
26 | 'fade-in-then-out'
27 | 'fade-in-then-semi-out'
28 | 'grow'
29 | 'shrink'
30 | 'strike'
31 | 'highlight-red'
32 | 'highlight-blue'
33 | 'highlight-green'
34 | 'highlight-current-red'
35 | 'highlight-current-blue'
36 | 'highlight-current-green'
37 | (string & {});
38
39 /**
40 * katex - Math Plugin configuration
41 *
42 * @see {@link https://github.com/reveal/revealjs.com/blob/master/src/math.md}
43 * @see {@link https://github.com/hakimel/reveal.js/blob/master/plugin/math/katex.js}
44 */
45 interface KatexConfig {
46 local?: string;
47 version?: string;
48 delimiters?: Array<{ left: string; right: string; display: boolean }>;
49 ignoredTags?: string[];
50 }
51
52 /**
53 * mathjax2 - Math Plugin configuration
54 *
55 * @see {@link https://github.com/reveal/revealjs.com/blob/master/src/math.md}
56 * @see {@link https://github.com/hakimel/reveal.js/blob/master/plugin/math/mathjax2.js}
57 */
58 interface Mathjax2Config {
59 mathjax?: string;
60 config?: string;
61 tex2jax?: {
62 inlineMath?: any;
63 skipTags?: string[];
64 };
65 }
66
67 /**
68 * mathjax3 - Math Plugin configuration
69 *
70 * @see {@link https://github.com/reveal/revealjs.com/blob/master/src/math.md}
71 * @see {@link https://github.com/hakimel/reveal.js/blob/master/plugin/math/mathjax3.js}
72 */
73 interface Mathjax3Config {
74 mathjax?: string;
75 tex?: { inlineMath?: any };
76 options?: { skipHtmlTags: string[] };
77 }
78
79 /**
80 * mathjax4 - Math Plugin configuration
81 *
82 * @see {@link https://github.com/reveal/revealjs.com/blob/master/src/math.md}
83 * @see {@link https://github.com/hakimel/reveal.js/blob/master/plugin/math/mathjax4.js}
84 */
85 interface Mathjax4Config {
86 mathjax?: string;
87 tex?: {
88 inlineMath?: Array<[string, string]>;
89 displayMath?: Array<[string, string]>;
90 macros?: Record<string, string | [string, number]>;
91 };
92 options?: {
93 skipHtmlTags?: string[];
94 };
95 startup?: {
96 ready?: () => void;
97 };
98 output?: {
99 font?: string;
100 displayOverflow?: string;
101 linebreaks?: {
102 inline?: boolean;
103 width?: string;
104 lineleading?: number;
105 LinebreakVisitor?: unknown;
106 };
107 };
108 }
109
110 /**
111 * Highlight Plugin configuration
112 *
113 * @see {@link https://github.com/hakimel/reveal.js/blob/master/plugin/highlight/plugin.js}
114 */
115 interface HighlightConfig {
116 highlightOnLoad?: boolean;
117 escapeHTML?: boolean;
118 beforeHighlight?: (...args: any) => any;
119 }
120
121 /**
122 * Markdown Plugin configuration
123 *
124 * @see {@link https://github.com/reveal/revealjs.com/blob/master/src/markdown.md}
125 * @see {@link https://marked.js.org/using_advanced}
126 */
127 interface MarkdownConfig {
128 async?: boolean;
129 baseUrl?: string;
130 breaks?: boolean;
131 gfm?: boolean;
132 headerIds?: boolean;
133 headerPrefix?: string;
134 highlight?: (...args: any) => any;
135 langPrefix?: string;
136 mangle?: boolean;
137 pedantic?: boolean;
138 renderer?: object;
139 sanitize?: boolean;
140 sanitizer?: (...args: any) => any;
141 silent?: boolean;
142 smartLists?: boolean;
143 smartypants?: boolean;
144 tokenizer?: object;
145 walkTokens?: (...args: any) => any;
146 xhtml?: boolean;
147 separator?: string;
148 verticalSeparator?: string;
149 notesSeparator?: string;
150 attributes?: string;
151 }
152
153 /**
154 * Configuration object for reveal.js.
155 *
156 * @see {@link https://revealjs.com/config/}
157 */
158 interface RevealConfig {
159 /**
160 * The "normal" size of the presentation, aspect ratio will be preserved
161 * when the presentation is scaled to fit different resolutions
162 *
163 * @see {@link https://revealjs.com/presentation-size/}
164 *
165 * @defaultValue 960
166 */
167 width?: number | string;
168
169 /**
170 * The "normal" size of the presentation, aspect ratio will be preserved
171 * when the presentation is scaled to fit different resolutions
172 *
173 * @see {@link https://revealjs.com/presentation-size/}
174 *
175 * @defaultValue 700
176 */
177 height?: number | string;
178
179 /**
180 * Factor of the display size that should remain empty around the content
181 *
182 * @see {@link https://revealjs.com/presentation-size/}
183 *
184 * @defaultValue 0.04
185 */
186 margin?: number;
187
188 /**
189 * The smallest possible factor to scale content down by in order to fit
190 * the available viewport.
191 *
192 * @see {@link https://revealjs.com/presentation-size/}
193 *
194 * @defaultValue 0.2
195 */
196 minScale?: number;
197
198 /**
199 * The largest possible factor to scale content up by in order to cover
200 * the available viewport.
201 *
202 * @see {@link https://revealjs.com/presentation-size/}
203 *
204 * @defaultValue 2.0
205 */
206 maxScale?: number;
207
208 /**
209 * Display presentation control arrows
210 * - true: Display controls in all views
211 * - false: Hide controls in all views
212 * - 'speaker': Display controls only in the speaker view
213 *
214 * @defaultValue true
215 */
216 controls?: boolean | 'speaker' | 'speaker-only';
217
218 /**
219 * Help the user learn the controls by providing hints, for example by
220 * bouncing the down arrow when they first encounter a vertical slide
221 *
222 * @defaultValue true
223 */
224 controlsTutorial?: boolean;
225
226 /**
227 * Determines where controls appear, "edges" or "bottom-right"
228 *
229 * @defaultValue 'bottom-right'
230 */
231 controlsLayout?: 'edges' | 'bottom-right';
232
233 /**
234 * Visibility rule for backwards navigation arrows; "faded", "hidden"
235 * or "visible"
236 *
237 * @defaultValue 'faded'
238 */
239 controlsBackArrows?: 'faded' | 'hidden' | 'visible';
240
241 /**
242 * Display a presentation progress bar
243 *
244 * @defaultValue true
245 */
246 progress?: boolean;
247
248 /**
249 * Display the page number of the current slide
250 * - true: Show slide number
251 * - false: Hide slide number
252 *
253 * Can optionally be set as a string that specifies the number formatting:
254 * - "h.v": Horizontal . vertical slide number (default)
255 * - "h/v": Horizontal / vertical slide number
256 * - "c": Flattened slide number
257 * - "c/t": Flattened slide number / total slides
258 *
259 * Alternatively, you can provide a function that returns the slide
260 * number for the current slide. The function should take in a slide
261 * object and return an array with one string [slideNumber] or
262 * three strings [n1,delimiter,n2]. See #formatSlideNumber().
263 *
264 * @defaultValue false
265 */
266 slideNumber?:
267 | boolean
268 | 'h.v'
269 | 'h/v'
270 | 'c'
271 | 'c/t'
272 | ((slide: any) => string | [string, string, string]);
273
274 /**
275 * Can be used to limit the contexts in which the slide number appears
276 * - "all": Always show the slide number
277 * - "print": Only when printing to PDF
278 * - "speaker": Only in the speaker view
279 *
280 * @defaultValue 'all'
281 */
282 showSlideNumber?: 'all' | 'print' | 'speaker';
283
284 /**
285 * Use 1 based indexing for # links to match slide number (default is zero
286 * based)
287 *
288 * @defaultValue false
289 */
290 hashOneBasedIndex?: boolean;
291
292 /**
293 * Add the current slide number to the URL hash so that reloading the
294 * page/copying the URL will return you to the same slide
295 *
296 * @defaultValue false
297 */
298 hash?: boolean;
299
300 /**
301 * Flags if we should monitor the hash and change slides accordingly
302 *
303 * @defaultValue true
304 */
305 respondToHashChanges?: boolean;
306
307 /**
308 * Enable support for jump-to-slide navigation shortcuts
309 *
310 * @defaultValue true
311 */
312 jumpToSlide?: boolean;
313
314 /**
315 * Push each slide change to the browser history. Implies `hash: true`
316 *
317 * @defaultValue false
318 */
319 history?: boolean;
320
321 /**
322 * Enable keyboard shortcuts for navigation
323 *
324 * @defaultValue true
325 */
326 keyboard?: boolean | { [keyCode: number]: string | ((event: KeyboardEvent) => void) };
327
328 /**
329 * Optional function that blocks keyboard events when returning false
330 *
331 * If you set this to 'focused', we will only capture keyboard events
332 * for embedded decks when they are in focus
333 *
334 * @defaultValue null
335 */
336 keyboardCondition?: null | 'focused' | ((event: KeyboardEvent) => boolean);
337
338 /**
339 * Disables the default reveal.js slide layout (scaling and centering)
340 * so that you can use custom CSS layout
341 *
342 * @defaultValue false
343 */
344 disableLayout?: boolean;
345
346 /**
347 * Enable the slide overview mode
348 *
349 * @see {@link https://revealjs.com/overview/}
350 *
351 * @defaultValue true
352 */
353 overview?: boolean;
354
355 /**
356 * Vertical centering of slides
357 *
358 * @defaultValue true
359 */
360 center?: boolean;
361
362 /**
363 * Enables touch navigation on devices with touch input
364 *
365 * @defaultValue true
366 */
367 touch?: boolean;
368
369 /**
370 * Loop the presentation
371 *
372 * @defaultValue false
373 */
374 loop?: boolean;
375
376 /**
377 * Change the presentation direction to be RTL
378 *
379 * @defaultValue false
380 */
381 rtl?: boolean;
382
383 /**
384 * Changes the behavior of our navigation directions.
385 *
386 * "default"
387 * Left/right arrow keys step between horizontal slides, up/down
388 * arrow keys step between vertical slides. Space key steps through
389 * all slides (both horizontal and vertical).
390 *
391 * "linear"
392 * Removes the up/down arrows. Left/right arrows step through all
393 * slides (both horizontal and vertical).
394 *
395 * "grid"
396 * When this is enabled, stepping left/right from a vertical stack
397 * to an adjacent vertical stack will land you at the same vertical
398 * index.
399 *
400 * Consider a deck with six slides ordered in two vertical stacks:
401 * 1.1 2.1
402 * 1.2 2.2
403 * 1.3 2.3
404 *
405 * If you're on slide 1.3 and navigate right, you will normally move
406 * from 1.3 -> 2.1. If "grid" is used, the same navigation takes you
407 * from 1.3 -> 2.3.
408 *
409 * @defaultValue 'default'
410 */
411 navigationMode?: 'default' | 'linear' | 'grid';
412
413 /**
414 * Randomizes the order of slides each time the presentation loads
415 *
416 * @defaultValue false
417 */
418 shuffle?: boolean;
419
420 /**
421 * Turns fragments on and off globally
422 *
423 * @see {@link https://revealjs.com/fragments/}
424 *
425 * @defaultValue true
426 */
427 fragments?: boolean;
428
429 /**
430 * Flags whether to include the current fragment in the URL,
431 * so that reloading brings you to the same fragment position
432 *
433 * @defaultValue true
434 */
435 fragmentInURL?: boolean;
436
437 /**
438 * Flags if the presentation is running in an embedded mode,
439 * i.e. contained within a limited portion of the screen
440 *
441 * @defaultValue false
442 */
443 embedded?: boolean;
444
445 /**
446 * Flags if we should show a help overlay when the question-mark
447 * key is pressed
448 *
449 * @defaultValue true
450 */
451 help?: boolean;
452
453 /**
454 * Flags if it should be possible to pause the presentation (blackout)
455 *
456 * @defaultValue true
457 */
458 pause?: boolean;
459
460 /**
461 * Flags if speaker notes should be visible to all viewers
462 *
463 * @defaultValue false
464 */
465 showNotes?: boolean;
466
467 /**
468 * Flags if slides with data-visibility="hidden" should be kept visible
469 *
470 * @defaultValue false
471 */
472 showHiddenSlides?: boolean;
473
474 /**
475 * Global override for autoplaying embedded media (video/audio/iframe)
476 * - null: Media will only autoplay if data-autoplay is present
477 * - true: All media will autoplay, regardless of individual setting
478 * - false: No media will autoplay, regardless of individual setting
479 *
480 * @defaultValue null
481 */
482 autoPlayMedia?: null | boolean;
483
484 /**
485 * Global override for preloading lazy-loaded iframes
486 * - null: Iframes with data-src AND data-preload will be loaded when within
487 * the viewDistance, iframes with only data-src will be loaded when visible
488 * - true: All iframes with data-src will be loaded when within the viewDistance
489 * - false: All iframes with data-src will be loaded only when visible
490 *
491 * @defaultValue null
492 */
493 preloadIframes?: null | boolean;
494
495 /**
496 * Prevent embedded iframes from automatically focusing on themselves
497 *
498 * @defaultValue false
499 */
500 preventIframeAutoFocus?: boolean;
501
502 /**
503 * Can be used to globally disable auto-animation
504 *
505 * @see {@link https://revealjs.com/auto-animate/}
506 *
507 * @defaultValue true
508 */
509 autoAnimate?: boolean;
510
511 /**
512 * Optionally provide a custom element matcher that will be
513 * used to dictate which elements we can animate between.
514 *
515 * @defaultValue null
516 */
517 autoAnimateMatcher?: null | Function;
518
519 /**
520 * Default settings for our auto-animate transitions, can be
521 * overridden per-slide or per-element via data arguments
522 *
523 * @defaultValue 'ease'
524 */
525 autoAnimateEasing?: 'ease' | string;
526
527 /**
528 * Number of seconds to animate each element.
529 *
530 * @defaultValue 1.0
531 */
532 autoAnimateDuration?: number;
533
534 /**
535 * Should unmatched elements be faded in?
536 *
537 * @defaultValue true
538 */
539 autoAnimateUnmatched?: boolean;
540
541 /**
542 * CSS properties that can be auto-animated. Position & scale
543 * is matched separately so there's no need to include styles
544 * like top/right/bottom/left, width/height or margin.
545 *
546 * @defaultValue ['opacity', 'color', 'background-color', 'padding', 'font-size', 'line-height', 'letter-spacing', 'border-width', 'border-color', 'border-radius', 'outline', 'outline-offset']
547 */
548 autoAnimateStyles?: string[];
549
550 /**
551 * Controls automatic progression to the next slide
552 * - 0: Auto-sliding only happens if the data-autoslide HTML attribute
553 * is present on the current slide or fragment
554 * - 1+: All slides will progress automatically at the given interval
555 * - false: No auto-sliding, even if data-autoslide is present
556 *
557 * @defaultValue 0
558 */
559 autoSlide?: number | false;
560
561 /**
562 * Stop auto-sliding after user input
563 *
564 * @defaultValue true
565 */
566 autoSlideStoppable?: boolean;
567
568 /**
569 * Use this method for navigation when auto-sliding (defaults to navigateNext)
570 *
571 * @defaultValue null
572 */
573 autoSlideMethod?: null | Function;
574
575 /**
576 * Specify the average time in seconds that you think you will spend
577 * presenting each slide. This is used to show a pacing timer in the
578 * speaker view
579 *
580 * @defaultValue null
581 */
582 defaultTiming?: null;
583
584 /**
585 * Enable slide navigation via mouse wheel
586 *
587 * @defaultValue false
588 */
589 mouseWheel?: boolean;
590
591 /**
592 * Opens links in an iframe preview overlay
593 * Add `data-preview-link` and `data-preview-link="false"` to customize each link
594 * individually
595 *
596 * @defaultValue false
597 */
598 previewLinks?: boolean;
599
600 /**
601 * Exposes the reveal.js API through window.postMessage
602 *
603 * @defaultValue true
604 */
605 postMessage?: boolean;
606
607 /**
608 * Dispatches all reveal.js events to the parent window through postMessage
609 *
610 * @defaultValue false
611 */
612 postMessageEvents?: boolean;
613
614 /**
615 * Focuses body when page changes visibility to ensure keyboard shortcuts work
616 *
617 * @defaultValue true
618 */
619 focusBodyOnPageVisibilityChange?: boolean;
620
621 /**
622 * Transition style
623 *
624 * @see {@link https://revealjs.com/transitions/}
625 *
626 * @defaultValue 'slide'
627 */
628 transition?: TransitionStyle;
629
630 /**
631 * Transition speed
632 *
633 * @defaultValue 'default'
634 */
635 transitionSpeed?: TransitionSpeed;
636
637 /**
638 * Transition style for full page slide backgrounds
639 *
640 * @defaultValue 'fade'
641 */
642 backgroundTransition?: TransitionStyle;
643
644 /**
645 * Parallax background image
646 *
647 * @defaultValue ''
648 */
649 parallaxBackgroundImage?: null | string; // CSS syntax, e.g. "a.jpg"
650
651 /**
652 * Parallax background size
653 *
654 * @defaultValue ''
655 */
656 parallaxBackgroundSize?: null | string; // CSS syntax, e.g. "3000px 2000px"
657
658 /**
659 * Parallax background repeat
660 *
661 * @defaultValue ''
662 */
663 parallaxBackgroundRepeat?: null | string; // repeat/repeat-x/repeat-y/no-repeat/initial/inherit
664
665 /**
666 * Parallax background position
667 *
668 * @defaultValue ''
669 */
670 parallaxBackgroundPosition?: null | string; // CSS syntax, e.g. "top left"
671
672 /**
673 * Amount of pixels to move the parallax background per slide step
674 *
675 * @defaultValue null
676 */
677 parallaxBackgroundHorizontal?: null | number;
678 /**
679 *
680 * @defaultValue null
681 */
682 parallaxBackgroundVertical?: null | number;
683
684 /**
685 * Can be used to initialize reveal.js in one of the following views:
686 * - print: Render the presentation so that it can be printed to PDF
687 * - scroll: Show the presentation as a tall scrollable page with scroll
688 * triggered animations
689 *
690 * @see {@link https://revealjs.com/scroll-view/}
691 *
692 * @defaultValue null
693 */
694 view?: null | 'print' | 'scroll';
695
696 /**
697 * Adjusts the height of each slide in the scroll view.
698 * - full: Each slide is as tall as the viewport
699 * - compact: Slides are as small as possible, allowing multiple slides
700 * to be visible in parallel on tall devices
701 *
702 * @defaultValue 'full'
703 */
704 scrollLayout?: 'full' | 'compact';
705
706 /**
707 * Control how scroll snapping works in the scroll view.
708 * - false: No snapping, scrolling is continuous
709 * - proximity: Snap when close to a slide
710 * - mandatory: Always snap to the closest slide
711 *
712 * Only applies to presentations in scroll view.
713 *
714 * @defaultValue 'mandatory'
715 */
716 scrollSnap?: false | 'proximity' | 'mandatory';
717
718 /**
719 * Enables and configures the scroll view progress bar.
720 * - 'auto': Show the scrollbar while scrolling, hide while idle
721 * - true: Always show the scrollbar
722 * - false: Never show the scrollbar
723 *
724 * @defaultValue 'auto'
725 */
726 scrollProgress?: 'auto' | boolean;
727
728 /**
729 * Automatically activate the scroll view when we the viewport falls
730 * below the given width.
731 *
732 * @defaultValue 435
733 */
734 scrollActivationWidth?: number;
735
736 /**
737 * The maximum number of pages a single slide can expand onto when printing
738 * to PDF, unlimited by default
739 *
740 * @defaultValue Number.POSITIVE_INFINITY
741 */
742 pdfMaxPagesPerSlide?: number;
743
744 /**
745 * Prints each fragment on a separate slide
746 *
747 * @defaultValue true
748 */
749 pdfSeparateFragments?: boolean;
750
751 /**
752 * Offset used to reduce the height of content within exported PDF pages.
753 * This exists to account for environment differences based on how you
754 * print to PDF. CLI printing options, like phantomjs and wkpdf, can end
755 * on precisely the total height of the document whereas in-browser
756 * printing has to end one pixel before.
757 *
758 * @defaultValue -1
759 */
760 pdfPageHeightOffset?: number;
761
762 /**
763 * Number of slides away from the current that are visible
764 *
765 * @defaultValue 3
766 */
767 viewDistance?: number;
768
769 /**
770 * Number of slides away from the current that are visible on mobile
771 * devices. It is advisable to set this to a lower number than
772 * viewDistance in order to save resources.
773 *
774 * @defaultValue 2
775 */
776 mobileViewDistance?: number;
777
778 /**
779 * The display mode that will be used to show slides
780 *
781 * @defaultValue 'block'
782 */
783 display?: string;
784
785 /**
786 * Hide cursor if inactive
787 *
788 * @defaultValue true
789 */
790 hideInactiveCursor?: boolean;
791
792 /**
793 * Time before the cursor is hidden (in ms)
794 *
795 * @defaultValue 5000
796 */
797 hideCursorTime?: number;
798
799 /**
800 * Should we automatically sort and set indices for fragments
801 * at each sync? (See Reveal.sync)
802 *
803 * @defaultValue true
804 */
805 sortFragmentsOnSync?: boolean;
806
807 /**
808 * Highlight plugin configuration
809 */
810 highlight?: HighlightConfig;
811
812 /**
813 * Markdown plugin configuration
814 */
815 markdown?: MarkdownConfig;
816
817 /**
818 * KaTeX math plugin configuration
819 */
820 katex?: KatexConfig;
821
822 /**
823 * MathJax 2 plugin configuration
824 */
825 mathjax2?: Mathjax2Config;
826
827 /**
828 * MathJax 3 plugin configuration
829 */
830 mathjax3?: Mathjax3Config;
831
832 /**
833 * MathJax 4 plugin configuration
834 */
835 mathjax4?: Mathjax4Config;
836
837 /**
838 * Script dependencies to load
839 *
840 * @defaultValue []
841 */
842 dependencies?: any[];
843
844 /**
845 * Plugin objects to register and use for this presentation
846 *
847 * @defaultValue []
848 */
849 plugins?: any[];
850 }
851
852 /**
853 * The default reveal.js config object.
854 */
855 const defaultConfig: RevealConfig = {
856 width: 960,
857 height: 700,
858 margin: 0.04,
859 minScale: 0.2,
860 maxScale: 2.0,
861
862 controls: true,
863 controlsTutorial: true,
864 controlsLayout: 'bottom-right',
865 controlsBackArrows: 'faded',
866 progress: true,
867
868 slideNumber: false,
869 showSlideNumber: 'all',
870 hashOneBasedIndex: false,
871 hash: false,
872 respondToHashChanges: true,
873 jumpToSlide: true,
874 history: false,
875 keyboard: true,
876 keyboardCondition: null,
877 disableLayout: false,
878 overview: true,
879 center: true,
880 touch: true,
881 loop: false,
882 rtl: false,
883 navigationMode: 'default',
884 shuffle: false,
885 fragments: true,
886 fragmentInURL: true,
887 embedded: false,
888 help: true,
889 pause: true,
890 showNotes: false,
891 showHiddenSlides: false,
892 autoPlayMedia: null,
893 preloadIframes: null,
894 mouseWheel: false,
895 previewLinks: false,
896 viewDistance: 3,
897 mobileViewDistance: 2,
898 display: 'block',
899 hideInactiveCursor: true,
900 hideCursorTime: 5000,
901 sortFragmentsOnSync: true,
902
903 autoAnimate: true,
904 autoAnimateMatcher: null,
905 autoAnimateEasing: 'ease',
906 autoAnimateDuration: 1.0,
907 autoAnimateUnmatched: true,
908
909 autoAnimateStyles: [
910 'opacity',
911 'color',
912 'background-color',
913 'padding',
914 'font-size',
915 'line-height',
916 'letter-spacing',
917 'border-width',
918 'border-color',
919 'border-radius',
920 'outline',
921 'outline-offset',
922 ],
923
924 autoSlide: 0,
925 autoSlideStoppable: true,
926 autoSlideMethod: null,
927 defaultTiming: null,
928
929 postMessage: true,
930 postMessageEvents: false,
931
932 focusBodyOnPageVisibilityChange: true,
933
934 transition: 'slide',
935 transitionSpeed: 'default',
936 backgroundTransition: 'fade',
937
938 parallaxBackgroundImage: '',
939 parallaxBackgroundSize: '',
940 parallaxBackgroundRepeat: '',
941 parallaxBackgroundPosition: '',
942 parallaxBackgroundHorizontal: null,
943 parallaxBackgroundVertical: null,
944
945 view: null,
946
947 scrollLayout: 'full',
948 scrollSnap: 'mandatory',
949 scrollProgress: 'auto',
950 scrollActivationWidth: 435,
951
952 pdfMaxPagesPerSlide: Number.POSITIVE_INFINITY,
953 pdfSeparateFragments: true,
954 pdfPageHeightOffset: -1,
955
956 dependencies: [],
957 plugins: [],
958 };
959
960 export type {
961 RevealConfig,
962 TransitionStyle,
963 TransitionSpeed,
964 FragmentAnimation,
965 KatexConfig,
966 Mathjax2Config,
967 Mathjax3Config,
968 Mathjax4Config,
969 HighlightConfig,
970 MarkdownConfig,
971 };
972
973 export { defaultConfig };
974
974 lines TYPESCRIPT