@hpcc-js/observablehq-compiler
Version:
hpcc-js - ObservableHQ Compiler (unoffical)
113 lines (112 loc) • 2.29 kB
JavaScript
import "./chunk-rwCFCtyI.js";
import { a as e, i as t, n } from "./dist-CecFOdLa.js";
//#region ../../node_modules/@observablehq/notebook-kit/dist/src/runtime/stdlib/highlight.js
var r = t([
{
tag: e.link,
class: "tok-link"
},
{
tag: [e.heading, e.strong],
class: "tok-strong"
},
{
tag: e.emphasis,
class: "tok-emphasis"
},
{
tag: [e.keyword, e.typeName],
class: "tok-keyword"
},
{
tag: e.atom,
class: "tok-atom"
},
{
tag: [
e.bool,
e.escape,
e.number
],
class: "tok-literal"
},
{
tag: [e.string, e.regexp],
class: "tok-string"
},
{
tag: e.comment,
class: "tok-comment"
},
{
tag: e.invalid,
class: "tok-invalid"
},
{
tag: e.variableName,
class: "tok-variable"
},
{
tag: [
e.definition(e.variableName),
e.className,
e.propertyName
],
class: "tok-definition"
},
{
tag: e.meta,
class: "tok-meta"
}
]);
async function highlight(e) {
let t = getLanguage(e);
if (!t) return;
let i = e.parentElement;
i && (i.dataset.language = t);
let a = await getParser(t);
if (!a) return;
let o = e.ownerDocument, s = e.textContent, c = a.parse(s);
for (; e.lastChild;) e.lastChild.remove();
function emit(t, n) {
let r = o.createTextNode(t);
if (n) {
let e = o.createElement("span");
e.appendChild(r), e.className = n, r = e;
}
e.appendChild(r);
}
function emitBreak() {
e.appendChild(o.createTextNode("\n"));
}
n(s, c, r, emit, emitBreak);
}
async function getParser(e) {
switch (e) {
case "node":
e = "ts";
break;
}
switch (e) {
case "js":
case "ts":
case "jsx": return (await import("./dist-HSOoLE8A.js")).parser.configure({ dialect: e });
case "python": return (await import("./dist-C66WUAXi.js")).parser;
case "html": return (await import("./dist-DF_mUoJg.js")).parser;
case "css": return (await import("./dist-C3tBoEnV.js")).parser;
case "md": return (await import("./dist-BKFRBZ7S.js")).parser;
}
}
function getLanguage(e) {
let t = [...e.classList].find((e) => e.startsWith("language-"))?.slice(9)?.toLowerCase();
switch (t) {
case "javascript": return "js";
case "typescript": return "ts";
case "py": return "python";
case "markdown": return "md";
}
return t;
}
//#endregion
export { highlight };
//# sourceMappingURL=highlight-Da8at5lV.js.map