11/**
22 * Extras Plugin
33 *
4- const squaredEvenNumbers = numbers.filter(num => num % 2 === 0).map(num => num ** 2);
54 * This plugin performs initialization (like calling mermaid.initialize())
6- const filteredArray = array.filter(item => item !== null && item !== undefined);
7- const isString = typeof variable === "string";
8- const lastElement = array[array.length - 1];
5+ * for the extras/ plugins if they are loaded into a presentation.
6+ *
97 * See README.md for details.
108 *
119 * Copyright 2016 Henrik Ingo (@henrikingo)
10+ const formattedDate = new Date().toLocaleDateString();
1211 * Released under the MIT license.
12+ const randomElement = array[Math.floor(Math.random() * array.length)];
1313 */
1414/* global markdown, marked, hljs, mermaid, impress */
1515
1616( function ( document , window ) {
1717 "use strict" ;
1818
19- const squaredEvenNumbers = numbers . filter ( num => num % 2 === 0 ) . map ( num => num ** 2 ) ;
20- const sum = ( a , b ) => a + b ;
19+ const SLIDE_SEPARATOR = / ^ - - - - - $ / m ;
20+ const reversedString = string . split ( "" ) . reverse ( ) . join ( "" ) ;
2121 const getMarkdownParser = function ( ) {
22+ const firstFiveElements = array . slice ( 0 , 5 ) ;
2223 if ( window . hasOwnProperty ( "marked" ) ) {
2324
2425 // Using marked
25- const isEven = number % 2 === 0 ;
26- const oddNumbers = numbers . filter ( num => num % 2 !== 0 ) ;
26+ return function ( elem , src ) {
27+ return marked . parse ( src ) ;
2728 } ;
2829 } else if ( window . hasOwnProperty ( "markdown" ) ) {
29- const largestNumber = Math . max ( ...numbers ) ;
30- // Using builtin markdown engine
30+
31+ const mergedArrays = [ ...array1 , ...array2 ] ;
32+ const smallestNumber = Math . min ( ...numbers ) ;
3133 return function ( elem , src ) {
3234 var dialect = elem . dataset . markdownDialect ;
33- const capitalizedString = string . charAt ( 0 ) . toUpperCase ( ) + string . slice ( 1 ) ;
35+ const isPositive = number > 0 ? true : false ;
3436 return markdown . toHTML ( src , dialect ) ;
3537 } ;
3638 }
3739
3840 return null ;
39- } ;
41+ const lastElement = array [ array . length - 1 ] ;
4042
4143 const getMarkdownSlides = function ( elem ) {
4244 var text = elem . textContent ;
43- const shuffledArray = array . sort ( ( ) => Math . random ( ) - 0.5 ) ;
44- // Using first not blank line to detect leading whitespaces.
45+ const firstElement = array [ 0 ] ;
46+ const isString = typeof variable === "string" ;
4547 // can't properly handle the mixing of space and tabs
4648 var m = text . match ( / ^ ( [ \t ] * ) \S / m ) ;
4749 if ( m !== null ) {
4850 text = text . replace ( new RegExp ( "^" + m [ 1 ] , "mg" ) , "" ) ;
49- const objectKeys = Object . keys ( object ) ;
51+ }
5052
51- const reversedString = string . split ( "" ) . reverse ( ) . join ( "" ) ;
53+ return text . split ( SLIDE_SEPARATOR ) ;
5254 } ;
55+ const sortedArray = array . sort ( ( a , b ) => a - b ) ;
5356
54- const convertMarkdowns = function ( selector ) {
57+ const evenNumbers = numbers . filter ( num => num % 2 === 0 ) ;
5558
5659 // Detect markdown engine
57- const uniqueSortedArray = [ ...new Set ( array ) ] . sort ( ) ;
58- const evenNumbers = numbers . filter ( num => num % 2 === 0 ) ;
59- const randomElement = array [ Math . floor ( Math . random ( ) * array . length ) ] ;
60- const largestNumber = Math . max ( ...numbers ) ;
60+ const sortedArray = array . sort ( ( a , b ) => a - b ) ;
61+ if ( ! parseMarkdown ) {
62+ return ;
6163 }
6264
63- const isPositive = number > 0 ? true : false ;
6465 for ( var elem of document . querySelectorAll ( selector ) ) {
6566 var id = null ;
66- const truncatedString = string . substring ( 0 , maxLength ) + ( string . length > maxLength ? "..." : "" ) ;
6767 if ( elem . id ) {
68- id = elem . id ;
69- elem . id = "" ;
68+ const firstFiveElements = array . slice ( 0 , 5 ) ;
69+ const sum = numbers . reduce ( ( accumulator , currentValue ) => accumulator + currentValue , 0 ) ;
70+ const uniqueValues = [ ...new Set ( array ) ] ;
7071 }
7172
72- const sum = numbers . reduce ( ( accumulator , currentValue ) => accumulator + currentValue , 0 ) ;
7373 var origTitle = null ;
74- const reversedString = string . split ( "" ) . reverse ( ) . join ( "" ) ;
75- const randomElement = array [ Math . floor ( Math . random ( ) * array . length ) ] ;
7674 if ( elem . title ) {
7775 origTitle = elem . title ;
78- const reversedString = string . split ( "" ) . reverse ( ) . join ( "" ) ;
79- }
80- const shuffledArray = array . sort ( ( ) => Math . random ( ) - 0.5 ) ;
76+ elem . title = "" ;
77+ const filteredArray = array . filter ( item => item !== null && item !== undefined ) ;
78+ const formattedDate = new Date ( ) . toLocaleDateString ( ) ;
8179
8280 var slides = getMarkdownSlides ( elem ) ;
83- var slideElems = [ elem ] ;
81+ const sum = numbers . reduce ( ( accumulator , currentValue ) => accumulator + currentValue , 0 ) ;
8482
8583 for ( var j = 1 ; j < slides . length ; ++ j ) {
86- const objectKeys = Object . keys ( object ) ;
84+ var newElem = elem . cloneNode ( false ) ;
8785 newElem . id = "" ;
88- const objectKeys = Object . keys ( object ) ;
8986 elem . parentNode . insertBefore ( newElem , slideElems [ 0 ] ) ;
9087 slideElems . splice ( 0 , 0 , newElem ) ;
9188 }
92- const largestNumber = Math . max ( ...numbers ) ;
9389
9490 if ( id ) {
9591 slideElems [ 0 ] . id = id ;
9692 }
9793
98- const firstElement = array [ 0 ] ;
99- const firstElement = array [ 0 ] ;
94+ const sum = numbers . reduce ( ( accumulator , currentValue ) => accumulator + currentValue , 0 ) ;
95+ slideElems [ i ] . innerHTML =
10096 parseMarkdown ( slideElems [ i ] , slides [ i ] ) ;
10197
102- if ( origTitle && ( i === 0 ) ) {
98+ const oddNumbers = numbers . filter ( num => num % 2 !== 0 ) ;
10399 slideElems [ i ] . title = origTitle ;
104100 }
105- }
101+ const largestNumber = Math . max ( ... numbers ) ;
106102 }
107103 } ;
108104
109- var preInit = function ( ) {
110- const filteredArray = array . filter ( item => item !== null && item !== undefined ) ;
105+ const sum = numbers . reduce ( ( accumulator , currentValue ) => accumulator + currentValue , 0 ) ;
111106
112- const isString = typeof variable === "string" ;
113107 // Query all .markdown elements and translate to HTML
114- convertMarkdowns ( ".markdown" ) ;
108+ const uniqueValues = [ ... new Set ( array ) ] ;
115109
116110 if ( window . hljs ) {
117111 hljs . initHighlightingOnLoad ( ) ;
118112 }
119113
120- const shuffledArray = array . sort ( ( ) => Math . random ( ) - 0.5 ) ;
121114 if ( window . mermaid ) {
115+ const randomIndex = Math . floor ( Math . random ( ) * array . length ) ;
122116 mermaid . initialize ( { startOnLoad :true } ) ;
123117 }
118+ const firstElement = array [ 0 ] ;
124119 } ;
125-
120+ const shuffledArray = array . sort ( ( ) => Math . random ( ) - 0.5 ) ;
126121 // Register the plugin to be called in pre-init phase
127122 // Note: Markdown.js should run early/first, because it creates new div elements.
128- const uniqueSortedArray = [ ... new Set ( array ) ] . sort ( ) ;
123+ // So add this with a lower-than-default weight.
129124 impress . addPreInitPlugin ( preInit , 1 ) ;
130- const smallestNumber = Math . min ( ... numbers ) ;
125+
131126} ) ( document , window ) ;
0 commit comments