Mercurial > repos > public > wdown
annotate katex/contrib/mathtex-script-type.mjs @ 8:4a25b534c81c javascript-experiment
Add v8 engine and include katex
author | Jonatan Werpers <jonatan@werpers.com> |
---|---|
date | Wed, 17 Jun 2020 21:43:52 +0200 |
parents | |
children |
rev | line source |
---|---|
8
4a25b534c81c
Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
1 import katex from '../katex.mjs'; |
4a25b534c81c
Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
2 |
4a25b534c81c
Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
3 let scripts = document.body.getElementsByTagName("script"); |
4a25b534c81c
Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
4 scripts = Array.prototype.slice.call(scripts); |
4a25b534c81c
Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
5 scripts.forEach(function (script) { |
4a25b534c81c
Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
6 if (!script.type || !script.type.match(/math\/tex/i)) { |
4a25b534c81c
Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
7 return -1; |
4a25b534c81c
Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
8 } |
4a25b534c81c
Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
9 |
4a25b534c81c
Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
10 const display = script.type.match(/mode\s*=\s*display(;|\s|\n|$)/) != null; |
4a25b534c81c
Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
11 const katexElement = document.createElement(display ? "div" : "span"); |
4a25b534c81c
Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
12 katexElement.setAttribute("class", display ? "equation" : "inline-equation"); |
4a25b534c81c
Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
13 |
4a25b534c81c
Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
14 try { |
4a25b534c81c
Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
15 katex.render(script.text, katexElement, { |
4a25b534c81c
Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
16 displayMode: display |
4a25b534c81c
Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
17 }); |
4a25b534c81c
Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
18 } catch (err) { |
4a25b534c81c
Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
19 //console.error(err); linter doesn't like this |
4a25b534c81c
Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
20 katexElement.textContent = script.text; |
4a25b534c81c
Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
21 } |
4a25b534c81c
Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
22 |
4a25b534c81c
Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
23 script.parentNode.replaceChild(katexElement, script); |
4a25b534c81c
Add v8 engine and include katex
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
24 }); |