Summary Files Commits Branches @commit @diff @stats
path: root / src / scripts / math.js
diff options
context:
space:
mode:
1 files changed, 21 insertions, 0 deletions
-rw-r--r--src/scripts/math.js21
diff --git a/src/scripts/math.js b/src/scripts/math.js
new file mode 100644
index 0000000..63b7681
--- /dev/null
+++ b/src/scripts/math.js
@@ -0,0 +1,21 @@
+function eqToHTML(equation) {
+ equation = equation.slice(2, -2)
+ .replaceAll(/ /g, '')
+ .replaceAll(/[\/+\*-=:]/g, '<span class="operator">$&</span>')
+ .replaceAll(/\\frac{(.*)}{(.*)}/g, '<span class="divide"><span><span class="dividend">$1</span></span><span><span class="divisor">$2</span></span></span>')
+ .replaceAll(/\^{(.*)}/g, '<sup>$1</sup>');
+ equation = equation
+ .replaceAll(/\\frac{(.*)}{(.*)}/g, '<span class="divide"><span><span class="dividend">$1</span></span><span><span class="divisor">$2</span></span></span>')
+ .replaceAll(/\^{(.*)}/g, '<sup>$1</sup>');
+
+ return '<div class="equation">' + equation + '</div>';
+}
+
+for (var par of document.getElementsByTagName('p')) {
+ var eqs = par.innerText.match(/\\\[[^\]]*\\\]/g);
+ if (eqs === null) continue;
+
+ for (var equation of eqs) {
+ par.innerHTML = par.innerHTML.replace(equation, eqToHTML(equation));
+ }
+}