2810 lines
76 KiB
JavaScript
2810 lines
76 KiB
JavaScript
import { l as At, ar as zt, as as It } from './index-0e3b96e2.js';
|
||
const Tt = {};
|
||
function Bt(n, r) {
|
||
const t = r || Tt,
|
||
e = typeof t.includeImageAlt == 'boolean' ? t.includeImageAlt : !0,
|
||
u = typeof t.includeHtml == 'boolean' ? t.includeHtml : !0;
|
||
return et(n, e, u);
|
||
}
|
||
function et(n, r, t) {
|
||
if (Lt(n)) {
|
||
if ('value' in n) return n.type === 'html' && !t ? '' : n.value;
|
||
if (r && 'alt' in n && n.alt) return n.alt;
|
||
if ('children' in n) return Vn(n.children, r, t);
|
||
}
|
||
return Array.isArray(n) ? Vn(n, r, t) : '';
|
||
}
|
||
function Vn(n, r, t) {
|
||
const e = [];
|
||
let u = -1;
|
||
for (; ++u < n.length; ) e[u] = et(n[u], r, t);
|
||
return e.join('');
|
||
}
|
||
function Lt(n) {
|
||
return !!(n && typeof n == 'object');
|
||
}
|
||
function tn(n, r, t, e) {
|
||
const u = n.length;
|
||
let i = 0,
|
||
l;
|
||
if ((r < 0 ? (r = -r > u ? 0 : u + r) : (r = r > u ? u : r), (t = t > 0 ? t : 0), e.length < 1e4))
|
||
(l = Array.from(e)), l.unshift(r, t), n.splice(...l);
|
||
else for (t && n.splice(r, t); i < e.length; ) (l = e.slice(i, i + 1e4)), l.unshift(r, 0), n.splice(...l), (i += 1e4), (r += 1e4);
|
||
}
|
||
function Y(n, r) {
|
||
return n.length > 0 ? (tn(n, n.length, 0, r), n) : r;
|
||
}
|
||
const Wn = {}.hasOwnProperty;
|
||
function Ot(n) {
|
||
const r = {};
|
||
let t = -1;
|
||
for (; ++t < n.length; ) Dt(r, n[t]);
|
||
return r;
|
||
}
|
||
function Dt(n, r) {
|
||
let t;
|
||
for (t in r) {
|
||
const u = (Wn.call(n, t) ? n[t] : void 0) || (n[t] = {}),
|
||
i = r[t];
|
||
let l;
|
||
if (i)
|
||
for (l in i) {
|
||
Wn.call(u, l) || (u[l] = []);
|
||
const a = i[l];
|
||
Pt(u[l], Array.isArray(a) ? a : a ? [a] : []);
|
||
}
|
||
}
|
||
}
|
||
function Pt(n, r) {
|
||
let t = -1;
|
||
const e = [];
|
||
for (; ++t < r.length; ) (r[t].add === 'after' ? n : e).push(r[t]);
|
||
tn(n, 0, 0, e);
|
||
}
|
||
const _t =
|
||
/[!-\/:-@\[-`\{-~\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061D-\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\u1B7D\u1B7E\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-\u2E5D\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]/,
|
||
nn = cn(/[A-Za-z]/),
|
||
v = cn(/[\dA-Za-z]/),
|
||
Mt = cn(/[#-'*+\--9=?A-Z^-~]/);
|
||
function An(n) {
|
||
return n !== null && (n < 32 || n === 127);
|
||
}
|
||
const zn = cn(/\d/),
|
||
jt = cn(/[\dA-Fa-f]/),
|
||
Rt = cn(/[!-/:-@[-`{-~]/);
|
||
function C(n) {
|
||
return n !== null && n < -2;
|
||
}
|
||
function Z(n) {
|
||
return n !== null && (n < 0 || n === 32);
|
||
}
|
||
function z(n) {
|
||
return n === -2 || n === -1 || n === 32;
|
||
}
|
||
const qt = cn(_t),
|
||
Ht = cn(/\s/);
|
||
function cn(n) {
|
||
return r;
|
||
function r(t) {
|
||
return t !== null && n.test(String.fromCharCode(t));
|
||
}
|
||
}
|
||
function O(n, r, t, e) {
|
||
const u = e ? e - 1 : Number.POSITIVE_INFINITY;
|
||
let i = 0;
|
||
return l;
|
||
function l(m) {
|
||
return z(m) ? (n.enter(t), a(m)) : r(m);
|
||
}
|
||
function a(m) {
|
||
return z(m) && i++ < u ? (n.consume(m), a) : (n.exit(t), r(m));
|
||
}
|
||
}
|
||
const Nt = { tokenize: Vt };
|
||
function Vt(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'), O(n, r, 'linePrefix');
|
||
}
|
||
function u(a) {
|
||
return n.enter('paragraph'), i(a);
|
||
}
|
||
function i(a) {
|
||
const m = n.enter('chunkText', { contentType: 'text', previous: t });
|
||
return t && (t.next = m), (t = m), l(a);
|
||
}
|
||
function l(a) {
|
||
if (a === null) {
|
||
n.exit('chunkText'), n.exit('paragraph'), n.consume(a);
|
||
return;
|
||
}
|
||
return C(a) ? (n.consume(a), n.exit('chunkText'), i) : (n.consume(a), l);
|
||
}
|
||
}
|
||
const Wt = { tokenize: Qt },
|
||
Qn = { tokenize: Ut };
|
||
function Qt(n) {
|
||
const r = this,
|
||
t = [];
|
||
let e = 0,
|
||
u,
|
||
i,
|
||
l;
|
||
return a;
|
||
function a(F) {
|
||
if (e < t.length) {
|
||
const D = t[e];
|
||
return (r.containerState = D[1]), n.attempt(D[0].continuation, m, c)(F);
|
||
}
|
||
return c(F);
|
||
}
|
||
function m(F) {
|
||
if ((e++, r.containerState._closeFlow)) {
|
||
(r.containerState._closeFlow = void 0), u && j();
|
||
const D = r.events.length;
|
||
let _ = D,
|
||
k;
|
||
for (; _--; )
|
||
if (r.events[_][0] === 'exit' && r.events[_][1].type === 'chunkFlow') {
|
||
k = r.events[_][1].end;
|
||
break;
|
||
}
|
||
b(e);
|
||
let T = D;
|
||
for (; T < r.events.length; ) (r.events[T][1].end = Object.assign({}, k)), T++;
|
||
return tn(r.events, _ + 1, 0, r.events.slice(D)), (r.events.length = T), c(F);
|
||
}
|
||
return a(F);
|
||
}
|
||
function c(F) {
|
||
if (e === t.length) {
|
||
if (!u) return x(F);
|
||
if (u.currentConstruct && u.currentConstruct.concrete) return A(F);
|
||
r.interrupt = !!(u.currentConstruct && !u._gfmTableDynamicInterruptHack);
|
||
}
|
||
return (r.containerState = {}), n.check(Qn, p, f)(F);
|
||
}
|
||
function p(F) {
|
||
return u && j(), b(e), x(F);
|
||
}
|
||
function f(F) {
|
||
return (r.parser.lazy[r.now().line] = e !== t.length), (l = r.now().offset), A(F);
|
||
}
|
||
function x(F) {
|
||
return (r.containerState = {}), n.attempt(Qn, h, A)(F);
|
||
}
|
||
function h(F) {
|
||
return e++, t.push([r.currentConstruct, r.containerState]), x(F);
|
||
}
|
||
function A(F) {
|
||
if (F === null) {
|
||
u && j(), b(0), n.consume(F);
|
||
return;
|
||
}
|
||
return (u = u || r.parser.flow(r.now())), n.enter('chunkFlow', { contentType: 'flow', previous: i, _tokenizer: u }), I(F);
|
||
}
|
||
function I(F) {
|
||
if (F === null) {
|
||
M(n.exit('chunkFlow'), !0), b(0), n.consume(F);
|
||
return;
|
||
}
|
||
return C(F) ? (n.consume(F), M(n.exit('chunkFlow')), (e = 0), (r.interrupt = void 0), a) : (n.consume(F), I);
|
||
}
|
||
function M(F, D) {
|
||
const _ = r.sliceStream(F);
|
||
if ((D && _.push(null), (F.previous = i), i && (i.next = F), (i = F), u.defineSkip(F.start), u.write(_), r.parser.lazy[F.start.line])) {
|
||
let k = u.events.length;
|
||
for (; k--; ) if (u.events[k][1].start.offset < l && (!u.events[k][1].end || u.events[k][1].end.offset > l)) return;
|
||
const T = r.events.length;
|
||
let H = T,
|
||
N,
|
||
V;
|
||
for (; H--; )
|
||
if (r.events[H][0] === 'exit' && r.events[H][1].type === 'chunkFlow') {
|
||
if (N) {
|
||
V = r.events[H][1].end;
|
||
break;
|
||
}
|
||
N = !0;
|
||
}
|
||
for (b(e), k = T; k < r.events.length; ) (r.events[k][1].end = Object.assign({}, V)), k++;
|
||
tn(r.events, H + 1, 0, r.events.slice(T)), (r.events.length = k);
|
||
}
|
||
}
|
||
function b(F) {
|
||
let D = t.length;
|
||
for (; D-- > F; ) {
|
||
const _ = t[D];
|
||
(r.containerState = _[1]), _[0].exit.call(r, n);
|
||
}
|
||
t.length = F;
|
||
}
|
||
function j() {
|
||
u.write([null]), (i = void 0), (u = void 0), (r.containerState._closeFlow = void 0);
|
||
}
|
||
}
|
||
function Ut(n, r, t) {
|
||
return O(
|
||
n,
|
||
n.attempt(this.parser.constructs.document, r, t),
|
||
'linePrefix',
|
||
this.parser.constructs.disable.null.includes('codeIndented') ? void 0 : 4
|
||
);
|
||
}
|
||
function Un(n) {
|
||
if (n === null || Z(n) || Ht(n)) return 1;
|
||
if (qt(n)) return 2;
|
||
}
|
||
function Ln(n, r, t) {
|
||
const e = [];
|
||
let u = -1;
|
||
for (; ++u < n.length; ) {
|
||
const i = n[u].resolveAll;
|
||
i && !e.includes(i) && ((r = i(r, t)), e.push(i));
|
||
}
|
||
return r;
|
||
}
|
||
const In = { name: 'attention', tokenize: Zt, resolveAll: $t };
|
||
function $t(n, r) {
|
||
let t = -1,
|
||
e,
|
||
u,
|
||
i,
|
||
l,
|
||
a,
|
||
m,
|
||
c,
|
||
p;
|
||
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 &&
|
||
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;
|
||
m = 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 f = Object.assign({}, n[e][1].end),
|
||
x = Object.assign({}, n[t][1].start);
|
||
$n(f, -m),
|
||
$n(x, m),
|
||
(l = { type: m > 1 ? 'strongSequence' : 'emphasisSequence', start: f, end: Object.assign({}, n[e][1].end) }),
|
||
(a = { type: m > 1 ? 'strongSequence' : 'emphasisSequence', start: Object.assign({}, n[t][1].start), end: x }),
|
||
(i = { type: m > 1 ? 'strongText' : 'emphasisText', start: Object.assign({}, n[e][1].end), end: Object.assign({}, n[t][1].start) }),
|
||
(u = { type: m > 1 ? 'strong' : 'emphasis', start: Object.assign({}, l.start), end: Object.assign({}, a.end) }),
|
||
(n[e][1].end = Object.assign({}, l.start)),
|
||
(n[t][1].start = Object.assign({}, a.end)),
|
||
(c = []),
|
||
n[e][1].end.offset - n[e][1].start.offset &&
|
||
(c = Y(c, [
|
||
['enter', n[e][1], r],
|
||
['exit', n[e][1], r],
|
||
])),
|
||
(c = Y(c, [
|
||
['enter', u, r],
|
||
['enter', l, r],
|
||
['exit', l, r],
|
||
['enter', i, r],
|
||
])),
|
||
(c = Y(c, Ln(r.parser.constructs.insideSpan.null, n.slice(e + 1, t), r))),
|
||
(c = Y(c, [
|
||
['exit', i, r],
|
||
['enter', a, r],
|
||
['exit', a, r],
|
||
['exit', u, r],
|
||
])),
|
||
n[t][1].end.offset - n[t][1].start.offset
|
||
? ((p = 2),
|
||
(c = Y(c, [
|
||
['enter', n[t][1], r],
|
||
['exit', n[t][1], r],
|
||
])))
|
||
: (p = 0),
|
||
tn(n, e - 1, t - e + 3, c),
|
||
(t = e + c.length - p - 2);
|
||
break;
|
||
}
|
||
}
|
||
for (t = -1; ++t < n.length; ) n[t][1].type === 'attentionSequence' && (n[t][1].type = 'data');
|
||
return n;
|
||
}
|
||
function Zt(n, r) {
|
||
const t = this.parser.constructs.attentionMarkers.null,
|
||
e = this.previous,
|
||
u = Un(e);
|
||
let i;
|
||
return l;
|
||
function l(m) {
|
||
return (i = m), n.enter('attentionSequence'), a(m);
|
||
}
|
||
function a(m) {
|
||
if (m === i) return n.consume(m), a;
|
||
const c = n.exit('attentionSequence'),
|
||
p = Un(m),
|
||
f = !p || (p === 2 && u) || t.includes(m),
|
||
x = !u || (u === 2 && p) || t.includes(e);
|
||
return (c._open = !!(i === 42 ? f : f && (u || !x))), (c._close = !!(i === 42 ? x : x && (p || !f))), r(m);
|
||
}
|
||
}
|
||
function $n(n, r) {
|
||
(n.column += r), (n.offset += r), (n._bufferIndex += r);
|
||
}
|
||
const Yt = { name: 'autolink', tokenize: Gt };
|
||
function Gt(n, r, t) {
|
||
let e = 0;
|
||
return u;
|
||
function u(h) {
|
||
return n.enter('autolink'), n.enter('autolinkMarker'), n.consume(h), n.exit('autolinkMarker'), n.enter('autolinkProtocol'), i;
|
||
}
|
||
function i(h) {
|
||
return nn(h) ? (n.consume(h), l) : c(h);
|
||
}
|
||
function l(h) {
|
||
return h === 43 || h === 45 || h === 46 || v(h) ? ((e = 1), a(h)) : c(h);
|
||
}
|
||
function a(h) {
|
||
return h === 58 ? (n.consume(h), (e = 0), m) : (h === 43 || h === 45 || h === 46 || v(h)) && e++ < 32 ? (n.consume(h), a) : ((e = 0), c(h));
|
||
}
|
||
function m(h) {
|
||
return h === 62
|
||
? (n.exit('autolinkProtocol'), n.enter('autolinkMarker'), n.consume(h), n.exit('autolinkMarker'), n.exit('autolink'), r)
|
||
: h === null || h === 32 || h === 60 || An(h)
|
||
? t(h)
|
||
: (n.consume(h), m);
|
||
}
|
||
function c(h) {
|
||
return h === 64 ? (n.consume(h), p) : Mt(h) ? (n.consume(h), c) : t(h);
|
||
}
|
||
function p(h) {
|
||
return v(h) ? f(h) : t(h);
|
||
}
|
||
function f(h) {
|
||
return h === 46
|
||
? (n.consume(h), (e = 0), p)
|
||
: h === 62
|
||
? ((n.exit('autolinkProtocol').type = 'autolinkEmail'),
|
||
n.enter('autolinkMarker'),
|
||
n.consume(h),
|
||
n.exit('autolinkMarker'),
|
||
n.exit('autolink'),
|
||
r)
|
||
: x(h);
|
||
}
|
||
function x(h) {
|
||
if ((h === 45 || v(h)) && e++ < 63) {
|
||
const A = h === 45 ? x : f;
|
||
return n.consume(h), A;
|
||
}
|
||
return t(h);
|
||
}
|
||
}
|
||
const Sn = { tokenize: Jt, partial: !0 };
|
||
function Jt(n, r, t) {
|
||
return e;
|
||
function e(i) {
|
||
return z(i) ? O(n, u, 'linePrefix')(i) : u(i);
|
||
}
|
||
function u(i) {
|
||
return i === null || C(i) ? r(i) : t(i);
|
||
}
|
||
}
|
||
const rt = { name: 'blockQuote', tokenize: Kt, continuation: { tokenize: Xt }, exit: vt };
|
||
function Kt(n, r, t) {
|
||
const e = this;
|
||
return u;
|
||
function u(l) {
|
||
if (l === 62) {
|
||
const a = e.containerState;
|
||
return (
|
||
a.open || (n.enter('blockQuote', { _container: !0 }), (a.open = !0)),
|
||
n.enter('blockQuotePrefix'),
|
||
n.enter('blockQuoteMarker'),
|
||
n.consume(l),
|
||
n.exit('blockQuoteMarker'),
|
||
i
|
||
);
|
||
}
|
||
return t(l);
|
||
}
|
||
function i(l) {
|
||
return z(l)
|
||
? (n.enter('blockQuotePrefixWhitespace'), n.consume(l), n.exit('blockQuotePrefixWhitespace'), n.exit('blockQuotePrefix'), r)
|
||
: (n.exit('blockQuotePrefix'), r(l));
|
||
}
|
||
}
|
||
function Xt(n, r, t) {
|
||
const e = this;
|
||
return u;
|
||
function u(l) {
|
||
return z(l) ? O(n, i, 'linePrefix', e.parser.constructs.disable.null.includes('codeIndented') ? void 0 : 4)(l) : i(l);
|
||
}
|
||
function i(l) {
|
||
return n.attempt(rt, r, t)(l);
|
||
}
|
||
}
|
||
function vt(n) {
|
||
n.exit('blockQuote');
|
||
}
|
||
const it = { name: 'characterEscape', tokenize: ne };
|
||
function ne(n, r, t) {
|
||
return e;
|
||
function e(i) {
|
||
return n.enter('characterEscape'), n.enter('escapeMarker'), n.consume(i), n.exit('escapeMarker'), u;
|
||
}
|
||
function u(i) {
|
||
return Rt(i) ? (n.enter('characterEscapeValue'), n.consume(i), n.exit('characterEscapeValue'), n.exit('characterEscape'), r) : t(i);
|
||
}
|
||
}
|
||
const Zn = document.createElement('i');
|
||
function On(n) {
|
||
const r = '&' + n + ';';
|
||
Zn.innerHTML = r;
|
||
const t = Zn.textContent;
|
||
return (t.charCodeAt(t.length - 1) === 59 && n !== 'semi') || t === r ? !1 : t;
|
||
}
|
||
const ut = { name: 'characterReference', tokenize: te };
|
||
function te(n, r, t) {
|
||
const e = this;
|
||
let u = 0,
|
||
i,
|
||
l;
|
||
return a;
|
||
function a(f) {
|
||
return n.enter('characterReference'), n.enter('characterReferenceMarker'), n.consume(f), n.exit('characterReferenceMarker'), m;
|
||
}
|
||
function m(f) {
|
||
return f === 35
|
||
? (n.enter('characterReferenceMarkerNumeric'), n.consume(f), n.exit('characterReferenceMarkerNumeric'), c)
|
||
: (n.enter('characterReferenceValue'), (i = 31), (l = v), p(f));
|
||
}
|
||
function c(f) {
|
||
return f === 88 || f === 120
|
||
? (n.enter('characterReferenceMarkerHexadecimal'),
|
||
n.consume(f),
|
||
n.exit('characterReferenceMarkerHexadecimal'),
|
||
n.enter('characterReferenceValue'),
|
||
(i = 6),
|
||
(l = jt),
|
||
p)
|
||
: (n.enter('characterReferenceValue'), (i = 7), (l = zn), p(f));
|
||
}
|
||
function p(f) {
|
||
if (f === 59 && u) {
|
||
const x = n.exit('characterReferenceValue');
|
||
return l === v && !On(e.sliceSerialize(x))
|
||
? t(f)
|
||
: (n.enter('characterReferenceMarker'), n.consume(f), n.exit('characterReferenceMarker'), n.exit('characterReference'), r);
|
||
}
|
||
return l(f) && u++ < i ? (n.consume(f), p) : t(f);
|
||
}
|
||
}
|
||
const Yn = { tokenize: re, partial: !0 },
|
||
Gn = { name: 'codeFenced', tokenize: ee, concrete: !0 };
|
||
function ee(n, r, t) {
|
||
const e = this,
|
||
u = { tokenize: _, partial: !0 };
|
||
let i = 0,
|
||
l = 0,
|
||
a;
|
||
return m;
|
||
function m(k) {
|
||
return c(k);
|
||
}
|
||
function c(k) {
|
||
const T = e.events[e.events.length - 1];
|
||
return (
|
||
(i = T && T[1].type === 'linePrefix' ? T[2].sliceSerialize(T[1], !0).length : 0),
|
||
(a = k),
|
||
n.enter('codeFenced'),
|
||
n.enter('codeFencedFence'),
|
||
n.enter('codeFencedFenceSequence'),
|
||
p(k)
|
||
);
|
||
}
|
||
function p(k) {
|
||
return k === a ? (l++, n.consume(k), p) : l < 3 ? t(k) : (n.exit('codeFencedFenceSequence'), z(k) ? O(n, f, 'whitespace')(k) : f(k));
|
||
}
|
||
function f(k) {
|
||
return k === null || C(k)
|
||
? (n.exit('codeFencedFence'), e.interrupt ? r(k) : n.check(Yn, I, D)(k))
|
||
: (n.enter('codeFencedFenceInfo'), n.enter('chunkString', { contentType: 'string' }), x(k));
|
||
}
|
||
function x(k) {
|
||
return k === null || C(k)
|
||
? (n.exit('chunkString'), n.exit('codeFencedFenceInfo'), f(k))
|
||
: z(k)
|
||
? (n.exit('chunkString'), n.exit('codeFencedFenceInfo'), O(n, h, 'whitespace')(k))
|
||
: k === 96 && k === a
|
||
? t(k)
|
||
: (n.consume(k), x);
|
||
}
|
||
function h(k) {
|
||
return k === null || C(k) ? f(k) : (n.enter('codeFencedFenceMeta'), n.enter('chunkString', { contentType: 'string' }), A(k));
|
||
}
|
||
function A(k) {
|
||
return k === null || C(k) ? (n.exit('chunkString'), n.exit('codeFencedFenceMeta'), f(k)) : k === 96 && k === a ? t(k) : (n.consume(k), A);
|
||
}
|
||
function I(k) {
|
||
return n.attempt(u, D, M)(k);
|
||
}
|
||
function M(k) {
|
||
return n.enter('lineEnding'), n.consume(k), n.exit('lineEnding'), b;
|
||
}
|
||
function b(k) {
|
||
return i > 0 && z(k) ? O(n, j, 'linePrefix', i + 1)(k) : j(k);
|
||
}
|
||
function j(k) {
|
||
return k === null || C(k) ? n.check(Yn, I, D)(k) : (n.enter('codeFlowValue'), F(k));
|
||
}
|
||
function F(k) {
|
||
return k === null || C(k) ? (n.exit('codeFlowValue'), j(k)) : (n.consume(k), F);
|
||
}
|
||
function D(k) {
|
||
return n.exit('codeFenced'), r(k);
|
||
}
|
||
function _(k, T, H) {
|
||
let N = 0;
|
||
return V;
|
||
function V(w) {
|
||
return k.enter('lineEnding'), k.consume(w), k.exit('lineEnding'), y;
|
||
}
|
||
function y(w) {
|
||
return (
|
||
k.enter('codeFencedFence'), z(w) ? O(k, S, 'linePrefix', e.parser.constructs.disable.null.includes('codeIndented') ? void 0 : 4)(w) : S(w)
|
||
);
|
||
}
|
||
function S(w) {
|
||
return w === a ? (k.enter('codeFencedFenceSequence'), P(w)) : H(w);
|
||
}
|
||
function P(w) {
|
||
return w === a ? (N++, k.consume(w), P) : N >= l ? (k.exit('codeFencedFenceSequence'), z(w) ? O(k, R, 'whitespace')(w) : R(w)) : H(w);
|
||
}
|
||
function R(w) {
|
||
return w === null || C(w) ? (k.exit('codeFencedFence'), T(w)) : H(w);
|
||
}
|
||
}
|
||
}
|
||
function re(n, r, t) {
|
||
const e = this;
|
||
return u;
|
||
function u(l) {
|
||
return l === null ? t(l) : (n.enter('lineEnding'), n.consume(l), n.exit('lineEnding'), i);
|
||
}
|
||
function i(l) {
|
||
return e.parser.lazy[e.now().line] ? t(l) : r(l);
|
||
}
|
||
}
|
||
const Cn = { name: 'codeIndented', tokenize: ue },
|
||
ie = { tokenize: le, partial: !0 };
|
||
function ue(n, r, t) {
|
||
const e = this;
|
||
return u;
|
||
function u(c) {
|
||
return n.enter('codeIndented'), O(n, i, 'linePrefix', 4 + 1)(c);
|
||
}
|
||
function i(c) {
|
||
const p = e.events[e.events.length - 1];
|
||
return p && p[1].type === 'linePrefix' && p[2].sliceSerialize(p[1], !0).length >= 4 ? l(c) : t(c);
|
||
}
|
||
function l(c) {
|
||
return c === null ? m(c) : C(c) ? n.attempt(ie, l, m)(c) : (n.enter('codeFlowValue'), a(c));
|
||
}
|
||
function a(c) {
|
||
return c === null || C(c) ? (n.exit('codeFlowValue'), l(c)) : (n.consume(c), a);
|
||
}
|
||
function m(c) {
|
||
return n.exit('codeIndented'), r(c);
|
||
}
|
||
}
|
||
function le(n, r, t) {
|
||
const e = this;
|
||
return u;
|
||
function u(l) {
|
||
return e.parser.lazy[e.now().line]
|
||
? t(l)
|
||
: C(l)
|
||
? (n.enter('lineEnding'), n.consume(l), n.exit('lineEnding'), u)
|
||
: O(n, i, 'linePrefix', 4 + 1)(l);
|
||
}
|
||
function i(l) {
|
||
const a = e.events[e.events.length - 1];
|
||
return a && a[1].type === 'linePrefix' && a[2].sliceSerialize(a[1], !0).length >= 4 ? r(l) : C(l) ? u(l) : t(l);
|
||
}
|
||
}
|
||
const ae = { name: 'codeText', tokenize: ce, resolve: oe, previous: se };
|
||
function oe(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 se(n) {
|
||
return n !== 96 || this.events[this.events.length - 1][1].type === 'characterEscape';
|
||
}
|
||
function ce(n, r, t) {
|
||
let e = 0,
|
||
u,
|
||
i;
|
||
return l;
|
||
function l(f) {
|
||
return n.enter('codeText'), n.enter('codeTextSequence'), a(f);
|
||
}
|
||
function a(f) {
|
||
return f === 96 ? (n.consume(f), e++, a) : (n.exit('codeTextSequence'), m(f));
|
||
}
|
||
function m(f) {
|
||
return f === null
|
||
? t(f)
|
||
: f === 32
|
||
? (n.enter('space'), n.consume(f), n.exit('space'), m)
|
||
: f === 96
|
||
? ((i = n.enter('codeTextSequence')), (u = 0), p(f))
|
||
: C(f)
|
||
? (n.enter('lineEnding'), n.consume(f), n.exit('lineEnding'), m)
|
||
: (n.enter('codeTextData'), c(f));
|
||
}
|
||
function c(f) {
|
||
return f === null || f === 32 || f === 96 || C(f) ? (n.exit('codeTextData'), m(f)) : (n.consume(f), c);
|
||
}
|
||
function p(f) {
|
||
return f === 96 ? (n.consume(f), u++, p) : u === e ? (n.exit('codeTextSequence'), n.exit('codeText'), r(f)) : ((i.type = 'codeTextData'), c(f));
|
||
}
|
||
}
|
||
function lt(n) {
|
||
const r = {};
|
||
let t = -1,
|
||
e,
|
||
u,
|
||
i,
|
||
l,
|
||
a,
|
||
m,
|
||
c;
|
||
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' &&
|
||
((m = e[1]._tokenizer.events),
|
||
(i = 0),
|
||
i < m.length && m[i][1].type === 'lineEndingBlank' && (i += 2),
|
||
i < m.length && m[i][1].type === 'content'))
|
||
)
|
||
for (; ++i < m.length && m[i][1].type !== 'content'; ) m[i][1].type === 'chunkText' && ((m[i][1]._isInFirstContentOfListItem = !0), i++);
|
||
if (e[0] === 'enter') e[1].contentType && (Object.assign(r, he(n, t)), (t = r[t]), (c = !0));
|
||
else if (e[1]._container) {
|
||
for (i = t, u = void 0; i-- && ((l = n[i]), l[1].type === 'lineEnding' || l[1].type === 'lineEndingBlank'); )
|
||
l[0] === 'enter' && (u && (n[u][1].type = 'lineEndingBlank'), (l[1].type = 'lineEnding'), (u = i));
|
||
u && ((e[1].end = Object.assign({}, n[u][1].start)), (a = n.slice(u, t)), a.unshift(e), tn(n, u, t - u + 1, a));
|
||
}
|
||
}
|
||
return !c;
|
||
}
|
||
function he(n, r) {
|
||
const t = n[r][1],
|
||
e = n[r][2];
|
||
let u = r - 1;
|
||
const i = [],
|
||
l = t._tokenizer || e.parser[t.contentType](t.start),
|
||
a = l.events,
|
||
m = [],
|
||
c = {};
|
||
let p,
|
||
f,
|
||
x = -1,
|
||
h = t,
|
||
A = 0,
|
||
I = 0;
|
||
const M = [I];
|
||
for (; h; ) {
|
||
for (; n[++u][1] !== h; );
|
||
i.push(u),
|
||
h._tokenizer ||
|
||
((p = e.sliceStream(h)),
|
||
h.next || p.push(null),
|
||
f && l.defineSkip(h.start),
|
||
h._isInFirstContentOfListItem && (l._gfmTasklistFirstContentOfListItem = !0),
|
||
l.write(p),
|
||
h._isInFirstContentOfListItem && (l._gfmTasklistFirstContentOfListItem = void 0)),
|
||
(f = h),
|
||
(h = h.next);
|
||
}
|
||
for (h = t; ++x < a.length; )
|
||
a[x][0] === 'exit' &&
|
||
a[x - 1][0] === 'enter' &&
|
||
a[x][1].type === a[x - 1][1].type &&
|
||
a[x][1].start.line !== a[x][1].end.line &&
|
||
((I = x + 1), M.push(I), (h._tokenizer = void 0), (h.previous = void 0), (h = h.next));
|
||
for (l.events = [], h ? ((h._tokenizer = void 0), (h.previous = void 0)) : M.pop(), x = M.length; x--; ) {
|
||
const b = a.slice(M[x], M[x + 1]),
|
||
j = i.pop();
|
||
m.unshift([j, j + b.length - 1]), tn(n, j, 2, b);
|
||
}
|
||
for (x = -1; ++x < m.length; ) (c[A + m[x][0]] = A + m[x][1]), (A += m[x][1] - m[x][0] - 1);
|
||
return c;
|
||
}
|
||
const pe = { tokenize: xe, resolve: me },
|
||
fe = { tokenize: ge, partial: !0 };
|
||
function me(n) {
|
||
return lt(n), n;
|
||
}
|
||
function xe(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 ? i(a) : C(a) ? n.check(fe, l, i)(a) : (n.consume(a), u);
|
||
}
|
||
function i(a) {
|
||
return n.exit('chunkContent'), n.exit('content'), r(a);
|
||
}
|
||
function l(a) {
|
||
return n.consume(a), n.exit('chunkContent'), (t.next = n.enter('chunkContent', { contentType: 'content', previous: t })), (t = t.next), u;
|
||
}
|
||
}
|
||
function ge(n, r, t) {
|
||
const e = this;
|
||
return u;
|
||
function u(l) {
|
||
return n.exit('chunkContent'), n.enter('lineEnding'), n.consume(l), n.exit('lineEnding'), O(n, i, 'linePrefix');
|
||
}
|
||
function i(l) {
|
||
if (l === null || C(l)) return t(l);
|
||
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(l)
|
||
: n.interrupt(e.parser.constructs.flow, t, r)(l);
|
||
}
|
||
}
|
||
function at(n, r, t, e, u, i, l, a, m) {
|
||
const c = m || Number.POSITIVE_INFINITY;
|
||
let p = 0;
|
||
return f;
|
||
function f(b) {
|
||
return b === 60
|
||
? (n.enter(e), n.enter(u), n.enter(i), n.consume(b), n.exit(i), x)
|
||
: b === null || b === 32 || b === 41 || An(b)
|
||
? t(b)
|
||
: (n.enter(e), n.enter(l), n.enter(a), n.enter('chunkString', { contentType: 'string' }), I(b));
|
||
}
|
||
function x(b) {
|
||
return b === 62
|
||
? (n.enter(i), n.consume(b), n.exit(i), n.exit(u), n.exit(e), r)
|
||
: (n.enter(a), n.enter('chunkString', { contentType: 'string' }), h(b));
|
||
}
|
||
function h(b) {
|
||
return b === 62 ? (n.exit('chunkString'), n.exit(a), x(b)) : b === null || b === 60 || C(b) ? t(b) : (n.consume(b), b === 92 ? A : h);
|
||
}
|
||
function A(b) {
|
||
return b === 60 || b === 62 || b === 92 ? (n.consume(b), h) : h(b);
|
||
}
|
||
function I(b) {
|
||
return !p && (b === null || b === 41 || Z(b))
|
||
? (n.exit('chunkString'), n.exit(a), n.exit(l), n.exit(e), r(b))
|
||
: p < c && b === 40
|
||
? (n.consume(b), p++, I)
|
||
: b === 41
|
||
? (n.consume(b), p--, I)
|
||
: b === null || b === 32 || b === 40 || An(b)
|
||
? t(b)
|
||
: (n.consume(b), b === 92 ? M : I);
|
||
}
|
||
function M(b) {
|
||
return b === 40 || b === 41 || b === 92 ? (n.consume(b), I) : I(b);
|
||
}
|
||
}
|
||
function ot(n, r, t, e, u, i) {
|
||
const l = this;
|
||
let a = 0,
|
||
m;
|
||
return c;
|
||
function c(h) {
|
||
return n.enter(e), n.enter(u), n.consume(h), n.exit(u), n.enter(i), p;
|
||
}
|
||
function p(h) {
|
||
return a > 999 || h === null || h === 91 || (h === 93 && !m) || (h === 94 && !a && '_hiddenFootnoteSupport' in l.parser.constructs)
|
||
? t(h)
|
||
: h === 93
|
||
? (n.exit(i), n.enter(u), n.consume(h), n.exit(u), n.exit(e), r)
|
||
: C(h)
|
||
? (n.enter('lineEnding'), n.consume(h), n.exit('lineEnding'), p)
|
||
: (n.enter('chunkString', { contentType: 'string' }), f(h));
|
||
}
|
||
function f(h) {
|
||
return h === null || h === 91 || h === 93 || C(h) || a++ > 999
|
||
? (n.exit('chunkString'), p(h))
|
||
: (n.consume(h), m || (m = !z(h)), h === 92 ? x : f);
|
||
}
|
||
function x(h) {
|
||
return h === 91 || h === 92 || h === 93 ? (n.consume(h), a++, f) : f(h);
|
||
}
|
||
}
|
||
function st(n, r, t, e, u, i) {
|
||
let l;
|
||
return a;
|
||
function a(x) {
|
||
return x === 34 || x === 39 || x === 40 ? (n.enter(e), n.enter(u), n.consume(x), n.exit(u), (l = x === 40 ? 41 : x), m) : t(x);
|
||
}
|
||
function m(x) {
|
||
return x === l ? (n.enter(u), n.consume(x), n.exit(u), n.exit(e), r) : (n.enter(i), c(x));
|
||
}
|
||
function c(x) {
|
||
return x === l
|
||
? (n.exit(i), m(l))
|
||
: x === null
|
||
? t(x)
|
||
: C(x)
|
||
? (n.enter('lineEnding'), n.consume(x), n.exit('lineEnding'), O(n, c, 'linePrefix'))
|
||
: (n.enter('chunkString', { contentType: 'string' }), p(x));
|
||
}
|
||
function p(x) {
|
||
return x === l || x === null || C(x) ? (n.exit('chunkString'), c(x)) : (n.consume(x), x === 92 ? f : p);
|
||
}
|
||
function f(x) {
|
||
return x === l || x === 92 ? (n.consume(x), p) : p(x);
|
||
}
|
||
}
|
||
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)
|
||
: z(u)
|
||
? O(n, e, t ? 'linePrefix' : 'lineSuffix')(u)
|
||
: r(u);
|
||
}
|
||
}
|
||
function xn(n) {
|
||
return n
|
||
.replace(/[\t\n\r ]+/g, ' ')
|
||
.replace(/^ | $/g, '')
|
||
.toLowerCase()
|
||
.toUpperCase();
|
||
}
|
||
const ke = { name: 'definition', tokenize: be },
|
||
de = { tokenize: ye, partial: !0 };
|
||
function be(n, r, t) {
|
||
const e = this;
|
||
let u;
|
||
return i;
|
||
function i(h) {
|
||
return n.enter('definition'), l(h);
|
||
}
|
||
function l(h) {
|
||
return ot.call(e, n, a, t, 'definitionLabel', 'definitionLabelMarker', 'definitionLabelString')(h);
|
||
}
|
||
function a(h) {
|
||
return (
|
||
(u = xn(e.sliceSerialize(e.events[e.events.length - 1][1]).slice(1, -1))),
|
||
h === 58 ? (n.enter('definitionMarker'), n.consume(h), n.exit('definitionMarker'), m) : t(h)
|
||
);
|
||
}
|
||
function m(h) {
|
||
return Z(h) ? dn(n, c)(h) : c(h);
|
||
}
|
||
function c(h) {
|
||
return at(
|
||
n,
|
||
p,
|
||
t,
|
||
'definitionDestination',
|
||
'definitionDestinationLiteral',
|
||
'definitionDestinationLiteralMarker',
|
||
'definitionDestinationRaw',
|
||
'definitionDestinationString'
|
||
)(h);
|
||
}
|
||
function p(h) {
|
||
return n.attempt(de, f, f)(h);
|
||
}
|
||
function f(h) {
|
||
return z(h) ? O(n, x, 'whitespace')(h) : x(h);
|
||
}
|
||
function x(h) {
|
||
return h === null || C(h) ? (n.exit('definition'), e.parser.defined.push(u), r(h)) : t(h);
|
||
}
|
||
}
|
||
function ye(n, r, t) {
|
||
return e;
|
||
function e(a) {
|
||
return Z(a) ? dn(n, u)(a) : t(a);
|
||
}
|
||
function u(a) {
|
||
return st(n, i, t, 'definitionTitle', 'definitionTitleMarker', 'definitionTitleString')(a);
|
||
}
|
||
function i(a) {
|
||
return z(a) ? O(n, l, 'whitespace')(a) : l(a);
|
||
}
|
||
function l(a) {
|
||
return a === null || C(a) ? r(a) : t(a);
|
||
}
|
||
}
|
||
const Se = { name: 'hardBreakEscape', tokenize: Fe };
|
||
function Fe(n, r, t) {
|
||
return e;
|
||
function e(i) {
|
||
return n.enter('hardBreakEscape'), n.consume(i), u;
|
||
}
|
||
function u(i) {
|
||
return C(i) ? (n.exit('hardBreakEscape'), r(i)) : t(i);
|
||
}
|
||
}
|
||
const Ee = { name: 'headingAtx', tokenize: we, resolve: Ce };
|
||
function Ce(n, r) {
|
||
let t = n.length - 2,
|
||
e = 3,
|
||
u,
|
||
i;
|
||
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 }),
|
||
(i = { type: 'chunkText', start: n[e][1].start, end: n[t][1].end, contentType: 'text' }),
|
||
tn(n, e, t - e + 1, [
|
||
['enter', u, r],
|
||
['enter', i, r],
|
||
['exit', i, r],
|
||
['exit', u, r],
|
||
])),
|
||
n
|
||
);
|
||
}
|
||
function we(n, r, t) {
|
||
let e = 0;
|
||
return u;
|
||
function u(p) {
|
||
return n.enter('atxHeading'), i(p);
|
||
}
|
||
function i(p) {
|
||
return n.enter('atxHeadingSequence'), l(p);
|
||
}
|
||
function l(p) {
|
||
return p === 35 && e++ < 6 ? (n.consume(p), l) : p === null || Z(p) ? (n.exit('atxHeadingSequence'), a(p)) : t(p);
|
||
}
|
||
function a(p) {
|
||
return p === 35
|
||
? (n.enter('atxHeadingSequence'), m(p))
|
||
: p === null || C(p)
|
||
? (n.exit('atxHeading'), r(p))
|
||
: z(p)
|
||
? O(n, a, 'whitespace')(p)
|
||
: (n.enter('atxHeadingText'), c(p));
|
||
}
|
||
function m(p) {
|
||
return p === 35 ? (n.consume(p), m) : (n.exit('atxHeadingSequence'), a(p));
|
||
}
|
||
function c(p) {
|
||
return p === null || p === 35 || Z(p) ? (n.exit('atxHeadingText'), a(p)) : (n.consume(p), c);
|
||
}
|
||
}
|
||
const Ae = [
|
||
'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',
|
||
'search',
|
||
'section',
|
||
'summary',
|
||
'table',
|
||
'tbody',
|
||
'td',
|
||
'tfoot',
|
||
'th',
|
||
'thead',
|
||
'title',
|
||
'tr',
|
||
'track',
|
||
'ul',
|
||
],
|
||
Jn = ['pre', 'script', 'style', 'textarea'],
|
||
ze = { name: 'htmlFlow', tokenize: Le, resolveTo: Be, concrete: !0 },
|
||
Ie = { tokenize: De, partial: !0 },
|
||
Te = { tokenize: Oe, partial: !0 };
|
||
function Be(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 Le(n, r, t) {
|
||
const e = this;
|
||
let u, i, l, a, m;
|
||
return c;
|
||
function c(s) {
|
||
return p(s);
|
||
}
|
||
function p(s) {
|
||
return n.enter('htmlFlow'), n.enter('htmlFlowData'), n.consume(s), f;
|
||
}
|
||
function f(s) {
|
||
return s === 33
|
||
? (n.consume(s), x)
|
||
: s === 47
|
||
? (n.consume(s), (i = !0), I)
|
||
: s === 63
|
||
? (n.consume(s), (u = 3), e.interrupt ? r : o)
|
||
: nn(s)
|
||
? (n.consume(s), (l = String.fromCharCode(s)), M)
|
||
: t(s);
|
||
}
|
||
function x(s) {
|
||
return s === 45
|
||
? (n.consume(s), (u = 2), h)
|
||
: s === 91
|
||
? (n.consume(s), (u = 5), (a = 0), A)
|
||
: nn(s)
|
||
? (n.consume(s), (u = 4), e.interrupt ? r : o)
|
||
: t(s);
|
||
}
|
||
function h(s) {
|
||
return s === 45 ? (n.consume(s), e.interrupt ? r : o) : t(s);
|
||
}
|
||
function A(s) {
|
||
const K = 'CDATA[';
|
||
return s === K.charCodeAt(a++) ? (n.consume(s), a === K.length ? (e.interrupt ? r : S) : A) : t(s);
|
||
}
|
||
function I(s) {
|
||
return nn(s) ? (n.consume(s), (l = String.fromCharCode(s)), M) : t(s);
|
||
}
|
||
function M(s) {
|
||
if (s === null || s === 47 || s === 62 || Z(s)) {
|
||
const K = s === 47,
|
||
hn = l.toLowerCase();
|
||
return !K && !i && Jn.includes(hn)
|
||
? ((u = 1), e.interrupt ? r(s) : S(s))
|
||
: Ae.includes(l.toLowerCase())
|
||
? ((u = 6), K ? (n.consume(s), b) : e.interrupt ? r(s) : S(s))
|
||
: ((u = 7), e.interrupt && !e.parser.lazy[e.now().line] ? t(s) : i ? j(s) : F(s));
|
||
}
|
||
return s === 45 || v(s) ? (n.consume(s), (l += String.fromCharCode(s)), M) : t(s);
|
||
}
|
||
function b(s) {
|
||
return s === 62 ? (n.consume(s), e.interrupt ? r : S) : t(s);
|
||
}
|
||
function j(s) {
|
||
return z(s) ? (n.consume(s), j) : V(s);
|
||
}
|
||
function F(s) {
|
||
return s === 47 ? (n.consume(s), V) : s === 58 || s === 95 || nn(s) ? (n.consume(s), D) : z(s) ? (n.consume(s), F) : V(s);
|
||
}
|
||
function D(s) {
|
||
return s === 45 || s === 46 || s === 58 || s === 95 || v(s) ? (n.consume(s), D) : _(s);
|
||
}
|
||
function _(s) {
|
||
return s === 61 ? (n.consume(s), k) : z(s) ? (n.consume(s), _) : F(s);
|
||
}
|
||
function k(s) {
|
||
return s === null || s === 60 || s === 61 || s === 62 || s === 96
|
||
? t(s)
|
||
: s === 34 || s === 39
|
||
? (n.consume(s), (m = s), T)
|
||
: z(s)
|
||
? (n.consume(s), k)
|
||
: H(s);
|
||
}
|
||
function T(s) {
|
||
return s === m ? (n.consume(s), (m = null), N) : s === null || C(s) ? t(s) : (n.consume(s), T);
|
||
}
|
||
function H(s) {
|
||
return s === null || s === 34 || s === 39 || s === 47 || s === 60 || s === 61 || s === 62 || s === 96 || Z(s) ? _(s) : (n.consume(s), H);
|
||
}
|
||
function N(s) {
|
||
return s === 47 || s === 62 || z(s) ? F(s) : t(s);
|
||
}
|
||
function V(s) {
|
||
return s === 62 ? (n.consume(s), y) : t(s);
|
||
}
|
||
function y(s) {
|
||
return s === null || C(s) ? S(s) : z(s) ? (n.consume(s), y) : t(s);
|
||
}
|
||
function S(s) {
|
||
return s === 45 && u === 2
|
||
? (n.consume(s), U)
|
||
: s === 60 && u === 1
|
||
? (n.consume(s), W)
|
||
: s === 62 && u === 4
|
||
? (n.consume(s), J)
|
||
: s === 63 && u === 3
|
||
? (n.consume(s), o)
|
||
: s === 93 && u === 5
|
||
? (n.consume(s), en)
|
||
: C(s) && (u === 6 || u === 7)
|
||
? (n.exit('htmlFlowData'), n.check(Ie, rn, P)(s))
|
||
: s === null || C(s)
|
||
? (n.exit('htmlFlowData'), P(s))
|
||
: (n.consume(s), S);
|
||
}
|
||
function P(s) {
|
||
return n.check(Te, R, rn)(s);
|
||
}
|
||
function R(s) {
|
||
return n.enter('lineEnding'), n.consume(s), n.exit('lineEnding'), w;
|
||
}
|
||
function w(s) {
|
||
return s === null || C(s) ? P(s) : (n.enter('htmlFlowData'), S(s));
|
||
}
|
||
function U(s) {
|
||
return s === 45 ? (n.consume(s), o) : S(s);
|
||
}
|
||
function W(s) {
|
||
return s === 47 ? (n.consume(s), (l = ''), G) : S(s);
|
||
}
|
||
function G(s) {
|
||
if (s === 62) {
|
||
const K = l.toLowerCase();
|
||
return Jn.includes(K) ? (n.consume(s), J) : S(s);
|
||
}
|
||
return nn(s) && l.length < 8 ? (n.consume(s), (l += String.fromCharCode(s)), G) : S(s);
|
||
}
|
||
function en(s) {
|
||
return s === 93 ? (n.consume(s), o) : S(s);
|
||
}
|
||
function o(s) {
|
||
return s === 62 ? (n.consume(s), J) : s === 45 && u === 2 ? (n.consume(s), o) : S(s);
|
||
}
|
||
function J(s) {
|
||
return s === null || C(s) ? (n.exit('htmlFlowData'), rn(s)) : (n.consume(s), J);
|
||
}
|
||
function rn(s) {
|
||
return n.exit('htmlFlow'), r(s);
|
||
}
|
||
}
|
||
function Oe(n, r, t) {
|
||
const e = this;
|
||
return u;
|
||
function u(l) {
|
||
return C(l) ? (n.enter('lineEnding'), n.consume(l), n.exit('lineEnding'), i) : t(l);
|
||
}
|
||
function i(l) {
|
||
return e.parser.lazy[e.now().line] ? t(l) : r(l);
|
||
}
|
||
}
|
||
function De(n, r, t) {
|
||
return e;
|
||
function e(u) {
|
||
return n.enter('lineEnding'), n.consume(u), n.exit('lineEnding'), n.attempt(Sn, r, t);
|
||
}
|
||
}
|
||
const Pe = { name: 'htmlText', tokenize: _e };
|
||
function _e(n, r, t) {
|
||
const e = this;
|
||
let u, i, l;
|
||
return a;
|
||
function a(o) {
|
||
return n.enter('htmlText'), n.enter('htmlTextData'), n.consume(o), m;
|
||
}
|
||
function m(o) {
|
||
return o === 33 ? (n.consume(o), c) : o === 47 ? (n.consume(o), _) : o === 63 ? (n.consume(o), F) : nn(o) ? (n.consume(o), H) : t(o);
|
||
}
|
||
function c(o) {
|
||
return o === 45 ? (n.consume(o), p) : o === 91 ? (n.consume(o), (i = 0), A) : nn(o) ? (n.consume(o), j) : t(o);
|
||
}
|
||
function p(o) {
|
||
return o === 45 ? (n.consume(o), h) : t(o);
|
||
}
|
||
function f(o) {
|
||
return o === null ? t(o) : o === 45 ? (n.consume(o), x) : C(o) ? ((l = f), W(o)) : (n.consume(o), f);
|
||
}
|
||
function x(o) {
|
||
return o === 45 ? (n.consume(o), h) : f(o);
|
||
}
|
||
function h(o) {
|
||
return o === 62 ? U(o) : o === 45 ? x(o) : f(o);
|
||
}
|
||
function A(o) {
|
||
const J = 'CDATA[';
|
||
return o === J.charCodeAt(i++) ? (n.consume(o), i === J.length ? I : A) : t(o);
|
||
}
|
||
function I(o) {
|
||
return o === null ? t(o) : o === 93 ? (n.consume(o), M) : C(o) ? ((l = I), W(o)) : (n.consume(o), I);
|
||
}
|
||
function M(o) {
|
||
return o === 93 ? (n.consume(o), b) : I(o);
|
||
}
|
||
function b(o) {
|
||
return o === 62 ? U(o) : o === 93 ? (n.consume(o), b) : I(o);
|
||
}
|
||
function j(o) {
|
||
return o === null || o === 62 ? U(o) : C(o) ? ((l = j), W(o)) : (n.consume(o), j);
|
||
}
|
||
function F(o) {
|
||
return o === null ? t(o) : o === 63 ? (n.consume(o), D) : C(o) ? ((l = F), W(o)) : (n.consume(o), F);
|
||
}
|
||
function D(o) {
|
||
return o === 62 ? U(o) : F(o);
|
||
}
|
||
function _(o) {
|
||
return nn(o) ? (n.consume(o), k) : t(o);
|
||
}
|
||
function k(o) {
|
||
return o === 45 || v(o) ? (n.consume(o), k) : T(o);
|
||
}
|
||
function T(o) {
|
||
return C(o) ? ((l = T), W(o)) : z(o) ? (n.consume(o), T) : U(o);
|
||
}
|
||
function H(o) {
|
||
return o === 45 || v(o) ? (n.consume(o), H) : o === 47 || o === 62 || Z(o) ? N(o) : t(o);
|
||
}
|
||
function N(o) {
|
||
return o === 47
|
||
? (n.consume(o), U)
|
||
: o === 58 || o === 95 || nn(o)
|
||
? (n.consume(o), V)
|
||
: C(o)
|
||
? ((l = N), W(o))
|
||
: z(o)
|
||
? (n.consume(o), N)
|
||
: U(o);
|
||
}
|
||
function V(o) {
|
||
return o === 45 || o === 46 || o === 58 || o === 95 || v(o) ? (n.consume(o), V) : y(o);
|
||
}
|
||
function y(o) {
|
||
return o === 61 ? (n.consume(o), S) : C(o) ? ((l = y), W(o)) : z(o) ? (n.consume(o), y) : N(o);
|
||
}
|
||
function S(o) {
|
||
return o === null || o === 60 || o === 61 || o === 62 || o === 96
|
||
? t(o)
|
||
: o === 34 || o === 39
|
||
? (n.consume(o), (u = o), P)
|
||
: C(o)
|
||
? ((l = S), W(o))
|
||
: z(o)
|
||
? (n.consume(o), S)
|
||
: (n.consume(o), R);
|
||
}
|
||
function P(o) {
|
||
return o === u ? (n.consume(o), (u = void 0), w) : o === null ? t(o) : C(o) ? ((l = P), W(o)) : (n.consume(o), P);
|
||
}
|
||
function R(o) {
|
||
return o === null || o === 34 || o === 39 || o === 60 || o === 61 || o === 96 ? t(o) : o === 47 || o === 62 || Z(o) ? N(o) : (n.consume(o), R);
|
||
}
|
||
function w(o) {
|
||
return o === 47 || o === 62 || Z(o) ? N(o) : t(o);
|
||
}
|
||
function U(o) {
|
||
return o === 62 ? (n.consume(o), n.exit('htmlTextData'), n.exit('htmlText'), r) : t(o);
|
||
}
|
||
function W(o) {
|
||
return n.exit('htmlTextData'), n.enter('lineEnding'), n.consume(o), n.exit('lineEnding'), G;
|
||
}
|
||
function G(o) {
|
||
return z(o) ? O(n, en, 'linePrefix', e.parser.constructs.disable.null.includes('codeIndented') ? void 0 : 4)(o) : en(o);
|
||
}
|
||
function en(o) {
|
||
return n.enter('htmlTextData'), l(o);
|
||
}
|
||
}
|
||
const Dn = { name: 'labelEnd', tokenize: Ne, resolveTo: He, resolveAll: qe },
|
||
Me = { tokenize: Ve },
|
||
je = { tokenize: We },
|
||
Re = { tokenize: Qe };
|
||
function qe(n) {
|
||
let r = -1;
|
||
for (; ++r < n.length; ) {
|
||
const 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 He(n, r) {
|
||
let t = n.length,
|
||
e = 0,
|
||
u,
|
||
i,
|
||
l,
|
||
a;
|
||
for (; t--; )
|
||
if (((u = n[t][1]), i)) {
|
||
if (u.type === 'link' || (u.type === 'labelLink' && u._inactive)) break;
|
||
n[t][0] === 'enter' && u.type === 'labelLink' && (u._inactive = !0);
|
||
} else if (l) {
|
||
if (n[t][0] === 'enter' && (u.type === 'labelImage' || u.type === 'labelLink') && !u._balanced && ((i = t), u.type !== 'labelLink')) {
|
||
e = 2;
|
||
break;
|
||
}
|
||
} else u.type === 'labelEnd' && (l = t);
|
||
const m = {
|
||
type: n[i][1].type === 'labelLink' ? 'link' : 'image',
|
||
start: Object.assign({}, n[i][1].start),
|
||
end: Object.assign({}, n[n.length - 1][1].end),
|
||
},
|
||
c = { type: 'label', start: Object.assign({}, n[i][1].start), end: Object.assign({}, n[l][1].end) },
|
||
p = { type: 'labelText', start: Object.assign({}, n[i + e + 2][1].end), end: Object.assign({}, n[l - 2][1].start) };
|
||
return (
|
||
(a = [
|
||
['enter', m, r],
|
||
['enter', c, r],
|
||
]),
|
||
(a = Y(a, n.slice(i + 1, i + e + 3))),
|
||
(a = Y(a, [['enter', p, r]])),
|
||
(a = Y(a, Ln(r.parser.constructs.insideSpan.null, n.slice(i + e + 4, l - 3), r))),
|
||
(a = Y(a, [['exit', p, r], n[l - 2], n[l - 1], ['exit', c, r]])),
|
||
(a = Y(a, n.slice(l + 1))),
|
||
(a = Y(a, [['exit', m, r]])),
|
||
tn(n, i, n.length, a),
|
||
n
|
||
);
|
||
}
|
||
function Ne(n, r, t) {
|
||
const e = this;
|
||
let u = e.events.length,
|
||
i,
|
||
l;
|
||
for (; u--; )
|
||
if ((e.events[u][1].type === 'labelImage' || e.events[u][1].type === 'labelLink') && !e.events[u][1]._balanced) {
|
||
i = e.events[u][1];
|
||
break;
|
||
}
|
||
return a;
|
||
function a(x) {
|
||
return i
|
||
? i._inactive
|
||
? f(x)
|
||
: ((l = e.parser.defined.includes(xn(e.sliceSerialize({ start: i.end, end: e.now() })))),
|
||
n.enter('labelEnd'),
|
||
n.enter('labelMarker'),
|
||
n.consume(x),
|
||
n.exit('labelMarker'),
|
||
n.exit('labelEnd'),
|
||
m)
|
||
: t(x);
|
||
}
|
||
function m(x) {
|
||
return x === 40 ? n.attempt(Me, p, l ? p : f)(x) : x === 91 ? n.attempt(je, p, l ? c : f)(x) : l ? p(x) : f(x);
|
||
}
|
||
function c(x) {
|
||
return n.attempt(Re, p, f)(x);
|
||
}
|
||
function p(x) {
|
||
return r(x);
|
||
}
|
||
function f(x) {
|
||
return (i._balanced = !0), t(x);
|
||
}
|
||
}
|
||
function Ve(n, r, t) {
|
||
return e;
|
||
function e(f) {
|
||
return n.enter('resource'), n.enter('resourceMarker'), n.consume(f), n.exit('resourceMarker'), u;
|
||
}
|
||
function u(f) {
|
||
return Z(f) ? dn(n, i)(f) : i(f);
|
||
}
|
||
function i(f) {
|
||
return f === 41
|
||
? p(f)
|
||
: at(
|
||
n,
|
||
l,
|
||
a,
|
||
'resourceDestination',
|
||
'resourceDestinationLiteral',
|
||
'resourceDestinationLiteralMarker',
|
||
'resourceDestinationRaw',
|
||
'resourceDestinationString',
|
||
32
|
||
)(f);
|
||
}
|
||
function l(f) {
|
||
return Z(f) ? dn(n, m)(f) : p(f);
|
||
}
|
||
function a(f) {
|
||
return t(f);
|
||
}
|
||
function m(f) {
|
||
return f === 34 || f === 39 || f === 40 ? st(n, c, t, 'resourceTitle', 'resourceTitleMarker', 'resourceTitleString')(f) : p(f);
|
||
}
|
||
function c(f) {
|
||
return Z(f) ? dn(n, p)(f) : p(f);
|
||
}
|
||
function p(f) {
|
||
return f === 41 ? (n.enter('resourceMarker'), n.consume(f), n.exit('resourceMarker'), n.exit('resource'), r) : t(f);
|
||
}
|
||
}
|
||
function We(n, r, t) {
|
||
const e = this;
|
||
return u;
|
||
function u(a) {
|
||
return ot.call(e, n, i, l, 'reference', 'referenceMarker', 'referenceString')(a);
|
||
}
|
||
function i(a) {
|
||
return e.parser.defined.includes(xn(e.sliceSerialize(e.events[e.events.length - 1][1]).slice(1, -1))) ? r(a) : t(a);
|
||
}
|
||
function l(a) {
|
||
return t(a);
|
||
}
|
||
}
|
||
function Qe(n, r, t) {
|
||
return e;
|
||
function e(i) {
|
||
return n.enter('reference'), n.enter('referenceMarker'), n.consume(i), n.exit('referenceMarker'), u;
|
||
}
|
||
function u(i) {
|
||
return i === 93 ? (n.enter('referenceMarker'), n.consume(i), n.exit('referenceMarker'), n.exit('reference'), r) : t(i);
|
||
}
|
||
}
|
||
const Ue = { name: 'labelStartImage', tokenize: $e, resolveAll: Dn.resolveAll };
|
||
function $e(n, r, t) {
|
||
const e = this;
|
||
return u;
|
||
function u(a) {
|
||
return n.enter('labelImage'), n.enter('labelImageMarker'), n.consume(a), n.exit('labelImageMarker'), i;
|
||
}
|
||
function i(a) {
|
||
return a === 91 ? (n.enter('labelMarker'), n.consume(a), n.exit('labelMarker'), n.exit('labelImage'), l) : t(a);
|
||
}
|
||
function l(a) {
|
||
return a === 94 && '_hiddenFootnoteSupport' in e.parser.constructs ? t(a) : r(a);
|
||
}
|
||
}
|
||
const Ze = { name: 'labelStartLink', tokenize: Ye, resolveAll: Dn.resolveAll };
|
||
function Ye(n, r, t) {
|
||
const e = this;
|
||
return u;
|
||
function u(l) {
|
||
return n.enter('labelLink'), n.enter('labelMarker'), n.consume(l), n.exit('labelMarker'), n.exit('labelLink'), i;
|
||
}
|
||
function i(l) {
|
||
return l === 94 && '_hiddenFootnoteSupport' in e.parser.constructs ? t(l) : r(l);
|
||
}
|
||
}
|
||
const wn = { name: 'lineEnding', tokenize: Ge };
|
||
function Ge(n, r) {
|
||
return t;
|
||
function t(e) {
|
||
return n.enter('lineEnding'), n.consume(e), n.exit('lineEnding'), O(n, r, 'linePrefix');
|
||
}
|
||
}
|
||
const bn = { name: 'thematicBreak', tokenize: Je };
|
||
function Je(n, r, t) {
|
||
let e = 0,
|
||
u;
|
||
return i;
|
||
function i(c) {
|
||
return n.enter('thematicBreak'), l(c);
|
||
}
|
||
function l(c) {
|
||
return (u = c), a(c);
|
||
}
|
||
function a(c) {
|
||
return c === u ? (n.enter('thematicBreakSequence'), m(c)) : e >= 3 && (c === null || C(c)) ? (n.exit('thematicBreak'), r(c)) : t(c);
|
||
}
|
||
function m(c) {
|
||
return c === u ? (n.consume(c), e++, m) : (n.exit('thematicBreakSequence'), z(c) ? O(n, a, 'whitespace')(c) : a(c));
|
||
}
|
||
}
|
||
const $ = { name: 'list', tokenize: ve, continuation: { tokenize: nr }, exit: er },
|
||
Ke = { tokenize: rr, partial: !0 },
|
||
Xe = { tokenize: tr, partial: !0 };
|
||
function ve(n, r, t) {
|
||
const e = this,
|
||
u = e.events[e.events.length - 1];
|
||
let i = u && u[1].type === 'linePrefix' ? u[2].sliceSerialize(u[1], !0).length : 0,
|
||
l = 0;
|
||
return a;
|
||
function a(h) {
|
||
const A = e.containerState.type || (h === 42 || h === 43 || h === 45 ? 'listUnordered' : 'listOrdered');
|
||
if (A === 'listUnordered' ? !e.containerState.marker || h === e.containerState.marker : zn(h)) {
|
||
if ((e.containerState.type || ((e.containerState.type = A), n.enter(A, { _container: !0 })), A === 'listUnordered'))
|
||
return n.enter('listItemPrefix'), h === 42 || h === 45 ? n.check(bn, t, c)(h) : c(h);
|
||
if (!e.interrupt || h === 49) return n.enter('listItemPrefix'), n.enter('listItemValue'), m(h);
|
||
}
|
||
return t(h);
|
||
}
|
||
function m(h) {
|
||
return zn(h) && ++l < 10
|
||
? (n.consume(h), m)
|
||
: (!e.interrupt || l < 2) && (e.containerState.marker ? h === e.containerState.marker : h === 41 || h === 46)
|
||
? (n.exit('listItemValue'), c(h))
|
||
: t(h);
|
||
}
|
||
function c(h) {
|
||
return (
|
||
n.enter('listItemMarker'),
|
||
n.consume(h),
|
||
n.exit('listItemMarker'),
|
||
(e.containerState.marker = e.containerState.marker || h),
|
||
n.check(Sn, e.interrupt ? t : p, n.attempt(Ke, x, f))
|
||
);
|
||
}
|
||
function p(h) {
|
||
return (e.containerState.initialBlankLine = !0), i++, x(h);
|
||
}
|
||
function f(h) {
|
||
return z(h) ? (n.enter('listItemPrefixWhitespace'), n.consume(h), n.exit('listItemPrefixWhitespace'), x) : t(h);
|
||
}
|
||
function x(h) {
|
||
return (e.containerState.size = i + e.sliceSerialize(n.exit('listItemPrefix'), !0).length), r(h);
|
||
}
|
||
}
|
||
function nr(n, r, t) {
|
||
const e = this;
|
||
return (e.containerState._closeFlow = void 0), n.check(Sn, u, i);
|
||
function u(a) {
|
||
return (
|
||
(e.containerState.furtherBlankLines = e.containerState.furtherBlankLines || e.containerState.initialBlankLine),
|
||
O(n, r, 'listItemIndent', e.containerState.size + 1)(a)
|
||
);
|
||
}
|
||
function i(a) {
|
||
return e.containerState.furtherBlankLines || !z(a)
|
||
? ((e.containerState.furtherBlankLines = void 0), (e.containerState.initialBlankLine = void 0), l(a))
|
||
: ((e.containerState.furtherBlankLines = void 0), (e.containerState.initialBlankLine = void 0), n.attempt(Xe, r, l)(a));
|
||
}
|
||
function l(a) {
|
||
return (
|
||
(e.containerState._closeFlow = !0),
|
||
(e.interrupt = void 0),
|
||
O(n, n.attempt($, r, t), 'linePrefix', e.parser.constructs.disable.null.includes('codeIndented') ? void 0 : 4)(a)
|
||
);
|
||
}
|
||
}
|
||
function tr(n, r, t) {
|
||
const e = this;
|
||
return O(n, u, 'listItemIndent', e.containerState.size + 1);
|
||
function u(i) {
|
||
const l = e.events[e.events.length - 1];
|
||
return l && l[1].type === 'listItemIndent' && l[2].sliceSerialize(l[1], !0).length === e.containerState.size ? r(i) : t(i);
|
||
}
|
||
}
|
||
function er(n) {
|
||
n.exit(this.containerState.type);
|
||
}
|
||
function rr(n, r, t) {
|
||
const e = this;
|
||
return O(n, u, 'listItemPrefixWhitespace', e.parser.constructs.disable.null.includes('codeIndented') ? void 0 : 4 + 1);
|
||
function u(i) {
|
||
const l = e.events[e.events.length - 1];
|
||
return !z(i) && l && l[1].type === 'listItemPrefixWhitespace' ? r(i) : t(i);
|
||
}
|
||
}
|
||
const Kn = { name: 'setextUnderline', tokenize: ur, resolveTo: ir };
|
||
function ir(n, r) {
|
||
let t = n.length,
|
||
e,
|
||
u,
|
||
i;
|
||
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), !i && n[t][1].type === 'definition' && (i = t);
|
||
const l = { type: 'setextHeading', start: Object.assign({}, n[u][1].start), end: Object.assign({}, n[n.length - 1][1].end) };
|
||
return (
|
||
(n[u][1].type = 'setextHeadingText'),
|
||
i ? (n.splice(u, 0, ['enter', l, r]), n.splice(i + 1, 0, ['exit', n[e][1], r]), (n[e][1].end = Object.assign({}, n[i][1].end))) : (n[e][1] = l),
|
||
n.push(['exit', l, r]),
|
||
n
|
||
);
|
||
}
|
||
function ur(n, r, t) {
|
||
const e = this;
|
||
let u;
|
||
return i;
|
||
function i(c) {
|
||
let p = e.events.length,
|
||
f;
|
||
for (; p--; )
|
||
if (e.events[p][1].type !== 'lineEnding' && e.events[p][1].type !== 'linePrefix' && e.events[p][1].type !== 'content') {
|
||
f = e.events[p][1].type === 'paragraph';
|
||
break;
|
||
}
|
||
return !e.parser.lazy[e.now().line] && (e.interrupt || f) ? (n.enter('setextHeadingLine'), (u = c), l(c)) : t(c);
|
||
}
|
||
function l(c) {
|
||
return n.enter('setextHeadingLineSequence'), a(c);
|
||
}
|
||
function a(c) {
|
||
return c === u ? (n.consume(c), a) : (n.exit('setextHeadingLineSequence'), z(c) ? O(n, m, 'lineSuffix')(c) : m(c));
|
||
}
|
||
function m(c) {
|
||
return c === null || C(c) ? (n.exit('setextHeadingLine'), r(c)) : t(c);
|
||
}
|
||
}
|
||
const lr = { tokenize: ar };
|
||
function ar(n) {
|
||
const r = this,
|
||
t = n.attempt(
|
||
Sn,
|
||
e,
|
||
n.attempt(this.parser.constructs.flowInitial, u, O(n, n.attempt(this.parser.constructs.flow, u, n.attempt(pe, u)), 'linePrefix'))
|
||
);
|
||
return t;
|
||
function e(i) {
|
||
if (i === null) {
|
||
n.consume(i);
|
||
return;
|
||
}
|
||
return n.enter('lineEndingBlank'), n.consume(i), n.exit('lineEndingBlank'), (r.currentConstruct = void 0), t;
|
||
}
|
||
function u(i) {
|
||
if (i === null) {
|
||
n.consume(i);
|
||
return;
|
||
}
|
||
return n.enter('lineEnding'), n.consume(i), n.exit('lineEnding'), (r.currentConstruct = void 0), t;
|
||
}
|
||
}
|
||
const or = { resolveAll: ht() },
|
||
sr = ct('string'),
|
||
cr = ct('text');
|
||
function ct(n) {
|
||
return { tokenize: r, resolveAll: ht(n === 'text' ? hr : void 0) };
|
||
function r(t) {
|
||
const e = this,
|
||
u = this.parser.constructs[n],
|
||
i = t.attempt(u, l, a);
|
||
return l;
|
||
function l(p) {
|
||
return c(p) ? i(p) : a(p);
|
||
}
|
||
function a(p) {
|
||
if (p === null) {
|
||
t.consume(p);
|
||
return;
|
||
}
|
||
return t.enter('data'), t.consume(p), m;
|
||
}
|
||
function m(p) {
|
||
return c(p) ? (t.exit('data'), i(p)) : (t.consume(p), m);
|
||
}
|
||
function c(p) {
|
||
if (p === null) return !0;
|
||
const f = u[p];
|
||
let x = -1;
|
||
if (f)
|
||
for (; ++x < f.length; ) {
|
||
const h = f[x];
|
||
if (!h.previous || h.previous.call(e, e.previous)) return !0;
|
||
}
|
||
return !1;
|
||
}
|
||
}
|
||
}
|
||
function ht(n) {
|
||
return r;
|
||
function r(t, e) {
|
||
let u = -1,
|
||
i;
|
||
for (; ++u <= t.length; )
|
||
i === void 0
|
||
? t[u] && t[u][1].type === 'data' && ((i = u), u++)
|
||
: (!t[u] || t[u][1].type !== 'data') &&
|
||
(u !== i + 2 && ((t[i][1].end = t[u - 1][1].end), t.splice(i + 2, u - i - 2), (u = i + 2)), (i = void 0));
|
||
return n ? n(t, e) : t;
|
||
}
|
||
}
|
||
function hr(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 i = u.length,
|
||
l = -1,
|
||
a = 0,
|
||
m;
|
||
for (; i--; ) {
|
||
const c = u[i];
|
||
if (typeof c == 'string') {
|
||
for (l = c.length; c.charCodeAt(l - 1) === 32; ) a++, l--;
|
||
if (l) break;
|
||
l = -1;
|
||
} else if (c === -2) (m = !0), a++;
|
||
else if (c !== -1) {
|
||
i++;
|
||
break;
|
||
}
|
||
}
|
||
if (a) {
|
||
const c = {
|
||
type: t === n.length || m || a < 2 ? 'lineSuffix' : 'hardBreakTrailing',
|
||
start: {
|
||
line: e.end.line,
|
||
column: e.end.column - a,
|
||
offset: e.end.offset - a,
|
||
_index: e.start._index + i,
|
||
_bufferIndex: i ? l : e.start._bufferIndex + l,
|
||
},
|
||
end: Object.assign({}, e.end),
|
||
};
|
||
(e.end = Object.assign({}, c.start)),
|
||
e.start.offset === e.end.offset ? Object.assign(e, c) : (n.splice(t, 0, ['enter', c, r], ['exit', c, r]), (t += 2));
|
||
}
|
||
t++;
|
||
}
|
||
return n;
|
||
}
|
||
function pr(n, r, t) {
|
||
let e = Object.assign(t ? Object.assign({}, t) : { line: 1, column: 1, offset: 0 }, { _index: 0, _bufferIndex: -1 });
|
||
const u = {},
|
||
i = [];
|
||
let l = [],
|
||
a = [];
|
||
const m = { consume: j, enter: F, exit: D, attempt: T(_), check: T(k), interrupt: T(k, { interrupt: !0 }) },
|
||
c = { previous: null, code: null, containerState: {}, events: [], parser: n, sliceStream: h, sliceSerialize: x, now: A, defineSkip: I, write: f };
|
||
let p = r.tokenize.call(c, m);
|
||
return r.resolveAll && i.push(r), c;
|
||
function f(y) {
|
||
return (l = Y(l, y)), M(), l[l.length - 1] !== null ? [] : (H(r, 0), (c.events = Ln(i, c.events, c)), c.events);
|
||
}
|
||
function x(y, S) {
|
||
return mr(h(y), S);
|
||
}
|
||
function h(y) {
|
||
return fr(l, y);
|
||
}
|
||
function A() {
|
||
const { line: y, column: S, offset: P, _index: R, _bufferIndex: w } = e;
|
||
return { line: y, column: S, offset: P, _index: R, _bufferIndex: w };
|
||
}
|
||
function I(y) {
|
||
(u[y.line] = y.column), V();
|
||
}
|
||
function M() {
|
||
let y;
|
||
for (; e._index < l.length; ) {
|
||
const S = l[e._index];
|
||
if (typeof S == 'string')
|
||
for (y = e._index, e._bufferIndex < 0 && (e._bufferIndex = 0); e._index === y && e._bufferIndex < S.length; ) b(S.charCodeAt(e._bufferIndex));
|
||
else b(S);
|
||
}
|
||
}
|
||
function b(y) {
|
||
p = p(y);
|
||
}
|
||
function j(y) {
|
||
C(y) ? (e.line++, (e.column = 1), (e.offset += y === -3 ? 2 : 1), V()) : y !== -1 && (e.column++, e.offset++),
|
||
e._bufferIndex < 0 ? e._index++ : (e._bufferIndex++, e._bufferIndex === l[e._index].length && ((e._bufferIndex = -1), e._index++)),
|
||
(c.previous = y);
|
||
}
|
||
function F(y, S) {
|
||
const P = S || {};
|
||
return (P.type = y), (P.start = A()), c.events.push(['enter', P, c]), a.push(P), P;
|
||
}
|
||
function D(y) {
|
||
const S = a.pop();
|
||
return (S.end = A()), c.events.push(['exit', S, c]), S;
|
||
}
|
||
function _(y, S) {
|
||
H(y, S.from);
|
||
}
|
||
function k(y, S) {
|
||
S.restore();
|
||
}
|
||
function T(y, S) {
|
||
return P;
|
||
function P(R, w, U) {
|
||
let W, G, en, o;
|
||
return Array.isArray(R) ? rn(R) : 'tokenize' in R ? rn([R]) : J(R);
|
||
function J(Q) {
|
||
return pn;
|
||
function pn(an) {
|
||
const fn = an !== null && Q[an],
|
||
mn = an !== null && Q.null,
|
||
Fn = [...(Array.isArray(fn) ? fn : fn ? [fn] : []), ...(Array.isArray(mn) ? mn : mn ? [mn] : [])];
|
||
return rn(Fn)(an);
|
||
}
|
||
}
|
||
function rn(Q) {
|
||
return (W = Q), (G = 0), Q.length === 0 ? U : s(Q[G]);
|
||
}
|
||
function s(Q) {
|
||
return pn;
|
||
function pn(an) {
|
||
return (
|
||
(o = N()),
|
||
(en = Q),
|
||
Q.partial || (c.currentConstruct = Q),
|
||
Q.name && c.parser.constructs.disable.null.includes(Q.name)
|
||
? hn()
|
||
: Q.tokenize.call(S ? Object.assign(Object.create(c), S) : c, m, K, hn)(an)
|
||
);
|
||
}
|
||
}
|
||
function K(Q) {
|
||
return y(en, o), w;
|
||
}
|
||
function hn(Q) {
|
||
return o.restore(), ++G < W.length ? s(W[G]) : U;
|
||
}
|
||
}
|
||
}
|
||
function H(y, S) {
|
||
y.resolveAll && !i.includes(y) && i.push(y),
|
||
y.resolve && tn(c.events, S, c.events.length - S, y.resolve(c.events.slice(S), c)),
|
||
y.resolveTo && (c.events = y.resolveTo(c.events, c));
|
||
}
|
||
function N() {
|
||
const y = A(),
|
||
S = c.previous,
|
||
P = c.currentConstruct,
|
||
R = c.events.length,
|
||
w = Array.from(a);
|
||
return { restore: U, from: R };
|
||
function U() {
|
||
(e = y), (c.previous = S), (c.currentConstruct = P), (c.events.length = R), (a = w), V();
|
||
}
|
||
}
|
||
function V() {
|
||
e.line in u && e.column < 2 && ((e.column = u[e.line]), (e.offset += u[e.line] - 1));
|
||
}
|
||
}
|
||
function fr(n, r) {
|
||
const t = r.start._index,
|
||
e = r.start._bufferIndex,
|
||
u = r.end._index,
|
||
i = r.end._bufferIndex;
|
||
let l;
|
||
if (t === u) l = [n[t].slice(e, i)];
|
||
else {
|
||
if (((l = n.slice(t, u)), e > -1)) {
|
||
const a = l[0];
|
||
typeof a == 'string' ? (l[0] = a.slice(e)) : l.shift();
|
||
}
|
||
i > 0 && l.push(n[u].slice(0, i));
|
||
}
|
||
return l;
|
||
}
|
||
function mr(n, r) {
|
||
let t = -1;
|
||
const e = [];
|
||
let u;
|
||
for (; ++t < n.length; ) {
|
||
const i = n[t];
|
||
let l;
|
||
if (typeof i == 'string') l = i;
|
||
else
|
||
switch (i) {
|
||
case -5: {
|
||
l = '\r';
|
||
break;
|
||
}
|
||
case -4: {
|
||
l = `
|
||
`;
|
||
break;
|
||
}
|
||
case -3: {
|
||
l = `\r
|
||
`;
|
||
break;
|
||
}
|
||
case -2: {
|
||
l = r ? ' ' : ' ';
|
||
break;
|
||
}
|
||
case -1: {
|
||
if (!r && u) continue;
|
||
l = ' ';
|
||
break;
|
||
}
|
||
default:
|
||
l = String.fromCharCode(i);
|
||
}
|
||
(u = i === -2), e.push(l);
|
||
}
|
||
return e.join('');
|
||
}
|
||
const xr = { [42]: $, [43]: $, [45]: $, [48]: $, [49]: $, [50]: $, [51]: $, [52]: $, [53]: $, [54]: $, [55]: $, [56]: $, [57]: $, [62]: rt },
|
||
gr = { [91]: ke },
|
||
kr = { [-2]: Cn, [-1]: Cn, [32]: Cn },
|
||
dr = { [35]: Ee, [42]: bn, [45]: [Kn, bn], [60]: ze, [61]: Kn, [95]: bn, [96]: Gn, [126]: Gn },
|
||
br = { [38]: ut, [92]: it },
|
||
yr = { [-5]: wn, [-4]: wn, [-3]: wn, [33]: Ue, [38]: ut, [42]: In, [60]: [Yt, Pe], [91]: Ze, [92]: [Se, it], [93]: Dn, [95]: In, [96]: ae },
|
||
Sr = { null: [In, or] },
|
||
Fr = { null: [42, 95] },
|
||
Er = { null: [] },
|
||
Cr = Object.freeze(
|
||
Object.defineProperty(
|
||
{
|
||
__proto__: null,
|
||
attentionMarkers: Fr,
|
||
contentInitial: gr,
|
||
disable: Er,
|
||
document: xr,
|
||
flow: dr,
|
||
flowInitial: kr,
|
||
insideSpan: Sr,
|
||
string: br,
|
||
text: yr,
|
||
},
|
||
Symbol.toStringTag,
|
||
{ value: 'Module' }
|
||
)
|
||
);
|
||
function wr(n) {
|
||
const t = Ot([Cr, ...((n || {}).extensions || [])]),
|
||
e = { defined: [], lazy: {}, constructs: t, content: u(Nt), document: u(Wt), flow: u(lr), string: u(sr), text: u(cr) };
|
||
return e;
|
||
function u(i) {
|
||
return l;
|
||
function l(a) {
|
||
return pr(e, i, a);
|
||
}
|
||
}
|
||
}
|
||
const Xn = /[\0\t\n\r]/g;
|
||
function Ar() {
|
||
let n = 1,
|
||
r = '',
|
||
t = !0,
|
||
e;
|
||
return u;
|
||
function u(i, l, a) {
|
||
const m = [];
|
||
let c, p, f, x, h;
|
||
for (i = r + i.toString(l), f = 0, r = '', t && (i.charCodeAt(0) === 65279 && f++, (t = void 0)); f < i.length; ) {
|
||
if (((Xn.lastIndex = f), (c = Xn.exec(i)), (x = c && c.index !== void 0 ? c.index : i.length), (h = i.charCodeAt(x)), !c)) {
|
||
r = i.slice(f);
|
||
break;
|
||
}
|
||
if (h === 10 && f === x && e) m.push(-3), (e = void 0);
|
||
else
|
||
switch ((e && (m.push(-5), (e = void 0)), f < x && (m.push(i.slice(f, x)), (n += x - f)), h)) {
|
||
case 0: {
|
||
m.push(65533), n++;
|
||
break;
|
||
}
|
||
case 9: {
|
||
for (p = Math.ceil(n / 4) * 4, m.push(-2); n++ < p; ) m.push(-1);
|
||
break;
|
||
}
|
||
case 10: {
|
||
m.push(-4), (n = 1);
|
||
break;
|
||
}
|
||
default:
|
||
(e = !0), (n = 1);
|
||
}
|
||
f = x + 1;
|
||
}
|
||
return a && (e && m.push(-5), r && m.push(r), m.push(null)), m;
|
||
}
|
||
}
|
||
function zr(n) {
|
||
for (; !lt(n); );
|
||
return n;
|
||
}
|
||
function pt(n, r) {
|
||
const t = Number.parseInt(n, r);
|
||
return t < 9 ||
|
||
t === 11 ||
|
||
(t > 13 && t < 32) ||
|
||
(t > 126 && t < 160) ||
|
||
(t > 55295 && t < 57344) ||
|
||
(t > 64975 && t < 65008) ||
|
||
(t & 65535) === 65535 ||
|
||
(t & 65535) === 65534 ||
|
||
t > 1114111
|
||
? '<27>'
|
||
: String.fromCharCode(t);
|
||
}
|
||
const Ir = /\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi;
|
||
function Tr(n) {
|
||
return n.replace(Ir, Br);
|
||
}
|
||
function Br(n, r, t) {
|
||
if (r) return r;
|
||
if (t.charCodeAt(0) === 35) {
|
||
const u = t.charCodeAt(1),
|
||
i = u === 120 || u === 88;
|
||
return pt(t.slice(i ? 2 : 1), i ? 16 : 10);
|
||
}
|
||
return On(t) || n;
|
||
}
|
||
function yn(n) {
|
||
return !n || typeof n != 'object'
|
||
? ''
|
||
: 'position' in n || 'type' in n
|
||
? vn(n.position)
|
||
: 'start' in n || 'end' in n
|
||
? vn(n)
|
||
: 'line' in n || 'column' in n
|
||
? Tn(n)
|
||
: '';
|
||
}
|
||
function Tn(n) {
|
||
return nt(n && n.line) + ':' + nt(n && n.column);
|
||
}
|
||
function vn(n) {
|
||
return Tn(n && n.start) + '-' + Tn(n && n.end);
|
||
}
|
||
function nt(n) {
|
||
return n && typeof n == 'number' ? n : 1;
|
||
}
|
||
const ft = {}.hasOwnProperty,
|
||
mt = function (n, r, t) {
|
||
return typeof r != 'string' && ((t = r), (r = void 0)), Lr(t)(zr(wr(t).document().write(Ar()(n, r, !0))));
|
||
};
|
||
function Lr(n) {
|
||
const r = {
|
||
transforms: [],
|
||
canContainEols: ['emphasis', 'fragment', 'heading', 'paragraph', 'strong'],
|
||
enter: {
|
||
autolink: a(Hn),
|
||
autolinkProtocol: y,
|
||
autolinkEmail: y,
|
||
atxHeading: a(jn),
|
||
blockQuote: a(Fn),
|
||
characterEscape: y,
|
||
characterReference: y,
|
||
codeFenced: a(Mn),
|
||
codeFencedFenceInfo: m,
|
||
codeFencedFenceMeta: m,
|
||
codeIndented: a(Mn, m),
|
||
codeText: a(kt, m),
|
||
codeTextData: y,
|
||
data: y,
|
||
codeFlowValue: y,
|
||
definition: a(dt),
|
||
definitionDestinationString: m,
|
||
definitionLabelString: m,
|
||
definitionTitleString: m,
|
||
emphasis: a(bt),
|
||
hardBreakEscape: a(Rn),
|
||
hardBreakTrailing: a(Rn),
|
||
htmlFlow: a(qn, m),
|
||
htmlFlowData: y,
|
||
htmlText: a(qn, m),
|
||
htmlTextData: y,
|
||
image: a(yt),
|
||
label: m,
|
||
link: a(Hn),
|
||
listItem: a(St),
|
||
listItemValue: A,
|
||
listOrdered: a(Nn, h),
|
||
listUnordered: a(Nn),
|
||
paragraph: a(Ft),
|
||
reference: hn,
|
||
referenceString: m,
|
||
resourceDestinationString: m,
|
||
resourceTitleString: m,
|
||
setextHeading: a(jn),
|
||
strong: a(Et),
|
||
thematicBreak: a(wt),
|
||
},
|
||
exit: {
|
||
atxHeading: p(),
|
||
atxHeadingSequence: T,
|
||
autolink: p(),
|
||
autolinkEmail: mn,
|
||
autolinkProtocol: fn,
|
||
blockQuote: p(),
|
||
characterEscapeValue: S,
|
||
characterReferenceMarkerHexadecimal: pn,
|
||
characterReferenceMarkerNumeric: pn,
|
||
characterReferenceValue: an,
|
||
codeFenced: p(j),
|
||
codeFencedFence: b,
|
||
codeFencedFenceInfo: I,
|
||
codeFencedFenceMeta: M,
|
||
codeFlowValue: S,
|
||
codeIndented: p(F),
|
||
codeText: p(W),
|
||
codeTextData: S,
|
||
data: S,
|
||
definition: p(),
|
||
definitionDestinationString: k,
|
||
definitionLabelString: D,
|
||
definitionTitleString: _,
|
||
emphasis: p(),
|
||
hardBreakEscape: p(R),
|
||
hardBreakTrailing: p(R),
|
||
htmlFlow: p(w),
|
||
htmlFlowData: S,
|
||
htmlText: p(U),
|
||
htmlTextData: S,
|
||
image: p(en),
|
||
label: J,
|
||
labelText: o,
|
||
lineEnding: P,
|
||
link: p(G),
|
||
listItem: p(),
|
||
listOrdered: p(),
|
||
listUnordered: p(),
|
||
paragraph: p(),
|
||
referenceString: Q,
|
||
resourceDestinationString: rn,
|
||
resourceTitleString: s,
|
||
resource: K,
|
||
setextHeading: p(V),
|
||
setextHeadingLineSequence: N,
|
||
setextHeadingText: H,
|
||
strong: p(),
|
||
thematicBreak: p(),
|
||
},
|
||
};
|
||
xt(r, (n || {}).mdastExtensions || []);
|
||
const t = {};
|
||
return e;
|
||
function e(g) {
|
||
let d = { type: 'root', children: [] };
|
||
const E = { stack: [d], tokenStack: [], config: r, enter: c, exit: f, buffer: m, resume: x, setData: i, getData: l },
|
||
B = [];
|
||
let L = -1;
|
||
for (; ++L < g.length; )
|
||
if (g[L][1].type === 'listOrdered' || g[L][1].type === 'listUnordered')
|
||
if (g[L][0] === 'enter') B.push(L);
|
||
else {
|
||
const X = B.pop();
|
||
L = u(g, X, L);
|
||
}
|
||
for (L = -1; ++L < g.length; ) {
|
||
const X = r[g[L][0]];
|
||
ft.call(X, g[L][1].type) && X[g[L][1].type].call(Object.assign({ sliceSerialize: g[L][2].sliceSerialize }, E), g[L][1]);
|
||
}
|
||
if (E.tokenStack.length > 0) {
|
||
const X = E.tokenStack[E.tokenStack.length - 1];
|
||
(X[1] || tt).call(E, void 0, X[0]);
|
||
}
|
||
for (
|
||
d.position = {
|
||
start: sn(g.length > 0 ? g[0][1].start : { line: 1, column: 1, offset: 0 }),
|
||
end: sn(g.length > 0 ? g[g.length - 2][1].end : { line: 1, column: 1, offset: 0 }),
|
||
},
|
||
L = -1;
|
||
++L < r.transforms.length;
|
||
|
||
)
|
||
d = r.transforms[L](d) || d;
|
||
return d;
|
||
}
|
||
function u(g, d, E) {
|
||
let B = d - 1,
|
||
L = -1,
|
||
X = !1,
|
||
on,
|
||
un,
|
||
gn,
|
||
kn;
|
||
for (; ++B <= E; ) {
|
||
const q = g[B];
|
||
if (
|
||
(q[1].type === 'listUnordered' || q[1].type === 'listOrdered' || q[1].type === 'blockQuote'
|
||
? (q[0] === 'enter' ? L++ : L--, (kn = void 0))
|
||
: q[1].type === 'lineEndingBlank'
|
||
? q[0] === 'enter' && (on && !kn && !L && !gn && (gn = B), (kn = void 0))
|
||
: q[1].type === 'linePrefix' ||
|
||
q[1].type === 'listItemValue' ||
|
||
q[1].type === 'listItemMarker' ||
|
||
q[1].type === 'listItemPrefix' ||
|
||
q[1].type === 'listItemPrefixWhitespace' ||
|
||
(kn = void 0),
|
||
(!L && q[0] === 'enter' && q[1].type === 'listItemPrefix') ||
|
||
(L === -1 && q[0] === 'exit' && (q[1].type === 'listUnordered' || q[1].type === 'listOrdered')))
|
||
) {
|
||
if (on) {
|
||
let En = B;
|
||
for (un = void 0; En--; ) {
|
||
const ln = g[En];
|
||
if (ln[1].type === 'lineEnding' || ln[1].type === 'lineEndingBlank') {
|
||
if (ln[0] === 'exit') continue;
|
||
un && ((g[un][1].type = 'lineEndingBlank'), (X = !0)), (ln[1].type = 'lineEnding'), (un = En);
|
||
} else if (
|
||
!(
|
||
ln[1].type === 'linePrefix' ||
|
||
ln[1].type === 'blockQuotePrefix' ||
|
||
ln[1].type === 'blockQuotePrefixWhitespace' ||
|
||
ln[1].type === 'blockQuoteMarker' ||
|
||
ln[1].type === 'listItemIndent'
|
||
)
|
||
)
|
||
break;
|
||
}
|
||
gn && (!un || gn < un) && (on._spread = !0),
|
||
(on.end = Object.assign({}, un ? g[un][1].start : q[1].end)),
|
||
g.splice(un || B, 0, ['exit', on, q[2]]),
|
||
B++,
|
||
E++;
|
||
}
|
||
q[1].type === 'listItemPrefix' &&
|
||
((on = { type: 'listItem', _spread: !1, start: Object.assign({}, q[1].start), end: void 0 }),
|
||
g.splice(B, 0, ['enter', on, q[2]]),
|
||
B++,
|
||
E++,
|
||
(gn = void 0),
|
||
(kn = !0));
|
||
}
|
||
}
|
||
return (g[d][1]._spread = X), E;
|
||
}
|
||
function i(g, d) {
|
||
t[g] = d;
|
||
}
|
||
function l(g) {
|
||
return t[g];
|
||
}
|
||
function a(g, d) {
|
||
return E;
|
||
function E(B) {
|
||
c.call(this, g(B), B), d && d.call(this, B);
|
||
}
|
||
}
|
||
function m() {
|
||
this.stack.push({ type: 'fragment', children: [] });
|
||
}
|
||
function c(g, d, E) {
|
||
return (
|
||
this.stack[this.stack.length - 1].children.push(g), this.stack.push(g), this.tokenStack.push([d, E]), (g.position = { start: sn(d.start) }), g
|
||
);
|
||
}
|
||
function p(g) {
|
||
return d;
|
||
function d(E) {
|
||
g && g.call(this, E), f.call(this, E);
|
||
}
|
||
}
|
||
function f(g, d) {
|
||
const E = this.stack.pop(),
|
||
B = this.tokenStack.pop();
|
||
if (B) B[0].type !== g.type && (d ? d.call(this, g, B[0]) : (B[1] || tt).call(this, g, B[0]));
|
||
else throw new Error('Cannot close `' + g.type + '` (' + yn({ start: g.start, end: g.end }) + '): it’s not open');
|
||
return (E.position.end = sn(g.end)), E;
|
||
}
|
||
function x() {
|
||
return Bt(this.stack.pop());
|
||
}
|
||
function h() {
|
||
i('expectingFirstListItemValue', !0);
|
||
}
|
||
function A(g) {
|
||
if (l('expectingFirstListItemValue')) {
|
||
const d = this.stack[this.stack.length - 2];
|
||
(d.start = Number.parseInt(this.sliceSerialize(g), 10)), i('expectingFirstListItemValue');
|
||
}
|
||
}
|
||
function I() {
|
||
const g = this.resume(),
|
||
d = this.stack[this.stack.length - 1];
|
||
d.lang = g;
|
||
}
|
||
function M() {
|
||
const g = this.resume(),
|
||
d = this.stack[this.stack.length - 1];
|
||
d.meta = g;
|
||
}
|
||
function b() {
|
||
l('flowCodeInside') || (this.buffer(), i('flowCodeInside', !0));
|
||
}
|
||
function j() {
|
||
const g = this.resume(),
|
||
d = this.stack[this.stack.length - 1];
|
||
(d.value = g.replace(/^(\r?\n|\r)|(\r?\n|\r)$/g, '')), i('flowCodeInside');
|
||
}
|
||
function F() {
|
||
const g = this.resume(),
|
||
d = this.stack[this.stack.length - 1];
|
||
d.value = g.replace(/(\r?\n|\r)$/g, '');
|
||
}
|
||
function D(g) {
|
||
const d = this.resume(),
|
||
E = this.stack[this.stack.length - 1];
|
||
(E.label = d), (E.identifier = xn(this.sliceSerialize(g)).toLowerCase());
|
||
}
|
||
function _() {
|
||
const g = this.resume(),
|
||
d = this.stack[this.stack.length - 1];
|
||
d.title = g;
|
||
}
|
||
function k() {
|
||
const g = this.resume(),
|
||
d = this.stack[this.stack.length - 1];
|
||
d.url = g;
|
||
}
|
||
function T(g) {
|
||
const d = this.stack[this.stack.length - 1];
|
||
if (!d.depth) {
|
||
const E = this.sliceSerialize(g).length;
|
||
d.depth = E;
|
||
}
|
||
}
|
||
function H() {
|
||
i('setextHeadingSlurpLineEnding', !0);
|
||
}
|
||
function N(g) {
|
||
const d = this.stack[this.stack.length - 1];
|
||
d.depth = this.sliceSerialize(g).charCodeAt(0) === 61 ? 1 : 2;
|
||
}
|
||
function V() {
|
||
i('setextHeadingSlurpLineEnding');
|
||
}
|
||
function y(g) {
|
||
const d = this.stack[this.stack.length - 1];
|
||
let E = d.children[d.children.length - 1];
|
||
(!E || E.type !== 'text') && ((E = Ct()), (E.position = { start: sn(g.start) }), d.children.push(E)), this.stack.push(E);
|
||
}
|
||
function S(g) {
|
||
const d = this.stack.pop();
|
||
(d.value += this.sliceSerialize(g)), (d.position.end = sn(g.end));
|
||
}
|
||
function P(g) {
|
||
const d = this.stack[this.stack.length - 1];
|
||
if (l('atHardBreak')) {
|
||
const E = d.children[d.children.length - 1];
|
||
(E.position.end = sn(g.end)), i('atHardBreak');
|
||
return;
|
||
}
|
||
!l('setextHeadingSlurpLineEnding') && r.canContainEols.includes(d.type) && (y.call(this, g), S.call(this, g));
|
||
}
|
||
function R() {
|
||
i('atHardBreak', !0);
|
||
}
|
||
function w() {
|
||
const g = this.resume(),
|
||
d = this.stack[this.stack.length - 1];
|
||
d.value = g;
|
||
}
|
||
function U() {
|
||
const g = this.resume(),
|
||
d = this.stack[this.stack.length - 1];
|
||
d.value = g;
|
||
}
|
||
function W() {
|
||
const g = this.resume(),
|
||
d = this.stack[this.stack.length - 1];
|
||
d.value = g;
|
||
}
|
||
function G() {
|
||
const g = this.stack[this.stack.length - 1];
|
||
if (l('inReference')) {
|
||
const d = l('referenceType') || 'shortcut';
|
||
(g.type += 'Reference'), (g.referenceType = d), delete g.url, delete g.title;
|
||
} else delete g.identifier, delete g.label;
|
||
i('referenceType');
|
||
}
|
||
function en() {
|
||
const g = this.stack[this.stack.length - 1];
|
||
if (l('inReference')) {
|
||
const d = l('referenceType') || 'shortcut';
|
||
(g.type += 'Reference'), (g.referenceType = d), delete g.url, delete g.title;
|
||
} else delete g.identifier, delete g.label;
|
||
i('referenceType');
|
||
}
|
||
function o(g) {
|
||
const d = this.sliceSerialize(g),
|
||
E = this.stack[this.stack.length - 2];
|
||
(E.label = Tr(d)), (E.identifier = xn(d).toLowerCase());
|
||
}
|
||
function J() {
|
||
const g = this.stack[this.stack.length - 1],
|
||
d = this.resume(),
|
||
E = this.stack[this.stack.length - 1];
|
||
if ((i('inReference', !0), E.type === 'link')) {
|
||
const B = g.children;
|
||
E.children = B;
|
||
} else E.alt = d;
|
||
}
|
||
function rn() {
|
||
const g = this.resume(),
|
||
d = this.stack[this.stack.length - 1];
|
||
d.url = g;
|
||
}
|
||
function s() {
|
||
const g = this.resume(),
|
||
d = this.stack[this.stack.length - 1];
|
||
d.title = g;
|
||
}
|
||
function K() {
|
||
i('inReference');
|
||
}
|
||
function hn() {
|
||
i('referenceType', 'collapsed');
|
||
}
|
||
function Q(g) {
|
||
const d = this.resume(),
|
||
E = this.stack[this.stack.length - 1];
|
||
(E.label = d), (E.identifier = xn(this.sliceSerialize(g)).toLowerCase()), i('referenceType', 'full');
|
||
}
|
||
function pn(g) {
|
||
i('characterReferenceType', g.type);
|
||
}
|
||
function an(g) {
|
||
const d = this.sliceSerialize(g),
|
||
E = l('characterReferenceType');
|
||
let B;
|
||
E ? ((B = pt(d, E === 'characterReferenceMarkerNumeric' ? 10 : 16)), i('characterReferenceType')) : (B = On(d));
|
||
const L = this.stack.pop();
|
||
(L.value += B), (L.position.end = sn(g.end));
|
||
}
|
||
function fn(g) {
|
||
S.call(this, g);
|
||
const d = this.stack[this.stack.length - 1];
|
||
d.url = this.sliceSerialize(g);
|
||
}
|
||
function mn(g) {
|
||
S.call(this, g);
|
||
const d = this.stack[this.stack.length - 1];
|
||
d.url = 'mailto:' + this.sliceSerialize(g);
|
||
}
|
||
function Fn() {
|
||
return { type: 'blockquote', children: [] };
|
||
}
|
||
function Mn() {
|
||
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 jn() {
|
||
return { type: 'heading', depth: void 0, children: [] };
|
||
}
|
||
function Rn() {
|
||
return { type: 'break' };
|
||
}
|
||
function qn() {
|
||
return { type: 'html', value: '' };
|
||
}
|
||
function yt() {
|
||
return { type: 'image', title: null, url: '', alt: null };
|
||
}
|
||
function Hn() {
|
||
return { type: 'link', title: null, url: '', children: [] };
|
||
}
|
||
function Nn(g) {
|
||
return { type: 'list', ordered: g.type === 'listOrdered', start: null, spread: g._spread, children: [] };
|
||
}
|
||
function St(g) {
|
||
return { type: 'listItem', spread: g._spread, checked: null, children: [] };
|
||
}
|
||
function Ft() {
|
||
return { type: 'paragraph', children: [] };
|
||
}
|
||
function Et() {
|
||
return { type: 'strong', children: [] };
|
||
}
|
||
function Ct() {
|
||
return { type: 'text', value: '' };
|
||
}
|
||
function wt() {
|
||
return { type: 'thematicBreak' };
|
||
}
|
||
}
|
||
function sn(n) {
|
||
return { line: n.line, column: n.column, offset: n.offset };
|
||
}
|
||
function xt(n, r) {
|
||
let t = -1;
|
||
for (; ++t < r.length; ) {
|
||
const e = r[t];
|
||
Array.isArray(e) ? xt(n, e) : Or(n, e);
|
||
}
|
||
}
|
||
function Or(n, r) {
|
||
let t;
|
||
for (t in r)
|
||
if (ft.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 tt(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 Dr(n) {
|
||
const r = n.replace(
|
||
/\n{2,}/g,
|
||
`
|
||
`
|
||
);
|
||
return It(r);
|
||
}
|
||
function Pr(n) {
|
||
const r = Dr(n),
|
||
{ children: t } = mt(r),
|
||
e = [[]];
|
||
let u = 0;
|
||
function i(l, a = 'normal') {
|
||
l.type === 'text'
|
||
? l.value
|
||
.split(
|
||
`
|
||
`
|
||
)
|
||
.forEach((c, p) => {
|
||
p !== 0 && (u++, e.push([])),
|
||
c.split(' ').forEach((f) => {
|
||
f && e[u].push({ content: f, type: a });
|
||
});
|
||
})
|
||
: (l.type === 'strong' || l.type === 'emphasis') &&
|
||
l.children.forEach((m) => {
|
||
i(m, l.type);
|
||
});
|
||
}
|
||
return (
|
||
t.forEach((l) => {
|
||
l.type === 'paragraph' &&
|
||
l.children.forEach((a) => {
|
||
i(a);
|
||
});
|
||
}),
|
||
e
|
||
);
|
||
}
|
||
function _r(n) {
|
||
const { children: r } = mt(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 Mr(n) {
|
||
return Intl.Segmenter ? [...new Intl.Segmenter().segment(n)].map((r) => r.segment) : [...n];
|
||
}
|
||
function jr(n, r) {
|
||
const t = Mr(r.content);
|
||
return gt(n, [], t, r.type);
|
||
}
|
||
function gt(n, r, t, e) {
|
||
if (t.length === 0)
|
||
return [
|
||
{ content: r.join(''), type: e },
|
||
{ content: '', type: e },
|
||
];
|
||
const [u, ...i] = t,
|
||
l = [...r, u];
|
||
return n([{ content: l.join(''), type: e }])
|
||
? gt(n, l, i, e)
|
||
: (r.length === 0 && u && (r.push(u), t.shift()),
|
||
[
|
||
{ content: r.join(''), type: e },
|
||
{ content: t.join(''), type: e },
|
||
]);
|
||
}
|
||
function Rr(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 i = n.shift() ?? { content: ' ', type: 'normal' },
|
||
l = [...e];
|
||
if ((u !== '' && l.push({ content: u, type: 'normal' }), l.push(i), r(l))) return Bn(n, r, t, l);
|
||
if (e.length > 0) t.push(e), n.unshift(i);
|
||
else if (i.content) {
|
||
const [a, m] = jr(r, i);
|
||
t.push([a]), m.content && n.unshift(m);
|
||
}
|
||
return Bn(n, r, t);
|
||
}
|
||
function qr(n, r) {
|
||
r && n.attr('style', r);
|
||
}
|
||
function Hr(n, r, t, e, u = !1) {
|
||
const i = n.append('foreignObject'),
|
||
l = i.append('xhtml:div'),
|
||
a = r.label,
|
||
m = r.isNode ? 'nodeLabel' : 'edgeLabel';
|
||
l.html(
|
||
`
|
||
<span class="${m} ${e}" ` +
|
||
(r.labelStyle ? 'style="' + r.labelStyle + '"' : '') +
|
||
'>' +
|
||
a +
|
||
'</span>'
|
||
),
|
||
qr(l, r.labelStyle),
|
||
l.style('display', 'table-cell'),
|
||
l.style('white-space', 'nowrap'),
|
||
l.style('max-width', t + 'px'),
|
||
l.attr('xmlns', 'http://www.w3.org/1999/xhtml'),
|
||
u && l.attr('class', 'labelBkg');
|
||
let c = l.node().getBoundingClientRect();
|
||
return (
|
||
c.width === t &&
|
||
(l.style('display', 'table'), l.style('white-space', 'break-spaces'), l.style('width', t + 'px'), (c = l.node().getBoundingClientRect())),
|
||
i.style('width', c.width),
|
||
i.style('height', c.height),
|
||
i.node()
|
||
);
|
||
}
|
||
function Pn(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 Nr(n, r, t) {
|
||
const e = n.append('text'),
|
||
u = Pn(e, 1, r);
|
||
_n(u, t);
|
||
const i = u.node().getComputedTextLength();
|
||
return e.remove(), i;
|
||
}
|
||
function Qr(n, r, t) {
|
||
var e;
|
||
const u = n.append('text'),
|
||
i = Pn(u, 1, r);
|
||
_n(i, [{ content: t, type: 'normal' }]);
|
||
const l = (e = i.node()) == null ? void 0 : e.getBoundingClientRect();
|
||
return l && u.remove(), l;
|
||
}
|
||
function Vr(n, r, t, e = !1) {
|
||
const i = r.append('g'),
|
||
l = i.insert('rect').attr('class', 'background'),
|
||
a = i.append('text').attr('y', '-10.1');
|
||
let m = 0;
|
||
for (const c of t) {
|
||
const p = (x) => Nr(i, 1.1, x) <= n,
|
||
f = p(c) ? [c] : Rr(c, p);
|
||
for (const x of f) {
|
||
const h = Pn(a, m, 1.1);
|
||
_n(h, x), m++;
|
||
}
|
||
}
|
||
if (e) {
|
||
const c = a.node().getBBox(),
|
||
p = 2;
|
||
return (
|
||
l
|
||
.attr('x', -p)
|
||
.attr('y', -p)
|
||
.attr('width', c.width + 2 * p)
|
||
.attr('height', c.height + 2 * p),
|
||
i.node()
|
||
);
|
||
} else return a.node();
|
||
}
|
||
function _n(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 Ur = (
|
||
n,
|
||
r = '',
|
||
{ style: t = '', isTitle: e = !1, classes: u = '', useHtmlLabels: i = !0, isNode: l = !0, width: a = 200, addSvgBackground: m = !1 } = {}
|
||
) => {
|
||
if ((At.info('createText', r, t, e, u, i, l, m), i)) {
|
||
const c = _r(r),
|
||
p = {
|
||
isNode: l,
|
||
label: zt(c).replace(/fa[blrs]?:fa-[\w-]+/g, (x) => `<i class='${x.replace(':', ' ')}'></i>`),
|
||
labelStyle: t.replace('fill:', 'color:'),
|
||
};
|
||
return Hr(n, p, a, u, m);
|
||
} else {
|
||
const c = Pr(r);
|
||
return Vr(a, n, c, m);
|
||
}
|
||
};
|
||
export { Ur as a, Qr as c };
|