]>
luflow.net public git repositories - flow-web.git/blob - static/highlight/es/core.min.js
2 Highlight.js v11.11.1 (git: 08cb242e7d)
3 (c) 2006-2025 Josh Goebel <hello@joshgoebel.com> and other contributors
6 function e ( t
){ return t
instanceof Map
? t
. clear
= t
. delete = t
. set =()=>{
7 throw Error ( "map is read-only" )}: t
instanceof Set
&&( t
. add
= t
. clear
= t
. delete =()=>{
8 throw Error ( "set is read-only" )
9 }), Object
. freeze ( t
), Object
. getOwnPropertyNames ( t
). forEach (( n
=>{
10 const i
= t
[ n
], s
= typeof i
; "object" !== s
&& "function" !== s
|| Object
. isFrozen ( i
)|| e ( i
)
11 })), t
} class t
{ constructor ( e
){
12 void 0 === e
. data
&&( e
. data
={}), this . data
= e
. data
, this . isMatchIgnored
=! 1 }
13 ignoreMatch (){ this . isMatchIgnored
=! 0 }} function n ( e
){
14 return e
. replace ( /&/g,"&").replace(/ < /g,"<").replace(/ > /g,">").replace(/ "/g," & quot
; ").replace(/'/g," &# x27
; ")
15 }function i(e,...t){const n=Object.create(null);for(const t in e)n[t]=e[t]
16 ;return t.forEach((e=>{for(const t in e)n[t]=e[t]})),n}const s=e=>!!e.scope
17 ;class r{constructor(e,t){
18 this.buffer=" ",this.classPrefix=t.classPrefix,e.walk(this)}addText(e){
19 this.buffer+=n(e)}openNode(e){if(!s(e))return;const t=((e,{prefix:t})=>{
20 if(e.startsWith(" language : "))return e.replace(" language : "," language
- ")
21 ;if(e.includes(" . ")){const n=e.split(" . ")
22 ;return[` ${t}${n.shift()} `,...n.map(((e,t)=>` ${e}${"_".repeat(t+1)} `))].join(" ")
23 }return` ${t}${e} `})(e.scope,{prefix:this.classPrefix});this.span(t)}
24 closeNode(e){s(e)&&(this.buffer+=" </ span
> ")}value(){return this.buffer}span(e){
25 this.buffer+=`<span class=" ${e}
">`}}const o=(e={})=>{const t={children:[]}
26 ;return Object.assign(t,e),t};class a{constructor(){
27 this.rootNode=o(),this.stack=[this.rootNode]}get top(){
28 return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(e){
29 this.top.children.push(e)}openNode(e){const t=o({scope:e})
30 ;this.add(t),this.stack.push(t)}closeNode(){
31 if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){
32 for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}
33 walk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,t){
34 return" string
"==typeof t?e.addText(t):t.children&&(e.openNode(t),
35 t.children.forEach((t=>this._walk(e,t))),e.closeNode(t)),e}static _collapse(e){
36 " string
"!=typeof e&&e.children&&(e.children.every((e=>" string
"==typeof e))?e.children=[e.children.join(" ")]:e.children.forEach((e=>{
37 a._collapse(e)})))}}class c extends a{constructor(e){super(),this.options=e}
38 addText(e){" "!==e&&this.add(e)}startScope(e){this.openNode(e)}endScope(){
39 this.closeNode()}__addSublanguage(e,t){const n=e.root
40 ;t&&(n.scope=" language : "+t),this.add(n)}toHTML(){
41 return new r(this,this.options).value()}finalize(){
42 return this.closeAllNodes(),!0}}function l(e){
43 return e?" string
"==typeof e?e:e.source:null}function g(e){return h(" (?= ",e," ) ")}
44 function u(e){return h(" (?: ",e," )* ")}function d(e){return h(" (?: ",e," )? ")}
45 function h(...e){return e.map((e=>l(e))).join(" ")}function f(...e){const t=(e=>{
47 ;return" object
"==typeof t&&t.constructor===Object?(e.splice(e.length-1,1),t):{}
48 })(e);return" ( "+(t.capture?" ":" ?: ")+e.map((e=>l(e))).join(" | ")+" ) "}
49 function p(e){return RegExp(e.toString()+" | ").exec(" ").length-1}
50 const b=/\[(?:[^ \\ \]]| \\ .)*\]|\( \? ?| \\ ([1-9][0-9]*)| \\ ./
51 ;function m(e,{joinWith:t}){let n=0;return e.map((e=>{n+=1;const t=n
52 ;let i=l(e),s=" ";for(;i.length>0;){const e=b.exec(i);if(!e){s+=i;break}
53 s+=i.substring(0,e.index),
54 i=i.substring(e.index+e[0].length)," \\ "===e[0][0]&&e[1]?s+=" \\ "+(Number(e[1])+t):(s+=e[0],
55 " ( "===e[0]&&n++)}return s})).map((e=>`( ${e} )`)).join(t)}
56 const E=" [ a
- zA
- Z
] \\ w
* ",x=" [ a
- zA
- Z_
] \\ w
* ",_=" \\ b
\\ d
+( \\ . \\ d
+)? ",y=" (-?)( \\ b0
[ xX
][ a
- fA
- F0
- 9 ]+|( \\ b
\\ d
+( \\ . \\ d
*)?| \\ . \\ d
+)([ eE
][-+]? \\ d
+)?) ",w=" \\ b ( 0 b
[ 01 ]+) ",O={
57 begin:" \\\\ [ \\ s
\\ S
] ",relevance:0},k={scope:" string
",begin:" '",end:"' ",
58 illegal:" \\ n
",contains:[O]},v={scope:" string
",begin:'" ',end:' "',illegal:" \\ n
",
59 contains:[O]},N=(e,t,n={})=>{const s=i({scope:" comment
",begin:e,end:t,
60 contains:[]},n);s.contains.push({scope:" doctag
",
61 begin:" [ ]*(?=( TODO
| FIXME
| NOTE
| BUG
| OPTIMIZE
| HACK
| XXX
):) ",
62 end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0})
63 ;const r=f(" I
"," a
"," is
"," so
"," us
"," to
"," at
"," if "," in "," it
"," on
",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/)
64 ;return s.contains.push({begin:h(/[ ]+/," ( ",r,/[.]?[:]?([.][ ]|[ ])/," ){ 3 } ")}),s
65 },S=N(" //","$"),M=N("/\\*","\\*/"),R=N("#","$");var A=Object.freeze({
66 __proto__ : null , APOS_STRING_MODE : k
, BACKSLASH_ESCAPE : O
, BINARY_NUMBER_MODE :{
67 scope : "number" , begin : w
, relevance : 0 }, BINARY_NUMBER_RE : w
, COMMENT : N
,
68 C_BLOCK_COMMENT_MODE : M
, C_LINE_COMMENT_MODE : S
, C_NUMBER_MODE :{ scope : "number" ,
69 begin : y
, relevance : 0 }, C_NUMBER_RE : y
, END_SAME_AS_BEGIN : e
=> Object
. assign ( e
,{
70 "on:begin" :( e
, t
)=>{ t
. data
. _beginMatch
= e
[ 1 ]}, "on:end" :( e
, t
)=>{
71 t
. data
. _beginMatch
!== e
[ 1 ]&& t
. ignoreMatch ()}}), HASH_COMMENT_MODE : R
, IDENT_RE : E
,
72 MATCH_NOTHING_RE : /\b\B/ , METHOD_GUARD :{ begin : " \\ . \\ s*" + x
, relevance : 0 },
73 NUMBER_MODE :{ scope : "number" , begin : _
, relevance : 0 }, NUMBER_RE : _
,
75 begin : /\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/
76 }, QUOTE_STRING_MODE : v
, REGEXP_MODE :{ scope : "regexp" , begin : /\/(?=[^/ \n ]*\/)/,
77 end : /\/[gimuy]*/ , contains :[ O
,{ begin : /\[/ , end : /\]/ , relevance : 0 , contains :[ O
]}]},
78 RE_STARTERS_RE : "!|!=|!==|%|%=|&|&&|&=| \\ *| \\ *=| \\ +| \\ +=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>| \\ ?| \\ [| \\ {| \\ (| \\ ^| \\ ^=| \\ || \\ |=| \\ | \\ ||~" ,
79 SHEBANG :( e
={})=>{ const t
=/^#![ ]*\ //
80 ; return e
. binary
&&( e
. begin
= h ( t
, /.*\b/ , e
. binary
, /\b.*/ )), i ({ scope : "meta" , begin : t
,
81 end :/$/, relevance : 0 , "on:begin" :( e
, t
)=>{ 0 !== e
. index
&& t
. ignoreMatch ()}}, e
)},
82 TITLE_MODE :{ scope : "title" , begin : E
, relevance : 0 }, UNDERSCORE_IDENT_RE : x
,
83 UNDERSCORE_TITLE_MODE :{ scope : "title" , begin : x
, relevance : 0 }}); function j ( e
, t
){
84 "." === e
. input
[ e
. index
- 1 ]&& t
. ignoreMatch ()} function I ( e
, t
){
85 void 0 !== e
. className
&&( e
. scope
= e
. className
, delete e
. className
)} function T ( e
, t
){
86 t
&& e
. beginKeywords
&&( e
. begin
= " \\ b(" + e
. beginKeywords
. split ( " " ). join ( "|" )+ ")(?! \\ .)(?= \\ b| \\ s)" ,
87 e
. __beforeBegin
= j
, e
. keywords
= e
. keywords
|| e
. beginKeywords
, delete e
. beginKeywords
,
88 void 0 === e
. relevance
&&( e
. relevance
= 0 ))} function L ( e
, t
){
89 Array
. isArray ( e
. illegal
)&&( e
. illegal
= f (... e
. illegal
))} function B ( e
, t
){
91 if ( e
. begin
|| e
. end
) throw Error ( "begin & end are not supported with match" )
92 ; e
. begin
= e
. match
, delete e
. match
}} function P ( e
, t
){
93 void 0 === e
. relevance
&&( e
. relevance
= 1 )} const D
=( e
, t
)=>{ if (! e
. beforeMatch
) return
94 ; if ( e
. starts
) throw Error ( "beforeMatch cannot be used with starts" )
95 ; const n
= Object
. assign ({}, e
); Object
. keys ( e
). forEach (( t
=>{ delete e
[ t
]
96 })), e
. keywords
= n
. keywords
, e
. begin
= h ( n
. beforeMatch
, g ( n
. begin
)), e
. starts
={
97 relevance : 0 , contains :[ Object
. assign ( n
,{ endsParent :! 0 })]
98 }, e
. relevance
= 0 , delete n
. beforeMatch
99 }, H
=[ "of" , "and" , "for" , "in" , "not" , "or" , "if" , "then" , "parent" , "list" , "value" ]
100 ; function C ( e
, t
, n
= "keyword" ){ const i
= Object
. create ( null )
101 ; return "string" == typeof e
? s ( n
, e
. split ( " " )): Array
. isArray ( e
)? s ( n
, e
): Object
. keys ( e
). forEach (( n
=>{
102 Object
. assign ( i
, C ( e
[ n
], t
, n
))})), i
; function s ( e
, n
){
103 t
&&( n
= n
. map (( e
=> e
. toLowerCase ()))), n
. forEach (( t
=>{ const n
= t
. split ( "|" )
104 ; i
[ n
[ 0 ]]=[ e
,$( n
[ 0 ], n
[ 1 ])]}))}} function $( e
, t
){
105 return t
? Number ( t
):( e
=> H
. includes ( e
. toLowerCase ()))( e
)? 0 : 1 } const U
={}, z
= e
=>{
106 console
. error ( e
)}, W
=( e
,... t
)=>{ console
. log ( "WARN: " + e
,... t
)}, X
=( e
, t
)=>{
107 U
[ ` ${e} / ${t} ` ]||( console
. log ( `Deprecated as of ${e} . ${t} ` ), U
[ ` ${e} / ${t} ` ]=! 0 )
108 }, G
= Error (); function K ( e
, t
,{ key : n
}){ let i
= 0 ; const s
= e
[ n
], r
={}, o
={}
109 ; for ( let e
= 1 ; e
<= t
. length
; e
++) o
[ e
+ i
]= s
[ e
], r
[ e
+ i
]=! 0 , i
+= p ( t
[ e
- 1 ])
110 ; e
[ n
]= o
, e
[ n
]. _emit
= r
, e
[ n
]. _multi
=! 0 } function F ( e
){( e
=>{
111 e
. scope
&& "object" == typeof e
. scope
&& null !== e
. scope
&&( e
. beginScope
= e
. scope
,
112 delete e
. scope
)})( e
), "string" == typeof e
. beginScope
&&( e
. beginScope
={
113 _wrap : e
. beginScope
}), "string" == typeof e
. endScope
&&( e
. endScope
={ _wrap : e
. endScope
114 }),( e
=>{ if ( Array
. isArray ( e
. begin
)){
115 if ( e
. skip
|| e
. excludeBegin
|| e
. returnBegin
) throw z ( "skip, excludeBegin, returnBegin not compatible with beginScope: {}" ),
117 ; if ( "object" != typeof e
. beginScope
|| null === e
. beginScope
) throw z ( "beginScope must be object" ),
118 G
; K ( e
, e
. begin
,{ key : "beginScope" }), e
. begin
= m ( e
. begin
,{ joinWith : "" })}})( e
),( e
=>{
119 if ( Array
. isArray ( e
. end
)){
120 if ( e
. skip
|| e
. excludeEnd
|| e
. returnEnd
) throw z ( "skip, excludeEnd, returnEnd not compatible with endScope: {}" ),
122 ; if ( "object" != typeof e
. endScope
|| null === e
. endScope
) throw z ( "endScope must be object" ),
123 G
; K ( e
, e
. end
,{ key : "endScope" }), e
. end
= m ( e
. end
,{ joinWith : "" })}})( e
)} function Z ( e
){
125 return RegExp ( l ( t
), "m" +( e
. case_insensitive
? "i" : "" )+( e
. unicodeRegex
? "u" : "" )+( n
? "g" : "" ))
126 } class n
{ constructor (){
127 this . matchIndexes
={}, this . regexes
=[], this . matchAt
= 1 , this . position
= 0 }
129 t
. position
= this . position
++, this . matchIndexes
[ this . matchAt
]= t
, this . regexes
. push ([ t
, e
]),
130 this . matchAt
+= p ( e
)+ 1 } compile (){ 0 === this . regexes
. length
&&( this . exec
=()=> null )
131 ; const e
= this . regexes
. map (( e
=> e
[ 1 ])); this . matcherRe
= t ( m ( e
,{ joinWith : "|"
132 }),! 0 ), this . lastIndex
= 0 } exec ( e
){ this . matcherRe
. lastIndex
= this . lastIndex
133 ; const t
= this . matcherRe
. exec ( e
); if (! t
) return null
134 ; const n
= t
. findIndex ((( e
, t
)=> t
> 0 && void 0 !== e
)), i
= this . matchIndexes
[ n
]
135 ; return t
. splice ( 0 , n
), Object
. assign ( t
, i
)}} class s
{ constructor (){
136 this . rules
=[], this . multiRegexes
=[],
137 this . count
= 0 , this . lastIndex
= 0 , this . regexIndex
= 0 } getMatcher ( e
){
138 if ( this . multiRegexes
[ e
]) return this . multiRegexes
[ e
]; const t
= new n
139 ; return this . rules
. slice ( e
). forEach ((([ e
, n
])=> t
. addRule ( e
, n
))),
140 t
. compile (), this . multiRegexes
[ e
]= t
, t
} resumingScanAtSamePosition (){
141 return 0 !== this . regexIndex
} considerAll (){ this . regexIndex
= 0 } addRule ( e
, t
){
142 this . rules
. push ([ e
, t
]), "begin" === t
. type
&& this . count
++} exec ( e
){
143 const t
= this . getMatcher ( this . regexIndex
); t
. lastIndex
= this . lastIndex
145 ; if ( this . resumingScanAtSamePosition ()) if ( n
&& n
. index
=== this . lastIndex
); else {
146 const t
= this . getMatcher ( 0 ); t
. lastIndex
= this . lastIndex
+ 1 , n
= t
. exec ( e
)}
147 return n
&&( this . regexIndex
+= n
. position
+ 1 ,
148 this . regexIndex
=== this . count
&& this . considerAll ()), n
}}
149 if ( e
. compilerExtensions
||( e
. compilerExtensions
=[]),
150 e
. contains
&& e
. contains
. includes ( "self" )) throw Error ( "ERR: contains `self` is not supported at the top-level of a language. See documentation." )
151 ; return e
. classNameAliases
= i ( e
. classNameAliases
||{}), function n ( r
, o
){ const a
= r
152 ; if ( r
. isCompiled
) return a
153 ;[ I
, B
, F
, D
]. forEach (( e
=> e ( r
, o
))), e
. compilerExtensions
. forEach (( e
=> e ( r
, o
))),
154 r
. __beforeBegin
= null ,[ T
, L
, P
]. forEach (( e
=> e ( r
, o
))), r
. isCompiled
=! 0 ; let c
= null
155 ; return "object" == typeof r
. keywords
&& r
. keywords
.$ pattern
&&( r
. keywords
= Object
. assign ({}, r
. keywords
),
156 c
= r
. keywords
.$ pattern
,
157 delete r
. keywords
.$ pattern
), c
= c
|| /\w+/ , r
. keywords
&&( r
. keywords
= C ( r
. keywords
, e
. case_insensitive
)),
158 a
. keywordPatternRe
= t ( c
,! 0 ),
159 o
&&( r
. begin
||( r
. begin
= /\B|\b/ ), a
. beginRe
= t ( a
. begin
), r
. end
|| r
. endsWithParent
||( r
. end
= /\B|\b/ ),
160 r
. end
&&( a
. endRe
= t ( a
. end
)),
161 a
. terminatorEnd
= l ( a
. end
)|| "" , r
. endsWithParent
&& o
. terminatorEnd
&&( a
. terminatorEnd
+=( r
. end
? "|" : "" )+ o
. terminatorEnd
)),
162 r
. illegal
&&( a
. illegalRe
= t ( r
. illegal
)),
163 r
. contains
||( r
. contains
=[]), r
. contains
=[]. concat (... r
. contains
. map (( e
=>( e
=>( e
. variants
&&! e
. cachedVariants
&&( e
. cachedVariants
= e
. variants
. map (( t
=> i ( e
,{
164 variants : null }, t
)))), e
. cachedVariants
? e
. cachedVariants : V ( e
)? i ( e
,{
165 starts : e
. starts
? i ( e
. starts
): null
166 }): Object
. isFrozen ( e
)? i ( e
): e
))( "self" === e
? r : e
)))), r
. contains
. forEach (( e
=>{ n ( e
, a
)
167 })), r
. starts
&& n ( r
. starts
, o
), a
. matcher
=( e
=>{ const t
= new s
168 ; return e
. contains
. forEach (( e
=> t
. addRule ( e
. begin
,{ rule : e
, type : "begin"
169 }))), e
. terminatorEnd
&& t
. addRule ( e
. terminatorEnd
,{ type : "end"
170 }), e
. illegal
&& t
. addRule ( e
. illegal
,{ type : "illegal" }), t
})( a
), a
}( e
)} function V ( e
){
171 return !! e
&&( e
. endsWithParent
|| V ( e
. starts
))} class q
extends Error
{
172 constructor ( e
, t
){ super ( e
), this . name
= "HTMLInjectionError" , this . html
= t
}}
173 const J
= n
, Y
= i
, Q
= Symbol ( "nomatch" ), ee
= n
=>{
174 const i
= Object
. create ( null ), s
= Object
. create ( null ), r
=[]; let o
=! 0
175 ; const a
= "Could not find the language '{}', did you forget to load/include a language module?" , l
={
176 disableAutodetect :! 0 , name : "Plain text" , contains :[]}; let p
={
177 ignoreUnescapedHTML :! 1 , throwUnescapedHTML :! 1 , noHighlightRe : /^(no-?highlight)$/i ,
178 languageDetectRe : /\blang(?:uage)?-([\w-]+)\b/i , classPrefix : "hljs-" ,
179 cssSelector : "pre code" , languages : null , __emitter : c
}; function b ( e
){
180 return p
. noHighlightRe
. test ( e
)} function m ( e
, t
, n
){ let i
= "" , s
= ""
181 ; "object" == typeof t
?( i
= e
,
182 n
= t
. ignoreIllegals
, s
= t
. language
):( X ( "10.7.0" , "highlight(lang, code, ...args) has been deprecated." ),
183 X ( "10.7.0" , "Please use highlight(code, options) instead. \n https://github.com/highlightjs/highlight.js/issues/2277" ),
184 s
= e
, i
= t
), void 0 === n
&&( n
=! 0 ); const r
={ code : i
, language : s
}; N ( "before:highlight" , r
)
185 ; const o
= r
. result
? r
. result : E ( r
. language
, r
. code
, n
)
186 ; return o
. code
= r
. code
, N ( "after:highlight" , o
), o
} function E ( e
, n
, s
, r
){
187 const c
= Object
. create ( null ); function l (){ if (! N
. keywords
) return void M
. addText ( R
)
188 ; let e
= 0 ; N
. keywordPatternRe
. lastIndex
= 0 ; let t
= N
. keywordPatternRe
. exec ( R
), n
= ""
189 ; for (; t
;){ n
+= R
. substring ( e
, t
. index
)
190 ; const s
= w
. case_insensitive
? t
[ 0 ]. toLowerCase (): t
[ 0 ], r
=( i
= s
, N
. keywords
[ i
]); if ( r
){
192 ; if ( M
. addText ( n
), n
= "" , c
[ s
]=( c
[ s
]|| 0 )+ 1 , c
[ s
]<= 7 &&( A
+= i
), e
. startsWith ( "_" )) n
+= t
[ 0 ]; else {
193 const n
= w
. classNameAliases
[ e
]|| e
; u ( t
[ 0 ], n
)}} else n
+= t
[ 0 ]
194 ; e
= N
. keywordPatternRe
. lastIndex
, t
= N
. keywordPatternRe
. exec ( R
)} var i
195 ; n
+= R
. substring ( e
), M
. addText ( n
)} function g (){ null != N
. subLanguage
?(()=>{
196 if ( "" === R
) return ; let e
= null ; if ( "string" == typeof N
. subLanguage
){
197 if (! i
[ N
. subLanguage
]) return void M
. addText ( R
)
198 ; e
= E ( N
. subLanguage
, R
,! 0 , S
[ N
. subLanguage
]), S
[ N
. subLanguage
]= e
. _top
199 } else e
= x ( R
, N
. subLanguage
. length
? N
. subLanguage : null )
200 ; N
. relevance
> 0 &&( A
+= e
. relevance
), M
. __addSublanguage ( e
. _emitter
, e
. language
)
201 })(): l (), R
= "" } function u ( e
, t
){
202 "" !== e
&&( M
. startScope ( t
), M
. addText ( e
), M
. endScope ())} function d ( e
, t
){ let n
= 1
203 ; const i
= t
. length
- 1 ; for (; n
<= i
;){ if (! e
. _emit
[ n
]){ n
++; continue }
204 const i
= w
. classNameAliases
[ e
[ n
]]|| e
[ n
], s
= t
[ n
]; i
? u ( s
, i
):( R
= s
, l (), R
= "" ), n
++}}
206 return e
. scope
&& "string" == typeof e
. scope
&& M
. openNode ( w
. classNameAliases
[ e
. scope
]|| e
. scope
),
207 e
. beginScope
&&( e
. beginScope
. _wrap
?( u ( R
, w
. classNameAliases
[ e
. beginScope
. _wrap
]|| e
. beginScope
. _wrap
),
208 R
= "" ): e
. beginScope
. _multi
&&( d ( e
. beginScope
, t
), R
= "" )), N
= Object
. create ( e
,{ parent :{
209 value : N
}}), N
} function f ( e
, n
, i
){ let s
=(( e
, t
)=>{ const n
= e
&& e
. exec ( t
)
210 ; return n
&& 0 === n
. index
})( e
. endRe
, i
); if ( s
){ if ( e
[ "on:end" ]){ const i
= new t ( e
)
211 ; e
[ "on:end" ]( n
, i
), i
. isMatchIgnored
&&( s
=! 1 )} if ( s
){
212 for (; e
. endsParent
&& e
. parent
;) e
= e
. parent
; return e
}}
213 if ( e
. endsWithParent
) return f ( e
. parent
, n
, i
)} function b ( e
){
214 return 0 === N
. matcher
. regexIndex
?( R
+= e
[ 0 ], 1 ):( T
=! 0 , 0 )} function m ( e
){
215 const t
= e
[ 0 ], i
= n
. substring ( e
. index
), s
= f ( N
, e
, i
); if (! s
) return Q
; const r
= N
216 ; N
. endScope
&& N
. endScope
. _wrap
?( g (),
217 u ( t
, N
. endScope
. _wrap
)): N
. endScope
&& N
. endScope
. _multi
?( g (),
218 d ( N
. endScope
, e
)): r
. skip
? R
+= t :( r
. returnEnd
|| r
. excludeEnd
||( R
+= t
),
219 g (), r
. excludeEnd
&&( R
= t
)); do {
220 N
. scope
&& M
. closeNode (), N
. skip
|| N
. subLanguage
||( A
+= N
. relevance
), N
= N
. parent
221 } while ( N
!== s
. parent
); return s
. starts
&& h ( s
. starts
, e
), r
. returnEnd
? 0 : t
. length
}
222 let _
={}; function y ( i
, r
){ const a
= r
&& r
[ 0 ]; if ( R
+= i
, null == a
) return g (), 0
223 ; if ( "begin" === _
. type
&& "end" === r
. type
&& _
. index
=== r
. index
&& "" === a
){
224 if ( R
+= n
. slice ( r
. index
, r
. index
+ 1 ),! o
){ const t
= Error ( `0 width match regex ( ${e} )` )
225 ; throw t
. languageName
= e
, t
. badRule
= _
. rule
, t
} return 1 }
226 if ( _
= r
, "begin" === r
. type
) return ( e
=>{
227 const n
= e
[ 0 ], i
= e
. rule
, s
= new t ( i
), r
=[ i
. __beforeBegin
, i
[ "on:begin" ]]
228 ; for ( const t
of r
) if ( t
&&( t ( e
, s
), s
. isMatchIgnored
)) return b ( n
)
229 ; return i
. skip
? R
+= n :( i
. excludeBegin
&&( R
+= n
),
230 g (), i
. returnBegin
|| i
. excludeBegin
||( R
= n
)), h ( i
, e
), i
. returnBegin
? 0 : n
. length
})( r
)
231 ; if ( "illegal" === r
. type
&&! s
){
232 const e
= Error ( 'Illegal lexeme "' + a
+ '" for mode "' +( N
. scope
|| "<unnamed>" )+ '"' )
233 ; throw e
. mode
= N
, e
} if ( "end" === r
. type
){ const e
= m ( r
); if ( e
!== Q
) return e
}
234 if ( "illegal" === r
. type
&& "" === a
) return R
+= " \n " , 1
235 ; if ( I
> 1 e5
&& I
> 3 * r
. index
) throw Error ( "potential infinite loop, way more iterations than matches" )
236 ; return R
+= a
, a
. length
} const w
= O ( e
)
237 ; if (! w
) throw z ( a
. replace ( "{}" , e
)), Error ( 'Unknown language: "' + e
+ '"' )
238 ; const k
= Z ( w
); let v
= "" , N
= r
|| k
; const S
={}, M
= new p
. __emitter ( p
);(()=>{ const e
=[]
239 ; for ( let t
= N
; t
!== w
; t
= t
. parent
) t
. scope
&& e
. unshift ( t
. scope
)
240 ; e
. forEach (( e
=> M
. openNode ( e
)))})(); let R
= "" , A
= 0 , j
= 0 , I
= 0 , T
=! 1 ; try {
241 if ( w
. __emitTokens
) w
. __emitTokens ( n
, M
); else { for ( N
. matcher
. considerAll ();;){
242 I
++, T
? T
=! 1 : N
. matcher
. considerAll (), N
. matcher
. lastIndex
= j
243 ; const e
= N
. matcher
. exec ( n
); if (! e
) break ; const t
= y ( n
. substring ( j
, e
. index
), e
)
244 ; j
= e
. index
+ t
} y ( n
. substring ( j
))} return M
. finalize (), v
= M
. toHTML (),{ language : e
,
245 value : v
, relevance : A
, illegal :! 1 , _emitter : M
, _top : N
}} catch ( t
){
246 if ( t
. message
&& t
. message
. includes ( "Illegal" )) return { language : e
, value : J ( n
),
247 illegal :! 0 , relevance : 0 , _illegalBy :{ message : t
. message
, index : j
,
248 context : n
. slice ( j
- 100 , j
+ 100 ), mode : t
. mode
, resultSoFar : v
}, _emitter : M
}; if ( o
) return {
249 language : e
, value : J ( n
), illegal :! 1 , relevance : 0 , errorRaised : t
, _emitter : M
, _top : N
}
250 ; throw t
}} function x ( e
, t
){ t
= t
|| p
. languages
|| Object
. keys ( i
); const n
=( e
=>{
251 const t
={ value : J ( e
), illegal :! 1 , relevance : 0 , _top : l
, _emitter : new p
. __emitter ( p
)}
252 ; return t
. _emitter
. addText ( e
), t
})( e
), s
= t
. filter ( O
). filter ( v
). map (( t
=> E ( t
, e
,! 1 )))
253 ; s
. unshift ( n
); const r
= s
. sort ((( e
, t
)=>{
254 if ( e
. relevance
!== t
. relevance
) return t
. relevance
- e
. relevance
255 ; if ( e
. language
&& t
. language
){ if ( O ( e
. language
). supersetOf
=== t
. language
) return 1
256 ; if ( O ( t
. language
). supersetOf
=== e
. language
) return - 1 } return 0 })),[ o
, a
]= r
, c
= o
257 ; return c
. secondBest
= a
, c
} function _ ( e
){ let t
= null ; const n
=( e
=>{
258 let t
= e
. className
+ " " ; t
+= e
. parentNode
? e
. parentNode
. className : ""
259 ; const n
= p
. languageDetectRe
. exec ( t
); if ( n
){ const t
= O ( n
[ 1 ])
260 ; return t
||( W ( a
. replace ( "{}" , n
[ 1 ])),
261 W ( "Falling back to no-highlight mode for this block." , e
)), t
? n
[ 1 ]: "no-highlight" }
262 return t
. split ( /\s+/ ). find (( e
=> b ( e
)|| O ( e
)))})( e
); if ( b ( n
)) return
263 ; if ( N ( "before:highlightElement" ,{ el : e
, language : n
264 }), e
. dataset
. highlighted
) return void console
. log ( "Element previously highlighted. To highlight again, first unset `dataset.highlighted`." , e
)
265 ; if ( e
. children
. length
> 0 &&( p
. ignoreUnescapedHTML
||( console
. warn ( "One of your code blocks includes unescaped HTML. This is a potentially serious security risk." ),
266 console
. warn ( "https://github.com/highlightjs/highlight.js/wiki/security" ),
267 console
. warn ( "The element with unescaped HTML:" ),
268 console
. warn ( e
)), p
. throwUnescapedHTML
)) throw new q ( "One of your code blocks includes unescaped HTML." , e
. innerHTML
)
269 ; t
= e
; const i
= t
. textContent
, r
= n
? m ( i
,{ language : n
, ignoreIllegals :! 0 }): x ( i
)
270 ; e
. innerHTML
= r
. value
, e
. dataset
. highlighted
= "yes" ,(( e
, t
, n
)=>{ const i
= t
&& s
[ t
]|| n
271 ; e
. classList
. add ( "hljs" ), e
. classList
. add ( "language-" + i
)
272 })( e
, n
, r
. language
), e
. result
={ language : r
. language
, re : r
. relevance
,
273 relevance : r
. relevance
}, r
. secondBest
&&( e
. secondBest
={
274 language : r
. secondBest
. language
, relevance : r
. secondBest
. relevance
275 }), N ( "after:highlightElement" ,{ el : e
, result : r
, text : i
})} let y
=! 1 ; function w (){
276 if ( "loading" === document
. readyState
) return y
|| window
. addEventListener ( "DOMContentLoaded" ,(()=>{
277 w ()}),! 1 ), void ( y
=! 0 ); document
. querySelectorAll ( p
. cssSelector
). forEach ( _
)}
278 function O ( e
){ return e
=( e
|| "" ). toLowerCase (), i
[ e
]|| i
[ s
[ e
]]}
279 function k ( e
,{ languageName : t
}){ "string" == typeof e
&&( e
=[ e
]), e
. forEach (( e
=>{
280 s
[ e
. toLowerCase ()]= t
}))} function v ( e
){ const t
= O ( e
)
281 ; return t
&&! t
. disableAutodetect
} function N ( e
, t
){ const n
= e
; r
. forEach (( e
=>{
282 e
[ n
]&& e
[ n
]( t
)}))} Object
. assign ( n
,{ highlight : m
, highlightAuto : x
, highlightAll : w
,
284 highlightBlock : e
=>( X ( "10.7.0" , "highlightBlock will be removed entirely in v12.0" ),
285 X ( "10.7.0" , "Please use highlightElement now." ), _ ( e
)), configure : e
=>{ p
= Y ( p
, e
)},
286 initHighlighting :()=>{
287 w (), X ( "10.6.0" , "initHighlighting() deprecated. Use highlightAll() now." )},
288 initHighlightingOnLoad :()=>{
289 w (), X ( "10.6.0" , "initHighlightingOnLoad() deprecated. Use highlightAll() now." )
290 }, registerLanguage :( e
, t
)=>{ let s
= null ; try { s
= t ( n
)} catch ( t
){
291 if ( z ( "Language definition for '{}' could not be registered." . replace ( "{}" , e
)),
293 s
. name
||( s
. name
= e
), i
[ e
]= s
, s
. rawDefinition
= t
. bind ( null , n
), s
. aliases
&& k ( s
. aliases
,{
294 languageName : e
})}, unregisterLanguage : e
=>{ delete i
[ e
]
295 ; for ( const t
of Object
. keys ( s
)) s
[ t
]=== e
&& delete s
[ t
]},
296 listLanguages :()=> Object
. keys ( i
), getLanguage : O
, registerAliases : k
,
297 autoDetection : v
, inherit : Y
, addPlugin : e
=>{( e
=>{
298 e
[ "before:highlightBlock" ]&&! e
[ "before:highlightElement" ]&&( e
[ "before:highlightElement" ]= t
=>{
299 e
[ "before:highlightBlock" ]( Object
. assign ({ block : t
. el
}, t
))
300 }), e
[ "after:highlightBlock" ]&&! e
[ "after:highlightElement" ]&&( e
[ "after:highlightElement" ]= t
=>{
301 e
[ "after:highlightBlock" ]( Object
. assign ({ block : t
. el
}, t
))})})( e
), r
. push ( e
)},
302 removePlugin : e
=>{ const t
= r
. indexOf ( e
);- 1 !== t
&& r
. splice ( t
, 1 )}}), n
. debugMode
=()=>{
303 o
=! 1 }, n
. safeMode
=()=>{ o
=! 0 }, n
. versionString
= "11.11.1" , n
. regex
={ concat : h
,
304 lookahead : g
, either : f
, optional : d
, anyNumberOfTimes : u
}
305 ; for ( const t
in A
) "object" == typeof A
[ t
]&& e ( A
[ t
]); return Object
. assign ( n
, A
), n
306 }, te
= ee ({}); te
. newInstance
=()=> ee ({}); export { te as
default };