1// Supported languages in this file 2 3// Bash 4// JavaScript 5// HTML, XML 6// Markdown 7// TypeScript 8 9/*! 10 Highlight.js v11.5.0 (git: 7a62552656) 11 (c) 2006-2022 Ivan Sagalaev and other contributors 12 License: BSD-3-Clause 13 */ 14var hljs = (function () { 15 "use strict"; 16 var e = { exports: {} }; 17 function t(e) { 18 return ( 19 e instanceof Map 20 ? (e.clear = 21 e.delete = 22 e.set = 23 () => { 24 throw Error("map is read-only"); 25 }) 26 : e instanceof Set && 27 (e.add = 28 e.clear = 29 e.delete = 30 () => { 31 throw Error("set is read-only"); 32 }), 33 Object.freeze(e), 34 Object.getOwnPropertyNames(e).forEach((n) => { 35 var i = e[n]; 36 "object" != typeof i || Object.isFrozen(i) || t(i); 37 }), 38 e 39 ); 40 } 41 (e.exports = t), (e.exports.default = t); 42 var n = e.exports; 43 class i { 44 constructor(e) { 45 void 0 === e.data && (e.data = {}), (this.data = e.data), (this.isMatchIgnored = !1); 46 } 47 ignoreMatch() { 48 this.isMatchIgnored = !0; 49 } 50 } 51 function r(e) { 52 return e 53 .replace(/&/g, "&") 54 .replace(/</g, "<") 55 .replace(/>/g, ">") 56 .replace(/"/g, """) 57 .replace(/'/g, "'"); 58 } 59 function s(e, ...t) { 60 const n = Object.create(null); 61 for (const t in e) n[t] = e[t]; 62 return ( 63 t.forEach((e) => { 64 for (const t in e) n[t] = e[t]; 65 }), 66 n 67 ); 68 } 69 const o = (e) => !!e.kind; 70 class a { 71 constructor(e, t) { 72 (this.buffer = ""), (this.classPrefix = t.classPrefix), e.walk(this); 73 } 74 addText(e) { 75 this.buffer += r(e); 76 } 77 openNode(e) { 78 if (!o(e)) return; 79 let t = e.kind; 80 (t = e.sublanguage 81 ? "language-" + t 82 : ((e, { prefix: t }) => { 83 if (e.includes(".")) { 84 const n = e.split("."); 85 return [`${t}${n.shift()}`, ...n.map((e, t) => `${e}${"_".repeat(t + 1)}`)].join(" "); 86 } 87 return `${t}${e}`; 88 })(t, { prefix: this.classPrefix })), 89 this.span(t); 90 } 91 closeNode(e) { 92 o(e) && (this.buffer += "</span>"); 93 } 94 value() { 95 return this.buffer; 96 } 97 span(e) { 98 this.buffer += `<span class="${e}">`; 99 } 100 } 101 class c { 102 constructor() { 103 (this.rootNode = { 104 children: [], 105 }), 106 (this.stack = [this.rootNode]); 107 } 108 get top() { 109 return this.stack[this.stack.length - 1]; 110 } 111 get root() { 112 return this.rootNode; 113 } 114 add(e) { 115 this.top.children.push(e); 116 } 117 openNode(e) { 118 const t = { kind: e, children: [] }; 119 this.add(t), this.stack.push(t); 120 } 121 closeNode() { 122 if (this.stack.length > 1) return this.stack.pop(); 123 } 124 closeAllNodes() { 125 for (; this.closeNode(); ); 126 } 127 toJSON() { 128 return JSON.stringify(this.rootNode, null, 4); 129 } 130 walk(e) { 131 return this.constructor._walk(e, this.rootNode); 132 } 133 static _walk(e, t) { 134 return ( 135 "string" == typeof t 136 ? e.addText(t) 137 : t.children && (e.openNode(t), t.children.forEach((t) => this._walk(e, t)), e.closeNode(t)), 138 e 139 ); 140 } 141 static _collapse(e) { 142 "string" != typeof e && 143 e.children && 144 (e.children.every((e) => "string" == typeof e) 145 ? (e.children = [e.children.join("")]) 146 : e.children.forEach((e) => { 147 c._collapse(e); 148 })); 149 } 150 } 151 class l extends c { 152 constructor(e) { 153 super(), (this.options = e); 154 } 155 addKeyword(e, t) { 156 "" !== e && (this.openNode(t), this.addText(e), this.closeNode()); 157 } 158 addText(e) { 159 "" !== e && this.add(e); 160 } 161 addSublanguage(e, t) { 162 const n = e.root; 163 (n.kind = t), (n.sublanguage = !0), this.add(n); 164 } 165 toHTML() { 166 return new a(this, this.options).value(); 167 } 168 finalize() { 169 return !0; 170 } 171 } 172 function g(e) { 173 return e ? ("string" == typeof e ? e : e.source) : null; 174 } 175 function d(e) { 176 return f("(?=", e, ")"); 177 } 178 function u(e) { 179 return f("(?:", e, ")*"); 180 } 181 function h(e) { 182 return f("(?:", e, ")?"); 183 } 184 function f(...e) { 185 return e.map((e) => g(e)).join(""); 186 } 187 function p(...e) { 188 const t = ((e) => { 189 const t = e[e.length - 1]; 190 return "object" == typeof t && t.constructor === Object ? (e.splice(e.length - 1, 1), t) : {}; 191 })(e); 192 return "(" + (t.capture ? "" : "?:") + e.map((e) => g(e)).join("|") + ")"; 193 } 194 function b(e) { 195 return RegExp(e.toString() + "|").exec("").length - 1; 196 } 197 const m = /\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./; 198 function E(e, { joinWith: t }) { 199 let n = 0; 200 return e 201 .map((e) => { 202 n += 1; 203 const t = n; 204 let i = g(e), 205 r = ""; 206 for (; i.length > 0; ) { 207 const e = m.exec(i); 208 if (!e) { 209 r += i; 210 break; 211 } 212 (r += i.substring(0, e.index)), 213 (i = i.substring(e.index + e[0].length)), 214 "\\" === e[0][0] && e[1] ? (r += "\\" + (Number(e[1]) + t)) : ((r += e[0]), "(" === e[0] && n++); 215 } 216 return r; 217 }) 218 .map((e) => `(${e})`) 219 .join(t); 220 } 221 const x = "[a-zA-Z]\\w*", 222 w = "[a-zA-Z_]\\w*", 223 y = "\\b\\d+(\\.\\d+)?", 224 _ = "(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)", 225 k = "\\b(0b[01]+)", 226 v = { 227 begin: "\\\\[\\s\\S]", 228 relevance: 0, 229 }, 230 O = { scope: "string", begin: "'", end: "'", illegal: "\\n", contains: [v] },
231 N = { scope: "string", begin: '"', end: '"', illegal: "\\n", contains: [v] }, 232 M = (e, t, n = {}) => { 233 const i = s({ scope: "comment", begin: e, end: t, contains: [] }, n); 234 i.contains.push({ 235 scope: "doctag", 236 begin: "[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)", 237 end: /(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/, 238 excludeBegin: !0, 239 relevance: 0, 240 }); 241 const r = p( 242 "I", 243 "a", 244 "is", 245 "so", 246 "us", 247 "to", 248 "at", 249 "if", 250 "in", 251 "it", 252 "on", 253 /[A-Za-z]+['](d|ve|re|ll|t|s|n)/, 254 /[A-Za-z]+[-][a-z]+/, 255 /[A-Za-z][a-z]{2,}/, 256 ); 257 return i.contains.push({ begin: f(/[ ]+/, "(", r, /[.]?[:]?([.][ ]|[ ])/, "){3}") }), i; 258 }, 259 S = M("//", "$"), 260 R = M("/\\*", "\\*/"), 261 j = M("#", "$"); 262 var A = Object.freeze({ 263 __proto__: null, 264 MATCH_NOTHING_RE: /\b\B/, 265 IDENT_RE: x, 266 UNDERSCORE_IDENT_RE: w, 267 NUMBER_RE: y, 268 C_NUMBER_RE: _, 269 BINARY_NUMBER_RE: k, 270 RE_STARTERS_RE: 271 "!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~", 272 SHEBANG: (e = {}) => { 273 const t = /^#![ ]*\//; 274 return ( 275 e.binary && (e.begin = f(t, /.*\b/, e.binary, /\b.*/)), 276 s( 277 { 278 scope: "meta", 279 begin: t, 280 end: /$/, 281 relevance: 0, 282 "on:begin": (e, t) => { 283 0 !== e.index && t.ignoreMatch(); 284 }, 285 }, 286 e, 287 ) 288 ); 289 }, 290 BACKSLASH_ESCAPE: v, 291 APOS_STRING_MODE: O, 292 QUOTE_STRING_MODE: N, 293 PHRASAL_WORDS_MODE: { 294 begin: 295 /\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/, 296 }, 297 COMMENT: M, 298 C_LINE_COMMENT_MODE: S, 299 C_BLOCK_COMMENT_MODE: R, 300 HASH_COMMENT_MODE: j, 301 NUMBER_MODE: { scope: "number", begin: y, relevance: 0 }, 302 C_NUMBER_MODE: { scope: "number", begin: _, relevance: 0 }, 303 BINARY_NUMBER_MODE: { scope: "number", begin: k, relevance: 0 }, 304 REGEXP_MODE: { 305 begin: /(?=\/[^/\n]*\/)/, 306 contains: [ 307 { 308 scope: "regexp", 309 begin: /\//, 310 end: /\/[gimuy]*/, 311 illegal: /\n/, 312 contains: [v, { begin: /\[/, end: /\]/, relevance: 0, contains: [v] }], 313 }, 314 ], 315 }, 316 TITLE_MODE: { scope: "title", begin: x, relevance: 0 }, 317 UNDERSCORE_TITLE_MODE: { scope: "title", begin: w, relevance: 0 }, 318 METHOD_GUARD: { 319 begin: "\\.\\s*[a-zA-Z_]\\w*", 320 relevance: 0, 321 }, 322 END_SAME_AS_BEGIN: (e) => 323 Object.assign(e, { 324 "on:begin": (e, t) => { 325 t.data._beginMatch = e[1]; 326 }, 327 "on:end": (e, t) => { 328 t.data._beginMatch !== e[1] && t.ignoreMatch(); 329 }, 330 }), 331 }); 332 function I(e, t) { 333 "." === e.input[e.index - 1] && t.ignoreMatch(); 334 } 335 function T(e, t) { 336 void 0 !== e.className && ((e.scope = e.className), delete e.className); 337 } 338 function L(e, t) { 339 t && 340 e.beginKeywords && 341 ((e.begin = "\\b(" + e.beginKeywords.split(" ").join("|") + ")(?!\\.)(?=\\b|\\s)"), 342 (e.__beforeBegin = I), 343 (e.keywords = e.keywords || e.beginKeywords), 344 delete e.beginKeywords, 345 void 0 === e.relevance && (e.relevance = 0)); 346 } 347 function B(e, t) { 348 Array.isArray(e.illegal) && (e.illegal = p(...e.illegal)); 349 } 350 function D(e, t) { 351 if (e.match) { 352 if (e.begin || e.end) throw Error("begin & end are not supported with match"); 353 (e.begin = e.match), delete e.match; 354 } 355 } 356 function H(e, t) { 357 void 0 === e.relevance && (e.relevance = 1); 358 } 359 const P = (e, t) => { 360 if (!e.beforeMatch) return; 361 if (e.starts) throw Error("beforeMatch cannot be used with starts"); 362 const n = Object.assign({}, e); 363 Object.keys(e).forEach((t) => { 364 delete e[t]; 365 }), 366 (e.keywords = n.keywords), 367 (e.begin = f(n.beforeMatch, d(n.begin))), 368 (e.starts = { 369 relevance: 0, 370 contains: [Object.assign(n, { endsParent: !0 })], 371 }), 372 (e.relevance = 0), 373 delete n.beforeMatch; 374 }, 375 C = ["of", "and", "for", "in", "not", "or", "if", "then", "parent", "list", "value"]; 376 function $(e, t, n = "keyword") { 377 const i = Object.create(null); 378 return ( 379 "string" == typeof e 380 ? r(n, e.split(" ")) 381 : Array.isArray(e) 382 ? r(n, e) 383 : Object.keys(e).forEach((n) => { 384 Object.assign(i, $(e[n], t, n)); 385 }), 386 i 387 ); 388 function r(e, n) { 389 t && (n = n.map((e) => e.toLowerCase())),
390 n.forEach((t) => { 391 const n = t.split("|"); 392 i[n[0]] = [e, U(n[0], n[1])]; 393 }); 394 } 395 } 396 function U(e, t) { 397 return t ? Number(t) : ((e) => C.includes(e.toLowerCase()))(e) ? 0 : 1; 398 } 399 const z = {}, 400 K = (e) => { 401 console.error(e); 402 }, 403 W = (e, ...t) => { 404 console.log("WARN: " + e, ...t); 405 }, 406 X = (e, t) => { 407 z[`${e}/${t}`] || (console.log(`Deprecated as of ${e}. ${t}`), (z[`${e}/${t}`] = !0)); 408 }, 409 G = Error(); 410 function Z(e, t, { key: n }) { 411 let i = 0; 412 const r = e[n], 413 s = {}, 414 o = {}; 415 for (let e = 1; e <= t.length; e++) (o[e + i] = r[e]), (s[e + i] = !0), (i += b(t[e - 1])); 416 (e[n] = o), (e[n]._emit = s), (e[n]._multi = !0); 417 } 418 function F(e) { 419 ((e) => { 420 e.scope && "object" == typeof e.scope && null !== e.scope && ((e.beginScope = e.scope), delete e.scope); 421 })(e), 422 "string" == typeof e.beginScope && 423 (e.beginScope = { 424 _wrap: e.beginScope, 425 }), 426 "string" == typeof e.endScope && (e.endScope = { _wrap: e.endScope }), 427 ((e) => { 428 if (Array.isArray(e.begin)) { 429 if (e.skip || e.excludeBegin || e.returnBegin) 430 throw (K("skip, excludeBegin, returnBegin not compatible with beginScope: {}"), G); 431 if ("object" != typeof e.beginScope || null === e.beginScope) throw (K("beginScope must be object"), G); 432 Z(e, e.begin, { key: "beginScope" }), (e.begin = E(e.begin, { joinWith: "" })); 433 } 434 })(e), 435 ((e) => { 436 if (Array.isArray(e.end)) { 437 if (e.skip || e.excludeEnd || e.returnEnd) 438 throw (K("skip, excludeEnd, returnEnd not compatible with endScope: {}"), G); 439 if ("object" != typeof e.endScope || null === e.endScope) throw (K("endScope must be object"), G); 440 Z(e, e.end, { key: "endScope" }), (e.end = E(e.end, { joinWith: "" })); 441 } 442 })(e); 443 } 444 function V(e) { 445 function t(t, n) { 446 return RegExp(g(t), "m" + (e.case_insensitive ? "i" : "") + (e.unicodeRegex ? "u" : "") + (n ? "g" : "")); 447 } 448 class n { 449 constructor() { 450 (this.matchIndexes = {}), (this.regexes = []), (this.matchAt = 1), (this.position = 0); 451 } 452 addRule(e, t) { 453 (t.position = this.position++), 454 (this.matchIndexes[this.matchAt] = t), 455 this.regexes.push([t, e]), 456 (this.matchAt += b(e) + 1); 457 } 458 compile() { 459 0 === this.regexes.length && (this.exec = () => null); 460 const e = this.regexes.map((e) => e[1]); 461 (this.matcherRe = t(E(e, { joinWith: "|" }), !0)), (this.lastIndex = 0); 462 } 463 exec(e) { 464 this.matcherRe.lastIndex = this.lastIndex; 465 const t = this.matcherRe.exec(e); 466 if (!t) return null; 467 const n = t.findIndex((e, t) => t > 0 && void 0 !== e), 468 i = this.matchIndexes[n]; 469 return t.splice(0, n), Object.assign(t, i); 470 } 471 } 472 class i { 473 constructor() { 474 (this.rules = []), (this.multiRegexes = []), (this.count = 0), (this.lastIndex = 0), (this.regexIndex = 0); 475 } 476 getMatcher(e) { 477 if (this.multiRegexes[e]) return this.multiRegexes[e]; 478 const t = new n(); 479 return this.rules.slice(e).forEach(([e, n]) => t.addRule(e, n)), t.compile(), (this.multiRegexes[e] = t), t; 480 } 481 resumingScanAtSamePosition() { 482 return 0 !== this.regexIndex; 483 } 484 considerAll() { 485 this.regexIndex = 0; 486 } 487 addRule(e, t) { 488 this.rules.push([e, t]), "begin" === t.type && this.count++; 489 } 490 exec(e) { 491 const t = this.getMatcher(this.regexIndex); 492 t.lastIndex = this.lastIndex; 493 let n = t.exec(e); 494 if (this.resumingScanAtSamePosition()) 495 if (n && n.index === this.lastIndex); 496 else { 497 const t = this.getMatcher(0); 498 (t.lastIndex = this.lastIndex + 1), (n = t.exec(e)); 499 } 500 return n && ((this.regexIndex += n.position + 1), this.regexIndex === this.count && this.considerAll()), n; 501 } 502 } 503 if ((e.compilerExtensions || (e.compilerExtensions = []), e.contains && e.contains.includes("self"))) 504 throw Error("ERR: contains `self` is not supported at the top-level of a language. See documentation."); 505 return ( 506 (e.classNameAliases = s(e.classNameAliases || {})), 507 (function n(r, o) { 508 const a = r; 509 if (r.isCompiled) return a; 510 [T, D, F, P].forEach((e) => e(r, o)), 511 e.compilerExtensions.forEach((e) => e(r, o)), 512 (r.__beforeBegin = null),
513 [L, B, H].forEach((e) => e(r, o)), 514 (r.isCompiled = !0); 515 let c = null; 516 return ( 517 "object" == typeof r.keywords && 518 r.keywords.$pattern && 519 ((r.keywords = Object.assign({}, r.keywords)), (c = r.keywords.$pattern), delete r.keywords.$pattern), 520 (c = c || /\w+/), 521 r.keywords && (r.keywords = $(r.keywords, e.case_insensitive)), 522 (a.keywordPatternRe = t(c, !0)), 523 o && 524 (r.begin || (r.begin = /\B|\b/), 525 (a.beginRe = t(a.begin)), 526 r.end || r.endsWithParent || (r.end = /\B|\b/), 527 r.end && (a.endRe = t(a.end)), 528 (a.terminatorEnd = g(a.end) || ""), 529 r.endsWithParent && o.terminatorEnd && (a.terminatorEnd += (r.end ? "|" : "") + o.terminatorEnd)), 530 r.illegal && (a.illegalRe = t(r.illegal)), 531 r.contains || (r.contains = []), 532 (r.contains = [].concat( 533 ...r.contains.map((e) => 534 ((e) => ( 535 e.variants && 536 !e.cachedVariants && 537 (e.cachedVariants = e.variants.map((t) => 538 s( 539 e, 540 { 541 variants: null, 542 }, 543 t, 544 ), 545 )), 546 e.cachedVariants 547 ? e.cachedVariants 548 : q(e) 549 ? s(e, { 550 starts: e.starts ? s(e.starts) : null, 551 }) 552 : Object.isFrozen(e) 553 ? s(e) 554 : e 555 ))("self" === e ? r : e), 556 ), 557 )), 558 r.contains.forEach((e) => { 559 n(e, a); 560 }), 561 r.starts && n(r.starts, o), 562 (a.matcher = ((e) => { 563 const t = new i(); 564 return ( 565 e.contains.forEach((e) => t.addRule(e.begin, { rule: e, type: "begin" })), 566 e.terminatorEnd && t.addRule(e.terminatorEnd, { type: "end" }), 567 e.illegal && t.addRule(e.illegal, { type: "illegal" }), 568 t 569 ); 570 })(a)), 571 a 572 ); 573 })(e) 574 ); 575 } 576 function q(e) { 577 return !!e && (e.endsWithParent || q(e.starts)); 578 } 579 class J extends Error { 580 constructor(e, t) { 581 super(e), (this.name = "HTMLInjectionError"), (this.html = t); 582 } 583 } 584 const Y = r, 585 Q = s, 586 ee = Symbol("nomatch"); 587 var te = ((e) => { 588 const t = Object.create(null), 589 r = Object.create(null), 590 s = []; 591 let o = !0; 592 const a = "Could not find the language '{}', did you forget to load/include a language module?", 593 c = { 594 disableAutodetect: !0, 595 name: "Plain text", 596 contains: [], 597 }; 598 let g = { 599 ignoreUnescapedHTML: !1, 600 throwUnescapedHTML: !1, 601 noHighlightRe: /^(no-?highlight)$/i, 602 languageDetectRe: /\blang(?:uage)?-([\w-]+)\b/i, 603 classPrefix: "hljs-", 604 cssSelector: "pre code", 605 languages: null, 606 __emitter: l, 607 }; 608 function b(e) { 609 return g.noHighlightRe.test(e); 610 } 611 function m(e, t, n) { 612 let i = "", 613 r = ""; 614 "object" == typeof t 615 ? ((i = e), (n = t.ignoreIllegals), (r = t.language)) 616 : (X("10.7.0", "highlight(lang, code, ...args) has been deprecated."), 617 X( 618 "10.7.0", 619 "Please use highlight(code, options) instead.\nhttps://github.com/highlightjs/highlight.js/issues/2277", 620 ), 621 (r = e), 622 (i = t)), 623 void 0 === n && (n = !0); 624 const s = { code: i, language: r }; 625 N("before:highlight", s); 626 const o = s.result ? s.result : E(s.language, s.code, n); 627 return (o.code = s.code), N("after:highlight", o), o; 628 } 629 function E(e, n, r, s) { 630 const c = Object.create(null); 631 function l() { 632 if (!O.keywords) return void M.addText(S); 633 let e = 0; 634 O.keywordPatternRe.lastIndex = 0; 635 let t = O.keywordPatternRe.exec(S), 636 n = ""; 637 for (; t; ) { 638 n += S.substring(e, t.index); 639 const r = y.case_insensitive ? t[0].toLowerCase() : t[0], 640 s = ((i = r), O.keywords[i]); 641 if (s) { 642 const [e, i] = s; 643 if ((M.addText(n), (n = ""), (c[r] = (c[r] || 0) + 1), c[r] <= 7 && (R += i), e.startsWith("_"))) n += t[0]; 644 else { 645 const n = y.classNameAliases[e] || e; 646 M.addKeyword(t[0], n); 647 } 648 } else n += t[0]; 649 (e = O.keywordPatternRe.lastIndex), (t = O.keywordPatternRe.exec(S)); 650 } 651 var i; 652 (n += S.substr(e)), M.addText(n); 653 } 654 function d() { 655 null != O.subLanguage 656 ? (() => { 657 if ("" === S) return; 658 let e = null; 659 if ("string" == typeof O.subLanguage) { 660 if (!t[O.subLanguage]) return void M.addText(S); 661 (e = E(O.subLanguage, S, !0, N[O.subLanguage])), (N[O.subLanguage] = e._top); 662 } else e = x(S, O.subLanguage.length ? O.subLanguage : null); 663 O.relevance > 0 && (R += e.relevance), M.addSublanguage(e._emitter, e.language); 664 })() 665 : l(), 666 (S = ""); 667 } 668 function u(e, t) { 669 let n = 1; 670 const i = t.length - 1; 671 for (;
671 n <= i; ) { 672 if (!e._emit[n]) { 673 n++; 674 continue; 675 } 676 const i = y.classNameAliases[e[n]] || e[n], 677 r = t[n]; 678 i ? M.addKeyword(r, i) : ((S = r), l(), (S = "")), n++; 679 } 680 } 681 function h(e, t) { 682 return ( 683 e.scope && "string" == typeof e.scope && M.openNode(y.classNameAliases[e.scope] || e.scope), 684 e.beginScope && 685 (e.beginScope._wrap 686 ? (M.addKeyword(S, y.classNameAliases[e.beginScope._wrap] || e.beginScope._wrap), (S = "")) 687 : e.beginScope._multi && (u(e.beginScope, t), (S = ""))), 688 (O = Object.create(e, { 689 parent: { 690 value: O, 691 }, 692 })), 693 O 694 ); 695 } 696 function f(e, t, n) { 697 let r = ((e, t) => { 698 const n = e && e.exec(t); 699 return n && 0 === n.index; 700 })(e.endRe, n); 701 if (r) { 702 if (e["on:end"]) { 703 const n = new i(e); 704 e["on:end"](t, n), n.isMatchIgnored && (r = !1); 705 } 706 if (r) { 707 for (; e.endsParent && e.parent; ) e = e.parent; 708 return e; 709 } 710 } 711 if (e.endsWithParent) return f(e.parent, t, n); 712 } 713 function p(e) { 714 return 0 === O.matcher.regexIndex ? ((S += e[0]), 1) : ((I = !0), 0); 715 } 716 function b(e) { 717 const t = e[0], 718 i = n.substr(e.index), 719 r = f(O, e, i); 720 if (!r) return ee; 721 const s = O; 722 O.endScope && O.endScope._wrap 723 ? (d(), M.addKeyword(t, O.endScope._wrap)) 724 : O.endScope && O.endScope._multi 725 ? (d(), u(O.endScope, e)) 726 : s.skip 727 ? (S += t) 728 : (s.returnEnd || s.excludeEnd || (S += t), d(), s.excludeEnd && (S = t)); 729 do { 730 O.scope && M.closeNode(), O.skip || O.subLanguage || (R += O.relevance), (O = O.parent); 731 } while (O !== r.parent); 732 return r.starts && h(r.starts, e), s.returnEnd ? 0 : t.length; 733 } 734 let m = {}; 735 function w(t, s) { 736 const a = s && s[0]; 737 if (((S += t), null == a)) return d(), 0; 738 if ("begin" === m.type && "end" === s.type && m.index === s.index && "" === a) { 739 if (((S += n.slice(s.index, s.index + 1)), !o)) { 740 const t = Error(`0 width match regex (${e})`); 741 throw ((t.languageName = e), (t.badRule = m.rule), t); 742 } 743 return 1; 744 } 745 if (((m = s), "begin" === s.type)) 746 return ((e) => { 747 const t = e[0], 748 n = e.rule, 749 r = new i(n), 750 s = [n.__beforeBegin, n["on:begin"]]; 751 for (const n of s) if (n && (n(e, r), r.isMatchIgnored)) return p(t); 752 return ( 753 n.skip ? (S += t) : (n.excludeBegin && (S += t), d(), n.returnBegin || n.excludeBegin || (S = t)), 754 h(n, e), 755 n.returnBegin ? 0 : t.length 756 ); 757 })(s); 758 if ("illegal" === s.type && !r) { 759 const e = Error('Illegal lexeme "' + a + '" for mode "' + (O.scope || "<unnamed>") + '"'); 760 throw ((e.mode = O), e); 761 } 762 if ("end" === s.type) { 763 const e = b(s); 764 if (e !== ee) return e; 765 } 766 if ("illegal" === s.type && "" === a) return 1; 767 if (A > 1e5 && A > 3 * s.index) throw Error("potential infinite loop, way more iterations than matches"); 768 return (S += a), a.length; 769 } 770 const y = k(e); 771 if (!y) throw (K(a.replace("{}", e)), Error('Unknown language: "' + e + '"')); 772 const _ = V(y); 773 let v = "", 774 O = s || _; 775 const N = {}, 776 M = new g.__emitter(g); 777 (() => { 778 const e = []; 779 for (let t = O; t !== y; t = t.parent) t.scope && e.unshift(t.scope); 780 e.forEach((e) => M.openNode(e)); 781 })(); 782 let S = "", 783 R = 0, 784 j = 0, 785 A = 0, 786 I = !1; 787 try { 788 for (O.matcher.considerAll(); ; ) { 789 A++, I ? (I = !1) : O.matcher.considerAll(), (O.matcher.lastIndex = j); 790 const e = O.matcher.exec(n); 791 if (!e) break; 792 const t = w(n.substring(j, e.index), e); 793 j = e.index + t; 794 } 795 return ( 796 w(n.substr(j)), 797 M.closeAllNodes(), 798 M.finalize(), 799 (v = M.toHTML()), 800 { 801 language: e, 802 value: v, 803 relevance: R, 804 illegal: !1, 805 _emitter: M, 806 _top: O, 807 } 808 ); 809 } catch (t) { 810 if (t.message && t.message.includes("Illegal")) 811 return { 812 language: e, 813 value: Y(n), 814 illegal: !0, 815 relevance: 0, 816 _illegalBy: { 817 message: t.message, 818 index: j, 819 context: n.slice(j - 100, j + 100), 820 mode: t.mode, 821 resultSoFar: v, 822 }, 823 _emitter: M, 824 }; 825 if (o) 826 return { 827 language: e, 828 value: Y(n), 829 illegal: !1, 830 relevance: 0, 831 errorRaised: t, 832 _emitter: M, 833 _top: O, 834 }; 835 throw t; 836 } 837 } 838 function x(e, n) { 839 n = n || g.languages || Object.keys(t); 840 const i = ((e) => { 841 const t = { value: Y(e), illegal: !1, relevance: 0, _top: c, _emitter: new g.__emitter(g) }; 842 return t._emitter.addText(e), t; 843 })(e), 844 r = n 845 .filter(k) 846 .filter(O) 847 .map((t) => E(t, e, !1)); 848 r.unshift(i); 849 const s = r.sort((e, t) => { 850 if (e.relevance !== t.relevance) return t.relevance - e.relevance; 851 if (e.language && t.language) { 852 if (k(e.language).supersetOf === t.language) return 1; 853 if (k(t.language).supersetOf === e.language) return -1; 854 } 855 return 0; 856 }), 857 [o, a] = s, 858 l = o; 859 return (l.secondBest = a), l; 860 } 861 function w(e) { 862 let t = null; 863 const n = ((e) => { 864 let t = e.className + " "; 865 t += e.parentNode ? e.parentNode.className : ""; 866 const n = g.languageDetectRe.exec(t); 867 if (n) { 868 const t = k(n[1]); 869 return ( 870 t || (W(a.replace("{}", n[1])), W("Falling back to no-highlight mode for this block.", e)), 871 t ? n[1] : "no-highlight" 872 ); 873 } 874 return t.split(/\s+/).find((e) => b(e) || k(e)); 875 })(e); 876 if (b(n)) return; 877 if ( 878 (N("before:highlightElement", { el: e, language: n }), 879 e.children.length > 0 && 880 (g.ignoreUnescapedHTML || 881 (console.warn(
882 "One of your code blocks includes unescaped HTML. This is a potentially serious security risk.", 883 ), 884 console.warn("https://github.com/highlightjs/highlight.js/wiki/security"), 885 console.warn("The element with unescaped HTML:"), 886 console.warn(e)), 887 g.throwUnescapedHTML)) 888 ) 889 throw new J("One of your code blocks includes unescaped HTML.", e.innerHTML); 890 t = e; 891 const i = t.textContent, 892 s = n ? m(i, { language: n, ignoreIllegals: !0 }) : x(i); 893 (e.innerHTML = s.value), 894 ((e, t, n) => { 895 const i = (t && r[t]) || n; 896 e.classList.add("hljs"), e.classList.add("language-" + i); 897 })(e, n, s.language), 898 (e.result = { language: s.language, re: s.relevance, relevance: s.relevance }), 899 s.secondBest && 900 (e.secondBest = { 901 language: s.secondBest.language, 902 relevance: s.secondBest.relevance, 903 }), 904 N("after:highlightElement", { el: e, result: s, text: i }); 905 } 906 let y = !1; 907 function _() { 908 "loading" !== document.readyState ? document.querySelectorAll(g.cssSelector).forEach(w) : (y = !0); 909 } 910 function k(e) { 911 return (e = (e || "").toLowerCase()), t[e] || t[r[e]]; 912 } 913 function v(e, { languageName: t }) { 914 "string" == typeof e && (e = [e]), 915 e.forEach((e) => { 916 r[e.toLowerCase()] = t; 917 }); 918 } 919 function O(e) { 920 const t = k(e); 921 return t && !t.disableAutodetect; 922 } 923 function N(e, t) { 924 const n = e; 925 s.forEach((e) => { 926 e[n] && e[n](t); 927 }); 928 } 929 "undefined" != typeof window && 930 window.addEventListener && 931 window.addEventListener( 932 "DOMContentLoaded", 933 () => { 934 y && _(); 935 }, 936 !1, 937 ), 938 Object.assign(e, { 939 highlight: m, 940 highlightAuto: x, 941 highlightAll: _, 942 highlightElement: w, 943 highlightBlock: (e) => ( 944 X("10.7.0", "highlightBlock will be removed entirely in v12.0"), 945 X("10.7.0", "Please use highlightElement now."), 946 w(e) 947 ), 948 configure: (e) => { 949 g = Q(g, e); 950 }, 951 initHighlighting: () => { 952 _(), X("10.6.0", "initHighlighting() deprecated. Use highlightAll() now."); 953 }, 954 initHighlightingOnLoad: () => { 955 _(), X("10.6.0", "initHighlightingOnLoad() deprecated. Use highlightAll() now."); 956 }, 957 registerLanguage: (n, i) => { 958 let r = null; 959 try { 960 r = i(e); 961 } catch (e) { 962 if ((K("Language definition for '{}' could not be registered.".replace("{}", n)), !o)) throw e; 963 K(e), (r = c); 964 } 965 r.name || (r.name = n), 966 (t[n] = r), 967 (r.rawDefinition = i.bind(null, e)), 968 r.aliases && 969 v(r.aliases, { 970 languageName: n, 971 }); 972 }, 973 unregisterLanguage: (e) => { 974 delete t[e]; 975 for (const t of Object.keys(r)) r[t] === e && delete r[t]; 976 }, 977 listLanguages: () => Object.keys(t), 978 getLanguage: k, 979 registerAliases: v, 980 autoDetection: O, 981 inherit: Q, 982 addPlugin: (e) => { 983 ((e) => { 984 e["before:highlightBlock"] && 985 !e["before:highlightElement"] && 986 (e["before:highlightElement"] = (t) => { 987 e["before:highlightBlock"](Object.assign({ block: t.el }, t)); 988 }), 989 e["after:highlightBlock"] && 990 !e["after:highlightElement"] && 991 (e["after:highlightElement"] = (t) => { 992 e["after:highlightBlock"](Object.assign({ block: t.el }, t)); 993 }); 994 })(e), 995 s.push(e); 996 }, 997 }), 998 (e.debugMode = () => { 999 o = !1; 1000 }), 1001 (e.safeMode = () => { 1002 o = !0; 1003 }), 1004 (e.versionString = "11.5.0"), 1005 (e.regex = { concat: f, lookahead: d, either: p, optional: h, anyNumberOfTimes: u }); 1006 for (const e in A) "object" == typeof A[e] && n(A[e]); 1007 return Object.assign(e, A), e; 1008 })({}); 1009 return te; 1010})(); 1011"object" == typeof exports && 1012 "undefined" != typeof module && 1013 (module.exports = hljs); /*! `typescript` grammar compiled for Highlight.js 11.5.0 */ 1014(() => { 1015 var e = (() => { 1016 "use strict"; 1017 const e = "[A-Za-z$_][0-9A-Za-z$_]*", 1018 n = [ 1019 "as", 1020 "in", 1021 "of", 1022 "if", 1023 "for", 1024 "while", 1025 "finally", 1026 "var", 1027 "new", 1028 "function", 1029 "do", 1030 "return", 1031 "void", 1032 "else", 1033 "break", 1034 "catch", 1035 "instanceof", 1036 "with", 1037 "throw", 1038 "case", 1039 "default", 1040 "try", 1041 "switch", 1042 "continue", 1043 "typeof", 1044 "delete", 1045 "let", 1046 "yield", 1047 "const", 1048 "class", 1049 "debugger", 1050 "async", 1051 "await", 1052 "static", 1053 "import", 1054 "from", 1055 "export", 1056 "extends", 1057 ], 1058 a = ["true", "false", "null", "undefined", "NaN", "Infinity"], 1059 t = [ 1060 "Object", 1061 "Function", 1062 "Boolean", 1063 "Symbol", 1064 "Math", 1065 "Date", 1066 "Number", 1067 "BigInt", 1068 "String", 1069 "RegExp", 1070 "Array", 1071 "Float32Array", 1072 "Float64Array", 1073 "Int8Array", 1074 "Uint8Array", 1075 "Uint8ClampedArray", 1076 "Int16Array", 1077 "Int32Array", 1078 "Uint16Array", 1079 "Uint32Array", 1080 "BigInt64Array", 1081 "BigUint64Array", 1082 "Set", 1083 "Map", 1084 "WeakSet", 1085 "WeakMap", 1086 "ArrayBuffer", 1087 "SharedArrayBuffer", 1088 "Atomics", 1089 "DataView", 1090 "JSON", 1091 "Promise", 1092 "Generator", 1093 "GeneratorFunction", 1094 "AsyncFunction", 1095 "Reflect", 1096 "Proxy", 1097 "Intl", 1098 "WebAssembly", 1099 ], 1100 s = [ 1101 "Error", 1102 "EvalError", 1103 "InternalError", 1104 "RangeError", 1105 "ReferenceError", 1106 "SyntaxError", 1107 "TypeError", 1108 "URIError", 1109 ], 1110 r = [ 1111 "setInterval", 1112 "setTimeout", 1113 "clearInterval", 1114 "clearTimeout", 1115 "require", 1116 "exports", 1117 "eval", 1118 "isFinite", 1119 "isNaN", 1120 "parseFloat", 1121 "parseInt", 1122 "decodeURI", 1123 "decodeURIComponent", 1124 "encodeURI", 1125 "encodeURIComponent", 1126 "escape", 1127 "unescape", 1128 ], 1129 c = ["arguments", "this", "super", "console", "window", "document", "localStorage", "module", "global"], 1130 i = [].concat(r, t, s); 1131 function o(o) { 1132 const l = o.regex, 1133 d = e, 1134 b = { 1135 begin: /<[A-Za-z0-9\\._:-]+/, 1136 end: /\/[A-Za-z0-9\\._:-]+>|\/>/, 1137 isTrulyOpeningTag: (e, n) => { 1138 const a = e[0].length + e.index, 1139 t = e.input[a]; 1140 if ("<" === t || "," === t) return void n.ignoreMatch(); 1141 let s; 1142 ">" === t && 1143 (((e, { after: n }) => { 1144 const a = "</" + e[0].slice(1); 1145 return -1 !== e.input.indexOf(a, n); 1146 })(e, { after: a }) || 1147 n.ignoreMatch()),
1148 (s = e.input.substr(a).match(/^\s+extends\s+/)) && 0 === s.index && n.ignoreMatch(); 1149 }, 1150 }, 1151 g = { $pattern: e, keyword: n, literal: a, built_in: i, "variable.language": c }, 1152 u = "\\.([0-9](_?[0-9])*)", 1153 m = "0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*", 1154 E = { 1155 className: "number", 1156 variants: [ 1157 { 1158 begin: `(\\b(${m})((${u})|\\.)?|(${u}))[eE][+-]?([0-9](_?[0-9])*)\\b`, 1159 }, 1160 { 1161 begin: `\\b(${m})\\b((${u})\\b|\\.)?|(${u})\\b`, 1162 }, 1163 { 1164 begin: "\\b(0|[1-9](_?[0-9])*)n\\b", 1165 }, 1166 { 1167 begin: "\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b", 1168 }, 1169 { 1170 begin: "\\b0[bB][0-1](_?[0-1])*n?\\b", 1171 }, 1172 { begin: "\\b0[oO][0-7](_?[0-7])*n?\\b" }, 1173 { 1174 begin: "\\b0[0-7]+n?\\b", 1175 }, 1176 ], 1177 relevance: 0, 1178 }, 1179 y = { className: "subst", begin: "\\$\\{", end: "\\}", keywords: g, contains: [] }, 1180 A = { 1181 begin: "html`", 1182 end: "", 1183 starts: { end: "`", returnEnd: !1, contains: [o.BACKSLASH_ESCAPE, y], subLanguage: "xml" }, 1184 }, 1185 _ = { 1186 begin: "css`", 1187 end: "", 1188 starts: { end: "`", returnEnd: !1, contains: [o.BACKSLASH_ESCAPE, y], subLanguage: "css" }, 1189 }, 1190 p = { className: "string", begin: "`", end: "`", contains: [o.BACKSLASH_ESCAPE, y] }, 1191 N = { 1192 className: "comment", 1193 variants: [ 1194 o.COMMENT(/\/\*\*(?!\/)/, "\\*/", { 1195 relevance: 0, 1196 contains: [ 1197 { 1198 begin: "(?=@[A-Za-z]+)", 1199 relevance: 0, 1200 contains: [ 1201 { className: "doctag", begin: "@[A-Za-z]+" }, 1202 { className: "type", begin: "\\{", end: "\\}", excludeEnd: !0, excludeBegin: !0, relevance: 0 }, 1203 { className: "variable", begin: d + "(?=\\s*(-)|$)", endsParent: !0, relevance: 0 }, 1204 { begin: /(?=[^\n])\s/, relevance: 0 }, 1205 ], 1206 }, 1207 ], 1208 }), 1209 o.C_BLOCK_COMMENT_MODE, 1210 o.C_LINE_COMMENT_MODE, 1211 ], 1212 }, 1213 f = [o.APOS_STRING_MODE, o.QUOTE_STRING_MODE, A, _, p, E]; 1214 y.contains = f.concat({ 1215 begin: /\{/, 1216 end: /\}/, 1217 keywords: g, 1218 contains: ["self"].concat(f), 1219 }); 1220 const h = [].concat(N, y.contains), 1221 v = h.concat([{ begin: /\(/, end: /\)/, keywords: g, contains: ["self"].concat(h) }]), 1222 S = { className: "params", begin: /\(/, end: /\)/, excludeBegin: !0, excludeEnd: !0, keywords: g, contains: v }, 1223 w = { 1224 variants: [ 1225 { 1226 match: [/class/, /\s+/, d, /\s+/, /extends/, /\s+/, l.concat(d, "(", l.concat(/\./, d), ")*")], 1227 scope: { 1: "keyword", 3: "title.class", 5: "keyword", 7: "title.class.inherited" }, 1228 }, 1229 { 1230 match: [/class/, /\s+/, d], 1231 scope: { 1: "keyword", 3: "title.class" }, 1232 }, 1233 ], 1234 }, 1235 R = { 1236 relevance: 0, 1237 match: l.either( 1238 /\bJSON/, 1239 /\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/, 1240 /\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/, 1241 /\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/, 1242 ), 1243 className: "title.class", 1244 keywords: { _: [...t, ...s] }, 1245 }, 1246 x = { 1247 variants: [ 1248 { 1249 match: [/function/, /\s+/, d, /(?=\s*\()/], 1250 }, 1251 { match: [/function/, /\s*(?=\()/] }, 1252 ], 1253 className: { 1: "keyword", 3: "title.function" }, 1254 label: "func.def", 1255 contains: [S], 1256 illegal: /%/, 1257 }, 1258 k = { 1259 match: l.concat(/\b/, ((O = [...r, "super"]), l.concat("(?!", O.join("|"), ")")), d, l.lookahead(/\(/)), 1260 className: "title.function", 1261 relevance: 0, 1262 }; 1263 var O; 1264 const I = { 1265 begin: l.concat(/\./, l.lookahead(l.concat(d, /(?![0-9A-Za-z$_(])/))), 1266 end: d, 1267 excludeBegin: !0, 1268 keywords: "prototype", 1269 className: "property", 1270 relevance: 0, 1271 }, 1272 C = { 1273 match: [/get|set/, /\s+/, d, /(?=\()/], 1274 className: { 1: "keyword", 3: "title.function" }, 1275 contains: [{ begin: /\(\)/ }, S], 1276 }, 1277 T = "(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|" + o.UNDERSCORE_IDENT_RE + ")\\s*=>", 1278 M = { 1279 match: [/const|var|let/, /\s+/, d, /\s*/, /=\s*/, /(async\s*)?/, l.lookahead(T)], 1280 keywords: "async", 1281 className: { 1: "keyword", 3: "title.function" }, 1282 contains: [S], 1283 }; 1284 return { 1285 name: "Javascript", 1286 aliases: ["js", "jsx", "mjs", "cjs"], 1287 keywords: g, 1288 exports: { 1289 PARAMS_CONTAINS: v, 1290 CLASS_REFERENCE: R, 1291 }, 1292 illegal: /#(?![$_A-z])/, 1293 contains: [ 1294 o.SHEBANG({ label: "shebang", binary: "node", relevance: 5 }), 1295 { 1296 label: "use_strict", 1297 className: "meta", 1298 relevance: 10, 1299 begin: /^\s*['"]use (strict|asm)['"]/, 1300 }, 1301 o.APOS_STRING_MODE,
1302 o.QUOTE_STRING_MODE, 1303 A, 1304 _, 1305 p, 1306 N, 1307 E, 1308 R, 1309 { className: "attr", begin: d + l.lookahead(":"), relevance: 0 }, 1310 M, 1311 { 1312 begin: "(" + o.RE_STARTERS_RE + "|\\b(case|return|throw)\\b)\\s*", 1313 keywords: "return throw case", 1314 relevance: 0, 1315 contains: [ 1316 N, 1317 o.REGEXP_MODE, 1318 { 1319 className: "function", 1320 begin: T, 1321 returnBegin: !0, 1322 end: "\\s*=>", 1323 contains: [ 1324 { 1325 className: "params", 1326 variants: [ 1327 { begin: o.UNDERSCORE_IDENT_RE, relevance: 0 }, 1328 { 1329 className: null, 1330 begin: /\(\s*\)/, 1331 skip: !0, 1332 }, 1333 { begin: /\(/, end: /\)/, excludeBegin: !0, excludeEnd: !0, keywords: g, contains: v }, 1334 ], 1335 }, 1336 ], 1337 }, 1338 { begin: /,/, relevance: 0 }, 1339 { match: /\s+/, relevance: 0 }, 1340 { 1341 variants: [ 1342 { begin: "<>", end: "</>" }, 1343 { 1344 match: /<[A-Za-z0-9\\._:-]+\s*\/>/, 1345 }, 1346 { begin: b.begin, "on:begin": b.isTrulyOpeningTag, end: b.end }, 1347 ], 1348 subLanguage: "xml", 1349 contains: [ 1350 { 1351 begin: b.begin, 1352 end: b.end, 1353 skip: !0, 1354 contains: ["self"], 1355 }, 1356 ], 1357 }, 1358 ], 1359 }, 1360 x, 1361 { 1362 beginKeywords: "while if switch catch for", 1363 }, 1364 { 1365 begin: 1366 "\\b(?!function)" + 1367 o.UNDERSCORE_IDENT_RE + 1368 "\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{", 1369 returnBegin: !0, 1370 label: "func.def", 1371 contains: [S, o.inherit(o.TITLE_MODE, { begin: d, className: "title.function" })], 1372 }, 1373 { match: /\.\.\./, relevance: 0 }, 1374 I, 1375 { match: "\\$" + d, relevance: 0 }, 1376 { match: [/\bconstructor(?=\s*\()/], className: { 1: "title.function" }, contains: [S] }, 1377 k, 1378 { relevance: 0, match: /\b[A-Z][A-Z_0-9]+\b/, className: "variable.constant" }, 1379 w, 1380 C, 1381 { match: /\$[(.]/ }, 1382 ], 1383 }; 1384 } 1385 return (t) => { 1386 const s = o(t), 1387 r = ["any", "void", "number", "boolean", "string", "object", "never", "symbol", "bigint", "unknown"], 1388 l = { 1389 beginKeywords: "namespace", 1390 end: /\{/, 1391 excludeEnd: !0, 1392 contains: [s.exports.CLASS_REFERENCE], 1393 }, 1394 d = { 1395 beginKeywords: "interface", 1396 end: /\{/, 1397 excludeEnd: !0, 1398 keywords: { keyword: "interface extends", built_in: r }, 1399 contains: [s.exports.CLASS_REFERENCE], 1400 }, 1401 b = { 1402 $pattern: e, 1403 keyword: n.concat([ 1404 "type", 1405 "namespace", 1406 "interface", 1407 "public", 1408 "private", 1409 "protected", 1410 "implements", 1411 "declare", 1412 "abstract", 1413 "readonly", 1414 "enum", 1415 "override", 1416 ]), 1417 literal: a, 1418 built_in: i.concat(r), 1419 "variable.language": c, 1420 }, 1421 g = { className: "meta", begin: "@[A-Za-z$_][0-9A-Za-z$_]*" }, 1422 u = (e, n, a) => { 1423 const t = e.contains.findIndex((e) => e.label === n); 1424 if (-1 === t) throw Error("can not find mode to replace"); 1425 e.contains.splice(t, 1, a); 1426 }; 1427 return ( 1428 Object.assign(s.keywords, b), 1429 s.exports.PARAMS_CONTAINS.push(g), 1430 (s.contains = s.contains.concat([g, l, d])), 1431 u(s, "shebang", t.SHEBANG()), 1432 u(s, "use_strict", { className: "meta", relevance: 10, begin: /^\s*['"]use strict['"]/ }), 1433 (s.contains.find((e) => "func.def" === e.label).relevance = 0), 1434 Object.assign(s, { 1435 name: "TypeScript", 1436 aliases: ["ts", "tsx"], 1437 }), 1438 s 1439 ); 1440 }; 1441 })(); 1442 hljs.registerLanguage("typescript", e); 1443})(); /*! `bash` grammar compiled for Highlight.js 11.5.0 */ 1444(() => { 1445 var e = (() => { 1446 "use strict"; 1447 return (e) => { 1448 const s = e.regex, 1449 t = {}, 1450 n = { begin: /\$\{/, end: /\}/, contains: ["self", { begin: /:-/, contains: [t] }] }; 1451 Object.assign(t, { 1452 className: "variable", 1453 variants: [ 1454 { 1455 begin: s.concat(/\$[\w\d#@][\w\d_]*/, "(?![\\w\\d])(?![$])"), 1456 }, 1457 n, 1458 ], 1459 }); 1460 const a = { 1461 className: "subst", 1462 begin: /\$\(/, 1463 end: /\)/, 1464 contains: [e.BACKSLASH_ESCAPE], 1465 }, 1466 i = { 1467 begin: /<<-?\s*(?=\w+)/, 1468 starts: { contains: [e.END_SAME_AS_BEGIN({ begin: /(\w+)/, end: /(\w+)/, className: "string" })] }, 1469 }, 1470 c = { className: "string", begin: /"/, end: /"/, contains: [e.BACKSLASH_ESCAPE, t, a] }; 1471 a.contains.push(c); 1472 const o = { 1473 begin: /\$\(\(/, 1474 end: /\)\)/, 1475 contains: [{ begin: /\d+#[0-9a-f]+/, className: "number" }, e.NUMBER_MODE, t], 1476 }, 1477 r = e.SHEBANG({ binary: "(fish|bash|zsh|sh|csh|ksh|tcsh|dash|scsh)", relevance: 10 }), 1478 l = { 1479 className: "function", 1480 begin: /\w[\w\d_]*\s*\(\s*\)\s*\{/, 1481 returnBegin: !0, 1482 contains: [e.inherit(e.TITLE_MODE, { begin: /\w[\w\d_]*/ })], 1483 relevance: 0, 1484 }; 1485 return { 1486 name: "Bash", 1487 aliases: ["sh"], 1488 keywords: { 1489 $pattern: /\b[a-z][a-z0-9._-]+\b/, 1490 keyword: ["if", "then", "else", "elif", "fi", "for", "while", "in", "do", "done", "case", "esac", "function"], 1491 literal: ["true", "false"], 1492 built_in: [ 1493 "break", 1494 "cd", 1495 "continue", 1496 "eval", 1497 "exec", 1498 "exit", 1499 "export", 1500 "getopts", 1501 "hash", 1502 "pwd", 1503 "readonly", 1504 "return", 1505 "shift", 1506 "test", 1507 "times", 1508 "trap", 1509 "umask", 1510 "unset", 1511 "alias", 1512 "bind", 1513 "builtin", 1514 "caller", 1515 "command", 1516 "declare", 1517 "echo", 1518 "enable", 1519 "help", 1520 "let", 1521 "local", 1522 "logout", 1523 "mapfile", 1524 "printf", 1525 "read", 1526 "readarray", 1527 "source", 1528 "type", 1529 "typeset", 1530 "ulimit", 1531 "unalias", 1532 "set", 1533 "shopt", 1534 "autoload", 1535 "bg", 1536 "bindkey", 1537 "bye", 1538 "cap", 1539 "chdir", 1540 "clone", 1541 "comparguments", 1542 "compcall", 1543 "compctl", 1544 "compdescribe", 1545 "compfiles", 1546 "compgroups", 1547 "compquote", 1548 "comptags", 1549 "comptry", 1550 "compvalues", 1551 "dirs", 1552 "disable", 1553 "disown", 1554 "echotc", 1555 "echoti", 1556 "emulate", 1557 "fc", 1558 "fg", 1559 "float", 1560 "functions", 1561 "getcap", 1562 "getln", 1563 "history", 1564 "integer", 1565 "jobs", 1566 "kill", 1567 "limit", 1568 "log", 1569 "noglob", 1570 "popd", 1571 "print", 1572 "pushd", 1573 "pushln", 1574 "rehash", 1575 "sched", 1576 "setcap", 1577 "setopt", 1578 "stat", 1579 "suspend", 1580 "ttyctl", 1581 "unfunction", 1582 "unhash", 1583 "unlimit", 1584 "unsetopt", 1585 "vared", 1586 "wait", 1587 "whence", 1588 "where", 1589 "which", 1590 "zcompile", 1591 "zformat", 1592 "zftp", 1593 "zle", 1594 "zmodload", 1595 "zparseopts", 1596 "zprof", 1597 "zpty", 1598 "zregexparse", 1599 "zsocket", 1600 "zstyle", 1601 "ztcp", 1602 "chcon", 1603 "chgrp", 1604 "chown", 1605 "chmod", 1606 "cp", 1607 "dd", 1608 "df", 1609 "dir", 1610 "dircolors", 1611 "ln", 1612 "ls", 1613 "mkdir", 1614 "mkfifo", 1615 "mknod", 1616 "mktemp", 1617 "mv", 1618 "realpath", 1619 "rm", 1620 "rmdir", 1621 "shred", 1622 "sync", 1623 "touch", 1624 "truncate", 1625 "vdir", 1626 "b2sum", 1627 "base32", 1628 "base64", 1629 "cat", 1630 "cksum", 1631 "comm", 1632 "csplit", 1633 "cut", 1634 "expand", 1635 "fmt", 1636 "fold", 1637 "head", 1638 "join", 1639 "md5sum", 1640 "nl", 1641 "numfmt", 1642 "od", 1643 "paste", 1644 "ptx", 1645 "pr", 1646 "sha1sum", 1647 "sha224sum", 1648 "sha256sum", 1649 "sha384sum", 1650 "sha512sum", 1651 "shuf", 1652 "sort", 1653 "split", 1654 "sum", 1655 "tac", 1656 "tail", 1657 "tr", 1658 "tsort", 1659 "unexpand", 1660 "uniq", 1661 "wc", 1662 "arch", 1663 "basename", 1664 "chroot", 1665 "date", 1666 "dirname", 1667 "du", 1668 "echo", 1669 "env", 1670 "expr", 1671 "factor", 1672 "groups", 1673 "hostid", 1674 "id", 1675 "link", 1676 "logname", 1677 "nice", 1678 "nohup", 1679 "nproc", 1680 "pathchk", 1681 "pinky", 1682 "printenv", 1683 "printf", 1684 "pwd", 1685 "readlink", 1686 "runcon", 1687 "seq", 1688 "sleep", 1689 "stat", 1690 "stdbuf", 1691 "stty", 1692 "tee", 1693 "test", 1694 "timeout", 1695 "tty", 1696 "uname", 1697 "unlink", 1698 "uptime", 1699 "users", 1700 "who", 1701 "whoami", 1702 "yes", 1703 ], 1704 }, 1705 contains: [ 1706 r, 1707 e.SHEBANG(), 1708 l, 1709 o, 1710 e.HASH_COMMENT_MODE, 1711 i, 1712 { match: /(\/[a-z._-]+)+/ }, 1713 c, 1714 { 1715 className: "", 1716 begin: /\\"/, 1717 }, 1718 { className: "string", begin: /'/, end: /'/ }, 1719 t, 1720 ], 1721 }; 1722 }; 1723 })(); 1724 hljs.registerLanguage("bash", e); 1725})(); /*! `xml` grammar compiled for Highlight.js 11.5.0 */ 1726(() => { 1727 var e = (() => { 1728 "use strict"; 1729 return (e) => { 1730 const a = e.regex, 1731 n = a.concat(/[A-Z_]/, a.optional(/[A-Z0-9_.-]*:/), /[A-Z0-9_.-]*/), 1732 s = { 1733 className: "symbol", 1734 begin: /&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/, 1735 }, 1736 t = { begin: /\s/, contains: [{ className: "keyword", begin: /#?[a-z_][a-z1-9_-]+/, illegal: /\n/ }] }, 1737 i = e.inherit(t, { begin: /\(/, end: /\)/ }), 1738 c = e.inherit(e.APOS_STRING_MODE, { 1739 className: "string", 1740 }), 1741 l = e.inherit(e.QUOTE_STRING_MODE, { className: "string" }), 1742 r = { 1743 endsWithParent: !0, 1744 illegal: /</, 1745 relevance: 0, 1746 contains: [ 1747 { className: "attr", begin: /[A-Za-z0-9._:-]+/, relevance: 0 }, 1748 { 1749 begin: /=\s*/, 1750 relevance: 0, 1751 contains: [ 1752 { 1753 className: "string", 1754 endsParent: !0, 1755 variants: [ 1756 { begin: /"/, end: /"/, contains: [s] }, 1757 { 1758 begin: /'/, 1759 end: /'/, 1760 contains: [s], 1761 }, 1762 { begin: /[^\s"'=<>`]+/ }, 1763 ], 1764 }, 1765 ], 1766 }, 1767 ], 1768 }; 1769 return { 1770 name: "HTML, XML", 1771 aliases: ["html", "xhtml", "rss", "atom", "xjb", "xsd", "xsl", "plist", "wsf", "svg"], 1772 case_insensitive: !0, 1773 contains: [ 1774 { 1775 className: "meta", 1776 begin: /<![a-z]/, 1777 end: />/, 1778 relevance: 10, 1779 contains: [ 1780 t, 1781 l, 1782 c, 1783 i, 1784 { 1785 begin: /\[/, 1786 end: /\]/, 1787 contains: [{ className: "meta", begin: /<![a-z]/, end: />/, contains: [t, i, l, c] }], 1788 }, 1789 ], 1790 }, 1791 e.COMMENT(/<!--/, /-->/, { 1792 relevance: 10, 1793 }), 1794 { begin: /<!\[CDATA\[/, end: /\]\]>/, relevance: 10 },
1795 s, 1796 { 1797 className: "meta", 1798 end: /\?>/, 1799 variants: [{ begin: /<\?xml/, relevance: 10, contains: [l] }, { begin: /<\?[a-z][a-z0-9]+/ }], 1800 }, 1801 { 1802 className: "tag", 1803 begin: /<style(?=\s|>)/, 1804 end: />/, 1805 keywords: { name: "style" }, 1806 contains: [r], 1807 starts: { end: /<\/style>/, returnEnd: !0, subLanguage: ["css", "xml"] }, 1808 }, 1809 { 1810 className: "tag", 1811 begin: /<script(?=\s|>)/, 1812 end: />/, 1813 keywords: { name: "script" }, 1814 contains: [r], 1815 starts: { end: /<\/script>/, returnEnd: !0, subLanguage: ["javascript", "handlebars", "xml"] }, 1816 }, 1817 { className: "tag", begin: /<>|<\/>/ }, 1818 { 1819 className: "tag", 1820 begin: a.concat(/</, a.lookahead(a.concat(n, a.either(/\/>/, />/, /\s/)))), 1821 end: /\/?>/, 1822 contains: [{ className: "name", begin: n, relevance: 0, starts: r }], 1823 }, 1824 { 1825 className: "tag", 1826 begin: a.concat(/<\//, a.lookahead(a.concat(n, />/))), 1827 contains: [ 1828 { 1829 className: "name", 1830 begin: n, 1831 relevance: 0, 1832 }, 1833 { begin: />/, relevance: 0, endsParent: !0 },
1834 ], 1835 }, 1836 ], 1837 }; 1838 }; 1839 })(); 1840 hljs.registerLanguage("xml", e); 1841})(); /*! `javascript` grammar compiled for Highlight.js 11.5.0 */ 1842(() => { 1843 var e = (() => { 1844 "use strict"; 1845 const e = "[A-Za-z$_][0-9A-Za-z$_]*", 1846 n = [ 1847 "as", 1848 "in", 1849 "of", 1850 "if", 1851 "for", 1852 "while", 1853 "finally", 1854 "var", 1855 "new", 1856 "function", 1857 "do", 1858 "return", 1859 "void", 1860 "else", 1861 "break", 1862 "catch", 1863 "instanceof", 1864 "with", 1865 "throw", 1866 "case", 1867 "default", 1868 "try", 1869 "switch", 1870 "continue", 1871 "typeof", 1872 "delete", 1873 "let", 1874 "yield", 1875 "const", 1876 "class", 1877 "debugger", 1878 "async", 1879 "await", 1880 "static", 1881 "import", 1882 "from", 1883 "export", 1884 "extends", 1885 ], 1886 a = ["true", "false", "null", "undefined", "NaN", "Infinity"], 1887 t = [ 1888 "Object", 1889 "Function", 1890 "Boolean", 1891 "Symbol", 1892 "Math", 1893 "Date", 1894 "Number", 1895 "BigInt", 1896 "String", 1897 "RegExp", 1898 "Array", 1899 "Float32Array", 1900 "Float64Array", 1901 "Int8Array", 1902 "Uint8Array", 1903 "Uint8ClampedArray", 1904 "Int16Array", 1905 "Int32Array", 1906 "Uint16Array", 1907 "Uint32Array", 1908 "BigInt64Array", 1909 "BigUint64Array", 1910 "Set", 1911 "Map", 1912 "WeakSet", 1913 "WeakMap", 1914 "ArrayBuffer", 1915 "SharedArrayBuffer", 1916 "Atomics", 1917 "DataView", 1918 "JSON", 1919 "Promise", 1920 "Generator", 1921 "GeneratorFunction", 1922 "AsyncFunction", 1923 "Reflect", 1924 "Proxy", 1925 "Intl", 1926 "WebAssembly", 1927 ], 1928 s = [ 1929 "Error", 1930 "EvalError", 1931 "InternalError", 1932 "RangeError", 1933 "ReferenceError", 1934 "SyntaxError", 1935 "TypeError", 1936 "URIError", 1937 ], 1938 r = [ 1939 "setInterval", 1940 "setTimeout", 1941 "clearInterval", 1942 "clearTimeout", 1943 "require", 1944 "exports", 1945 "eval", 1946 "isFinite", 1947 "isNaN", 1948 "parseFloat", 1949 "parseInt", 1950 "decodeURI", 1951 "decodeURIComponent", 1952 "encodeURI", 1953 "encodeURIComponent", 1954 "escape", 1955 "unescape", 1956 ], 1957 c = ["arguments", "this", "super", "console", "window", "document", "localStorage", "module", "global"], 1958 i = [].concat(r, t, s); 1959 return (o) => { 1960 const l = o.regex, 1961 b = e, 1962 d = { 1963 begin: /<[A-Za-z0-9\\._:-]+/, 1964 end: /\/[A-Za-z0-9\\._:-]+>|\/>/, 1965 isTrulyOpeningTag: (e, n) => { 1966 const a = e[0].length + e.index, 1967 t = e.input[a]; 1968 if ("<" === t || "," === t) return void n.ignoreMatch(); 1969 let s; 1970 ">" === t && 1971 (((e, { after: n }) => { 1972 const a = "</" + e[0].slice(1); 1973 return -1 !== e.input.indexOf(a, n); 1974 })(e, { after: a }) || 1975 n.ignoreMatch()), 1976 (s = e.input.substr(a).match(/^\s+extends\s+/)) && 0 === s.index && n.ignoreMatch(); 1977 }, 1978 }, 1979 g = { $pattern: e, keyword: n, literal: a, built_in: i, "variable.language": c }, 1980 u = "\\.([0-9](_?[0-9])*)", 1981 m = "0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*", 1982 E = { 1983 className: "number", 1984 variants: [ 1985 { 1986 begin: `(\\b(${m})((${u})|\\.)?|(${u}))[eE][+-]?([0-9](_?[0-9])*)\\b`, 1987 }, 1988 { 1989 begin: `\\b(${m})\\b((${u})\\b|\\.)?|(${u})\\b`, 1990 }, 1991 { 1992 begin: "\\b(0|[1-9](_?[0-9])*)n\\b", 1993 }, 1994 { 1995 begin: "\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b", 1996 }, 1997 { 1998 begin: "\\b0[bB][0-1](_?[0-1])*n?\\b", 1999 }, 2000 { begin: "\\b0[oO][0-7](_?[0-7])*n?\\b" }, 2001 { 2002 begin: "\\b0[0-7]+n?\\b", 2003 }, 2004 ], 2005 relevance: 0, 2006 }, 2007 A = { className: "subst", begin: "\\$\\{", end: "\\}", keywords: g, contains: [] }, 2008 y = { 2009 begin: "html`", 2010 end: "", 2011 starts: { end: "`", returnEnd: !1, contains: [o.BACKSLASH_ESCAPE, A], subLanguage: "xml" }, 2012 }, 2013 N = { 2014 begin: "css`", 2015 end: "", 2016 starts: { end: "`", returnEnd: !1, contains: [o.BACKSLASH_ESCAPE, A], subLanguage: "css" }, 2017 }, 2018 _ = { className: "string", begin: "`", end: "`", contains: [o.BACKSLASH_ESCAPE, A] }, 2019 f = { 2020 className: "comment", 2021 variants: [ 2022 o.COMMENT(/\/\*\*(?!\/)/, "\\*/", { 2023 relevance: 0, 2024 contains: [ 2025 { 2026 begin: "(?=@[A-Za-z]+)", 2027 relevance: 0, 2028 contains: [ 2029 { className: "doctag", begin: "@[A-Za-z]+" }, 2030 { className: "type", begin: "\\{", end: "\\}", excludeEnd: !0, excludeBegin: !0, relevance: 0 }, 2031 { className: "variable", begin: b + "(?=\\s*(-)|$)", endsParent: !0, relevance: 0 }, 2032 { begin: /(?=[^\n])\s/, relevance: 0 }, 2033 ], 2034 }, 2035 ], 2036 }), 2037 o.C_BLOCK_COMMENT_MODE, 2038 o.C_LINE_COMMENT_MODE, 2039 ], 2040 },
2041 h = [o.APOS_STRING_MODE, o.QUOTE_STRING_MODE, y, N, _, E]; 2042 A.contains = h.concat({ 2043 begin: /\{/, 2044 end: /\}/, 2045 keywords: g, 2046 contains: ["self"].concat(h), 2047 }); 2048 const v = [].concat(f, A.contains), 2049 p = v.concat([{ begin: /\(/, end: /\)/, keywords: g, contains: ["self"].concat(v) }]), 2050 S = { className: "params", begin: /\(/, end: /\)/, excludeBegin: !0, excludeEnd: !0, keywords: g, contains: p }, 2051 w = { 2052 variants: [ 2053 { 2054 match: [/class/, /\s+/, b, /\s+/, /extends/, /\s+/, l.concat(b, "(", l.concat(/\./, b), ")*")], 2055 scope: { 1: "keyword", 3: "title.class", 5: "keyword", 7: "title.class.inherited" }, 2056 }, 2057 { 2058 match: [/class/, /\s+/, b], 2059 scope: { 1: "keyword", 3: "title.class" }, 2060 }, 2061 ], 2062 }, 2063 R = { 2064 relevance: 0, 2065 match: l.either( 2066 /\bJSON/, 2067 /\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/, 2068 /\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/, 2069 /\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/, 2070 ), 2071 className: "title.class", 2072 keywords: { _: [...t, ...s] }, 2073 }, 2074 O = { 2075 variants: [ 2076 { 2077 match: [/function/, /\s+/, b, /(?=\s*\()/], 2078 }, 2079 { match: [/function/, /\s*(?=\()/] }, 2080 ], 2081 className: { 1: "keyword", 3: "title.function" }, 2082 label: "func.def", 2083 contains: [S], 2084 illegal: /%/, 2085 }, 2086 k = { 2087 match: l.concat(/\b/, ((I = [...r, "super"]), l.concat("(?!", I.join("|"), ")")), b, l.lookahead(/\(/)), 2088 className: "title.function", 2089 relevance: 0, 2090 }; 2091 var I; 2092 const x = { 2093 begin: l.concat(/\./, l.lookahead(l.concat(b, /(?![0-9A-Za-z$_(])/))), 2094 end: b, 2095 excludeBegin: !0, 2096 keywords: "prototype", 2097 className: "property", 2098 relevance: 0, 2099 }, 2100 T = { 2101 match: [/get|set/, /\s+/, b, /(?=\()/], 2102 className: { 1: "keyword", 3: "title.function" }, 2103 contains: [{ begin: /\(\)/ }, S], 2104 }, 2105 C = "(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|" + o.UNDERSCORE_IDENT_RE + ")\\s*=>", 2106 M = { 2107 match: [/const|var|let/, /\s+/, b, /\s*/, /=\s*/, /(async\s*)?/, l.lookahead(C)], 2108 keywords: "async", 2109 className: { 1: "keyword", 3: "title.function" }, 2110 contains: [S], 2111 }; 2112 return { 2113 name: "Javascript", 2114 aliases: ["js", "jsx", "mjs", "cjs"], 2115 keywords: g, 2116 exports: { 2117 PARAMS_CONTAINS: p, 2118 CLASS_REFERENCE: R, 2119 }, 2120 illegal: /#(?![$_A-z])/, 2121 contains: [ 2122 o.SHEBANG({ label: "shebang", binary: "node", relevance: 5 }), 2123 { 2124 label: "use_strict", 2125 className: "meta", 2126 relevance: 10, 2127 begin: /^\s*['"]use (strict|asm)['"]/, 2128 }, 2129 o.APOS_STRING_MODE, 2130 o.QUOTE_STRING_MODE, 2131 y, 2132 N, 2133 _, 2134 f, 2135 E, 2136 R, 2137 { className: "attr", begin: b + l.lookahead(":"), relevance: 0 }, 2138 M, 2139 { 2140 begin: "(" + o.RE_STARTERS_RE + "|\\b(case|return|throw)\\b)\\s*", 2141 keywords: "return throw case", 2142 relevance: 0, 2143 contains: [ 2144 f, 2145 o.REGEXP_MODE, 2146 { 2147 className: "function", 2148 begin: C, 2149 returnBegin: !0, 2150 end: "\\s*=>", 2151 contains: [ 2152 { 2153 className: "params", 2154 variants: [ 2155 { begin: o.UNDERSCORE_IDENT_RE, relevance: 0 }, 2156 { 2157 className: null, 2158 begin: /\(\s*\)/, 2159 skip: !0, 2160 }, 2161 { begin: /\(/, end: /\)/, excludeBegin: !0, excludeEnd: !0, keywords: g, contains: p }, 2162 ], 2163 }, 2164 ], 2165 }, 2166 { begin: /,/, relevance: 0 }, 2167 { match: /\s+/, relevance: 0 }, 2168 { 2169 variants: [ 2170 { begin: "<>", end: "</>" }, 2171 { 2172 match: /<[A-Za-z0-9\\._:-]+\s*\/>/, 2173 }, 2174 { begin: d.begin, "on:begin": d.isTrulyOpeningTag, end: d.end }, 2175 ], 2176 subLanguage: "xml", 2177 contains: [ 2178 { 2179 begin: d.begin, 2180 end: d.end, 2181 skip: !0, 2182 contains: ["self"], 2183 }, 2184 ], 2185 }, 2186 ], 2187 }, 2188 O, 2189 { 2190 beginKeywords: "while if switch catch for", 2191 }, 2192 { 2193 begin: 2194 "\\b(?!function)" + 2195 o.UNDERSCORE_IDENT_RE +
2196 "\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{", 2197 returnBegin: !0, 2198 label: "func.def", 2199 contains: [S, o.inherit(o.TITLE_MODE, { begin: b, className: "title.function" })], 2200 }, 2201 { match: /\.\.\./, relevance: 0 }, 2202 x, 2203 { match: "\\$" + b, relevance: 0 }, 2204 { match: [/\bconstructor(?=\s*\()/], className: { 1: "title.function" }, contains: [S] }, 2205 k, 2206 { relevance: 0, match: /\b[A-Z][A-Z_0-9]+\b/, className: "variable.constant" }, 2207 w, 2208 T, 2209 { match: /\$[(.]/ }, 2210 ], 2211 }; 2212 }; 2213 })(); 2214 hljs.registerLanguage("javascript", e); 2215})(); /*! `markdown` grammar compiled for Highlight.js 11.5.0 */ 2216(() => { 2217 var e = (() => { 2218 "use strict"; 2219 return (e) => { 2220 const n = { begin: /<\/?[A-Za-z_]/, end: ">", subLanguage: "xml", relevance: 0 }, 2221 a = { 2222 variants: [ 2223 { begin: /\[.+?\]\[.*?\]/, relevance: 0 }, 2224 { 2225 begin: /\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/, 2226 relevance: 2, 2227 }, 2228 { 2229 begin: e.regex.concat(/\[.+?\]\(/, /[A-Za-z][A-Za-z0-9+.-]*/, /:\/\/.*?\)/), 2230 relevance: 2, 2231 }, 2232 { begin: /\[.+?\]\([./?&#].*?\)/, relevance: 1 }, 2233 { 2234 begin: /\[.*?\]\(.*?\)/, 2235 relevance: 0, 2236 }, 2237 ], 2238 returnBegin: !0, 2239 contains: [ 2240 { match: /\[(?=\])/ }, 2241 { className: "string", relevance: 0, begin: "\\[", end: "\\]", excludeBegin: !0, returnEnd: !0 }, 2242 { className: "link", relevance: 0, begin: "\\]\\(", end: "\\)", excludeBegin: !0, excludeEnd: !0 }, 2243 { className: "symbol", relevance: 0, begin: "\\]\\[", end: "\\]", excludeBegin: !0, excludeEnd: !0 }, 2244 ], 2245 }, 2246 i = { 2247 className: "strong", 2248 contains: [], 2249 variants: [ 2250 { begin: /_{2}/, end: /_{2}/ }, 2251 { begin: /\*{2}/, end: /\*{2}/ }, 2252 ], 2253 }, 2254 s = { 2255 className: "emphasis", 2256 contains: [], 2257 variants: [ 2258 { begin: /\*(?!\*)/, end: /\*/ }, 2259 { 2260 begin: /_(?!_)/, 2261 end: /_/, 2262 relevance: 0, 2263 }, 2264 ], 2265 }, 2266 c = e.inherit(i, { contains: [] }), 2267 t = e.inherit(s, { contains: [] }); 2268 i.contains.push(t), s.contains.push(c); 2269 let g = [n, a]; 2270 return ( 2271 [i, s, c, t].forEach((e) => { 2272 e.contains = e.contains.concat(g); 2273 }), 2274 (g = g.concat(i, s)), 2275 { 2276 name: "Markdown", 2277 aliases: ["md", "mkdown", "mkd"], 2278 contains: [ 2279 { 2280 className: "section", 2281 variants: [ 2282 { begin: "^#{1,6}", end: "$", contains: g }, 2283 { 2284 begin: "(?=^.+?\\n[=-]{2,}$)", 2285 contains: [{ begin: "^[=-]*$" }, { begin: "^", end: "\\n", contains: g }], 2286 }, 2287 ], 2288 }, 2289 n, 2290 { className: "bullet", begin: "^[ \t]*([*+-]|(\\d+\\.))(?=\\s+)", end: "\\s+", excludeEnd: !0 }, 2291 i, 2292 s, 2293 { className: "quote", begin: "^>\\s+", contains: g, end: "$" }, 2294 { 2295 className: "code", 2296 variants: [ 2297 { begin: "(`{3,})[^`](.|\\n)*?\\1`*[ ]*" }, 2298 { 2299 begin: "(~{3,})[^~](.|\\n)*?\\1~*[ ]*", 2300 }, 2301 { begin: "```", end: "```+[ ]*$" }, 2302 { 2303 begin: "~~~", 2304 end: "~~~+[ ]*$", 2305 }, 2306 { begin: "`.+?`" }, 2307 { begin: "(?=^( {4}|\\t))", contains: [{ begin: "^( {4}|\\t)", end: "(\\n)$" }], relevance: 0 }, 2308 ], 2309 }, 2310 { 2311 begin: "^[-\\*]{3,}", 2312 end: "$", 2313 }, 2314 a, 2315 { 2316 begin: /^\[[^\n]+\]:/, 2317 returnBegin: !0, 2318 contains: [ 2319 { 2320 className: "symbol", 2321 begin: /\[/, 2322 end: /\]/, 2323 excludeBegin: !0, 2324 excludeEnd: !0, 2325 }, 2326 { 2327 className: "link", 2328 begin: /:\s*/, 2329 end: /$/, 2330 excludeBegin: !0, 2331 }, 2332 ], 2333 }, 2334 ], 2335 } 2336 ); 2337 }; 2338 })(); 2339 hljs.registerLanguage("markdown", e); 2340})();
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.