`;
}
tablecell(e) {
let t = this.parser.parseInline(e.tokens), n = e.header ? "th" : "td";
return (e.align ? `<${n} align="${e.align}">` : `<${n}>`) + t + `${n}>
`;
}
strong({ tokens: e }) {
return `${this.parser.parseInline(e)}`;
}
em({ tokens: e }) {
return `${this.parser.parseInline(e)}`;
}
codespan({ text: e }) {
return `${R(e, !0)}`;
}
br(e) {
return " ";
}
del({ tokens: e }) {
return `${this.parser.parseInline(e)}`;
}
link({ href: e, title: t, tokens: n }) {
let r = this.parser.parseInline(n), i = z(e);
if (i === null) return r;
e = i;
let a = "" + r + "", a;
}
image({ href: e, title: t, text: n, tokens: r }) {
r && (n = this.parser.parseInline(r, this.parser.textRenderer));
let i = z(e);
if (i === null) return R(n);
e = i;
let a = `", a;
}
text(e) {
return "tokens" in e && e.tokens ? this.parser.parseInline(e.tokens) : "escaped" in e && e.escaped ? e.text : R(e.text);
}
}, K = class {
strong({ text: e }) {
return e;
}
em({ text: e }) {
return e;
}
codespan({ text: e }) {
return e;
}
del({ text: e }) {
return e;
}
html({ text: e }) {
return e;
}
text({ text: e }) {
return e;
}
link({ text: e }) {
return "" + e;
}
image({ text: e }) {
return "" + e;
}
br() {
return "";
}
checkbox({ raw: e }) {
return e;
}
}, q = class e {
options;
renderer;
textRenderer;
constructor(e) {
this.options = e || t, this.options.renderer = this.options.renderer || new G(), this.renderer = this.options.renderer, this.renderer.options = this.options, this.renderer.parser = this, this.textRenderer = new K();
}
static parse(t, n) {
return new e(n).parse(t);
}
static parseInline(t, n) {
return new e(n).parseInline(t);
}
parse(e) {
this.renderer.parser = this;
let t = "";
for (let n = 0; n < e.length; n++) {
let r = e[n];
if (this.options.extensions?.renderers?.[r.type]) {
let e = r, n = this.options.extensions.renderers[e.type].call({ parser: this }, e);
if (n !== !1 || ![
"space",
"hr",
"heading",
"code",
"table",
"blockquote",
"list",
"html",
"def",
"paragraph",
"text"
].includes(e.type)) {
t += n || "";
continue;
}
}
let i = r;
switch (i.type) {
case "space":
t += this.renderer.space(i);
break;
case "hr":
t += this.renderer.hr(i);
break;
case "heading":
t += this.renderer.heading(i);
break;
case "code":
t += this.renderer.code(i);
break;
case "table":
t += this.renderer.table(i);
break;
case "blockquote":
t += this.renderer.blockquote(i);
break;
case "list":
t += this.renderer.list(i);
break;
case "checkbox":
t += this.renderer.checkbox(i);
break;
case "html":
t += this.renderer.html(i);
break;
case "def":
t += this.renderer.def(i);
break;
case "paragraph":
t += this.renderer.paragraph(i);
break;
case "text":
t += this.renderer.text(i);
break;
default: {
let e = "Token with \"" + i.type + "\" type was not found.";
if (this.options.silent) return console.error(e), "";
throw Error(e);
}
}
}
return t;
}
parseInline(e, t = this.renderer) {
this.renderer.parser = this;
let n = "";
for (let r = 0; r < e.length; r++) {
let i = e[r];
if (this.options.extensions?.renderers?.[i.type]) {
let e = this.options.extensions.renderers[i.type].call({ parser: this }, i);
if (e !== !1 || ![
"escape",
"html",
"link",
"image",
"strong",
"em",
"codespan",
"br",
"del",
"text"
].includes(i.type)) {
n += e || "";
continue;
}
}
let a = i;
switch (a.type) {
case "escape":
n += t.text(a);
break;
case "html":
n += t.html(a);
break;
case "link":
n += t.link(a);
break;
case "image":
n += t.image(a);
break;
case "checkbox":
n += t.checkbox(a);
break;
case "strong":
n += t.strong(a);
break;
case "em":
n += t.em(a);
break;
case "codespan":
n += t.codespan(a);
break;
case "br":
n += t.br(a);
break;
case "del":
n += t.del(a);
break;
case "text":
n += t.text(a);
break;
default: {
let e = "Token with \"" + a.type + "\" type was not found.";
if (this.options.silent) return console.error(e), "";
throw Error(e);
}
}
}
return n;
}
}, J = class {
options;
block;
constructor(e) {
this.options = e || t;
}
static passThroughHooks = new Set([
"preprocess",
"postprocess",
"processAllTokens",
"emStrongMask"
]);
static passThroughHooksRespectAsync = new Set([
"preprocess",
"postprocess",
"processAllTokens"
]);
preprocess(e) {
return e;
}
postprocess(e) {
return e;
}
processAllTokens(e) {
return e;
}
emStrongMask(e) {
return e;
}
provideLexer() {
return this.block ? W.lex : W.lexInline;
}
provideParser() {
return this.block ? q.parse : q.parseInline;
}
}, Y = class {
defaults = e();
options = this.setOptions;
parse = this.parseMarkdown(!0);
parseInline = this.parseMarkdown(!1);
Parser = q;
Renderer = G;
TextRenderer = K;
Lexer = W;
Tokenizer = U;
Hooks = J;
constructor(...e) {
this.use(...e);
}
walkTokens(e, t) {
let n = [];
for (let r of e) switch (n = n.concat(t.call(this, r)), r.type) {
case "table": {
let e = r;
for (let r of e.header) n = n.concat(this.walkTokens(r.tokens, t));
for (let r of e.rows) for (let e of r) n = n.concat(this.walkTokens(e.tokens, t));
break;
}
case "list": {
let e = r;
n = n.concat(this.walkTokens(e.items, t));
break;
}
default: {
let e = r;
this.defaults.extensions?.childTokens?.[e.type] ? this.defaults.extensions.childTokens[e.type].forEach((r) => {
let i = e[r].flat(Infinity);
n = n.concat(this.walkTokens(i, t));
}) : e.tokens && (n = n.concat(this.walkTokens(e.tokens, t)));
}
}
return n;
}
use(...e) {
let t = this.defaults.extensions || {
renderers: {},
childTokens: {}
};
return e.forEach((e) => {
let n = { ...e };
if (n.async = this.defaults.async || n.async || !1, e.extensions && (e.extensions.forEach((e) => {
if (!e.name) throw Error("extension name required");
if ("renderer" in e) {
let n = t.renderers[e.name];
n ? t.renderers[e.name] = function(...t) {
let r = e.renderer.apply(this, t);
return r === !1 && (r = n.apply(this, t)), r;
} : t.renderers[e.name] = e.renderer;
}
if ("tokenizer" in e) {
if (!e.level || e.level !== "block" && e.level !== "inline") throw Error("extension level must be 'block' or 'inline'");
let n = t[e.level];
n ? n.unshift(e.tokenizer) : t[e.level] = [e.tokenizer], e.start && (e.level === "block" ? t.startBlock ? t.startBlock.push(e.start) : t.startBlock = [e.start] : e.level === "inline" && (t.startInline ? t.startInline.push(e.start) : t.startInline = [e.start]));
}
"childTokens" in e && e.childTokens && (t.childTokens[e.name] = e.childTokens);
}), n.extensions = t), e.renderer) {
let t = this.defaults.renderer || new G(this.defaults);
for (let n in e.renderer) {
if (!(n in t)) throw Error(`renderer '${n}' does not exist`);
if (["options", "parser"].includes(n)) continue;
let r = n, i = e.renderer[r], a = t[r];
t[r] = (...e) => {
let n = i.apply(t, e);
return n === !1 && (n = a.apply(t, e)), n || "";
};
}
n.renderer = t;
}
if (e.tokenizer) {
let t = this.defaults.tokenizer || new U(this.defaults);
for (let n in e.tokenizer) {
if (!(n in t)) throw Error(`tokenizer '${n}' does not exist`);
if ([
"options",
"rules",
"lexer"
].includes(n)) continue;
let r = n, i = e.tokenizer[r], a = t[r];
t[r] = (...e) => {
let n = i.apply(t, e);
return n === !1 && (n = a.apply(t, e)), n;
};
}
n.tokenizer = t;
}
if (e.hooks) {
let t = this.defaults.hooks || new J();
for (let n in e.hooks) {
if (!(n in t)) throw Error(`hook '${n}' does not exist`);
if (["options", "block"].includes(n)) continue;
let r = n, i = e.hooks[r], a = t[r];
J.passThroughHooks.has(n) ? t[r] = (e) => {
if (this.defaults.async && J.passThroughHooksRespectAsync.has(n)) return (async () => {
let n = await i.call(t, e);
return a.call(t, n);
})();
let r = i.call(t, e);
return a.call(t, r);
} : t[r] = (...e) => {
if (this.defaults.async) return (async () => {
let n = await i.apply(t, e);
return n === !1 && (n = await a.apply(t, e)), n;
})();
let n = i.apply(t, e);
return n === !1 && (n = a.apply(t, e)), n;
};
}
n.hooks = t;
}
if (e.walkTokens) {
let t = this.defaults.walkTokens, r = e.walkTokens;
n.walkTokens = function(e) {
let n = [];
return n.push(r.call(this, e)), t && (n = n.concat(t.call(this, e))), n;
};
}
this.defaults = {
...this.defaults,
...n
};
}), this;
}
setOptions(e) {
return this.defaults = {
...this.defaults,
...e
}, this;
}
lexer(e, t) {
return W.lex(e, t ?? this.defaults);
}
parser(e, t) {
return q.parse(e, t ?? this.defaults);
}
parseMarkdown(e) {
return (t, n) => {
let r = { ...n }, i = {
...this.defaults,
...r
}, a = this.onError(!!i.silent, !!i.async);
if (this.defaults.async === !0 && r.async === !1) return a(/* @__PURE__ */ Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));
if (typeof t > "u" || t === null) return a(/* @__PURE__ */ Error("marked(): input parameter is undefined or null"));
if (typeof t != "string") return a(/* @__PURE__ */ Error("marked(): input parameter is of type " + Object.prototype.toString.call(t) + ", string expected"));
if (i.hooks && (i.hooks.options = i, i.hooks.block = e), i.async) return (async () => {
let n = i.hooks ? await i.hooks.preprocess(t) : t, r = await (i.hooks ? await i.hooks.provideLexer() : e ? W.lex : W.lexInline)(n, i), a = i.hooks ? await i.hooks.processAllTokens(r) : r;
i.walkTokens && await Promise.all(this.walkTokens(a, i.walkTokens));
let o = await (i.hooks ? await i.hooks.provideParser() : e ? q.parse : q.parseInline)(a, i);
return i.hooks ? await i.hooks.postprocess(o) : o;
})().catch(a);
try {
i.hooks && (t = i.hooks.preprocess(t));
let n = (i.hooks ? i.hooks.provideLexer() : e ? W.lex : W.lexInline)(t, i);
i.hooks && (n = i.hooks.processAllTokens(n)), i.walkTokens && this.walkTokens(n, i.walkTokens);
let r = (i.hooks ? i.hooks.provideParser() : e ? q.parse : q.parseInline)(n, i);
return i.hooks && (r = i.hooks.postprocess(r)), r;
} catch (e) {
return a(e);
}
};
}
onError(e, t) {
return (n) => {
if (n.message += "\nPlease report this to https://github.com/markedjs/marked.", e) {
let e = "
An error occurred:
" + R(n.message + "", !0) + "
";
return t ? Promise.resolve(e) : e;
}
if (t) return Promise.reject(n);
throw n;
};
}
}, X = new Y();
function Z(e, t) {
return X.parse(e, t);
}
Z.options = Z.setOptions = function(e) {
return X.setOptions(e), Z.defaults = X.defaults, n(Z.defaults), Z;
}, Z.getDefaults = e, Z.defaults = t, Z.use = function(...e) {
return X.use(...e), Z.defaults = X.defaults, n(Z.defaults), Z;
}, Z.walkTokens = function(e, t) {
return X.walkTokens(e, t);
}, Z.parseInline = X.parseInline, Z.Parser = q, Z.parser = q.parse, Z.Renderer = G, Z.TextRenderer = K, Z.Lexer = W, Z.lexer = W.lex, Z.Tokenizer = U, Z.Hooks = J, Z.parse = Z, Z.options, Z.setOptions, Z.use, Z.walkTokens, Z.parseInline, q.parse, W.lex;
//#endregion
//#region node_modules/marked-smartypants/lib/index.mjs
var Ne = /<(\/?)(?:pre|code|kbd|script|math)[^>]*>/i, Pe = (e = "", t = "1") => {
var n, r, i, a, o, s = 0;
if (t = typeof t == "number" ? t.toString() : t.replace(/\s/g, ""), t === "0") return e;
if (t === "1") n = 1, r = 1, i = 1, a = 1;
else if (t === "2") n = 1, r = 1, i = 2, a = 1;
else if (t === "3") n = 1, r = 1, i = 3, a = 1;
else if (t === "-1") o = 1;
else for (let e = 0; e < t.length; e++) {
let o = t[e];
o === "q" && (n = 1), o === "b" && (r = 1), o === "B" && (r = 2), o === "d" && (i = 1), o === "D" && (i = 2), o === "i" && (i = 3), o === "e" && (a = 1), o === "w" && (s = 1);
}
var c = We(e), l = "", u = 0, d = "";
for (let e = 0; e < c.length; e++) {
let t = c[e];
if (t[0] === "tag") {
l += t[1];
let e = Ne.exec(t[1]);
e && (u = e[1] === "/" ? 0 : 1);
} else {
let e = t[1], c = e.substring(e.length - 1, e.length);
u || (e = Ue(e), s && (e = e.replace(/$quot;/g, "\"")), i && (i === 1 && (e = Re(e)), i === 2 && (e = ze(e)), i === 3 && (e = Be(e))), a && (e = Ve(e)), r && (e = Ie(e), r === 2 && (e = Le(e))), n && (e = e === "'" ? /\S/.test(d) ? "’" : "‘" : e === "\"" ? /\S/.test(d) ? "”" : "“" : Fe(e)), o && (e = He(e))), d = c, l += e;
}
}
return l;
}, Fe = (e) => {
var t = "[!\"#$%'()*+,-./:;<=>?@[\\]^_`{|}~]";
e = e.replace(RegExp(`^'(?=${t}\\B)`), "’"), e = e.replace(RegExp(`^"(?=${t}\\B)`), "”"), e = e.replace(/"'(?=\w)/, "“‘"), e = e.replace(/'"(?=\w)/, "‘“"), e = e.replace(/'(?=\d\d)/, "’");
var n = "[^\\ \\t\\r\\n\\[\\{\\(\\-]", r = "[\\ \\t\\r\\n\\[\\{\\(\\-]", i = "–|—";
return e = e.replace(RegExp(`(\\s| |--|&[mn]dash;|${i}|ȁ[34])'(?=\\w)`, "g"), "$1‘"), e = e.replace(RegExp(`(${n})'`, "g"), "$1’"), e = e.replace(RegExp(`(${r}?)'(?=\\s|s\\b)`, "g"), "$1’"), e = e.replace(/'/g, "‘"), e = e.replace(RegExp(`(\\s| |--|&[mn]dash;|${i}|ȁ[34])"(?=\\w)`, "g"), "$1“"), e = e.replace(RegExp(`(${n})"`, "g"), "$1”"), e = e.replace(RegExp(`(${r}?)"(?=\\s)`, "g"), "$1”"), e = e.replace(/"/g, "“"), e;
}, Ie = (e) => (e = e.replace(/``/g, "“"), e = e.replace(/''/g, "”"), e), Le = (e) => (e = e.replace(/`/g, "‘"), e = e.replace(/'/g, "’"), e), Re = (e) => (e = e.replace(/--/g, "—"), e), ze = (e) => (e = e.replace(/---/g, "—"), e = e.replace(/--/g, "–"), e), Be = (e) => (e = e.replace(/---/g, "–"), e = e.replace(/--/g, "—"), e), Ve = (e) => (e = e.replace(/\.\.\./g, "…"), e = e.replace(/\. \. \./g, "…"), e), He = (e) => (e = e.replace(/–/g, "-"), e = e.replace(/—/g, "--"), e = e.replace(/‘/g, "'"), e = e.replace(/’/g, "'"), e = e.replace(/“/g, "\""), e = e.replace(/”/g, "\""), e = e.replace(/…/g, "..."), e), Ue = (e) => (e = e.replace(/\\\\/g, "\"), e = e.replace(/\\"/g, """), e = e.replace(/\\'/g, "'"), e = e.replace(/\\\./g, "."), e = e.replace(/\\-/g, "-"), e = e.replace(/\\`/g, "`"), e), We = (e) => {
for (var t = 0, n = e.length, r = [], i = /|<\?.*?\?>|<[^>]*>/g, a = null; a = i.exec(e);) {
if (t < a.index) {
let n = ["text", e.substring(t, a.index)];
r.push(n);
}
let n = ["tag", a.toString()];
r.push(n), t = i.lastIndex;
}
if (t < n) {
let i = ["text", e.substring(t, n)];
r.push(i);
}
return r;
};
function Ge({ config: e = 2 } = {}) {
return {
tokenizer: { inlineText(e) {
let t = this.rules.inline.text.exec(e);
if (t) return {
type: "text",
raw: t[0],
text: t[0],
escaped: !0
};
} },
hooks: { postprocess(t) {
return Pe(t, e);
} }
};
}
//#endregion
//#region plugin/markdown/plugin.js
var Ke = "\r?\n---\r?\n", qe = null, Je = "^s*notes?:", Ye = "\\.element\\s*?(.+?)$", Xe = "\\.slide:\\s*?(\\S.+?)$", Q = "__SCRIPT_END__", $ = /\[\s*((\d*):)?\s*([\s\d,|-]*)\]/, Ze = {
"&": "&",
"<": "<",
">": ">",
"\"": """,
"'": "'"
}, Qe = () => {
let e, t = null;
function n(e) {
let t = (e.querySelector("[data-template]") || e.querySelector("script") || e).textContent;
t = t.replace(new RegExp(Q, "g"), "<\/script>");
let n = t.match(/^\n?(\s*)/)[1].length, r = t.match(/^\n?(\t*)/)[1].length;
return r > 0 ? t = t.replace(RegExp("\\n?\\t{" + r + "}(.*)", "g"), function(e, t) {
return "\n" + t;
}) : n > 1 && (t = t.replace(RegExp("\\n? {" + n + "}(.*)", "g"), function(e, t) {
return "\n" + t;
})), t;
}
function r(e) {
let t = e.attributes, n = [];
for (let e = 0, r = t.length; e < r; e++) {
let r = t[e].name, i = t[e].value;
/data\-(markdown|separator|vertical|notes)/gi.test(r) || (i ? n.push(r + "=\"" + i + "\"") : n.push(r));
}
return n.join(" ");
}
function i(t) {
let n = e?.getConfig?.().markdown;
return t ||= {}, t.separator = t.separator || n?.separator || Ke, t.verticalSeparator = t.verticalSeparator || n?.verticalSeparator || qe, t.notesSeparator = t.notesSeparator || n?.notesSeparator || Je, t.attributes = t.attributes || "", t;
}
function a(e, n) {
n = i(n);
let r = e.split(new RegExp(n.notesSeparator, "mgi"));
return r.length === 2 && t && (e = r[0] + ""), e = e.replace(/<\/script>/g, Q), "