1
0
mirror of synced 2026-08-05 21:06:55 +00:00

FIX: don't wrap inline math (#17)

* adds CSS classes for styling

* don't wrap inline-math

* adds comment about selectors
This commit is contained in:
Joe
2019-09-10 12:56:59 +08:00
committed by Sam
parent 9615034d78
commit 595fc8675b
3 changed files with 89 additions and 54 deletions
@@ -21,8 +21,10 @@ function decorate(elem) {
$elem.data("applied-katex", true);
if ($elem.hasClass("math")) {
const tag = elem.tagName === "DIV" ? "div" : "span";
const displayClass = tag === "div" ? "block-math" : "inline-math";
const text = $elem.text();
$elem.addClass("math-container").text("");
$elem.addClass(`math-container ${displayClass} katex-math`).text("");
window.katex.render(text, elem, { displayMode });
}
}
@@ -48,16 +48,30 @@ function decorate(elem, isPreview) {
if ($elem.hasClass("math")) {
const tag = elem.tagName === "DIV" ? "div" : "span";
const display = tag === "div" ? "; mode=display" : "";
const displayClass = tag === "div" ? "block-math" : "inline-math";
const type = `math/tex${display}`;
const classList = `math-container ${displayClass} mathjax-math`;
$mathWrapper = $(
`<${tag} class="math-container" style="display: none;"><script type="math/tex${display}"></script></${tag}>`
`<${tag} class="${classList}" style="display: none;">
<script type="${type}"></script>
</${tag}>`
);
$math = $mathWrapper.children();
$math.text($elem.text());
$elem.after($mathWrapper);
} else if ($elem.hasClass("asciimath")) {
// asciimath is always inline
const classList = `math-container inline-math ascii-math`;
const type = `math/asciimath`;
$mathWrapper = $(
`<span class="math-container" style="display: none;"><script type="math/asciimath"></script></span>`
`<span class="${classList}" style="display: none;">
<script type="${type}"></script>
</span>`
);
$math = $mathWrapper.children();
$math.text($elem.text());
$elem.after($mathWrapper);