Path: blob/main/src/format/html/format-html-math.ts
6450 views
/*1* format-html-math.ts2*3* Copyright (C) 2020-2022 Posit Software, PBC4*5*/67import { kHtmlEmptyPostProcessResult } from "../../command/render/constants.ts";8import { Document } from "../../core/deno-dom.ts";910export function katexPostProcessor() {11return (doc: Document) => {12// find katex elements13const katexScript = doc.querySelector(`script[src$="katex.min.js"]`);14const katexCss = doc.querySelector(`link[href$="katex.min.css"]`);15if (katexScript && katexCss) {16// strip defer17katexScript.removeAttribute("defer");18// before19const katexBefore = doc.createElement("script");20katexBefore.innerText =21"window.backupDefine = window.define; window.define = undefined;";22katexScript.parentNode?.insertBefore(katexBefore, katexScript);23// after24const katexAfter = doc.createElement("script");25katexAfter.innerText =26"window.define = window.backupDefine; window.backupDefine = undefined;";27katexCss?.parentNode?.insertBefore(28katexAfter,29katexCss,30);31}3233return Promise.resolve(kHtmlEmptyPostProcessResult);34};35}363738