tweak plugin initialization to enable multi-instance plugins
This commit is contained in:
		
							
								
								
									
										26
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										26
									
								
								README.md
									
									
									
									
									
								
							| @@ -173,17 +173,33 @@ If you want to run multiple presentations side-by-side on the same page you can | |||||||
| ```html | ```html | ||||||
| <div class="reveal deck-1">...</div> | <div class="reveal deck-1">...</div> | ||||||
| <div class="reveal deck-2">...</div> | <div class="reveal deck-2">...</div> | ||||||
| <script type="module"> | <script src="dist/reveal.es5.js"></script> | ||||||
|   import Deck from 'js/reveal.js'; | <script> | ||||||
|  |   let deck1 = new Reveal( document.querySelector( 'deck-1' ), { embedded: true } ); | ||||||
|   let deck1 = new Deck( document.querySelector( 'deck-1' ), { embedded: true } ); |   let deck2 = new Reveal( document.querySelector( 'deck-2' ), { embedded: true } ); | ||||||
|   let deck2 = new Deck( document.querySelector( 'deck-2' ), { embedded: true } ); |  | ||||||
|  |  | ||||||
|   deck1.initialize(); |   deck1.initialize(); | ||||||
|   deck2.initialize(); |   deck2.initialize(); | ||||||
| </script> | </script> | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
|  | ### ES Module | ||||||
|  |  | ||||||
|  | We provide two JavaScript bundles; `/dist/reveal.es5.js` with support for legacy browers and `/dist/reveal.js` which targets modern browsers with ES6 support. | ||||||
|  |  | ||||||
|  | Here's how to import and initialize the ES module version of reveal.js, including the Markdown plugin: | ||||||
|  |  | ||||||
|  | ```html | ||||||
|  | <script type="module"> | ||||||
|  |   import Reveal from '/dist/reveal.js'; | ||||||
|  |   import markdown from '/plugin/markdown/markdown.js'; | ||||||
|  |   Reveal.initialize({ | ||||||
|  |     keyboard: true, | ||||||
|  |     plugins: [ markdown() ] | ||||||
|  |   }); | ||||||
|  | </script> | ||||||
|  | ``` | ||||||
|  |  | ||||||
| ### Configuration | ### Configuration | ||||||
|  |  | ||||||
| At the end of your page you need to initialize reveal by running the following code. Note that all configuration values are optional and will default to the values specified below. | At the end of your page you need to initialize reveal by running the following code. Note that all configuration values are optional and will default to the values specified below. | ||||||
|   | |||||||
							
								
								
									
										12
									
								
								demo.html
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								demo.html
									
									
									
									
									
								
							| @@ -413,11 +413,11 @@ Reveal.on( 'customevent', function() { | |||||||
| 		<script type="module"> | 		<script type="module"> | ||||||
|  |  | ||||||
| 			import Reveal from '/dist/reveal.js'; | 			import Reveal from '/dist/reveal.js'; | ||||||
| 			import Zoom from '/plugin/zoom/zoom.js'; | 			import zoom from '/plugin/zoom/zoom.js'; | ||||||
| 			import Notes from '/plugin/notes/notes.js'; | 			import notes from '/plugin/notes/notes.js'; | ||||||
| 			import Search from '/plugin/search/search.js'; | 			import search from '/plugin/search/search.js'; | ||||||
| 			import Markdown from '/plugin/markdown/markdown.js'; | 			import markdown from '/plugin/markdown/markdown.js'; | ||||||
| 			import Highlight from '/plugin/highlight/highlight.js'; | 			import highlight from '/plugin/highlight/highlight.js'; | ||||||
|  |  | ||||||
| 			// More info https://github.com/hakimel/reveal.js#configuration | 			// More info https://github.com/hakimel/reveal.js#configuration | ||||||
| 			Reveal.initialize({ | 			Reveal.initialize({ | ||||||
| @@ -429,7 +429,7 @@ Reveal.on( 'customevent', function() { | |||||||
| 				transition: 'slide', // none/fade/slide/convex/concave/zoom | 				transition: 'slide', // none/fade/slide/convex/concave/zoom | ||||||
|  |  | ||||||
| 				// More info https://github.com/hakimel/reveal.js#dependencies | 				// More info https://github.com/hakimel/reveal.js#dependencies | ||||||
| 				plugins: [ Zoom, Notes, Search, Markdown, Highlight ] | 				plugins: [ zoom(), notes(), search(), markdown(), highlight() ] | ||||||
| 			}); | 			}); | ||||||
|  |  | ||||||
| 		</script> | 		</script> | ||||||
|   | |||||||
							
								
								
									
										4
									
								
								dist/plugin/highlight.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								dist/plugin/highlight.js
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										4
									
								
								dist/plugin/markdown.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								dist/plugin/markdown.js
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										2
									
								
								dist/plugin/math.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								dist/plugin/math.js
									
									
									
									
										vendored
									
									
								
							| @@ -1 +1 @@ | |||||||
| !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self).RevealMath=t()}(this,(function(){"use strict";return function(){var e=Reveal.getConfig().math||{},t=(e.mathjax||"https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js")+"?config="+(e.config||"TeX-AMS_HTML-full"),a={messageStyle:"none",tex2jax:{inlineMath:[["$","$"],["\\(","\\)"]],skipTags:["script","noscript","style","textarea","pre"]},skipStartupTypeset:!0};function n(e,t){for(var a in t)e.hasOwnProperty(a)||(e[a]=t[a])}return{id:"math",init:function(o){n(e,a),n(e.tex2jax,a.tex2jax),e.mathjax=e.config=null,function(e,t){var a=document.querySelector("head"),n=document.createElement("script");n.type="text/javascript",n.src=e;var o=function(){"function"==typeof t&&(t.call(),t=null)};n.onload=o,n.onreadystatechange=function(){"loaded"===this.readyState&&o()},a.appendChild(n)}(t,(function(){MathJax.Hub.Config(e),MathJax.Hub.Queue(["Typeset",MathJax.Hub]),MathJax.Hub.Queue(o.layout),o.on("slidechanged",(function(e){MathJax.Hub.Queue(["Typeset",MathJax.Hub,e.currentSlide])}))}))}}}()})); | !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self).RevealMath=t()}(this,(function(){"use strict";var e=function(){var e=Reveal.getConfig().math||{},t=(e.mathjax||"https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js")+"?config="+(e.config||"TeX-AMS_HTML-full"),n={messageStyle:"none",tex2jax:{inlineMath:[["$","$"],["\\(","\\)"]],skipTags:["script","noscript","style","textarea","pre"]},skipStartupTypeset:!0};function a(e,t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}return{id:"math",init:function(o){a(e,n),a(e.tex2jax,n.tex2jax),e.mathjax=e.config=null,function(e,t){var n=document.querySelector("head"),a=document.createElement("script");a.type="text/javascript",a.src=e;var o=function(){"function"==typeof t&&(t.call(),t=null)};a.onload=o,a.onreadystatechange=function(){"loaded"===this.readyState&&o()},n.appendChild(a)}(t,(function(){MathJax.Hub.Config(e),MathJax.Hub.Queue(["Typeset",MathJax.Hub]),MathJax.Hub.Queue(o.layout),o.on("slidechanged",(function(e){MathJax.Hub.Queue(["Typeset",MathJax.Hub,e.currentSlide])}))}))}}}();return function(){return e}})); | ||||||
|   | |||||||
							
								
								
									
										2
									
								
								dist/plugin/notes.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								dist/plugin/notes.js
									
									
									
									
										vendored
									
									
								
							| @@ -1 +1 @@ | |||||||
| !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self).RevealNotes=t()}(this,(function(){"use strict";return function(){var e,t=null;function n(n){var o;!t||t.closed?(n||(n="plugin/notes/notes.html"),(t=window.open(n,"reveal.js - Notes","width=1100,height=700"))?(o=setInterval((function(){t.postMessage(JSON.stringify({namespace:"reveal-notes",type:"connect",url:window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,state:e.getState()}),"*")}),500),window.addEventListener("message",(function(n){var s,r,i,d,l=JSON.parse(n.data);l&&"reveal-notes"===l.namespace&&"connected"===l.type&&(clearInterval(o),e.on("slidechanged",a),e.on("fragmentshown",a),e.on("fragmenthidden",a),e.on("overviewhidden",a),e.on("overviewshown",a),e.on("paused",a),e.on("resumed",a),a()),l&&"reveal-notes"===l.namespace&&"call"===l.type&&(s=l.methodName,r=l.arguments,i=l.callId,d=e[s].apply(e,r),t.postMessage(JSON.stringify({namespace:"reveal-notes",type:"return",result:d,callId:i}),"*"))}))):alert("Speaker view popup failed to open. Please make sure popups are allowed and reopen the speaker view.")):t.focus();function a(n){var o=e.getCurrentSlide(),a=o.querySelector("aside.notes"),s=o.querySelector(".current-fragment"),r={namespace:"reveal-notes",type:"state",notes:"",markdown:!1,whitespace:"normal",state:e.getState()};if(o.hasAttribute("data-notes")&&(r.notes=o.getAttribute("data-notes"),r.whitespace="pre-wrap"),s){var i=s.querySelector("aside.notes");i?a=i:s.hasAttribute("data-notes")&&(r.notes=s.getAttribute("data-notes"),r.whitespace="pre-wrap",a=null)}a&&(r.notes=a.innerHTML,r.markdown="string"==typeof a.getAttribute("data-markdown")),t.postMessage(JSON.stringify(r),"*")}}return{id:"notes",init:function(t){e=t,/receiver/i.test(window.location.search)||(null!==window.location.search.match(/(\?|\&)notes/gi)&&n(),e.addKeyBinding({keyCode:83,key:"S",description:"Speaker notes view"},(function(){n()})))},open:n}}()})); | !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self).RevealNotes=t()}(this,(function(){"use strict";var e=function(){var e,t=null;function n(n){var o;!t||t.closed?(n||(n="plugin/notes/notes.html"),(t=window.open(n,"reveal.js - Notes","width=1100,height=700"))?(o=setInterval((function(){t.postMessage(JSON.stringify({namespace:"reveal-notes",type:"connect",url:window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,state:e.getState()}),"*")}),500),window.addEventListener("message",(function(n){var s,r,i,d,c=JSON.parse(n.data);c&&"reveal-notes"===c.namespace&&"connected"===c.type&&(clearInterval(o),e.on("slidechanged",a),e.on("fragmentshown",a),e.on("fragmenthidden",a),e.on("overviewhidden",a),e.on("overviewshown",a),e.on("paused",a),e.on("resumed",a),a()),c&&"reveal-notes"===c.namespace&&"call"===c.type&&(s=c.methodName,r=c.arguments,i=c.callId,d=e[s].apply(e,r),t.postMessage(JSON.stringify({namespace:"reveal-notes",type:"return",result:d,callId:i}),"*"))}))):alert("Speaker view popup failed to open. Please make sure popups are allowed and reopen the speaker view.")):t.focus();function a(n){var o=e.getCurrentSlide(),a=o.querySelector("aside.notes"),s=o.querySelector(".current-fragment"),r={namespace:"reveal-notes",type:"state",notes:"",markdown:!1,whitespace:"normal",state:e.getState()};if(o.hasAttribute("data-notes")&&(r.notes=o.getAttribute("data-notes"),r.whitespace="pre-wrap"),s){var i=s.querySelector("aside.notes");i?a=i:s.hasAttribute("data-notes")&&(r.notes=s.getAttribute("data-notes"),r.whitespace="pre-wrap",a=null)}a&&(r.notes=a.innerHTML,r.markdown="string"==typeof a.getAttribute("data-markdown")),t.postMessage(JSON.stringify(r),"*")}}return{id:"notes",init:function(t){e=t,/receiver/i.test(window.location.search)||(null!==window.location.search.match(/(\?|\&)notes/gi)&&n(),e.addKeyBinding({keyCode:83,key:"S",description:"Speaker notes view"},(function(){n()})))},open:n}}();return function(){return e}})); | ||||||
|   | |||||||
							
								
								
									
										2
									
								
								dist/plugin/search.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								dist/plugin/search.js
									
									
									
									
										vendored
									
									
								
							| @@ -4,4 +4,4 @@ | |||||||
| 	 * by navigatating to that slide and highlighting it. | 	 * by navigatating to that slide and highlighting it. | ||||||
| 	 * | 	 * | ||||||
| 	 * By Jon Snyder <snyder.jon@gmail.com>, February 2013 | 	 * By Jon Snyder <snyder.jon@gmail.com>, February 2013 | ||||||
| 	 */return function(){var e,t,n,i;function r(e,t){var n=document.getElementById(e)||document.body,i=t||"EM",r=new RegExp("^(?:"+i+"|SCRIPT|FORM)$"),o=["#ff6","#a0ffff","#9f9","#f99","#f6f"],d=[],l=0,a="",s=[];this.setRegex=function(e){e=e.replace(/^[^\w]+|[^\w]+$/g,"").replace(/[^\w'-]+/g,"|"),a=new RegExp("("+e+")","i")},this.getRegex=function(){return a.toString().replace(/^\/\\b\(|\)\\b\/i$/g,"").replace(/\|/g," ")},this.hiliteWords=function(e){if(null!=e&&e&&a&&!r.test(e.nodeName)){if(e.hasChildNodes())for(var t=0;t<e.childNodes.length;t++)this.hiliteWords(e.childNodes[t]);if(3==e.nodeType&&(nv=e.nodeValue)&&(regs=a.exec(nv))){for(var n=e;null!=n&&"SECTION"!=n.nodeName;)n=n.parentNode;var c=Reveal.getIndices(n),u=s.length,h=!1;for(t=0;t<u;t++)s[t].h===c.h&&s[t].v===c.v&&(h=!0);h||s.push(c),d[regs[0].toLowerCase()]||(d[regs[0].toLowerCase()]=o[l++%o.length]);var p=document.createElement(i);p.appendChild(document.createTextNode(regs[0])),p.style.backgroundColor=d[regs[0].toLowerCase()],p.style.fontStyle="inherit",p.style.color="#000";var f=e.splitText(regs.index);f.nodeValue=f.nodeValue.substring(regs[0].length),e.parentNode.insertBefore(p,f)}}},this.remove=function(){for(var e=document.getElementsByTagName(i);e.length&&(el=e[0]);)el.parentNode.replaceChild(el.firstChild,el)},this.apply=function(e){if(null!=e&&e)return this.remove(),this.setRegex(e),this.hiliteWords(n),s}}function o(){var e=document.getElementById("searchinputdiv"),t=document.getElementById("searchinput");e.style.display="inline",t.focus(),t.select()}function d(){document.getElementById("searchinputdiv").style.display="none",i&&i.remove()}function l(){if(n){var o=document.getElementById("searchinput").value;""===o?(i&&i.remove(),e=null):(i=new r("slidecontent"),e=i.apply(o),t=0)}e&&(e.length&&e.length<=t&&(t=0),e.length>t&&(Reveal.slide(e[t].h,e[t].v),t++))}var a={};if(a.wrapper=document.querySelector(".reveal"),!a.wrapper.querySelector(".searchbox")){var s=document.createElement("div");s.id="searchinputdiv",s.classList.add("searchdiv"),s.style.position="absolute",s.style.top="10px",s.style.right="10px",s.style.zIndex=10,s.innerHTML='<span><input type="search" id="searchinput" class="searchinput" style="vertical-align: top;"/><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAJiSURBVHjatFZNaxNBGH5md+Mmu92NVdKDRipSAyqCghgQD4L4cRe86UUtAQ+eFCxoa4/25EXBFi8eBE+eRPoDhB6KgiiixdAPCEkx2pjvTXadd9yNsflwuyUDD/O+u8PzzDPvzOwyx3EwyCZhwG3gAkp7MnpjgbopjsltcD4gjuXZZKeAR348MYLYTm3LzOs/y3j3JTfZxgXWXmTuwPHIc4VmoOmv5IrI53+AO2DdHLjkDWQ3GoEEVFXtXQOvkSnPWcyUceviLhwbDYv8/XIVj97kse7TodLvZXxYxrPUHkQ1ufXs3FEdybEIxucySOesoNvUgWU1cP3MkCBfTFdw9fGaAMVmRELq7LBw2Q3/FaAxxWIRpw+ZIr/7IouPqzUBiqmdHAv7EuhRAwf1er2Vy4x1jW3b2d5Jfvu5IPp7l2LYbcgCFFNb+FoJ7oBqEAqFMPNqFcmEgVMJDfMT+1tvN0pNjERlMS6QA5pFOKxiKVPFhakPeL3It+WGJUDxt2wFR+JhzI7v5ctkd8DXOZAkCYYxhO+lKm4+Xfqz/rIixBuNBl7eOYzkQQNzqX249mRl6zUgEcYkaJrGhUwBinVdh6IouPzwE6/DL5w4oLkH8y981aDf+uq6hlKpJESiUdNfDZi7/ehG9K6KfiA3pml0PLcsq+cSMTj2NL9ukc4UOmz7AZ3+crkC4mHujFvXNaMFB3bEr8xPS6p5O+jXxq4VZtaen7/PwzrntjcLUE0iHPS1Ud1cdiEJl/8WivZk0wXd7zWOMkeF8s0CcAmkNrC2nvXZDbbbN73ccYnZoH9bfgswAFzAe9/h3dbKAAAAAElFTkSuQmCC" id="searchbutton" class="searchicon" style="vertical-align: top; margin-top: -1px;"/></span>',a.wrapper.appendChild(s)}return document.getElementById("searchbutton").addEventListener("click",(function(e){l()}),!1),document.getElementById("searchinput").addEventListener("keyup",(function(e){switch(e.keyCode){case 13:e.preventDefault(),l(),n=!1;break;default:n=!0}}),!1),document.addEventListener("keydown",(function(e){"F"==e.key&&(e.ctrlKey||e.metaKey)&&(e.preventDefault(),"inline"!==document.getElementById("searchinputdiv").style.display?o():d())}),!1),d(),{id:"search",init:function(e){e.registerKeyboardShortcut("CTRL + Shift + F","Search")},open:o}}()})); | 	 */var e=function(){var e,t,n,i;function r(e,t){var n=document.getElementById(e)||document.body,i=t||"EM",r=new RegExp("^(?:"+i+"|SCRIPT|FORM)$"),o=["#ff6","#a0ffff","#9f9","#f99","#f6f"],d=[],l=0,a="",c=[];this.setRegex=function(e){e=e.replace(/^[^\w]+|[^\w]+$/g,"").replace(/[^\w'-]+/g,"|"),a=new RegExp("("+e+")","i")},this.getRegex=function(){return a.toString().replace(/^\/\\b\(|\)\\b\/i$/g,"").replace(/\|/g," ")},this.hiliteWords=function(e){if(null!=e&&e&&a&&!r.test(e.nodeName)){if(e.hasChildNodes())for(var t=0;t<e.childNodes.length;t++)this.hiliteWords(e.childNodes[t]);if(3==e.nodeType&&(nv=e.nodeValue)&&(regs=a.exec(nv))){for(var n=e;null!=n&&"SECTION"!=n.nodeName;)n=n.parentNode;var s=Reveal.getIndices(n),u=c.length,h=!1;for(t=0;t<u;t++)c[t].h===s.h&&c[t].v===s.v&&(h=!0);h||c.push(s),d[regs[0].toLowerCase()]||(d[regs[0].toLowerCase()]=o[l++%o.length]);var p=document.createElement(i);p.appendChild(document.createTextNode(regs[0])),p.style.backgroundColor=d[regs[0].toLowerCase()],p.style.fontStyle="inherit",p.style.color="#000";var f=e.splitText(regs.index);f.nodeValue=f.nodeValue.substring(regs[0].length),e.parentNode.insertBefore(p,f)}}},this.remove=function(){for(var e=document.getElementsByTagName(i);e.length&&(el=e[0]);)el.parentNode.replaceChild(el.firstChild,el)},this.apply=function(e){if(null!=e&&e)return this.remove(),this.setRegex(e),this.hiliteWords(n),c}}function o(){var e=document.getElementById("searchinputdiv"),t=document.getElementById("searchinput");e.style.display="inline",t.focus(),t.select()}function d(){document.getElementById("searchinputdiv").style.display="none",i&&i.remove()}function l(){if(n){var o=document.getElementById("searchinput").value;""===o?(i&&i.remove(),e=null):(i=new r("slidecontent"),e=i.apply(o),t=0)}e&&(e.length&&e.length<=t&&(t=0),e.length>t&&(Reveal.slide(e[t].h,e[t].v),t++))}var a={};if(a.wrapper=document.querySelector(".reveal"),!a.wrapper.querySelector(".searchbox")){var c=document.createElement("div");c.id="searchinputdiv",c.classList.add("searchdiv"),c.style.position="absolute",c.style.top="10px",c.style.right="10px",c.style.zIndex=10,c.innerHTML='<span><input type="search" id="searchinput" class="searchinput" style="vertical-align: top;"/><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAJiSURBVHjatFZNaxNBGH5md+Mmu92NVdKDRipSAyqCghgQD4L4cRe86UUtAQ+eFCxoa4/25EXBFi8eBE+eRPoDhB6KgiiixdAPCEkx2pjvTXadd9yNsflwuyUDD/O+u8PzzDPvzOwyx3EwyCZhwG3gAkp7MnpjgbopjsltcD4gjuXZZKeAR348MYLYTm3LzOs/y3j3JTfZxgXWXmTuwPHIc4VmoOmv5IrI53+AO2DdHLjkDWQ3GoEEVFXtXQOvkSnPWcyUceviLhwbDYv8/XIVj97kse7TodLvZXxYxrPUHkQ1ufXs3FEdybEIxucySOesoNvUgWU1cP3MkCBfTFdw9fGaAMVmRELq7LBw2Q3/FaAxxWIRpw+ZIr/7IouPqzUBiqmdHAv7EuhRAwf1er2Vy4x1jW3b2d5Jfvu5IPp7l2LYbcgCFFNb+FoJ7oBqEAqFMPNqFcmEgVMJDfMT+1tvN0pNjERlMS6QA5pFOKxiKVPFhakPeL3It+WGJUDxt2wFR+JhzI7v5ctkd8DXOZAkCYYxhO+lKm4+Xfqz/rIixBuNBl7eOYzkQQNzqX249mRl6zUgEcYkaJrGhUwBinVdh6IouPzwE6/DL5w4oLkH8y981aDf+uq6hlKpJESiUdNfDZi7/ehG9K6KfiA3pml0PLcsq+cSMTj2NL9ukc4UOmz7AZ3+crkC4mHujFvXNaMFB3bEr8xPS6p5O+jXxq4VZtaen7/PwzrntjcLUE0iHPS1Ud1cdiEJl/8WivZk0wXd7zWOMkeF8s0CcAmkNrC2nvXZDbbbN73ccYnZoH9bfgswAFzAe9/h3dbKAAAAAElFTkSuQmCC" id="searchbutton" class="searchicon" style="vertical-align: top; margin-top: -1px;"/></span>',a.wrapper.appendChild(c)}return document.getElementById("searchbutton").addEventListener("click",(function(e){l()}),!1),document.getElementById("searchinput").addEventListener("keyup",(function(e){switch(e.keyCode){case 13:e.preventDefault(),l(),n=!1;break;default:n=!0}}),!1),document.addEventListener("keydown",(function(e){"F"==e.key&&(e.ctrlKey||e.metaKey)&&(e.preventDefault(),"inline"!==document.getElementById("searchinputdiv").style.display?o():d())}),!1),d(),{id:"search",init:function(e){e.registerKeyboardShortcut("CTRL + Shift + F","Search")},open:o}}();return function(){return e}})); | ||||||
|   | |||||||
							
								
								
									
										11
									
								
								dist/plugin/zoom.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										11
									
								
								dist/plugin/zoom.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,11 +1,4 @@ | |||||||
| !function(e,o){"object"==typeof exports&&"undefined"!=typeof module?module.exports=o():"function"==typeof define&&define.amd?define(o):(e=e||self).RevealZoom=o()}(this,(function(){"use strict"; | !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self).RevealZoom=t()}(this,(function(){"use strict"; | ||||||
| /*! | /*! | ||||||
| 	 * reveal.js Zoom plugin | 	 * reveal.js Zoom plugin | ||||||
| 	 */var e={id:"zoom",init:function(e){e.getRevealElement().addEventListener("mousedown",(function(t){var n=/Linux/.test(window.navigator.platform)?"ctrl":"alt",i=(e.getConfig().zoomKey?e.getConfig().zoomKey:n)+"Key",d=e.getConfig().zoomLevel?e.getConfig().zoomLevel:2;t[i]&&!e.isOverview()&&(t.preventDefault(),o.to({x:t.clientX,y:t.clientY,scale:d,pan:!1}))}))}},o=function(){var e=1,t=0,n=0,i=-1,d=-1,s="WebkitTransform"in document.body.style||"MozTransform"in document.body.style||"msTransform"in document.body.style||"OTransform"in document.body.style||"transform"in document.body.style;function r(o,t){var n=y();if(o.width=o.width||1,o.height=o.height||1,o.x-=(window.innerWidth-o.width*t)/2,o.y-=(window.innerHeight-o.height*t)/2,s)if(1===t)document.body.style.transform="",document.body.style.OTransform="",document.body.style.msTransform="",document.body.style.MozTransform="",document.body.style.WebkitTransform="";else{var i=n.x+"px "+n.y+"px",d="translate("+-o.x+"px,"+-o.y+"px) scale("+t+")";document.body.style.transformOrigin=i,document.body.style.OTransformOrigin=i,document.body.style.msTransformOrigin=i,document.body.style.MozTransformOrigin=i,document.body.style.WebkitTransformOrigin=i,document.body.style.transform=d,document.body.style.OTransform=d,document.body.style.msTransform=d,document.body.style.MozTransform=d,document.body.style.WebkitTransform=d}else 1===t?(document.body.style.position="",document.body.style.left="",document.body.style.top="",document.body.style.width="",document.body.style.height="",document.body.style.zoom=""):(document.body.style.position="relative",document.body.style.left=-(n.x+o.x)/t+"px",document.body.style.top=-(n.y+o.y)/t+"px",document.body.style.width=100*t+"%",document.body.style.height=100*t+"%",document.body.style.zoom=t);e=t,document.documentElement.classList&&(1!==e?document.documentElement.classList.add("zoomed"):document.documentElement.classList.remove("zoomed"))}function m(){var o=.12*window.innerWidth,i=.12*window.innerHeight,d=y();n<i?window.scroll(d.x,d.y-14/e*(1-n/i)):n>window.innerHeight-i&&window.scroll(d.x,d.y+(1-(window.innerHeight-n)/i)*(14/e)),t<o?window.scroll(d.x-14/e*(1-t/o),d.y):t>window.innerWidth-o&&window.scroll(d.x+(1-(window.innerWidth-t)/o)*(14/e),d.y)}function y(){return{x:void 0!==window.scrollX?window.scrollX:window.pageXOffset,y:void 0!==window.scrollY?window.scrollY:window.pageYOffset}}return s&&(document.body.style.transition="transform 0.8s ease",document.body.style.OTransition="-o-transform 0.8s ease",document.body.style.msTransition="-ms-transform 0.8s ease",document.body.style.MozTransition="-moz-transform 0.8s ease",document.body.style.WebkitTransition="-webkit-transform 0.8s ease"),document.addEventListener("keyup",(function(t){1!==e&&27===t.keyCode&&o.out()})),document.addEventListener("mousemove",(function(o){1!==e&&(t=o.clientX,n=o.clientY)})),{to:function(t){if(1!==e)o.out();else{if(t.x=t.x||0,t.y=t.y||0,t.element){var n=t.element.getBoundingClientRect();t.x=n.left-20,t.y=n.top-20,t.width=n.width+40,t.height=n.height+40}void 0!==t.width&&void 0!==t.height&&(t.scale=Math.max(Math.min(window.innerWidth/t.width,window.innerHeight/t.height),1)),t.scale>1&&(t.x*=t.scale,t.y*=t.scale,r(t,t.scale),!1!==t.pan&&(i=setTimeout((function(){d=setInterval(m,1e3/60)}),800)))}},out:function(){clearTimeout(i),clearInterval(d),r({x:0,y:0},1),e=1},magnify:function(e){this.to(e)},reset:function(){this.out()},zoomLevel:function(){return e}}}(); | 	 */var e={id:"zoom",init:function(e){e.getRevealElement().addEventListener("mousedown",(function(o){var n=/Linux/.test(window.navigator.platform)?"ctrl":"alt",i=(e.getConfig().zoomKey?e.getConfig().zoomKey:n)+"Key",d=e.getConfig().zoomLevel?e.getConfig().zoomLevel:2;o[i]&&!e.isOverview()&&(o.preventDefault(),t.to({x:o.clientX,y:o.clientY,scale:d,pan:!1}))}))}},t=function(){var e=1,o=0,n=0,i=-1,d=-1,s="WebkitTransform"in document.body.style||"MozTransform"in document.body.style||"msTransform"in document.body.style||"OTransform"in document.body.style||"transform"in document.body.style;function r(t,o){var n=y();if(t.width=t.width||1,t.height=t.height||1,t.x-=(window.innerWidth-t.width*o)/2,t.y-=(window.innerHeight-t.height*o)/2,s)if(1===o)document.body.style.transform="",document.body.style.OTransform="",document.body.style.msTransform="",document.body.style.MozTransform="",document.body.style.WebkitTransform="";else{var i=n.x+"px "+n.y+"px",d="translate("+-t.x+"px,"+-t.y+"px) scale("+o+")";document.body.style.transformOrigin=i,document.body.style.OTransformOrigin=i,document.body.style.msTransformOrigin=i,document.body.style.MozTransformOrigin=i,document.body.style.WebkitTransformOrigin=i,document.body.style.transform=d,document.body.style.OTransform=d,document.body.style.msTransform=d,document.body.style.MozTransform=d,document.body.style.WebkitTransform=d}else 1===o?(document.body.style.position="",document.body.style.left="",document.body.style.top="",document.body.style.width="",document.body.style.height="",document.body.style.zoom=""):(document.body.style.position="relative",document.body.style.left=-(n.x+t.x)/o+"px",document.body.style.top=-(n.y+t.y)/o+"px",document.body.style.width=100*o+"%",document.body.style.height=100*o+"%",document.body.style.zoom=o);e=o,document.documentElement.classList&&(1!==e?document.documentElement.classList.add("zoomed"):document.documentElement.classList.remove("zoomed"))}function m(){var t=.12*window.innerWidth,i=.12*window.innerHeight,d=y();n<i?window.scroll(d.x,d.y-14/e*(1-n/i)):n>window.innerHeight-i&&window.scroll(d.x,d.y+(1-(window.innerHeight-n)/i)*(14/e)),o<t?window.scroll(d.x-14/e*(1-o/t),d.y):o>window.innerWidth-t&&window.scroll(d.x+(1-(window.innerWidth-o)/t)*(14/e),d.y)}function y(){return{x:void 0!==window.scrollX?window.scrollX:window.pageXOffset,y:void 0!==window.scrollY?window.scrollY:window.pageYOffset}}return s&&(document.body.style.transition="transform 0.8s ease",document.body.style.OTransition="-o-transform 0.8s ease",document.body.style.msTransition="-ms-transform 0.8s ease",document.body.style.MozTransition="-moz-transform 0.8s ease",document.body.style.WebkitTransition="-webkit-transform 0.8s ease"),document.addEventListener("keyup",(function(o){1!==e&&27===o.keyCode&&t.out()})),document.addEventListener("mousemove",(function(t){1!==e&&(o=t.clientX,n=t.clientY)})),{to:function(o){if(1!==e)t.out();else{if(o.x=o.x||0,o.y=o.y||0,o.element){var n=o.element.getBoundingClientRect();o.x=n.left-20,o.y=n.top-20,o.width=n.width+40,o.height=n.height+40}void 0!==o.width&&void 0!==o.height&&(o.scale=Math.max(Math.min(window.innerWidth/o.width,window.innerHeight/o.height),1)),o.scale>1&&(o.x*=o.scale,o.y*=o.scale,r(o,o.scale),!1!==o.pan&&(i=setTimeout((function(){d=setInterval(m,1e3/60)}),800)))}},out:function(){clearTimeout(i),clearInterval(d),r({x:0,y:0},1),e=1},magnify:function(e){this.to(e)},reset:function(){this.out()},zoomLevel:function(){return e}}}();return function(){return e}})); | ||||||
| /*! |  | ||||||
| 	 * zoom.js 0.3 (modified for use with reveal.js) |  | ||||||
| 	 * http://lab.hakim.se/zoom-js |  | ||||||
| 	 * MIT licensed |  | ||||||
| 	 * |  | ||||||
| 	 * Copyright (C) 2011-2014 Hakim El Hattab, http://hakim.se |  | ||||||
| 	 */return e})); |  | ||||||
|   | |||||||
							
								
								
									
										2
									
								
								dist/reveal.es5.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								dist/reveal.es5.js
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										2
									
								
								dist/reveal.es5.js.map
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								dist/reveal.es5.js.map
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										2
									
								
								dist/reveal.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								dist/reveal.js
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										2
									
								
								dist/reveal.js.map
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								dist/reveal.js.map
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							| @@ -31,7 +31,7 @@ | |||||||
| 			// - https://github.com/hakimel/reveal.js#dependencies | 			// - https://github.com/hakimel/reveal.js#dependencies | ||||||
| 			Reveal.initialize({ | 			Reveal.initialize({ | ||||||
| 				hash: true, | 				hash: true, | ||||||
| 				plugins: [ RevealMarkdown, RevealHighlight, RevealNotes ] | 				plugins: [ RevealMarkdown(), RevealHighlight(), RevealNotes() ] | ||||||
| 			}); | 			}); | ||||||
| 		</script> | 		</script> | ||||||
| 	</body> | 	</body> | ||||||
|   | |||||||
| @@ -56,7 +56,7 @@ export default class Plugins { | |||||||
| 				scriptsToLoad = scripts.length; | 				scriptsToLoad = scripts.length; | ||||||
|  |  | ||||||
| 				const scriptLoadedCallback = (s) => { | 				const scriptLoadedCallback = (s) => { | ||||||
| 					if( typeof s.callback === 'function' ) s.callback(); | 					if( s && typeof s.callback === 'function' ) s.callback(); | ||||||
|  |  | ||||||
| 					if( --scriptsToLoad === 0 ) { | 					if( --scriptsToLoad === 0 ) { | ||||||
| 						this.initPlugins().then( resolve ); | 						this.initPlugins().then( resolve ); | ||||||
| @@ -69,9 +69,13 @@ export default class Plugins { | |||||||
| 						this.registerPlugin( s ); | 						this.registerPlugin( s ); | ||||||
| 						scriptLoadedCallback( s ); | 						scriptLoadedCallback( s ); | ||||||
| 					} | 					} | ||||||
| 					else { | 					else if( typeof s.src === 'string' ) { | ||||||
| 						loadScript( s.src, () => scriptLoadedCallback(s) ); | 						loadScript( s.src, () => scriptLoadedCallback(s) ); | ||||||
| 					} | 					} | ||||||
|  | 					else { | ||||||
|  | 						console.warn( 'Unrecognized plugin format', s ); | ||||||
|  | 						scriptLoadedCallback(); | ||||||
|  | 					} | ||||||
| 				} ); | 				} ); | ||||||
| 			} | 			} | ||||||
| 			else { | 			else { | ||||||
|   | |||||||
| @@ -5,54 +5,7 @@ import './highlight-line-numbers.js' | |||||||
|  * reveal.js plugin that adds syntax highlight support. |  * reveal.js plugin that adds syntax highlight support. | ||||||
|  */ |  */ | ||||||
|  |  | ||||||
| // Function to perform a better "data-trim" on code snippets | let Plugin = { | ||||||
| // Will slice an indentation amount on each line of the snippet (amount based on the line having the lowest indentation length) |  | ||||||
| function betterTrim(snippetEl) { |  | ||||||
| 	// Helper functions |  | ||||||
| 	function trimLeft(val) { |  | ||||||
| 		// Adapted from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/Trim#Polyfill |  | ||||||
| 		return val.replace(/^[\s\uFEFF\xA0]+/g, ''); |  | ||||||
| 	} |  | ||||||
| 	function trimLineBreaks(input) { |  | ||||||
| 		var lines = input.split('\n'); |  | ||||||
|  |  | ||||||
| 		// Trim line-breaks from the beginning |  | ||||||
| 		for (var i = 0; i < lines.length; i++) { |  | ||||||
| 			if (lines[i].trim() === '') { |  | ||||||
| 				lines.splice(i--, 1); |  | ||||||
| 			} else break; |  | ||||||
| 		} |  | ||||||
|  |  | ||||||
| 		// Trim line-breaks from the end |  | ||||||
| 		for (var i = lines.length-1; i >= 0; i--) { |  | ||||||
| 			if (lines[i].trim() === '') { |  | ||||||
| 				lines.splice(i, 1); |  | ||||||
| 			} else break; |  | ||||||
| 		} |  | ||||||
|  |  | ||||||
| 		return lines.join('\n'); |  | ||||||
| 	} |  | ||||||
|  |  | ||||||
| 	// Main function for betterTrim() |  | ||||||
| 	return (function(snippetEl) { |  | ||||||
| 		var content = trimLineBreaks(snippetEl.innerHTML); |  | ||||||
| 		var lines = content.split('\n'); |  | ||||||
| 		// Calculate the minimum amount to remove on each line start of the snippet (can be 0) |  | ||||||
| 		var pad = lines.reduce(function(acc, line) { |  | ||||||
| 			if (line.length > 0 && trimLeft(line).length > 0 && acc > line.length - trimLeft(line).length) { |  | ||||||
| 				return line.length - trimLeft(line).length; |  | ||||||
| 			} |  | ||||||
| 			return acc; |  | ||||||
| 		}, Number.POSITIVE_INFINITY); |  | ||||||
| 		// Slice each line with this amount |  | ||||||
| 		return lines.map(function(line, index) { |  | ||||||
| 			return line.slice(pad); |  | ||||||
| 		}) |  | ||||||
| 		.join('\n'); |  | ||||||
| 	})(snippetEl); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| var RevealHighlight = { |  | ||||||
|  |  | ||||||
| 	id: 'highlight', | 	id: 'highlight', | ||||||
|  |  | ||||||
| @@ -85,7 +38,7 @@ var RevealHighlight = { | |||||||
| 			}, false ); | 			}, false ); | ||||||
|  |  | ||||||
| 			if( config.highlightOnLoad ) { | 			if( config.highlightOnLoad ) { | ||||||
| 				RevealHighlight.highlightBlock( block ); | 				Plugin.highlightBlock( block ); | ||||||
| 			} | 			} | ||||||
|  |  | ||||||
| 		} ); | 		} ); | ||||||
| @@ -94,7 +47,7 @@ var RevealHighlight = { | |||||||
| 		// all blocks in the deck into view at once | 		// all blocks in the deck into view at once | ||||||
| 		deck.on( 'pdf-ready', function() { | 		deck.on( 'pdf-ready', function() { | ||||||
| 			[].slice.call( document.querySelectorAll( '.reveal pre code[data-line-numbers].current-fragment' ) ).forEach( function( block ) { | 			[].slice.call( document.querySelectorAll( '.reveal pre code[data-line-numbers].current-fragment' ) ).forEach( function( block ) { | ||||||
| 				RevealHighlight.scrollHighlightedLineIntoView( block, {}, true ); | 				Plugin.scrollHighlightedLineIntoView( block, {}, true ); | ||||||
| 			} ); | 			} ); | ||||||
| 		} ); | 		} ); | ||||||
|  |  | ||||||
| @@ -122,7 +75,7 @@ var RevealHighlight = { | |||||||
|  |  | ||||||
| 			// If there is at least one highlight step, generate | 			// If there is at least one highlight step, generate | ||||||
| 			// fragments | 			// fragments | ||||||
| 			var highlightSteps = RevealHighlight.deserializeHighlightSteps( block.getAttribute( 'data-line-numbers' ) ); | 			var highlightSteps = Plugin.deserializeHighlightSteps( block.getAttribute( 'data-line-numbers' ) ); | ||||||
| 			if( highlightSteps.length > 1 ) { | 			if( highlightSteps.length > 1 ) { | ||||||
|  |  | ||||||
| 				// If the original code block has a fragment-index, | 				// If the original code block has a fragment-index, | ||||||
| @@ -137,10 +90,10 @@ var RevealHighlight = { | |||||||
| 				highlightSteps.slice(1).forEach( function( highlight ) { | 				highlightSteps.slice(1).forEach( function( highlight ) { | ||||||
|  |  | ||||||
| 					var fragmentBlock = block.cloneNode( true ); | 					var fragmentBlock = block.cloneNode( true ); | ||||||
| 					fragmentBlock.setAttribute( 'data-line-numbers', RevealHighlight.serializeHighlightSteps( [ highlight ] ) ); | 					fragmentBlock.setAttribute( 'data-line-numbers', Plugin.serializeHighlightSteps( [ highlight ] ) ); | ||||||
| 					fragmentBlock.classList.add( 'fragment' ); | 					fragmentBlock.classList.add( 'fragment' ); | ||||||
| 					block.parentNode.appendChild( fragmentBlock ); | 					block.parentNode.appendChild( fragmentBlock ); | ||||||
| 					RevealHighlight.highlightLines( fragmentBlock ); | 					Plugin.highlightLines( fragmentBlock ); | ||||||
|  |  | ||||||
| 					if( typeof fragmentIndex === 'number' ) { | 					if( typeof fragmentIndex === 'number' ) { | ||||||
| 						fragmentBlock.setAttribute( 'data-fragment-index', fragmentIndex ); | 						fragmentBlock.setAttribute( 'data-fragment-index', fragmentIndex ); | ||||||
| @@ -151,13 +104,13 @@ var RevealHighlight = { | |||||||
| 					} | 					} | ||||||
|  |  | ||||||
| 					// Scroll highlights into view as we step through them | 					// Scroll highlights into view as we step through them | ||||||
| 					fragmentBlock.addEventListener( 'visible', RevealHighlight.scrollHighlightedLineIntoView.bind( RevealHighlight, fragmentBlock, scrollState ) ); | 					fragmentBlock.addEventListener( 'visible', Plugin.scrollHighlightedLineIntoView.bind( Plugin, fragmentBlock, scrollState ) ); | ||||||
| 					fragmentBlock.addEventListener( 'hidden', RevealHighlight.scrollHighlightedLineIntoView.bind( RevealHighlight, fragmentBlock.previousSibling, scrollState ) ); | 					fragmentBlock.addEventListener( 'hidden', Plugin.scrollHighlightedLineIntoView.bind( Plugin, fragmentBlock.previousSibling, scrollState ) ); | ||||||
|  |  | ||||||
| 				} ); | 				} ); | ||||||
|  |  | ||||||
| 				block.removeAttribute( 'data-fragment-index' ) | 				block.removeAttribute( 'data-fragment-index' ) | ||||||
| 				block.setAttribute( 'data-line-numbers', RevealHighlight.serializeHighlightSteps( [ highlightSteps[0] ] ) ); | 				block.setAttribute( 'data-line-numbers', Plugin.serializeHighlightSteps( [ highlightSteps[0] ] ) ); | ||||||
|  |  | ||||||
| 			} | 			} | ||||||
|  |  | ||||||
| @@ -167,13 +120,13 @@ var RevealHighlight = { | |||||||
| 			var slide = typeof block.closest === 'function' ? block.closest( 'section:not(.stack)' ) : null; | 			var slide = typeof block.closest === 'function' ? block.closest( 'section:not(.stack)' ) : null; | ||||||
| 			if( slide ) { | 			if( slide ) { | ||||||
| 				var scrollFirstHighlightIntoView = function() { | 				var scrollFirstHighlightIntoView = function() { | ||||||
| 					RevealHighlight.scrollHighlightedLineIntoView( block, scrollState, true ); | 					Plugin.scrollHighlightedLineIntoView( block, scrollState, true ); | ||||||
| 					slide.removeEventListener( 'visible', scrollFirstHighlightIntoView ); | 					slide.removeEventListener( 'visible', scrollFirstHighlightIntoView ); | ||||||
| 				} | 				} | ||||||
| 				slide.addEventListener( 'visible', scrollFirstHighlightIntoView ); | 				slide.addEventListener( 'visible', scrollFirstHighlightIntoView ); | ||||||
| 			} | 			} | ||||||
|  |  | ||||||
| 			RevealHighlight.highlightLines( block ); | 			Plugin.highlightLines( block ); | ||||||
|  |  | ||||||
| 		} | 		} | ||||||
|  |  | ||||||
| @@ -229,7 +182,7 @@ var RevealHighlight = { | |||||||
| 				time = Math.min( time + 0.02, 1 ); | 				time = Math.min( time + 0.02, 1 ); | ||||||
|  |  | ||||||
| 				// Update our eased scroll position | 				// Update our eased scroll position | ||||||
| 				block.scrollTop = startTop + ( targetTop - startTop ) * RevealHighlight.easeInOutQuart( time ); | 				block.scrollTop = startTop + ( targetTop - startTop ) * Plugin.easeInOutQuart( time ); | ||||||
|  |  | ||||||
| 				// Keep animating unless we've reached the end | 				// Keep animating unless we've reached the end | ||||||
| 				if( time < 1 ) { | 				if( time < 1 ) { | ||||||
| @@ -284,7 +237,7 @@ var RevealHighlight = { | |||||||
| 	 */ | 	 */ | ||||||
| 	highlightLines: function( block, linesToHighlight ) { | 	highlightLines: function( block, linesToHighlight ) { | ||||||
|  |  | ||||||
| 		var highlightSteps = RevealHighlight.deserializeHighlightSteps( linesToHighlight || block.getAttribute( 'data-line-numbers' ) ); | 		var highlightSteps = Plugin.deserializeHighlightSteps( linesToHighlight || block.getAttribute( 'data-line-numbers' ) ); | ||||||
|  |  | ||||||
| 		if( highlightSteps.length ) { | 		if( highlightSteps.length ) { | ||||||
|  |  | ||||||
| @@ -320,7 +273,7 @@ var RevealHighlight = { | |||||||
| 	 * numbers to highlight. | 	 * numbers to highlight. | ||||||
| 	 * | 	 * | ||||||
| 	 * @example | 	 * @example | ||||||
| 	 * RevealHighlight.deserializeHighlightSteps( '1,2|3,5-10' ) | 	 * Plugin.deserializeHighlightSteps( '1,2|3,5-10' ) | ||||||
| 	 * // [ | 	 * // [ | ||||||
| 	 * //   [ { start: 1 }, { start: 2 } ], | 	 * //   [ { start: 1 }, { start: 2 } ], | ||||||
| 	 * //   [ { start: 3 }, { start: 5, end: 10 } ] | 	 * //   [ { start: 3 }, { start: 5, end: 10 } ] | ||||||
| @@ -332,16 +285,16 @@ var RevealHighlight = { | |||||||
| 		highlightSteps = highlightSteps.replace( /\s/g, '' ); | 		highlightSteps = highlightSteps.replace( /\s/g, '' ); | ||||||
|  |  | ||||||
| 		// Divide up our line number groups | 		// Divide up our line number groups | ||||||
| 		highlightSteps = highlightSteps.split( RevealHighlight.HIGHLIGHT_STEP_DELIMITER ); | 		highlightSteps = highlightSteps.split( Plugin.HIGHLIGHT_STEP_DELIMITER ); | ||||||
|  |  | ||||||
| 		return highlightSteps.map( function( highlights ) { | 		return highlightSteps.map( function( highlights ) { | ||||||
|  |  | ||||||
| 			return highlights.split( RevealHighlight.HIGHLIGHT_LINE_DELIMITER ).map( function( highlight ) { | 			return highlights.split( Plugin.HIGHLIGHT_LINE_DELIMITER ).map( function( highlight ) { | ||||||
|  |  | ||||||
| 				// Parse valid line numbers | 				// Parse valid line numbers | ||||||
| 				if( /^[\d-]+$/.test( highlight ) ) { | 				if( /^[\d-]+$/.test( highlight ) ) { | ||||||
|  |  | ||||||
| 					highlight = highlight.split( RevealHighlight.HIGHLIGHT_LINE_RANGE_DELIMITER ); | 					highlight = highlight.split( Plugin.HIGHLIGHT_LINE_RANGE_DELIMITER ); | ||||||
|  |  | ||||||
| 					var lineStart = parseInt( highlight[0], 10 ), | 					var lineStart = parseInt( highlight[0], 10 ), | ||||||
| 						lineEnd = parseInt( highlight[1], 10 ); | 						lineEnd = parseInt( highlight[1], 10 ); | ||||||
| @@ -384,7 +337,7 @@ var RevealHighlight = { | |||||||
|  |  | ||||||
| 				// Line range | 				// Line range | ||||||
| 				if( typeof highlight.end === 'number' ) { | 				if( typeof highlight.end === 'number' ) { | ||||||
| 					return highlight.start + RevealHighlight.HIGHLIGHT_LINE_RANGE_DELIMITER + highlight.end; | 					return highlight.start + Plugin.HIGHLIGHT_LINE_RANGE_DELIMITER + highlight.end; | ||||||
| 				} | 				} | ||||||
| 				// Single line | 				// Single line | ||||||
| 				else if( typeof highlight.start === 'number' ) { | 				else if( typeof highlight.start === 'number' ) { | ||||||
| @@ -395,12 +348,59 @@ var RevealHighlight = { | |||||||
| 					return ''; | 					return ''; | ||||||
| 				} | 				} | ||||||
|  |  | ||||||
| 			} ).join( RevealHighlight.HIGHLIGHT_LINE_DELIMITER ); | 			} ).join( Plugin.HIGHLIGHT_LINE_DELIMITER ); | ||||||
|  |  | ||||||
| 		} ).join( RevealHighlight.HIGHLIGHT_STEP_DELIMITER ); | 		} ).join( Plugin.HIGHLIGHT_STEP_DELIMITER ); | ||||||
|  |  | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| } | } | ||||||
|  |  | ||||||
| export default RevealHighlight; | // Function to perform a better "data-trim" on code snippets | ||||||
|  | // Will slice an indentation amount on each line of the snippet (amount based on the line having the lowest indentation length) | ||||||
|  | function betterTrim(snippetEl) { | ||||||
|  | 	// Helper functions | ||||||
|  | 	function trimLeft(val) { | ||||||
|  | 		// Adapted from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/Trim#Polyfill | ||||||
|  | 		return val.replace(/^[\s\uFEFF\xA0]+/g, ''); | ||||||
|  | 	} | ||||||
|  | 	function trimLineBreaks(input) { | ||||||
|  | 		var lines = input.split('\n'); | ||||||
|  |  | ||||||
|  | 		// Trim line-breaks from the beginning | ||||||
|  | 		for (var i = 0; i < lines.length; i++) { | ||||||
|  | 			if (lines[i].trim() === '') { | ||||||
|  | 				lines.splice(i--, 1); | ||||||
|  | 			} else break; | ||||||
|  | 		} | ||||||
|  |  | ||||||
|  | 		// Trim line-breaks from the end | ||||||
|  | 		for (var i = lines.length-1; i >= 0; i--) { | ||||||
|  | 			if (lines[i].trim() === '') { | ||||||
|  | 				lines.splice(i, 1); | ||||||
|  | 			} else break; | ||||||
|  | 		} | ||||||
|  |  | ||||||
|  | 		return lines.join('\n'); | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	// Main function for betterTrim() | ||||||
|  | 	return (function(snippetEl) { | ||||||
|  | 		var content = trimLineBreaks(snippetEl.innerHTML); | ||||||
|  | 		var lines = content.split('\n'); | ||||||
|  | 		// Calculate the minimum amount to remove on each line start of the snippet (can be 0) | ||||||
|  | 		var pad = lines.reduce(function(acc, line) { | ||||||
|  | 			if (line.length > 0 && trimLeft(line).length > 0 && acc > line.length - trimLeft(line).length) { | ||||||
|  | 				return line.length - trimLeft(line).length; | ||||||
|  | 			} | ||||||
|  | 			return acc; | ||||||
|  | 		}, Number.POSITIVE_INFINITY); | ||||||
|  | 		// Slice each line with this amount | ||||||
|  | 		return lines.map(function(line, index) { | ||||||
|  | 			return line.slice(pad); | ||||||
|  | 		}) | ||||||
|  | 		.join('\n'); | ||||||
|  | 	})(snippetEl); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | export default () => Plugin; | ||||||
|   | |||||||
| @@ -6,7 +6,7 @@ | |||||||
|  |  | ||||||
| import marked from './marked.js' | import marked from './marked.js' | ||||||
|  |  | ||||||
| export default { | let Plugin = { | ||||||
|  |  | ||||||
| 	id: 'markdown', | 	id: 'markdown', | ||||||
|  |  | ||||||
| @@ -15,6 +15,7 @@ export default { | |||||||
| 	 * current reveal.js deck. | 	 * current reveal.js deck. | ||||||
| 	 */ | 	 */ | ||||||
| 	init: function( deck ) { | 	init: function( deck ) { | ||||||
|  |  | ||||||
| 		// This should no longer be needed, as long as the highlight.js | 		// This should no longer be needed, as long as the highlight.js | ||||||
| 		// plugin is included after the markdown plugin | 		// plugin is included after the markdown plugin | ||||||
| 		// if( typeof window.hljs !== 'undefined' ) { | 		// if( typeof window.hljs !== 'undefined' ) { | ||||||
| @@ -43,6 +44,8 @@ export default { | |||||||
|  |  | ||||||
| }; | }; | ||||||
|  |  | ||||||
|  | export default () => Plugin; | ||||||
|  |  | ||||||
| var DEFAULT_SLIDE_SEPARATOR = '^\r?\n---\r?\n$', | var DEFAULT_SLIDE_SEPARATOR = '^\r?\n---\r?\n$', | ||||||
| 	DEFAULT_NOTES_SEPARATOR = 'notes?:', | 	DEFAULT_NOTES_SEPARATOR = 'notes?:', | ||||||
| 	DEFAULT_ELEMENT_ATTRIBUTES_SEPARATOR = '\\\.element\\\s*?(.+?)$', | 	DEFAULT_ELEMENT_ATTRIBUTES_SEPARATOR = '\\\.element\\\s*?(.+?)$', | ||||||
|   | |||||||
| @@ -4,7 +4,7 @@ | |||||||
|  * |  * | ||||||
|  * @author Hakim El Hattab |  * @author Hakim El Hattab | ||||||
|  */ |  */ | ||||||
| var RevealMath = (function(){ | let Plugin = (function(){ | ||||||
|  |  | ||||||
| 	var options = Reveal.getConfig().math || {}; | 	var options = Reveal.getConfig().math || {}; | ||||||
| 	var mathjax = options.mathjax || 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js'; | 	var mathjax = options.mathjax || 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js'; | ||||||
| @@ -91,4 +91,4 @@ var RevealMath = (function(){ | |||||||
|  |  | ||||||
| })(); | })(); | ||||||
|  |  | ||||||
| export default RevealMath; | export default () => Plugin; | ||||||
|   | |||||||
| @@ -9,7 +9,7 @@ | |||||||
|  * 3. This window proceeds to send the current presentation state |  * 3. This window proceeds to send the current presentation state | ||||||
|  *    to the notes window |  *    to the notes window | ||||||
|  */ |  */ | ||||||
| var RevealNotes = (function() { | let Plugin = (function() { | ||||||
|  |  | ||||||
|     var notesPopup = null; |     var notesPopup = null; | ||||||
|  |  | ||||||
| @@ -182,4 +182,4 @@ var RevealNotes = (function() { | |||||||
|  |  | ||||||
| })(); | })(); | ||||||
|  |  | ||||||
| export default RevealNotes; | export default () => Plugin; | ||||||
|   | |||||||
| @@ -5,7 +5,7 @@ | |||||||
|  * By Jon Snyder <snyder.jon@gmail.com>, February 2013 |  * By Jon Snyder <snyder.jon@gmail.com>, February 2013 | ||||||
|  */ |  */ | ||||||
|  |  | ||||||
| var RevealSearch = (function() { | var Plugin = (function() { | ||||||
|  |  | ||||||
| 	var matchedSlides; | 	var matchedSlides; | ||||||
| 	var currentMatchedIndex; | 	var currentMatchedIndex; | ||||||
| @@ -218,4 +218,4 @@ function Hilitor(id, tag) | |||||||
| 	} | 	} | ||||||
| })(); | })(); | ||||||
|  |  | ||||||
| export default RevealSearch; | export default () => Plugin; | ||||||
| @@ -1,7 +1,7 @@ | |||||||
| /*! | /*! | ||||||
|  * reveal.js Zoom plugin |  * reveal.js Zoom plugin | ||||||
|  */ |  */ | ||||||
| export default { | var Plugin = { | ||||||
|  |  | ||||||
| 	id: 'zoom', | 	id: 'zoom', | ||||||
|  |  | ||||||
| @@ -29,6 +29,8 @@ export default { | |||||||
|  |  | ||||||
| }; | }; | ||||||
|  |  | ||||||
|  | export default () => Plugin; | ||||||
|  |  | ||||||
| /*! | /*! | ||||||
|  * zoom.js 0.3 (modified for use with reveal.js) |  * zoom.js 0.3 (modified for use with reveal.js) | ||||||
|  * http://lab.hakim.se/zoom-js |  * http://lab.hakim.se/zoom-js | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user