diff options
Diffstat (limited to 'plugin/math/math.js')
-rwxr-xr-x | plugin/math/math.js | 165 |
1 files changed, 79 insertions, 86 deletions
diff --git a/plugin/math/math.js b/plugin/math/math.js index d76c9dd..32bc432 100755 --- a/plugin/math/math.js +++ b/plugin/math/math.js @@ -4,89 +4,82 @@ * * @author Hakim El Hattab */ -var RevealMath = window.RevealMath || (function(){ - - var options = Reveal.getConfig().math || {}; - var mathjax = options.mathjax || 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js'; - var config = options.config || 'TeX-AMS_HTML-full'; - var url = mathjax + '?config=' + config; - - var defaultOptions = { - messageStyle: 'none', - tex2jax: { - inlineMath: [ [ '$', '$' ], [ '\\(', '\\)' ] ], - skipTags: [ 'script', 'noscript', 'style', 'textarea', 'pre' ] - }, - skipStartupTypeset: true - }; - - function defaults( options, defaultOptions ) { - - for ( var i in defaultOptions ) { - if ( !options.hasOwnProperty( i ) ) { - options[i] = defaultOptions[i]; - } - } - - } - - function loadScript( url, callback ) { - - var head = document.querySelector( 'head' ); - var script = document.createElement( 'script' ); - script.type = 'text/javascript'; - script.src = url; - - // Wrapper for callback to make sure it only fires once - var finish = function() { - if( typeof callback === 'function' ) { - callback.call(); - callback = null; - } - } - - script.onload = finish; - - // IE - script.onreadystatechange = function() { - if ( this.readyState === 'loaded' ) { - finish(); - } - } - - // Normal browsers - head.appendChild( script ); - - } - - return { - init: function() { - - defaults( options, defaultOptions ); - defaults( options.tex2jax, defaultOptions.tex2jax ); - options.mathjax = options.config = null; - - loadScript( url, function() { - - MathJax.Hub.Config( options ); - - // Typeset followed by an immediate reveal.js layout since - // the typesetting process could affect slide height - MathJax.Hub.Queue( [ 'Typeset', MathJax.Hub ] ); - MathJax.Hub.Queue( Reveal.layout ); - - // Reprocess equations in slides when they turn visible - Reveal.addEventListener( 'slidechanged', function( event ) { - - MathJax.Hub.Queue( [ 'Typeset', MathJax.Hub, event.currentSlide ] ); - - } ); - - } ); - - } - } - -})(); - -Reveal.registerPlugin( 'math', RevealMath ); +var RevealMath = + window.RevealMath || + (function () { + var options = Reveal.getConfig().math || {}; + var mathjax = options.mathjax || "https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js"; + var config = options.config || "TeX-AMS_HTML-full"; + var url = mathjax + "?config=" + config; + + var defaultOptions = { + messageStyle: "none", + tex2jax: { + inlineMath: [ + ["$", "$"], + ["\\(", "\\)"], + ], + skipTags: ["script", "noscript", "style", "textarea", "pre"], + }, + skipStartupTypeset: true, + }; + + function defaults(options, defaultOptions) { + for (var i in defaultOptions) { + if (!options.hasOwnProperty(i)) { + options[i] = defaultOptions[i]; + } + } + } + + function loadScript(url, callback) { + var head = document.querySelector("head"); + var script = document.createElement("script"); + script.type = "text/javascript"; + script.src = url; + + // Wrapper for callback to make sure it only fires once + var finish = function () { + if (typeof callback === "function") { + callback.call(); + callback = null; + } + }; + + script.onload = finish; + + // IE + script.onreadystatechange = function () { + if (this.readyState === "loaded") { + finish(); + } + }; + + // Normal browsers + head.appendChild(script); + } + + return { + init: function () { + defaults(options, defaultOptions); + defaults(options.tex2jax, defaultOptions.tex2jax); + options.mathjax = options.config = null; + + loadScript(url, function () { + MathJax.Hub.Config(options); + + // Typeset followed by an immediate reveal.js layout since + // the typesetting process could affect slide height + MathJax.Hub.Queue(["Typeset", MathJax.Hub]); + MathJax.Hub.Queue(Reveal.layout); + + // Reprocess equations in slides when they turn visible + Reveal.addEventListener("slidechanged", function (event) { + MathJax.Hub.Queue(["Typeset", MathJax.Hub, event.currentSlide]); + }); + }); + }, + }; + })(); + +Reveal.registerPlugin("math", RevealMath); |