Prechádzať zdrojové kódy

comments and failesafes for #531

Hakim El Hattab 10 rokov pred
rodič
commit
3901904057
2 zmenil súbory, kde vykonal 29 pridanie a 14 odobranie
  1. 5 0
      examples/math.html
  2. 24 14
      plugin/math/math.js

+ 5 - 0
examples/math.html

@@ -38,6 +38,7 @@
 
 				<section>
 					<h3>The Lorenz Equations</h3>
+
 					\[\begin{aligned}
 					\dot{x} &amp; = \sigma(y-x) \\
 					\dot{y} &amp; = \rho x - y - xz \\
@@ -104,6 +105,10 @@
 			Reveal.initialize({
 				transition: 'linear',
 
+				math: {
+					mode: 'TeX-AMS_HTML-full'
+				},
+
 				dependencies: [
 					{ src: '../lib/js/classList.js', condition: function() { return !document.body.classList; } },
 					{ src: '../plugin/markdown/marked.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },

+ 24 - 14
plugin/math/math.js

@@ -4,7 +4,9 @@
  *
  * @author Hakim El Hattab
  */
-(function(){
+var RevealMath = window.RevealMath || (function(){
+
+	var loaded = false;
 
 	var config = Reveal.getConfig().math || {};
 	config.mode = config.mode || 'TeX-AMS_HTML-full';
@@ -16,32 +18,40 @@
 
 	// Detect when the script has loaded
 	script.onload = onScriptLoad;
+
+	// IE
 	script.onreadystatechange = function() {
 		if ( this.readyState === 'loaded' ) {
 			onScriptLoad.call();
 		}
 	}
 
+	// Normal browsers
 	head.appendChild( script );
 
 	function onScriptLoad() {
 
-		MathJax.Hub.Config({
-			messageStyle: 'none',
-			tex2jax: { inlineMath: [['$','$'],['\\(','\\)']] }
-		});
+		// Conditioned just in case both onload and readystate fire
+		if( loaded === false ) {
+			loaded = true;
 
-		// Process any math inside of the current slide when navigating,
-		// this is important since it's not possible to typeset
-		// equations within invisible elements (far future or past).
-		Reveal.addEventListener( 'slidechanged', function( event ) {
+			MathJax.Hub.Config({
+				messageStyle: 'none',
+				tex2jax: { inlineMath: [['$','$'],['\\(','\\)']] }
+			});
 
-			// This will only typeset equations that have not yet been
-			// processed, as well as equations that have change since
-			// last being processed.
-			MathJax.Hub.Update( event.currentSlide );
+			// Process any math inside of the current slide when navigating,
+			// this is needed since it's not possible to typeset equations
+			// within invisible elements (far future or past).
+			Reveal.addEventListener( 'slidechanged', function( event ) {
 
-		} );
+				// This will only typeset equations that have not yet been
+				// processed, as well as equations that have change since
+				// last being processed.
+				MathJax.Hub.Update( event.currentSlide );
+
+			} );
+		}
 
 	}