You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
6084 lines
191 KiB
6084 lines
191 KiB
!(function () {
|
|
function s(n) {
|
|
var r = Object.create(null);
|
|
return function (e) {
|
|
var t = c(e) ? e : JSON.stringify(e);
|
|
return r[t] || (r[t] = n(e));
|
|
};
|
|
}
|
|
var o = s(function (e) {
|
|
return e.replace(/([A-Z])/g, function (e) {
|
|
return "-" + e.toLowerCase();
|
|
});
|
|
}),
|
|
l = Object.prototype.hasOwnProperty,
|
|
y =
|
|
Object.assign ||
|
|
function (e) {
|
|
for (var t = arguments, n = 1; n < arguments.length; n++) {
|
|
var r,
|
|
i = Object(t[n]);
|
|
for (r in i) l.call(i, r) && (e[r] = i[r]);
|
|
}
|
|
return e;
|
|
};
|
|
function c(e) {
|
|
return "string" == typeof e || "number" == typeof e;
|
|
}
|
|
function u() {}
|
|
function r(e) {
|
|
return "function" == typeof e;
|
|
}
|
|
function p(e) {
|
|
e = e.match(/^([^:/?#]+:)?(?:\/{2,}([^/?#]*))?([^?#]+)?(\?[^#]*)?(#.*)?/);
|
|
return (
|
|
("string" == typeof e[1] &&
|
|
0 < e[1].length &&
|
|
e[1].toLowerCase() !== location.protocol) ||
|
|
("string" == typeof e[2] &&
|
|
0 < e[2].length &&
|
|
e[2].replace(
|
|
new RegExp(
|
|
":(" + { "http:": 80, "https:": 443 }[location.protocol] + ")?$"
|
|
),
|
|
""
|
|
) !== location.host)
|
|
);
|
|
}
|
|
var h = document.body.clientWidth <= 600,
|
|
i =
|
|
window.history &&
|
|
window.history.pushState &&
|
|
window.history.replaceState &&
|
|
!navigator.userAgent.match(
|
|
/((iPod|iPhone|iPad).+\bOS\s+[1-4]\D|WebApps\/.+CFNetwork)/
|
|
),
|
|
n = {};
|
|
function d(e, t) {
|
|
if ((void 0 === t && (t = !1), "string" == typeof e)) {
|
|
if (void 0 !== window.Vue) return b(e);
|
|
e = t ? b(e) : n[e] || (n[e] = b(e));
|
|
}
|
|
return e;
|
|
}
|
|
var f = document,
|
|
g = f.body,
|
|
m = f.head;
|
|
function b(e, t) {
|
|
return t ? e.querySelector(t) : f.querySelector(e);
|
|
}
|
|
function k(e, t) {
|
|
return [].slice.call(t ? e.querySelectorAll(t) : f.querySelectorAll(e));
|
|
}
|
|
function v(e, t) {
|
|
return (e = f.createElement(e)), t && (e.innerHTML = t), e;
|
|
}
|
|
function a(e, t) {
|
|
return e.appendChild(t);
|
|
}
|
|
function w(e, t) {
|
|
return e.insertBefore(t, e.children[0]);
|
|
}
|
|
function x(e, t, n) {
|
|
r(t) ? window.addEventListener(e, t) : e.addEventListener(t, n);
|
|
}
|
|
function _(e, t, n) {
|
|
r(t) ? window.removeEventListener(e, t) : e.removeEventListener(t, n);
|
|
}
|
|
function S(e, t, n) {
|
|
e && e.classList[n ? t : "toggle"](n || t);
|
|
}
|
|
function e(e, t) {
|
|
void 0 === t && (t = document);
|
|
var n = t.readyState;
|
|
if ("complete" === n || "interactive" === n) return setTimeout(e, 0);
|
|
t.addEventListener("DOMContentLoaded", e);
|
|
}
|
|
var t = Object.freeze({
|
|
__proto__: null,
|
|
getNode: d,
|
|
$: f,
|
|
body: g,
|
|
head: m,
|
|
find: b,
|
|
findAll: k,
|
|
create: v,
|
|
appendTo: a,
|
|
before: w,
|
|
on: x,
|
|
off: _,
|
|
toggleClass: S,
|
|
style: function (e) {
|
|
a(m, v("style", e));
|
|
},
|
|
documentReady: e,
|
|
}),
|
|
A = decodeURIComponent,
|
|
T = encodeURIComponent;
|
|
function E(e) {
|
|
var t = {};
|
|
return (
|
|
(e = e.trim().replace(/^(\?|#|&)/, "")) &&
|
|
e.split("&").forEach(function (e) {
|
|
e = e.replace(/\+/g, " ").split("=");
|
|
t[e[0]] = e[1] && A(e[1]);
|
|
}),
|
|
t
|
|
);
|
|
}
|
|
function R(e, t) {
|
|
void 0 === t && (t = []);
|
|
var n,
|
|
r = [];
|
|
for (n in e)
|
|
-1 < t.indexOf(n) ||
|
|
r.push(e[n] ? (T(n) + "=" + T(e[n])).toLowerCase() : T(n));
|
|
return r.length ? "?" + r.join("&") : "";
|
|
}
|
|
var O = s(function (e) {
|
|
return /(:|(\/{2}))/g.test(e);
|
|
}),
|
|
$ = s(function (e) {
|
|
return e.split(/[?#]/)[0];
|
|
}),
|
|
F = s(function (e) {
|
|
if (/\/$/g.test(e)) return e;
|
|
e = e.match(/(\S*\/)[^/]+$/);
|
|
return e ? e[1] : "";
|
|
}),
|
|
C = s(function (e) {
|
|
return e.replace(/^\/+/, "/").replace(/([^:])\/{2,}/g, "$1/");
|
|
}),
|
|
L = s(function (e) {
|
|
for (
|
|
var t = e.replace(/^\//, "").split("/"), n = [], r = 0, i = t.length;
|
|
r < i;
|
|
r++
|
|
) {
|
|
var o = t[r];
|
|
".." === o ? n.pop() : "." !== o && n.push(o);
|
|
}
|
|
return "/" + n.join("/");
|
|
});
|
|
function z(e) {
|
|
return e
|
|
.split("/")
|
|
.filter(function (e) {
|
|
return -1 === e.indexOf("#");
|
|
})
|
|
.join("/");
|
|
}
|
|
function N() {
|
|
for (var e = [], t = arguments.length; t--; ) e[t] = arguments[t];
|
|
return C(e.map(z).join("/"));
|
|
}
|
|
var M = s(function (e) {
|
|
return e.replace("#", "?id=");
|
|
});
|
|
function D(e, t) {
|
|
return -1 !== e.indexOf(t, e.length - t.length);
|
|
}
|
|
var P = {};
|
|
var I = function (e) {
|
|
this.config = e;
|
|
};
|
|
function j(e) {
|
|
var t = location.href.indexOf("#");
|
|
location.replace(location.href.slice(0, 0 <= t ? t : 0) + "#" + e);
|
|
}
|
|
(I.prototype.getBasePath = function () {
|
|
return this.config.basePath;
|
|
}),
|
|
(I.prototype.getFile = function (e, t) {
|
|
void 0 === e && (e = this.getCurrentPath());
|
|
var n,
|
|
r,
|
|
i = this.config,
|
|
o = this.getBasePath(),
|
|
a = "string" == typeof i.ext ? i.ext : ".md";
|
|
return (
|
|
(e = i.alias
|
|
? (function e(t, n, r) {
|
|
var i = Object.keys(n).filter(function (e) {
|
|
return (
|
|
(P[e] || (P[e] = new RegExp("^" + e + "$"))).test(t) &&
|
|
t !== r
|
|
);
|
|
})[0];
|
|
return i ? e(t.replace(P[i], n[i]), n, t) : t;
|
|
})(e, i.alias)
|
|
: e),
|
|
(n = e),
|
|
(r = a),
|
|
(e =
|
|
((e = new RegExp("\\.(" + r.replace(/^\./, "") + "|html)$", "g").test(
|
|
n
|
|
)
|
|
? n
|
|
: /\/$/g.test(n)
|
|
? n + "README" + r
|
|
: "" + n + r) ===
|
|
"/README" + a &&
|
|
i.homepage) ||
|
|
e),
|
|
(e = O(e) ? e : N(o, e)),
|
|
t && (e = e.replace(new RegExp("^" + o), "")),
|
|
e
|
|
);
|
|
}),
|
|
(I.prototype.onchange = function (e) {
|
|
void 0 === e && (e = u), e();
|
|
}),
|
|
(I.prototype.getCurrentPath = function () {}),
|
|
(I.prototype.normalize = function () {}),
|
|
(I.prototype.parse = function () {}),
|
|
(I.prototype.toURL = function (e, t, n) {
|
|
var r = n && "#" === e[0],
|
|
i = this.parse(M(e));
|
|
if (
|
|
((i.query = y({}, i.query, t)),
|
|
(e = (e = i.path + R(i.query)).replace(/\.md(\?)|\.md$/, "$1")),
|
|
r && (e = (0 < (r = n.indexOf("?")) ? n.substring(0, r) : n) + e),
|
|
this.config.relativePath && 0 !== e.indexOf("/"))
|
|
) {
|
|
n = n.substring(0, n.lastIndexOf("/") + 1);
|
|
return C(L(n + e));
|
|
}
|
|
return C("/" + e);
|
|
});
|
|
var H = (function (r) {
|
|
function e(e) {
|
|
r.call(this, e), (this.mode = "hash");
|
|
}
|
|
return (
|
|
r && (e.__proto__ = r),
|
|
(((e.prototype = Object.create(r && r.prototype)).constructor =
|
|
e).prototype.getBasePath = function () {
|
|
var e = window.location.pathname || "",
|
|
t = this.config.basePath,
|
|
e = D(e, ".html") ? e + "#/" + t : e + "/" + t;
|
|
return /^(\/|https?:)/g.test(t) ? t : C(e);
|
|
}),
|
|
(e.prototype.getCurrentPath = function () {
|
|
var e = location.href,
|
|
t = e.indexOf("#");
|
|
return -1 === t ? "" : e.slice(t + 1);
|
|
}),
|
|
(e.prototype.onchange = function (n) {
|
|
void 0 === n && (n = u);
|
|
var r = !1;
|
|
x("click", function (e) {
|
|
e = "A" === e.target.tagName ? e.target : e.target.parentNode;
|
|
e && "A" === e.tagName && !/_blank/.test(e.target) && (r = !0);
|
|
}),
|
|
x("hashchange", function (e) {
|
|
var t = r ? "navigate" : "history";
|
|
(r = !1), n({ event: e, source: t });
|
|
});
|
|
}),
|
|
(e.prototype.normalize = function () {
|
|
var e = this.getCurrentPath();
|
|
if ("/" === (e = M(e)).charAt(0)) return j(e);
|
|
j("/" + e);
|
|
}),
|
|
(e.prototype.parse = function (e) {
|
|
void 0 === e && (e = location.href);
|
|
var t = "",
|
|
n = e.indexOf("#");
|
|
0 <= n && (e = e.slice(n + 1));
|
|
n = e.indexOf("?");
|
|
return (
|
|
0 <= n && ((t = e.slice(n + 1)), (e = e.slice(0, n))),
|
|
{ path: e, file: this.getFile(e, !0), query: E(t) }
|
|
);
|
|
}),
|
|
(e.prototype.toURL = function (e, t, n) {
|
|
return "#" + r.prototype.toURL.call(this, e, t, n);
|
|
}),
|
|
e
|
|
);
|
|
})(I),
|
|
q = (function (t) {
|
|
function e(e) {
|
|
t.call(this, e), (this.mode = "history");
|
|
}
|
|
return (
|
|
t && (e.__proto__ = t),
|
|
(((e.prototype = Object.create(t && t.prototype)).constructor =
|
|
e).prototype.getCurrentPath = function () {
|
|
var e = this.getBasePath(),
|
|
t = window.location.pathname;
|
|
return (
|
|
e && 0 === t.indexOf(e) && (t = t.slice(e.length)),
|
|
(t || "/") + window.location.search + window.location.hash
|
|
);
|
|
}),
|
|
(e.prototype.onchange = function (n) {
|
|
var r = this;
|
|
void 0 === n && (n = u),
|
|
x("click", function (e) {
|
|
var t = "A" === e.target.tagName ? e.target : e.target.parentNode;
|
|
t &&
|
|
"A" === t.tagName &&
|
|
!/_blank/.test(t.target) &&
|
|
(e.preventDefault(),
|
|
(t = t.href),
|
|
-1 !== r.config.crossOriginLinks.indexOf(t)
|
|
? window.open(t, "_self")
|
|
: window.history.pushState({ key: t }, "", t),
|
|
n({ event: e, source: "navigate" }));
|
|
}),
|
|
x("popstate", function (e) {
|
|
n({ event: e, source: "history" });
|
|
});
|
|
}),
|
|
(e.prototype.parse = function (e) {
|
|
void 0 === e && (e = location.href);
|
|
var t = "",
|
|
n = e.indexOf("?");
|
|
0 <= n && ((t = e.slice(n + 1)), (e = e.slice(0, n)));
|
|
var r = N(location.origin),
|
|
n = e.indexOf(r);
|
|
return (
|
|
-1 < n && (e = e.slice(n + r.length)),
|
|
{ path: e, file: this.getFile(e), query: E(t) }
|
|
);
|
|
}),
|
|
e
|
|
);
|
|
})(I),
|
|
U = {};
|
|
var B = /([^{]*?)\w(?=\})/g,
|
|
Z = {
|
|
YYYY: "getFullYear",
|
|
YY: "getYear",
|
|
MM: function (e) {
|
|
return e.getMonth() + 1;
|
|
},
|
|
DD: "getDate",
|
|
HH: "getHours",
|
|
mm: "getMinutes",
|
|
ss: "getSeconds",
|
|
fff: "getMilliseconds",
|
|
};
|
|
var G,
|
|
W = Object.hasOwnProperty,
|
|
V = Object.setPrototypeOf,
|
|
Y = Object.isFrozen,
|
|
X = Object.getPrototypeOf,
|
|
K = Object.getOwnPropertyDescriptor,
|
|
Fe = Object.freeze,
|
|
Q = Object.seal,
|
|
J = Object.create,
|
|
ee = "undefined" != typeof Reflect && Reflect,
|
|
te =
|
|
(te = ee.apply) ||
|
|
function (e, t, n) {
|
|
return e.apply(t, n);
|
|
},
|
|
Fe =
|
|
Fe ||
|
|
function (e) {
|
|
return e;
|
|
},
|
|
Q =
|
|
Q ||
|
|
function (e) {
|
|
return e;
|
|
},
|
|
ne =
|
|
(ne = ee.construct) ||
|
|
function (e, t) {
|
|
return new (Function.prototype.bind.apply(
|
|
e,
|
|
[null].concat(
|
|
(function (e) {
|
|
if (Array.isArray(e)) {
|
|
for (var t = 0, n = Array(e.length); t < e.length; t++)
|
|
n[t] = e[t];
|
|
return n;
|
|
}
|
|
return Array.from(e);
|
|
})(t)
|
|
)
|
|
))();
|
|
},
|
|
Ce = re(Array.prototype.forEach),
|
|
Le = re(Array.prototype.pop),
|
|
ze = re(Array.prototype.push),
|
|
Ne = re(String.prototype.toLowerCase),
|
|
Me = re(String.prototype.match),
|
|
De = re(String.prototype.replace),
|
|
Pe = re(String.prototype.indexOf),
|
|
Ie = re(String.prototype.trim),
|
|
je = re(RegExp.prototype.test),
|
|
He =
|
|
((G = TypeError),
|
|
function () {
|
|
for (
|
|
var e = arguments, t = arguments.length, n = Array(t), r = 0;
|
|
r < t;
|
|
r++
|
|
)
|
|
n[r] = e[r];
|
|
return ne(G, n);
|
|
});
|
|
function re(o) {
|
|
return function (e) {
|
|
for (
|
|
var t = arguments,
|
|
n = arguments.length,
|
|
r = Array(1 < n ? n - 1 : 0),
|
|
i = 1;
|
|
i < n;
|
|
i++
|
|
)
|
|
r[i - 1] = t[i];
|
|
return te(o, e, r);
|
|
};
|
|
}
|
|
function qe(e, t) {
|
|
V && V(e, null);
|
|
for (var n = t.length; n--; ) {
|
|
var r,
|
|
i = t[n];
|
|
"string" != typeof i ||
|
|
((r = Ne(i)) !== i && (Y(t) || (t[n] = r), (i = r))),
|
|
(e[i] = !0);
|
|
}
|
|
return e;
|
|
}
|
|
function Ue(e) {
|
|
var t = J(null),
|
|
n = void 0;
|
|
for (n in e) te(W, e, [n]) && (t[n] = e[n]);
|
|
return t;
|
|
}
|
|
function Be(e, t) {
|
|
for (; null !== e; ) {
|
|
var n = K(e, t);
|
|
if (n) {
|
|
if (n.get) return re(n.get);
|
|
if ("function" == typeof n.value) return re(n.value);
|
|
}
|
|
e = X(e);
|
|
}
|
|
return function (e) {
|
|
return console.warn("fallback value for", e), null;
|
|
};
|
|
}
|
|
var Ze = Fe([
|
|
"a",
|
|
"abbr",
|
|
"acronym",
|
|
"address",
|
|
"area",
|
|
"article",
|
|
"aside",
|
|
"audio",
|
|
"b",
|
|
"bdi",
|
|
"bdo",
|
|
"big",
|
|
"blink",
|
|
"blockquote",
|
|
"body",
|
|
"br",
|
|
"button",
|
|
"canvas",
|
|
"caption",
|
|
"center",
|
|
"cite",
|
|
"code",
|
|
"col",
|
|
"colgroup",
|
|
"content",
|
|
"data",
|
|
"datalist",
|
|
"dd",
|
|
"decorator",
|
|
"del",
|
|
"details",
|
|
"dfn",
|
|
"dialog",
|
|
"dir",
|
|
"div",
|
|
"dl",
|
|
"dt",
|
|
"element",
|
|
"em",
|
|
"fieldset",
|
|
"figcaption",
|
|
"figure",
|
|
"font",
|
|
"footer",
|
|
"form",
|
|
"h1",
|
|
"h2",
|
|
"h3",
|
|
"h4",
|
|
"h5",
|
|
"h6",
|
|
"head",
|
|
"header",
|
|
"hgroup",
|
|
"hr",
|
|
"html",
|
|
"i",
|
|
"img",
|
|
"input",
|
|
"ins",
|
|
"kbd",
|
|
"label",
|
|
"legend",
|
|
"li",
|
|
"main",
|
|
"map",
|
|
"mark",
|
|
"marquee",
|
|
"menu",
|
|
"menuitem",
|
|
"meter",
|
|
"nav",
|
|
"nobr",
|
|
"ol",
|
|
"optgroup",
|
|
"option",
|
|
"output",
|
|
"p",
|
|
"picture",
|
|
"pre",
|
|
"progress",
|
|
"q",
|
|
"rp",
|
|
"rt",
|
|
"ruby",
|
|
"s",
|
|
"samp",
|
|
"section",
|
|
"select",
|
|
"shadow",
|
|
"small",
|
|
"source",
|
|
"spacer",
|
|
"span",
|
|
"strike",
|
|
"strong",
|
|
"style",
|
|
"sub",
|
|
"summary",
|
|
"sup",
|
|
"table",
|
|
"tbody",
|
|
"td",
|
|
"template",
|
|
"textarea",
|
|
"tfoot",
|
|
"th",
|
|
"thead",
|
|
"time",
|
|
"tr",
|
|
"track",
|
|
"tt",
|
|
"u",
|
|
"ul",
|
|
"var",
|
|
"video",
|
|
"wbr",
|
|
]),
|
|
Ge = Fe([
|
|
"svg",
|
|
"a",
|
|
"altglyph",
|
|
"altglyphdef",
|
|
"altglyphitem",
|
|
"animatecolor",
|
|
"animatemotion",
|
|
"animatetransform",
|
|
"circle",
|
|
"clippath",
|
|
"defs",
|
|
"desc",
|
|
"ellipse",
|
|
"filter",
|
|
"font",
|
|
"g",
|
|
"glyph",
|
|
"glyphref",
|
|
"hkern",
|
|
"image",
|
|
"line",
|
|
"lineargradient",
|
|
"marker",
|
|
"mask",
|
|
"metadata",
|
|
"mpath",
|
|
"path",
|
|
"pattern",
|
|
"polygon",
|
|
"polyline",
|
|
"radialgradient",
|
|
"rect",
|
|
"stop",
|
|
"style",
|
|
"switch",
|
|
"symbol",
|
|
"text",
|
|
"textpath",
|
|
"title",
|
|
"tref",
|
|
"tspan",
|
|
"view",
|
|
"vkern",
|
|
]),
|
|
We = Fe([
|
|
"feBlend",
|
|
"feColorMatrix",
|
|
"feComponentTransfer",
|
|
"feComposite",
|
|
"feConvolveMatrix",
|
|
"feDiffuseLighting",
|
|
"feDisplacementMap",
|
|
"feDistantLight",
|
|
"feFlood",
|
|
"feFuncA",
|
|
"feFuncB",
|
|
"feFuncG",
|
|
"feFuncR",
|
|
"feGaussianBlur",
|
|
"feMerge",
|
|
"feMergeNode",
|
|
"feMorphology",
|
|
"feOffset",
|
|
"fePointLight",
|
|
"feSpecularLighting",
|
|
"feSpotLight",
|
|
"feTile",
|
|
"feTurbulence",
|
|
]),
|
|
Ve = Fe([
|
|
"animate",
|
|
"color-profile",
|
|
"cursor",
|
|
"discard",
|
|
"fedropshadow",
|
|
"feimage",
|
|
"font-face",
|
|
"font-face-format",
|
|
"font-face-name",
|
|
"font-face-src",
|
|
"font-face-uri",
|
|
"foreignobject",
|
|
"hatch",
|
|
"hatchpath",
|
|
"mesh",
|
|
"meshgradient",
|
|
"meshpatch",
|
|
"meshrow",
|
|
"missing-glyph",
|
|
"script",
|
|
"set",
|
|
"solidcolor",
|
|
"unknown",
|
|
"use",
|
|
]),
|
|
Ye = Fe([
|
|
"math",
|
|
"menclose",
|
|
"merror",
|
|
"mfenced",
|
|
"mfrac",
|
|
"mglyph",
|
|
"mi",
|
|
"mlabeledtr",
|
|
"mmultiscripts",
|
|
"mn",
|
|
"mo",
|
|
"mover",
|
|
"mpadded",
|
|
"mphantom",
|
|
"mroot",
|
|
"mrow",
|
|
"ms",
|
|
"mspace",
|
|
"msqrt",
|
|
"mstyle",
|
|
"msub",
|
|
"msup",
|
|
"msubsup",
|
|
"mtable",
|
|
"mtd",
|
|
"mtext",
|
|
"mtr",
|
|
"munder",
|
|
"munderover",
|
|
]),
|
|
Xe = Fe([
|
|
"maction",
|
|
"maligngroup",
|
|
"malignmark",
|
|
"mlongdiv",
|
|
"mscarries",
|
|
"mscarry",
|
|
"msgroup",
|
|
"mstack",
|
|
"msline",
|
|
"msrow",
|
|
"semantics",
|
|
"annotation",
|
|
"annotation-xml",
|
|
"mprescripts",
|
|
"none",
|
|
]),
|
|
Ke = Fe(["#text"]),
|
|
Qe = Fe([
|
|
"accept",
|
|
"action",
|
|
"align",
|
|
"alt",
|
|
"autocapitalize",
|
|
"autocomplete",
|
|
"autopictureinpicture",
|
|
"autoplay",
|
|
"background",
|
|
"bgcolor",
|
|
"border",
|
|
"capture",
|
|
"cellpadding",
|
|
"cellspacing",
|
|
"checked",
|
|
"cite",
|
|
"class",
|
|
"clear",
|
|
"color",
|
|
"cols",
|
|
"colspan",
|
|
"controls",
|
|
"controlslist",
|
|
"coords",
|
|
"crossorigin",
|
|
"datetime",
|
|
"decoding",
|
|
"default",
|
|
"dir",
|
|
"disabled",
|
|
"disablepictureinpicture",
|
|
"disableremoteplayback",
|
|
"download",
|
|
"draggable",
|
|
"enctype",
|
|
"enterkeyhint",
|
|
"face",
|
|
"for",
|
|
"headers",
|
|
"height",
|
|
"hidden",
|
|
"high",
|
|
"href",
|
|
"hreflang",
|
|
"id",
|
|
"inputmode",
|
|
"integrity",
|
|
"ismap",
|
|
"kind",
|
|
"label",
|
|
"lang",
|
|
"list",
|
|
"loading",
|
|
"loop",
|
|
"low",
|
|
"max",
|
|
"maxlength",
|
|
"media",
|
|
"method",
|
|
"min",
|
|
"minlength",
|
|
"multiple",
|
|
"muted",
|
|
"name",
|
|
"noshade",
|
|
"novalidate",
|
|
"nowrap",
|
|
"open",
|
|
"optimum",
|
|
"pattern",
|
|
"placeholder",
|
|
"playsinline",
|
|
"poster",
|
|
"preload",
|
|
"pubdate",
|
|
"radiogroup",
|
|
"readonly",
|
|
"rel",
|
|
"required",
|
|
"rev",
|
|
"reversed",
|
|
"role",
|
|
"rows",
|
|
"rowspan",
|
|
"spellcheck",
|
|
"scope",
|
|
"selected",
|
|
"shape",
|
|
"size",
|
|
"sizes",
|
|
"span",
|
|
"srclang",
|
|
"start",
|
|
"src",
|
|
"srcset",
|
|
"step",
|
|
"style",
|
|
"summary",
|
|
"tabindex",
|
|
"title",
|
|
"translate",
|
|
"type",
|
|
"usemap",
|
|
"valign",
|
|
"value",
|
|
"width",
|
|
"xmlns",
|
|
"slot",
|
|
]),
|
|
Je = Fe([
|
|
"accent-height",
|
|
"accumulate",
|
|
"additive",
|
|
"alignment-baseline",
|
|
"ascent",
|
|
"attributename",
|
|
"attributetype",
|
|
"azimuth",
|
|
"basefrequency",
|
|
"baseline-shift",
|
|
"begin",
|
|
"bias",
|
|
"by",
|
|
"class",
|
|
"clip",
|
|
"clippathunits",
|
|
"clip-path",
|
|
"clip-rule",
|
|
"color",
|
|
"color-interpolation",
|
|
"color-interpolation-filters",
|
|
"color-profile",
|
|
"color-rendering",
|
|
"cx",
|
|
"cy",
|
|
"d",
|
|
"dx",
|
|
"dy",
|
|
"diffuseconstant",
|
|
"direction",
|
|
"display",
|
|
"divisor",
|
|
"dur",
|
|
"edgemode",
|
|
"elevation",
|
|
"end",
|
|
"fill",
|
|
"fill-opacity",
|
|
"fill-rule",
|
|
"filter",
|
|
"filterunits",
|
|
"flood-color",
|
|
"flood-opacity",
|
|
"font-family",
|
|
"font-size",
|
|
"font-size-adjust",
|
|
"font-stretch",
|
|
"font-style",
|
|
"font-variant",
|
|
"font-weight",
|
|
"fx",
|
|
"fy",
|
|
"g1",
|
|
"g2",
|
|
"glyph-name",
|
|
"glyphref",
|
|
"gradientunits",
|
|
"gradienttransform",
|
|
"height",
|
|
"href",
|
|
"id",
|
|
"image-rendering",
|
|
"in",
|
|
"in2",
|
|
"k",
|
|
"k1",
|
|
"k2",
|
|
"k3",
|
|
"k4",
|
|
"kerning",
|
|
"keypoints",
|
|
"keysplines",
|
|
"keytimes",
|
|
"lang",
|
|
"lengthadjust",
|
|
"letter-spacing",
|
|
"kernelmatrix",
|
|
"kernelunitlength",
|
|
"lighting-color",
|
|
"local",
|
|
"marker-end",
|
|
"marker-mid",
|
|
"marker-start",
|
|
"markerheight",
|
|
"markerunits",
|
|
"markerwidth",
|
|
"maskcontentunits",
|
|
"maskunits",
|
|
"max",
|
|
"mask",
|
|
"media",
|
|
"method",
|
|
"mode",
|
|
"min",
|
|
"name",
|
|
"numoctaves",
|
|
"offset",
|
|
"operator",
|
|
"opacity",
|
|
"order",
|
|
"orient",
|
|
"orientation",
|
|
"origin",
|
|
"overflow",
|
|
"paint-order",
|
|
"path",
|
|
"pathlength",
|
|
"patterncontentunits",
|
|
"patterntransform",
|
|
"patternunits",
|
|
"points",
|
|
"preservealpha",
|
|
"preserveaspectratio",
|
|
"primitiveunits",
|
|
"r",
|
|
"rx",
|
|
"ry",
|
|
"radius",
|
|
"refx",
|
|
"refy",
|
|
"repeatcount",
|
|
"repeatdur",
|
|
"restart",
|
|
"result",
|
|
"rotate",
|
|
"scale",
|
|
"seed",
|
|
"shape-rendering",
|
|
"specularconstant",
|
|
"specularexponent",
|
|
"spreadmethod",
|
|
"startoffset",
|
|
"stddeviation",
|
|
"stitchtiles",
|
|
"stop-color",
|
|
"stop-opacity",
|
|
"stroke-dasharray",
|
|
"stroke-dashoffset",
|
|
"stroke-linecap",
|
|
"stroke-linejoin",
|
|
"stroke-miterlimit",
|
|
"stroke-opacity",
|
|
"stroke",
|
|
"stroke-width",
|
|
"style",
|
|
"surfacescale",
|
|
"systemlanguage",
|
|
"tabindex",
|
|
"targetx",
|
|
"targety",
|
|
"transform",
|
|
"text-anchor",
|
|
"text-decoration",
|
|
"text-rendering",
|
|
"textlength",
|
|
"type",
|
|
"u1",
|
|
"u2",
|
|
"unicode",
|
|
"values",
|
|
"viewbox",
|
|
"visibility",
|
|
"version",
|
|
"vert-adv-y",
|
|
"vert-origin-x",
|
|
"vert-origin-y",
|
|
"width",
|
|
"word-spacing",
|
|
"wrap",
|
|
"writing-mode",
|
|
"xchannelselector",
|
|
"ychannelselector",
|
|
"x",
|
|
"x1",
|
|
"x2",
|
|
"xmlns",
|
|
"y",
|
|
"y1",
|
|
"y2",
|
|
"z",
|
|
"zoomandpan",
|
|
]),
|
|
et = Fe([
|
|
"accent",
|
|
"accentunder",
|
|
"align",
|
|
"bevelled",
|
|
"close",
|
|
"columnsalign",
|
|
"columnlines",
|
|
"columnspan",
|
|
"denomalign",
|
|
"depth",
|
|
"dir",
|
|
"display",
|
|
"displaystyle",
|
|
"encoding",
|
|
"fence",
|
|
"frame",
|
|
"height",
|
|
"href",
|
|
"id",
|
|
"largeop",
|
|
"length",
|
|
"linethickness",
|
|
"lspace",
|
|
"lquote",
|
|
"mathbackground",
|
|
"mathcolor",
|
|
"mathsize",
|
|
"mathvariant",
|
|
"maxsize",
|
|
"minsize",
|
|
"movablelimits",
|
|
"notation",
|
|
"numalign",
|
|
"open",
|
|
"rowalign",
|
|
"rowlines",
|
|
"rowspacing",
|
|
"rowspan",
|
|
"rspace",
|
|
"rquote",
|
|
"scriptlevel",
|
|
"scriptminsize",
|
|
"scriptsizemultiplier",
|
|
"selection",
|
|
"separator",
|
|
"separators",
|
|
"stretchy",
|
|
"subscriptshift",
|
|
"supscriptshift",
|
|
"symmetric",
|
|
"voffset",
|
|
"width",
|
|
"xmlns",
|
|
]),
|
|
tt = Fe([
|
|
"xlink:href",
|
|
"xml:id",
|
|
"xlink:title",
|
|
"xml:space",
|
|
"xmlns:xlink",
|
|
]),
|
|
nt = Q(/\{\{[\s\S]*|[\s\S]*\}\}/gm),
|
|
rt = Q(/<%[\s\S]*|[\s\S]*%>/gm),
|
|
it = Q(/^data-[\-\w.\u00B7-\uFFFF]/),
|
|
ot = Q(/^aria-[\-\w]+$/),
|
|
at = Q(
|
|
/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i
|
|
),
|
|
st = Q(/^(?:\w+script|data):/i),
|
|
lt = Q(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),
|
|
ct =
|
|
"function" == typeof Symbol && "symbol" == typeof Symbol.iterator
|
|
? function (e) {
|
|
return typeof e;
|
|
}
|
|
: function (e) {
|
|
return e &&
|
|
"function" == typeof Symbol &&
|
|
e.constructor === Symbol &&
|
|
e !== Symbol.prototype
|
|
? "symbol"
|
|
: typeof e;
|
|
};
|
|
function ut(e) {
|
|
if (Array.isArray(e)) {
|
|
for (var t = 0, n = Array(e.length); t < e.length; t++) n[t] = e[t];
|
|
return n;
|
|
}
|
|
return Array.from(e);
|
|
}
|
|
var pt = function () {
|
|
return "undefined" == typeof window ? null : window;
|
|
},
|
|
ht = function (e, t) {
|
|
if (
|
|
"object" !== (void 0 === e ? "undefined" : ct(e)) ||
|
|
"function" != typeof e.createPolicy
|
|
)
|
|
return null;
|
|
var n = null,
|
|
r = "data-tt-policy-suffix";
|
|
t.currentScript &&
|
|
t.currentScript.hasAttribute(r) &&
|
|
(n = t.currentScript.getAttribute(r));
|
|
var i = "dompurify" + (n ? "#" + n : "");
|
|
try {
|
|
return e.createPolicy(i, {
|
|
createHTML: function (e) {
|
|
return e;
|
|
},
|
|
});
|
|
} catch (e) {
|
|
return (
|
|
console.warn("TrustedTypes policy " + i + " could not be created."),
|
|
null
|
|
);
|
|
}
|
|
};
|
|
var ie,
|
|
oe,
|
|
ae = (function t(e) {
|
|
function c(e) {
|
|
return t(e);
|
|
}
|
|
var s = 0 < arguments.length && void 0 !== e ? e : pt();
|
|
if (
|
|
((c.version = "2.3.1"),
|
|
(c.removed = []),
|
|
!s || !s.document || 9 !== s.document.nodeType)
|
|
)
|
|
return (c.isSupported = !1), c;
|
|
var l = s.document,
|
|
o = s.document,
|
|
u = s.DocumentFragment,
|
|
n = s.HTMLTemplateElement,
|
|
p = s.Node,
|
|
a = s.Element,
|
|
r = s.NodeFilter,
|
|
i = s.NamedNodeMap,
|
|
h = void 0 === i ? s.NamedNodeMap || s.MozNamedAttrMap : i,
|
|
d = s.Text,
|
|
f = s.Comment,
|
|
g = s.DOMParser,
|
|
e = s.trustedTypes,
|
|
i = a.prototype,
|
|
m = Be(i, "cloneNode"),
|
|
v = Be(i, "nextSibling"),
|
|
y = Be(i, "childNodes"),
|
|
b = Be(i, "parentNode");
|
|
"function" != typeof n ||
|
|
((n = o.createElement("template")).content &&
|
|
n.content.ownerDocument &&
|
|
(o = n.content.ownerDocument));
|
|
var k = ht(e, l),
|
|
w = k && ee ? k.createHTML("") : "",
|
|
x = o.implementation,
|
|
_ = o.createNodeIterator,
|
|
S = o.createDocumentFragment,
|
|
A = o.getElementsByTagName,
|
|
T = l.importNode,
|
|
E = {};
|
|
try {
|
|
E = Ue(o).documentMode ? o.documentMode : {};
|
|
} catch (e) {}
|
|
var R = {};
|
|
c.isSupported =
|
|
"function" == typeof b &&
|
|
x &&
|
|
void 0 !== x.createHTMLDocument &&
|
|
9 !== E;
|
|
function O(e) {
|
|
(ge && ge === e) ||
|
|
((e && "object" === (void 0 === e ? "undefined" : ct(e))) || (e = {}),
|
|
(e = Ue(e)),
|
|
(P = "ALLOWED_TAGS" in e ? qe({}, e.ALLOWED_TAGS) : I),
|
|
(j = "ALLOWED_ATTR" in e ? qe({}, e.ALLOWED_ATTR) : H),
|
|
(le =
|
|
"ADD_URI_SAFE_ATTR" in e ? qe(Ue(ce), e.ADD_URI_SAFE_ATTR) : ce),
|
|
(ae =
|
|
"ADD_DATA_URI_TAGS" in e ? qe(Ue(se), e.ADD_DATA_URI_TAGS) : se),
|
|
(ie = "FORBID_CONTENTS" in e ? qe({}, e.FORBID_CONTENTS) : oe),
|
|
(q = "FORBID_TAGS" in e ? qe({}, e.FORBID_TAGS) : {}),
|
|
(U = "FORBID_ATTR" in e ? qe({}, e.FORBID_ATTR) : {}),
|
|
($ = "USE_PROFILES" in e && e.USE_PROFILES),
|
|
(B = !1 !== e.ALLOW_ARIA_ATTR),
|
|
(Z = !1 !== e.ALLOW_DATA_ATTR),
|
|
(G = e.ALLOW_UNKNOWN_PROTOCOLS || !1),
|
|
(W = e.SAFE_FOR_TEMPLATES || !1),
|
|
(V = e.WHOLE_DOCUMENT || !1),
|
|
(K = e.RETURN_DOM || !1),
|
|
(Q = e.RETURN_DOM_FRAGMENT || !1),
|
|
(J = !1 !== e.RETURN_DOM_IMPORT),
|
|
(ee = e.RETURN_TRUSTED_TYPE || !1),
|
|
(X = e.FORCE_BODY || !1),
|
|
(te = !1 !== e.SANITIZE_DOM),
|
|
(ne = !1 !== e.KEEP_CONTENT),
|
|
(re = e.IN_PLACE || !1),
|
|
(D = e.ALLOWED_URI_REGEXP || D),
|
|
(de = e.NAMESPACE || he),
|
|
W && (Z = !1),
|
|
Q && (K = !0),
|
|
$ &&
|
|
((P = qe({}, [].concat(ut(Ke)))),
|
|
(j = []),
|
|
!0 === $.html && (qe(P, Ze), qe(j, Qe)),
|
|
!0 === $.svg && (qe(P, Ge), qe(j, Je), qe(j, tt)),
|
|
!0 === $.svgFilters && (qe(P, We), qe(j, Je), qe(j, tt)),
|
|
!0 === $.mathMl && (qe(P, Ye), qe(j, et), qe(j, tt))),
|
|
e.ADD_TAGS && (P === I && (P = Ue(P)), qe(P, e.ADD_TAGS)),
|
|
e.ADD_ATTR && (j === H && (j = Ue(j)), qe(j, e.ADD_ATTR)),
|
|
e.ADD_URI_SAFE_ATTR && qe(le, e.ADD_URI_SAFE_ATTR),
|
|
e.FORBID_CONTENTS &&
|
|
(ie === oe && (ie = Ue(ie)), qe(ie, e.FORBID_CONTENTS)),
|
|
ne && (P["#text"] = !0),
|
|
V && qe(P, ["html", "head", "body"]),
|
|
P.table && (qe(P, ["tbody"]), delete q.tbody),
|
|
Fe && Fe(e),
|
|
(ge = e));
|
|
}
|
|
var $,
|
|
F = nt,
|
|
C = rt,
|
|
L = it,
|
|
z = ot,
|
|
N = st,
|
|
M = lt,
|
|
D = at,
|
|
P = null,
|
|
I = qe({}, [].concat(ut(Ze), ut(Ge), ut(We), ut(Ye), ut(Ke))),
|
|
j = null,
|
|
H = qe({}, [].concat(ut(Qe), ut(Je), ut(et), ut(tt))),
|
|
q = null,
|
|
U = null,
|
|
B = !0,
|
|
Z = !0,
|
|
G = !1,
|
|
W = !1,
|
|
V = !1,
|
|
Y = !1,
|
|
X = !1,
|
|
K = !1,
|
|
Q = !1,
|
|
J = !0,
|
|
ee = !1,
|
|
te = !0,
|
|
ne = !0,
|
|
re = !1,
|
|
ie = null,
|
|
oe = qe({}, [
|
|
"annotation-xml",
|
|
"audio",
|
|
"colgroup",
|
|
"desc",
|
|
"foreignobject",
|
|
"head",
|
|
"iframe",
|
|
"math",
|
|
"mi",
|
|
"mn",
|
|
"mo",
|
|
"ms",
|
|
"mtext",
|
|
"noembed",
|
|
"noframes",
|
|
"noscript",
|
|
"plaintext",
|
|
"script",
|
|
"style",
|
|
"svg",
|
|
"template",
|
|
"thead",
|
|
"title",
|
|
"video",
|
|
"xmp",
|
|
]),
|
|
ae = null,
|
|
se = qe({}, ["audio", "video", "img", "source", "image", "track"]),
|
|
le = null,
|
|
ce = qe({}, [
|
|
"alt",
|
|
"class",
|
|
"for",
|
|
"id",
|
|
"label",
|
|
"name",
|
|
"pattern",
|
|
"placeholder",
|
|
"role",
|
|
"summary",
|
|
"title",
|
|
"value",
|
|
"style",
|
|
"xmlns",
|
|
]),
|
|
ue = "http://www.w3.org/1998/Math/MathML",
|
|
pe = "http://www.w3.org/2000/svg",
|
|
he = "http://www.w3.org/1999/xhtml",
|
|
de = he,
|
|
fe = !1,
|
|
ge = null,
|
|
me = o.createElement("form"),
|
|
ve = qe({}, ["mi", "mo", "mn", "ms", "mtext"]),
|
|
ye = qe({}, ["foreignobject", "desc", "title", "annotation-xml"]),
|
|
be = qe({}, Ge);
|
|
qe(be, We), qe(be, Ve);
|
|
var ke = qe({}, Ye);
|
|
qe(ke, Xe);
|
|
function we(t) {
|
|
ze(c.removed, { element: t });
|
|
try {
|
|
t.parentNode.removeChild(t);
|
|
} catch (e) {
|
|
try {
|
|
t.outerHTML = w;
|
|
} catch (e) {
|
|
t.remove();
|
|
}
|
|
}
|
|
}
|
|
function xe(e, t) {
|
|
try {
|
|
ze(c.removed, { attribute: t.getAttributeNode(e), from: t });
|
|
} catch (e) {
|
|
ze(c.removed, { attribute: null, from: t });
|
|
}
|
|
if ((t.removeAttribute(e), "is" === e && !j[e]))
|
|
if (K || Q)
|
|
try {
|
|
we(t);
|
|
} catch (e) {}
|
|
else
|
|
try {
|
|
t.setAttribute(e, "");
|
|
} catch (e) {}
|
|
}
|
|
function _e(e) {
|
|
var t = void 0,
|
|
n = void 0;
|
|
X
|
|
? (e = "<remove></remove>" + e)
|
|
: (n = (i = Me(e, /^[\r\n\t ]+/)) && i[0]);
|
|
var r = k ? k.createHTML(e) : e;
|
|
if (de === he)
|
|
try {
|
|
t = new g().parseFromString(r, "text/html");
|
|
} catch (e) {}
|
|
if (!t || !t.documentElement) {
|
|
t = x.createDocument(de, "template", null);
|
|
try {
|
|
t.documentElement.innerHTML = fe ? "" : r;
|
|
} catch (e) {}
|
|
}
|
|
var i = t.body || t.documentElement;
|
|
return (
|
|
e &&
|
|
n &&
|
|
i.insertBefore(o.createTextNode(n), i.childNodes[0] || null),
|
|
de === he
|
|
? A.call(t, V ? "html" : "body")[0]
|
|
: V
|
|
? t.documentElement
|
|
: i
|
|
);
|
|
}
|
|
function Se(e) {
|
|
return _.call(
|
|
e.ownerDocument || e,
|
|
e,
|
|
r.SHOW_ELEMENT | r.SHOW_COMMENT | r.SHOW_TEXT,
|
|
null,
|
|
!1
|
|
);
|
|
}
|
|
function Ae(e) {
|
|
return "object" === (void 0 === p ? "undefined" : ct(p))
|
|
? e instanceof p
|
|
: e &&
|
|
"object" === (void 0 === e ? "undefined" : ct(e)) &&
|
|
"number" == typeof e.nodeType &&
|
|
"string" == typeof e.nodeName;
|
|
}
|
|
function Te(e, t, n) {
|
|
R[e] &&
|
|
Ce(R[e], function (e) {
|
|
e.call(c, t, n, ge);
|
|
});
|
|
}
|
|
function Ee(e) {
|
|
var t;
|
|
if (
|
|
(Te("beforeSanitizeElements", e, null),
|
|
!(
|
|
(n = e) instanceof d ||
|
|
n instanceof f ||
|
|
("string" == typeof n.nodeName &&
|
|
"string" == typeof n.textContent &&
|
|
"function" == typeof n.removeChild &&
|
|
n.attributes instanceof h &&
|
|
"function" == typeof n.removeAttribute &&
|
|
"function" == typeof n.setAttribute &&
|
|
"string" == typeof n.namespaceURI &&
|
|
"function" == typeof n.insertBefore)
|
|
))
|
|
)
|
|
return we(e), 1;
|
|
if (Me(e.nodeName, /[\u0080-\uFFFF]/)) return we(e), 1;
|
|
var n = Ne(e.nodeName);
|
|
if (
|
|
(Te("uponSanitizeElement", e, { tagName: n, allowedTags: P }),
|
|
!Ae(e.firstElementChild) &&
|
|
(!Ae(e.content) || !Ae(e.content.firstElementChild)) &&
|
|
je(/<[/\w]/g, e.innerHTML) &&
|
|
je(/<[/\w]/g, e.textContent))
|
|
)
|
|
return we(e), 1;
|
|
if ("select" === n && je(/<template/i, e.innerHTML)) return we(e), 1;
|
|
if (P[n] && !q[n])
|
|
return (e instanceof a &&
|
|
!(function (e) {
|
|
var t = b(e);
|
|
(t && t.tagName) ||
|
|
(t = { namespaceURI: he, tagName: "template" });
|
|
var n = Ne(e.tagName),
|
|
r = Ne(t.tagName);
|
|
return e.namespaceURI === pe
|
|
? t.namespaceURI === he
|
|
? "svg" === n
|
|
: t.namespaceURI === ue
|
|
? "svg" === n && ("annotation-xml" === r || ve[r])
|
|
: Boolean(be[n])
|
|
: e.namespaceURI === ue
|
|
? t.namespaceURI === he
|
|
? "math" === n
|
|
: t.namespaceURI === pe
|
|
? "math" === n && ye[r]
|
|
: Boolean(ke[n])
|
|
: e.namespaceURI === he &&
|
|
(t.namespaceURI !== pe || ye[r]) &&
|
|
(t.namespaceURI !== ue || ve[r]) &&
|
|
((r = qe({}, ["title", "style", "font", "a", "script"])),
|
|
!ke[n] && (r[n] || !be[n]));
|
|
})(e)) ||
|
|
(("noscript" === n || "noembed" === n) &&
|
|
je(/<\/no(script|embed)/i, e.innerHTML))
|
|
? (we(e), 1)
|
|
: (W &&
|
|
3 === e.nodeType &&
|
|
((t = e.textContent),
|
|
(t = De(t, F, " ")),
|
|
(t = De(t, C, " ")),
|
|
e.textContent !== t &&
|
|
(ze(c.removed, { element: e.cloneNode() }),
|
|
(e.textContent = t))),
|
|
Te("afterSanitizeElements", e, null),
|
|
0);
|
|
if (ne && !ie[n]) {
|
|
var r = b(e) || e.parentNode,
|
|
i = y(e) || e.childNodes;
|
|
if (i && r)
|
|
for (var o = i.length - 1; 0 <= o; --o)
|
|
r.insertBefore(m(i[o], !0), v(e));
|
|
}
|
|
return we(e), 1;
|
|
}
|
|
function Re(e, t, n) {
|
|
if (te && ("id" === t || "name" === t) && (n in o || n in me))
|
|
return !1;
|
|
if ((!Z || U[t] || !je(L, t)) && (!B || !je(z, t))) {
|
|
if (!j[t] || U[t]) return !1;
|
|
if (
|
|
!le[t] &&
|
|
!je(D, De(n, M, "")) &&
|
|
(("src" !== t && "xlink:href" !== t && "href" !== t) ||
|
|
"script" === e ||
|
|
0 !== Pe(n, "data:") ||
|
|
!ae[e]) &&
|
|
(!G || je(N, De(n, M, ""))) &&
|
|
n
|
|
)
|
|
return !1;
|
|
}
|
|
return !0;
|
|
}
|
|
function Oe(e) {
|
|
var t = void 0,
|
|
n = void 0;
|
|
Te("beforeSanitizeAttributes", e, null);
|
|
var r = e.attributes;
|
|
if (r) {
|
|
for (
|
|
var i = {
|
|
attrName: "",
|
|
attrValue: "",
|
|
keepAttr: !0,
|
|
allowedAttributes: j,
|
|
},
|
|
n = r.length;
|
|
n--;
|
|
|
|
) {
|
|
var o = (l = r[n]).name,
|
|
a = l.namespaceURI,
|
|
t = Ie(l.value),
|
|
s = Ne(o);
|
|
if (
|
|
((i.attrName = s),
|
|
(i.attrValue = t),
|
|
(i.keepAttr = !0),
|
|
(i.forceKeepAttr = void 0),
|
|
Te("uponSanitizeAttribute", e, i),
|
|
(t = i.attrValue),
|
|
!i.forceKeepAttr && (xe(o, e), i.keepAttr))
|
|
)
|
|
if (je(/\/>/i, t)) xe(o, e);
|
|
else {
|
|
W && ((t = De(t, F, " ")), (t = De(t, C, " ")));
|
|
var l = e.nodeName.toLowerCase();
|
|
if (Re(l, s, t))
|
|
try {
|
|
a ? e.setAttributeNS(a, o, t) : e.setAttribute(o, t),
|
|
Le(c.removed);
|
|
} catch (e) {}
|
|
}
|
|
}
|
|
Te("afterSanitizeAttributes", e, null);
|
|
}
|
|
}
|
|
function $e(e) {
|
|
var t,
|
|
n = Se(e);
|
|
for (Te("beforeSanitizeShadowDOM", e, null); (t = n.nextNode()); )
|
|
Te("uponSanitizeShadowNode", t, null),
|
|
Ee(t) || (t.content instanceof u && $e(t.content), Oe(t));
|
|
Te("afterSanitizeShadowDOM", e, null);
|
|
}
|
|
return (
|
|
(c.sanitize = function (e, t) {
|
|
var n,
|
|
r = void 0,
|
|
i = void 0,
|
|
o = void 0;
|
|
if (
|
|
((fe = !e) && (e = "\x3c!--\x3e"), "string" != typeof e && !Ae(e))
|
|
) {
|
|
if ("function" != typeof e.toString)
|
|
throw He("toString is not a function");
|
|
if ("string" != typeof (e = e.toString()))
|
|
throw He("dirty is not a string, aborting");
|
|
}
|
|
if (!c.isSupported) {
|
|
if (
|
|
"object" === ct(s.toStaticHTML) ||
|
|
"function" == typeof s.toStaticHTML
|
|
) {
|
|
if ("string" == typeof e) return s.toStaticHTML(e);
|
|
if (Ae(e)) return s.toStaticHTML(e.outerHTML);
|
|
}
|
|
return e;
|
|
}
|
|
if (
|
|
(Y || O(t),
|
|
(c.removed = []),
|
|
"string" == typeof e && (re = !1),
|
|
!re)
|
|
)
|
|
if (e instanceof p)
|
|
(1 ===
|
|
(t = (r = _e("\x3c!----\x3e")).ownerDocument.importNode(e, !0))
|
|
.nodeType &&
|
|
"BODY" === t.nodeName) ||
|
|
"HTML" === t.nodeName
|
|
? (r = t)
|
|
: r.appendChild(t);
|
|
else {
|
|
if (!K && !W && !V && -1 === e.indexOf("<"))
|
|
return k && ee ? k.createHTML(e) : e;
|
|
if (!(r = _e(e))) return K ? null : w;
|
|
}
|
|
r && X && we(r.firstChild);
|
|
for (var a = Se(re ? e : r); (n = a.nextNode()); )
|
|
(3 === n.nodeType && n === i) ||
|
|
Ee(n) ||
|
|
(n.content instanceof u && $e(n.content), Oe(n), (i = n));
|
|
if (((i = null), re)) return e;
|
|
if (K) {
|
|
if (Q)
|
|
for (o = S.call(r.ownerDocument); r.firstChild; )
|
|
o.appendChild(r.firstChild);
|
|
else o = r;
|
|
return J && (o = T.call(l, o, !0)), o;
|
|
}
|
|
return (
|
|
(e = V ? r.outerHTML : r.innerHTML),
|
|
W && ((e = De(e, F, " ")), (e = De(e, C, " "))),
|
|
k && ee ? k.createHTML(e) : e
|
|
);
|
|
}),
|
|
(c.setConfig = function (e) {
|
|
O(e), (Y = !0);
|
|
}),
|
|
(c.clearConfig = function () {
|
|
(ge = null), (Y = !1);
|
|
}),
|
|
(c.isValidAttribute = function (e, t, n) {
|
|
return ge || O({}), (e = Ne(e)), (t = Ne(t)), Re(e, t, n);
|
|
}),
|
|
(c.addHook = function (e, t) {
|
|
"function" == typeof t && ((R[e] = R[e] || []), ze(R[e], t));
|
|
}),
|
|
(c.removeHook = function (e) {
|
|
R[e] && Le(R[e]);
|
|
}),
|
|
(c.removeHooks = function (e) {
|
|
R[e] && (R[e] = []);
|
|
}),
|
|
(c.removeAllHooks = function () {
|
|
R = {};
|
|
}),
|
|
c
|
|
);
|
|
})();
|
|
function se(e) {
|
|
var t,
|
|
n = e.loaded,
|
|
r = e.total,
|
|
i = e.step;
|
|
ie || ((e = v("div")).classList.add("progress"), a(g, e), (ie = e)),
|
|
(t = i
|
|
? 80 < (t = parseInt(ie.style.width || 0, 10) + i)
|
|
? 80
|
|
: t
|
|
: Math.floor((n / r) * 100)),
|
|
(ie.style.opacity = 1),
|
|
(ie.style.width = 95 <= t ? "100%" : t + "%"),
|
|
95 <= t &&
|
|
(clearTimeout(oe),
|
|
(oe = setTimeout(function (e) {
|
|
(ie.style.opacity = 0), (ie.style.width = "0%");
|
|
}, 200)));
|
|
}
|
|
var le = {};
|
|
function ce(i, e, t) {
|
|
void 0 === e && (e = !1), void 0 === t && (t = {});
|
|
function o() {
|
|
a.addEventListener.apply(a, arguments);
|
|
}
|
|
var n,
|
|
a = new XMLHttpRequest(),
|
|
r = le[i];
|
|
if (r)
|
|
return {
|
|
then: function (e) {
|
|
return e(r.content, r.opt);
|
|
},
|
|
abort: u,
|
|
};
|
|
for (n in (a.open("GET", i), t))
|
|
l.call(t, n) && a.setRequestHeader(n, t[n]);
|
|
return (
|
|
a.send(),
|
|
{
|
|
then: function (t, n) {
|
|
var r;
|
|
void 0 === n && (n = u),
|
|
e &&
|
|
((r = setInterval(function (e) {
|
|
return se({ step: Math.floor(5 * Math.random() + 1) });
|
|
}, 500)),
|
|
o("progress", se),
|
|
o("loadend", function (e) {
|
|
se(e), clearInterval(r);
|
|
})),
|
|
o("error", n),
|
|
o("load", function (e) {
|
|
e = e.target;
|
|
400 <= e.status
|
|
? n(e)
|
|
: ((e = le[i] =
|
|
{
|
|
content: e.response,
|
|
opt: { updatedAt: a.getResponseHeader("last-modified") },
|
|
}),
|
|
t(e.content, e.opt));
|
|
});
|
|
},
|
|
abort: function (e) {
|
|
return 4 !== a.readyState && a.abort();
|
|
},
|
|
}
|
|
);
|
|
}
|
|
function ue(e, t) {
|
|
e.innerHTML = e.innerHTML.replace(/var\(\s*--theme-color.*?\)/g, t);
|
|
}
|
|
var pe = f.title;
|
|
function he() {
|
|
var e,
|
|
t = d("section.cover");
|
|
t &&
|
|
((e = t.getBoundingClientRect().height),
|
|
window.pageYOffset >= e || t.classList.contains("hidden")
|
|
? S(g, "add", "sticky")
|
|
: S(g, "remove", "sticky"));
|
|
}
|
|
function de(e, t, r, n) {
|
|
var i = [];
|
|
null != (t = d(t)) && (i = k(t, "a"));
|
|
var o,
|
|
a = decodeURI(e.toURL(e.getCurrentPath()));
|
|
return (
|
|
i
|
|
.sort(function (e, t) {
|
|
return t.href.length - e.href.length;
|
|
})
|
|
.forEach(function (e) {
|
|
var t = decodeURI(e.getAttribute("href")),
|
|
n = r ? e.parentNode : e;
|
|
(e.title = e.title || e.innerText),
|
|
0 !== a.indexOf(t) || o
|
|
? S(n, "remove", "active")
|
|
: ((o = e), S(n, "add", "active"));
|
|
}),
|
|
n && (f.title = o ? o.title || o.innerText + " - " + pe : pe),
|
|
o
|
|
);
|
|
}
|
|
function fe(e, t) {
|
|
for (var n = 0; n < t.length; n++) {
|
|
var r = t[n];
|
|
(r.enumerable = r.enumerable || !1),
|
|
(r.configurable = !0),
|
|
"value" in r && (r.writable = !0),
|
|
Object.defineProperty(e, r.key, r);
|
|
}
|
|
}
|
|
var ge =
|
|
((function (e, t, n) {
|
|
return t && fe(e.prototype, t), n && fe(e, n), e;
|
|
})(me, [
|
|
{
|
|
key: "getIntermediateValue",
|
|
value: function (e) {
|
|
return this.decimal ? e : Math.round(e);
|
|
},
|
|
},
|
|
{
|
|
key: "getFinalValue",
|
|
value: function () {
|
|
return this.end;
|
|
},
|
|
},
|
|
]),
|
|
me);
|
|
function me() {
|
|
var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : {};
|
|
!(function (e, t) {
|
|
if (!(e instanceof t))
|
|
throw new TypeError("Cannot call a class as a function");
|
|
})(this, me),
|
|
(this.start = e.start),
|
|
(this.end = e.end),
|
|
(this.decimal = e.decimal);
|
|
}
|
|
function ve(e, t) {
|
|
for (var n = 0; n < t.length; n++) {
|
|
var r = t[n];
|
|
(r.enumerable = r.enumerable || !1),
|
|
(r.configurable = !0),
|
|
"value" in r && (r.writable = !0),
|
|
Object.defineProperty(e, r.key, r);
|
|
}
|
|
}
|
|
var ye =
|
|
((function (e, t, n) {
|
|
return t && ve(e.prototype, t), n && ve(e, n), e;
|
|
})(be, [
|
|
{
|
|
key: "begin",
|
|
value: function () {
|
|
return (
|
|
this.isRunning ||
|
|
this.next === this.end ||
|
|
(this.frame = window.requestAnimationFrame(
|
|
this._tick.bind(this)
|
|
)),
|
|
this
|
|
);
|
|
},
|
|
},
|
|
{
|
|
key: "stop",
|
|
value: function () {
|
|
return (
|
|
window.cancelAnimationFrame(this.frame),
|
|
(this.isRunning = !1),
|
|
(this.frame = null),
|
|
(this.timeStart = null),
|
|
(this.next = null),
|
|
this
|
|
);
|
|
},
|
|
},
|
|
{
|
|
key: "on",
|
|
value: function (e, t) {
|
|
return (
|
|
(this.events[e] = this.events[e] || []),
|
|
this.events[e].push(t),
|
|
this
|
|
);
|
|
},
|
|
},
|
|
{
|
|
key: "_emit",
|
|
value: function (e, t) {
|
|
var n = this,
|
|
e = this.events[e];
|
|
e &&
|
|
e.forEach(function (e) {
|
|
return e.call(n, t);
|
|
});
|
|
},
|
|
},
|
|
{
|
|
key: "_tick",
|
|
value: function (e) {
|
|
this.isRunning = !0;
|
|
var t = this.next || this.start;
|
|
this.timeStart || (this.timeStart = e),
|
|
(this.timeElapsed = e - this.timeStart),
|
|
(this.next = this.ease(
|
|
this.timeElapsed,
|
|
this.start,
|
|
this.end - this.start,
|
|
this.duration
|
|
)),
|
|
this._shouldTick(t)
|
|
? (this._emit(
|
|
"tick",
|
|
this.tweener.getIntermediateValue(this.next)
|
|
),
|
|
(this.frame = window.requestAnimationFrame(
|
|
this._tick.bind(this)
|
|
)))
|
|
: (this._emit("tick", this.tweener.getFinalValue()),
|
|
this._emit("done", null));
|
|
},
|
|
},
|
|
{
|
|
key: "_shouldTick",
|
|
value: function (e) {
|
|
return {
|
|
up: this.next < this.end && e <= this.next,
|
|
down: this.next > this.end && e >= this.next,
|
|
}[this.direction];
|
|
},
|
|
},
|
|
{
|
|
key: "_defaultEase",
|
|
value: function (e, t, n, r) {
|
|
return (e /= r / 2) < 1
|
|
? (n / 2) * e * e + t
|
|
: (-n / 2) * (--e * (e - 2) - 1) + t;
|
|
},
|
|
},
|
|
]),
|
|
be);
|
|
function be() {
|
|
var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : {};
|
|
!(function (e, t) {
|
|
if (!(e instanceof t))
|
|
throw new TypeError("Cannot call a class as a function");
|
|
})(this, be),
|
|
(this.duration = e.duration || 1e3),
|
|
(this.ease = e.easing || this._defaultEase),
|
|
(this.tweener = e.tweener || new ge(e)),
|
|
(this.start = this.tweener.start),
|
|
(this.end = this.tweener.end),
|
|
(this.frame = null),
|
|
(this.next = null),
|
|
(this.isRunning = !1),
|
|
(this.events = {}),
|
|
(this.direction = this.start < this.end ? "up" : "down");
|
|
}
|
|
var ke = document.currentScript;
|
|
function we(e) {
|
|
var t,
|
|
n = y(
|
|
{
|
|
el: "#app",
|
|
repo: "",
|
|
maxLevel: 6,
|
|
subMaxLevel: 0,
|
|
loadSidebar: null,
|
|
loadNavbar: null,
|
|
homepage: "README.md",
|
|
coverpage: "",
|
|
basePath: "",
|
|
auto2top: !1,
|
|
name: "",
|
|
themeColor: "",
|
|
nameLink: window.location.pathname,
|
|
autoHeader: !1,
|
|
executeScript: null,
|
|
noEmoji: !1,
|
|
ga: "",
|
|
ext: ".md",
|
|
mergeNavbar: !1,
|
|
formatUpdated: "",
|
|
externalLinkTarget: "_blank",
|
|
cornerExternalLinkTarget: "_blank",
|
|
externalLinkRel: "noopener",
|
|
routerMode: "hash",
|
|
noCompileLinks: [],
|
|
crossOriginLinks: [],
|
|
relativePath: !1,
|
|
topMargin: 0,
|
|
},
|
|
"function" == typeof window.$docsify
|
|
? window.$docsify(e)
|
|
: window.$docsify
|
|
),
|
|
r =
|
|
ke ||
|
|
[].slice
|
|
.call(document.getElementsByTagName("script"))
|
|
.filter(function (e) {
|
|
return /docsify\./.test(e.src);
|
|
})[0];
|
|
if (r)
|
|
for (var i in n) {
|
|
!l.call(n, i) ||
|
|
(c((t = r.getAttribute("data-" + o(i)))) && (n[i] = "" === t || t));
|
|
}
|
|
return (
|
|
!0 === n.loadSidebar && (n.loadSidebar = "_sidebar" + n.ext),
|
|
!0 === n.loadNavbar && (n.loadNavbar = "_navbar" + n.ext),
|
|
!0 === n.coverpage && (n.coverpage = "_coverpage" + n.ext),
|
|
!0 === n.repo && (n.repo = ""),
|
|
!0 === n.name && (n.name = ""),
|
|
(window.$docsify = n)
|
|
);
|
|
}
|
|
var xe = {},
|
|
_e = !1,
|
|
Se = null,
|
|
Ae = !0,
|
|
Te = 0;
|
|
function Ee(e) {
|
|
if (Ae) {
|
|
for (
|
|
var t,
|
|
n,
|
|
r = d(".sidebar"),
|
|
i = k(".anchor"),
|
|
o = b(r, ".sidebar-nav"),
|
|
a = b(r, "li.active"),
|
|
s = document.documentElement,
|
|
l = ((s && s.scrollTop) || document.body.scrollTop) - Te,
|
|
c = 0,
|
|
u = i.length;
|
|
c < u;
|
|
c += 1
|
|
) {
|
|
var p = i[c];
|
|
if (p.offsetTop > l) {
|
|
t = t || p;
|
|
break;
|
|
}
|
|
t = p;
|
|
}
|
|
!t ||
|
|
((n = xe[Re(e, t.getAttribute("data-id"))]) &&
|
|
n !== a &&
|
|
(a && a.classList.remove("active"),
|
|
n.classList.add("active"),
|
|
(a = n),
|
|
!_e &&
|
|
g.classList.contains("sticky") &&
|
|
((s = r.clientHeight),
|
|
(e = a.offsetTop + a.clientHeight + 40),
|
|
(n = a.offsetTop >= o.scrollTop && e <= o.scrollTop + s),
|
|
(a = +e < s),
|
|
(r.scrollTop = n ? o.scrollTop : a ? 0 : e - s))));
|
|
}
|
|
}
|
|
function Re(e, t) {
|
|
return decodeURIComponent(e) + "?id=" + decodeURIComponent(t);
|
|
}
|
|
function Oe(e, t) {
|
|
var n, r;
|
|
t &&
|
|
((r = we().topMargin),
|
|
(n = b("#" + t)) &&
|
|
((n = n),
|
|
void 0 === (r = r) && (r = 0),
|
|
Se && Se.stop(),
|
|
(Ae = !1),
|
|
(Se = new ye({
|
|
start: window.pageYOffset,
|
|
end:
|
|
Math.round(n.getBoundingClientRect().top) + window.pageYOffset - r,
|
|
duration: 500,
|
|
})
|
|
.on("tick", function (e) {
|
|
return window.scrollTo(0, e);
|
|
})
|
|
.on("done", function () {
|
|
(Ae = !0), (Se = null);
|
|
})
|
|
.begin())),
|
|
(e = xe[Re(e, t)]),
|
|
(t = b(d(".sidebar"), "li.active")) && t.classList.remove("active"),
|
|
e && e.classList.add("active"));
|
|
}
|
|
var $e = f.scrollingElement || f.documentElement;
|
|
var dt =
|
|
"undefined" != typeof globalThis
|
|
? globalThis
|
|
: "undefined" != typeof window
|
|
? window
|
|
: "undefined" != typeof global
|
|
? global
|
|
: "undefined" != typeof self
|
|
? self
|
|
: {};
|
|
function ft(e, t) {
|
|
return e((t = { exports: {} }), t.exports), t.exports;
|
|
}
|
|
function gt(e) {
|
|
return wt[e];
|
|
}
|
|
var mt = ft(function (t) {
|
|
function e() {
|
|
return {
|
|
baseUrl: null,
|
|
breaks: !1,
|
|
gfm: !0,
|
|
headerIds: !0,
|
|
headerPrefix: "",
|
|
highlight: null,
|
|
langPrefix: "language-",
|
|
mangle: !0,
|
|
pedantic: !1,
|
|
renderer: null,
|
|
sanitize: !1,
|
|
sanitizer: null,
|
|
silent: !1,
|
|
smartLists: !1,
|
|
smartypants: !1,
|
|
tokenizer: null,
|
|
walkTokens: null,
|
|
xhtml: !1,
|
|
};
|
|
}
|
|
t.exports = {
|
|
defaults: e(),
|
|
getDefaults: e,
|
|
changeDefaults: function (e) {
|
|
t.exports.defaults = e;
|
|
},
|
|
};
|
|
}),
|
|
vt = (mt.defaults, mt.getDefaults, mt.changeDefaults, /[&<>"']/),
|
|
yt = /[&<>"']/g,
|
|
bt = /[<>"']|&(?!#?\w+;)/,
|
|
kt = /[<>"']|&(?!#?\w+;)/g,
|
|
wt = {
|
|
"&": "&",
|
|
"<": "<",
|
|
">": ">",
|
|
'"': """,
|
|
"'": "'",
|
|
};
|
|
var xt = /&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi;
|
|
function _t(e) {
|
|
return e.replace(xt, function (e, t) {
|
|
return "colon" === (t = t.toLowerCase())
|
|
? ":"
|
|
: "#" === t.charAt(0)
|
|
? "x" === t.charAt(1)
|
|
? String.fromCharCode(parseInt(t.substring(2), 16))
|
|
: String.fromCharCode(+t.substring(1))
|
|
: "";
|
|
});
|
|
}
|
|
var St = /(^|[^\[])\^/g;
|
|
var At = /[^\w:]/g,
|
|
Tt = /^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;
|
|
var Et = {},
|
|
Rt = /^[^:]+:\/*[^/]*$/,
|
|
Ot = /^([^:]+:)[\s\S]*$/,
|
|
$t = /^([^:]+:\/*[^/]*)[\s\S]*$/;
|
|
function Ft(e, t) {
|
|
Et[" " + e] ||
|
|
(Rt.test(e) ? (Et[" " + e] = e + "/") : (Et[" " + e] = Ct(e, "/", !0)));
|
|
var n = -1 === (e = Et[" " + e]).indexOf(":");
|
|
return "//" === t.substring(0, 2)
|
|
? n
|
|
? t
|
|
: e.replace(Ot, "$1") + t
|
|
: "/" === t.charAt(0)
|
|
? n
|
|
? t
|
|
: e.replace($t, "$1") + t
|
|
: e + t;
|
|
}
|
|
function Ct(e, t, n) {
|
|
var r = e.length;
|
|
if (0 === r) return "";
|
|
for (var i = 0; i < r; ) {
|
|
var o = e.charAt(r - i - 1);
|
|
if (o !== t || n) {
|
|
if (o === t || !n) break;
|
|
i++;
|
|
} else i++;
|
|
}
|
|
return e.substr(0, r - i);
|
|
}
|
|
var Lt = function (e, t) {
|
|
if (t) {
|
|
if (vt.test(e)) return e.replace(yt, gt);
|
|
} else if (bt.test(e)) return e.replace(kt, gt);
|
|
return e;
|
|
},
|
|
zt = _t,
|
|
Nt = function (n, e) {
|
|
(n = n.source || n), (e = e || "");
|
|
var r = {
|
|
replace: function (e, t) {
|
|
return (
|
|
(t = (t = t.source || t).replace(St, "$1")),
|
|
(n = n.replace(e, t)),
|
|
r
|
|
);
|
|
},
|
|
getRegex: function () {
|
|
return new RegExp(n, e);
|
|
},
|
|
};
|
|
return r;
|
|
},
|
|
Mt = function (e, t, n) {
|
|
if (e) {
|
|
var r;
|
|
try {
|
|
r = decodeURIComponent(_t(n)).replace(At, "").toLowerCase();
|
|
} catch (e) {
|
|
return null;
|
|
}
|
|
if (
|
|
0 === r.indexOf("javascript:") ||
|
|
0 === r.indexOf("vbscript:") ||
|
|
0 === r.indexOf("data:")
|
|
)
|
|
return null;
|
|
}
|
|
t && !Tt.test(n) && (n = Ft(t, n));
|
|
try {
|
|
n = encodeURI(n).replace(/%25/g, "%");
|
|
} catch (e) {
|
|
return null;
|
|
}
|
|
return n;
|
|
},
|
|
Dt = { exec: function () {} },
|
|
Pt = function (e) {
|
|
for (var t, n, r = arguments, i = 1; i < arguments.length; i++)
|
|
for (n in (t = r[i]))
|
|
Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
|
|
return e;
|
|
},
|
|
It = function (e, t) {
|
|
var n = e
|
|
.replace(/\|/g, function (e, t, n) {
|
|
for (var r = !1, i = t; 0 <= --i && "\\" === n[i]; ) r = !r;
|
|
return r ? "|" : " |";
|
|
})
|
|
.split(/ \|/),
|
|
r = 0;
|
|
if (n.length > t) n.splice(t);
|
|
else for (; n.length < t; ) n.push("");
|
|
for (; r < n.length; r++) n[r] = n[r].trim().replace(/\\\|/g, "|");
|
|
return n;
|
|
},
|
|
I = function (e, t) {
|
|
if (-1 === e.indexOf(t[1])) return -1;
|
|
for (var n = e.length, r = 0, i = 0; i < n; i++)
|
|
if ("\\" === e[i]) i++;
|
|
else if (e[i] === t[0]) r++;
|
|
else if (e[i] === t[1] && --r < 0) return i;
|
|
return -1;
|
|
},
|
|
ee = function (e) {
|
|
e &&
|
|
e.sanitize &&
|
|
!e.silent &&
|
|
console.warn(
|
|
"marked(): sanitize and sanitizer parameters are deprecated since version 0.7.0, should not be used and will be removed in the future. Read more here: https://marked.js.org/#/USING_ADVANCED.md#options"
|
|
);
|
|
},
|
|
Q = function (e, t) {
|
|
if (t < 1) return "";
|
|
for (var n = ""; 1 < t; ) 1 & t && (n += e), (t >>= 1), (e += e);
|
|
return n + e;
|
|
},
|
|
jt = mt.defaults,
|
|
Ht = Ct,
|
|
qt = It,
|
|
Ut = Lt,
|
|
Bt = I;
|
|
function Zt(e, t, n) {
|
|
var r = t.href,
|
|
i = t.title ? Ut(t.title) : null,
|
|
t = e[1].replace(/\\([\[\]])/g, "$1");
|
|
return "!" !== e[0].charAt(0)
|
|
? { type: "link", raw: n, href: r, title: i, text: t }
|
|
: { type: "image", raw: n, href: r, title: i, text: Ut(t) };
|
|
}
|
|
var Gt = (function () {
|
|
function e(e) {
|
|
this.options = e || jt;
|
|
}
|
|
return (
|
|
(e.prototype.space = function (e) {
|
|
e = this.rules.block.newline.exec(e);
|
|
if (e)
|
|
return 1 < e[0].length
|
|
? { type: "space", raw: e[0] }
|
|
: { raw: "\n" };
|
|
}),
|
|
(e.prototype.code = function (e, t) {
|
|
e = this.rules.block.code.exec(e);
|
|
if (e) {
|
|
t = t[t.length - 1];
|
|
if (t && "paragraph" === t.type)
|
|
return { raw: e[0], text: e[0].trimRight() };
|
|
t = e[0].replace(/^ {1,4}/gm, "");
|
|
return {
|
|
type: "code",
|
|
raw: e[0],
|
|
codeBlockStyle: "indented",
|
|
text: this.options.pedantic ? t : Ht(t, "\n"),
|
|
};
|
|
}
|
|
}),
|
|
(e.prototype.fences = function (e) {
|
|
var t = this.rules.block.fences.exec(e);
|
|
if (t) {
|
|
var n = t[0],
|
|
e = (function (e, t) {
|
|
if (null === (e = e.match(/^(\s+)(?:```)/))) return t;
|
|
var n = e[1];
|
|
return t
|
|
.split("\n")
|
|
.map(function (e) {
|
|
var t = e.match(/^\s+/);
|
|
return null !== t && t[0].length >= n.length
|
|
? e.slice(n.length)
|
|
: e;
|
|
})
|
|
.join("\n");
|
|
})(n, t[3] || "");
|
|
return {
|
|
type: "code",
|
|
raw: n,
|
|
lang: t[2] ? t[2].trim() : t[2],
|
|
text: e,
|
|
};
|
|
}
|
|
}),
|
|
(e.prototype.heading = function (e) {
|
|
var t = this.rules.block.heading.exec(e);
|
|
if (t) {
|
|
var n = t[2].trim();
|
|
return (
|
|
/#$/.test(n) &&
|
|
((e = Ht(n, "#")),
|
|
(!this.options.pedantic && e && !/ $/.test(e)) ||
|
|
(n = e.trim())),
|
|
{ type: "heading", raw: t[0], depth: t[1].length, text: n }
|
|
);
|
|
}
|
|
}),
|
|
(e.prototype.nptable = function (e) {
|
|
e = this.rules.block.nptable.exec(e);
|
|
if (e) {
|
|
var t = {
|
|
type: "table",
|
|
header: qt(e[1].replace(/^ *| *\| *$/g, "")),
|
|
align: e[2].replace(/^ *|\| *$/g, "").split(/ *\| */),
|
|
cells: e[3] ? e[3].replace(/\n$/, "").split("\n") : [],
|
|
raw: e[0],
|
|
};
|
|
if (t.header.length === t.align.length) {
|
|
for (var n = t.align.length, r = 0; r < n; r++)
|
|
/^ *-+: *$/.test(t.align[r])
|
|
? (t.align[r] = "right")
|
|
: /^ *:-+: *$/.test(t.align[r])
|
|
? (t.align[r] = "center")
|
|
: /^ *:-+ *$/.test(t.align[r])
|
|
? (t.align[r] = "left")
|
|
: (t.align[r] = null);
|
|
for (n = t.cells.length, r = 0; r < n; r++)
|
|
t.cells[r] = qt(t.cells[r], t.header.length);
|
|
return t;
|
|
}
|
|
}
|
|
}),
|
|
(e.prototype.hr = function (e) {
|
|
e = this.rules.block.hr.exec(e);
|
|
if (e) return { type: "hr", raw: e[0] };
|
|
}),
|
|
(e.prototype.blockquote = function (e) {
|
|
var t = this.rules.block.blockquote.exec(e);
|
|
if (t) {
|
|
e = t[0].replace(/^ *> ?/gm, "");
|
|
return { type: "blockquote", raw: t[0], text: e };
|
|
}
|
|
}),
|
|
(e.prototype.list = function (e) {
|
|
e = this.rules.block.list.exec(e);
|
|
if (e) {
|
|
for (
|
|
var t,
|
|
n,
|
|
r,
|
|
i,
|
|
o,
|
|
a = e[0],
|
|
s = e[2],
|
|
l = 1 < s.length,
|
|
c = {
|
|
type: "list",
|
|
raw: a,
|
|
ordered: l,
|
|
start: l ? +s.slice(0, -1) : "",
|
|
loose: !1,
|
|
items: [],
|
|
},
|
|
u = e[0].match(this.rules.block.item),
|
|
p = !1,
|
|
h = u.length,
|
|
d = this.rules.block.listItemStart.exec(u[0]),
|
|
f = 0;
|
|
f < h;
|
|
f++
|
|
) {
|
|
if (((a = t = u[f]), f !== h - 1)) {
|
|
if (
|
|
((r = this.rules.block.listItemStart.exec(u[f + 1])),
|
|
this.options.pedantic
|
|
? r[1].length > d[1].length
|
|
: r[1].length > d[0].length || 3 < r[1].length)
|
|
) {
|
|
u.splice(f, 2, u[f] + "\n" + u[f + 1]), f--, h--;
|
|
continue;
|
|
}
|
|
(!this.options.pedantic || this.options.smartLists
|
|
? r[2][r[2].length - 1] !== s[s.length - 1]
|
|
: l == (1 === r[2].length)) &&
|
|
((n = u.slice(f + 1).join("\n")),
|
|
(c.raw = c.raw.substring(0, c.raw.length - n.length)),
|
|
(f = h - 1)),
|
|
(d = r);
|
|
}
|
|
(r = t.length),
|
|
~(t = t.replace(/^ *([*+-]|\d+[.)]) ?/, "")).indexOf("\n ") &&
|
|
((r -= t.length),
|
|
(t = this.options.pedantic
|
|
? t.replace(/^ {1,4}/gm, "")
|
|
: t.replace(new RegExp("^ {1," + r + "}", "gm"), ""))),
|
|
(r = p || /\n\n(?!\s*$)/.test(t)),
|
|
f !== h - 1 &&
|
|
((p = "\n" === t.charAt(t.length - 1)), (r = r || p)),
|
|
r && (c.loose = !0),
|
|
this.options.gfm &&
|
|
((o = void 0),
|
|
(i = /^\[[ xX]\] /.test(t)) &&
|
|
((o = " " !== t[1]), (t = t.replace(/^\[[ xX]\] +/, "")))),
|
|
c.items.push({
|
|
type: "list_item",
|
|
raw: a,
|
|
task: i,
|
|
checked: o,
|
|
loose: r,
|
|
text: t,
|
|
});
|
|
}
|
|
return c;
|
|
}
|
|
}),
|
|
(e.prototype.html = function (e) {
|
|
e = this.rules.block.html.exec(e);
|
|
if (e)
|
|
return {
|
|
type: this.options.sanitize ? "paragraph" : "html",
|
|
raw: e[0],
|
|
pre:
|
|
!this.options.sanitizer &&
|
|
("pre" === e[1] || "script" === e[1] || "style" === e[1]),
|
|
text: this.options.sanitize
|
|
? this.options.sanitizer
|
|
? this.options.sanitizer(e[0])
|
|
: Ut(e[0])
|
|
: e[0],
|
|
};
|
|
}),
|
|
(e.prototype.def = function (e) {
|
|
e = this.rules.block.def.exec(e);
|
|
if (e)
|
|
return (
|
|
e[3] && (e[3] = e[3].substring(1, e[3].length - 1)),
|
|
{
|
|
tag: e[1].toLowerCase().replace(/\s+/g, " "),
|
|
raw: e[0],
|
|
href: e[2],
|
|
title: e[3],
|
|
}
|
|
);
|
|
}),
|
|
(e.prototype.table = function (e) {
|
|
e = this.rules.block.table.exec(e);
|
|
if (e) {
|
|
var t = {
|
|
type: "table",
|
|
header: qt(e[1].replace(/^ *| *\| *$/g, "")),
|
|
align: e[2].replace(/^ *|\| *$/g, "").split(/ *\| */),
|
|
cells: e[3] ? e[3].replace(/\n$/, "").split("\n") : [],
|
|
};
|
|
if (t.header.length === t.align.length) {
|
|
t.raw = e[0];
|
|
for (var n = t.align.length, r = 0; r < n; r++)
|
|
/^ *-+: *$/.test(t.align[r])
|
|
? (t.align[r] = "right")
|
|
: /^ *:-+: *$/.test(t.align[r])
|
|
? (t.align[r] = "center")
|
|
: /^ *:-+ *$/.test(t.align[r])
|
|
? (t.align[r] = "left")
|
|
: (t.align[r] = null);
|
|
for (n = t.cells.length, r = 0; r < n; r++)
|
|
t.cells[r] = qt(
|
|
t.cells[r].replace(/^ *\| *| *\| *$/g, ""),
|
|
t.header.length
|
|
);
|
|
return t;
|
|
}
|
|
}
|
|
}),
|
|
(e.prototype.lheading = function (e) {
|
|
e = this.rules.block.lheading.exec(e);
|
|
if (e)
|
|
return {
|
|
type: "heading",
|
|
raw: e[0],
|
|
depth: "=" === e[2].charAt(0) ? 1 : 2,
|
|
text: e[1],
|
|
};
|
|
}),
|
|
(e.prototype.paragraph = function (e) {
|
|
e = this.rules.block.paragraph.exec(e);
|
|
if (e)
|
|
return {
|
|
type: "paragraph",
|
|
raw: e[0],
|
|
text:
|
|
"\n" === e[1].charAt(e[1].length - 1)
|
|
? e[1].slice(0, -1)
|
|
: e[1],
|
|
};
|
|
}),
|
|
(e.prototype.text = function (e, t) {
|
|
e = this.rules.block.text.exec(e);
|
|
if (e) {
|
|
t = t[t.length - 1];
|
|
return t && "text" === t.type
|
|
? { raw: e[0], text: e[0] }
|
|
: { type: "text", raw: e[0], text: e[0] };
|
|
}
|
|
}),
|
|
(e.prototype.escape = function (e) {
|
|
e = this.rules.inline.escape.exec(e);
|
|
if (e) return { type: "escape", raw: e[0], text: Ut(e[1]) };
|
|
}),
|
|
(e.prototype.tag = function (e, t, n) {
|
|
e = this.rules.inline.tag.exec(e);
|
|
if (e)
|
|
return (
|
|
!t && /^<a /i.test(e[0])
|
|
? (t = !0)
|
|
: t && /^<\/a>/i.test(e[0]) && (t = !1),
|
|
!n && /^<(pre|code|kbd|script)(\s|>)/i.test(e[0])
|
|
? (n = !0)
|
|
: n &&
|
|
/^<\/(pre|code|kbd|script)(\s|>)/i.test(e[0]) &&
|
|
(n = !1),
|
|
{
|
|
type: this.options.sanitize ? "text" : "html",
|
|
raw: e[0],
|
|
inLink: t,
|
|
inRawBlock: n,
|
|
text: this.options.sanitize
|
|
? this.options.sanitizer
|
|
? this.options.sanitizer(e[0])
|
|
: Ut(e[0])
|
|
: e[0],
|
|
}
|
|
);
|
|
}),
|
|
(e.prototype.link = function (e) {
|
|
var t = this.rules.inline.link.exec(e);
|
|
if (t) {
|
|
var n = t[2].trim();
|
|
if (!this.options.pedantic && /^</.test(n)) {
|
|
if (!/>$/.test(n)) return;
|
|
e = Ht(n.slice(0, -1), "\\");
|
|
if ((n.length - e.length) % 2 == 0) return;
|
|
} else {
|
|
var r = Bt(t[2], "()");
|
|
-1 < r &&
|
|
((o = (0 === t[0].indexOf("!") ? 5 : 4) + t[1].length + r),
|
|
(t[2] = t[2].substring(0, r)),
|
|
(t[0] = t[0].substring(0, o).trim()),
|
|
(t[3] = ""));
|
|
}
|
|
var i,
|
|
r = t[2],
|
|
o = "";
|
|
return (
|
|
this.options.pedantic
|
|
? ((i = /^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(r)),
|
|
i && ((r = i[1]), (o = i[3])))
|
|
: (o = t[3] ? t[3].slice(1, -1) : ""),
|
|
(r = r.trim()),
|
|
/^</.test(r) &&
|
|
(r =
|
|
this.options.pedantic && !/>$/.test(n)
|
|
? r.slice(1)
|
|
: r.slice(1, -1)),
|
|
Zt(
|
|
t,
|
|
{
|
|
href: r ? r.replace(this.rules.inline._escapes, "$1") : r,
|
|
title: o ? o.replace(this.rules.inline._escapes, "$1") : o,
|
|
},
|
|
t[0]
|
|
)
|
|
);
|
|
}
|
|
}),
|
|
(e.prototype.reflink = function (e, t) {
|
|
if (
|
|
(n = this.rules.inline.reflink.exec(e)) ||
|
|
(n = this.rules.inline.nolink.exec(e))
|
|
) {
|
|
e = (n[2] || n[1]).replace(/\s+/g, " ");
|
|
if ((e = t[e.toLowerCase()]) && e.href) return Zt(n, e, n[0]);
|
|
var n = n[0].charAt(0);
|
|
return { type: "text", raw: n, text: n };
|
|
}
|
|
}),
|
|
(e.prototype.strong = function (e, t, n) {
|
|
void 0 === n && (n = "");
|
|
var r = this.rules.inline.strong.start.exec(e);
|
|
if (
|
|
r &&
|
|
(!r[1] ||
|
|
(r[1] && ("" === n || this.rules.inline.punctuation.exec(n))))
|
|
) {
|
|
t = t.slice(-1 * e.length);
|
|
var i,
|
|
o =
|
|
"**" === r[0]
|
|
? this.rules.inline.strong.endAst
|
|
: this.rules.inline.strong.endUnd;
|
|
for (o.lastIndex = 0; null != (r = o.exec(t)); )
|
|
if (
|
|
(i = this.rules.inline.strong.middle.exec(
|
|
t.slice(0, r.index + 3)
|
|
))
|
|
)
|
|
return {
|
|
type: "strong",
|
|
raw: e.slice(0, i[0].length),
|
|
text: e.slice(2, i[0].length - 2),
|
|
};
|
|
}
|
|
}),
|
|
(e.prototype.em = function (e, t, n) {
|
|
void 0 === n && (n = "");
|
|
var r = this.rules.inline.em.start.exec(e);
|
|
if (
|
|
r &&
|
|
(!r[1] ||
|
|
(r[1] && ("" === n || this.rules.inline.punctuation.exec(n))))
|
|
) {
|
|
t = t.slice(-1 * e.length);
|
|
var i,
|
|
o =
|
|
"*" === r[0]
|
|
? this.rules.inline.em.endAst
|
|
: this.rules.inline.em.endUnd;
|
|
for (o.lastIndex = 0; null != (r = o.exec(t)); )
|
|
if (
|
|
(i = this.rules.inline.em.middle.exec(t.slice(0, r.index + 2)))
|
|
)
|
|
return {
|
|
type: "em",
|
|
raw: e.slice(0, i[0].length),
|
|
text: e.slice(1, i[0].length - 1),
|
|
};
|
|
}
|
|
}),
|
|
(e.prototype.codespan = function (e) {
|
|
var t = this.rules.inline.code.exec(e);
|
|
if (t) {
|
|
var n = t[2].replace(/\n/g, " "),
|
|
r = /[^ ]/.test(n),
|
|
e = /^ /.test(n) && / $/.test(n);
|
|
return (
|
|
r && e && (n = n.substring(1, n.length - 1)),
|
|
(n = Ut(n, !0)),
|
|
{ type: "codespan", raw: t[0], text: n }
|
|
);
|
|
}
|
|
}),
|
|
(e.prototype.br = function (e) {
|
|
e = this.rules.inline.br.exec(e);
|
|
if (e) return { type: "br", raw: e[0] };
|
|
}),
|
|
(e.prototype.del = function (e) {
|
|
e = this.rules.inline.del.exec(e);
|
|
if (e) return { type: "del", raw: e[0], text: e[2] };
|
|
}),
|
|
(e.prototype.autolink = function (e, t) {
|
|
e = this.rules.inline.autolink.exec(e);
|
|
if (e) {
|
|
var n,
|
|
t =
|
|
"@" === e[2]
|
|
? "mailto:" + (n = Ut(this.options.mangle ? t(e[1]) : e[1]))
|
|
: (n = Ut(e[1]));
|
|
return {
|
|
type: "link",
|
|
raw: e[0],
|
|
text: n,
|
|
href: t,
|
|
tokens: [{ type: "text", raw: n, text: n }],
|
|
};
|
|
}
|
|
}),
|
|
(e.prototype.url = function (e, t) {
|
|
var n, r, i, o;
|
|
if ((n = this.rules.inline.url.exec(e))) {
|
|
if ("@" === n[2])
|
|
i = "mailto:" + (r = Ut(this.options.mangle ? t(n[0]) : n[0]));
|
|
else {
|
|
for (
|
|
;
|
|
(o = n[0]),
|
|
(n[0] = this.rules.inline._backpedal.exec(n[0])[0]),
|
|
o !== n[0];
|
|
|
|
);
|
|
(r = Ut(n[0])), (i = "www." === n[1] ? "http://" + r : r);
|
|
}
|
|
return {
|
|
type: "link",
|
|
raw: n[0],
|
|
text: r,
|
|
href: i,
|
|
tokens: [{ type: "text", raw: r, text: r }],
|
|
};
|
|
}
|
|
}),
|
|
(e.prototype.inlineText = function (e, t, n) {
|
|
e = this.rules.inline.text.exec(e);
|
|
if (e) {
|
|
n = t
|
|
? this.options.sanitize
|
|
? this.options.sanitizer
|
|
? this.options.sanitizer(e[0])
|
|
: Ut(e[0])
|
|
: e[0]
|
|
: Ut(this.options.smartypants ? n(e[0]) : e[0]);
|
|
return { type: "text", raw: e[0], text: n };
|
|
}
|
|
}),
|
|
e
|
|
);
|
|
})(),
|
|
It = Dt,
|
|
I = Nt,
|
|
Dt = Pt,
|
|
Nt = {
|
|
newline: /^(?: *(?:\n|$))+/,
|
|
code: /^( {4}[^\n]+(?:\n(?: *(?:\n|$))*)?)+/,
|
|
fences:
|
|
/^ {0,3}(`{3,}(?=[^`\n]*\n)|~{3,})([^\n]*)\n(?:|([\s\S]*?)\n)(?: {0,3}\1[~`]* *(?:\n+|$)|$)/,
|
|
hr: /^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\* *){3,})(?:\n+|$)/,
|
|
heading: /^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,
|
|
blockquote: /^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,
|
|
list: /^( {0,3})(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?! {0,3}bull )\n*|\s*$)/,
|
|
html: "^ {0,3}(?:<(script|pre|style)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:\\n{2,}|$)|<(?!script|pre|style)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:\\n{2,}|$)|</(?!script|pre|style)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:\\n{2,}|$))",
|
|
def: /^ {0,3}\[(label)\]: *\n? *<?([^\s>]+)>?(?:(?: +\n? *| *\n *)(title))? *(?:\n+|$)/,
|
|
nptable: It,
|
|
table: It,
|
|
lheading: /^([^\n]+)\n {0,3}(=+|-+) *(?:\n+|$)/,
|
|
_paragraph:
|
|
/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html| +\n)[^\n]+)*)/,
|
|
text: /^[^\n]+/,
|
|
_label: /(?!\s*\])(?:\\[\[\]]|[^\[\]])+/,
|
|
_title: /(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/,
|
|
};
|
|
(Nt.def = I(Nt.def)
|
|
.replace("label", Nt._label)
|
|
.replace("title", Nt._title)
|
|
.getRegex()),
|
|
(Nt.bullet = /(?:[*+-]|\d{1,9}[.)])/),
|
|
(Nt.item = /^( *)(bull) ?[^\n]*(?:\n(?! *bull ?)[^\n]*)*/),
|
|
(Nt.item = I(Nt.item, "gm").replace(/bull/g, Nt.bullet).getRegex()),
|
|
(Nt.listItemStart = I(/^( *)(bull)/)
|
|
.replace("bull", Nt.bullet)
|
|
.getRegex()),
|
|
(Nt.list = I(Nt.list)
|
|
.replace(/bull/g, Nt.bullet)
|
|
.replace(
|
|
"hr",
|
|
"\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))"
|
|
)
|
|
.replace("def", "\\n+(?=" + Nt.def.source + ")")
|
|
.getRegex()),
|
|
(Nt._tag =
|
|
"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|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul"),
|
|
(Nt._comment = /<!--(?!-?>)[\s\S]*?(?:-->|$)/),
|
|
(Nt.html = I(Nt.html, "i")
|
|
.replace("comment", Nt._comment)
|
|
.replace("tag", Nt._tag)
|
|
.replace(
|
|
"attribute",
|
|
/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/
|
|
)
|
|
.getRegex()),
|
|
(Nt.paragraph = I(Nt._paragraph)
|
|
.replace("hr", Nt.hr)
|
|
.replace("heading", " {0,3}#{1,6} ")
|
|
.replace("|lheading", "")
|
|
.replace("blockquote", " {0,3}>")
|
|
.replace("fences", " {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n")
|
|
.replace("list", " {0,3}(?:[*+-]|1[.)]) ")
|
|
.replace("html", "</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|!--)")
|
|
.replace("tag", Nt._tag)
|
|
.getRegex()),
|
|
(Nt.blockquote = I(Nt.blockquote)
|
|
.replace("paragraph", Nt.paragraph)
|
|
.getRegex()),
|
|
(Nt.normal = Dt({}, Nt)),
|
|
(Nt.gfm = Dt({}, Nt.normal, {
|
|
nptable:
|
|
"^ *([^|\\n ].*\\|.*)\\n {0,3}([-:]+ *\\|[-| :]*)(?:\\n((?:(?!\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)",
|
|
table:
|
|
"^ *\\|(.+)\\n {0,3}\\|?( *[-:]+[-| :]*)(?:\\n *((?:(?!\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)",
|
|
})),
|
|
(Nt.gfm.nptable = I(Nt.gfm.nptable)
|
|
.replace("hr", Nt.hr)
|
|
.replace("heading", " {0,3}#{1,6} ")
|
|
.replace("blockquote", " {0,3}>")
|
|
.replace("code", " {4}[^\\n]")
|
|
.replace("fences", " {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n")
|
|
.replace("list", " {0,3}(?:[*+-]|1[.)]) ")
|
|
.replace("html", "</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|!--)")
|
|
.replace("tag", Nt._tag)
|
|
.getRegex()),
|
|
(Nt.gfm.table = I(Nt.gfm.table)
|
|
.replace("hr", Nt.hr)
|
|
.replace("heading", " {0,3}#{1,6} ")
|
|
.replace("blockquote", " {0,3}>")
|
|
.replace("code", " {4}[^\\n]")
|
|
.replace("fences", " {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n")
|
|
.replace("list", " {0,3}(?:[*+-]|1[.)]) ")
|
|
.replace("html", "</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|!--)")
|
|
.replace("tag", Nt._tag)
|
|
.getRegex()),
|
|
(Nt.pedantic = Dt({}, Nt.normal, {
|
|
html: I(
|
|
"^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:\"[^\"]*\"|'[^']*'|\\s[^'\"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))"
|
|
)
|
|
.replace("comment", Nt._comment)
|
|
.replace(
|
|
/tag/g,
|
|
"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b"
|
|
)
|
|
.getRegex(),
|
|
def: /^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,
|
|
heading: /^(#{1,6})(.*)(?:\n+|$)/,
|
|
fences: It,
|
|
paragraph: I(Nt.normal._paragraph)
|
|
.replace("hr", Nt.hr)
|
|
.replace("heading", " *#{1,6} *[^\n]")
|
|
.replace("lheading", Nt.lheading)
|
|
.replace("blockquote", " {0,3}>")
|
|
.replace("|fences", "")
|
|
.replace("|list", "")
|
|
.replace("|html", "")
|
|
.getRegex(),
|
|
}));
|
|
It = {
|
|
escape: /^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,
|
|
autolink: /^<(scheme:[^\s\x00-\x1f<>]*|email)>/,
|
|
url: It,
|
|
tag: "^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>",
|
|
link: /^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/,
|
|
reflink: /^!?\[(label)\]\[(?!\s*\])((?:\\[\[\]]?|[^\[\]\\])+)\]/,
|
|
nolink: /^!?\[(?!\s*\])((?:\[[^\[\]]*\]|\\[\[\]]|[^\[\]])*)\](?:\[\])?/,
|
|
reflinkSearch: "reflink|nolink(?!\\()",
|
|
strong: {
|
|
start: /^(?:(\*\*(?=[*punctuation]))|\*\*)(?![\s])|__/,
|
|
middle:
|
|
/^\*\*(?:(?:(?!overlapSkip)(?:[^*]|\\\*)|overlapSkip)|\*(?:(?!overlapSkip)(?:[^*]|\\\*)|overlapSkip)*?\*)+?\*\*$|^__(?![\s])((?:(?:(?!overlapSkip)(?:[^_]|\\_)|overlapSkip)|_(?:(?!overlapSkip)(?:[^_]|\\_)|overlapSkip)*?_)+?)__$/,
|
|
endAst:
|
|
/[^punctuation\s]\*\*(?!\*)|[punctuation]\*\*(?!\*)(?:(?=[punctuation_\s]|$))/,
|
|
endUnd: /[^\s]__(?!_)(?:(?=[punctuation*\s])|$)/,
|
|
},
|
|
em: {
|
|
start: /^(?:(\*(?=[punctuation]))|\*)(?![*\s])|_/,
|
|
middle:
|
|
/^\*(?:(?:(?!overlapSkip)(?:[^*]|\\\*)|overlapSkip)|\*(?:(?!overlapSkip)(?:[^*]|\\\*)|overlapSkip)*?\*)+?\*$|^_(?![_\s])(?:(?:(?!overlapSkip)(?:[^_]|\\_)|overlapSkip)|_(?:(?!overlapSkip)(?:[^_]|\\_)|overlapSkip)*?_)+?_$/,
|
|
endAst:
|
|
/[^punctuation\s]\*(?!\*)|[punctuation]\*(?!\*)(?:(?=[punctuation_\s]|$))/,
|
|
endUnd: /[^\s]_(?!_)(?:(?=[punctuation*\s])|$)/,
|
|
},
|
|
code: /^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,
|
|
br: /^( {2,}|\\)\n(?!\s*$)/,
|
|
del: It,
|
|
text: /^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*]|\b_|$)|[^ ](?= {2,}\n)))/,
|
|
punctuation: /^([\s*punctuation])/,
|
|
_punctuation: "!\"#$%&'()+\\-.,/:;<=>?@\\[\\]`^{|}~",
|
|
};
|
|
(It.punctuation = I(It.punctuation)
|
|
.replace(/punctuation/g, It._punctuation)
|
|
.getRegex()),
|
|
(It._blockSkip = "\\[[^\\]]*?\\]\\([^\\)]*?\\)|`[^`]*?`|<[^>]*?>"),
|
|
(It._overlapSkip = "__[^_]*?__|\\*\\*\\[^\\*\\]*?\\*\\*"),
|
|
(It._comment = I(Nt._comment).replace("(?:--\x3e|$)", "--\x3e").getRegex()),
|
|
(It.em.start = I(It.em.start)
|
|
.replace(/punctuation/g, It._punctuation)
|
|
.getRegex()),
|
|
(It.em.middle = I(It.em.middle)
|
|
.replace(/punctuation/g, It._punctuation)
|
|
.replace(/overlapSkip/g, It._overlapSkip)
|
|
.getRegex()),
|
|
(It.em.endAst = I(It.em.endAst, "g")
|
|
.replace(/punctuation/g, It._punctuation)
|
|
.getRegex()),
|
|
(It.em.endUnd = I(It.em.endUnd, "g")
|
|
.replace(/punctuation/g, It._punctuation)
|
|
.getRegex()),
|
|
(It.strong.start = I(It.strong.start)
|
|
.replace(/punctuation/g, It._punctuation)
|
|
.getRegex()),
|
|
(It.strong.middle = I(It.strong.middle)
|
|
.replace(/punctuation/g, It._punctuation)
|
|
.replace(/overlapSkip/g, It._overlapSkip)
|
|
.getRegex()),
|
|
(It.strong.endAst = I(It.strong.endAst, "g")
|
|
.replace(/punctuation/g, It._punctuation)
|
|
.getRegex()),
|
|
(It.strong.endUnd = I(It.strong.endUnd, "g")
|
|
.replace(/punctuation/g, It._punctuation)
|
|
.getRegex()),
|
|
(It.blockSkip = I(It._blockSkip, "g").getRegex()),
|
|
(It.overlapSkip = I(It._overlapSkip, "g").getRegex()),
|
|
(It._escapes = /\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g),
|
|
(It._scheme = /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/),
|
|
(It._email =
|
|
/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/),
|
|
(It.autolink = I(It.autolink)
|
|
.replace("scheme", It._scheme)
|
|
.replace("email", It._email)
|
|
.getRegex()),
|
|
(It._attribute =
|
|
/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/),
|
|
(It.tag = I(It.tag)
|
|
.replace("comment", It._comment)
|
|
.replace("attribute", It._attribute)
|
|
.getRegex()),
|
|
(It._label = /(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/),
|
|
(It._href = /<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/),
|
|
(It._title = /"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/),
|
|
(It.link = I(It.link)
|
|
.replace("label", It._label)
|
|
.replace("href", It._href)
|
|
.replace("title", It._title)
|
|
.getRegex()),
|
|
(It.reflink = I(It.reflink).replace("label", It._label).getRegex()),
|
|
(It.reflinkSearch = I(It.reflinkSearch, "g")
|
|
.replace("reflink", It.reflink)
|
|
.replace("nolink", It.nolink)
|
|
.getRegex()),
|
|
(It.normal = Dt({}, It)),
|
|
(It.pedantic = Dt({}, It.normal, {
|
|
strong: {
|
|
start: /^__|\*\*/,
|
|
middle:
|
|
/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,
|
|
endAst: /\*\*(?!\*)/g,
|
|
endUnd: /__(?!_)/g,
|
|
},
|
|
em: {
|
|
start: /^_|\*/,
|
|
middle: /^()\*(?=\S)([\s\S]*?\S)\*(?!\*)|^_(?=\S)([\s\S]*?\S)_(?!_)/,
|
|
endAst: /\*(?!\*)/g,
|
|
endUnd: /_(?!_)/g,
|
|
},
|
|
link: I(/^!?\[(label)\]\((.*?)\)/)
|
|
.replace("label", It._label)
|
|
.getRegex(),
|
|
reflink: I(/^!?\[(label)\]\s*\[([^\]]*)\]/)
|
|
.replace("label", It._label)
|
|
.getRegex(),
|
|
})),
|
|
(It.gfm = Dt({}, It.normal, {
|
|
escape: I(It.escape).replace("])", "~|])").getRegex(),
|
|
_extended_email:
|
|
/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,
|
|
url: /^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,
|
|
_backpedal:
|
|
/(?:[^?!.,:;*_~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,
|
|
del: /^(~~?)(?=[^\s~])([\s\S]*?[^\s~])\1(?=[^~]|$)/,
|
|
text: /^([`~]+|[^`~])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*~]|\b_|https?:\/\/|ftp:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@))|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@))/,
|
|
})),
|
|
(It.gfm.url = I(It.gfm.url, "i")
|
|
.replace("email", It.gfm._extended_email)
|
|
.getRegex()),
|
|
(It.breaks = Dt({}, It.gfm, {
|
|
br: I(It.br).replace("{2,}", "*").getRegex(),
|
|
text: I(It.gfm.text)
|
|
.replace("\\b_", "\\b_| {2,}\\n")
|
|
.replace(/\{2,\}/g, "*")
|
|
.getRegex(),
|
|
}));
|
|
var It = { block: Nt, inline: It },
|
|
Wt = mt.defaults,
|
|
Vt = It.block,
|
|
Yt = It.inline,
|
|
Xt = Q;
|
|
function Kt(e) {
|
|
return e
|
|
.replace(/---/g, "—")
|
|
.replace(/--/g, "–")
|
|
.replace(/(^|[-\u2014/(\[{"\s])'/g, "$1‘")
|
|
.replace(/'/g, "’")
|
|
.replace(/(^|[-\u2014/(\[{\u2018\s])"/g, "$1“")
|
|
.replace(/"/g, "”")
|
|
.replace(/\.{3}/g, "…");
|
|
}
|
|
function Qt(e) {
|
|
for (var t, n = "", r = e.length, i = 0; i < r; i++)
|
|
(t = e.charCodeAt(i)),
|
|
0.5 < Math.random() && (t = "x" + t.toString(16)),
|
|
(n += "&#" + t + ";");
|
|
return n;
|
|
}
|
|
var Jt = (function () {
|
|
function n(e) {
|
|
(this.tokens = []),
|
|
(this.tokens.links = Object.create(null)),
|
|
(this.options = e || Wt),
|
|
(this.options.tokenizer = this.options.tokenizer || new Gt()),
|
|
(this.tokenizer = this.options.tokenizer),
|
|
(this.tokenizer.options = this.options);
|
|
e = { block: Vt.normal, inline: Yt.normal };
|
|
this.options.pedantic
|
|
? ((e.block = Vt.pedantic), (e.inline = Yt.pedantic))
|
|
: this.options.gfm &&
|
|
((e.block = Vt.gfm),
|
|
this.options.breaks ? (e.inline = Yt.breaks) : (e.inline = Yt.gfm)),
|
|
(this.tokenizer.rules = e);
|
|
}
|
|
var e = { rules: { configurable: !0 } };
|
|
return (
|
|
(e.rules.get = function () {
|
|
return { block: Vt, inline: Yt };
|
|
}),
|
|
(n.lex = function (e, t) {
|
|
return new n(t).lex(e);
|
|
}),
|
|
(n.lexInline = function (e, t) {
|
|
return new n(t).inlineTokens(e);
|
|
}),
|
|
(n.prototype.lex = function (e) {
|
|
return (
|
|
(e = e.replace(/\r\n|\r/g, "\n").replace(/\t/g, " ")),
|
|
this.blockTokens(e, this.tokens, !0),
|
|
this.inline(this.tokens),
|
|
this.tokens
|
|
);
|
|
}),
|
|
(n.prototype.blockTokens = function (e, t, n) {
|
|
var r, i, o, a;
|
|
for (
|
|
void 0 === t && (t = []),
|
|
void 0 === n && (n = !0),
|
|
this.options.pedantic && (e = e.replace(/^ +$/gm, ""));
|
|
e;
|
|
|
|
)
|
|
if ((r = this.tokenizer.space(e)))
|
|
(e = e.substring(r.raw.length)), r.type && t.push(r);
|
|
else if ((r = this.tokenizer.code(e, t)))
|
|
(e = e.substring(r.raw.length)),
|
|
r.type
|
|
? t.push(r)
|
|
: (((a = t[t.length - 1]).raw += "\n" + r.raw),
|
|
(a.text += "\n" + r.text));
|
|
else if ((r = this.tokenizer.fences(e)))
|
|
(e = e.substring(r.raw.length)), t.push(r);
|
|
else if ((r = this.tokenizer.heading(e)))
|
|
(e = e.substring(r.raw.length)), t.push(r);
|
|
else if ((r = this.tokenizer.nptable(e)))
|
|
(e = e.substring(r.raw.length)), t.push(r);
|
|
else if ((r = this.tokenizer.hr(e)))
|
|
(e = e.substring(r.raw.length)), t.push(r);
|
|
else if ((r = this.tokenizer.blockquote(e)))
|
|
(e = e.substring(r.raw.length)),
|
|
(r.tokens = this.blockTokens(r.text, [], n)),
|
|
t.push(r);
|
|
else if ((r = this.tokenizer.list(e))) {
|
|
for (
|
|
e = e.substring(r.raw.length), o = r.items.length, i = 0;
|
|
i < o;
|
|
i++
|
|
)
|
|
r.items[i].tokens = this.blockTokens(r.items[i].text, [], !1);
|
|
t.push(r);
|
|
} else if ((r = this.tokenizer.html(e)))
|
|
(e = e.substring(r.raw.length)), t.push(r);
|
|
else if (n && (r = this.tokenizer.def(e)))
|
|
(e = e.substring(r.raw.length)),
|
|
this.tokens.links[r.tag] ||
|
|
(this.tokens.links[r.tag] = { href: r.href, title: r.title });
|
|
else if ((r = this.tokenizer.table(e)))
|
|
(e = e.substring(r.raw.length)), t.push(r);
|
|
else if ((r = this.tokenizer.lheading(e)))
|
|
(e = e.substring(r.raw.length)), t.push(r);
|
|
else if (n && (r = this.tokenizer.paragraph(e)))
|
|
(e = e.substring(r.raw.length)), t.push(r);
|
|
else if ((r = this.tokenizer.text(e, t)))
|
|
(e = e.substring(r.raw.length)),
|
|
r.type
|
|
? t.push(r)
|
|
: (((a = t[t.length - 1]).raw += "\n" + r.raw),
|
|
(a.text += "\n" + r.text));
|
|
else if (e) {
|
|
var s = "Infinite loop on byte: " + e.charCodeAt(0);
|
|
if (this.options.silent) {
|
|
console.error(s);
|
|
break;
|
|
}
|
|
throw new Error(s);
|
|
}
|
|
return t;
|
|
}),
|
|
(n.prototype.inline = function (e) {
|
|
for (var t, n, r, i, o, a = e.length, s = 0; s < a; s++)
|
|
switch ((o = e[s]).type) {
|
|
case "paragraph":
|
|
case "text":
|
|
case "heading":
|
|
(o.tokens = []), this.inlineTokens(o.text, o.tokens);
|
|
break;
|
|
case "table":
|
|
for (
|
|
o.tokens = { header: [], cells: [] },
|
|
r = o.header.length,
|
|
t = 0;
|
|
t < r;
|
|
t++
|
|
)
|
|
(o.tokens.header[t] = []),
|
|
this.inlineTokens(o.header[t], o.tokens.header[t]);
|
|
for (r = o.cells.length, t = 0; t < r; t++)
|
|
for (
|
|
i = o.cells[t], o.tokens.cells[t] = [], n = 0;
|
|
n < i.length;
|
|
n++
|
|
)
|
|
(o.tokens.cells[t][n] = []),
|
|
this.inlineTokens(i[n], o.tokens.cells[t][n]);
|
|
break;
|
|
case "blockquote":
|
|
this.inline(o.tokens);
|
|
break;
|
|
case "list":
|
|
for (r = o.items.length, t = 0; t < r; t++)
|
|
this.inline(o.items[t].tokens);
|
|
}
|
|
return e;
|
|
}),
|
|
(n.prototype.inlineTokens = function (e, t, n, r) {
|
|
var i;
|
|
void 0 === t && (t = []),
|
|
void 0 === n && (n = !1),
|
|
void 0 === r && (r = !1);
|
|
var o,
|
|
a,
|
|
s,
|
|
l = e;
|
|
if (this.tokens.links) {
|
|
var c = Object.keys(this.tokens.links);
|
|
if (0 < c.length)
|
|
for (
|
|
;
|
|
null != (o = this.tokenizer.rules.inline.reflinkSearch.exec(l));
|
|
|
|
)
|
|
c.includes(o[0].slice(o[0].lastIndexOf("[") + 1, -1)) &&
|
|
(l =
|
|
l.slice(0, o.index) +
|
|
"[" +
|
|
Xt("a", o[0].length - 2) +
|
|
"]" +
|
|
l.slice(
|
|
this.tokenizer.rules.inline.reflinkSearch.lastIndex
|
|
));
|
|
}
|
|
for (; null != (o = this.tokenizer.rules.inline.blockSkip.exec(l)); )
|
|
l =
|
|
l.slice(0, o.index) +
|
|
"[" +
|
|
Xt("a", o[0].length - 2) +
|
|
"]" +
|
|
l.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);
|
|
for (; e; )
|
|
if ((a || (s = ""), (a = !1), (i = this.tokenizer.escape(e))))
|
|
(e = e.substring(i.raw.length)), t.push(i);
|
|
else if ((i = this.tokenizer.tag(e, n, r)))
|
|
(e = e.substring(i.raw.length)),
|
|
(n = i.inLink),
|
|
(r = i.inRawBlock),
|
|
t.push(i);
|
|
else if ((i = this.tokenizer.link(e)))
|
|
(e = e.substring(i.raw.length)),
|
|
"link" === i.type &&
|
|
(i.tokens = this.inlineTokens(i.text, [], !0, r)),
|
|
t.push(i);
|
|
else if ((i = this.tokenizer.reflink(e, this.tokens.links)))
|
|
(e = e.substring(i.raw.length)),
|
|
"link" === i.type &&
|
|
(i.tokens = this.inlineTokens(i.text, [], !0, r)),
|
|
t.push(i);
|
|
else if ((i = this.tokenizer.strong(e, l, s)))
|
|
(e = e.substring(i.raw.length)),
|
|
(i.tokens = this.inlineTokens(i.text, [], n, r)),
|
|
t.push(i);
|
|
else if ((i = this.tokenizer.em(e, l, s)))
|
|
(e = e.substring(i.raw.length)),
|
|
(i.tokens = this.inlineTokens(i.text, [], n, r)),
|
|
t.push(i);
|
|
else if ((i = this.tokenizer.codespan(e)))
|
|
(e = e.substring(i.raw.length)), t.push(i);
|
|
else if ((i = this.tokenizer.br(e)))
|
|
(e = e.substring(i.raw.length)), t.push(i);
|
|
else if ((i = this.tokenizer.del(e)))
|
|
(e = e.substring(i.raw.length)),
|
|
(i.tokens = this.inlineTokens(i.text, [], n, r)),
|
|
t.push(i);
|
|
else if ((i = this.tokenizer.autolink(e, Qt)))
|
|
(e = e.substring(i.raw.length)), t.push(i);
|
|
else if (n || !(i = this.tokenizer.url(e, Qt))) {
|
|
if ((i = this.tokenizer.inlineText(e, r, Kt)))
|
|
(e = e.substring(i.raw.length)),
|
|
(s = i.raw.slice(-1)),
|
|
(a = !0),
|
|
t.push(i);
|
|
else if (e) {
|
|
var u = "Infinite loop on byte: " + e.charCodeAt(0);
|
|
if (this.options.silent) {
|
|
console.error(u);
|
|
break;
|
|
}
|
|
throw new Error(u);
|
|
}
|
|
} else (e = e.substring(i.raw.length)), t.push(i);
|
|
return t;
|
|
}),
|
|
Object.defineProperties(n, e),
|
|
n
|
|
);
|
|
})(),
|
|
en = mt.defaults,
|
|
tn = Mt,
|
|
nn = Lt,
|
|
rn = (function () {
|
|
function e(e) {
|
|
this.options = e || en;
|
|
}
|
|
return (
|
|
(e.prototype.code = function (e, t, n) {
|
|
var r = (t || "").match(/\S*/)[0];
|
|
return (
|
|
!this.options.highlight ||
|
|
(null != (t = this.options.highlight(e, r)) &&
|
|
t !== e &&
|
|
((n = !0), (e = t))),
|
|
(e = e.replace(/\n$/, "") + "\n"),
|
|
r
|
|
? '<pre><code class="' +
|
|
this.options.langPrefix +
|
|
nn(r, !0) +
|
|
'">' +
|
|
(n ? e : nn(e, !0)) +
|
|
"</code></pre>\n"
|
|
: "<pre><code>" + (n ? e : nn(e, !0)) + "</code></pre>\n"
|
|
);
|
|
}),
|
|
(e.prototype.blockquote = function (e) {
|
|
return "<blockquote>\n" + e + "</blockquote>\n";
|
|
}),
|
|
(e.prototype.html = function (e) {
|
|
return e;
|
|
}),
|
|
(e.prototype.heading = function (e, t, n, r) {
|
|
return this.options.headerIds
|
|
? "<h" +
|
|
t +
|
|
' id="' +
|
|
this.options.headerPrefix +
|
|
r.slug(n) +
|
|
'">' +
|
|
e +
|
|
"</h" +
|
|
t +
|
|
">\n"
|
|
: "<h" + t + ">" + e + "</h" + t + ">\n";
|
|
}),
|
|
(e.prototype.hr = function () {
|
|
return this.options.xhtml ? "<hr/>\n" : "<hr>\n";
|
|
}),
|
|
(e.prototype.list = function (e, t, n) {
|
|
var r = t ? "ol" : "ul";
|
|
return (
|
|
"<" +
|
|
r +
|
|
(t && 1 !== n ? ' start="' + n + '"' : "") +
|
|
">\n" +
|
|
e +
|
|
"</" +
|
|
r +
|
|
">\n"
|
|
);
|
|
}),
|
|
(e.prototype.listitem = function (e) {
|
|
return "<li>" + e + "</li>\n";
|
|
}),
|
|
(e.prototype.checkbox = function (e) {
|
|
return (
|
|
"<input " +
|
|
(e ? 'checked="" ' : "") +
|
|
'disabled="" type="checkbox"' +
|
|
(this.options.xhtml ? " /" : "") +
|
|
"> "
|
|
);
|
|
}),
|
|
(e.prototype.paragraph = function (e) {
|
|
return "<p>" + e + "</p>\n";
|
|
}),
|
|
(e.prototype.table = function (e, t) {
|
|
return (
|
|
"<table>\n<thead>\n" +
|
|
e +
|
|
"</thead>\n" +
|
|
(t = t && "<tbody>" + t + "</tbody>") +
|
|
"</table>\n"
|
|
);
|
|
}),
|
|
(e.prototype.tablerow = function (e) {
|
|
return "<tr>\n" + e + "</tr>\n";
|
|
}),
|
|
(e.prototype.tablecell = function (e, t) {
|
|
var n = t.header ? "th" : "td";
|
|
return (
|
|
(t.align ? "<" + n + ' align="' + t.align + '">' : "<" + n + ">") +
|
|
e +
|
|
"</" +
|
|
n +
|
|
">\n"
|
|
);
|
|
}),
|
|
(e.prototype.strong = function (e) {
|
|
return "<strong>" + e + "</strong>";
|
|
}),
|
|
(e.prototype.em = function (e) {
|
|
return "<em>" + e + "</em>";
|
|
}),
|
|
(e.prototype.codespan = function (e) {
|
|
return "<code>" + e + "</code>";
|
|
}),
|
|
(e.prototype.br = function () {
|
|
return this.options.xhtml ? "<br/>" : "<br>";
|
|
}),
|
|
(e.prototype.del = function (e) {
|
|
return "<del>" + e + "</del>";
|
|
}),
|
|
(e.prototype.link = function (e, t, n) {
|
|
if (null === (e = tn(this.options.sanitize, this.options.baseUrl, e)))
|
|
return n;
|
|
e = '<a href="' + nn(e) + '"';
|
|
return t && (e += ' title="' + t + '"'), (e += ">" + n + "</a>");
|
|
}),
|
|
(e.prototype.image = function (e, t, n) {
|
|
if (null === (e = tn(this.options.sanitize, this.options.baseUrl, e)))
|
|
return n;
|
|
n = '<img src="' + e + '" alt="' + n + '"';
|
|
return (
|
|
t && (n += ' title="' + t + '"'),
|
|
(n += this.options.xhtml ? "/>" : ">")
|
|
);
|
|
}),
|
|
(e.prototype.text = function (e) {
|
|
return e;
|
|
}),
|
|
e
|
|
);
|
|
})(),
|
|
on = (function () {
|
|
function e() {}
|
|
return (
|
|
(e.prototype.strong = function (e) {
|
|
return e;
|
|
}),
|
|
(e.prototype.em = function (e) {
|
|
return e;
|
|
}),
|
|
(e.prototype.codespan = function (e) {
|
|
return e;
|
|
}),
|
|
(e.prototype.del = function (e) {
|
|
return e;
|
|
}),
|
|
(e.prototype.html = function (e) {
|
|
return e;
|
|
}),
|
|
(e.prototype.text = function (e) {
|
|
return e;
|
|
}),
|
|
(e.prototype.link = function (e, t, n) {
|
|
return "" + n;
|
|
}),
|
|
(e.prototype.image = function (e, t, n) {
|
|
return "" + n;
|
|
}),
|
|
(e.prototype.br = function () {
|
|
return "";
|
|
}),
|
|
e
|
|
);
|
|
})(),
|
|
an = (function () {
|
|
function e() {
|
|
this.seen = {};
|
|
}
|
|
return (
|
|
(e.prototype.serialize = function (e) {
|
|
return e
|
|
.toLowerCase()
|
|
.trim()
|
|
.replace(/<[!\/a-z].*?>/gi, "")
|
|
.replace(
|
|
/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~]/g,
|
|
""
|
|
)
|
|
.replace(/\s/g, "-");
|
|
}),
|
|
(e.prototype.getNextSafeSlug = function (e, t) {
|
|
var n = e,
|
|
r = 0;
|
|
if (this.seen.hasOwnProperty(n))
|
|
for (
|
|
r = this.seen[e];
|
|
(n = e + "-" + ++r), this.seen.hasOwnProperty(n);
|
|
|
|
);
|
|
return t || ((this.seen[e] = r), (this.seen[n] = 0)), n;
|
|
}),
|
|
(e.prototype.slug = function (e, t) {
|
|
void 0 === t && (t = {});
|
|
var n = this.serialize(e);
|
|
return this.getNextSafeSlug(n, t.dryrun);
|
|
}),
|
|
e
|
|
);
|
|
})(),
|
|
sn = mt.defaults,
|
|
ln = zt,
|
|
cn = (function () {
|
|
function n(e) {
|
|
(this.options = e || sn),
|
|
(this.options.renderer = this.options.renderer || new rn()),
|
|
(this.renderer = this.options.renderer),
|
|
(this.renderer.options = this.options),
|
|
(this.textRenderer = new on()),
|
|
(this.slugger = new an());
|
|
}
|
|
return (
|
|
(n.parse = function (e, t) {
|
|
return new n(t).parse(e);
|
|
}),
|
|
(n.parseInline = function (e, t) {
|
|
return new n(t).parseInline(e);
|
|
}),
|
|
(n.prototype.parse = function (e, t) {
|
|
void 0 === t && (t = !0);
|
|
for (
|
|
var n,
|
|
r,
|
|
i,
|
|
o,
|
|
a,
|
|
s,
|
|
l,
|
|
c,
|
|
u,
|
|
p,
|
|
h,
|
|
d,
|
|
f,
|
|
g,
|
|
m,
|
|
v = "",
|
|
y = e.length,
|
|
b = 0;
|
|
b < y;
|
|
b++
|
|
)
|
|
switch ((c = e[b]).type) {
|
|
case "space":
|
|
continue;
|
|
case "hr":
|
|
v += this.renderer.hr();
|
|
continue;
|
|
case "heading":
|
|
v += this.renderer.heading(
|
|
this.parseInline(c.tokens),
|
|
c.depth,
|
|
ln(this.parseInline(c.tokens, this.textRenderer)),
|
|
this.slugger
|
|
);
|
|
continue;
|
|
case "code":
|
|
v += this.renderer.code(c.text, c.lang, c.escaped);
|
|
continue;
|
|
case "table":
|
|
for (s = u = "", i = c.header.length, n = 0; n < i; n++)
|
|
s += this.renderer.tablecell(
|
|
this.parseInline(c.tokens.header[n]),
|
|
{ header: !0, align: c.align[n] }
|
|
);
|
|
for (
|
|
u += this.renderer.tablerow(s),
|
|
l = "",
|
|
i = c.cells.length,
|
|
n = 0;
|
|
n < i;
|
|
n++
|
|
) {
|
|
for (
|
|
s = "", o = (a = c.tokens.cells[n]).length, r = 0;
|
|
r < o;
|
|
r++
|
|
)
|
|
s += this.renderer.tablecell(this.parseInline(a[r]), {
|
|
header: !1,
|
|
align: c.align[r],
|
|
});
|
|
l += this.renderer.tablerow(s);
|
|
}
|
|
v += this.renderer.table(u, l);
|
|
continue;
|
|
case "blockquote":
|
|
(l = this.parse(c.tokens)), (v += this.renderer.blockquote(l));
|
|
continue;
|
|
case "list":
|
|
for (
|
|
u = c.ordered,
|
|
k = c.start,
|
|
p = c.loose,
|
|
i = c.items.length,
|
|
l = "",
|
|
n = 0;
|
|
n < i;
|
|
n++
|
|
)
|
|
(f = (d = c.items[n]).checked),
|
|
(g = d.task),
|
|
(h = ""),
|
|
d.task &&
|
|
((m = this.renderer.checkbox(f)),
|
|
p
|
|
? 0 < d.tokens.length && "text" === d.tokens[0].type
|
|
? ((d.tokens[0].text = m + " " + d.tokens[0].text),
|
|
d.tokens[0].tokens &&
|
|
0 < d.tokens[0].tokens.length &&
|
|
"text" === d.tokens[0].tokens[0].type &&
|
|
(d.tokens[0].tokens[0].text =
|
|
m + " " + d.tokens[0].tokens[0].text))
|
|
: d.tokens.unshift({ type: "text", text: m })
|
|
: (h += m)),
|
|
(h += this.parse(d.tokens, p)),
|
|
(l += this.renderer.listitem(h, g, f));
|
|
v += this.renderer.list(l, u, k);
|
|
continue;
|
|
case "html":
|
|
v += this.renderer.html(c.text);
|
|
continue;
|
|
case "paragraph":
|
|
v += this.renderer.paragraph(this.parseInline(c.tokens));
|
|
continue;
|
|
case "text":
|
|
for (
|
|
l = c.tokens ? this.parseInline(c.tokens) : c.text;
|
|
b + 1 < y && "text" === e[b + 1].type;
|
|
|
|
)
|
|
l +=
|
|
"\n" +
|
|
((c = e[++b]).tokens ? this.parseInline(c.tokens) : c.text);
|
|
v += t ? this.renderer.paragraph(l) : l;
|
|
continue;
|
|
default:
|
|
var k = 'Token with "' + c.type + '" type was not found.';
|
|
if (this.options.silent) return void console.error(k);
|
|
throw new Error(k);
|
|
}
|
|
return v;
|
|
}),
|
|
(n.prototype.parseInline = function (e, t) {
|
|
t = t || this.renderer;
|
|
for (var n = "", r = e.length, i = 0; i < r; i++)
|
|
switch ((o = e[i]).type) {
|
|
case "escape":
|
|
n += t.text(o.text);
|
|
break;
|
|
case "html":
|
|
n += t.html(o.text);
|
|
break;
|
|
case "link":
|
|
n += t.link(o.href, o.title, this.parseInline(o.tokens, t));
|
|
break;
|
|
case "image":
|
|
n += t.image(o.href, o.title, o.text);
|
|
break;
|
|
case "strong":
|
|
n += t.strong(this.parseInline(o.tokens, t));
|
|
break;
|
|
case "em":
|
|
n += t.em(this.parseInline(o.tokens, t));
|
|
break;
|
|
case "codespan":
|
|
n += t.codespan(o.text);
|
|
break;
|
|
case "br":
|
|
n += t.br();
|
|
break;
|
|
case "del":
|
|
n += t.del(this.parseInline(o.tokens, t));
|
|
break;
|
|
case "text":
|
|
n += t.text(o.text);
|
|
break;
|
|
default:
|
|
var o = 'Token with "' + o.type + '" type was not found.';
|
|
if (this.options.silent) return void console.error(o);
|
|
throw new Error(o);
|
|
}
|
|
return n;
|
|
}),
|
|
n
|
|
);
|
|
})(),
|
|
un = Pt,
|
|
pn = ee,
|
|
hn = Lt,
|
|
Lt = mt.getDefaults,
|
|
dn = mt.changeDefaults,
|
|
mt = mt.defaults;
|
|
function fn(e, n, r) {
|
|
if (null == e)
|
|
throw new Error("marked(): input parameter is undefined or null");
|
|
if ("string" != typeof e)
|
|
throw new Error(
|
|
"marked(): input parameter is of type " +
|
|
Object.prototype.toString.call(e) +
|
|
", string expected"
|
|
);
|
|
if (
|
|
("function" == typeof n && ((r = n), (n = null)),
|
|
(n = un({}, fn.defaults, n || {})),
|
|
pn(n),
|
|
r)
|
|
) {
|
|
var i,
|
|
o = n.highlight;
|
|
try {
|
|
i = Jt.lex(e, n);
|
|
} catch (e) {
|
|
return r(e);
|
|
}
|
|
function a(t) {
|
|
var e;
|
|
if (!t)
|
|
try {
|
|
e = cn.parse(i, n);
|
|
} catch (e) {
|
|
t = e;
|
|
}
|
|
return (n.highlight = o), t ? r(t) : r(null, e);
|
|
}
|
|
if (!o || o.length < 3) return a();
|
|
if ((delete n.highlight, !i.length)) return a();
|
|
var s = 0;
|
|
return (
|
|
fn.walkTokens(i, function (n) {
|
|
"code" === n.type &&
|
|
(s++,
|
|
setTimeout(function () {
|
|
o(n.text, n.lang, function (e, t) {
|
|
return e
|
|
? a(e)
|
|
: (null != t &&
|
|
t !== n.text &&
|
|
((n.text = t), (n.escaped = !0)),
|
|
void (0 === --s && a()));
|
|
});
|
|
}, 0));
|
|
}),
|
|
void (0 === s && a())
|
|
);
|
|
}
|
|
try {
|
|
var t = Jt.lex(e, n);
|
|
return n.walkTokens && fn.walkTokens(t, n.walkTokens), cn.parse(t, n);
|
|
} catch (e) {
|
|
if (
|
|
((e.message +=
|
|
"\nPlease report this to https://github.com/markedjs/marked."),
|
|
n.silent)
|
|
)
|
|
return (
|
|
"<p>An error occurred:</p><pre>" + hn(e.message + "", !0) + "</pre>"
|
|
);
|
|
throw e;
|
|
}
|
|
}
|
|
(fn.options = fn.setOptions =
|
|
function (e) {
|
|
return un(fn.defaults, e), dn(fn.defaults), fn;
|
|
}),
|
|
(fn.getDefaults = Lt),
|
|
(fn.defaults = mt),
|
|
(fn.use = function (o) {
|
|
var t,
|
|
e = un({}, o);
|
|
if (o.renderer) {
|
|
var n,
|
|
a = fn.defaults.renderer || new rn();
|
|
for (n in o.renderer)
|
|
!(function (r) {
|
|
var i = a[r];
|
|
a[r] = function () {
|
|
for (var e = [], t = arguments.length; t--; ) e[t] = arguments[t];
|
|
var n = o.renderer[r].apply(a, e);
|
|
return !1 === n && (n = i.apply(a, e)), n;
|
|
};
|
|
})(n);
|
|
e.renderer = a;
|
|
}
|
|
if (o.tokenizer) {
|
|
var i,
|
|
s = fn.defaults.tokenizer || new Gt();
|
|
for (i in o.tokenizer)
|
|
!(function () {
|
|
var r = s[i];
|
|
s[i] = function () {
|
|
for (var e = [], t = arguments.length; t--; ) e[t] = arguments[t];
|
|
var n = o.tokenizer[i].apply(s, e);
|
|
return !1 === n && (n = r.apply(s, e)), n;
|
|
};
|
|
})();
|
|
e.tokenizer = s;
|
|
}
|
|
o.walkTokens &&
|
|
((t = fn.defaults.walkTokens),
|
|
(e.walkTokens = function (e) {
|
|
o.walkTokens(e), t && t(e);
|
|
})),
|
|
fn.setOptions(e);
|
|
}),
|
|
(fn.walkTokens = function (e, t) {
|
|
for (var n = 0, r = e; n < r.length; n += 1) {
|
|
var i = r[n];
|
|
switch ((t(i), i.type)) {
|
|
case "table":
|
|
for (var o = 0, a = i.tokens.header; o < a.length; o += 1) {
|
|
var s = a[o];
|
|
fn.walkTokens(s, t);
|
|
}
|
|
for (var l = 0, c = i.tokens.cells; l < c.length; l += 1)
|
|
for (var u = 0, p = c[l]; u < p.length; u += 1) {
|
|
var h = p[u];
|
|
fn.walkTokens(h, t);
|
|
}
|
|
break;
|
|
case "list":
|
|
fn.walkTokens(i.items, t);
|
|
break;
|
|
default:
|
|
i.tokens && fn.walkTokens(i.tokens, t);
|
|
}
|
|
}
|
|
}),
|
|
(fn.parseInline = function (e, t) {
|
|
if (null == e)
|
|
throw new Error(
|
|
"marked.parseInline(): input parameter is undefined or null"
|
|
);
|
|
if ("string" != typeof e)
|
|
throw new Error(
|
|
"marked.parseInline(): input parameter is of type " +
|
|
Object.prototype.toString.call(e) +
|
|
", string expected"
|
|
);
|
|
(t = un({}, fn.defaults, t || {})), pn(t);
|
|
try {
|
|
var n = Jt.lexInline(e, t);
|
|
return (
|
|
t.walkTokens && fn.walkTokens(n, t.walkTokens), cn.parseInline(n, t)
|
|
);
|
|
} catch (e) {
|
|
if (
|
|
((e.message +=
|
|
"\nPlease report this to https://github.com/markedjs/marked."),
|
|
t.silent)
|
|
)
|
|
return (
|
|
"<p>An error occurred:</p><pre>" + hn(e.message + "", !0) + "</pre>"
|
|
);
|
|
throw e;
|
|
}
|
|
}),
|
|
(fn.Parser = cn),
|
|
(fn.parser = cn.parse),
|
|
(fn.Renderer = rn),
|
|
(fn.TextRenderer = on),
|
|
(fn.Lexer = Jt),
|
|
(fn.lexer = Jt.lex),
|
|
(fn.Tokenizer = Gt),
|
|
(fn.Slugger = an);
|
|
var gn = (fn.parse = fn);
|
|
function mn(e, n) {
|
|
if (
|
|
(void 0 === n && (n = '<ul class="app-sub-sidebar">{inner}</ul>'),
|
|
!e || !e.length)
|
|
)
|
|
return "";
|
|
var r = "";
|
|
return (
|
|
e.forEach(function (e) {
|
|
var t = e.title.replace(/(<([^>]+)>)/g, "");
|
|
(r +=
|
|
'<li><a class="section-link" href="' +
|
|
e.slug +
|
|
'" title="' +
|
|
t +
|
|
'">' +
|
|
e.title +
|
|
"</a></li>"),
|
|
e.children && (r += mn(e.children, n));
|
|
}),
|
|
n.replace("{inner}", r)
|
|
);
|
|
}
|
|
function vn(e, t) {
|
|
return '<p class="' + e + '">' + t.slice(5).trim() + "</p>";
|
|
}
|
|
function yn(e, r) {
|
|
var i = [],
|
|
o = {};
|
|
return (
|
|
e.forEach(function (e) {
|
|
var t = e.level || 1,
|
|
n = t - 1;
|
|
r < t ||
|
|
(o[n] ? (o[n].children = (o[n].children || []).concat(e)) : i.push(e),
|
|
(o[t] = e));
|
|
}),
|
|
i
|
|
);
|
|
}
|
|
var bn = {},
|
|
kn = /[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~]/g;
|
|
function wn(e) {
|
|
return e.toLowerCase();
|
|
}
|
|
function xn(e) {
|
|
if ("string" != typeof e) return "";
|
|
var t = e
|
|
.trim()
|
|
.replace(/[A-Z]+/g, wn)
|
|
.replace(/<[^>]+>/g, "")
|
|
.replace(kn, "")
|
|
.replace(/\s/g, "-")
|
|
.replace(/-+/g, "-")
|
|
.replace(/^(\d)/, "_$1"),
|
|
e = bn[t],
|
|
e = l.call(bn, t) ? e + 1 : 0;
|
|
return (bn[t] = e) && (t = t + "-" + e), t;
|
|
}
|
|
function _n(e, t) {
|
|
return (
|
|
'<img class="emoji" src="https://github.githubassets.com/images/icons/emoji/' +
|
|
t +
|
|
'.png" alt="' +
|
|
t +
|
|
'" />'
|
|
);
|
|
}
|
|
function Sn(e) {
|
|
void 0 === e && (e = "");
|
|
var r = {};
|
|
return {
|
|
str: (e =
|
|
e &&
|
|
e
|
|
.replace(/^('|")/, "")
|
|
.replace(/('|")$/, "")
|
|
.replace(/(?:^|\s):([\w-]+:?)=?([\w-%]+)?/g, function (e, t, n) {
|
|
return -1 === t.indexOf(":")
|
|
? ((r[t] = (n && n.replace(/"/g, "")) || !0), "")
|
|
: e;
|
|
})
|
|
.trim()),
|
|
config: r,
|
|
};
|
|
}
|
|
function An(e) {
|
|
return void 0 === e && (e = ""), e.replace(/(<\/?a.*?>)/gi, "");
|
|
}
|
|
xn.clear = function () {
|
|
bn = {};
|
|
};
|
|
var Tn,
|
|
En = ft(function (e) {
|
|
var a,
|
|
s,
|
|
l,
|
|
c,
|
|
u,
|
|
r,
|
|
t,
|
|
i = (function (l) {
|
|
var c = /\blang(?:uage)?-([\w-]+)\b/i,
|
|
t = 0,
|
|
$ = {
|
|
manual: l.Prism && l.Prism.manual,
|
|
disableWorkerMessageHandler:
|
|
l.Prism && l.Prism.disableWorkerMessageHandler,
|
|
util: {
|
|
encode: function e(t) {
|
|
return t instanceof F
|
|
? new F(t.type, e(t.content), t.alias)
|
|
: Array.isArray(t)
|
|
? t.map(e)
|
|
: t
|
|
.replace(/&/g, "&")
|
|
.replace(/</g, "<")
|
|
.replace(/\u00a0/g, " ");
|
|
},
|
|
type: function (e) {
|
|
return Object.prototype.toString.call(e).slice(8, -1);
|
|
},
|
|
objId: function (e) {
|
|
return (
|
|
e.__id || Object.defineProperty(e, "__id", { value: ++t }),
|
|
e.__id
|
|
);
|
|
},
|
|
clone: function n(e, r) {
|
|
var i, t;
|
|
switch (((r = r || {}), $.util.type(e))) {
|
|
case "Object":
|
|
if (((t = $.util.objId(e)), r[t])) return r[t];
|
|
for (var o in ((i = {}), (r[t] = i), e))
|
|
e.hasOwnProperty(o) && (i[o] = n(e[o], r));
|
|
return i;
|
|
case "Array":
|
|
return ((t = $.util.objId(e)), r[t])
|
|
? r[t]
|
|
: ((i = []),
|
|
(r[t] = i),
|
|
e.forEach(function (e, t) {
|
|
i[t] = n(e, r);
|
|
}),
|
|
i);
|
|
default:
|
|
return e;
|
|
}
|
|
},
|
|
getLanguage: function (e) {
|
|
for (; e && !c.test(e.className); ) e = e.parentElement;
|
|
return e
|
|
? (e.className.match(c) || [, "none"])[1].toLowerCase()
|
|
: "none";
|
|
},
|
|
currentScript: function () {
|
|
if ("undefined" == typeof document) return null;
|
|
if ("currentScript" in document)
|
|
return document.currentScript;
|
|
try {
|
|
throw new Error();
|
|
} catch (e) {
|
|
var t = (/at [^(\r\n]*\((.*):.+:.+\)$/i.exec(e.stack) ||
|
|
[])[1];
|
|
if (t) {
|
|
var n,
|
|
r = document.getElementsByTagName("script");
|
|
for (n in r) if (r[n].src == t) return r[n];
|
|
}
|
|
return null;
|
|
}
|
|
},
|
|
isActive: function (e, t, n) {
|
|
for (var r = "no-" + t; e; ) {
|
|
var i = e.classList;
|
|
if (i.contains(t)) return !0;
|
|
if (i.contains(r)) return !1;
|
|
e = e.parentElement;
|
|
}
|
|
return !!n;
|
|
},
|
|
},
|
|
languages: {
|
|
extend: function (e, t) {
|
|
var n,
|
|
r = $.util.clone($.languages[e]);
|
|
for (n in t) r[n] = t[n];
|
|
return r;
|
|
},
|
|
insertBefore: function (n, e, t, r) {
|
|
var i,
|
|
o = (r = r || $.languages)[n],
|
|
a = {};
|
|
for (i in o)
|
|
if (o.hasOwnProperty(i)) {
|
|
if (i == e)
|
|
for (var s in t) t.hasOwnProperty(s) && (a[s] = t[s]);
|
|
t.hasOwnProperty(i) || (a[i] = o[i]);
|
|
}
|
|
var l = r[n];
|
|
return (
|
|
(r[n] = a),
|
|
$.languages.DFS($.languages, function (e, t) {
|
|
t === l && e != n && (this[e] = a);
|
|
}),
|
|
a
|
|
);
|
|
},
|
|
DFS: function e(t, n, r, i) {
|
|
i = i || {};
|
|
var o,
|
|
a,
|
|
s,
|
|
l = $.util.objId;
|
|
for (o in t) {
|
|
t.hasOwnProperty(o) &&
|
|
(n.call(t, o, t[o], r || o),
|
|
(a = t[o]),
|
|
"Object" !== (s = $.util.type(a)) || i[l(a)]
|
|
? "Array" !== s ||
|
|
i[l(a)] ||
|
|
((i[l(a)] = !0), e(a, n, o, i))
|
|
: ((i[l(a)] = !0), e(a, n, null, i)));
|
|
}
|
|
},
|
|
},
|
|
plugins: {},
|
|
highlightAll: function (e, t) {
|
|
$.highlightAllUnder(document, e, t);
|
|
},
|
|
highlightAllUnder: function (e, t, n) {
|
|
var r = {
|
|
callback: n,
|
|
container: e,
|
|
selector:
|
|
'code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code',
|
|
};
|
|
$.hooks.run("before-highlightall", r),
|
|
(r.elements = Array.prototype.slice.apply(
|
|
r.container.querySelectorAll(r.selector)
|
|
)),
|
|
$.hooks.run("before-all-elements-highlight", r);
|
|
for (var i, o = 0; (i = r.elements[o++]); )
|
|
$.highlightElement(i, !0 === t, r.callback);
|
|
},
|
|
highlightElement: function (e, t, n) {
|
|
var r = $.util.getLanguage(e),
|
|
i = $.languages[r];
|
|
e.className =
|
|
e.className.replace(c, "").replace(/\s+/g, " ") +
|
|
" language-" +
|
|
r;
|
|
var o = e.parentElement;
|
|
o &&
|
|
"pre" === o.nodeName.toLowerCase() &&
|
|
(o.className =
|
|
o.className.replace(c, "").replace(/\s+/g, " ") +
|
|
" language-" +
|
|
r);
|
|
var a = {
|
|
element: e,
|
|
language: r,
|
|
grammar: i,
|
|
code: e.textContent,
|
|
};
|
|
function s(e) {
|
|
(a.highlightedCode = e),
|
|
$.hooks.run("before-insert", a),
|
|
(a.element.innerHTML = a.highlightedCode),
|
|
$.hooks.run("after-highlight", a),
|
|
$.hooks.run("complete", a),
|
|
n && n.call(a.element);
|
|
}
|
|
if (($.hooks.run("before-sanity-check", a), !a.code))
|
|
return (
|
|
$.hooks.run("complete", a), void (n && n.call(a.element))
|
|
);
|
|
$.hooks.run("before-highlight", a),
|
|
a.grammar
|
|
? t && l.Worker
|
|
? (((t = new Worker($.filename)).onmessage = function (
|
|
e
|
|
) {
|
|
s(e.data);
|
|
}),
|
|
t.postMessage(
|
|
JSON.stringify({
|
|
language: a.language,
|
|
code: a.code,
|
|
immediateClose: !0,
|
|
})
|
|
))
|
|
: s($.highlight(a.code, a.grammar, a.language))
|
|
: s($.util.encode(a.code));
|
|
},
|
|
highlight: function (e, t, n) {
|
|
n = { code: e, grammar: t, language: n };
|
|
return (
|
|
$.hooks.run("before-tokenize", n),
|
|
(n.tokens = $.tokenize(n.code, n.grammar)),
|
|
$.hooks.run("after-tokenize", n),
|
|
F.stringify($.util.encode(n.tokens), n.language)
|
|
);
|
|
},
|
|
tokenize: function (e, t) {
|
|
var n = t.rest;
|
|
if (n) {
|
|
for (var r in n) t[r] = n[r];
|
|
delete t.rest;
|
|
}
|
|
var i = new o();
|
|
return (
|
|
L(i, i.head, e),
|
|
(function e(t, n, r, i, o, a) {
|
|
for (var s in r)
|
|
if (r.hasOwnProperty(s) && r[s]) {
|
|
var l = r[s];
|
|
l = Array.isArray(l) ? l : [l];
|
|
for (var c = 0; c < l.length; ++c) {
|
|
if (a && a.cause == s + "," + c) return;
|
|
var u,
|
|
p = l[c],
|
|
h = p.inside,
|
|
d = !!p.lookbehind,
|
|
f = !!p.greedy,
|
|
g = p.alias;
|
|
f &&
|
|
!p.pattern.global &&
|
|
((u = p.pattern.toString().match(/[imsuy]*$/)[0]),
|
|
(p.pattern = RegExp(p.pattern.source, u + "g")));
|
|
for (
|
|
var m = p.pattern || p, v = i.next, y = o;
|
|
v !== n.tail && !(a && y >= a.reach);
|
|
y += v.value.length, v = v.next
|
|
) {
|
|
var b = v.value;
|
|
if (n.length > t.length) return;
|
|
if (!(b instanceof F)) {
|
|
var k,
|
|
w = 1;
|
|
if (f) {
|
|
if (!(k = C(m, y, t, d))) break;
|
|
var x = k.index,
|
|
_ = k.index + k[0].length,
|
|
S = y;
|
|
for (S += v.value.length; S <= x; )
|
|
(v = v.next), (S += v.value.length);
|
|
if (
|
|
((S -= v.value.length),
|
|
(y = S),
|
|
v.value instanceof F)
|
|
)
|
|
continue;
|
|
for (
|
|
var A = v;
|
|
A !== n.tail &&
|
|
(S < _ || "string" == typeof A.value);
|
|
A = A.next
|
|
)
|
|
w++, (S += A.value.length);
|
|
w--, (b = t.slice(y, S)), (k.index -= y);
|
|
} else if (!(k = C(m, 0, b, d))) continue;
|
|
var x = k.index,
|
|
T = k[0],
|
|
E = b.slice(0, x),
|
|
R = b.slice(x + T.length),
|
|
O = y + b.length;
|
|
a && O > a.reach && (a.reach = O);
|
|
var b = v.prev;
|
|
E && ((b = L(n, b, E)), (y += E.length)),
|
|
z(n, b, w);
|
|
var T = new F(s, h ? $.tokenize(T, h) : T, g, T);
|
|
(v = L(n, b, T)),
|
|
R && L(n, v, R),
|
|
1 < w &&
|
|
e(t, n, r, v.prev, y, {
|
|
cause: s + "," + c,
|
|
reach: O,
|
|
});
|
|
}
|
|
}
|
|
}
|
|
}
|
|
})(e, i, t, i.head, 0),
|
|
(function (e) {
|
|
var t = [],
|
|
n = e.head.next;
|
|
for (; n !== e.tail; ) t.push(n.value), (n = n.next);
|
|
return t;
|
|
})(i)
|
|
);
|
|
},
|
|
hooks: {
|
|
all: {},
|
|
add: function (e, t) {
|
|
var n = $.hooks.all;
|
|
(n[e] = n[e] || []), n[e].push(t);
|
|
},
|
|
run: function (e, t) {
|
|
var n = $.hooks.all[e];
|
|
if (n && n.length) for (var r, i = 0; (r = n[i++]); ) r(t);
|
|
},
|
|
},
|
|
Token: F,
|
|
};
|
|
function F(e, t, n, r) {
|
|
(this.type = e),
|
|
(this.content = t),
|
|
(this.alias = n),
|
|
(this.length = 0 | (r || "").length);
|
|
}
|
|
function C(e, t, n, r) {
|
|
e.lastIndex = t;
|
|
n = e.exec(n);
|
|
return (
|
|
n &&
|
|
r &&
|
|
n[1] &&
|
|
((r = n[1].length), (n.index += r), (n[0] = n[0].slice(r))),
|
|
n
|
|
);
|
|
}
|
|
function o() {
|
|
var e = { value: null, prev: null, next: null },
|
|
t = { value: null, prev: e, next: null };
|
|
(e.next = t), (this.head = e), (this.tail = t), (this.length = 0);
|
|
}
|
|
function L(e, t, n) {
|
|
var r = t.next,
|
|
n = { value: n, prev: t, next: r };
|
|
return (t.next = n), (r.prev = n), e.length++, n;
|
|
}
|
|
function z(e, t, n) {
|
|
for (var r = t.next, i = 0; i < n && r !== e.tail; i++) r = r.next;
|
|
((t.next = r).prev = t), (e.length -= i);
|
|
}
|
|
if (
|
|
((l.Prism = $),
|
|
(F.stringify = function t(e, n) {
|
|
if ("string" == typeof e) return e;
|
|
if (Array.isArray(e)) {
|
|
var r = "";
|
|
return (
|
|
e.forEach(function (e) {
|
|
r += t(e, n);
|
|
}),
|
|
r
|
|
);
|
|
}
|
|
var i = {
|
|
type: e.type,
|
|
content: t(e.content, n),
|
|
tag: "span",
|
|
classes: ["token", e.type],
|
|
attributes: {},
|
|
language: n,
|
|
},
|
|
e = e.alias;
|
|
e &&
|
|
(Array.isArray(e)
|
|
? Array.prototype.push.apply(i.classes, e)
|
|
: i.classes.push(e)),
|
|
$.hooks.run("wrap", i);
|
|
var o,
|
|
a = "";
|
|
for (o in i.attributes)
|
|
a +=
|
|
" " +
|
|
o +
|
|
'="' +
|
|
(i.attributes[o] || "").replace(/"/g, """) +
|
|
'"';
|
|
return (
|
|
"<" +
|
|
i.tag +
|
|
' class="' +
|
|
i.classes.join(" ") +
|
|
'"' +
|
|
a +
|
|
">" +
|
|
i.content +
|
|
"</" +
|
|
i.tag +
|
|
">"
|
|
);
|
|
}),
|
|
!l.document)
|
|
)
|
|
return (
|
|
l.addEventListener &&
|
|
($.disableWorkerMessageHandler ||
|
|
l.addEventListener(
|
|
"message",
|
|
function (e) {
|
|
var t = JSON.parse(e.data),
|
|
n = t.language,
|
|
e = t.code,
|
|
t = t.immediateClose;
|
|
l.postMessage($.highlight(e, $.languages[n], n)),
|
|
t && l.close();
|
|
},
|
|
!1
|
|
)),
|
|
$
|
|
);
|
|
var e,
|
|
n = $.util.currentScript();
|
|
function r() {
|
|
$.manual || $.highlightAll();
|
|
}
|
|
return (
|
|
n &&
|
|
(($.filename = n.src),
|
|
n.hasAttribute("data-manual") && ($.manual = !0)),
|
|
$.manual ||
|
|
("loading" === (e = document.readyState) ||
|
|
("interactive" === e && n && n.defer)
|
|
? document.addEventListener("DOMContentLoaded", r)
|
|
: window.requestAnimationFrame
|
|
? window.requestAnimationFrame(r)
|
|
: window.setTimeout(r, 16)),
|
|
$
|
|
);
|
|
})(
|
|
"undefined" != typeof window
|
|
? window
|
|
: "undefined" != typeof WorkerGlobalScope &&
|
|
self instanceof WorkerGlobalScope
|
|
? self
|
|
: {}
|
|
);
|
|
function p(e, t) {
|
|
var n = (n = e.className).replace(r, " ") + " language-" + t;
|
|
e.className = n.replace(/\s+/g, " ").trim();
|
|
}
|
|
e.exports && (e.exports = i),
|
|
void 0 !== dt && (dt.Prism = i),
|
|
(i.languages.markup = {
|
|
comment: /<!--[\s\S]*?-->/,
|
|
prolog: /<\?[\s\S]+?\?>/,
|
|
doctype: {
|
|
pattern:
|
|
/<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\]\s*)?>/i,
|
|
greedy: !0,
|
|
inside: {
|
|
"internal-subset": {
|
|
pattern: /(\[)[\s\S]+(?=\]>$)/,
|
|
lookbehind: !0,
|
|
greedy: !0,
|
|
inside: null,
|
|
},
|
|
string: { pattern: /"[^"]*"|'[^']*'/, greedy: !0 },
|
|
punctuation: /^<!|>$|[[\]]/,
|
|
"doctype-tag": /^DOCTYPE/,
|
|
name: /[^\s<>'"]+/,
|
|
},
|
|
},
|
|
cdata: /<!\[CDATA\[[\s\S]*?]]>/i,
|
|
tag: {
|
|
pattern:
|
|
/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,
|
|
greedy: !0,
|
|
inside: {
|
|
tag: {
|
|
pattern: /^<\/?[^\s>\/]+/,
|
|
inside: { punctuation: /^<\/?/, namespace: /^[^\s>\/:]+:/ },
|
|
},
|
|
"attr-value": {
|
|
pattern: /=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,
|
|
inside: {
|
|
punctuation: [{ pattern: /^=/, alias: "attr-equals" }, /"|'/],
|
|
},
|
|
},
|
|
punctuation: /\/?>/,
|
|
"attr-name": {
|
|
pattern: /[^\s>\/]+/,
|
|
inside: { namespace: /^[^\s>\/:]+:/ },
|
|
},
|
|
},
|
|
},
|
|
entity: [
|
|
{ pattern: /&[\da-z]{1,8};/i, alias: "named-entity" },
|
|
/&#x?[\da-f]{1,8};/i,
|
|
],
|
|
}),
|
|
(i.languages.markup.tag.inside["attr-value"].inside.entity =
|
|
i.languages.markup.entity),
|
|
(i.languages.markup.doctype.inside["internal-subset"].inside =
|
|
i.languages.markup),
|
|
i.hooks.add("wrap", function (e) {
|
|
"entity" === e.type &&
|
|
(e.attributes.title = e.content.replace(/&/, "&"));
|
|
}),
|
|
Object.defineProperty(i.languages.markup.tag, "addInlined", {
|
|
value: function (e, t) {
|
|
var n = {};
|
|
(n["language-" + t] = {
|
|
pattern: /(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,
|
|
lookbehind: !0,
|
|
inside: i.languages[t],
|
|
}),
|
|
(n.cdata = /^<!\[CDATA\[|\]\]>$/i);
|
|
n = {
|
|
"included-cdata": {
|
|
pattern: /<!\[CDATA\[[\s\S]*?\]\]>/i,
|
|
inside: n,
|
|
},
|
|
};
|
|
n["language-" + t] = { pattern: /[\s\S]+/, inside: i.languages[t] };
|
|
t = {};
|
|
(t[e] = {
|
|
pattern: RegExp(
|
|
/(<__[^>]*>)(?:<!\[CDATA\[(?:[^\]]|\](?!\]>))*\]\]>|(?!<!\[CDATA\[)[\s\S])*?(?=<\/__>)/.source.replace(
|
|
/__/g,
|
|
function () {
|
|
return e;
|
|
}
|
|
),
|
|
"i"
|
|
),
|
|
lookbehind: !0,
|
|
greedy: !0,
|
|
inside: n,
|
|
}),
|
|
i.languages.insertBefore("markup", "cdata", t);
|
|
},
|
|
}),
|
|
(i.languages.html = i.languages.markup),
|
|
(i.languages.mathml = i.languages.markup),
|
|
(i.languages.svg = i.languages.markup),
|
|
(i.languages.xml = i.languages.extend("markup", {})),
|
|
(i.languages.ssml = i.languages.xml),
|
|
(i.languages.atom = i.languages.xml),
|
|
(i.languages.rss = i.languages.xml),
|
|
(function (e) {
|
|
var t = /("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/;
|
|
(e.languages.css = {
|
|
comment: /\/\*[\s\S]*?\*\//,
|
|
atrule: {
|
|
pattern: /@[\w-](?:[^;{\s]|\s+(?![\s{]))*(?:;|(?=\s*\{))/,
|
|
inside: {
|
|
rule: /^@[\w-]+/,
|
|
"selector-function-argument": {
|
|
pattern:
|
|
/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,
|
|
lookbehind: !0,
|
|
alias: "selector",
|
|
},
|
|
keyword: {
|
|
pattern: /(^|[^\w-])(?:and|not|only|or)(?![\w-])/,
|
|
lookbehind: !0,
|
|
},
|
|
},
|
|
},
|
|
url: {
|
|
pattern: RegExp(
|
|
"\\burl\\((?:" +
|
|
t.source +
|
|
"|" +
|
|
/(?:[^\\\r\n()"']|\\[\s\S])*/.source +
|
|
")\\)",
|
|
"i"
|
|
),
|
|
greedy: !0,
|
|
inside: {
|
|
function: /^url/i,
|
|
punctuation: /^\(|\)$/,
|
|
string: { pattern: RegExp("^" + t.source + "$"), alias: "url" },
|
|
},
|
|
},
|
|
selector: RegExp(
|
|
"[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|" +
|
|
t.source +
|
|
")*(?=\\s*\\{)"
|
|
),
|
|
string: { pattern: t, greedy: !0 },
|
|
property:
|
|
/(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,
|
|
important: /!important\b/i,
|
|
function: /[-a-z0-9]+(?=\()/i,
|
|
punctuation: /[(){};:,]/,
|
|
}),
|
|
(e.languages.css.atrule.inside.rest = e.languages.css);
|
|
t = e.languages.markup;
|
|
t &&
|
|
(t.tag.addInlined("style", "css"),
|
|
e.languages.insertBefore(
|
|
"inside",
|
|
"attr-value",
|
|
{
|
|
"style-attr": {
|
|
pattern: /(^|["'\s])style\s*=\s*(?:"[^"]*"|'[^']*')/i,
|
|
lookbehind: !0,
|
|
inside: {
|
|
"attr-value": {
|
|
pattern: /=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,
|
|
inside: {
|
|
style: {
|
|
pattern: /(["'])[\s\S]+(?=["']$)/,
|
|
lookbehind: !0,
|
|
alias: "language-css",
|
|
inside: e.languages.css,
|
|
},
|
|
punctuation: [
|
|
{ pattern: /^=/, alias: "attr-equals" },
|
|
/"|'/,
|
|
],
|
|
},
|
|
},
|
|
"attr-name": /^style/i,
|
|
},
|
|
},
|
|
},
|
|
t.tag
|
|
));
|
|
})(i),
|
|
(i.languages.clike = {
|
|
comment: [
|
|
{
|
|
pattern: /(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,
|
|
lookbehind: !0,
|
|
greedy: !0,
|
|
},
|
|
{ pattern: /(^|[^\\:])\/\/.*/, lookbehind: !0, greedy: !0 },
|
|
],
|
|
string: {
|
|
pattern: /(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,
|
|
greedy: !0,
|
|
},
|
|
"class-name": {
|
|
pattern:
|
|
/(\b(?:class|interface|extends|implements|trait|instanceof|new)\s+|\bcatch\s+\()[\w.\\]+/i,
|
|
lookbehind: !0,
|
|
inside: { punctuation: /[.\\]/ },
|
|
},
|
|
keyword:
|
|
/\b(?:if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/,
|
|
boolean: /\b(?:true|false)\b/,
|
|
function: /\w+(?=\()/,
|
|
number: /\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,
|
|
operator: /[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,
|
|
punctuation: /[{}[\];(),.:]/,
|
|
}),
|
|
(i.languages.javascript = i.languages.extend("clike", {
|
|
"class-name": [
|
|
i.languages.clike["class-name"],
|
|
{
|
|
pattern:
|
|
/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:prototype|constructor))/,
|
|
lookbehind: !0,
|
|
},
|
|
],
|
|
keyword: [
|
|
{ pattern: /((?:^|})\s*)(?:catch|finally)\b/, lookbehind: !0 },
|
|
{
|
|
pattern:
|
|
/(^|[^.]|\.\.\.\s*)\b(?:as|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|for|from|function|(?:get|set)(?=\s*[\[$\w\xA0-\uFFFF])|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,
|
|
lookbehind: !0,
|
|
},
|
|
],
|
|
function:
|
|
/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,
|
|
number:
|
|
/\b(?:(?:0[xX](?:[\dA-Fa-f](?:_[\dA-Fa-f])?)+|0[bB](?:[01](?:_[01])?)+|0[oO](?:[0-7](?:_[0-7])?)+)n?|(?:\d(?:_\d)?)+n|NaN|Infinity)\b|(?:\b(?:\d(?:_\d)?)+\.?(?:\d(?:_\d)?)*|\B\.(?:\d(?:_\d)?)+)(?:[Ee][+-]?(?:\d(?:_\d)?)+)?/,
|
|
operator:
|
|
/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/,
|
|
})),
|
|
(i.languages.javascript["class-name"][0].pattern =
|
|
/(\b(?:class|interface|extends|implements|instanceof|new)\s+)[\w.\\]+/),
|
|
i.languages.insertBefore("javascript", "keyword", {
|
|
regex: {
|
|
pattern:
|
|
/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*]|\\.|[^/\\\[\r\n])+\/[gimyus]{0,6}(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/,
|
|
lookbehind: !0,
|
|
greedy: !0,
|
|
inside: {
|
|
"regex-source": {
|
|
pattern: /^(\/)[\s\S]+(?=\/[a-z]*$)/,
|
|
lookbehind: !0,
|
|
alias: "language-regex",
|
|
inside: i.languages.regex,
|
|
},
|
|
"regex-flags": /[a-z]+$/,
|
|
"regex-delimiter": /^\/|\/$/,
|
|
},
|
|
},
|
|
"function-variable": {
|
|
pattern:
|
|
/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,
|
|
alias: "function",
|
|
},
|
|
parameter: [
|
|
{
|
|
pattern:
|
|
/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,
|
|
lookbehind: !0,
|
|
inside: i.languages.javascript,
|
|
},
|
|
{
|
|
pattern:
|
|
/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,
|
|
inside: i.languages.javascript,
|
|
},
|
|
{
|
|
pattern:
|
|
/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,
|
|
lookbehind: !0,
|
|
inside: i.languages.javascript,
|
|
},
|
|
{
|
|
pattern:
|
|
/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,
|
|
lookbehind: !0,
|
|
inside: i.languages.javascript,
|
|
},
|
|
],
|
|
constant: /\b[A-Z](?:[A-Z_]|\dx?)*\b/,
|
|
}),
|
|
i.languages.insertBefore("javascript", "string", {
|
|
"template-string": {
|
|
pattern:
|
|
/`(?:\\[\s\S]|\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})+}|(?!\${)[^\\`])*`/,
|
|
greedy: !0,
|
|
inside: {
|
|
"template-punctuation": { pattern: /^`|`$/, alias: "string" },
|
|
interpolation: {
|
|
pattern:
|
|
/((?:^|[^\\])(?:\\{2})*)\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})+}/,
|
|
lookbehind: !0,
|
|
inside: {
|
|
"interpolation-punctuation": {
|
|
pattern: /^\${|}$/,
|
|
alias: "punctuation",
|
|
},
|
|
rest: i.languages.javascript,
|
|
},
|
|
},
|
|
string: /[\s\S]+/,
|
|
},
|
|
},
|
|
}),
|
|
i.languages.markup &&
|
|
i.languages.markup.tag.addInlined("script", "javascript"),
|
|
(i.languages.js = i.languages.javascript),
|
|
"undefined" != typeof self &&
|
|
self.Prism &&
|
|
self.document &&
|
|
(Element.prototype.matches ||
|
|
(Element.prototype.matches =
|
|
Element.prototype.msMatchesSelector ||
|
|
Element.prototype.webkitMatchesSelector),
|
|
(a = window.Prism),
|
|
(s = {
|
|
js: "javascript",
|
|
py: "python",
|
|
rb: "ruby",
|
|
ps1: "powershell",
|
|
psm1: "powershell",
|
|
sh: "bash",
|
|
bat: "batch",
|
|
h: "c",
|
|
tex: "latex",
|
|
}),
|
|
(u =
|
|
"pre[data-src]:not([" +
|
|
(l = "data-src-status") +
|
|
'="loaded"]):not([' +
|
|
l +
|
|
'="' +
|
|
(c = "loading") +
|
|
'"])'),
|
|
(r = /\blang(?:uage)?-([\w-]+)\b/i),
|
|
a.hooks.add("before-highlightall", function (e) {
|
|
e.selector += ", " + u;
|
|
}),
|
|
a.hooks.add("before-sanity-check", function (e) {
|
|
var t,
|
|
n,
|
|
r,
|
|
i,
|
|
o = e.element;
|
|
o.matches(u) &&
|
|
((e.code = ""),
|
|
o.setAttribute(l, c),
|
|
((t = o.appendChild(document.createElement("CODE"))).textContent =
|
|
"Loading…"),
|
|
(n = o.getAttribute("data-src")),
|
|
"none" === (e = e.language) &&
|
|
((r = (/\.(\w+)$/.exec(n) || [, "none"])[1]), (e = s[r] || r)),
|
|
p(t, e),
|
|
p(o, e),
|
|
(r = a.plugins.autoloader) && r.loadLanguages(e),
|
|
(i = new XMLHttpRequest()).open("GET", n, !0),
|
|
(i.onreadystatechange = function () {
|
|
4 == i.readyState &&
|
|
(i.status < 400 && i.responseText
|
|
? (o.setAttribute(l, "loaded"),
|
|
(t.textContent = i.responseText),
|
|
a.highlightElement(t))
|
|
: (o.setAttribute(l, "failed"),
|
|
400 <= i.status
|
|
? (t.textContent =
|
|
"✖ Error " +
|
|
i.status +
|
|
" while fetching file: " +
|
|
i.statusText)
|
|
: (t.textContent =
|
|
"✖ Error: File does not exist or is empty")));
|
|
}),
|
|
i.send(null));
|
|
}),
|
|
(t = !(a.plugins.fileHighlight = {
|
|
highlight: function (e) {
|
|
for (
|
|
var t, n = (e || document).querySelectorAll(u), r = 0;
|
|
(t = n[r++]);
|
|
|
|
)
|
|
a.highlightElement(t);
|
|
},
|
|
})),
|
|
(a.fileHighlight = function () {
|
|
t ||
|
|
(console.warn(
|
|
"Prism.fileHighlight is deprecated. Use `Prism.plugins.fileHighlight.highlight` instead."
|
|
),
|
|
(t = !0)),
|
|
a.plugins.fileHighlight.highlight.apply(this, arguments);
|
|
}));
|
|
});
|
|
function Rn(e, t) {
|
|
return "___" + e.toUpperCase() + t + "___";
|
|
}
|
|
(Tn = Prism),
|
|
Object.defineProperties((Tn.languages["markup-templating"] = {}), {
|
|
buildPlaceholders: {
|
|
value: function (r, i, e, o) {
|
|
var a;
|
|
r.language === i &&
|
|
((a = r.tokenStack = []),
|
|
(r.code = r.code.replace(e, function (e) {
|
|
if ("function" == typeof o && !o(e)) return e;
|
|
for (var t, n = a.length; -1 !== r.code.indexOf((t = Rn(i, n))); )
|
|
++n;
|
|
return (a[n] = e), t;
|
|
})),
|
|
(r.grammar = Tn.languages.markup));
|
|
},
|
|
},
|
|
tokenizePlaceholders: {
|
|
value: function (c, u) {
|
|
var p, h;
|
|
c.language === u &&
|
|
c.tokenStack &&
|
|
((c.grammar = Tn.languages[u]),
|
|
(p = 0),
|
|
(h = Object.keys(c.tokenStack)),
|
|
(function e(t) {
|
|
for (var n = 0; n < t.length && !(p >= h.length); n++) {
|
|
var r,
|
|
i,
|
|
o,
|
|
a,
|
|
s,
|
|
l = t[n];
|
|
"string" == typeof l ||
|
|
(l.content && "string" == typeof l.content)
|
|
? ((i = h[p]),
|
|
(o = c.tokenStack[i]),
|
|
(r = "string" == typeof l ? l : l.content),
|
|
(s = Rn(u, i)),
|
|
-1 < (a = r.indexOf(s)) &&
|
|
(++p,
|
|
(i = r.substring(0, a)),
|
|
(o = new Tn.Token(
|
|
u,
|
|
Tn.tokenize(o, c.grammar),
|
|
"language-" + u,
|
|
o
|
|
)),
|
|
(a = r.substring(a + s.length)),
|
|
(s = []),
|
|
i && s.push.apply(s, e([i])),
|
|
s.push(o),
|
|
a && s.push.apply(s, e([a])),
|
|
"string" == typeof l
|
|
? t.splice.apply(t, [n, 1].concat(s))
|
|
: (l.content = s)))
|
|
: l.content && e(l.content);
|
|
}
|
|
return t;
|
|
})(c.tokens));
|
|
},
|
|
},
|
|
});
|
|
function On(i, e) {
|
|
var o = this;
|
|
(this.config = i),
|
|
(this.router = e),
|
|
(this.cacheTree = {}),
|
|
(this.toc = []),
|
|
(this.cacheTOC = {}),
|
|
(this.linkTarget = i.externalLinkTarget || "_blank"),
|
|
(this.linkRel =
|
|
"_blank" === this.linkTarget ? i.externalLinkRel || "noopener" : ""),
|
|
(this.contentBase = e.getBasePath());
|
|
var t = this._initRenderer();
|
|
this.heading = t.heading;
|
|
var a = r((e = i.markdown || {}))
|
|
? e(gn, t)
|
|
: (gn.setOptions(y(e, { renderer: y(t, e.renderer) })), gn);
|
|
(this._marked = a),
|
|
(this.compile = function (n) {
|
|
var r = !0,
|
|
e = s(function (e) {
|
|
r = !1;
|
|
var t = "";
|
|
return n
|
|
? ((t = c(n) ? a(n) : a.parser(n)),
|
|
(t = i.noEmoji
|
|
? t
|
|
: t
|
|
.replace(/:\+1:/g, ":thumbsup:")
|
|
.replace(/:-1:/g, ":thumbsdown:")
|
|
.replace(
|
|
/<(pre|template|code)[^>]*?>[\s\S]+?<\/(pre|template|code)>/g,
|
|
function (e) {
|
|
return e.replace(/:/g, "__colon__");
|
|
}
|
|
)
|
|
.replace(/:(\w+?):/gi, window.emojify || _n)
|
|
.replace(/__colon__/g, ":")),
|
|
xn.clear(),
|
|
t)
|
|
: n;
|
|
})(n),
|
|
t = o.router.parse().file;
|
|
return (
|
|
r ? (o.toc = o.cacheTOC[t]) : (o.cacheTOC[t] = [].concat(o.toc)), e
|
|
);
|
|
});
|
|
}
|
|
var $n = {},
|
|
Fn = {
|
|
markdown: function (e) {
|
|
return { url: e };
|
|
},
|
|
mermaid: function (e) {
|
|
return { url: e };
|
|
},
|
|
iframe: function (e, t) {
|
|
return {
|
|
html:
|
|
'<iframe src="' +
|
|
e +
|
|
'" ' +
|
|
(t || "width=100% height=400") +
|
|
"></iframe>",
|
|
};
|
|
},
|
|
video: function (e, t) {
|
|
return {
|
|
html:
|
|
'<video src="' +
|
|
e +
|
|
'" ' +
|
|
(t || "controls") +
|
|
">Not Support</video>",
|
|
};
|
|
},
|
|
audio: function (e, t) {
|
|
return {
|
|
html:
|
|
'<audio src="' +
|
|
e +
|
|
'" ' +
|
|
(t || "controls") +
|
|
">Not Support</audio>",
|
|
};
|
|
},
|
|
code: function (e, t) {
|
|
var n = e.match(/\.(\w+)$/);
|
|
return (
|
|
"md" === (n = t || (n && n[1])) && (n = "markdown"),
|
|
{ url: e, lang: n }
|
|
);
|
|
},
|
|
};
|
|
(On.prototype.compileEmbed = function (e, t) {
|
|
var n,
|
|
r,
|
|
i = Sn(t),
|
|
o = i.str,
|
|
i = i.config;
|
|
if (((t = o), i.include))
|
|
return (
|
|
O(e) || (e = N(this.contentBase, F(this.router.getCurrentPath()), e)),
|
|
i.type && (r = Fn[i.type])
|
|
? ((n = r.call(this, e, t)).type = i.type)
|
|
: ((r = "code"),
|
|
/\.(md|markdown)/.test(e)
|
|
? (r = "markdown")
|
|
: /\.mmd/.test(e)
|
|
? (r = "mermaid")
|
|
: /\.html?/.test(e)
|
|
? (r = "iframe")
|
|
: /\.(mp4|ogg)/.test(e)
|
|
? (r = "video")
|
|
: /\.mp3/.test(e) && (r = "audio"),
|
|
((n = Fn[r].call(this, e, t)).type = r)),
|
|
(n.fragment = i.fragment),
|
|
n
|
|
);
|
|
}),
|
|
(On.prototype._matchNotCompileLink = function (e) {
|
|
for (var t = this.config.noCompileLinks || [], n = 0; n < t.length; n++) {
|
|
var r = t[n];
|
|
if (($n[r] || ($n[r] = new RegExp("^" + r + "$"))).test(e)) return e;
|
|
}
|
|
}),
|
|
(On.prototype._initRenderer = function () {
|
|
var a,
|
|
s,
|
|
l,
|
|
c,
|
|
u,
|
|
p,
|
|
e = new gn.Renderer(),
|
|
t = this.linkTarget,
|
|
n = this.linkRel,
|
|
o = this.router,
|
|
r = this.contentBase,
|
|
h = this,
|
|
i = {};
|
|
return (
|
|
(i.heading = e.heading =
|
|
function (e, t) {
|
|
var n = Sn(e),
|
|
r = n.str,
|
|
i = n.config,
|
|
e = { level: t, title: An(r) };
|
|
/<!-- {docsify-ignore} -->/g.test(r) &&
|
|
((r = r.replace("\x3c!-- {docsify-ignore} --\x3e", "")),
|
|
(e.title = An(r)),
|
|
(e.ignoreSubHeading = !0)),
|
|
/{docsify-ignore}/g.test(r) &&
|
|
((r = r.replace("{docsify-ignore}", "")),
|
|
(e.title = An(r)),
|
|
(e.ignoreSubHeading = !0)),
|
|
/<!-- {docsify-ignore-all} -->/g.test(r) &&
|
|
((r = r.replace("\x3c!-- {docsify-ignore-all} --\x3e", "")),
|
|
(e.title = An(r)),
|
|
(e.ignoreAllSubs = !0)),
|
|
/{docsify-ignore-all}/g.test(r) &&
|
|
((r = r.replace("{docsify-ignore-all}", "")),
|
|
(e.title = An(r)),
|
|
(e.ignoreAllSubs = !0));
|
|
(n = xn(i.id || r)), (i = o.toURL(o.getCurrentPath(), { id: n }));
|
|
return (
|
|
(e.slug = i),
|
|
h.toc.push(e),
|
|
"<h" +
|
|
t +
|
|
' id="' +
|
|
n +
|
|
'"><a href="' +
|
|
i +
|
|
'" data-id="' +
|
|
n +
|
|
'" class="anchor"><span>' +
|
|
r +
|
|
"</span></a></h" +
|
|
t +
|
|
">"
|
|
);
|
|
}),
|
|
(i.code = { renderer: e }.renderer.code =
|
|
function (e, t) {
|
|
void 0 === t && (t = "markup");
|
|
var n = En.languages[t] || En.languages.markup;
|
|
return (
|
|
'<pre v-pre data-lang="' +
|
|
t +
|
|
'"><code class="lang-' +
|
|
t +
|
|
'">' +
|
|
En.highlight(e.replace(/@DOCSIFY_QM@/g, "`"), n, t) +
|
|
"</code></pre>"
|
|
);
|
|
}),
|
|
(i.link =
|
|
((n = (t = {
|
|
renderer: e,
|
|
router: o,
|
|
linkTarget: t,
|
|
linkRel: n,
|
|
compilerClass: h,
|
|
}).renderer),
|
|
(a = t.router),
|
|
(s = t.linkTarget),
|
|
(l = t.linkRel),
|
|
(c = t.compilerClass),
|
|
(n.link = function (e, t, n) {
|
|
void 0 === t && (t = "");
|
|
var r = [],
|
|
i = Sn(t),
|
|
o = i.str,
|
|
i = i.config;
|
|
return (
|
|
(s = i.target || s),
|
|
(l =
|
|
"_blank" === s ? c.config.externalLinkRel || "noopener" : ""),
|
|
(t = o),
|
|
O(e) || c._matchNotCompileLink(e) || i.ignore
|
|
? (O(e) ||
|
|
"./" !== e.slice(0, 2) ||
|
|
(e =
|
|
document.URL.replace(/\/(?!.*\/).*/, "/").replace(
|
|
"#/./",
|
|
""
|
|
) + e),
|
|
r.push(
|
|
0 === e.indexOf("mailto:") ? "" : 'target="' + s + '"'
|
|
),
|
|
r.push(
|
|
0 !== e.indexOf("mailto:") && "" !== l
|
|
? ' rel="' + l + '"'
|
|
: ""
|
|
))
|
|
: (e === c.config.homepage && (e = "README"),
|
|
(e = a.toURL(e, null, a.getCurrentPath()))),
|
|
i.crossorgin &&
|
|
"_self" === s &&
|
|
"history" === c.config.routerMode &&
|
|
-1 === c.config.crossOriginLinks.indexOf(e) &&
|
|
c.config.crossOriginLinks.push(e),
|
|
i.disabled && (r.push("disabled"), (e = "javascript:void(0)")),
|
|
i.class && r.push('class="' + i.class + '"'),
|
|
i.id && r.push('id="' + i.id + '"'),
|
|
t && r.push('title="' + t + '"'),
|
|
'<a href="' + e + '" ' + r.join(" ") + ">" + n + "</a>"
|
|
);
|
|
}))),
|
|
(i.paragraph = { renderer: e }.renderer.paragraph =
|
|
function (e) {
|
|
e = /^!>/.test(e)
|
|
? vn("tip", e)
|
|
: /^\?>/.test(e)
|
|
? vn("warn", e)
|
|
: "<p>" + e + "</p>";
|
|
return e;
|
|
}),
|
|
(i.image =
|
|
((r = (n = { renderer: e, contentBase: r, router: o }).renderer),
|
|
(u = n.contentBase),
|
|
(p = n.router),
|
|
(r.image = function (e, t, n) {
|
|
var r = e,
|
|
i = [],
|
|
o = Sn(t),
|
|
a = o.str,
|
|
o = o.config;
|
|
return (
|
|
(t = a),
|
|
o["no-zoom"] && i.push("data-no-zoom"),
|
|
t && i.push('title="' + t + '"'),
|
|
o.size &&
|
|
((t = (a = o.size.split("x"))[0]),
|
|
(a = a[1])
|
|
? i.push('width="' + t + '" height="' + a + '"')
|
|
: i.push('width="' + t + '"')),
|
|
o.class && i.push('class="' + o.class + '"'),
|
|
o.id && i.push('id="' + o.id + '"'),
|
|
O(e) || (r = N(u, F(p.getCurrentPath()), e)),
|
|
0 < i.length
|
|
? '<img src="' +
|
|
r +
|
|
'" data-origin="' +
|
|
e +
|
|
'" alt="' +
|
|
n +
|
|
'" ' +
|
|
i.join(" ") +
|
|
" />"
|
|
: '<img src="' +
|
|
r +
|
|
'" data-origin="' +
|
|
e +
|
|
'" alt="' +
|
|
n +
|
|
'"' +
|
|
i +
|
|
">"
|
|
);
|
|
}))),
|
|
(i.list = { renderer: e }.renderer.list =
|
|
function (e, t, n) {
|
|
t = t ? "ol" : "ul";
|
|
return (
|
|
"<" +
|
|
t +
|
|
" " +
|
|
[
|
|
/<li class="task-list-item">/.test(
|
|
e.split('class="task-list"')[0]
|
|
)
|
|
? 'class="task-list"'
|
|
: "",
|
|
n && 1 < n ? 'start="' + n + '"' : "",
|
|
]
|
|
.join(" ")
|
|
.trim() +
|
|
">" +
|
|
e +
|
|
"</" +
|
|
t +
|
|
">"
|
|
);
|
|
}),
|
|
(i.listitem = { renderer: e }.renderer.listitem =
|
|
function (e) {
|
|
return /^(<input.*type="checkbox"[^>]*>)/.test(e)
|
|
? '<li class="task-list-item"><label>' + e + "</label></li>"
|
|
: "<li>" + e + "</li>";
|
|
}),
|
|
(e.origin = i),
|
|
e
|
|
);
|
|
}),
|
|
(On.prototype.sidebar = function (e, t) {
|
|
var n = this.toc,
|
|
r = this.router.getCurrentPath(),
|
|
i = "";
|
|
if (e) i = this.compile(e);
|
|
else {
|
|
for (var o = 0; o < n.length; o++)
|
|
if (n[o].ignoreSubHeading) {
|
|
var a = n[o].level;
|
|
n.splice(o, 1);
|
|
for (var s = o; s < n.length && a < n[s].level; s++)
|
|
n.splice(s, 1) && s-- && o++;
|
|
o--;
|
|
}
|
|
(t = this.cacheTree[r] || yn(n, t)), (i = mn(t, "<ul>{inner}</ul>"));
|
|
this.cacheTree[r] = t;
|
|
}
|
|
return i;
|
|
}),
|
|
(On.prototype.subSidebar = function (e) {
|
|
if (e) {
|
|
var t = this.router.getCurrentPath(),
|
|
n = this.cacheTree,
|
|
r = this.toc;
|
|
r[0] && r[0].ignoreAllSubs && r.splice(0),
|
|
r[0] && 1 === r[0].level && r.shift();
|
|
for (var i = 0; i < r.length; i++)
|
|
r[i].ignoreSubHeading && r.splice(i, 1) && i--;
|
|
e = n[t] || yn(r, e);
|
|
return (n[t] = e), (this.toc = []), mn(e);
|
|
}
|
|
this.toc = [];
|
|
}),
|
|
(On.prototype.header = function (e, t) {
|
|
return this.heading(e, t);
|
|
}),
|
|
(On.prototype.article = function (e) {
|
|
return this.compile(e);
|
|
}),
|
|
(On.prototype.cover = function (e) {
|
|
var t = this.toc.slice(),
|
|
e = this.compile(e);
|
|
return (this.toc = t.slice()), e;
|
|
});
|
|
var Cn,
|
|
Ln = function (e) {
|
|
var t = (function (e) {
|
|
e = e.match(/^[ \t]*(?=\S)/gm);
|
|
return e
|
|
? e.reduce(function (e, t) {
|
|
return Math.min(e, t.length);
|
|
}, 1 / 0)
|
|
: 0;
|
|
})(e);
|
|
if (0 === t) return e;
|
|
t = new RegExp("^[ \\t]{" + t + "}", "gm");
|
|
return e.replace(t, "");
|
|
},
|
|
zn = {};
|
|
function Nn(e, r) {
|
|
var o = e.compiler,
|
|
i = e.raw;
|
|
void 0 === i && (i = "");
|
|
var t = e.fetch,
|
|
e = zn[i];
|
|
if (e) {
|
|
var n = e.slice();
|
|
return (n.links = e.links), r(n);
|
|
}
|
|
var n = o._marked,
|
|
a = n.lexer(i),
|
|
s = [],
|
|
l = n.Lexer.rules.inline.link,
|
|
c = a.links;
|
|
a.forEach(function (e, i) {
|
|
"paragraph" === e.type &&
|
|
(e.text = e.text.replace(
|
|
new RegExp(l.source, "g"),
|
|
function (e, t, n, r) {
|
|
r = o.compileEmbed(n, r);
|
|
return r && s.push({ index: i, embed: r }), e;
|
|
}
|
|
));
|
|
});
|
|
var u = [];
|
|
!(function (e, o) {
|
|
var t,
|
|
n = e.embedTokens,
|
|
a = e.compile,
|
|
s = (e.fetch, 0),
|
|
l = 1;
|
|
if (!n.length) return o({});
|
|
for (; (t = n[s++]); ) {
|
|
var r = (function (i) {
|
|
return function (e) {
|
|
var t, n, r;
|
|
e &&
|
|
("markdown" === i.embed.type
|
|
? ((n = i.embed.url.split("/")).pop(),
|
|
(n = n.join("/")),
|
|
(e = e.replace(/\[([^[\]]+)\]\(([^)]+)\)/g, function (e) {
|
|
var t = e.indexOf("(");
|
|
return "(." === e.slice(t, t + 2)
|
|
? e.substring(0, t) +
|
|
"(" +
|
|
window.location.protocol +
|
|
"//" +
|
|
window.location.host +
|
|
n +
|
|
"/" +
|
|
e.substring(t + 1, e.length - 1) +
|
|
")"
|
|
: e;
|
|
})),
|
|
!0 === (($docsify.frontMatter || {}).installed || !1) &&
|
|
(e = $docsify.frontMatter.parseMarkdown(e)),
|
|
(t = a.lexer(e)))
|
|
: "code" === i.embed.type
|
|
? (i.embed.fragment &&
|
|
((r = i.embed.fragment),
|
|
(r = new RegExp(
|
|
"(?:###|\\/\\/\\/)\\s*\\[" +
|
|
r +
|
|
"\\]([\\s\\S]*)(?:###|\\/\\/\\/)\\s*\\[" +
|
|
r +
|
|
"\\]"
|
|
)),
|
|
(e = Ln((e.match(r) || [])[1] || "").trim())),
|
|
(t = a.lexer(
|
|
"```" +
|
|
i.embed.lang +
|
|
"\n" +
|
|
e.replace(/`/g, "@DOCSIFY_QM@") +
|
|
"\n```\n"
|
|
)))
|
|
: "mermaid" === i.embed.type
|
|
? ((t = [
|
|
{
|
|
type: "html",
|
|
text: '<div class="mermaid">\n' + e + "\n</div>",
|
|
},
|
|
]).links = {})
|
|
: ((t = [{ type: "html", text: e }]).links = {})),
|
|
o({ token: i, embedToken: t }),
|
|
++l >= s && o({});
|
|
};
|
|
})(t);
|
|
t.embed.url ? ce(t.embed.url).then(r) : r(t.embed.html);
|
|
}
|
|
})({ compile: n, embedTokens: s, fetch: t }, function (e) {
|
|
var t,
|
|
n = e.embedToken,
|
|
e = e.token;
|
|
e
|
|
? ((t = e.index),
|
|
u.forEach(function (e) {
|
|
t > e.start && (t += e.length);
|
|
}),
|
|
y(c, n.links),
|
|
(a = a.slice(0, t).concat(n, a.slice(t + 1))),
|
|
u.push({ start: t, length: n.length - 1 }))
|
|
: ((zn[i] = a.concat()), (a.links = zn[i].links = c), r(a));
|
|
});
|
|
}
|
|
function Mn(e, t, n) {
|
|
var r, i, o, a;
|
|
return (
|
|
(t =
|
|
"function" == typeof n
|
|
? n(t)
|
|
: "string" == typeof n
|
|
? ((o = []),
|
|
(a = 0),
|
|
(r = n).replace(B, function (t, e, n) {
|
|
o.push(r.substring(a, n - 1)),
|
|
(a = n += t.length + 1),
|
|
o.push(
|
|
(i && i[t]) ||
|
|
function (e) {
|
|
return (
|
|
"00" + ("string" == typeof Z[t] ? e[Z[t]]() : Z[t](e))
|
|
).slice(-t.length);
|
|
}
|
|
);
|
|
}),
|
|
a !== r.length && o.push(r.substring(a)),
|
|
(function (e) {
|
|
for (var t = "", n = 0, r = e || new Date(); n < o.length; n++)
|
|
t += "string" == typeof o[n] ? o[n] : o[n](r);
|
|
return t;
|
|
})(new Date(t)))
|
|
: t),
|
|
e.replace(/{docsify-updated}/g, t)
|
|
);
|
|
}
|
|
function Dn(e) {
|
|
function t(e) {
|
|
var t = Boolean(e.__vue__ && e.__vue__._isVue),
|
|
e = Boolean(e._vnode && e._vnode.__v_skip);
|
|
return t || e;
|
|
}
|
|
var n = this.config,
|
|
r = b(".markdown-section"),
|
|
i =
|
|
"Vue" in window &&
|
|
window.Vue.version &&
|
|
Number(window.Vue.version.charAt(0));
|
|
if (((e = e || "<h1>404 - Not found</h1>"), "Vue" in window))
|
|
for (
|
|
var o = 0, a = k(".markdown-section > *").filter(t);
|
|
o < a.length;
|
|
o += 1
|
|
) {
|
|
var s = a[o];
|
|
2 === i ? s.__vue__.$destroy() : 3 === i && s.__vue_app__.unmount();
|
|
}
|
|
if (
|
|
(this._renderTo(r, e),
|
|
n.loadSidebar || this._renderSidebar(),
|
|
(n.executeScript || ("Vue" in window && !1 !== n.executeScript)) &&
|
|
(!(e = k(".markdown-section>script").filter(function (e) {
|
|
return !/template/.test(e.type);
|
|
})[0]) ||
|
|
((e = e.innerText.trim()) && new Function(e)())),
|
|
"Vue" in window)
|
|
) {
|
|
var l,
|
|
c,
|
|
u = [],
|
|
p = Object.keys(n.vueComponents || {});
|
|
2 === i &&
|
|
p.length &&
|
|
p.forEach(function (e) {
|
|
window.Vue.options.components[e] ||
|
|
window.Vue.component(e, n.vueComponents[e]);
|
|
}),
|
|
!Cn &&
|
|
n.vueGlobalOptions &&
|
|
"function" == typeof n.vueGlobalOptions.data &&
|
|
(Cn = n.vueGlobalOptions.data()),
|
|
u.push.apply(
|
|
u,
|
|
Object.keys(n.vueMounts || {})
|
|
.map(function (e) {
|
|
return [b(r, e), n.vueMounts[e]];
|
|
})
|
|
.filter(function (e) {
|
|
var t = e[0];
|
|
e[1];
|
|
return t;
|
|
})
|
|
),
|
|
(n.vueGlobalOptions || p.length) &&
|
|
((l = /{{2}[^{}]*}{2}/),
|
|
(c = /<[^>/]+\s([@:]|v-)[\w-:.[\]]+[=>\s]/),
|
|
u.push.apply(
|
|
u,
|
|
k(".markdown-section > *")
|
|
.filter(function (n) {
|
|
return !u.some(function (e) {
|
|
var t = e[0];
|
|
e[1];
|
|
return t === n;
|
|
});
|
|
})
|
|
.filter(function (e) {
|
|
return (
|
|
e.tagName.toLowerCase() in (n.vueComponents || {}) ||
|
|
e.querySelector(p.join(",") || null) ||
|
|
l.test(e.outerHTML) ||
|
|
c.test(e.outerHTML)
|
|
);
|
|
})
|
|
.map(function (e) {
|
|
var t = y({}, n.vueGlobalOptions || {});
|
|
return (
|
|
Cn &&
|
|
(t.data = function () {
|
|
return Cn;
|
|
}),
|
|
[e, t]
|
|
);
|
|
})
|
|
));
|
|
for (var h = 0, d = u; h < d.length; h += 1) {
|
|
var f,
|
|
g = d[h],
|
|
m = g[0],
|
|
v = g[1],
|
|
g = "data-isvue";
|
|
m.matches("pre, script") ||
|
|
t(m) ||
|
|
m.querySelector("[" + g + "]") ||
|
|
(m.setAttribute(g, ""),
|
|
2 === i
|
|
? ((v.el = void 0), new window.Vue(v).$mount(m))
|
|
: 3 === i &&
|
|
((f = window.Vue.createApp(v)),
|
|
p.forEach(function (e) {
|
|
var t = n.vueComponents[e];
|
|
f.component(e, t);
|
|
}),
|
|
f.mount(m)));
|
|
}
|
|
}
|
|
}
|
|
function Pn(t, n, r, i, o, e) {
|
|
(t = e ? t : t.replace(/\/$/, "")),
|
|
(t = F(t)) &&
|
|
ce(o.router.getFile(t + r) + n, !1, o.config.requestHeaders).then(
|
|
i,
|
|
function (e) {
|
|
return Pn(t, n, r, i, o);
|
|
}
|
|
);
|
|
}
|
|
var In = Object.freeze({
|
|
__proto__: null,
|
|
cached: s,
|
|
hyphenate: o,
|
|
hasOwn: l,
|
|
merge: y,
|
|
isPrimitive: c,
|
|
noop: u,
|
|
isFn: r,
|
|
isExternal: p,
|
|
inBrowser: !0,
|
|
isMobile: h,
|
|
supportsPushState: i,
|
|
parseQuery: E,
|
|
stringifyQuery: R,
|
|
isAbsolutePath: O,
|
|
removeParams: $,
|
|
getParentPath: F,
|
|
cleanPath: C,
|
|
resolvePath: L,
|
|
getPath: N,
|
|
replaceSlug: M,
|
|
endsWith: D,
|
|
});
|
|
var jn,
|
|
Hn,
|
|
qn = (function (e) {
|
|
function t() {
|
|
e.call(this),
|
|
(this.config = we(this)),
|
|
this.initLifecycle(),
|
|
this.initPlugin(),
|
|
this.callHook("init"),
|
|
this.initRouter(),
|
|
this.initRender(),
|
|
this.initEvent(),
|
|
this.initFetch(),
|
|
this.callHook("mounted");
|
|
}
|
|
return (
|
|
e && (t.__proto__ = e),
|
|
(((t.prototype = Object.create(e && e.prototype)).constructor =
|
|
t).prototype.initPlugin = function () {
|
|
var t = this;
|
|
[].concat(this.config.plugins).forEach(function (e) {
|
|
return r(e) && e(t._lifecycle, t);
|
|
});
|
|
}),
|
|
t
|
|
);
|
|
})(
|
|
((Hn = Object),
|
|
(function (e) {
|
|
function t() {
|
|
e.apply(this, arguments);
|
|
}
|
|
return (
|
|
e && (t.__proto__ = e),
|
|
(((t.prototype = Object.create(e && e.prototype)).constructor =
|
|
t).prototype._loadSideAndNav = function (e, t, n, r) {
|
|
var i = this;
|
|
return function () {
|
|
if (!n) return r();
|
|
Pn(
|
|
e,
|
|
t,
|
|
n,
|
|
function (e) {
|
|
i._renderSidebar(e), r();
|
|
},
|
|
i,
|
|
!0
|
|
);
|
|
};
|
|
}),
|
|
(t.prototype._fetch = function (n) {
|
|
var r = this;
|
|
void 0 === n && (n = u);
|
|
var i,
|
|
e,
|
|
t,
|
|
o,
|
|
a,
|
|
s = this.route.query,
|
|
l = this.route.path;
|
|
p(l)
|
|
? (history.replaceState(null, "", "#"), this.router.normalize())
|
|
: ((i = R(s, ["id"])),
|
|
(t = (e = this.config).loadNavbar),
|
|
(s = e.requestHeaders),
|
|
(o = e.loadSidebar),
|
|
(a = this.router.getFile(l)),
|
|
(s = Un(a + i, 0, s)),
|
|
(this.isRemoteUrl = p(a)),
|
|
(this.isHTML = /\.html$/g.test(a)),
|
|
s.then(
|
|
function (e, t) {
|
|
return r._renderMain(e, t, r._loadSideAndNav(l, i, o, n));
|
|
},
|
|
function (e) {
|
|
r._fetchFallbackPage(l, i, n) || r._fetch404(a, i, n);
|
|
}
|
|
),
|
|
t &&
|
|
Pn(
|
|
l,
|
|
i,
|
|
t,
|
|
function (e) {
|
|
return r._renderNav(e);
|
|
},
|
|
this,
|
|
!0
|
|
));
|
|
}),
|
|
(t.prototype._fetchCover = function () {
|
|
var t = this,
|
|
e = this.config,
|
|
n = e.coverpage,
|
|
r = e.requestHeaders,
|
|
i = this.route.query,
|
|
o = F(this.route.path);
|
|
if (n) {
|
|
var a = null,
|
|
e = this.route.path;
|
|
"string" == typeof n
|
|
? "/" === e && (a = n)
|
|
: (a = Array.isArray(n)
|
|
? -1 < n.indexOf(e) && "_coverpage"
|
|
: !0 === (e = n[e])
|
|
? "_coverpage"
|
|
: e);
|
|
var s = Boolean(a) && this.config.onlyCover;
|
|
return (
|
|
a
|
|
? ((a = this.router.getFile(o + a)),
|
|
(this.coverIsHTML = /\.html$/g.test(a)),
|
|
ce(a + R(i, ["id"]), !1, r).then(function (e) {
|
|
return t._renderCover(e, s);
|
|
}))
|
|
: this._renderCover(null, s),
|
|
s
|
|
);
|
|
}
|
|
}),
|
|
(t.prototype.$fetch = function (e, t) {
|
|
var n = this;
|
|
void 0 === e && (e = u),
|
|
void 0 === t && (t = this.$resetEvents.bind(this));
|
|
function r() {
|
|
n.callHook("doneEach"), e();
|
|
}
|
|
this._fetchCover()
|
|
? r()
|
|
: this._fetch(function () {
|
|
t(), r();
|
|
});
|
|
}),
|
|
(t.prototype._fetchFallbackPage = function (n, r, i) {
|
|
var o = this;
|
|
void 0 === i && (i = u);
|
|
var e = this.config,
|
|
t = e.requestHeaders,
|
|
a = e.fallbackLanguages,
|
|
s = e.loadSidebar;
|
|
if (!a) return !1;
|
|
e = n.split("/")[1];
|
|
if (-1 === a.indexOf(e)) return !1;
|
|
e = this.router.getFile(n.replace(new RegExp("^/" + e), ""));
|
|
return (
|
|
Un(e + r, 0, t).then(
|
|
function (e, t) {
|
|
return o._renderMain(e, t, o._loadSideAndNav(n, r, s, i));
|
|
},
|
|
function () {
|
|
return o._fetch404(n, r, i);
|
|
}
|
|
),
|
|
!0
|
|
);
|
|
}),
|
|
(t.prototype._fetch404 = function (e, t, n) {
|
|
var r = this;
|
|
void 0 === n && (n = u);
|
|
var i = this.config,
|
|
o = i.loadSidebar,
|
|
a = i.requestHeaders,
|
|
i = i.notFoundPage,
|
|
s = this._loadSideAndNav(e, t, o, n);
|
|
if (i) {
|
|
e = (function (t, e) {
|
|
var n,
|
|
r = e.notFoundPage,
|
|
i = "_404" + (e.ext || ".md");
|
|
switch (typeof r) {
|
|
case "boolean":
|
|
n = i;
|
|
break;
|
|
case "string":
|
|
n = r;
|
|
break;
|
|
case "object":
|
|
n =
|
|
((e = Object.keys(r)
|
|
.sort(function (e, t) {
|
|
return t.length - e.length;
|
|
})
|
|
.filter(function (e) {
|
|
return t.match(new RegExp("^" + e));
|
|
})[0]) &&
|
|
r[e]) ||
|
|
i;
|
|
}
|
|
return n;
|
|
})(e, this.config);
|
|
return (
|
|
Un(this.router.getFile(e), 0, a).then(
|
|
function (e, t) {
|
|
return r._renderMain(e, t, s);
|
|
},
|
|
function () {
|
|
return r._renderMain(null, {}, s);
|
|
}
|
|
),
|
|
!0
|
|
);
|
|
}
|
|
return this._renderMain(null, {}, s), !1;
|
|
}),
|
|
(t.prototype.initFetch = function () {
|
|
var e,
|
|
t = this,
|
|
n = this.config.loadSidebar;
|
|
this.rendered
|
|
? ((e = de(this.router, ".sidebar-nav", !0, !0)),
|
|
n && e && (e.parentNode.innerHTML += window.__SUB_SIDEBAR__),
|
|
this._bindEventOnRendered(e),
|
|
this.$resetEvents(),
|
|
this.callHook("doneEach"),
|
|
this.callHook("ready"))
|
|
: this.$fetch(function (e) {
|
|
return t.callHook("ready");
|
|
});
|
|
}),
|
|
t
|
|
);
|
|
})(
|
|
(function (e) {
|
|
function t() {
|
|
e.apply(this, arguments);
|
|
}
|
|
return (
|
|
e && (t.__proto__ = e),
|
|
(((t.prototype = Object.create(e && e.prototype)).constructor =
|
|
t).prototype.$resetEvents = function (e) {
|
|
var t = this,
|
|
n = this.config.auto2top;
|
|
"history" !== e &&
|
|
(t.route.query.id && Oe(t.route.path, t.route.query.id),
|
|
"navigate" === e &&
|
|
n &&
|
|
(void 0 === (n = n) && (n = 0),
|
|
($e.scrollTop = !0 === n ? 0 : Number(n)))),
|
|
this.config.loadNavbar && de(this.router, "nav");
|
|
}),
|
|
(t.prototype.initEvent = function () {
|
|
function t(e) {
|
|
return g.classList.toggle("close");
|
|
}
|
|
var e;
|
|
(e = "button.sidebar-toggle"),
|
|
this.router,
|
|
null != (e = d(e)) &&
|
|
(x(e, "click", function (e) {
|
|
e.stopPropagation(), t();
|
|
}),
|
|
h &&
|
|
x(g, "click", function (e) {
|
|
return g.classList.contains("close") && t();
|
|
})),
|
|
(e = ".sidebar"),
|
|
this.router,
|
|
null != (e = d(e)) &&
|
|
x(e, "click", function (e) {
|
|
e = e.target;
|
|
"A" === e.nodeName &&
|
|
e.nextSibling &&
|
|
e.nextSibling.classList &&
|
|
e.nextSibling.classList.contains("app-sub-sidebar") &&
|
|
S(e.parentNode, "collapse");
|
|
}),
|
|
this.config.coverpage
|
|
? h || x("scroll", he)
|
|
: g.classList.add("sticky");
|
|
}),
|
|
t
|
|
);
|
|
})(
|
|
(function (e) {
|
|
function t() {
|
|
e.apply(this, arguments);
|
|
}
|
|
return (
|
|
e && (t.__proto__ = e),
|
|
(((t.prototype = Object.create(e && e.prototype)).constructor =
|
|
t).prototype._renderTo = function (e, t, n) {
|
|
e = d(e);
|
|
e && (e[n ? "outerHTML" : "innerHTML"] = t);
|
|
}),
|
|
(t.prototype._renderSidebar = function (e) {
|
|
var t = this.config,
|
|
n = t.maxLevel,
|
|
r = t.subMaxLevel,
|
|
i = t.loadSidebar;
|
|
if (t.hideSidebar)
|
|
return (
|
|
[
|
|
document.querySelector("aside.sidebar"),
|
|
document.querySelector("button.sidebar-toggle"),
|
|
].forEach(function (e) {
|
|
return e.parentNode.removeChild(e);
|
|
}),
|
|
(document.querySelector("section.content").style.right =
|
|
"unset"),
|
|
(document.querySelector("section.content").style.left =
|
|
"unset"),
|
|
(document.querySelector("section.content").style.position =
|
|
"relative"),
|
|
(document.querySelector("section.content").style.width =
|
|
"100%"),
|
|
null
|
|
);
|
|
this._renderTo(".sidebar-nav", this.compiler.sidebar(e, n));
|
|
n = de(this.router, ".sidebar-nav", !0, !0);
|
|
i && n
|
|
? (n.parentNode.innerHTML +=
|
|
this.compiler.subSidebar(r) || "")
|
|
: this.compiler.subSidebar(),
|
|
this._bindEventOnRendered(n);
|
|
}),
|
|
(t.prototype._bindEventOnRendered = function (e) {
|
|
var t,
|
|
n = this.config.autoHeader;
|
|
!(function (e) {
|
|
var t = b(".cover.show");
|
|
Te = t ? t.offsetHeight : 0;
|
|
var t = d(".sidebar"),
|
|
n = [];
|
|
null != t && (n = k(t, "li"));
|
|
for (var r, i = 0, o = n.length; i < o; i += 1) {
|
|
var a,
|
|
s,
|
|
l = n[i],
|
|
c = l.querySelector("a");
|
|
c &&
|
|
("/" !== (a = c.getAttribute("href")) &&
|
|
((c = (s = e.parse(a)).query.id),
|
|
(s = s.path),
|
|
c && (a = Re(s, c))),
|
|
a && (xe[decodeURIComponent(a)] = l));
|
|
}
|
|
h ||
|
|
((r = $(e.getCurrentPath())),
|
|
_("scroll", function () {
|
|
return Ee(r);
|
|
}),
|
|
x("scroll", function () {
|
|
return Ee(r);
|
|
}),
|
|
x(t, "mouseover", function () {
|
|
_e = !0;
|
|
}),
|
|
x(t, "mouseleave", function () {
|
|
_e = !1;
|
|
}));
|
|
})(this.router),
|
|
n &&
|
|
e &&
|
|
(n = (t = d("#main")).children[0]) &&
|
|
"H1" !== n.tagName &&
|
|
w(
|
|
t,
|
|
v("div", this.compiler.header(e.innerText, 1)).children[0]
|
|
);
|
|
}),
|
|
(t.prototype._renderNav = function (e) {
|
|
e && this._renderTo("nav", this.compiler.compile(e)),
|
|
this.config.loadNavbar && de(this.router, "nav");
|
|
}),
|
|
(t.prototype._renderMain = function (r, i, o) {
|
|
var a = this;
|
|
if ((void 0 === i && (i = {}), !r)) return Dn.call(this, r);
|
|
this.callHook("beforeEach", r, function (e) {
|
|
function t() {
|
|
i.updatedAt &&
|
|
(n = Mn(n, i.updatedAt, a.config.formatUpdated)),
|
|
a.callHook("afterEach", n, function (e) {
|
|
return Dn.call(a, e);
|
|
});
|
|
}
|
|
var n;
|
|
a.isHTML
|
|
? ((n = a.result = r), t(), o())
|
|
: Nn({ compiler: a.compiler, raw: e }, function (e) {
|
|
(n = a.compiler.compile(e)),
|
|
(n = a.isRemoteUrl
|
|
? ae.sanitize(n, { ADD_TAGS: ["script"] })
|
|
: n),
|
|
t(),
|
|
o();
|
|
});
|
|
});
|
|
}),
|
|
(t.prototype._renderCover = function (e, t) {
|
|
var n,
|
|
r = d(".cover");
|
|
S(d("main"), t ? "add" : "remove", "hidden"),
|
|
e
|
|
? (S(r, "add", "show"),
|
|
(t = (n = this.coverIsHTML ? e : this.compiler.cover(e))
|
|
.trim()
|
|
.match(
|
|
'<p><img.*?data-origin="(.*?)"[^a]+alt="(.*?)">([^<]*?)</p>$'
|
|
)) &&
|
|
("color" === t[2]
|
|
? (r.style.background = t[1] + (t[3] || ""))
|
|
: ((e = t[1]),
|
|
S(r, "add", "has-mask"),
|
|
O(t[1]) || (e = N(this.router.getBasePath(), t[1])),
|
|
(r.style.backgroundImage = "url(" + e + ")"),
|
|
(r.style.backgroundSize = "cover"),
|
|
(r.style.backgroundPosition = "center center")),
|
|
(n = n.replace(t[0], ""))),
|
|
this._renderTo(".cover-main", n),
|
|
he())
|
|
: S(r, "remove", "show");
|
|
}),
|
|
(t.prototype._updateRender = function () {
|
|
var e, t, n, r;
|
|
(e = this),
|
|
(t = d(".app-name-link")),
|
|
(n = e.config.nameLink),
|
|
(r = e.route.path),
|
|
t &&
|
|
(c(e.config.nameLink)
|
|
? t.setAttribute("href", n)
|
|
: "object" == typeof n &&
|
|
((e = Object.keys(n).filter(function (e) {
|
|
return -1 < r.indexOf(e);
|
|
})[0]),
|
|
t.setAttribute("href", n[e])));
|
|
}),
|
|
(t.prototype.initRender = function () {
|
|
var e = this.config;
|
|
(this.compiler = new On(e, this.router)),
|
|
(window.__current_docsify_compiler__ = this.compiler);
|
|
var t,
|
|
n,
|
|
r,
|
|
i,
|
|
o,
|
|
a = e.el || "#app",
|
|
s = b("nav") || v("nav"),
|
|
l = b(a),
|
|
c = "",
|
|
u = g;
|
|
l
|
|
? (e.repo &&
|
|
(c +=
|
|
((i = e.repo),
|
|
(a = e.cornerExternalLinkTarge),
|
|
i
|
|
? (/\/\//.test(i) || (i = "https://github.com/" + i),
|
|
'<a href="' +
|
|
(i = i.replace(/^git\+/, "")) +
|
|
'" target="' +
|
|
(a = a || "_blank") +
|
|
'" class="github-corner" aria-label="View source on Github"><svg viewBox="0 0 250 250" aria-hidden="true"><path d="M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z"></path><path d="M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2" fill="currentColor" style="transform-origin: 130px 106px;" class="octo-arm"></path><path d="M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z" fill="currentColor" class="octo-body"></path></svg></a>')
|
|
: "")),
|
|
e.coverpage &&
|
|
(c +=
|
|
((r = ", 100%, 85%"),
|
|
'<section class="cover show" style="background: ' +
|
|
("linear-gradient(to left bottom, hsl(" +
|
|
Math.floor(255 * Math.random()) +
|
|
r +
|
|
") 0%,hsl(" +
|
|
Math.floor(255 * Math.random()) +
|
|
r +
|
|
") 100%)") +
|
|
'"><div class="mask"></div><div class="cover-main">\x3c!--cover--\x3e</div></section>')),
|
|
e.logo &&
|
|
((r = /^data:image/.test(e.logo)),
|
|
(t = /(?:http[s]?:)?\/\//.test(e.logo)),
|
|
(n = /^\./.test(e.logo)),
|
|
r ||
|
|
t ||
|
|
n ||
|
|
(e.logo = N(this.router.getBasePath(), e.logo))),
|
|
(c +=
|
|
((n = (t = e).name ? t.name : ""),
|
|
"<main>" +
|
|
('<button class="sidebar-toggle" aria-label="Menu"><div class="sidebar-toggle-button"><span></span><span></span><span></span></div></button><aside class="sidebar">' +
|
|
(t.name
|
|
? '<h1 class="app-name"><a class="app-name-link" data-nosearch>' +
|
|
(t.logo
|
|
? '<img alt="' + n + '" src=' + t.logo + ">"
|
|
: n) +
|
|
"</a></h1>"
|
|
: "") +
|
|
'<div class="sidebar-nav">\x3c!--sidebar--\x3e</div></aside>') +
|
|
'<section class="content"><article class="markdown-section" id="main">\x3c!--main--\x3e</article></section></main>')),
|
|
this._renderTo(l, c, !0))
|
|
: (this.rendered = !0),
|
|
e.mergeNavbar && h
|
|
? (u = b(".sidebar"))
|
|
: (s.classList.add("app-nav"),
|
|
e.repo || s.classList.add("no-badge")),
|
|
e.loadNavbar && w(u, s),
|
|
e.themeColor &&
|
|
(f.head.appendChild(
|
|
v(
|
|
"div",
|
|
"<style>:root{--theme-color: " +
|
|
e.themeColor +
|
|
";}</style>"
|
|
).firstElementChild
|
|
),
|
|
(o = e.themeColor),
|
|
(window.CSS &&
|
|
window.CSS.supports &&
|
|
window.CSS.supports("(--v:red)")) ||
|
|
((e = k("style:not(.inserted),link")),
|
|
[].forEach.call(e, function (e) {
|
|
if ("STYLE" === e.nodeName) ue(e, o);
|
|
else if ("LINK" === e.nodeName) {
|
|
e = e.getAttribute("href");
|
|
if (!/\.css$/.test(e)) return;
|
|
ce(e).then(function (e) {
|
|
e = v("style", e);
|
|
m.appendChild(e), ue(e, o);
|
|
});
|
|
}
|
|
}))),
|
|
this._updateRender(),
|
|
S(g, "ready");
|
|
}),
|
|
t
|
|
);
|
|
})(
|
|
(function (n) {
|
|
function e() {
|
|
for (var e = [], t = arguments.length; t--; )
|
|
e[t] = arguments[t];
|
|
n.apply(this, e), (this.route = {});
|
|
}
|
|
return (
|
|
n && (e.__proto__ = n),
|
|
(((e.prototype = Object.create(n && n.prototype)).constructor =
|
|
e).prototype.updateRender = function () {
|
|
this.router.normalize(),
|
|
(this.route = this.router.parse()),
|
|
g.setAttribute("data-page", this.route.file);
|
|
}),
|
|
(e.prototype.initRouter = function () {
|
|
var t = this,
|
|
e = this.config,
|
|
e = new (
|
|
"history" === (e.routerMode || "hash") && i ? q : H
|
|
)(e);
|
|
(this.router = e),
|
|
this.updateRender(),
|
|
(U = this.route),
|
|
e.onchange(function (e) {
|
|
t.updateRender(),
|
|
t._updateRender(),
|
|
U.path !== t.route.path
|
|
? (t.$fetch(u, t.$resetEvents.bind(t, e.source)),
|
|
(U = t.route))
|
|
: t.$resetEvents(e.source);
|
|
});
|
|
}),
|
|
e
|
|
);
|
|
})(
|
|
(function (e) {
|
|
function t() {
|
|
e.apply(this, arguments);
|
|
}
|
|
return (
|
|
e && (t.__proto__ = e),
|
|
(((t.prototype = Object.create(
|
|
e && e.prototype
|
|
)).constructor = t).prototype.initLifecycle = function () {
|
|
var n = this;
|
|
(this._hooks = {}),
|
|
(this._lifecycle = {}),
|
|
[
|
|
"init",
|
|
"mounted",
|
|
"beforeEach",
|
|
"afterEach",
|
|
"doneEach",
|
|
"ready",
|
|
].forEach(function (e) {
|
|
var t = (n._hooks[e] = []);
|
|
n._lifecycle[e] = function (e) {
|
|
return t.push(e);
|
|
};
|
|
});
|
|
}),
|
|
(t.prototype.callHook = function (e, n, r) {
|
|
void 0 === r && (r = u);
|
|
var i = this._hooks[e],
|
|
o = function (t) {
|
|
var e = i[t];
|
|
t >= i.length
|
|
? r(n)
|
|
: "function" == typeof e
|
|
? 2 === e.length
|
|
? e(n, function (e) {
|
|
(n = e), o(t + 1);
|
|
})
|
|
: ((e = e(n)), (n = void 0 === e ? n : e), o(t + 1))
|
|
: o(t + 1);
|
|
};
|
|
o(0);
|
|
}),
|
|
t
|
|
);
|
|
})(Hn)
|
|
)
|
|
)
|
|
)
|
|
))
|
|
);
|
|
function Un(e, t, n) {
|
|
return jn && jn.abort && jn.abort(), (jn = ce(e, !0, n));
|
|
}
|
|
(window.Docsify = {
|
|
util: In,
|
|
dom: t,
|
|
get: ce,
|
|
slugify: xn,
|
|
version: "4.12.2",
|
|
}),
|
|
(window.DocsifyCompiler = On),
|
|
(window.marked = gn),
|
|
(window.Prism = En),
|
|
e(function (e) {
|
|
return new qn();
|
|
});
|
|
})();
|
|
|