summary refs log tree commit diff stats
path: root/geschichte/plugin/math/katex.js
diff options
context:
space:
mode:
Diffstat (limited to 'geschichte/plugin/math/katex.js')
-rwxr-xr-xgeschichte/plugin/math/katex.js96
1 files changed, 0 insertions, 96 deletions
diff --git a/geschichte/plugin/math/katex.js b/geschichte/plugin/math/katex.js
deleted file mode 100755
index a8b47c4..0000000
--- a/geschichte/plugin/math/katex.js
+++ /dev/null
@@ -1,96 +0,0 @@
-/**
- * A plugin which enables rendering of math equations inside
- * of reveal.js slides. Essentially a thin wrapper for KaTeX.
- *
- * @author Hakim El Hattab
- * @author Gerhard Burger
- */
-export const KaTeX = () => {
-	let deck;
-
-	let defaultOptions = {
-		version: 'latest',
-		delimiters: [
-			{left: '$$', right: '$$', display: true}, // Note: $$ has to come before $
-			{left: '$', right: '$', display: false},
-			{left: '\\(', right: '\\)', display: false},
-			{left: '\\[', right: '\\]', display: true}
-		],
-		ignoredTags: ['script', 'noscript', 'style', 'textarea', 'pre']
-	}
-
-	const loadCss = src => {
-		let link = document.createElement('link');
-		link.rel = 'stylesheet';
-		link.href = src;
-		document.head.appendChild(link);
-	};
-
-	/**
-	 * Loads a JavaScript file and returns a Promise for when it is loaded
-	 * Credits: https://aaronsmith.online/easily-load-an-external-script-using-javascript/
-	 */
-	const loadScript = src => {
-		return new Promise((resolve, reject) => {
-			const script = document.createElement('script')
-			script.type = 'text/javascript'
-			script.onload = resolve
-			script.onerror = reject
-			script.src = src
-			document.head.append(script)
-		})
-	};
-
-	async function loadScripts(urls) {
-		for(const url of urls) {
-			await loadScript(url);
-		}
-	}
-
-	return {
-		id: 'katex',
-
-		init: function (reveal) {
-
-			deck = reveal;
-
-			let revealOptions = deck.getConfig().katex || {};
-
-			let options = {...defaultOptions, ...revealOptions};
-			const {local, version, extensions, ...katexOptions} = options;
-
-			let baseUrl = options.local || 'https://cdn.jsdelivr.net/npm/katex';
-			let versionString = options.local ? '' : '@' + options.version;
-
-			let cssUrl = baseUrl + versionString + '/dist/katex.min.css';
-			let katexUrl = baseUrl + versionString + '/dist/katex.min.js';
-			let mhchemUrl = baseUrl + versionString + '/dist/contrib/mhchem.min.js'
-			let karUrl = baseUrl + versionString + '/dist/contrib/auto-render.min.js';
-
-			let katexScripts = [katexUrl];
-			if(options.extensions && options.extensions.includes("mhchem")) {
-				katexScripts.push(mhchemUrl);
-			}
-			katexScripts.push(karUrl);
-
-			const renderMath = () => {
-				renderMathInElement(reveal.getSlidesElement(), katexOptions);
-				deck.layout();
-			}
-
-			loadCss(cssUrl);
-
-			// For some reason dynamically loading with defer attribute doesn't result in the expected behavior, the below code does
-			loadScripts(katexScripts).then(() => {
-				if( deck.isReady() ) {
-					renderMath();
-				}
-				else {
-					deck.on( 'ready', renderMath.bind( this ) );
-				}
-			});
-
-		}
-	}
-
-};