8000 Merge pull request #2956 from ryzokuken/plugin-markdown · hakimel/reveal.js@2c115b8 · GitHub
[go: up one dir, main page]

Skip to content

Commit 2c115b8

Browse files
authored
Merge pull request #2956 from ryzokuken/plugin-markdown
markdown plugin improvements
2 parents 7daea49 + 03126c5 commit 2c115b8

File tree

1 file changed

+28
-20
lines changed

1 file changed

+28
-20
lines changed

plugin/markdown/plugin.js

Lines changed: 28 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -421,34 +421,42 @@ const Plugin = () => {
421421

422422
deck = reveal;
423423

424-
let renderer = new marked.Renderer();
424+
let { renderer, animateLists, ...markedOptions } = deck.getConfig().markdown;
425425

426-
renderer.code = ( code, language ) => {
426+
if (!renderer) {
427+
let renderer = new marked.Renderer();
427428

428-
// Off by default
429-
let lineNumbers = '';
429+
renderer.code = ( code, language ) => {
430430

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+
}
440443

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 );
445448

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+
}
448456

449457
marked.setOptions( {
450458
renderer,
451-
...deck.getConfig().markdown
459+
...markedOptions
452460
} );
453461

454462
return processSlides( deck.getRevealElement() ).then( convertSlides );

0 commit comments

Comments
 (0)
0