From e9fa05b0a068fde0197ea01f2ff31e2513b7965f Mon Sep 17 00:00:00 2001 From: Holger Levsen Date: Thu, 24 Nov 2016 02:01:54 +0100 Subject: copied from git.debian.org/git/reproducible/presentations.git / 2016-11-13-MiniDebConfCambridge there, Copyright & thanks to Chris Lamb Signed-off-by: Holger Levsen --- .../2016-11-30-Profitbricks/plugin/math/math.js | 67 ++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100755 presentations/2016-11-30-Profitbricks/plugin/math/math.js (limited to 'presentations/2016-11-30-Profitbricks/plugin/math') diff --git a/presentations/2016-11-30-Profitbricks/plugin/math/math.js b/presentations/2016-11-30-Profitbricks/plugin/math/math.js new file mode 100755 index 00000000..c0a691d3 --- /dev/null +++ b/presentations/2016-11-30-Profitbricks/plugin/math/math.js @@ -0,0 +1,67 @@ +/** + * A plugin which enables rendering of math equations inside + * of reveal.js slides. Essentially a thin wrapper for MathJax. + * + * @author Hakim El Hattab + */ +var RevealMath = window.RevealMath || (function(){ + + var options = Reveal.getConfig().math || {}; + options.mathjax = options.mathjax || 'https://cdn.mathjax.org/mathjax/latest/MathJax.js'; + options.config = options.config || 'TeX-AMS_HTML-full'; + + loadScript( options.mathjax + '?config=' + options.config, function() { + + MathJax.Hub.Config({ + messageStyle: 'none', + tex2jax: { + inlineMath: [['$','$'],['\\(','\\)']] , + skipTags: ['script','noscript','style','textarea','pre'] + }, + skipStartupTypeset: true + }); + + // 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 ] ); + + } ); + + } ); + + 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 ); + + } + +})(); -- cgit v1.2.3-70-g09d2