Summary Files Commits Branches @commit @diff @stats
path: root / src / scripts / math.js
blob: 63b768170561908211c4b1308ad42e1ceee9c332 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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));
	}
}