2846 lines
80 KiB
JavaScript
2846 lines
80 KiB
JavaScript
|
import { b6 as At, l as zt, aR as It } from "./mermaid-e4a58915.js";
|
|||
|
function Tt(n, r) {
|
|||
|
var { includeImageAlt: t = !0 } = r || {};
|
|||
|
return nt(n, t);
|
|||
|
}
|
|||
|
function nt(n, r) {
|
|||
|
return n && typeof n == "object" && // @ts-ignore looks like a literal.
|
|||
|
(n.value || // @ts-ignore looks like an image.
|
|||
|
(r ? n.alt : "") || // @ts-ignore looks like a parent.
|
|||
|
"children" in n && Hn(n.children, r) || Array.isArray(n) && Hn(n, r)) || "";
|
|||
|
}
|
|||
|
function Hn(n, r) {
|
|||
|
for (var t = [], e = -1; ++e < n.length; )
|
|||
|
t[e] = nt(n[e], r);
|
|||
|
return t.join("");
|
|||
|
}
|
|||
|
function en(n, r, t, e) {
|
|||
|
const u = n.length;
|
|||
|
let l = 0, i;
|
|||
|
if (r < 0 ? r = -r > u ? 0 : u + r : r = r > u ? u : r, t = t > 0 ? t : 0, e.length < 1e4)
|
|||
|
i = Array.from(e), i.unshift(r, t), [].splice.apply(n, i);
|
|||
|
else
|
|||
|
for (t && [].splice.apply(n, [r, t]); l < e.length; )
|
|||
|
i = e.slice(l, l + 1e4), i.unshift(r, 0), [].splice.apply(n, i), l += 1e4, r += 1e4;
|
|||
|
}
|
|||
|
function Z(n, r) {
|
|||
|
return n.length > 0 ? (en(n, n.length, 0, r), n) : r;
|
|||
|
}
|
|||
|
const Nn = {}.hasOwnProperty;
|
|||
|
function Bt(n) {
|
|||
|
const r = {};
|
|||
|
let t = -1;
|
|||
|
for (; ++t < n.length; )
|
|||
|
Lt(r, n[t]);
|
|||
|
return r;
|
|||
|
}
|
|||
|
function Lt(n, r) {
|
|||
|
let t;
|
|||
|
for (t in r) {
|
|||
|
const u = (Nn.call(n, t) ? n[t] : void 0) || (n[t] = {}), l = r[t];
|
|||
|
let i;
|
|||
|
for (i in l) {
|
|||
|
Nn.call(u, i) || (u[i] = []);
|
|||
|
const a = l[i];
|
|||
|
Ot(
|
|||
|
// @ts-expect-error Looks like a list.
|
|||
|
u[i],
|
|||
|
Array.isArray(a) ? a : a ? [a] : []
|
|||
|
);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
function Ot(n, r) {
|
|||
|
let t = -1;
|
|||
|
const e = [];
|
|||
|
for (; ++t < r.length; )
|
|||
|
(r[t].add === "after" ? n : e).push(r[t]);
|
|||
|
en(n, 0, 0, e);
|
|||
|
}
|
|||
|
const Dt = /[!-/:-@[-`{-~\u00A1\u00A7\u00AB\u00B6\u00B7\u00BB\u00BF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C77\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4F\u2E52\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]/, tn = sn(/[A-Za-z]/), An = sn(/\d/), Pt = sn(/[\dA-Fa-f]/), v = sn(/[\dA-Za-z]/), _t = sn(/[!-/:-@[-`{-~]/), Vn = sn(/[#-'*+\--9=?A-Z^-~]/);
|
|||
|
function zn(n) {
|
|||
|
return (
|
|||
|
// Special whitespace codes (which have negative values), C0 and Control
|
|||
|
// character DEL
|
|||
|
n !== null && (n < 32 || n === 127)
|
|||
|
);
|
|||
|
}
|
|||
|
function Y(n) {
|
|||
|
return n !== null && (n < 0 || n === 32);
|
|||
|
}
|
|||
|
function C(n) {
|
|||
|
return n !== null && n < -2;
|
|||
|
}
|
|||
|
function q(n) {
|
|||
|
return n === -2 || n === -1 || n === 32;
|
|||
|
}
|
|||
|
const Mt = sn(/\s/), Rt = sn(Dt);
|
|||
|
function sn(n) {
|
|||
|
return r;
|
|||
|
function r(t) {
|
|||
|
return t !== null && n.test(String.fromCharCode(t));
|
|||
|
}
|
|||
|
}
|
|||
|
function T(n, r, t, e) {
|
|||
|
const u = e ? e - 1 : Number.POSITIVE_INFINITY;
|
|||
|
let l = 0;
|
|||
|
return i;
|
|||
|
function i(c) {
|
|||
|
return q(c) ? (n.enter(t), a(c)) : r(c);
|
|||
|
}
|
|||
|
function a(c) {
|
|||
|
return q(c) && l++ < u ? (n.consume(c), a) : (n.exit(t), r(c));
|
|||
|
}
|
|||
|
}
|
|||
|
const jt = {
|
|||
|
tokenize: qt
|
|||
|
};
|
|||
|
function qt(n) {
|
|||
|
const r = n.attempt(
|
|||
|
this.parser.constructs.contentInitial,
|
|||
|
e,
|
|||
|
u
|
|||
|
);
|
|||
|
let t;
|
|||
|
return r;
|
|||
|
function e(a) {
|
|||
|
if (a === null) {
|
|||
|
n.consume(a);
|
|||
|
return;
|
|||
|
}
|
|||
|
return n.enter("lineEnding"), n.consume(a), n.exit("lineEnding"), T(n, r, "linePrefix");
|
|||
|
}
|
|||
|
function u(a) {
|
|||
|
return n.enter("paragraph"), l(a);
|
|||
|
}
|
|||
|
function l(a) {
|
|||
|
const c = n.enter("chunkText", {
|
|||
|
contentType: "text",
|
|||
|
previous: t
|
|||
|
});
|
|||
|
return t && (t.next = c), t = c, i(a);
|
|||
|
}
|
|||
|
function i(a) {
|
|||
|
if (a === null) {
|
|||
|
n.exit("chunkText"), n.exit("paragraph"), n.consume(a);
|
|||
|
return;
|
|||
|
}
|
|||
|
return C(a) ? (n.consume(a), n.exit("chunkText"), l) : (n.consume(a), i);
|
|||
|
}
|
|||
|
}
|
|||
|
const Ht = {
|
|||
|
tokenize: Nt
|
|||
|
}, Wn = {
|
|||
|
tokenize: Vt
|
|||
|
};
|
|||
|
function Nt(n) {
|
|||
|
const r = this, t = [];
|
|||
|
let e = 0, u, l, i;
|
|||
|
return a;
|
|||
|
function a(F) {
|
|||
|
if (e < t.length) {
|
|||
|
const L = t[e];
|
|||
|
return r.containerState = L[1], n.attempt(
|
|||
|
L[0].continuation,
|
|||
|
c,
|
|||
|
p
|
|||
|
)(F);
|
|||
|
}
|
|||
|
return p(F);
|
|||
|
}
|
|||
|
function c(F) {
|
|||
|
if (e++, r.containerState._closeFlow) {
|
|||
|
r.containerState._closeFlow = void 0, u && _();
|
|||
|
const L = r.events.length;
|
|||
|
let O = L, d;
|
|||
|
for (; O--; )
|
|||
|
if (r.events[O][0] === "exit" && r.events[O][1].type === "chunkFlow") {
|
|||
|
d = r.events[O][1].end;
|
|||
|
break;
|
|||
|
}
|
|||
|
y(e);
|
|||
|
let P = L;
|
|||
|
for (; P < r.events.length; )
|
|||
|
r.events[P][1].end = Object.assign({}, d), P++;
|
|||
|
return en(
|
|||
|
r.events,
|
|||
|
O + 1,
|
|||
|
0,
|
|||
|
r.events.slice(L)
|
|||
|
), r.events.length = P, p(F);
|
|||
|
}
|
|||
|
return a(F);
|
|||
|
}
|
|||
|
function p(F) {
|
|||
|
if (e === t.length) {
|
|||
|
if (!u)
|
|||
|
return g(F);
|
|||
|
if (u.currentConstruct && u.currentConstruct.concrete)
|
|||
|
return k(F);
|
|||
|
r.interrupt = !!(u.currentConstruct && !u._gfmTableDynamicInterruptHack);
|
|||
|
}
|
|||
|
return r.containerState = {}, n.check(
|
|||
|
Wn,
|
|||
|
h,
|
|||
|
x
|
|||
|
)(F);
|
|||
|
}
|
|||
|
function h(F) {
|
|||
|
return u && _(), y(e), g(F);
|
|||
|
}
|
|||
|
function x(F) {
|
|||
|
return r.parser.lazy[r.now().line] = e !== t.length, i = r.now().offset, k(F);
|
|||
|
}
|
|||
|
function g(F) {
|
|||
|
return r.containerState = {}, n.attempt(
|
|||
|
Wn,
|
|||
|
f,
|
|||
|
k
|
|||
|
)(F);
|
|||
|
}
|
|||
|
function f(F) {
|
|||
|
return e++, t.push([r.currentConstruct, r.containerState]), g(F);
|
|||
|
}
|
|||
|
function k(F) {
|
|||
|
if (F === null) {
|
|||
|
u && _(), y(0), n.consume(F);
|
|||
|
return;
|
|||
|
}
|
|||
|
return u = u || r.parser.flow(r.now()), n.enter("chunkFlow", {
|
|||
|
contentType: "flow",
|
|||
|
previous: l,
|
|||
|
_tokenizer: u
|
|||
|
}), B(F);
|
|||
|
}
|
|||
|
function B(F) {
|
|||
|
if (F === null) {
|
|||
|
D(n.exit("chunkFlow"), !0), y(0), n.consume(F);
|
|||
|
return;
|
|||
|
}
|
|||
|
return C(F) ? (n.consume(F), D(n.exit("chunkFlow")), e = 0, r.interrupt = void 0, a) : (n.consume(F), B);
|
|||
|
}
|
|||
|
function D(F, L) {
|
|||
|
const O = r.sliceStream(F);
|
|||
|
if (L && O.push(null), F.previous = l, l && (l.next = F), l = F, u.defineSkip(F.start), u.write(O), r.parser.lazy[F.start.line]) {
|
|||
|
let d = u.events.length;
|
|||
|
for (; d--; )
|
|||
|
if (
|
|||
|
// The token starts before the line ending…
|
|||
|
u.events[d][1].start.offset < i && // …and either is not ended yet…
|
|||
|
(!u.events[d][1].end || // …or ends after it.
|
|||
|
u.events[d][1].end.offset > i)
|
|||
|
)
|
|||
|
return;
|
|||
|
const P = r.events.length;
|
|||
|
let R = P, j, V;
|
|||
|
for (; R--; )
|
|||
|
if (r.events[R][0] === "exit" && r.events[R][1].type === "chunkFlow") {
|
|||
|
if (j) {
|
|||
|
V = r.events[R][1].end;
|
|||
|
break;
|
|||
|
}
|
|||
|
j = !0;
|
|||
|
}
|
|||
|
for (y(e), d = P; d < r.events.length; )
|
|||
|
r.events[d][1].end = Object.assign({}, V), d++;
|
|||
|
en(
|
|||
|
r.events,
|
|||
|
R + 1,
|
|||
|
0,
|
|||
|
r.events.slice(P)
|
|||
|
), r.events.length = d;
|
|||
|
}
|
|||
|
}
|
|||
|
function y(F) {
|
|||
|
let L = t.length;
|
|||
|
for (; L-- > F; ) {
|
|||
|
const O = t[L];
|
|||
|
r.containerState = O[1], O[0].exit.call(r, n);
|
|||
|
}
|
|||
|
t.length = F;
|
|||
|
}
|
|||
|
function _() {
|
|||
|
u.write([null]), l = void 0, u = void 0, r.containerState._closeFlow = void 0;
|
|||
|
}
|
|||
|
}
|
|||
|
function Vt(n, r, t) {
|
|||
|
return T(
|
|||
|
n,
|
|||
|
n.attempt(this.parser.constructs.document, r, t),
|
|||
|
"linePrefix",
|
|||
|
this.parser.constructs.disable.null.includes("codeIndented") ? void 0 : 4
|
|||
|
);
|
|||
|
}
|
|||
|
function Qn(n) {
|
|||
|
if (n === null || Y(n) || Mt(n))
|
|||
|
return 1;
|
|||
|
if (Rt(n))
|
|||
|
return 2;
|
|||
|
}
|
|||
|
function Ln(n, r, t) {
|
|||
|
const e = [];
|
|||
|
let u = -1;
|
|||
|
for (; ++u < n.length; ) {
|
|||
|
const l = n[u].resolveAll;
|
|||
|
l && !e.includes(l) && (r = l(r, t), e.push(l));
|
|||
|
}
|
|||
|
return r;
|
|||
|
}
|
|||
|
const In = {
|
|||
|
name: "attention",
|
|||
|
tokenize: Qt,
|
|||
|
resolveAll: Wt
|
|||
|
};
|
|||
|
function Wt(n, r) {
|
|||
|
let t = -1, e, u, l, i, a, c, p, h;
|
|||
|
for (; ++t < n.length; )
|
|||
|
if (n[t][0] === "enter" && n[t][1].type === "attentionSequence" && n[t][1]._close) {
|
|||
|
for (e = t; e--; )
|
|||
|
if (n[e][0] === "exit" && n[e][1].type === "attentionSequence" && n[e][1]._open && // If the markers are the same:
|
|||
|
r.sliceSerialize(n[e][1]).charCodeAt(0) === r.sliceSerialize(n[t][1]).charCodeAt(0)) {
|
|||
|
if ((n[e][1]._close || n[t][1]._open) && (n[t][1].end.offset - n[t][1].start.offset) % 3 && !((n[e][1].end.offset - n[e][1].start.offset + n[t][1].end.offset - n[t][1].start.offset) % 3))
|
|||
|
continue;
|
|||
|
c = n[e][1].end.offset - n[e][1].start.offset > 1 && n[t][1].end.offset - n[t][1].start.offset > 1 ? 2 : 1;
|
|||
|
const x = Object.assign({}, n[e][1].end), g = Object.assign({}, n[t][1].start);
|
|||
|
Un(x, -c), Un(g, c), i = {
|
|||
|
type: c > 1 ? "strongSequence" : "emphasisSequence",
|
|||
|
start: x,
|
|||
|
end: Object.assign({}, n[e][1].end)
|
|||
|
}, a = {
|
|||
|
type: c > 1 ? "strongSequence" : "emphasisSequence",
|
|||
|
start: Object.assign({}, n[t][1].start),
|
|||
|
end: g
|
|||
|
}, l = {
|
|||
|
type: c > 1 ? "strongText" : "emphasisText",
|
|||
|
start: Object.assign({}, n[e][1].end),
|
|||
|
end: Object.assign({}, n[t][1].start)
|
|||
|
}, u = {
|
|||
|
type: c > 1 ? "strong" : "emphasis",
|
|||
|
start: Object.assign({}, i.start),
|
|||
|
end: Object.assign({}, a.end)
|
|||
|
}, n[e][1].end = Object.assign({}, i.start), n[t][1].start = Object.assign({}, a.end), p = [], n[e][1].end.offset - n[e][1].start.offset && (p = Z(p, [
|
|||
|
["enter", n[e][1], r],
|
|||
|
["exit", n[e][1], r]
|
|||
|
])), p = Z(p, [
|
|||
|
["enter", u, r],
|
|||
|
["enter", i, r],
|
|||
|
["exit", i, r],
|
|||
|
["enter", l, r]
|
|||
|
]), p = Z(
|
|||
|
p,
|
|||
|
Ln(
|
|||
|
r.parser.constructs.insideSpan.null,
|
|||
|
n.slice(e + 1, t),
|
|||
|
r
|
|||
|
)
|
|||
|
), p = Z(p, [
|
|||
|
["exit", l, r],
|
|||
|
["enter", a, r],
|
|||
|
["exit", a, r],
|
|||
|
["exit", u, r]
|
|||
|
]), n[t][1].end.offset - n[t][1].start.offset ? (h = 2, p = Z(p, [
|
|||
|
["enter", n[t][1], r],
|
|||
|
["exit", n[t][1], r]
|
|||
|
])) : h = 0, en(n, e - 1, t - e + 3, p), t = e + p.length - h - 2;
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
for (t = -1; ++t < n.length; )
|
|||
|
n[t][1].type === "attentionSequence" && (n[t][1].type = "data");
|
|||
|
return n;
|
|||
|
}
|
|||
|
function Qt(n, r) {
|
|||
|
const t = this.parser.constructs.attentionMarkers.null, e = this.previous, u = Qn(e);
|
|||
|
let l;
|
|||
|
return i;
|
|||
|
function i(c) {
|
|||
|
return n.enter("attentionSequence"), l = c, a(c);
|
|||
|
}
|
|||
|
function a(c) {
|
|||
|
if (c === l)
|
|||
|
return n.consume(c), a;
|
|||
|
const p = n.exit("attentionSequence"), h = Qn(c), x = !h || h === 2 && u || t.includes(c), g = !u || u === 2 && h || t.includes(e);
|
|||
|
return p._open = !!(l === 42 ? x : x && (u || !g)), p._close = !!(l === 42 ? g : g && (h || !x)), r(c);
|
|||
|
}
|
|||
|
}
|
|||
|
function Un(n, r) {
|
|||
|
n.column += r, n.offset += r, n._bufferIndex += r;
|
|||
|
}
|
|||
|
const Ut = {
|
|||
|
name: "autolink",
|
|||
|
tokenize: $t
|
|||
|
};
|
|||
|
function $t(n, r, t) {
|
|||
|
let e = 1;
|
|||
|
return u;
|
|||
|
function u(k) {
|
|||
|
return n.enter("autolink"), n.enter("autolinkMarker"), n.consume(k), n.exit("autolinkMarker"), n.enter("autolinkProtocol"), l;
|
|||
|
}
|
|||
|
function l(k) {
|
|||
|
return tn(k) ? (n.consume(k), i) : Vn(k) ? p(k) : t(k);
|
|||
|
}
|
|||
|
function i(k) {
|
|||
|
return k === 43 || k === 45 || k === 46 || v(k) ? a(k) : p(k);
|
|||
|
}
|
|||
|
function a(k) {
|
|||
|
return k === 58 ? (n.consume(k), c) : (k === 43 || k === 45 || k === 46 || v(k)) && e++ < 32 ? (n.consume(k), a) : p(k);
|
|||
|
}
|
|||
|
function c(k) {
|
|||
|
return k === 62 ? (n.exit("autolinkProtocol"), f(k)) : k === null || k === 32 || k === 60 || zn(k) ? t(k) : (n.consume(k), c);
|
|||
|
}
|
|||
|
function p(k) {
|
|||
|
return k === 64 ? (n.consume(k), e = 0, h) : Vn(k) ? (n.consume(k), p) : t(k);
|
|||
|
}
|
|||
|
function h(k) {
|
|||
|
return v(k) ? x(k) : t(k);
|
|||
|
}
|
|||
|
function x(k) {
|
|||
|
return k === 46 ? (n.consume(k), e = 0, h) : k === 62 ? (n.exit("autolinkProtocol").type = "autolinkEmail", f(k)) : g(k);
|
|||
|
}
|
|||
|
function g(k) {
|
|||
|
return (k === 45 || v(k)) && e++ < 63 ? (n.consume(k), k === 45 ? g : x) : t(k);
|
|||
|
}
|
|||
|
function f(k) {
|
|||
|
return n.enter("autolinkMarker"), n.consume(k), n.exit("autolinkMarker"), n.exit("autolink"), r;
|
|||
|
}
|
|||
|
}
|
|||
|
const Sn = {
|
|||
|
tokenize: Zt,
|
|||
|
partial: !0
|
|||
|
};
|
|||
|
function Zt(n, r, t) {
|
|||
|
return T(n, e, "linePrefix");
|
|||
|
function e(u) {
|
|||
|
return u === null || C(u) ? r(u) : t(u);
|
|||
|
}
|
|||
|
}
|
|||
|
const tt = {
|
|||
|
name: "blockQuote",
|
|||
|
tokenize: Yt,
|
|||
|
continuation: {
|
|||
|
tokenize: Gt
|
|||
|
},
|
|||
|
exit: Jt
|
|||
|
};
|
|||
|
function Yt(n, r, t) {
|
|||
|
const e = this;
|
|||
|
return u;
|
|||
|
function u(i) {
|
|||
|
if (i === 62) {
|
|||
|
const a = e.containerState;
|
|||
|
return a.open || (n.enter("blockQuote", {
|
|||
|
_container: !0
|
|||
|
}), a.open = !0), n.enter("blockQuotePrefix"), n.enter("blockQuoteMarker"), n.consume(i), n.exit("blockQuoteMarker"), l;
|
|||
|
}
|
|||
|
return t(i);
|
|||
|
}
|
|||
|
function l(i) {
|
|||
|
return q(i) ? (n.enter("blockQuotePrefixWhitespace"), n.consume(i), n.exit("blockQuotePrefixWhitespace"), n.exit("blockQuotePrefix"), r) : (n.exit("blockQuotePrefix"), r(i));
|
|||
|
}
|
|||
|
}
|
|||
|
function Gt(n, r, t) {
|
|||
|
return T(
|
|||
|
n,
|
|||
|
n.attempt(tt, r, t),
|
|||
|
"linePrefix",
|
|||
|
this.parser.constructs.disable.null.includes("codeIndented") ? void 0 : 4
|
|||
|
);
|
|||
|
}
|
|||
|
function Jt(n) {
|
|||
|
n.exit("blockQuote");
|
|||
|
}
|
|||
|
const et = {
|
|||
|
name: "characterEscape",
|
|||
|
tokenize: Kt
|
|||
|
};
|
|||
|
function Kt(n, r, t) {
|
|||
|
return e;
|
|||
|
function e(l) {
|
|||
|
return n.enter("characterEscape"), n.enter("escapeMarker"), n.consume(l), n.exit("escapeMarker"), u;
|
|||
|
}
|
|||
|
function u(l) {
|
|||
|
return _t(l) ? (n.enter("characterEscapeValue"), n.consume(l), n.exit("characterEscapeValue"), n.exit("characterEscape"), r) : t(l);
|
|||
|
}
|
|||
|
}
|
|||
|
const $n = document.createElement("i");
|
|||
|
function On(n) {
|
|||
|
const r = "&" + n + ";";
|
|||
|
$n.innerHTML = r;
|
|||
|
const t = $n.textContent;
|
|||
|
return t.charCodeAt(t.length - 1) === 59 && n !== "semi" || t === r ? !1 : t;
|
|||
|
}
|
|||
|
const rt = {
|
|||
|
name: "characterReference",
|
|||
|
tokenize: Xt
|
|||
|
};
|
|||
|
function Xt(n, r, t) {
|
|||
|
const e = this;
|
|||
|
let u = 0, l, i;
|
|||
|
return a;
|
|||
|
function a(x) {
|
|||
|
return n.enter("characterReference"), n.enter("characterReferenceMarker"), n.consume(x), n.exit("characterReferenceMarker"), c;
|
|||
|
}
|
|||
|
function c(x) {
|
|||
|
return x === 35 ? (n.enter("characterReferenceMarkerNumeric"), n.consume(x), n.exit("characterReferenceMarkerNumeric"), p) : (n.enter("characterReferenceValue"), l = 31, i = v, h(x));
|
|||
|
}
|
|||
|
function p(x) {
|
|||
|
return x === 88 || x === 120 ? (n.enter("characterReferenceMarkerHexadecimal"), n.consume(x), n.exit("characterReferenceMarkerHexadecimal"), n.enter("characterReferenceValue"), l = 6, i = Pt, h) : (n.enter("characterReferenceValue"), l = 7, i = An, h(x));
|
|||
|
}
|
|||
|
function h(x) {
|
|||
|
let g;
|
|||
|
return x === 59 && u ? (g = n.exit("characterReferenceValue"), i === v && !On(e.sliceSerialize(g)) ? t(x) : (n.enter("characterReferenceMarker"), n.consume(x), n.exit("characterReferenceMarker"), n.exit("characterReference"), r)) : i(x) && u++ < l ? (n.consume(x), h) : t(x);
|
|||
|
}
|
|||
|
}
|
|||
|
const Zn = {
|
|||
|
name: "codeFenced",
|
|||
|
tokenize: vt,
|
|||
|
concrete: !0
|
|||
|
};
|
|||
|
function vt(n, r, t) {
|
|||
|
const e = this, u = {
|
|||
|
tokenize: O,
|
|||
|
partial: !0
|
|||
|
}, l = {
|
|||
|
tokenize: L,
|
|||
|
partial: !0
|
|||
|
}, i = this.events[this.events.length - 1], a = i && i[1].type === "linePrefix" ? i[2].sliceSerialize(i[1], !0).length : 0;
|
|||
|
let c = 0, p;
|
|||
|
return h;
|
|||
|
function h(d) {
|
|||
|
return n.enter("codeFenced"), n.enter("codeFencedFence"), n.enter("codeFencedFenceSequence"), p = d, x(d);
|
|||
|
}
|
|||
|
function x(d) {
|
|||
|
return d === p ? (n.consume(d), c++, x) : (n.exit("codeFencedFenceSequence"), c < 3 ? t(d) : T(n, g, "whitespace")(d));
|
|||
|
}
|
|||
|
function g(d) {
|
|||
|
return d === null || C(d) ? D(d) : (n.enter("codeFencedFenceInfo"), n.enter("chunkString", {
|
|||
|
contentType: "string"
|
|||
|
}), f(d));
|
|||
|
}
|
|||
|
function f(d) {
|
|||
|
return d === null || Y(d) ? (n.exit("chunkString"), n.exit("codeFencedFenceInfo"), T(n, k, "whitespace")(d)) : d === 96 && d === p ? t(d) : (n.consume(d), f);
|
|||
|
}
|
|||
|
function k(d) {
|
|||
|
return d === null || C(d) ? D(d) : (n.enter("codeFencedFenceMeta"), n.enter("chunkString", {
|
|||
|
contentType: "string"
|
|||
|
}), B(d));
|
|||
|
}
|
|||
|
function B(d) {
|
|||
|
return d === null || C(d) ? (n.exit("chunkString"), n.exit("codeFencedFenceMeta"), D(d)) : d === 96 && d === p ? t(d) : (n.consume(d), B);
|
|||
|
}
|
|||
|
function D(d) {
|
|||
|
return n.exit("codeFencedFence"), e.interrupt ? r(d) : y(d);
|
|||
|
}
|
|||
|
function y(d) {
|
|||
|
return d === null ? F(d) : C(d) ? n.attempt(
|
|||
|
l,
|
|||
|
n.attempt(
|
|||
|
u,
|
|||
|
F,
|
|||
|
a ? T(
|
|||
|
n,
|
|||
|
y,
|
|||
|
"linePrefix",
|
|||
|
a + 1
|
|||
|
) : y
|
|||
|
),
|
|||
|
F
|
|||
|
)(d) : (n.enter("codeFlowValue"), _(d));
|
|||
|
}
|
|||
|
function _(d) {
|
|||
|
return d === null || C(d) ? (n.exit("codeFlowValue"), y(d)) : (n.consume(d), _);
|
|||
|
}
|
|||
|
function F(d) {
|
|||
|
return n.exit("codeFenced"), r(d);
|
|||
|
}
|
|||
|
function L(d, P, R) {
|
|||
|
const j = this;
|
|||
|
return V;
|
|||
|
function V(E) {
|
|||
|
return d.enter("lineEnding"), d.consume(E), d.exit("lineEnding"), S;
|
|||
|
}
|
|||
|
function S(E) {
|
|||
|
return j.parser.lazy[j.now().line] ? R(E) : P(E);
|
|||
|
}
|
|||
|
}
|
|||
|
function O(d, P, R) {
|
|||
|
let j = 0;
|
|||
|
return T(
|
|||
|
d,
|
|||
|
V,
|
|||
|
"linePrefix",
|
|||
|
this.parser.constructs.disable.null.includes("codeIndented") ? void 0 : 4
|
|||
|
);
|
|||
|
function V(A) {
|
|||
|
return d.enter("codeFencedFence"), d.enter("codeFencedFenceSequence"), S(A);
|
|||
|
}
|
|||
|
function S(A) {
|
|||
|
return A === p ? (d.consume(A), j++, S) : j < c ? R(A) : (d.exit("codeFencedFenceSequence"), T(d, E, "whitespace")(A));
|
|||
|
}
|
|||
|
function E(A) {
|
|||
|
return A === null || C(A) ? (d.exit("codeFencedFence"), P(A)) : R(A);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
const wn = {
|
|||
|
name: "codeIndented",
|
|||
|
tokenize: te
|
|||
|
}, ne = {
|
|||
|
tokenize: ee,
|
|||
|
partial: !0
|
|||
|
};
|
|||
|
function te(n, r, t) {
|
|||
|
const e = this;
|
|||
|
return u;
|
|||
|
function u(p) {
|
|||
|
return n.enter("codeIndented"), T(n, l, "linePrefix", 4 + 1)(p);
|
|||
|
}
|
|||
|
function l(p) {
|
|||
|
const h = e.events[e.events.length - 1];
|
|||
|
return h && h[1].type === "linePrefix" && h[2].sliceSerialize(h[1], !0).length >= 4 ? i(p) : t(p);
|
|||
|
}
|
|||
|
function i(p) {
|
|||
|
return p === null ? c(p) : C(p) ? n.attempt(ne, i, c)(p) : (n.enter("codeFlowValue"), a(p));
|
|||
|
}
|
|||
|
function a(p) {
|
|||
|
return p === null || C(p) ? (n.exit("codeFlowValue"), i(p)) : (n.consume(p), a);
|
|||
|
}
|
|||
|
function c(p) {
|
|||
|
return n.exit("codeIndented"), r(p);
|
|||
|
}
|
|||
|
}
|
|||
|
function ee(n, r, t) {
|
|||
|
const e = this;
|
|||
|
return u;
|
|||
|
function u(i) {
|
|||
|
return e.parser.lazy[e.now().line] ? t(i) : C(i) ? (n.enter("lineEnding"), n.consume(i), n.exit("lineEnding"), u) : T(n, l, "linePrefix", 4 + 1)(i);
|
|||
|
}
|
|||
|
function l(i) {
|
|||
|
const a = e.events[e.events.length - 1];
|
|||
|
return a && a[1].type === "linePrefix" && a[2].sliceSerialize(a[1], !0).length >= 4 ? r(i) : C(i) ? u(i) : t(i);
|
|||
|
}
|
|||
|
}
|
|||
|
const re = {
|
|||
|
name: "codeText",
|
|||
|
tokenize: le,
|
|||
|
resolve: ie,
|
|||
|
previous: ue
|
|||
|
};
|
|||
|
function ie(n) {
|
|||
|
let r = n.length - 4, t = 3, e, u;
|
|||
|
if ((n[t][1].type === "lineEnding" || n[t][1].type === "space") && (n[r][1].type === "lineEnding" || n[r][1].type === "space")) {
|
|||
|
for (e = t; ++e < r; )
|
|||
|
if (n[e][1].type === "codeTextData") {
|
|||
|
n[t][1].type = "codeTextPadding", n[r][1].type = "codeTextPadding", t += 2, r -= 2;
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
for (e = t - 1, r++; ++e <= r; )
|
|||
|
u === void 0 ? e !== r && n[e][1].type !== "lineEnding" && (u = e) : (e === r || n[e][1].type === "lineEnding") && (n[u][1].type = "codeTextData", e !== u + 2 && (n[u][1].end = n[e - 1][1].end, n.splice(u + 2, e - u - 2), r -= e - u - 2, e = u + 2), u = void 0);
|
|||
|
return n;
|
|||
|
}
|
|||
|
function ue(n) {
|
|||
|
return n !== 96 || this.events[this.events.length - 1][1].type === "characterEscape";
|
|||
|
}
|
|||
|
function le(n, r, t) {
|
|||
|
let e = 0, u, l;
|
|||
|
return i;
|
|||
|
function i(x) {
|
|||
|
return n.enter("codeText"), n.enter("codeTextSequence"), a(x);
|
|||
|
}
|
|||
|
function a(x) {
|
|||
|
return x === 96 ? (n.consume(x), e++, a) : (n.exit("codeTextSequence"), c(x));
|
|||
|
}
|
|||
|
function c(x) {
|
|||
|
return x === null ? t(x) : x === 96 ? (l = n.enter("codeTextSequence"), u = 0, h(x)) : x === 32 ? (n.enter("space"), n.consume(x), n.exit("space"), c) : C(x) ? (n.enter("lineEnding"), n.consume(x), n.exit("lineEnding"), c) : (n.enter("codeTextData"), p(x));
|
|||
|
}
|
|||
|
function p(x) {
|
|||
|
return x === null || x === 32 || x === 96 || C(x) ? (n.exit("codeTextData"), c(x)) : (n.consume(x), p);
|
|||
|
}
|
|||
|
function h(x) {
|
|||
|
return x === 96 ? (n.consume(x), u++, h) : u === e ? (n.exit("codeTextSequence"), n.exit("codeText"), r(x)) : (l.type = "codeTextData", p(x));
|
|||
|
}
|
|||
|
}
|
|||
|
function it(n) {
|
|||
|
const r = {};
|
|||
|
let t = -1, e, u, l, i, a, c, p;
|
|||
|
for (; ++t < n.length; ) {
|
|||
|
for (; t in r; )
|
|||
|
t = r[t];
|
|||
|
if (e = n[t], t && e[1].type === "chunkFlow" && n[t - 1][1].type === "listItemPrefix" && (c = e[1]._tokenizer.events, l = 0, l < c.length && c[l][1].type === "lineEndingBlank" && (l += 2), l < c.length && c[l][1].type === "content"))
|
|||
|
for (; ++l < c.length && c[l][1].type !== "content"; )
|
|||
|
c[l][1].type === "chunkText" && (c[l][1]._isInFirstContentOfListItem = !0, l++);
|
|||
|
if (e[0] === "enter")
|
|||
|
e[1].contentType && (Object.assign(r, ae(n, t)), t = r[t], p = !0);
|
|||
|
else if (e[1]._container) {
|
|||
|
for (l = t, u = void 0; l-- && (i = n[l], i[1].type === "lineEnding" || i[1].type === "lineEndingBlank"); )
|
|||
|
i[0] === "enter" && (u && (n[u][1].type = "lineEndingBlank"), i[1].type = "lineEnding", u = l);
|
|||
|
u && (e[1].end = Object.assign({}, n[u][1].start), a = n.slice(u, t), a.unshift(e), en(n, u, t - u + 1, a));
|
|||
|
}
|
|||
|
}
|
|||
|
return !p;
|
|||
|
}
|
|||
|
function ae(n, r) {
|
|||
|
const t = n[r][1], e = n[r][2];
|
|||
|
let u = r - 1;
|
|||
|
const l = [], i = t._tokenizer || e.parser[t.contentType](t.start), a = i.events, c = [], p = {};
|
|||
|
let h, x, g = -1, f = t, k = 0, B = 0;
|
|||
|
const D = [B];
|
|||
|
for (; f; ) {
|
|||
|
for (; n[++u][1] !== f; )
|
|||
|
;
|
|||
|
l.push(u), f._tokenizer || (h = e.sliceStream(f), f.next || h.push(null), x && i.defineSkip(f.start), f._isInFirstContentOfListItem && (i._gfmTasklistFirstContentOfListItem = !0), i.write(h), f._isInFirstContentOfListItem && (i._gfmTasklistFirstContentOfListItem = void 0)), x = f, f = f.next;
|
|||
|
}
|
|||
|
for (f = t; ++g < a.length; )
|
|||
|
// Find a void token that includes a break.
|
|||
|
a[g][0] === "exit" && a[g - 1][0] === "enter" && a[g][1].type === a[g - 1][1].type && a[g][1].start.line !== a[g][1].end.line && (B = g + 1, D.push(B), f._tokenizer = void 0, f.previous = void 0, f = f.next);
|
|||
|
for (i.events = [], f ? (f._tokenizer = void 0, f.previous = void 0) : D.pop(), g = D.length; g--; ) {
|
|||
|
const y = a.slice(D[g], D[g + 1]), _ = l.pop();
|
|||
|
c.unshift([_, _ + y.length - 1]), en(n, _, 2, y);
|
|||
|
}
|
|||
|
for (g = -1; ++g < c.length; )
|
|||
|
p[k + c[g][0]] = k + c[g][1], k += c[g][1] - c[g][0] - 1;
|
|||
|
return p;
|
|||
|
}
|
|||
|
const oe = {
|
|||
|
tokenize: he,
|
|||
|
resolve: ce
|
|||
|
}, se = {
|
|||
|
tokenize: pe,
|
|||
|
partial: !0
|
|||
|
};
|
|||
|
function ce(n) {
|
|||
|
return it(n), n;
|
|||
|
}
|
|||
|
function he(n, r) {
|
|||
|
let t;
|
|||
|
return e;
|
|||
|
function e(a) {
|
|||
|
return n.enter("content"), t = n.enter("chunkContent", {
|
|||
|
contentType: "content"
|
|||
|
}), u(a);
|
|||
|
}
|
|||
|
function u(a) {
|
|||
|
return a === null ? l(a) : C(a) ? n.check(
|
|||
|
se,
|
|||
|
i,
|
|||
|
l
|
|||
|
)(a) : (n.consume(a), u);
|
|||
|
}
|
|||
|
function l(a) {
|
|||
|
return n.exit("chunkContent"), n.exit("content"), r(a);
|
|||
|
}
|
|||
|
function i(a) {
|
|||
|
return n.consume(a), n.exit("chunkContent"), t.next = n.enter("chunkContent", {
|
|||
|
contentType: "content",
|
|||
|
previous: t
|
|||
|
}), t = t.next, u;
|
|||
|
}
|
|||
|
}
|
|||
|
function pe(n, r, t) {
|
|||
|
const e = this;
|
|||
|
return u;
|
|||
|
function u(i) {
|
|||
|
return n.exit("chunkContent"), n.enter("lineEnding"), n.consume(i), n.exit("lineEnding"), T(n, l, "linePrefix");
|
|||
|
}
|
|||
|
function l(i) {
|
|||
|
if (i === null || C(i))
|
|||
|
return t(i);
|
|||
|
const a = e.events[e.events.length - 1];
|
|||
|
return !e.parser.constructs.disable.null.includes("codeIndented") && a && a[1].type === "linePrefix" && a[2].sliceSerialize(a[1], !0).length >= 4 ? r(i) : n.interrupt(e.parser.constructs.flow, t, r)(i);
|
|||
|
}
|
|||
|
}
|
|||
|
function ut(n, r, t, e, u, l, i, a, c) {
|
|||
|
const p = c || Number.POSITIVE_INFINITY;
|
|||
|
let h = 0;
|
|||
|
return x;
|
|||
|
function x(y) {
|
|||
|
return y === 60 ? (n.enter(e), n.enter(u), n.enter(l), n.consume(y), n.exit(l), g) : y === null || y === 41 || zn(y) ? t(y) : (n.enter(e), n.enter(i), n.enter(a), n.enter("chunkString", {
|
|||
|
contentType: "string"
|
|||
|
}), B(y));
|
|||
|
}
|
|||
|
function g(y) {
|
|||
|
return y === 62 ? (n.enter(l), n.consume(y), n.exit(l), n.exit(u), n.exit(e), r) : (n.enter(a), n.enter("chunkString", {
|
|||
|
contentType: "string"
|
|||
|
}), f(y));
|
|||
|
}
|
|||
|
function f(y) {
|
|||
|
return y === 62 ? (n.exit("chunkString"), n.exit(a), g(y)) : y === null || y === 60 || C(y) ? t(y) : (n.consume(y), y === 92 ? k : f);
|
|||
|
}
|
|||
|
function k(y) {
|
|||
|
return y === 60 || y === 62 || y === 92 ? (n.consume(y), f) : f(y);
|
|||
|
}
|
|||
|
function B(y) {
|
|||
|
return y === 40 ? ++h > p ? t(y) : (n.consume(y), B) : y === 41 ? h-- ? (n.consume(y), B) : (n.exit("chunkString"), n.exit(a), n.exit(i), n.exit(e), r(y)) : y === null || Y(y) ? h ? t(y) : (n.exit("chunkString"), n.exit(a), n.exit(i), n.exit(e), r(y)) : zn(y) ? t(y) : (n.consume(y), y === 92 ? D : B);
|
|||
|
}
|
|||
|
function D(y) {
|
|||
|
return y === 40 || y === 41 || y === 92 ? (n.consume(y), B) : B(y);
|
|||
|
}
|
|||
|
}
|
|||
|
function lt(n, r, t, e, u, l) {
|
|||
|
const i = this;
|
|||
|
let a = 0, c;
|
|||
|
return p;
|
|||
|
function p(f) {
|
|||
|
return n.enter(e), n.enter(u), n.consume(f), n.exit(u), n.enter(l), h;
|
|||
|
}
|
|||
|
function h(f) {
|
|||
|
return f === null || f === 91 || f === 93 && !c || /* To do: remove in the future once we’ve switched from
|
|||
|
* `micromark-extension-footnote` to `micromark-extension-gfm-footnote`,
|
|||
|
* which doesn’t need this */
|
|||
|
/* Hidden footnotes hook */
|
|||
|
/* c8 ignore next 3 */
|
|||
|
f === 94 && !a && "_hiddenFootnoteSupport" in i.parser.constructs || a > 999 ? t(f) : f === 93 ? (n.exit(l), n.enter(u), n.consume(f), n.exit(u), n.exit(e), r) : C(f) ? (n.enter("lineEnding"), n.consume(f), n.exit("lineEnding"), h) : (n.enter("chunkString", {
|
|||
|
contentType: "string"
|
|||
|
}), x(f));
|
|||
|
}
|
|||
|
function x(f) {
|
|||
|
return f === null || f === 91 || f === 93 || C(f) || a++ > 999 ? (n.exit("chunkString"), h(f)) : (n.consume(f), c = c || !q(f), f === 92 ? g : x);
|
|||
|
}
|
|||
|
function g(f) {
|
|||
|
return f === 91 || f === 92 || f === 93 ? (n.consume(f), a++, x) : x(f);
|
|||
|
}
|
|||
|
}
|
|||
|
function at(n, r, t, e, u, l) {
|
|||
|
let i;
|
|||
|
return a;
|
|||
|
function a(g) {
|
|||
|
return n.enter(e), n.enter(u), n.consume(g), n.exit(u), i = g === 40 ? 41 : g, c;
|
|||
|
}
|
|||
|
function c(g) {
|
|||
|
return g === i ? (n.enter(u), n.consume(g), n.exit(u), n.exit(e), r) : (n.enter(l), p(g));
|
|||
|
}
|
|||
|
function p(g) {
|
|||
|
return g === i ? (n.exit(l), c(i)) : g === null ? t(g) : C(g) ? (n.enter("lineEnding"), n.consume(g), n.exit("lineEnding"), T(n, p, "linePrefix")) : (n.enter("chunkString", {
|
|||
|
contentType: "string"
|
|||
|
}), h(g));
|
|||
|
}
|
|||
|
function h(g) {
|
|||
|
return g === i || g === null || C(g) ? (n.exit("chunkString"), p(g)) : (n.consume(g), g === 92 ? x : h);
|
|||
|
}
|
|||
|
function x(g) {
|
|||
|
return g === i || g === 92 ? (n.consume(g), h) : h(g);
|
|||
|
}
|
|||
|
}
|
|||
|
function dn(n, r) {
|
|||
|
let t;
|
|||
|
return e;
|
|||
|
function e(u) {
|
|||
|
return C(u) ? (n.enter("lineEnding"), n.consume(u), n.exit("lineEnding"), t = !0, e) : q(u) ? T(
|
|||
|
n,
|
|||
|
e,
|
|||
|
t ? "linePrefix" : "lineSuffix"
|
|||
|
)(u) : r(u);
|
|||
|
}
|
|||
|
}
|
|||
|
function fn(n) {
|
|||
|
return n.replace(/[\t\n\r ]+/g, " ").replace(/^ | $/g, "").toLowerCase().toUpperCase();
|
|||
|
}
|
|||
|
const me = {
|
|||
|
name: "definition",
|
|||
|
tokenize: xe
|
|||
|
}, fe = {
|
|||
|
tokenize: ge,
|
|||
|
partial: !0
|
|||
|
};
|
|||
|
function xe(n, r, t) {
|
|||
|
const e = this;
|
|||
|
let u;
|
|||
|
return l;
|
|||
|
function l(c) {
|
|||
|
return n.enter("definition"), lt.call(
|
|||
|
e,
|
|||
|
n,
|
|||
|
i,
|
|||
|
t,
|
|||
|
"definitionLabel",
|
|||
|
"definitionLabelMarker",
|
|||
|
"definitionLabelString"
|
|||
|
)(c);
|
|||
|
}
|
|||
|
function i(c) {
|
|||
|
return u = fn(
|
|||
|
e.sliceSerialize(e.events[e.events.length - 1][1]).slice(1, -1)
|
|||
|
), c === 58 ? (n.enter("definitionMarker"), n.consume(c), n.exit("definitionMarker"), dn(
|
|||
|
n,
|
|||
|
ut(
|
|||
|
n,
|
|||
|
n.attempt(
|
|||
|
fe,
|
|||
|
T(n, a, "whitespace"),
|
|||
|
T(n, a, "whitespace")
|
|||
|
),
|
|||
|
t,
|
|||
|
"definitionDestination",
|
|||
|
"definitionDestinationLiteral",
|
|||
|
"definitionDestinationLiteralMarker",
|
|||
|
"definitionDestinationRaw",
|
|||
|
"definitionDestinationString"
|
|||
|
)
|
|||
|
)) : t(c);
|
|||
|
}
|
|||
|
function a(c) {
|
|||
|
return c === null || C(c) ? (n.exit("definition"), e.parser.defined.includes(u) || e.parser.defined.push(u), r(c)) : t(c);
|
|||
|
}
|
|||
|
}
|
|||
|
function ge(n, r, t) {
|
|||
|
return e;
|
|||
|
function e(i) {
|
|||
|
return Y(i) ? dn(n, u)(i) : t(i);
|
|||
|
}
|
|||
|
function u(i) {
|
|||
|
return i === 34 || i === 39 || i === 40 ? at(
|
|||
|
n,
|
|||
|
T(n, l, "whitespace"),
|
|||
|
t,
|
|||
|
"definitionTitle",
|
|||
|
"definitionTitleMarker",
|
|||
|
"definitionTitleString"
|
|||
|
)(i) : t(i);
|
|||
|
}
|
|||
|
function l(i) {
|
|||
|
return i === null || C(i) ? r(i) : t(i);
|
|||
|
}
|
|||
|
}
|
|||
|
const ke = {
|
|||
|
name: "hardBreakEscape",
|
|||
|
tokenize: de
|
|||
|
};
|
|||
|
function de(n, r, t) {
|
|||
|
return e;
|
|||
|
function e(l) {
|
|||
|
return n.enter("hardBreakEscape"), n.enter("escapeMarker"), n.consume(l), u;
|
|||
|
}
|
|||
|
function u(l) {
|
|||
|
return C(l) ? (n.exit("escapeMarker"), n.exit("hardBreakEscape"), r(l)) : t(l);
|
|||
|
}
|
|||
|
}
|
|||
|
const be = {
|
|||
|
name: "headingAtx",
|
|||
|
tokenize: Se,
|
|||
|
resolve: ye
|
|||
|
};
|
|||
|
function ye(n, r) {
|
|||
|
let t = n.length - 2, e = 3, u, l;
|
|||
|
return n[e][1].type === "whitespace" && (e += 2), t - 2 > e && n[t][1].type === "whitespace" && (t -= 2), n[t][1].type === "atxHeadingSequence" && (e === t - 1 || t - 4 > e && n[t - 2][1].type === "whitespace") && (t -= e + 1 === t ? 2 : 4), t > e && (u = {
|
|||
|
type: "atxHeadingText",
|
|||
|
start: n[e][1].start,
|
|||
|
end: n[t][1].end
|
|||
|
}, l = {
|
|||
|
type: "chunkText",
|
|||
|
start: n[e][1].start,
|
|||
|
end: n[t][1].end,
|
|||
|
// @ts-expect-error Constants are fine to assign.
|
|||
|
contentType: "text"
|
|||
|
}, en(n, e, t - e + 1, [
|
|||
|
["enter", u, r],
|
|||
|
["enter", l, r],
|
|||
|
["exit", l, r],
|
|||
|
["exit", u, r]
|
|||
|
])), n;
|
|||
|
}
|
|||
|
function Se(n, r, t) {
|
|||
|
const e = this;
|
|||
|
let u = 0;
|
|||
|
return l;
|
|||
|
function l(h) {
|
|||
|
return n.enter("atxHeading"), n.enter("atxHeadingSequence"), i(h);
|
|||
|
}
|
|||
|
function i(h) {
|
|||
|
return h === 35 && u++ < 6 ? (n.consume(h), i) : h === null || Y(h) ? (n.exit("atxHeadingSequence"), e.interrupt ? r(h) : a(h)) : t(h);
|
|||
|
}
|
|||
|
function a(h) {
|
|||
|
return h === 35 ? (n.enter("atxHeadingSequence"), c(h)) : h === null || C(h) ? (n.exit("atxHeading"), r(h)) : q(h) ? T(n, a, "whitespace")(h) : (n.enter("atxHeadingText"), p(h));
|
|||
|
}
|
|||
|
function c(h) {
|
|||
|
return h === 35 ? (n.consume(h), c) : (n.exit("atxHeadingSequence"), a(h));
|
|||
|
}
|
|||
|
function p(h) {
|
|||
|
return h === null || h === 35 || Y(h) ? (n.exit("atxHeadingText"), a(h)) : (n.consume(h), p);
|
|||
|
}
|
|||
|
}
|
|||
|
const Fe = [
|
|||
|
"address",
|
|||
|
"article",
|
|||
|
"aside",
|
|||
|
"base",
|
|||
|
"basefont",
|
|||
|
"blockquote",
|
|||
|
"body",
|
|||
|
"caption",
|
|||
|
"center",
|
|||
|
"col",
|
|||
|
"colgroup",
|
|||
|
"dd",
|
|||
|
"details",
|
|||
|
"dialog",
|
|||
|
"dir",
|
|||
|
"div",
|
|||
|
"dl",
|
|||
|
"dt",
|
|||
|
"fieldset",
|
|||
|
"figcaption",
|
|||
|
"figure",
|
|||
|
"footer",
|
|||
|
"form",
|
|||
|
"frame",
|
|||
|
"frameset",
|
|||
|
"h1",
|
|||
|
"h2",
|
|||
|
"h3",
|
|||
|
"h4",
|
|||
|
"h5",
|
|||
|
"h6",
|
|||
|
"head",
|
|||
|
"header",
|
|||
|
"hr",
|
|||
|
"html",
|
|||
|
"iframe",
|
|||
|
"legend",
|
|||
|
"li",
|
|||
|
"link",
|
|||
|
"main",
|
|||
|
"menu",
|
|||
|
"menuitem",
|
|||
|
"nav",
|
|||
|
"noframes",
|
|||
|
"ol",
|
|||
|
"optgroup",
|
|||
|
"option",
|
|||
|
"p",
|
|||
|
"param",
|
|||
|
"section",
|
|||
|
"summary",
|
|||
|
"table",
|
|||
|
"tbody",
|
|||
|
"td",
|
|||
|
"tfoot",
|
|||
|
"th",
|
|||
|
"thead",
|
|||
|
"title",
|
|||
|
"tr",
|
|||
|
"track",
|
|||
|
"ul"
|
|||
|
], Yn = ["pre", "script", "style", "textarea"], Ee = {
|
|||
|
name: "htmlFlow",
|
|||
|
tokenize: Ae,
|
|||
|
resolveTo: Ce,
|
|||
|
concrete: !0
|
|||
|
}, we = {
|
|||
|
tokenize: ze,
|
|||
|
partial: !0
|
|||
|
};
|
|||
|
function Ce(n) {
|
|||
|
let r = n.length;
|
|||
|
for (; r-- && !(n[r][0] === "enter" && n[r][1].type === "htmlFlow"); )
|
|||
|
;
|
|||
|
return r > 1 && n[r - 2][1].type === "linePrefix" && (n[r][1].start = n[r - 2][1].start, n[r + 1][1].start = n[r - 2][1].start, n.splice(r - 2, 2)), n;
|
|||
|
}
|
|||
|
function Ae(n, r, t) {
|
|||
|
const e = this;
|
|||
|
let u, l, i, a, c;
|
|||
|
return p;
|
|||
|
function p(o) {
|
|||
|
return n.enter("htmlFlow"), n.enter("htmlFlowData"), n.consume(o), h;
|
|||
|
}
|
|||
|
function h(o) {
|
|||
|
return o === 33 ? (n.consume(o), x) : o === 47 ? (n.consume(o), k) : o === 63 ? (n.consume(o), u = 3, e.interrupt ? r : U) : tn(o) ? (n.consume(o), i = String.fromCharCode(o), l = !0, B) : t(o);
|
|||
|
}
|
|||
|
function x(o) {
|
|||
|
return o === 45 ? (n.consume(o), u = 2, g) : o === 91 ? (n.consume(o), u = 5, i = "CDATA[", a = 0, f) : tn(o) ? (n.consume(o), u = 4, e.interrupt ? r : U) : t(o);
|
|||
|
}
|
|||
|
function g(o) {
|
|||
|
return o === 45 ? (n.consume(o), e.interrupt ? r : U) : t(o);
|
|||
|
}
|
|||
|
function f(o) {
|
|||
|
return o === i.charCodeAt(a++) ? (n.consume(o), a === i.length ? e.interrupt ? r : S : f) : t(o);
|
|||
|
}
|
|||
|
function k(o) {
|
|||
|
return tn(o) ? (n.consume(o), i = String.fromCharCode(o), B) : t(o);
|
|||
|
}
|
|||
|
function B(o) {
|
|||
|
return o === null || o === 47 || o === 62 || Y(o) ? o !== 47 && l && Yn.includes(i.toLowerCase()) ? (u = 1, e.interrupt ? r(o) : S(o)) : Fe.includes(i.toLowerCase()) ? (u = 6, o === 47 ? (n.consume(o), D) : e.interrupt ? r(o) : S(o)) : (u = 7, e.interrupt && !e.parser.lazy[e.now().line] ? t(o) : l ? _(o) : y(o)) : o === 45 || v(o) ? (n.consume(o), i += String.fromCharCode(o), B) : t(o);
|
|||
|
}
|
|||
|
function D(o) {
|
|||
|
return o === 62 ? (n.consume(o), e.interrupt ? r : S) : t(o);
|
|||
|
}
|
|||
|
function y(o) {
|
|||
|
return q(o) ? (n.consume(o), y) : j(o);
|
|||
|
}
|
|||
|
function _(o) {
|
|||
|
return o === 47 ? (n.consume(o), j) : o === 58 || o === 95 || tn(o) ? (n.consume(o), F) : q(o) ? (n.consume(o), _) : j(o);
|
|||
|
}
|
|||
|
function F(o) {
|
|||
|
return o === 45 || o === 46 || o === 58 || o === 95 || v(o) ? (n.consume(o), F) : L(o);
|
|||
|
}
|
|||
|
function L(o) {
|
|||
|
return o === 61 ? (n.consume(o), O) : q(o) ? (n.consume(o), L) : _(o);
|
|||
|
}
|
|||
|
function O(o) {
|
|||
|
return o === null || o === 60 || o === 61 || o === 62 || o === 96 ? t(o) : o === 34 || o === 39 ? (n.consume(o), c = o, d) : q(o) ? (n.consume(o), O) : (c = null, P(o));
|
|||
|
}
|
|||
|
function d(o) {
|
|||
|
return o === null || C(o) ? t(o) : o === c ? (n.consume(o), R) : (n.consume(o), d);
|
|||
|
}
|
|||
|
function P(o) {
|
|||
|
return o === null || o === 34 || o === 39 || o === 60 || o === 61 || o === 62 || o === 96 || Y(o) ? L(o) : (n.consume(o), P);
|
|||
|
}
|
|||
|
function R(o) {
|
|||
|
return o === 47 || o === 62 || q(o) ? _(o) : t(o);
|
|||
|
}
|
|||
|
function j(o) {
|
|||
|
return o === 62 ? (n.consume(o), V) : t(o);
|
|||
|
}
|
|||
|
function V(o) {
|
|||
|
return q(o) ? (n.consume(o), V) : o === null || C(o) ? S(o) : t(o);
|
|||
|
}
|
|||
|
function S(o) {
|
|||
|
return o === 45 && u === 2 ? (n.consume(o), G) : o === 60 && u === 1 ? (n.consume(o), nn) : o === 62 && u === 4 ? (n.consume(o), H) : o === 63 && u === 3 ? (n.consume(o), U) : o === 93 && u === 5 ? (n.consume(o), W) : C(o) && (u === 6 || u === 7) ? n.check(
|
|||
|
we,
|
|||
|
H,
|
|||
|
E
|
|||
|
)(o) : o === null || C(o) ? E(o) : (n.consume(o), S);
|
|||
|
}
|
|||
|
function E(o) {
|
|||
|
return n.exit("htmlFlowData"), A(o);
|
|||
|
}
|
|||
|
function A(o) {
|
|||
|
return o === null ? s(o) : C(o) ? n.attempt(
|
|||
|
{
|
|||
|
tokenize: Q,
|
|||
|
partial: !0
|
|||
|
},
|
|||
|
A,
|
|||
|
s
|
|||
|
)(o) : (n.enter("htmlFlowData"), S(o));
|
|||
|
}
|
|||
|
function Q(o, cn, xn) {
|
|||
|
return hn;
|
|||
|
function hn(K) {
|
|||
|
return o.enter("lineEnding"), o.consume(K), o.exit("lineEnding"), N;
|
|||
|
}
|
|||
|
function N(K) {
|
|||
|
return e.parser.lazy[e.now().line] ? xn(K) : cn(K);
|
|||
|
}
|
|||
|
}
|
|||
|
function G(o) {
|
|||
|
return o === 45 ? (n.consume(o), U) : S(o);
|
|||
|
}
|
|||
|
function nn(o) {
|
|||
|
return o === 47 ? (n.consume(o), i = "", J) : S(o);
|
|||
|
}
|
|||
|
function J(o) {
|
|||
|
return o === 62 && Yn.includes(i.toLowerCase()) ? (n.consume(o), H) : tn(o) && i.length < 8 ? (n.consume(o), i += String.fromCharCode(o), J) : S(o);
|
|||
|
}
|
|||
|
function W(o) {
|
|||
|
return o === 93 ? (n.consume(o), U) : S(o);
|
|||
|
}
|
|||
|
function U(o) {
|
|||
|
return o === 62 ? (n.consume(o), H) : o === 45 && u === 2 ? (n.consume(o), U) : S(o);
|
|||
|
}
|
|||
|
function H(o) {
|
|||
|
return o === null || C(o) ? (n.exit("htmlFlowData"), s(o)) : (n.consume(o), H);
|
|||
|
}
|
|||
|
function s(o) {
|
|||
|
return n.exit("htmlFlow"), r(o);
|
|||
|
}
|
|||
|
}
|
|||
|
function ze(n, r, t) {
|
|||
|
return e;
|
|||
|
function e(u) {
|
|||
|
return n.exit("htmlFlowData"), n.enter("lineEndingBlank"), n.consume(u), n.exit("lineEndingBlank"), n.attempt(Sn, r, t);
|
|||
|
}
|
|||
|
}
|
|||
|
const Ie = {
|
|||
|
name: "htmlText",
|
|||
|
tokenize: Te
|
|||
|
};
|
|||
|
function Te(n, r, t) {
|
|||
|
const e = this;
|
|||
|
let u, l, i, a;
|
|||
|
return c;
|
|||
|
function c(s) {
|
|||
|
return n.enter("htmlText"), n.enter("htmlTextData"), n.consume(s), p;
|
|||
|
}
|
|||
|
function p(s) {
|
|||
|
return s === 33 ? (n.consume(s), h) : s === 47 ? (n.consume(s), P) : s === 63 ? (n.consume(s), O) : tn(s) ? (n.consume(s), V) : t(s);
|
|||
|
}
|
|||
|
function h(s) {
|
|||
|
return s === 45 ? (n.consume(s), x) : s === 91 ? (n.consume(s), l = "CDATA[", i = 0, D) : tn(s) ? (n.consume(s), L) : t(s);
|
|||
|
}
|
|||
|
function x(s) {
|
|||
|
return s === 45 ? (n.consume(s), g) : t(s);
|
|||
|
}
|
|||
|
function g(s) {
|
|||
|
return s === null || s === 62 ? t(s) : s === 45 ? (n.consume(s), f) : k(s);
|
|||
|
}
|
|||
|
function f(s) {
|
|||
|
return s === null || s === 62 ? t(s) : k(s);
|
|||
|
}
|
|||
|
function k(s) {
|
|||
|
return s === null ? t(s) : s === 45 ? (n.consume(s), B) : C(s) ? (a = k, W(s)) : (n.consume(s), k);
|
|||
|
}
|
|||
|
function B(s) {
|
|||
|
return s === 45 ? (n.consume(s), H) : k(s);
|
|||
|
}
|
|||
|
function D(s) {
|
|||
|
return s === l.charCodeAt(i++) ? (n.consume(s), i === l.length ? y : D) : t(s);
|
|||
|
}
|
|||
|
function y(s) {
|
|||
|
return s === null ? t(s) : s === 93 ? (n.consume(s), _) : C(s) ? (a = y, W(s)) : (n.consume(s), y);
|
|||
|
}
|
|||
|
function _(s) {
|
|||
|
return s === 93 ? (n.consume(s), F) : y(s);
|
|||
|
}
|
|||
|
function F(s) {
|
|||
|
return s === 62 ? H(s) : s === 93 ? (n.consume(s), F) : y(s);
|
|||
|
}
|
|||
|
function L(s) {
|
|||
|
return s === null || s === 62 ? H(s) : C(s) ? (a = L, W(s)) : (n.consume(s), L);
|
|||
|
}
|
|||
|
function O(s) {
|
|||
|
return s === null ? t(s) : s === 63 ? (n.consume(s), d) : C(s) ? (a = O, W(s)) : (n.consume(s), O);
|
|||
|
}
|
|||
|
function d(s) {
|
|||
|
return s === 62 ? H(s) : O(s);
|
|||
|
}
|
|||
|
function P(s) {
|
|||
|
return tn(s) ? (n.consume(s), R) : t(s);
|
|||
|
}
|
|||
|
function R(s) {
|
|||
|
return s === 45 || v(s) ? (n.consume(s), R) : j(s);
|
|||
|
}
|
|||
|
function j(s) {
|
|||
|
return C(s) ? (a = j, W(s)) : q(s) ? (n.consume(s), j) : H(s);
|
|||
|
}
|
|||
|
function V(s) {
|
|||
|
return s === 45 || v(s) ? (n.consume(s), V) : s === 47 || s === 62 || Y(s) ? S(s) : t(s);
|
|||
|
}
|
|||
|
function S(s) {
|
|||
|
return s === 47 ? (n.consume(s), H) : s === 58 || s === 95 || tn(s) ? (n.consume(s), E) : C(s) ? (a = S, W(s)) : q(s) ? (n.consume(s), S) : H(s);
|
|||
|
}
|
|||
|
function E(s) {
|
|||
|
return s === 45 || s === 46 || s === 58 || s === 95 || v(s) ? (n.consume(s), E) : A(s);
|
|||
|
}
|
|||
|
function A(s) {
|
|||
|
return s === 61 ? (n.consume(s), Q) : C(s) ? (a = A, W(s)) : q(s) ? (n.consume(s), A) : S(s);
|
|||
|
}
|
|||
|
function Q(s) {
|
|||
|
return s === null || s === 60 || s === 61 || s === 62 || s === 96 ? t(s) : s === 34 || s === 39 ? (n.consume(s), u = s, G) : C(s) ? (a = Q, W(s)) : q(s) ? (n.consume(s), Q) : (n.consume(s), u = void 0, J);
|
|||
|
}
|
|||
|
function G(s) {
|
|||
|
return s === u ? (n.consume(s), nn) : s === null ? t(s) : C(s) ? (a = G, W(s)) : (n.consume(s), G);
|
|||
|
}
|
|||
|
function nn(s) {
|
|||
|
return s === 62 || s === 47 || Y(s) ? S(s) : t(s);
|
|||
|
}
|
|||
|
function J(s) {
|
|||
|
return s === null || s === 34 || s === 39 || s === 60 || s === 61 || s === 96 ? t(s) : s === 62 || Y(s) ? S(s) : (n.consume(s), J);
|
|||
|
}
|
|||
|
function W(s) {
|
|||
|
return n.exit("htmlTextData"), n.enter("lineEnding"), n.consume(s), n.exit("lineEnding"), T(
|
|||
|
n,
|
|||
|
U,
|
|||
|
"linePrefix",
|
|||
|
e.parser.constructs.disable.null.includes("codeIndented") ? void 0 : 4
|
|||
|
);
|
|||
|
}
|
|||
|
function U(s) {
|
|||
|
return n.enter("htmlTextData"), a(s);
|
|||
|
}
|
|||
|
function H(s) {
|
|||
|
return s === 62 ? (n.consume(s), n.exit("htmlTextData"), n.exit("htmlText"), r) : t(s);
|
|||
|
}
|
|||
|
}
|
|||
|
const Dn = {
|
|||
|
name: "labelEnd",
|
|||
|
tokenize: _e,
|
|||
|
resolveTo: Pe,
|
|||
|
resolveAll: De
|
|||
|
}, Be = {
|
|||
|
tokenize: Me
|
|||
|
}, Le = {
|
|||
|
tokenize: Re
|
|||
|
}, Oe = {
|
|||
|
tokenize: je
|
|||
|
};
|
|||
|
function De(n) {
|
|||
|
let r = -1, t;
|
|||
|
for (; ++r < n.length; )
|
|||
|
t = n[r][1], (t.type === "labelImage" || t.type === "labelLink" || t.type === "labelEnd") && (n.splice(r + 1, t.type === "labelImage" ? 4 : 2), t.type = "data", r++);
|
|||
|
return n;
|
|||
|
}
|
|||
|
function Pe(n, r) {
|
|||
|
let t = n.length, e = 0, u, l, i, a;
|
|||
|
for (; t--; )
|
|||
|
if (u = n[t][1], l) {
|
|||
|
if (u.type === "link" || u.type === "labelLink" && u._inactive)
|
|||
|
break;
|
|||
|
n[t][0] === "enter" && u.type === "labelLink" && (u._inactive = !0);
|
|||
|
} else if (i) {
|
|||
|
if (n[t][0] === "enter" && (u.type === "labelImage" || u.type === "labelLink") && !u._balanced && (l = t, u.type !== "labelLink")) {
|
|||
|
e = 2;
|
|||
|
break;
|
|||
|
}
|
|||
|
} else
|
|||
|
u.type === "labelEnd" && (i = t);
|
|||
|
const c = {
|
|||
|
type: n[l][1].type === "labelLink" ? "link" : "image",
|
|||
|
start: Object.assign({}, n[l][1].start),
|
|||
|
end: Object.assign({}, n[n.length - 1][1].end)
|
|||
|
}, p = {
|
|||
|
type: "label",
|
|||
|
start: Object.assign({}, n[l][1].start),
|
|||
|
end: Object.assign({}, n[i][1].end)
|
|||
|
}, h = {
|
|||
|
type: "labelText",
|
|||
|
start: Object.assign({}, n[l + e + 2][1].end),
|
|||
|
end: Object.assign({}, n[i - 2][1].start)
|
|||
|
};
|
|||
|
return a = [
|
|||
|
["enter", c, r],
|
|||
|
["enter", p, r]
|
|||
|
], a = Z(a, n.slice(l + 1, l + e + 3)), a = Z(a, [["enter", h, r]]), a = Z(
|
|||
|
a,
|
|||
|
Ln(
|
|||
|
r.parser.constructs.insideSpan.null,
|
|||
|
n.slice(l + e + 4, i - 3),
|
|||
|
r
|
|||
|
)
|
|||
|
), a = Z(a, [
|
|||
|
["exit", h, r],
|
|||
|
n[i - 2],
|
|||
|
n[i - 1],
|
|||
|
["exit", p, r]
|
|||
|
]), a = Z(a, n.slice(i + 1)), a = Z(a, [["exit", c, r]]), en(n, l, n.length, a), n;
|
|||
|
}
|
|||
|
function _e(n, r, t) {
|
|||
|
const e = this;
|
|||
|
let u = e.events.length, l, i;
|
|||
|
for (; u--; )
|
|||
|
if ((e.events[u][1].type === "labelImage" || e.events[u][1].type === "labelLink") && !e.events[u][1]._balanced) {
|
|||
|
l = e.events[u][1];
|
|||
|
break;
|
|||
|
}
|
|||
|
return a;
|
|||
|
function a(h) {
|
|||
|
return l ? l._inactive ? p(h) : (i = e.parser.defined.includes(
|
|||
|
fn(
|
|||
|
e.sliceSerialize({
|
|||
|
start: l.end,
|
|||
|
end: e.now()
|
|||
|
})
|
|||
|
)
|
|||
|
), n.enter("labelEnd"), n.enter("labelMarker"), n.consume(h), n.exit("labelMarker"), n.exit("labelEnd"), c) : t(h);
|
|||
|
}
|
|||
|
function c(h) {
|
|||
|
return h === 40 ? n.attempt(
|
|||
|
Be,
|
|||
|
r,
|
|||
|
i ? r : p
|
|||
|
)(h) : h === 91 ? n.attempt(
|
|||
|
Le,
|
|||
|
r,
|
|||
|
i ? n.attempt(Oe, r, p) : p
|
|||
|
)(h) : i ? r(h) : p(h);
|
|||
|
}
|
|||
|
function p(h) {
|
|||
|
return l._balanced = !0, t(h);
|
|||
|
}
|
|||
|
}
|
|||
|
function Me(n, r, t) {
|
|||
|
return e;
|
|||
|
function e(c) {
|
|||
|
return n.enter("resource"), n.enter("resourceMarker"), n.consume(c), n.exit("resourceMarker"), dn(n, u);
|
|||
|
}
|
|||
|
function u(c) {
|
|||
|
return c === 41 ? a(c) : ut(
|
|||
|
n,
|
|||
|
l,
|
|||
|
t,
|
|||
|
"resourceDestination",
|
|||
|
"resourceDestinationLiteral",
|
|||
|
"resourceDestinationLiteralMarker",
|
|||
|
"resourceDestinationRaw",
|
|||
|
"resourceDestinationString",
|
|||
|
32
|
|||
|
)(c);
|
|||
|
}
|
|||
|
function l(c) {
|
|||
|
return Y(c) ? dn(n, i)(c) : a(c);
|
|||
|
}
|
|||
|
function i(c) {
|
|||
|
return c === 34 || c === 39 || c === 40 ? at(
|
|||
|
n,
|
|||
|
dn(n, a),
|
|||
|
t,
|
|||
|
"resourceTitle",
|
|||
|
"resourceTitleMarker",
|
|||
|
"resourceTitleString"
|
|||
|
)(c) : a(c);
|
|||
|
}
|
|||
|
function a(c) {
|
|||
|
return c === 41 ? (n.enter("resourceMarker"), n.consume(c), n.exit("resourceMarker"), n.exit("resource"), r) : t(c);
|
|||
|
}
|
|||
|
}
|
|||
|
function Re(n, r, t) {
|
|||
|
const e = this;
|
|||
|
return u;
|
|||
|
function u(i) {
|
|||
|
return lt.call(
|
|||
|
e,
|
|||
|
n,
|
|||
|
l,
|
|||
|
t,
|
|||
|
"reference",
|
|||
|
"referenceMarker",
|
|||
|
"referenceString"
|
|||
|
)(i);
|
|||
|
}
|
|||
|
function l(i) {
|
|||
|
return e.parser.defined.includes(
|
|||
|
fn(
|
|||
|
e.sliceSerialize(e.events[e.events.length - 1][1]).slice(1, -1)
|
|||
|
)
|
|||
|
) ? r(i) : t(i);
|
|||
|
}
|
|||
|
}
|
|||
|
function je(n, r, t) {
|
|||
|
return e;
|
|||
|
function e(l) {
|
|||
|
return n.enter("reference"), n.enter("referenceMarker"), n.consume(l), n.exit("referenceMarker"), u;
|
|||
|
}
|
|||
|
function u(l) {
|
|||
|
return l === 93 ? (n.enter("referenceMarker"), n.consume(l), n.exit("referenceMarker"), n.exit("reference"), r) : t(l);
|
|||
|
}
|
|||
|
}
|
|||
|
const qe = {
|
|||
|
name: "labelStartImage",
|
|||
|
tokenize: He,
|
|||
|
resolveAll: Dn.resolveAll
|
|||
|
};
|
|||
|
function He(n, r, t) {
|
|||
|
const e = this;
|
|||
|
return u;
|
|||
|
function u(a) {
|
|||
|
return n.enter("labelImage"), n.enter("labelImageMarker"), n.consume(a), n.exit("labelImageMarker"), l;
|
|||
|
}
|
|||
|
function l(a) {
|
|||
|
return a === 91 ? (n.enter("labelMarker"), n.consume(a), n.exit("labelMarker"), n.exit("labelImage"), i) : t(a);
|
|||
|
}
|
|||
|
function i(a) {
|
|||
|
return a === 94 && "_hiddenFootnoteSupport" in e.parser.constructs ? t(a) : r(a);
|
|||
|
}
|
|||
|
}
|
|||
|
const Ne = {
|
|||
|
name: "labelStartLink",
|
|||
|
tokenize: Ve,
|
|||
|
resolveAll: Dn.resolveAll
|
|||
|
};
|
|||
|
function Ve(n, r, t) {
|
|||
|
const e = this;
|
|||
|
return u;
|
|||
|
function u(i) {
|
|||
|
return n.enter("labelLink"), n.enter("labelMarker"), n.consume(i), n.exit("labelMarker"), n.exit("labelLink"), l;
|
|||
|
}
|
|||
|
function l(i) {
|
|||
|
return i === 94 && "_hiddenFootnoteSupport" in e.parser.constructs ? t(i) : r(i);
|
|||
|
}
|
|||
|
}
|
|||
|
const Cn = {
|
|||
|
name: "lineEnding",
|
|||
|
tokenize: We
|
|||
|
};
|
|||
|
function We(n, r) {
|
|||
|
return t;
|
|||
|
function t(e) {
|
|||
|
return n.enter("lineEnding"), n.consume(e), n.exit("lineEnding"), T(n, r, "linePrefix");
|
|||
|
}
|
|||
|
}
|
|||
|
const bn = {
|
|||
|
name: "thematicBreak",
|
|||
|
tokenize: Qe
|
|||
|
};
|
|||
|
function Qe(n, r, t) {
|
|||
|
let e = 0, u;
|
|||
|
return l;
|
|||
|
function l(c) {
|
|||
|
return n.enter("thematicBreak"), u = c, i(c);
|
|||
|
}
|
|||
|
function i(c) {
|
|||
|
return c === u ? (n.enter("thematicBreakSequence"), a(c)) : q(c) ? T(n, i, "whitespace")(c) : e < 3 || c !== null && !C(c) ? t(c) : (n.exit("thematicBreak"), r(c));
|
|||
|
}
|
|||
|
function a(c) {
|
|||
|
return c === u ? (n.consume(c), e++, a) : (n.exit("thematicBreakSequence"), i(c));
|
|||
|
}
|
|||
|
}
|
|||
|
const $ = {
|
|||
|
name: "list",
|
|||
|
tokenize: Ze,
|
|||
|
continuation: {
|
|||
|
tokenize: Ye
|
|||
|
},
|
|||
|
exit: Je
|
|||
|
}, Ue = {
|
|||
|
tokenize: Ke,
|
|||
|
partial: !0
|
|||
|
}, $e = {
|
|||
|
tokenize: Ge,
|
|||
|
partial: !0
|
|||
|
};
|
|||
|
function Ze(n, r, t) {
|
|||
|
const e = this, u = e.events[e.events.length - 1];
|
|||
|
let l = u && u[1].type === "linePrefix" ? u[2].sliceSerialize(u[1], !0).length : 0, i = 0;
|
|||
|
return a;
|
|||
|
function a(f) {
|
|||
|
const k = e.containerState.type || (f === 42 || f === 43 || f === 45 ? "listUnordered" : "listOrdered");
|
|||
|
if (k === "listUnordered" ? !e.containerState.marker || f === e.containerState.marker : An(f)) {
|
|||
|
if (e.containerState.type || (e.containerState.type = k, n.enter(k, {
|
|||
|
_container: !0
|
|||
|
})), k === "listUnordered")
|
|||
|
return n.enter("listItemPrefix"), f === 42 || f === 45 ? n.check(bn, t, p)(f) : p(f);
|
|||
|
if (!e.interrupt || f === 49)
|
|||
|
return n.enter("listItemPrefix"), n.enter("listItemValue"), c(f);
|
|||
|
}
|
|||
|
return t(f);
|
|||
|
}
|
|||
|
function c(f) {
|
|||
|
return An(f) && ++i < 10 ? (n.consume(f), c) : (!e.interrupt || i < 2) && (e.containerState.marker ? f === e.containerState.marker : f === 41 || f === 46) ? (n.exit("listItemValue"), p(f)) : t(f);
|
|||
|
}
|
|||
|
function p(f) {
|
|||
|
return n.enter("listItemMarker"), n.consume(f), n.exit("listItemMarker"), e.containerState.marker = e.containerState.marker || f, n.check(
|
|||
|
Sn,
|
|||
|
// Can’t be empty when interrupting.
|
|||
|
e.interrupt ? t : h,
|
|||
|
n.attempt(
|
|||
|
Ue,
|
|||
|
g,
|
|||
|
x
|
|||
|
)
|
|||
|
);
|
|||
|
}
|
|||
|
function h(f) {
|
|||
|
return e.containerState.initialBlankLine = !0, l++, g(f);
|
|||
|
}
|
|||
|
function x(f) {
|
|||
|
return q(f) ? (n.enter("listItemPrefixWhitespace"), n.consume(f), n.exit("listItemPrefixWhitespace"), g) : t(f);
|
|||
|
}
|
|||
|
function g(f) {
|
|||
|
return e.containerState.size = l + e.sliceSerialize(n.exit("listItemPrefix"), !0).length, r(f);
|
|||
|
}
|
|||
|
}
|
|||
|
function Ye(n, r, t) {
|
|||
|
const e = this;
|
|||
|
return e.containerState._closeFlow = void 0, n.check(Sn, u, l);
|
|||
|
function u(a) {
|
|||
|
return e.containerState.furtherBlankLines = e.containerState.furtherBlankLines || e.containerState.initialBlankLine, T(
|
|||
|
n,
|
|||
|
r,
|
|||
|
"listItemIndent",
|
|||
|
e.containerState.size + 1
|
|||
|
)(a);
|
|||
|
}
|
|||
|
function l(a) {
|
|||
|
return e.containerState.furtherBlankLines || !q(a) ? (e.containerState.furtherBlankLines = void 0, e.containerState.initialBlankLine = void 0, i(a)) : (e.containerState.furtherBlankLines = void 0, e.containerState.initialBlankLine = void 0, n.attempt($e, r, i)(a));
|
|||
|
}
|
|||
|
function i(a) {
|
|||
|
return e.containerState._closeFlow = !0, e.interrupt = void 0, T(
|
|||
|
n,
|
|||
|
n.attempt($, r, t),
|
|||
|
"linePrefix",
|
|||
|
e.parser.constructs.disable.null.includes("codeIndented") ? void 0 : 4
|
|||
|
)(a);
|
|||
|
}
|
|||
|
}
|
|||
|
function Ge(n, r, t) {
|
|||
|
const e = this;
|
|||
|
return T(
|
|||
|
n,
|
|||
|
u,
|
|||
|
"listItemIndent",
|
|||
|
e.containerState.size + 1
|
|||
|
);
|
|||
|
function u(l) {
|
|||
|
const i = e.events[e.events.length - 1];
|
|||
|
return i && i[1].type === "listItemIndent" && i[2].sliceSerialize(i[1], !0).length === e.containerState.size ? r(l) : t(l);
|
|||
|
}
|
|||
|
}
|
|||
|
function Je(n) {
|
|||
|
n.exit(this.containerState.type);
|
|||
|
}
|
|||
|
function Ke(n, r, t) {
|
|||
|
const e = this;
|
|||
|
return T(
|
|||
|
n,
|
|||
|
u,
|
|||
|
"listItemPrefixWhitespace",
|
|||
|
e.parser.constructs.disable.null.includes("codeIndented") ? void 0 : 4 + 1
|
|||
|
);
|
|||
|
function u(l) {
|
|||
|
const i = e.events[e.events.length - 1];
|
|||
|
return !q(l) && i && i[1].type === "listItemPrefixWhitespace" ? r(l) : t(l);
|
|||
|
}
|
|||
|
}
|
|||
|
const Gn = {
|
|||
|
name: "setextUnderline",
|
|||
|
tokenize: ve,
|
|||
|
resolveTo: Xe
|
|||
|
};
|
|||
|
function Xe(n, r) {
|
|||
|
let t = n.length, e, u, l;
|
|||
|
for (; t--; )
|
|||
|
if (n[t][0] === "enter") {
|
|||
|
if (n[t][1].type === "content") {
|
|||
|
e = t;
|
|||
|
break;
|
|||
|
}
|
|||
|
n[t][1].type === "paragraph" && (u = t);
|
|||
|
} else
|
|||
|
n[t][1].type === "content" && n.splice(t, 1), !l && n[t][1].type === "definition" && (l = t);
|
|||
|
const i = {
|
|||
|
type: "setextHeading",
|
|||
|
start: Object.assign({}, n[u][1].start),
|
|||
|
end: Object.assign({}, n[n.length - 1][1].end)
|
|||
|
};
|
|||
|
return n[u][1].type = "setextHeadingText", l ? (n.splice(u, 0, ["enter", i, r]), n.splice(l + 1, 0, ["exit", n[e][1], r]), n[e][1].end = Object.assign({}, n[l][1].end)) : n[e][1] = i, n.push(["exit", i, r]), n;
|
|||
|
}
|
|||
|
function ve(n, r, t) {
|
|||
|
const e = this;
|
|||
|
let u = e.events.length, l, i;
|
|||
|
for (; u--; )
|
|||
|
if (e.events[u][1].type !== "lineEnding" && e.events[u][1].type !== "linePrefix" && e.events[u][1].type !== "content") {
|
|||
|
i = e.events[u][1].type === "paragraph";
|
|||
|
break;
|
|||
|
}
|
|||
|
return a;
|
|||
|
function a(h) {
|
|||
|
return !e.parser.lazy[e.now().line] && (e.interrupt || i) ? (n.enter("setextHeadingLine"), n.enter("setextHeadingLineSequence"), l = h, c(h)) : t(h);
|
|||
|
}
|
|||
|
function c(h) {
|
|||
|
return h === l ? (n.consume(h), c) : (n.exit("setextHeadingLineSequence"), T(n, p, "lineSuffix")(h));
|
|||
|
}
|
|||
|
function p(h) {
|
|||
|
return h === null || C(h) ? (n.exit("setextHeadingLine"), r(h)) : t(h);
|
|||
|
}
|
|||
|
}
|
|||
|
const nr = {
|
|||
|
tokenize: tr
|
|||
|
};
|
|||
|
function tr(n) {
|
|||
|
const r = this, t = n.attempt(
|
|||
|
// Try to parse a blank line.
|
|||
|
Sn,
|
|||
|
e,
|
|||
|
// Try to parse initial flow (essentially, only code).
|
|||
|
n.attempt(
|
|||
|
this.parser.constructs.flowInitial,
|
|||
|
u,
|
|||
|
T(
|
|||
|
n,
|
|||
|
n.attempt(
|
|||
|
this.parser.constructs.flow,
|
|||
|
u,
|
|||
|
n.attempt(oe, u)
|
|||
|
),
|
|||
|
"linePrefix"
|
|||
|
)
|
|||
|
)
|
|||
|
);
|
|||
|
return t;
|
|||
|
function e(l) {
|
|||
|
if (l === null) {
|
|||
|
n.consume(l);
|
|||
|
return;
|
|||
|
}
|
|||
|
return n.enter("lineEndingBlank"), n.consume(l), n.exit("lineEndingBlank"), r.currentConstruct = void 0, t;
|
|||
|
}
|
|||
|
function u(l) {
|
|||
|
if (l === null) {
|
|||
|
n.consume(l);
|
|||
|
return;
|
|||
|
}
|
|||
|
return n.enter("lineEnding"), n.consume(l), n.exit("lineEnding"), r.currentConstruct = void 0, t;
|
|||
|
}
|
|||
|
}
|
|||
|
const er = {
|
|||
|
resolveAll: st()
|
|||
|
}, rr = ot("string"), ir = ot("text");
|
|||
|
function ot(n) {
|
|||
|
return {
|
|||
|
tokenize: r,
|
|||
|
resolveAll: st(
|
|||
|
n === "text" ? ur : void 0
|
|||
|
)
|
|||
|
};
|
|||
|
function r(t) {
|
|||
|
const e = this, u = this.parser.constructs[n], l = t.attempt(u, i, a);
|
|||
|
return i;
|
|||
|
function i(h) {
|
|||
|
return p(h) ? l(h) : a(h);
|
|||
|
}
|
|||
|
function a(h) {
|
|||
|
if (h === null) {
|
|||
|
t.consume(h);
|
|||
|
return;
|
|||
|
}
|
|||
|
return t.enter("data"), t.consume(h), c;
|
|||
|
}
|
|||
|
function c(h) {
|
|||
|
return p(h) ? (t.exit("data"), l(h)) : (t.consume(h), c);
|
|||
|
}
|
|||
|
function p(h) {
|
|||
|
if (h === null)
|
|||
|
return !0;
|
|||
|
const x = u[h];
|
|||
|
let g = -1;
|
|||
|
if (x)
|
|||
|
for (; ++g < x.length; ) {
|
|||
|
const f = x[g];
|
|||
|
if (!f.previous || f.previous.call(e, e.previous))
|
|||
|
return !0;
|
|||
|
}
|
|||
|
return !1;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
function st(n) {
|
|||
|
return r;
|
|||
|
function r(t, e) {
|
|||
|
let u = -1, l;
|
|||
|
for (; ++u <= t.length; )
|
|||
|
l === void 0 ? t[u] && t[u][1].type === "data" && (l = u, u++) : (!t[u] || t[u][1].type !== "data") && (u !== l + 2 && (t[l][1].end = t[u - 1][1].end, t.splice(l + 2, u - l - 2), u = l + 2), l = void 0);
|
|||
|
return n ? n(t, e) : t;
|
|||
|
}
|
|||
|
}
|
|||
|
function ur(n, r) {
|
|||
|
let t = 0;
|
|||
|
for (; ++t <= n.length; )
|
|||
|
if ((t === n.length || n[t][1].type === "lineEnding") && n[t - 1][1].type === "data") {
|
|||
|
const e = n[t - 1][1], u = r.sliceStream(e);
|
|||
|
let l = u.length, i = -1, a = 0, c;
|
|||
|
for (; l--; ) {
|
|||
|
const p = u[l];
|
|||
|
if (typeof p == "string") {
|
|||
|
for (i = p.length; p.charCodeAt(i - 1) === 32; )
|
|||
|
a++, i--;
|
|||
|
if (i)
|
|||
|
break;
|
|||
|
i = -1;
|
|||
|
} else if (p === -2)
|
|||
|
c = !0, a++;
|
|||
|
else if (p !== -1) {
|
|||
|
l++;
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
if (a) {
|
|||
|
const p = {
|
|||
|
type: t === n.length || c || a < 2 ? "lineSuffix" : "hardBreakTrailing",
|
|||
|
start: {
|
|||
|
line: e.end.line,
|
|||
|
column: e.end.column - a,
|
|||
|
offset: e.end.offset - a,
|
|||
|
_index: e.start._index + l,
|
|||
|
_bufferIndex: l ? i : e.start._bufferIndex + i
|
|||
|
},
|
|||
|
end: Object.assign({}, e.end)
|
|||
|
};
|
|||
|
e.end = Object.assign({}, p.start), e.start.offset === e.end.offset ? Object.assign(e, p) : (n.splice(
|
|||
|
t,
|
|||
|
0,
|
|||
|
["enter", p, r],
|
|||
|
["exit", p, r]
|
|||
|
), t += 2);
|
|||
|
}
|
|||
|
t++;
|
|||
|
}
|
|||
|
return n;
|
|||
|
}
|
|||
|
function lr(n, r, t) {
|
|||
|
let e = Object.assign(
|
|||
|
t ? Object.assign({}, t) : {
|
|||
|
line: 1,
|
|||
|
column: 1,
|
|||
|
offset: 0
|
|||
|
},
|
|||
|
{
|
|||
|
_index: 0,
|
|||
|
_bufferIndex: -1
|
|||
|
}
|
|||
|
);
|
|||
|
const u = {}, l = [];
|
|||
|
let i = [], a = [];
|
|||
|
const c = {
|
|||
|
consume: _,
|
|||
|
enter: F,
|
|||
|
exit: L,
|
|||
|
attempt: P(O),
|
|||
|
check: P(d),
|
|||
|
interrupt: P(d, {
|
|||
|
interrupt: !0
|
|||
|
})
|
|||
|
}, p = {
|
|||
|
previous: null,
|
|||
|
code: null,
|
|||
|
containerState: {},
|
|||
|
events: [],
|
|||
|
parser: n,
|
|||
|
sliceStream: f,
|
|||
|
sliceSerialize: g,
|
|||
|
now: k,
|
|||
|
defineSkip: B,
|
|||
|
write: x
|
|||
|
};
|
|||
|
let h = r.tokenize.call(p, c);
|
|||
|
return r.resolveAll && l.push(r), p;
|
|||
|
function x(S) {
|
|||
|
return i = Z(i, S), D(), i[i.length - 1] !== null ? [] : (R(r, 0), p.events = Ln(l, p.events, p), p.events);
|
|||
|
}
|
|||
|
function g(S, E) {
|
|||
|
return or(f(S), E);
|
|||
|
}
|
|||
|
function f(S) {
|
|||
|
return ar(i, S);
|
|||
|
}
|
|||
|
function k() {
|
|||
|
return Object.assign({}, e);
|
|||
|
}
|
|||
|
function B(S) {
|
|||
|
u[S.line] = S.column, V();
|
|||
|
}
|
|||
|
function D() {
|
|||
|
let S;
|
|||
|
for (; e._index < i.length; ) {
|
|||
|
const E = i[e._index];
|
|||
|
if (typeof E == "string")
|
|||
|
for (S = e._index, e._bufferIndex < 0 && (e._bufferIndex = 0); e._index === S && e._bufferIndex < E.length; )
|
|||
|
y(E.charCodeAt(e._bufferIndex));
|
|||
|
else
|
|||
|
y(E);
|
|||
|
}
|
|||
|
}
|
|||
|
function y(S) {
|
|||
|
h = h(S);
|
|||
|
}
|
|||
|
function _(S) {
|
|||
|
C(S) ? (e.line++, e.column = 1, e.offset += S === -3 ? 2 : 1, V()) : S !== -1 && (e.column++, e.offset++), e._bufferIndex < 0 ? e._index++ : (e._bufferIndex++, e._bufferIndex === i[e._index].length && (e._bufferIndex = -1, e._index++)), p.previous = S;
|
|||
|
}
|
|||
|
function F(S, E) {
|
|||
|
const A = E || {};
|
|||
|
return A.type = S, A.start = k(), p.events.push(["enter", A, p]), a.push(A), A;
|
|||
|
}
|
|||
|
function L(S) {
|
|||
|
const E = a.pop();
|
|||
|
return E.end = k(), p.events.push(["exit", E, p]), E;
|
|||
|
}
|
|||
|
function O(S, E) {
|
|||
|
R(S, E.from);
|
|||
|
}
|
|||
|
function d(S, E) {
|
|||
|
E.restore();
|
|||
|
}
|
|||
|
function P(S, E) {
|
|||
|
return A;
|
|||
|
function A(Q, G, nn) {
|
|||
|
let J, W, U, H;
|
|||
|
return Array.isArray(Q) ? (
|
|||
|
/* c8 ignore next 1 */
|
|||
|
o(Q)
|
|||
|
) : "tokenize" in Q ? o([Q]) : s(Q);
|
|||
|
function s(N) {
|
|||
|
return K;
|
|||
|
function K(ln) {
|
|||
|
const pn = ln !== null && N[ln], mn = ln !== null && N.null, Fn = [
|
|||
|
// To do: add more extension tests.
|
|||
|
/* c8 ignore next 2 */
|
|||
|
...Array.isArray(pn) ? pn : pn ? [pn] : [],
|
|||
|
...Array.isArray(mn) ? mn : mn ? [mn] : []
|
|||
|
];
|
|||
|
return o(Fn)(ln);
|
|||
|
}
|
|||
|
}
|
|||
|
function o(N) {
|
|||
|
return J = N, W = 0, N.length === 0 ? nn : cn(N[W]);
|
|||
|
}
|
|||
|
function cn(N) {
|
|||
|
return K;
|
|||
|
function K(ln) {
|
|||
|
return H = j(), U = N, N.partial || (p.currentConstruct = N), N.name && p.parser.constructs.disable.null.includes(N.name) ? hn() : N.tokenize.call(
|
|||
|
// If we do have fields, create an object w/ `context` as its
|
|||
|
// prototype.
|
|||
|
// This allows a “live binding”, which is needed for `interrupt`.
|
|||
|
E ? Object.assign(Object.create(p), E) : p,
|
|||
|
c,
|
|||
|
xn,
|
|||
|
hn
|
|||
|
)(ln);
|
|||
|
}
|
|||
|
}
|
|||
|
function xn(N) {
|
|||
|
return S(U, H), G;
|
|||
|
}
|
|||
|
function hn(N) {
|
|||
|
return H.restore(), ++W < J.length ? cn(J[W]) : nn;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
function R(S, E) {
|
|||
|
S.resolveAll && !l.includes(S) && l.push(S), S.resolve && en(
|
|||
|
p.events,
|
|||
|
E,
|
|||
|
p.events.length - E,
|
|||
|
S.resolve(p.events.slice(E), p)
|
|||
|
), S.resolveTo && (p.events = S.resolveTo(p.events, p));
|
|||
|
}
|
|||
|
function j() {
|
|||
|
const S = k(), E = p.previous, A = p.currentConstruct, Q = p.events.length, G = Array.from(a);
|
|||
|
return {
|
|||
|
restore: nn,
|
|||
|
from: Q
|
|||
|
};
|
|||
|
function nn() {
|
|||
|
e = S, p.previous = E, p.currentConstruct = A, p.events.length = Q, a = G, V();
|
|||
|
}
|
|||
|
}
|
|||
|
function V() {
|
|||
|
e.line in u && e.column < 2 && (e.column = u[e.line], e.offset += u[e.line] - 1);
|
|||
|
}
|
|||
|
}
|
|||
|
function ar(n, r) {
|
|||
|
const t = r.start._index, e = r.start._bufferIndex, u = r.end._index, l = r.end._bufferIndex;
|
|||
|
let i;
|
|||
|
return t === u ? i = [n[t].slice(e, l)] : (i = n.slice(t, u), e > -1 && (i[0] = i[0].slice(e)), l > 0 && i.push(n[u].slice(0, l))), i;
|
|||
|
}
|
|||
|
function or(n, r) {
|
|||
|
let t = -1;
|
|||
|
const e = [];
|
|||
|
let u;
|
|||
|
for (; ++t < n.length; ) {
|
|||
|
const l = n[t];
|
|||
|
let i;
|
|||
|
if (typeof l == "string")
|
|||
|
i = l;
|
|||
|
else
|
|||
|
switch (l) {
|
|||
|
case -5: {
|
|||
|
i = "\r";
|
|||
|
break;
|
|||
|
}
|
|||
|
case -4: {
|
|||
|
i = `
|
|||
|
`;
|
|||
|
break;
|
|||
|
}
|
|||
|
case -3: {
|
|||
|
i = `\r
|
|||
|
`;
|
|||
|
break;
|
|||
|
}
|
|||
|
case -2: {
|
|||
|
i = r ? " " : " ";
|
|||
|
break;
|
|||
|
}
|
|||
|
case -1: {
|
|||
|
if (!r && u)
|
|||
|
continue;
|
|||
|
i = " ";
|
|||
|
break;
|
|||
|
}
|
|||
|
default:
|
|||
|
i = String.fromCharCode(l);
|
|||
|
}
|
|||
|
u = l === -2, e.push(i);
|
|||
|
}
|
|||
|
return e.join("");
|
|||
|
}
|
|||
|
const sr = {
|
|||
|
[42]: $,
|
|||
|
[43]: $,
|
|||
|
[45]: $,
|
|||
|
[48]: $,
|
|||
|
[49]: $,
|
|||
|
[50]: $,
|
|||
|
[51]: $,
|
|||
|
[52]: $,
|
|||
|
[53]: $,
|
|||
|
[54]: $,
|
|||
|
[55]: $,
|
|||
|
[56]: $,
|
|||
|
[57]: $,
|
|||
|
[62]: tt
|
|||
|
}, cr = {
|
|||
|
[91]: me
|
|||
|
}, hr = {
|
|||
|
[-2]: wn,
|
|||
|
[-1]: wn,
|
|||
|
[32]: wn
|
|||
|
}, pr = {
|
|||
|
[35]: be,
|
|||
|
[42]: bn,
|
|||
|
[45]: [Gn, bn],
|
|||
|
[60]: Ee,
|
|||
|
[61]: Gn,
|
|||
|
[95]: bn,
|
|||
|
[96]: Zn,
|
|||
|
[126]: Zn
|
|||
|
}, mr = {
|
|||
|
[38]: rt,
|
|||
|
[92]: et
|
|||
|
}, fr = {
|
|||
|
[-5]: Cn,
|
|||
|
[-4]: Cn,
|
|||
|
[-3]: Cn,
|
|||
|
[33]: qe,
|
|||
|
[38]: rt,
|
|||
|
[42]: In,
|
|||
|
[60]: [Ut, Ie],
|
|||
|
[91]: Ne,
|
|||
|
[92]: [ke, et],
|
|||
|
[93]: Dn,
|
|||
|
[95]: In,
|
|||
|
[96]: re
|
|||
|
}, xr = {
|
|||
|
null: [In, er]
|
|||
|
}, gr = {
|
|||
|
null: [42, 95]
|
|||
|
}, kr = {
|
|||
|
null: []
|
|||
|
}, dr = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|||
|
__proto__: null,
|
|||
|
attentionMarkers: gr,
|
|||
|
contentInitial: cr,
|
|||
|
disable: kr,
|
|||
|
document: sr,
|
|||
|
flow: pr,
|
|||
|
flowInitial: hr,
|
|||
|
insideSpan: xr,
|
|||
|
string: mr,
|
|||
|
text: fr
|
|||
|
}, Symbol.toStringTag, { value: "Module" }));
|
|||
|
function br(n = {}) {
|
|||
|
const r = Bt(
|
|||
|
// @ts-expect-error Same as above.
|
|||
|
[dr].concat(n.extensions || [])
|
|||
|
), t = {
|
|||
|
defined: [],
|
|||
|
lazy: {},
|
|||
|
constructs: r,
|
|||
|
content: e(jt),
|
|||
|
document: e(Ht),
|
|||
|
flow: e(nr),
|
|||
|
string: e(rr),
|
|||
|
text: e(ir)
|
|||
|
};
|
|||
|
return t;
|
|||
|
function e(u) {
|
|||
|
return l;
|
|||
|
function l(i) {
|
|||
|
return lr(t, u, i);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
const Jn = /[\0\t\n\r]/g;
|
|||
|
function yr() {
|
|||
|
let n = 1, r = "", t = !0, e;
|
|||
|
return u;
|
|||
|
function u(l, i, a) {
|
|||
|
const c = [];
|
|||
|
let p, h, x, g, f;
|
|||
|
for (l = r + l.toString(i), x = 0, r = "", t && (l.charCodeAt(0) === 65279 && x++, t = void 0); x < l.length; ) {
|
|||
|
if (Jn.lastIndex = x, p = Jn.exec(l), g = p && p.index !== void 0 ? p.index : l.length, f = l.charCodeAt(g), !p) {
|
|||
|
r = l.slice(x);
|
|||
|
break;
|
|||
|
}
|
|||
|
if (f === 10 && x === g && e)
|
|||
|
c.push(-3), e = void 0;
|
|||
|
else
|
|||
|
switch (e && (c.push(-5), e = void 0), x < g && (c.push(l.slice(x, g)), n += g - x), f) {
|
|||
|
case 0: {
|
|||
|
c.push(65533), n++;
|
|||
|
break;
|
|||
|
}
|
|||
|
case 9: {
|
|||
|
for (h = Math.ceil(n / 4) * 4, c.push(-2); n++ < h; )
|
|||
|
c.push(-1);
|
|||
|
break;
|
|||
|
}
|
|||
|
case 10: {
|
|||
|
c.push(-4), n = 1;
|
|||
|
break;
|
|||
|
}
|
|||
|
default:
|
|||
|
e = !0, n = 1;
|
|||
|
}
|
|||
|
x = g + 1;
|
|||
|
}
|
|||
|
return a && (e && c.push(-5), r && c.push(r), c.push(null)), c;
|
|||
|
}
|
|||
|
}
|
|||
|
function Sr(n) {
|
|||
|
for (; !it(n); )
|
|||
|
;
|
|||
|
return n;
|
|||
|
}
|
|||
|
function ct(n, r) {
|
|||
|
const t = Number.parseInt(n, r);
|
|||
|
return (
|
|||
|
// C0 except for HT, LF, FF, CR, space
|
|||
|
t < 9 || t === 11 || t > 13 && t < 32 || // Control character (DEL) of the basic block and C1 controls.
|
|||
|
t > 126 && t < 160 || // Lone high surrogates and low surrogates.
|
|||
|
t > 55295 && t < 57344 || // Noncharacters.
|
|||
|
t > 64975 && t < 65008 || (t & 65535) === 65535 || (t & 65535) === 65534 || // Out of range
|
|||
|
t > 1114111 ? "<22>" : String.fromCharCode(t)
|
|||
|
);
|
|||
|
}
|
|||
|
const Fr = /\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi;
|
|||
|
function Er(n) {
|
|||
|
return n.replace(Fr, wr);
|
|||
|
}
|
|||
|
function wr(n, r, t) {
|
|||
|
if (r)
|
|||
|
return r;
|
|||
|
if (t.charCodeAt(0) === 35) {
|
|||
|
const u = t.charCodeAt(1), l = u === 120 || u === 88;
|
|||
|
return ct(t.slice(l ? 2 : 1), l ? 16 : 10);
|
|||
|
}
|
|||
|
return On(t) || n;
|
|||
|
}
|
|||
|
function yn(n) {
|
|||
|
return !n || typeof n != "object" ? "" : "position" in n || "type" in n ? Kn(n.position) : "start" in n || "end" in n ? Kn(n) : "line" in n || "column" in n ? Tn(n) : "";
|
|||
|
}
|
|||
|
function Tn(n) {
|
|||
|
return Xn(n && n.line) + ":" + Xn(n && n.column);
|
|||
|
}
|
|||
|
function Kn(n) {
|
|||
|
return Tn(n && n.start) + "-" + Tn(n && n.end);
|
|||
|
}
|
|||
|
function Xn(n) {
|
|||
|
return n && typeof n == "number" ? n : 1;
|
|||
|
}
|
|||
|
const ht = {}.hasOwnProperty, pt = (
|
|||
|
/**
|
|||
|
* @type {(
|
|||
|
* ((value: Value, encoding: Encoding, options?: Options | null | undefined) => Root) &
|
|||
|
* ((value: Value, options?: Options | null | undefined) => Root)
|
|||
|
* )}
|
|||
|
*/
|
|||
|
/**
|
|||
|
* @param {Value} value
|
|||
|
* @param {Encoding | Options | null | undefined} [encoding]
|
|||
|
* @param {Options | null | undefined} [options]
|
|||
|
* @returns {Root}
|
|||
|
*/
|
|||
|
function(n, r, t) {
|
|||
|
return typeof r != "string" && (t = r, r = void 0), Cr(t)(
|
|||
|
Sr(
|
|||
|
// @ts-expect-error: micromark types need to accept `null`.
|
|||
|
br(t).document().write(yr()(n, r, !0))
|
|||
|
)
|
|||
|
);
|
|||
|
}
|
|||
|
);
|
|||
|
function Cr(n) {
|
|||
|
const r = {
|
|||
|
transforms: [],
|
|||
|
canContainEols: ["emphasis", "fragment", "heading", "paragraph", "strong"],
|
|||
|
enter: {
|
|||
|
autolink: a(jn),
|
|||
|
autolinkProtocol: S,
|
|||
|
autolinkEmail: S,
|
|||
|
atxHeading: a(_n),
|
|||
|
blockQuote: a(Fn),
|
|||
|
characterEscape: S,
|
|||
|
characterReference: S,
|
|||
|
codeFenced: a(Pn),
|
|||
|
codeFencedFenceInfo: c,
|
|||
|
codeFencedFenceMeta: c,
|
|||
|
codeIndented: a(Pn, c),
|
|||
|
codeText: a(kt, c),
|
|||
|
codeTextData: S,
|
|||
|
data: S,
|
|||
|
codeFlowValue: S,
|
|||
|
definition: a(dt),
|
|||
|
definitionDestinationString: c,
|
|||
|
definitionLabelString: c,
|
|||
|
definitionTitleString: c,
|
|||
|
emphasis: a(bt),
|
|||
|
hardBreakEscape: a(Mn),
|
|||
|
hardBreakTrailing: a(Mn),
|
|||
|
htmlFlow: a(Rn, c),
|
|||
|
htmlFlowData: S,
|
|||
|
htmlText: a(Rn, c),
|
|||
|
htmlTextData: S,
|
|||
|
image: a(yt),
|
|||
|
label: c,
|
|||
|
link: a(jn),
|
|||
|
listItem: a(St),
|
|||
|
listItemValue: k,
|
|||
|
listOrdered: a(qn, f),
|
|||
|
listUnordered: a(qn),
|
|||
|
paragraph: a(Ft),
|
|||
|
reference: hn,
|
|||
|
referenceString: c,
|
|||
|
resourceDestinationString: c,
|
|||
|
resourceTitleString: c,
|
|||
|
setextHeading: a(_n),
|
|||
|
strong: a(Et),
|
|||
|
thematicBreak: a(Ct)
|
|||
|
},
|
|||
|
exit: {
|
|||
|
atxHeading: h(),
|
|||
|
atxHeadingSequence: P,
|
|||
|
autolink: h(),
|
|||
|
autolinkEmail: mn,
|
|||
|
autolinkProtocol: pn,
|
|||
|
blockQuote: h(),
|
|||
|
characterEscapeValue: E,
|
|||
|
characterReferenceMarkerHexadecimal: K,
|
|||
|
characterReferenceMarkerNumeric: K,
|
|||
|
characterReferenceValue: ln,
|
|||
|
codeFenced: h(_),
|
|||
|
codeFencedFence: y,
|
|||
|
codeFencedFenceInfo: B,
|
|||
|
codeFencedFenceMeta: D,
|
|||
|
codeFlowValue: E,
|
|||
|
codeIndented: h(F),
|
|||
|
codeText: h(J),
|
|||
|
codeTextData: E,
|
|||
|
data: E,
|
|||
|
definition: h(),
|
|||
|
definitionDestinationString: d,
|
|||
|
definitionLabelString: L,
|
|||
|
definitionTitleString: O,
|
|||
|
emphasis: h(),
|
|||
|
hardBreakEscape: h(Q),
|
|||
|
hardBreakTrailing: h(Q),
|
|||
|
htmlFlow: h(G),
|
|||
|
htmlFlowData: E,
|
|||
|
htmlText: h(nn),
|
|||
|
htmlTextData: E,
|
|||
|
image: h(U),
|
|||
|
label: s,
|
|||
|
labelText: H,
|
|||
|
lineEnding: A,
|
|||
|
link: h(W),
|
|||
|
listItem: h(),
|
|||
|
listOrdered: h(),
|
|||
|
listUnordered: h(),
|
|||
|
paragraph: h(),
|
|||
|
referenceString: N,
|
|||
|
resourceDestinationString: o,
|
|||
|
resourceTitleString: cn,
|
|||
|
resource: xn,
|
|||
|
setextHeading: h(V),
|
|||
|
setextHeadingLineSequence: j,
|
|||
|
setextHeadingText: R,
|
|||
|
strong: h(),
|
|||
|
thematicBreak: h()
|
|||
|
}
|
|||
|
};
|
|||
|
mt(r, (n || {}).mdastExtensions || []);
|
|||
|
const t = {};
|
|||
|
return e;
|
|||
|
function e(m) {
|
|||
|
let b = {
|
|||
|
type: "root",
|
|||
|
children: []
|
|||
|
};
|
|||
|
const w = {
|
|||
|
stack: [b],
|
|||
|
tokenStack: [],
|
|||
|
config: r,
|
|||
|
enter: p,
|
|||
|
exit: x,
|
|||
|
buffer: c,
|
|||
|
resume: g,
|
|||
|
setData: l,
|
|||
|
getData: i
|
|||
|
}, z = [];
|
|||
|
let I = -1;
|
|||
|
for (; ++I < m.length; )
|
|||
|
if (m[I][1].type === "listOrdered" || m[I][1].type === "listUnordered")
|
|||
|
if (m[I][0] === "enter")
|
|||
|
z.push(I);
|
|||
|
else {
|
|||
|
const X = z.pop();
|
|||
|
I = u(m, X, I);
|
|||
|
}
|
|||
|
for (I = -1; ++I < m.length; ) {
|
|||
|
const X = r[m[I][0]];
|
|||
|
ht.call(X, m[I][1].type) && X[m[I][1].type].call(
|
|||
|
Object.assign(
|
|||
|
{
|
|||
|
sliceSerialize: m[I][2].sliceSerialize
|
|||
|
},
|
|||
|
w
|
|||
|
),
|
|||
|
m[I][1]
|
|||
|
);
|
|||
|
}
|
|||
|
if (w.tokenStack.length > 0) {
|
|||
|
const X = w.tokenStack[w.tokenStack.length - 1];
|
|||
|
(X[1] || vn).call(w, void 0, X[0]);
|
|||
|
}
|
|||
|
for (b.position = {
|
|||
|
start: on(
|
|||
|
m.length > 0 ? m[0][1].start : {
|
|||
|
line: 1,
|
|||
|
column: 1,
|
|||
|
offset: 0
|
|||
|
}
|
|||
|
),
|
|||
|
end: on(
|
|||
|
m.length > 0 ? m[m.length - 2][1].end : {
|
|||
|
line: 1,
|
|||
|
column: 1,
|
|||
|
offset: 0
|
|||
|
}
|
|||
|
)
|
|||
|
}, I = -1; ++I < r.transforms.length; )
|
|||
|
b = r.transforms[I](b) || b;
|
|||
|
return b;
|
|||
|
}
|
|||
|
function u(m, b, w) {
|
|||
|
let z = b - 1, I = -1, X = !1, an, rn, gn, kn;
|
|||
|
for (; ++z <= w; ) {
|
|||
|
const M = m[z];
|
|||
|
if (M[1].type === "listUnordered" || M[1].type === "listOrdered" || M[1].type === "blockQuote" ? (M[0] === "enter" ? I++ : I--, kn = void 0) : M[1].type === "lineEndingBlank" ? M[0] === "enter" && (an && !kn && !I && !gn && (gn = z), kn = void 0) : M[1].type === "linePrefix" || M[1].type === "listItemValue" || M[1].type === "listItemMarker" || M[1].type === "listItemPrefix" || M[1].type === "listItemPrefixWhitespace" || (kn = void 0), !I && M[0] === "enter" && M[1].type === "listItemPrefix" || I === -1 && M[0] === "exit" && (M[1].type === "listUnordered" || M[1].type === "listOrdered")) {
|
|||
|
if (an) {
|
|||
|
let En = z;
|
|||
|
for (rn = void 0; En--; ) {
|
|||
|
const un = m[En];
|
|||
|
if (un[1].type === "lineEnding" || un[1].type === "lineEndingBlank") {
|
|||
|
if (un[0] === "exit")
|
|||
|
continue;
|
|||
|
rn && (m[rn][1].type = "lineEndingBlank", X = !0), un[1].type = "lineEnding", rn = En;
|
|||
|
} else if (!(un[1].type === "linePrefix" || un[1].type === "blockQuotePrefix" || un[1].type === "blockQuotePrefixWhitespace" || un[1].type === "blockQuoteMarker" || un[1].type === "listItemIndent"))
|
|||
|
break;
|
|||
|
}
|
|||
|
gn && (!rn || gn < rn) && (an._spread = !0), an.end = Object.assign(
|
|||
|
{},
|
|||
|
rn ? m[rn][1].start : M[1].end
|
|||
|
), m.splice(rn || z, 0, ["exit", an, M[2]]), z++, w++;
|
|||
|
}
|
|||
|
M[1].type === "listItemPrefix" && (an = {
|
|||
|
type: "listItem",
|
|||
|
// @ts-expect-error Patched
|
|||
|
_spread: !1,
|
|||
|
start: Object.assign({}, M[1].start)
|
|||
|
}, m.splice(z, 0, ["enter", an, M[2]]), z++, w++, gn = void 0, kn = !0);
|
|||
|
}
|
|||
|
}
|
|||
|
return m[b][1]._spread = X, w;
|
|||
|
}
|
|||
|
function l(m, b) {
|
|||
|
t[m] = b;
|
|||
|
}
|
|||
|
function i(m) {
|
|||
|
return t[m];
|
|||
|
}
|
|||
|
function a(m, b) {
|
|||
|
return w;
|
|||
|
function w(z) {
|
|||
|
p.call(this, m(z), z), b && b.call(this, z);
|
|||
|
}
|
|||
|
}
|
|||
|
function c() {
|
|||
|
this.stack.push({
|
|||
|
type: "fragment",
|
|||
|
children: []
|
|||
|
});
|
|||
|
}
|
|||
|
function p(m, b, w) {
|
|||
|
return this.stack[this.stack.length - 1].children.push(m), this.stack.push(m), this.tokenStack.push([b, w]), m.position = {
|
|||
|
start: on(b.start)
|
|||
|
}, m;
|
|||
|
}
|
|||
|
function h(m) {
|
|||
|
return b;
|
|||
|
function b(w) {
|
|||
|
m && m.call(this, w), x.call(this, w);
|
|||
|
}
|
|||
|
}
|
|||
|
function x(m, b) {
|
|||
|
const w = this.stack.pop(), z = this.tokenStack.pop();
|
|||
|
if (z)
|
|||
|
z[0].type !== m.type && (b ? b.call(this, m, z[0]) : (z[1] || vn).call(this, m, z[0]));
|
|||
|
else
|
|||
|
throw new Error(
|
|||
|
"Cannot close `" + m.type + "` (" + yn({
|
|||
|
start: m.start,
|
|||
|
end: m.end
|
|||
|
}) + "): it’s not open"
|
|||
|
);
|
|||
|
return w.position.end = on(m.end), w;
|
|||
|
}
|
|||
|
function g() {
|
|||
|
return Tt(this.stack.pop());
|
|||
|
}
|
|||
|
function f() {
|
|||
|
l("expectingFirstListItemValue", !0);
|
|||
|
}
|
|||
|
function k(m) {
|
|||
|
if (i("expectingFirstListItemValue")) {
|
|||
|
const b = this.stack[this.stack.length - 2];
|
|||
|
b.start = Number.parseInt(this.sliceSerialize(m), 10), l("expectingFirstListItemValue");
|
|||
|
}
|
|||
|
}
|
|||
|
function B() {
|
|||
|
const m = this.resume(), b = this.stack[this.stack.length - 1];
|
|||
|
b.lang = m;
|
|||
|
}
|
|||
|
function D() {
|
|||
|
const m = this.resume(), b = this.stack[this.stack.length - 1];
|
|||
|
b.meta = m;
|
|||
|
}
|
|||
|
function y() {
|
|||
|
i("flowCodeInside") || (this.buffer(), l("flowCodeInside", !0));
|
|||
|
}
|
|||
|
function _() {
|
|||
|
const m = this.resume(), b = this.stack[this.stack.length - 1];
|
|||
|
b.value = m.replace(/^(\r?\n|\r)|(\r?\n|\r)$/g, ""), l("flowCodeInside");
|
|||
|
}
|
|||
|
function F() {
|
|||
|
const m = this.resume(), b = this.stack[this.stack.length - 1];
|
|||
|
b.value = m.replace(/(\r?\n|\r)$/g, "");
|
|||
|
}
|
|||
|
function L(m) {
|
|||
|
const b = this.resume(), w = this.stack[this.stack.length - 1];
|
|||
|
w.label = b, w.identifier = fn(
|
|||
|
this.sliceSerialize(m)
|
|||
|
).toLowerCase();
|
|||
|
}
|
|||
|
function O() {
|
|||
|
const m = this.resume(), b = this.stack[this.stack.length - 1];
|
|||
|
b.title = m;
|
|||
|
}
|
|||
|
function d() {
|
|||
|
const m = this.resume(), b = this.stack[this.stack.length - 1];
|
|||
|
b.url = m;
|
|||
|
}
|
|||
|
function P(m) {
|
|||
|
const b = this.stack[this.stack.length - 1];
|
|||
|
if (!b.depth) {
|
|||
|
const w = this.sliceSerialize(m).length;
|
|||
|
b.depth = w;
|
|||
|
}
|
|||
|
}
|
|||
|
function R() {
|
|||
|
l("setextHeadingSlurpLineEnding", !0);
|
|||
|
}
|
|||
|
function j(m) {
|
|||
|
const b = this.stack[this.stack.length - 1];
|
|||
|
b.depth = this.sliceSerialize(m).charCodeAt(0) === 61 ? 1 : 2;
|
|||
|
}
|
|||
|
function V() {
|
|||
|
l("setextHeadingSlurpLineEnding");
|
|||
|
}
|
|||
|
function S(m) {
|
|||
|
const b = this.stack[this.stack.length - 1];
|
|||
|
let w = b.children[b.children.length - 1];
|
|||
|
(!w || w.type !== "text") && (w = wt(), w.position = {
|
|||
|
start: on(m.start)
|
|||
|
}, b.children.push(w)), this.stack.push(w);
|
|||
|
}
|
|||
|
function E(m) {
|
|||
|
const b = this.stack.pop();
|
|||
|
b.value += this.sliceSerialize(m), b.position.end = on(m.end);
|
|||
|
}
|
|||
|
function A(m) {
|
|||
|
const b = this.stack[this.stack.length - 1];
|
|||
|
if (i("atHardBreak")) {
|
|||
|
const w = b.children[b.children.length - 1];
|
|||
|
w.position.end = on(m.end), l("atHardBreak");
|
|||
|
return;
|
|||
|
}
|
|||
|
!i("setextHeadingSlurpLineEnding") && r.canContainEols.includes(b.type) && (S.call(this, m), E.call(this, m));
|
|||
|
}
|
|||
|
function Q() {
|
|||
|
l("atHardBreak", !0);
|
|||
|
}
|
|||
|
function G() {
|
|||
|
const m = this.resume(), b = this.stack[this.stack.length - 1];
|
|||
|
b.value = m;
|
|||
|
}
|
|||
|
function nn() {
|
|||
|
const m = this.resume(), b = this.stack[this.stack.length - 1];
|
|||
|
b.value = m;
|
|||
|
}
|
|||
|
function J() {
|
|||
|
const m = this.resume(), b = this.stack[this.stack.length - 1];
|
|||
|
b.value = m;
|
|||
|
}
|
|||
|
function W() {
|
|||
|
const m = this.stack[this.stack.length - 1];
|
|||
|
if (i("inReference")) {
|
|||
|
const b = i("referenceType") || "shortcut";
|
|||
|
m.type += "Reference", m.referenceType = b, delete m.url, delete m.title;
|
|||
|
} else
|
|||
|
delete m.identifier, delete m.label;
|
|||
|
l("referenceType");
|
|||
|
}
|
|||
|
function U() {
|
|||
|
const m = this.stack[this.stack.length - 1];
|
|||
|
if (i("inReference")) {
|
|||
|
const b = i("referenceType") || "shortcut";
|
|||
|
m.type += "Reference", m.referenceType = b, delete m.url, delete m.title;
|
|||
|
} else
|
|||
|
delete m.identifier, delete m.label;
|
|||
|
l("referenceType");
|
|||
|
}
|
|||
|
function H(m) {
|
|||
|
const b = this.sliceSerialize(m), w = this.stack[this.stack.length - 2];
|
|||
|
w.label = Er(b), w.identifier = fn(b).toLowerCase();
|
|||
|
}
|
|||
|
function s() {
|
|||
|
const m = this.stack[this.stack.length - 1], b = this.resume(), w = this.stack[this.stack.length - 1];
|
|||
|
if (l("inReference", !0), w.type === "link") {
|
|||
|
const z = m.children;
|
|||
|
w.children = z;
|
|||
|
} else
|
|||
|
w.alt = b;
|
|||
|
}
|
|||
|
function o() {
|
|||
|
const m = this.resume(), b = this.stack[this.stack.length - 1];
|
|||
|
b.url = m;
|
|||
|
}
|
|||
|
function cn() {
|
|||
|
const m = this.resume(), b = this.stack[this.stack.length - 1];
|
|||
|
b.title = m;
|
|||
|
}
|
|||
|
function xn() {
|
|||
|
l("inReference");
|
|||
|
}
|
|||
|
function hn() {
|
|||
|
l("referenceType", "collapsed");
|
|||
|
}
|
|||
|
function N(m) {
|
|||
|
const b = this.resume(), w = this.stack[this.stack.length - 1];
|
|||
|
w.label = b, w.identifier = fn(
|
|||
|
this.sliceSerialize(m)
|
|||
|
).toLowerCase(), l("referenceType", "full");
|
|||
|
}
|
|||
|
function K(m) {
|
|||
|
l("characterReferenceType", m.type);
|
|||
|
}
|
|||
|
function ln(m) {
|
|||
|
const b = this.sliceSerialize(m), w = i("characterReferenceType");
|
|||
|
let z;
|
|||
|
w ? (z = ct(
|
|||
|
b,
|
|||
|
w === "characterReferenceMarkerNumeric" ? 10 : 16
|
|||
|
), l("characterReferenceType")) : z = On(b);
|
|||
|
const I = this.stack.pop();
|
|||
|
I.value += z, I.position.end = on(m.end);
|
|||
|
}
|
|||
|
function pn(m) {
|
|||
|
E.call(this, m);
|
|||
|
const b = this.stack[this.stack.length - 1];
|
|||
|
b.url = this.sliceSerialize(m);
|
|||
|
}
|
|||
|
function mn(m) {
|
|||
|
E.call(this, m);
|
|||
|
const b = this.stack[this.stack.length - 1];
|
|||
|
b.url = "mailto:" + this.sliceSerialize(m);
|
|||
|
}
|
|||
|
function Fn() {
|
|||
|
return {
|
|||
|
type: "blockquote",
|
|||
|
children: []
|
|||
|
};
|
|||
|
}
|
|||
|
function Pn() {
|
|||
|
return {
|
|||
|
type: "code",
|
|||
|
lang: null,
|
|||
|
meta: null,
|
|||
|
value: ""
|
|||
|
};
|
|||
|
}
|
|||
|
function kt() {
|
|||
|
return {
|
|||
|
type: "inlineCode",
|
|||
|
value: ""
|
|||
|
};
|
|||
|
}
|
|||
|
function dt() {
|
|||
|
return {
|
|||
|
type: "definition",
|
|||
|
identifier: "",
|
|||
|
label: null,
|
|||
|
title: null,
|
|||
|
url: ""
|
|||
|
};
|
|||
|
}
|
|||
|
function bt() {
|
|||
|
return {
|
|||
|
type: "emphasis",
|
|||
|
children: []
|
|||
|
};
|
|||
|
}
|
|||
|
function _n() {
|
|||
|
return {
|
|||
|
type: "heading",
|
|||
|
depth: void 0,
|
|||
|
children: []
|
|||
|
};
|
|||
|
}
|
|||
|
function Mn() {
|
|||
|
return {
|
|||
|
type: "break"
|
|||
|
};
|
|||
|
}
|
|||
|
function Rn() {
|
|||
|
return {
|
|||
|
type: "html",
|
|||
|
value: ""
|
|||
|
};
|
|||
|
}
|
|||
|
function yt() {
|
|||
|
return {
|
|||
|
type: "image",
|
|||
|
title: null,
|
|||
|
url: "",
|
|||
|
alt: null
|
|||
|
};
|
|||
|
}
|
|||
|
function jn() {
|
|||
|
return {
|
|||
|
type: "link",
|
|||
|
title: null,
|
|||
|
url: "",
|
|||
|
children: []
|
|||
|
};
|
|||
|
}
|
|||
|
function qn(m) {
|
|||
|
return {
|
|||
|
type: "list",
|
|||
|
ordered: m.type === "listOrdered",
|
|||
|
start: null,
|
|||
|
// @ts-expect-error Patched.
|
|||
|
spread: m._spread,
|
|||
|
children: []
|
|||
|
};
|
|||
|
}
|
|||
|
function St(m) {
|
|||
|
return {
|
|||
|
type: "listItem",
|
|||
|
// @ts-expect-error Patched.
|
|||
|
spread: m._spread,
|
|||
|
checked: null,
|
|||
|
children: []
|
|||
|
};
|
|||
|
}
|
|||
|
function Ft() {
|
|||
|
return {
|
|||
|
type: "paragraph",
|
|||
|
children: []
|
|||
|
};
|
|||
|
}
|
|||
|
function Et() {
|
|||
|
return {
|
|||
|
type: "strong",
|
|||
|
children: []
|
|||
|
};
|
|||
|
}
|
|||
|
function wt() {
|
|||
|
return {
|
|||
|
type: "text",
|
|||
|
value: ""
|
|||
|
};
|
|||
|
}
|
|||
|
function Ct() {
|
|||
|
return {
|
|||
|
type: "thematicBreak"
|
|||
|
};
|
|||
|
}
|
|||
|
}
|
|||
|
function on(n) {
|
|||
|
return {
|
|||
|
line: n.line,
|
|||
|
column: n.column,
|
|||
|
offset: n.offset
|
|||
|
};
|
|||
|
}
|
|||
|
function mt(n, r) {
|
|||
|
let t = -1;
|
|||
|
for (; ++t < r.length; ) {
|
|||
|
const e = r[t];
|
|||
|
Array.isArray(e) ? mt(n, e) : Ar(n, e);
|
|||
|
}
|
|||
|
}
|
|||
|
function Ar(n, r) {
|
|||
|
let t;
|
|||
|
for (t in r)
|
|||
|
if (ht.call(r, t)) {
|
|||
|
if (t === "canContainEols") {
|
|||
|
const e = r[t];
|
|||
|
e && n[t].push(...e);
|
|||
|
} else if (t === "transforms") {
|
|||
|
const e = r[t];
|
|||
|
e && n[t].push(...e);
|
|||
|
} else if (t === "enter" || t === "exit") {
|
|||
|
const e = r[t];
|
|||
|
e && Object.assign(n[t], e);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
function vn(n, r) {
|
|||
|
throw n ? new Error(
|
|||
|
"Cannot close `" + n.type + "` (" + yn({
|
|||
|
start: n.start,
|
|||
|
end: n.end
|
|||
|
}) + "): a different token (`" + r.type + "`, " + yn({
|
|||
|
start: r.start,
|
|||
|
end: r.end
|
|||
|
}) + ") is open"
|
|||
|
) : new Error(
|
|||
|
"Cannot close document, a token (`" + r.type + "`, " + yn({
|
|||
|
start: r.start,
|
|||
|
end: r.end
|
|||
|
}) + ") is still open"
|
|||
|
);
|
|||
|
}
|
|||
|
function zr(n) {
|
|||
|
const r = n.replace(/\n{2,}/g, `
|
|||
|
`);
|
|||
|
return At(r);
|
|||
|
}
|
|||
|
function Ir(n) {
|
|||
|
const r = zr(n), { children: t } = pt(r), e = [[]];
|
|||
|
let u = 0;
|
|||
|
function l(i, a = "normal") {
|
|||
|
i.type === "text" ? i.value.split(`
|
|||
|
`).forEach((p, h) => {
|
|||
|
h !== 0 && (u++, e.push([])), p.split(" ").forEach((x) => {
|
|||
|
x && e[u].push({ content: x, type: a });
|
|||
|
});
|
|||
|
}) : (i.type === "strong" || i.type === "emphasis") && i.children.forEach((c) => {
|
|||
|
l(c, i.type);
|
|||
|
});
|
|||
|
}
|
|||
|
return t.forEach((i) => {
|
|||
|
i.type === "paragraph" && i.children.forEach((a) => {
|
|||
|
l(a);
|
|||
|
});
|
|||
|
}), e;
|
|||
|
}
|
|||
|
function Tr(n) {
|
|||
|
const { children: r } = pt(n);
|
|||
|
function t(e) {
|
|||
|
return e.type === "text" ? e.value.replace(/\n/g, "<br/>") : e.type === "strong" ? `<strong>${e.children.map(t).join("")}</strong>` : e.type === "emphasis" ? `<em>${e.children.map(t).join("")}</em>` : e.type === "paragraph" ? `<p>${e.children.map(t).join("")}</p>` : `Unsupported markdown: ${e.type}`;
|
|||
|
}
|
|||
|
return r.map(t).join("");
|
|||
|
}
|
|||
|
function Br(n) {
|
|||
|
return Intl.Segmenter ? [...new Intl.Segmenter().segment(n)].map((r) => r.segment) : [...n];
|
|||
|
}
|
|||
|
function Lr(n, r) {
|
|||
|
const t = Br(r.content);
|
|||
|
return ft(n, [], t, r.type);
|
|||
|
}
|
|||
|
function ft(n, r, t, e) {
|
|||
|
if (t.length === 0)
|
|||
|
return [
|
|||
|
{ content: r.join(""), type: e },
|
|||
|
{ content: "", type: e }
|
|||
|
];
|
|||
|
const [u, ...l] = t, i = [...r, u];
|
|||
|
return n([{ content: i.join(""), type: e }]) ? ft(n, i, l, e) : (r.length === 0 && u && (r.push(u), t.shift()), [
|
|||
|
{ content: r.join(""), type: e },
|
|||
|
{ content: t.join(""), type: e }
|
|||
|
]);
|
|||
|
}
|
|||
|
function Or(n, r) {
|
|||
|
if (n.some(({ content: t }) => t.includes(`
|
|||
|
`)))
|
|||
|
throw new Error("splitLineToFitWidth does not support newlines in the line");
|
|||
|
return Bn(n, r);
|
|||
|
}
|
|||
|
function Bn(n, r, t = [], e = []) {
|
|||
|
if (n.length === 0)
|
|||
|
return e.length > 0 && t.push(e), t.length > 0 ? t : [];
|
|||
|
let u = "";
|
|||
|
n[0].content === " " && (u = " ", n.shift());
|
|||
|
const l = n.shift() ?? { content: " ", type: "normal" }, i = [...e];
|
|||
|
if (u !== "" && i.push({ content: u, type: "normal" }), i.push(l), r(i))
|
|||
|
return Bn(n, r, t, i);
|
|||
|
if (e.length > 0)
|
|||
|
t.push(e), n.unshift(l);
|
|||
|
else if (l.content) {
|
|||
|
const [a, c] = Lr(r, l);
|
|||
|
t.push([a]), c.content && n.unshift(c);
|
|||
|
}
|
|||
|
return Bn(n, r, t);
|
|||
|
}
|
|||
|
function Dr(n, r) {
|
|||
|
r && n.attr("style", r);
|
|||
|
}
|
|||
|
function Pr(n, r, t, e, u = !1) {
|
|||
|
const l = n.append("foreignObject"), i = l.append("xhtml:div"), a = r.label, c = r.isNode ? "nodeLabel" : "edgeLabel";
|
|||
|
i.html(
|
|||
|
`
|
|||
|
<span class="${c} ${e}" ` + (r.labelStyle ? 'style="' + r.labelStyle + '"' : "") + ">" + a + "</span>"
|
|||
|
), Dr(i, r.labelStyle), i.style("display", "table-cell"), i.style("white-space", "nowrap"), i.style("max-width", t + "px"), i.attr("xmlns", "http://www.w3.org/1999/xhtml"), u && i.attr("class", "labelBkg");
|
|||
|
let p = i.node().getBoundingClientRect();
|
|||
|
return p.width === t && (i.style("display", "table"), i.style("white-space", "break-spaces"), i.style("width", t + "px"), p = i.node().getBoundingClientRect()), l.style("width", p.width), l.style("height", p.height), l.node();
|
|||
|
}
|
|||
|
function xt(n, r, t) {
|
|||
|
return n.append("tspan").attr("class", "text-outer-tspan").attr("x", 0).attr("y", r * t - 0.1 + "em").attr("dy", t + "em");
|
|||
|
}
|
|||
|
function _r(n, r, t) {
|
|||
|
const e = n.append("text"), u = xt(e, 1, r);
|
|||
|
gt(u, t);
|
|||
|
const l = u.node().getComputedTextLength();
|
|||
|
return e.remove(), l;
|
|||
|
}
|
|||
|
function Mr(n, r, t, e = !1) {
|
|||
|
const l = r.append("g"), i = l.insert("rect").attr("class", "background"), a = l.append("text").attr("y", "-10.1");
|
|||
|
let c = 0;
|
|||
|
for (const p of t) {
|
|||
|
const h = (g) => _r(l, 1.1, g) <= n, x = h(p) ? [p] : Or(p, h);
|
|||
|
for (const g of x) {
|
|||
|
const f = xt(a, c, 1.1);
|
|||
|
gt(f, g), c++;
|
|||
|
}
|
|||
|
}
|
|||
|
if (e) {
|
|||
|
const p = a.node().getBBox(), h = 2;
|
|||
|
return i.attr("x", -h).attr("y", -h).attr("width", p.width + 2 * h).attr("height", p.height + 2 * h), l.node();
|
|||
|
} else
|
|||
|
return a.node();
|
|||
|
}
|
|||
|
function gt(n, r) {
|
|||
|
n.text(""), r.forEach((t, e) => {
|
|||
|
const u = n.append("tspan").attr("font-style", t.type === "emphasis" ? "italic" : "normal").attr("class", "text-inner-tspan").attr("font-weight", t.type === "strong" ? "bold" : "normal");
|
|||
|
e === 0 ? u.text(t.content) : u.text(" " + t.content);
|
|||
|
});
|
|||
|
}
|
|||
|
const jr = (n, r = "", {
|
|||
|
style: t = "",
|
|||
|
isTitle: e = !1,
|
|||
|
classes: u = "",
|
|||
|
useHtmlLabels: l = !0,
|
|||
|
isNode: i = !0,
|
|||
|
width: a = 200,
|
|||
|
addSvgBackground: c = !1
|
|||
|
} = {}) => {
|
|||
|
if (zt.info("createText", r, t, e, u, l, i, c), l) {
|
|||
|
const p = Tr(r), h = {
|
|||
|
isNode: i,
|
|||
|
label: It(p).replace(
|
|||
|
/fa[blrs]?:fa-[\w-]+/g,
|
|||
|
(g) => `<i class='${g.replace(":", " ")}'></i>`
|
|||
|
),
|
|||
|
labelStyle: t.replace("fill:", "color:")
|
|||
|
};
|
|||
|
return Pr(n, h, a, u, c);
|
|||
|
} else {
|
|||
|
const p = Ir(r);
|
|||
|
return Mr(a, n, p, c);
|
|||
|
}
|
|||
|
};
|
|||
|
export {
|
|||
|
jr as c
|
|||
|
};
|