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.

539 lines
16 KiB

/*! highlight.js v9.9.0 | BSD3 License | git.io/hljslicense */
!(function (e) {
var n = ('object' == typeof window && window) || ('object' == typeof self && self)
'undefined' != typeof exports
? e(exports)
: n &&
((n.hljs = e({})),
'function' == typeof define &&
define.amd &&
define([], function () {
return n.hljs
}))
})(function (e) {
function n(e) {
return e.replace(/[&<>]/gm, function (e) {
return I[e]
})
}
function t(e) {
return e.nodeName.toLowerCase()
}
function r(e, n) {
var t = e && e.exec(n)
return t && 0 === t.index
}
function i(e) {
return k.test(e)
}
function a(e) {
var n,
t,
r,
a,
o = e.className + ' '
if (((o += e.parentNode ? e.parentNode.className : ''), (t = B.exec(o))))
return R(t[1]) ? t[1] : 'no-highlight'
for (o = o.split(/\s+/), n = 0, r = o.length; r > n; n++)
if (((a = o[n]), i(a) || R(a))) return a
}
function o(e, n) {
var t,
r = {}
for (t in e) r[t] = e[t]
if (n) for (t in n) r[t] = n[t]
return r
}
function u(e) {
var n = []
return (
(function r(e, i) {
for (var a = e.firstChild; a; a = a.nextSibling)
3 === a.nodeType
? (i += a.nodeValue.length)
: 1 === a.nodeType &&
(n.push({ event: 'start', offset: i, node: a }),
(i = r(a, i)),
t(a).match(/br|hr|img|input/) || n.push({ event: 'stop', offset: i, node: a }))
return i
})(e, 0),
n
)
}
function c(e, r, i) {
function a() {
return e.length && r.length
? e[0].offset !== r[0].offset
? e[0].offset < r[0].offset
? e
: r
: 'start' === r[0].event
? e
: r
: e.length
? e
: r
}
function o(e) {
function r(e) {
return ' ' + e.nodeName + '="' + n(e.value) + '"'
}
l += '<' + t(e) + w.map.call(e.attributes, r).join('') + '>'
}
function u(e) {
l += '</' + t(e) + '>'
}
function c(e) {
;('start' === e.event ? o : u)(e.node)
}
for (var s = 0, l = '', f = []; e.length || r.length; ) {
var g = a()
if (((l += n(i.substring(s, g[0].offset))), (s = g[0].offset), g === e)) {
f.reverse().forEach(u)
do c(g.splice(0, 1)[0]), (g = a())
while (g === e && g.length && g[0].offset === s)
f.reverse().forEach(o)
} else 'start' === g[0].event ? f.push(g[0].node) : f.pop(), c(g.splice(0, 1)[0])
}
return l + n(i.substr(s))
}
function s(e) {
function n(e) {
return (e && e.source) || e
}
function t(t, r) {
return new RegExp(n(t), 'm' + (e.cI ? 'i' : '') + (r ? 'g' : ''))
}
function r(i, a) {
if (!i.compiled) {
if (((i.compiled = !0), (i.k = i.k || i.bK), i.k)) {
var u = {},
c = function (n, t) {
e.cI && (t = t.toLowerCase()),
t.split(' ').forEach(function (e) {
var t = e.split('|')
u[t[0]] = [n, t[1] ? Number(t[1]) : 1]
})
}
'string' == typeof i.k
? c('keyword', i.k)
: E(i.k).forEach(function (e) {
c(e, i.k[e])
}),
(i.k = u)
}
;(i.lR = t(i.l || /\w+/, !0)),
a &&
(i.bK && (i.b = '\\b(' + i.bK.split(' ').join('|') + ')\\b'),
i.b || (i.b = /\B|\b/),
(i.bR = t(i.b)),
i.e || i.eW || (i.e = /\B|\b/),
i.e && (i.eR = t(i.e)),
(i.tE = n(i.e) || ''),
i.eW && a.tE && (i.tE += (i.e ? '|' : '') + a.tE)),
i.i && (i.iR = t(i.i)),
null == i.r && (i.r = 1),
i.c || (i.c = [])
var s = []
i.c.forEach(function (e) {
e.v
? e.v.forEach(function (n) {
s.push(o(e, n))
})
: s.push('self' === e ? i : e)
}),
(i.c = s),
i.c.forEach(function (e) {
r(e, i)
}),
i.starts && r(i.starts, a)
var l = i.c
.map(function (e) {
return e.bK ? '\\.?(' + e.b + ')\\.?' : e.b
})
.concat([i.tE, i.i])
.map(n)
.filter(Boolean)
i.t = l.length
? t(l.join('|'), !0)
: {
exec: function () {
return null
},
}
}
}
r(e)
}
function l(e, t, i, a) {
function o(e, n) {
var t, i
for (t = 0, i = n.c.length; i > t; t++) if (r(n.c[t].bR, e)) return n.c[t]
}
function u(e, n) {
if (r(e.eR, n)) {
for (; e.endsParent && e.parent; ) e = e.parent
return e
}
return e.eW ? u(e.parent, n) : void 0
}
function c(e, n) {
return !i && r(n.iR, e)
}
function g(e, n) {
var t = N.cI ? n[0].toLowerCase() : n[0]
return e.k.hasOwnProperty(t) && e.k[t]
}
function h(e, n, t, r) {
var i = r ? '' : y.classPrefix,
a = '<span class="' + i,
o = t ? '' : C
return (a += e + '">'), a + n + o
}
function p() {
var e, t, r, i
if (!E.k) return n(B)
for (i = '', t = 0, E.lR.lastIndex = 0, r = E.lR.exec(B); r; )
(i += n(B.substring(t, r.index))),
(e = g(E, r)),
e ? ((M += e[1]), (i += h(e[0], n(r[0])))) : (i += n(r[0])),
(t = E.lR.lastIndex),
(r = E.lR.exec(B))
return i + n(B.substr(t))
}
function d() {
var e = 'string' == typeof E.sL
if (e && !x[E.sL]) return n(B)
var t = e ? l(E.sL, B, !0, L[E.sL]) : f(B, E.sL.length ? E.sL : void 0)
return E.r > 0 && (M += t.r), e && (L[E.sL] = t.top), h(t.language, t.value, !1, !0)
}
function b() {
;(k += null != E.sL ? d() : p()), (B = '')
}
function v(e) {
;(k += e.cN ? h(e.cN, '', !0) : ''), (E = Object.create(e, { parent: { value: E } }))
}
function m(e, n) {
if (((B += e), null == n)) return b(), 0
var t = o(n, E)
if (t)
return (
t.skip ? (B += n) : (t.eB && (B += n), b(), t.rB || t.eB || (B = n)),
v(t, n),
t.rB ? 0 : n.length
)
var r = u(E, n)
if (r) {
var i = E
i.skip ? (B += n) : (i.rE || i.eE || (B += n), b(), i.eE && (B = n))
do E.cN && (k += C), E.skip || (M += E.r), (E = E.parent)
while (E !== r.parent)
return r.starts && v(r.starts, ''), i.rE ? 0 : n.length
}
if (c(n, E))
throw new Error('Illegal lexeme "' + n + '" for mode "' + (E.cN || '<unnamed>') + '"')
return (B += n), n.length || 1
}
var N = R(e)
if (!N) throw new Error('Unknown language: "' + e + '"')
s(N)
var w,
E = a || N,
L = {},
k = ''
for (w = E; w !== N; w = w.parent) w.cN && (k = h(w.cN, '', !0) + k)
var B = '',
M = 0
try {
for (var I, j, O = 0; ; ) {
if (((E.t.lastIndex = O), (I = E.t.exec(t)), !I)) break
;(j = m(t.substring(O, I.index), I[0])), (O = I.index + j)
}
for (m(t.substr(O)), w = E; w.parent; w = w.parent) w.cN && (k += C)
return { r: M, value: k, language: e, top: E }
} catch (T) {
if (T.message && -1 !== T.message.indexOf('Illegal')) return { r: 0, value: n(t) }
throw T
}
}
function f(e, t) {
t = t || y.languages || E(x)
var r = { r: 0, value: n(e) },
i = r
return (
t.filter(R).forEach(function (n) {
var t = l(n, e, !1)
;(t.language = n), t.r > i.r && (i = t), t.r > r.r && ((i = r), (r = t))
}),
i.language && (r.second_best = i),
r
)
}
function g(e) {
return y.tabReplace || y.useBR
? e.replace(M, function (e, n) {
return y.useBR && '\n' === e
? '<br>'
: y.tabReplace
? n.replace(/\t/g, y.tabReplace)
: void 0
})
: e
}
function h(e, n, t) {
var r = n ? L[n] : t,
i = [e.trim()]
return (
e.match(/\bhljs\b/) || i.push('hljs'), -1 === e.indexOf(r) && i.push(r), i.join(' ').trim()
)
}
function p(e) {
var n,
t,
r,
o,
s,
p = a(e)
i(p) ||
(y.useBR
? ((n = document.createElementNS('http://www.w3.org/1999/xhtml', 'div')),
(n.innerHTML = e.innerHTML.replace(/\n/g, '').replace(/<br[ \/]*>/g, '\n')))
: (n = e),
(s = n.textContent),
(r = p ? l(p, s, !0) : f(s)),
(t = u(n)),
t.length &&
((o = document.createElementNS('http://www.w3.org/1999/xhtml', 'div')),
(o.innerHTML = r.value),
(r.value = c(t, u(o), s))),
(r.value = g(r.value)),
(e.innerHTML = r.value),
(e.className = h(e.className, p, r.language)),
(e.result = { language: r.language, re: r.r }),
r.second_best && (e.second_best = { language: r.second_best.language, re: r.second_best.r }))
}
function d(e) {
y = o(y, e)
}
function b() {
if (!b.called) {
b.called = !0
var e = document.querySelectorAll('pre code')
w.forEach.call(e, p)
}
}
function v() {
addEventListener('DOMContentLoaded', b, !1), addEventListener('load', b, !1)
}
function m(n, t) {
var r = (x[n] = t(e))
r.aliases &&
r.aliases.forEach(function (e) {
L[e] = n
})
}
function N() {
return E(x)
}
function R(e) {
return (e = (e || '').toLowerCase()), x[e] || x[L[e]]
}
var w = [],
E = Object.keys,
x = {},
L = {},
k = /^(no-?highlight|plain|text)$/i,
B = /\blang(?:uage)?-([\w-]+)\b/i,
M = /((^(<[^>]+>|\t|)+|(?:\n)))/gm,
C = '</span>',
y = { classPrefix: 'hljs-', tabReplace: null, useBR: !1, languages: void 0 },
I = { '&': '&amp;', '<': '&lt;', '>': '&gt;' }
return (
(e.highlight = l),
(e.highlightAuto = f),
(e.fixMarkup = g),
(e.highlightBlock = p),
(e.configure = d),
(e.initHighlighting = b),
(e.initHighlightingOnLoad = v),
(e.registerLanguage = m),
(e.listLanguages = N),
(e.getLanguage = R),
(e.inherit = o),
(e.IR = '[a-zA-Z]\\w*'),
(e.UIR = '[a-zA-Z_]\\w*'),
(e.NR = '\\b\\d+(\\.\\d+)?'),
(e.CNR = '(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)'),
(e.BNR = '\\b(0b[01]+)'),
(e.RSR =
'!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~'),
(e.BE = { b: '\\\\[\\s\\S]', r: 0 }),
(e.ASM = { cN: 'string', b: "'", e: "'", i: '\\n', c: [e.BE] }),
(e.QSM = { cN: 'string', b: '"', e: '"', i: '\\n', c: [e.BE] }),
(e.PWM = {
b: /\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|like)\b/,
}),
(e.C = function (n, t, r) {
var i = e.inherit({ cN: 'comment', b: n, e: t, c: [] }, r || {})
return i.c.push(e.PWM), i.c.push({ cN: 'doctag', b: '(?:TODO|FIXME|NOTE|BUG|XXX):', r: 0 }), i
}),
(e.CLCM = e.C('//', '$')),
(e.CBCM = e.C('/\\*', '\\*/')),
(e.HCM = e.C('#', '$')),
(e.NM = { cN: 'number', b: e.NR, r: 0 }),
(e.CNM = { cN: 'number', b: e.CNR, r: 0 }),
(e.BNM = { cN: 'number', b: e.BNR, r: 0 }),
(e.CSSNM = {
cN: 'number',
b:
e.NR +
'(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?',
r: 0,
}),
(e.RM = {
cN: 'regexp',
b: /\//,
e: /\/[gimuy]*/,
i: /\n/,
c: [e.BE, { b: /\[/, e: /\]/, r: 0, c: [e.BE] }],
}),
(e.TM = { cN: 'title', b: e.IR, r: 0 }),
(e.UTM = { cN: 'title', b: e.UIR, r: 0 }),
(e.METHOD_GUARD = { b: '\\.\\s*' + e.UIR, r: 0 }),
e
)
})
hljs.registerLanguage('javascript', function (e) {
var r = '[A-Za-z$_][0-9A-Za-z$_]*',
t = {
keyword:
'in of if for while finally var new function do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const export super debugger as async await static import from as',
literal: 'true false null undefined NaN Infinity',
built_in:
'eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError Number Math Date String RegExp Array Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require module console window document Symbol Set Map WeakSet WeakMap Proxy Reflect Promise',
},
a = {
cN: 'number',
v: [{ b: '\\b(0[bB][01]+)' }, { b: '\\b(0[oO][0-7]+)' }, { b: e.CNR }],
r: 0,
},
n = { cN: 'subst', b: '\\$\\{', e: '\\}', k: t, c: [] },
c = { cN: 'string', b: '`', e: '`', c: [e.BE, n] }
n.c = [e.ASM, e.QSM, c, a, e.RM]
var s = n.c.concat([e.CBCM, e.CLCM])
return {
aliases: ['js', 'jsx'],
k: t,
c: [
{ cN: 'meta', r: 10, b: /^\s*['"]use (strict|asm)['"]/ },
{ cN: 'meta', b: /^#!/, e: /$/ },
e.ASM,
e.QSM,
c,
e.CLCM,
e.CBCM,
a,
{
b: /[{,]\s*/,
r: 0,
c: [{ b: r + '\\s*:', rB: !0, r: 0, c: [{ cN: 'attr', b: r, r: 0 }] }],
},
{
b: '(' + e.RSR + '|\\b(case|return|throw)\\b)\\s*',
k: 'return throw case',
c: [
e.CLCM,
e.CBCM,
e.RM,
{
cN: 'function',
b: '(\\(.*?\\)|' + r + ')\\s*=>',
rB: !0,
e: '\\s*=>',
c: [
{
cN: 'params',
v: [{ b: r }, { b: /\(\s*\)/ }, { b: /\(/, e: /\)/, eB: !0, eE: !0, k: t, c: s }],
},
],
},
{
b: /</,
e: /(\/\w+|\w+\/)>/,
sL: 'xml',
c: [
{ b: /<\w+\s*\/>/, skip: !0 },
{
b: /<\w+/,
e: /(\/\w+|\w+\/)>/,
skip: !0,
c: [{ b: /<\w+\s*\/>/, skip: !0 }, 'self'],
},
],
},
],
r: 0,
},
{
cN: 'function',
bK: 'function',
e: /\{/,
eE: !0,
c: [e.inherit(e.TM, { b: r }), { cN: 'params', b: /\(/, e: /\)/, eB: !0, eE: !0, c: s }],
i: /\[|%/,
},
{ b: /\$[(.]/ },
e.METHOD_GUARD,
{
cN: 'class',
bK: 'class',
e: /[{;=]/,
eE: !0,
i: /[:"\[\]]/,
c: [{ bK: 'extends' }, e.UTM],
},
{ bK: 'constructor', e: /\{/, eE: !0 },
],
i: /#(?!!)/,
}
})
// Line numbers plugin
!(function (e) {
'use strict'
function t() {
'complete' === document.readyState ? n() : e.addEventListener('DOMContentLoaded', n)
}
function n() {
try {
var e = document.querySelectorAll('code.hljs')
for (var t in e) e.hasOwnProperty(t) && r(e[t])
} catch (n) {
console.error('LineNumbers error: ', n)
}
}
function r(e) {
if ('object' == typeof e) {
var t = e.parentNode,
n = o(t.textContent)
if (n > 1) {
for (var r = '', c = 0; n > c; c++) r += c + 1 + '\n'
var l = document.createElement('code')
;(l.className = 'hljs hljs-line-numbers'),
(l.style['float'] = 'left'),
(l.textContent = r),
t.insertBefore(l, e)
}
}
}
function o(e) {
if (0 === e.length) return 0
var t = /\r\n|\r|\n/g,
n = e.match(t)
return (n = n ? n.length : 0), e[e.length - 1].match(t) || (n += 1), n
}
'undefined' == typeof e.hljs
? console.error('highlight.js not detected!')
: ((e.hljs.initLineNumbersOnLoad = t), (e.hljs.lineNumbersBlock = r))
})(window)