@@ -421,34 +421,42 @@ const Plugin = () => {
421
421
422
422
deck = reveal ;
423
423
424
- let renderer = new marked . Renderer ( ) ;
424
+ let { renderer, animateLists , ... markedOptions } = deck . getConfig ( ) . markdown ;
425
425
426
- renderer . code = ( code , language ) => {
426
+ if ( ! renderer ) {
427
+ let renderer = new marked . Renderer ( ) ;
427
428
428
- // Off by default
429
- let lineNumbers = '' ;
429
+ renderer . code = ( code , language ) => {
430
430
431
- // Users can opt in to show line numbers and highlight
432
- // specific lines.
433
- // ```javascript [] show line numbers
434
- // ```javascript [1,4-8] highlights lines 1 and 4-8
435
- if ( CODE_LINE_NUMBER_REGEX . test ( language ) ) {
436
- lineNumbers = language . match ( CODE_LINE_NUMBER_REGEX ) [ 1 ] . trim ( ) ;
437
- lineNumbers = `data-line-numbers="${ lineNumbers } "` ;
438
- language = language . replace ( CODE_LINE_NUMBER_REGEX , '' ) . trim ( ) ;
439
- }
431
+ // Off by default
432
+ let lineNumbers = '' ;
433
+
434
+ // Users can opt in to show line numbers and highlight
435
+ // specific lines.
436
+ // ```javascript [] show line numbers
437
+ // ```javascript [1,4-8] highlights lines 1 and 4-8
438
+ if ( CODE_LINE_NUMBER_REGEX . test ( language ) ) {
439
+ lineNumbers = language . match ( CODE_LINE_NUMBER_REGEX ) [ 1 ] . trim ( ) ;
440
+ lineNumbers = `data-line-numbers="${ lineNumbers } "` ;
441
+ language = language . replace ( CODE_LINE_NUMBER_REGEX , '' ) . trim ( ) ;
442
+ }
440
443
441
- // Escape before this gets injected into the DOM to
442
- // avoid having the HTML parser alter our code before
443
- // highlight.js is able to read it
444
- code = escapeForHTML ( code ) ;
444
+ // Escape before this gets injected into the DOM to
445
+ // avoid having the HTML parser alter our code before
446
+ // highlight.js is able to read it
447
+ code = escapeForHTML ( code ) ;
445
448
446
- return `<pre><code ${ lineNumbers } class="${ language } ">${ code } </code></pre>` ;
447
- } ;
449
+ return `<pre><code ${ lineNumbers } class="${ language } ">${ code } </code></pre>` ;
450
+ } ;
451
+ }
452
+
453
+ if ( animateLists ) {
454
+ renderer . listitem = ( text ) => `<li class="fragment">${ text } </li>` ;
455
+ }
448
456
449
457
marked . setOptions ( {
450
458
renderer,
451
- ...deck . getConfig ( ) . markdown
459
+ ...markedOptions
452
460
} ) ;
453
461
454
462
return processSlides ( deck . getRevealElement ( ) ) . then ( convertSlides ) ;
0 commit comments