Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
quarto-dev
GitHub Repository: quarto-dev/quarto-cli
Path: blob/main/src/format/html/format-html-math.ts
6450 views
1
/*
2
* format-html-math.ts
3
*
4
* Copyright (C) 2020-2022 Posit Software, PBC
5
*
6
*/
7
8
import { kHtmlEmptyPostProcessResult } from "../../command/render/constants.ts";
9
import { Document } from "../../core/deno-dom.ts";
10
11
export function katexPostProcessor() {
12
return (doc: Document) => {
13
// find katex elements
14
const katexScript = doc.querySelector(`script[src$="katex.min.js"]`);
15
const katexCss = doc.querySelector(`link[href$="katex.min.css"]`);
16
if (katexScript && katexCss) {
17
// strip defer
18
katexScript.removeAttribute("defer");
19
// before
20
const katexBefore = doc.createElement("script");
21
katexBefore.innerText =
22
"window.backupDefine = window.define; window.define = undefined;";
23
katexScript.parentNode?.insertBefore(katexBefore, katexScript);
24
// after
25
const katexAfter = doc.createElement("script");
26
katexAfter.innerText =
27
"window.define = window.backupDefine; window.backupDefine = undefined;";
28
katexCss?.parentNode?.insertBefore(
29
katexAfter,
30
katexCss,
31
);
32
}
33
34
return Promise.resolve(kHtmlEmptyPostProcessResult);
35
};
36
}
37
38