tweak plugin initialization to enable multi-instance plugins
This commit is contained in:
parent
7e72b10fa5
commit
e58502b3fb
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
|
||||||
|
Loading…
Reference in New Issue
Block a user