Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Sign in / Register
Toggle navigation
K
kpp
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Alexandr Veselov
kpp
Commits
8d714342
Commit
8d714342
authored
Mar 18, 2016
by
Nikolay Gromov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
syntax highlight to block
parent
f2c04c3c
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
121 additions
and
100 deletions
+121
-100
blocks-library.html
src/blocks/blocks-library/blocks-library.html
+10
-3
blocks-library.less
src/blocks/blocks-library/blocks-library.less
+0
-95
highlight.html
src/blocks/highlight/highlight.html
+8
-0
highlight.js
src/blocks/highlight/highlight.js
+5
-2
highlight.less
src/blocks/highlight/highlight.less
+95
-0
readme.md
src/blocks/highlight/readme.md
+1
-0
style.less
src/less/style.less
+2
-0
No files found.
src/blocks/blocks-library/blocks-library.html
View file @
8d714342
<!--DEV
<section class="blocks-library__item" data-name="Пояснение сбоку">
<section class="blocks-library__item"
id=""
data-name="Пояснение сбоку">
<h
2 class="blocks-library__title" id="">Заголовок</h2
>
<h
1 class="blocks-library__item-title">Раздел</h1
>
Контентю
Контент
<div class="blocks-library__sub-item">
<h2 class="blocks-library__sub-item-title">Подраздел</h2>
Контент
</div>
</section>
...
...
src/blocks/blocks-library/blocks-library.less
View file @
8d714342
...
...
@@ -46,98 +46,3 @@
&__sub-item-title {}
}
.hljs {
display: block;
width: auto;
color: @text-color;
background-color: transparent;
padding: 0;
}
.hljs-comment,
.hljs-quote {
color: #999;
}
.hljs-keyword,
.hljs-selector-tag,
.hljs-subst {
color: #333;
font-weight: bold;
}
.hljs-number,
.hljs-literal,
.hljs-variable,
.hljs-template-variable,
.hljs-tag .hljs-attr {
color: #4f9fcf;
}
.hljs-string,
.hljs-doctag {
color: #d44950;
}
.hljs-title,
.hljs-section,
.hljs-selector-id {
color: #900;
font-weight: bold;
}
.hljs-subst {
font-weight: normal;
}
.hljs-type,
.hljs-class .hljs-title {
color: #458;
font-weight: bold;
}
.hljs-tag,
.hljs-name,
.hljs-attribute {
color: #2f6f9f;
font-weight: normal;
}
.hljs-regexp,
.hljs-link {
color: #009926;
}
.hljs-symbol,
.hljs-bullet {
color: #990073;
}
.hljs-built_in,
.hljs-builtin-name {
color: #0086b3;
}
.hljs-meta {
color: #999;
font-weight: bold;
}
.hljs-deletion {
background: #fdd;
}
.hljs-addition {
background: #dfd;
}
.hljs-emphasis {
font-style: italic;
}
.hljs-strong {
font-weight: bold;
}
src/blocks/highlight/highlight.html
0 → 100644
View file @
8d714342
<!--DEV
<pre><code><input type="text" value="Текстовое поле для сравнения высоты">
<a href="" class="btn">Cсылка</a>
<input type="submit" class="btn" value="Input">
<button class="btn">Button</button></code></pre>
-->
src/blocks/
blocks-library/blocks-library
.js
→
src/blocks/
highlight/highlight
.js
View file @
8d714342
/*! highlight.js v9.2.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
,
"&"
).
replace
(
/</gm
,
"<"
).
replace
(
/>/gm
,
">"
)}
function
t
(
e
){
return
e
.
nodeName
.
toLowerCase
()}
function
r
(
e
,
n
){
var
t
=
e
&&
e
.
exec
(
n
);
return
t
&&
0
==
t
.
index
}
function
a
(
e
){
return
/^
(
no-
?
highlight|plain|text
)
$/i
.
test
(
e
)}
function
i
(
e
){
var
n
,
t
,
r
,
i
=
e
.
className
+
" "
;
if
(
i
+=
e
.
parentNode
?
e
.
parentNode
.
className
:
""
,
t
=
/
\b
lang
(?:
uage
)?
-
([\w
-
]
+
)\b
/i
.
exec
(
i
))
return
w
(
t
[
1
])?
t
[
1
]:
"no-highlight"
;
for
(
i
=
i
.
split
(
/
\s
+/
),
n
=
0
,
r
=
i
.
length
;
r
>
n
;
n
++
)
if
(
w
(
i
[
n
])
||
a
(
i
[
n
]))
return
i
[
n
]}
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
,
a
){
for
(
var
i
=
e
.
firstChild
;
i
;
i
=
i
.
nextSibling
)
3
==
i
.
nodeType
?
a
+=
i
.
nodeValue
.
length
:
1
==
i
.
nodeType
&&
(
n
.
push
({
event
:
"start"
,
offset
:
a
,
node
:
i
}),
a
=
r
(
i
,
a
),
t
(
i
).
match
(
/br|hr|img|input/
)
||
n
.
push
({
event
:
"stop"
,
offset
:
a
,
node
:
i
}));
return
a
}(
e
,
0
),
n
}
function
c
(
e
,
r
,
a
){
function
i
(){
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
)
+
'"'
}
f
+=
"<"
+
t
(
e
)
+
Array
.
prototype
.
map
.
call
(
e
.
attributes
,
r
).
join
(
""
)
+
">"
}
function
u
(
e
){
f
+=
"</"
+
t
(
e
)
+
">"
}
function
c
(
e
){(
"start"
==
e
.
event
?
o
:
u
)(
e
.
node
)}
for
(
var
s
=
0
,
f
=
""
,
l
=
[];
e
.
length
||
r
.
length
;){
var
g
=
i
();
if
(
f
+=
n
(
a
.
substr
(
s
,
g
[
0
].
offset
-
s
)),
s
=
g
[
0
].
offset
,
g
==
e
){
l
.
reverse
().
forEach
(
u
);
do
c
(
g
.
splice
(
0
,
1
)[
0
]),
g
=
i
();
while
(
g
==
e
&&
g
.
length
&&
g
[
0
].
offset
==
s
);
l
.
reverse
().
forEach
(
o
)}
else
"start"
==
g
[
0
].
event
?
l
.
push
(
g
[
0
].
node
):
l
.
pop
(),
c
(
g
.
splice
(
0
,
1
)[
0
])}
return
f
+
n
(
a
.
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
(
a
,
i
){
if
(
!
a
.
compiled
){
if
(
a
.
compiled
=!
0
,
a
.
k
=
a
.
k
||
a
.
bK
,
a
.
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
a
.
k
?
c
(
"keyword"
,
a
.
k
):
Object
.
keys
(
a
.
k
).
forEach
(
function
(
e
){
c
(
e
,
a
.
k
[
e
])}),
a
.
k
=
u
}
a
.
lR
=
t
(
a
.
l
||
/
\b\w
+
\b
/
,
!
0
),
i
&&
(
a
.
bK
&&
(
a
.
b
=
"
\\
b("
+
a
.
bK
.
split
(
" "
).
join
(
"|"
)
+
")
\\
b"
),
a
.
b
||
(
a
.
b
=
/
\B
|
\b
/
),
a
.
bR
=
t
(
a
.
b
),
a
.
e
||
a
.
eW
||
(
a
.
e
=
/
\B
|
\b
/
),
a
.
e
&&
(
a
.
eR
=
t
(
a
.
e
)),
a
.
tE
=
n
(
a
.
e
)
||
""
,
a
.
eW
&&
i
.
tE
&&
(
a
.
tE
+=
(
a
.
e
?
"|"
:
""
)
+
i
.
tE
)),
a
.
i
&&
(
a
.
iR
=
t
(
a
.
i
)),
void
0
===
a
.
r
&&
(
a
.
r
=
1
),
a
.
c
||
(
a
.
c
=
[]);
var
s
=
[];
a
.
c
.
forEach
(
function
(
e
){
e
.
v
?
e
.
v
.
forEach
(
function
(
n
){
s
.
push
(
o
(
e
,
n
))}):
s
.
push
(
"self"
==
e
?
a
:
e
)}),
a
.
c
=
s
,
a
.
c
.
forEach
(
function
(
e
){
r
(
e
,
a
)}),
a
.
starts
&&
r
(
a
.
starts
,
i
);
var
f
=
a
.
c
.
map
(
function
(
e
){
return
e
.
bK
?
"
\\
.?("
+
e
.
b
+
")
\\
.?"
:
e
.
b
}).
concat
([
a
.
tE
,
a
.
i
]).
map
(
n
).
filter
(
Boolean
);
a
.
t
=
f
.
length
?
t
(
f
.
join
(
"|"
),
!
0
):{
exec
:
function
(){
return
null
}}}}
r
(
e
)}
function
f
(
e
,
t
,
a
,
i
){
function
o
(
e
,
n
){
for
(
var
t
=
0
;
t
<
n
.
c
.
length
;
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
!
a
&&
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
p
(
e
,
n
,
t
,
r
){
var
a
=
r
?
""
:
E
.
classPrefix
,
i
=
'<span class="'
+
a
,
o
=
t
?
""
:
"</span>"
;
return
i
+=
e
+
'">'
,
i
+
n
+
o
}
function
h
(){
if
(
!
k
.
k
)
return
n
(
M
);
var
e
=
""
,
t
=
0
;
k
.
lR
.
lastIndex
=
0
;
for
(
var
r
=
k
.
lR
.
exec
(
M
);
r
;){
e
+=
n
(
M
.
substr
(
t
,
r
.
index
-
t
));
var
a
=
g
(
k
,
r
);
a
?(
B
+=
a
[
1
],
e
+=
p
(
a
[
0
],
n
(
r
[
0
]))):
e
+=
n
(
r
[
0
]),
t
=
k
.
lR
.
lastIndex
,
r
=
k
.
lR
.
exec
(
M
)}
return
e
+
n
(
M
.
substr
(
t
))}
function
d
(){
var
e
=
"string"
==
typeof
k
.
sL
;
if
(
e
&&!
R
[
k
.
sL
])
return
n
(
M
);
var
t
=
e
?
f
(
k
.
sL
,
M
,
!
0
,
y
[
k
.
sL
]):
l
(
M
,
k
.
sL
.
length
?
k
.
sL
:
void
0
);
return
k
.
r
>
0
&&
(
B
+=
t
.
r
),
e
&&
(
y
[
k
.
sL
]
=
t
.
top
),
p
(
t
.
language
,
t
.
value
,
!
1
,
!
0
)}
function
b
(){
L
+=
void
0
!==
k
.
sL
?
d
():
h
(),
M
=
""
}
function
v
(
e
,
n
){
L
+=
e
.
cN
?
p
(
e
.
cN
,
""
,
!
0
):
""
,
k
=
Object
.
create
(
e
,{
parent
:{
value
:
k
}})}
function
m
(
e
,
n
){
if
(
M
+=
e
,
void
0
===
n
)
return
b
(),
0
;
var
t
=
o
(
n
,
k
);
if
(
t
)
return
t
.
skip
?
M
+=
n
:(
t
.
eB
&&
(
M
+=
n
),
b
(),
t
.
rB
||
t
.
eB
||
(
M
=
n
)),
v
(
t
,
n
),
t
.
rB
?
0
:
n
.
length
;
var
r
=
u
(
k
,
n
);
if
(
r
){
var
a
=
k
;
a
.
skip
?
M
+=
n
:(
a
.
rE
||
a
.
eE
||
(
M
+=
n
),
b
(),
a
.
eE
&&
(
M
=
n
));
do
k
.
cN
&&
(
L
+=
"</span>"
),
k
.
skip
||
(
B
+=
k
.
r
),
k
=
k
.
parent
;
while
(
k
!=
r
.
parent
);
return
r
.
starts
&&
v
(
r
.
starts
,
""
),
a
.
rE
?
0
:
n
.
length
}
if
(
c
(
n
,
k
))
throw
new
Error
(
'Illegal lexeme "'
+
n
+
'" for mode "'
+
(
k
.
cN
||
"<unnamed>"
)
+
'"'
);
return
M
+=
n
,
n
.
length
||
1
}
var
N
=
w
(
e
);
if
(
!
N
)
throw
new
Error
(
'Unknown language: "'
+
e
+
'"'
);
s
(
N
);
var
x
,
k
=
i
||
N
,
y
=
{},
L
=
""
;
for
(
x
=
k
;
x
!=
N
;
x
=
x
.
parent
)
x
.
cN
&&
(
L
=
p
(
x
.
cN
,
""
,
!
0
)
+
L
);
var
M
=
""
,
B
=
0
;
try
{
for
(
var
C
,
j
,
I
=
0
;;){
if
(
k
.
t
.
lastIndex
=
I
,
C
=
k
.
t
.
exec
(
t
),
!
C
)
break
;
j
=
m
(
t
.
substr
(
I
,
C
.
index
-
I
),
C
[
0
]),
I
=
C
.
index
+
j
}
for
(
m
(
t
.
substr
(
I
)),
x
=
k
;
x
.
parent
;
x
=
x
.
parent
)
x
.
cN
&&
(
L
+=
"</span>"
);
return
{
r
:
B
,
value
:
L
,
language
:
e
,
top
:
k
}}
catch
(
O
){
if
(
-
1
!=
O
.
message
.
indexOf
(
"Illegal"
))
return
{
r
:
0
,
value
:
n
(
t
)};
throw
O
}}
function
l
(
e
,
t
){
t
=
t
||
E
.
languages
||
Object
.
keys
(
R
);
var
r
=
{
r
:
0
,
value
:
n
(
e
)},
a
=
r
;
return
t
.
forEach
(
function
(
n
){
if
(
w
(
n
)){
var
t
=
f
(
n
,
e
,
!
1
);
t
.
language
=
n
,
t
.
r
>
a
.
r
&&
(
a
=
t
),
t
.
r
>
r
.
r
&&
(
a
=
r
,
r
=
t
)}}),
a
.
language
&&
(
r
.
second_best
=
a
),
r
}
function
g
(
e
){
return
E
.
tabReplace
&&
(
e
=
e
.
replace
(
/^
((
<
[^
>
]
+>|
\t)
+
)
/gm
,
function
(
e
,
n
){
return
n
.
replace
(
/
\t
/g
,
E
.
tabReplace
)})),
E
.
useBR
&&
(
e
=
e
.
replace
(
/
\n
/g
,
"<br>"
)),
e
}
function
p
(
e
,
n
,
t
){
var
r
=
n
?
x
[
n
]:
t
,
a
=
[
e
.
trim
()];
return
e
.
match
(
/
\b
hljs
\b
/
)
||
a
.
push
(
"hljs"
),
-
1
===
e
.
indexOf
(
r
)
&&
a
.
push
(
r
),
a
.
join
(
" "
).
trim
()}
function
h
(
e
){
var
n
=
i
(
e
);
if
(
!
a
(
n
)){
var
t
;
E
.
useBR
?(
t
=
document
.
createElementNS
(
"http://www.w3.org/1999/xhtml"
,
"div"
),
t
.
innerHTML
=
e
.
innerHTML
.
replace
(
/
\n
/g
,
""
).
replace
(
/<br
[
\/]
*>/g
,
"
\n
"
)):
t
=
e
;
var
r
=
t
.
textContent
,
o
=
n
?
f
(
n
,
r
,
!
0
):
l
(
r
),
s
=
u
(
t
);
if
(
s
.
length
){
var
h
=
document
.
createElementNS
(
"http://www.w3.org/1999/xhtml"
,
"div"
);
h
.
innerHTML
=
o
.
value
,
o
.
value
=
c
(
s
,
u
(
h
),
r
)}
o
.
value
=
g
(
o
.
value
),
e
.
innerHTML
=
o
.
value
,
e
.
className
=
p
(
e
.
className
,
n
,
o
.
language
),
e
.
result
=
{
language
:
o
.
language
,
re
:
o
.
r
},
o
.
second_best
&&
(
e
.
second_best
=
{
language
:
o
.
second_best
.
language
,
re
:
o
.
second_best
.
r
})}}
function
d
(
e
){
E
=
o
(
E
,
e
)}
function
b
(){
if
(
!
b
.
called
){
b
.
called
=!
0
;
var
e
=
document
.
querySelectorAll
(
"pre code"
);
Array
.
prototype
.
forEach
.
call
(
e
,
h
)}}
function
v
(){
addEventListener
(
"DOMContentLoaded"
,
b
,
!
1
),
addEventListener
(
"load"
,
b
,
!
1
)}
function
m
(
n
,
t
){
var
r
=
R
[
n
]
=
t
(
e
);
r
.
aliases
&&
r
.
aliases
.
forEach
(
function
(
e
){
x
[
e
]
=
n
})}
function
N
(){
return
Object
.
keys
(
R
)}
function
w
(
e
){
return
e
=
(
e
||
""
).
toLowerCase
(),
R
[
e
]
||
R
[
x
[
e
]]}
var
E
=
{
classPrefix
:
"hljs-"
,
tabReplace
:
null
,
useBR
:
!
1
,
languages
:
void
0
},
R
=
{},
x
=
{};
return
e
.
highlight
=
f
,
e
.
highlightAuto
=
l
,
e
.
fixMarkup
=
g
,
e
.
highlightBlock
=
h
,
e
.
configure
=
d
,
e
.
initHighlighting
=
b
,
e
.
initHighlightingOnLoad
=
v
,
e
.
registerLanguage
=
m
,
e
.
listLanguages
=
N
,
e
.
getLanguage
=
w
,
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|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
a
=
e
.
inherit
({
cN
:
"comment"
,
b
:
n
,
e
:
t
,
c
:[]},
r
||
{});
return
a
.
c
.
push
(
e
.
PWM
),
a
.
c
.
push
({
cN
:
"doctag"
,
b
:
"(?:TODO|FIXME|NOTE|BUG|XXX):"
,
r
:
0
}),
a
},
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
(
"markdown"
,
function
(
e
){
return
{
aliases
:[
"md"
,
"mkdown"
,
"mkd"
],
c
:[{
cN
:
"section"
,
v
:[{
b
:
"^#{1,6}"
,
e
:
"$"
},{
b
:
"^.+?
\
\n
[=-]{2,}$"
}]},{
b
:
"<"
,
e
:
">"
,
sL
:
"xml"
,
r
:
0
},{
cN
:
"bullet"
,
b
:
"^([*+-]|(
\\
d+
\\
.))
\\
s+"
},{
cN
:
"strong"
,
b
:
"[*_]{2}.+?[*_]{2}"
},{
cN
:
"emphasis"
,
v
:[{
b
:
"
\\
*.+?
\\
*"
},{
b
:
"_.+?_"
,
r
:
0
}]},{
cN
:
"quote"
,
b
:
"^>
\\
s+"
,
e
:
"$"
},{
cN
:
"code"
,
v
:[{
b
:
"`.+?`"
},{
b
:
"^( {4}| )"
,
e
:
"$"
,
r
:
0
}]},{
b
:
"^[-
\\
*]{3,}"
,
e
:
"$"
},{
b
:
"
\\
[.+?
\\
][
\\
(
\\
[].*?[
\\
)
\\
]]"
,
rB
:
!
0
,
c
:[{
cN
:
"string"
,
b
:
"
\\
["
,
e
:
"
\\
]"
,
eB
:
!
0
,
rE
:
!
0
,
r
:
0
},{
cN
:
"link"
,
b
:
"
\\
]
\\
("
,
e
:
"
\\
)"
,
eB
:
!
0
,
eE
:
!
0
},{
cN
:
"symbol"
,
b
:
"
\\
]
\\
["
,
e
:
"
\\
]"
,
eB
:
!
0
,
eE
:
!
0
}],
r
:
10
},{
b
:
"^
\\
[.+
\\
]:"
,
rB
:
!
0
,
c
:[{
cN
:
"symbol"
,
b
:
"
\\
["
,
e
:
"
\\
]:"
,
eB
:
!
0
,
eE
:
!
0
,
starts
:{
cN
:
"link"
,
e
:
"$"
}}]}]}});
hljs
.
registerLanguage
(
"css"
,
function
(
e
){
var
c
=
"[a-zA-Z-][a-zA-Z0-9_-]*"
,
t
=
{
b
:
/
[
A-Z
\_\.\-]
+
\s
*:/
,
rB
:
!
0
,
e
:
";"
,
eW
:
!
0
,
c
:[{
cN
:
"attribute"
,
b
:
/
\S
/
,
e
:
":"
,
eE
:
!
0
,
starts
:{
eW
:
!
0
,
eE
:
!
0
,
c
:[{
b
:
/
[\w
-
]
+
\(
/
,
rB
:
!
0
,
c
:[{
cN
:
"built_in"
,
b
:
/
[\w
-
]
+/
},{
b
:
/
\(
/
,
e
:
/
\)
/
,
c
:[
e
.
ASM
,
e
.
QSM
]}]},
e
.
CSSNM
,
e
.
QSM
,
e
.
ASM
,
e
.
CBCM
,{
cN
:
"number"
,
b
:
"#[0-9A-Fa-f]+"
},{
cN
:
"meta"
,
b
:
"!important"
}]}}]};
return
{
cI
:
!
0
,
i
:
/
[
=
\/
|'
\$]
/
,
c
:[
e
.
CBCM
,{
cN
:
"selector-id"
,
b
:
/#
[
A-Za-z0-9_-
]
+/
},{
cN
:
"selector-class"
,
b
:
/
\.[
A-Za-z0-9_-
]
+/
},{
cN
:
"selector-attr"
,
b
:
/
\[
/
,
e
:
/
\]
/
,
i
:
"$"
},{
cN
:
"selector-pseudo"
,
b
:
/:
(
:
)?[
a-zA-Z0-9
\_\-\+\(\)
"'.
]
+/
},{
b
:
"@(font-face|page)"
,
l
:
"[a-z-]+"
,
k
:
"font-face page"
},{
b
:
"@"
,
e
:
"[{;]"
,
c
:[{
cN
:
"keyword"
,
b
:
/
\S
+/
},{
b
:
/
\s
/
,
eW
:
!
0
,
eE
:
!
0
,
r
:
0
,
c
:[
e
.
ASM
,
e
.
QSM
,
e
.
CSSNM
]}]},{
cN
:
"selector-tag"
,
b
:
c
,
r
:
0
},{
b
:
"{"
,
e
:
"}"
,
i
:
/
\S
/
,
c
:[
e
.
CBCM
,
t
]}]}});
hljs
.
registerLanguage
(
"json"
,
function
(
e
){
var
i
=
{
literal
:
"true false null"
},
n
=
[
e
.
QSM
,
e
.
CNM
],
r
=
{
e
:
","
,
eW
:
!
0
,
eE
:
!
0
,
c
:
n
,
k
:
i
},
t
=
{
b
:
"{"
,
e
:
"}"
,
c
:[{
cN
:
"attr"
,
b
:
/"/
,
e
:
/"/
,
c
:[
e
.
BE
],
i
:
"
\
\n
"
},
e
.
inherit
(
r
,{
b
:
/:/
})],
i
:
"
\\
S"
},
c
=
{
b
:
"
\\
["
,
e
:
"
\\
]"
,
c
:[
e
.
inherit
(
r
)],
i
:
"
\\
S"
};
return
n
.
splice
(
n
.
length
,
0
,
t
,
c
),{
c
:
n
,
k
:
i
,
i
:
"
\\
S"
}});
hljs
.
registerLanguage
(
"xml"
,
function
(
s
){
var
e
=
"[A-Za-z0-9
\\
._:-]+"
,
t
=
{
eW
:
!
0
,
i
:
/</
,
r
:
0
,
c
:[{
cN
:
"attr"
,
b
:
e
,
r
:
0
},{
b
:
"="
,
r
:
0
,
c
:[{
cN
:
"string"
,
v
:[{
b
:
/"/
,
e
:
/"/
},{
b
:
/'/
,
e
:
/'/
},{
b
:
/
[^\s\/
>
]
+/
}]}]}]};
return
{
aliases
:[
"html"
,
"xhtml"
,
"rss"
,
"atom"
,
"xsl"
,
"plist"
],
cI
:
!
0
,
c
:[{
cN
:
"meta"
,
b
:
"<!DOCTYPE"
,
e
:
">"
,
r
:
10
,
c
:[{
b
:
"
\\
["
,
e
:
"
\\
]"
}]},
s
.
C
(
"<!--"
,
"-->"
,{
r
:
10
}),{
b
:
"<
\\
!
\\
[CDATA
\\
["
,
e
:
"
\\
]
\\
]>"
,
r
:
10
},{
b
:
/<
\?(
php
)?
/
,
e
:
/
\?
>/
,
sL
:
"php"
,
c
:[{
b
:
"/
\\
*"
,
e
:
"
\\
*/"
,
skip
:
!
0
}]},{
cN
:
"tag"
,
b
:
"<style(?=
\\
s|>|$)"
,
e
:
">"
,
k
:{
name
:
"style"
},
c
:[
t
],
starts
:{
e
:
"</style>"
,
rE
:
!
0
,
sL
:[
"css"
,
"xml"
]}},{
cN
:
"tag"
,
b
:
"<script(?=
\\
s|>|$)"
,
e
:
">"
,
k
:{
name
:
"script"
},
c
:[
t
],
starts
:{
e
:
"</script>"
,
rE
:
!
0
,
sL
:[
"actionscript"
,
"javascript"
,
"handlebars"
,
"xml"
]}},{
cN
:
"meta"
,
v
:[{
b
:
/<
\?
xml/
,
e
:
/
\?
>/
,
r
:
10
},{
b
:
/<
\?\w
+/
,
e
:
/
\?
>/
}]},{
cN
:
"tag"
,
b
:
"</?"
,
e
:
"/?>"
,
c
:[{
cN
:
"name"
,
b
:
/
[^\/
><
\s]
+/
,
r
:
0
},
t
]}]}});
hljs
.
registerLanguage
(
"javascript"
,
function
(
e
){
return
{
aliases
:[
"js"
,
"jsx"
],
k
:{
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"
},
c
:[{
cN
:
"meta"
,
r
:
10
,
b
:
/^
\s
*
[
'"
]
use
(
strict|asm
)[
'"
]
/
},{
cN
:
"meta"
,
b
:
/^#!/
,
e
:
/$/
},
e
.
ASM
,
e
.
QSM
,{
cN
:
"string"
,
b
:
"`"
,
e
:
"`"
,
c
:[
e
.
BE
,{
cN
:
"subst"
,
b
:
"
\\
$
\\
{"
,
e
:
"
\\
}"
}]},
e
.
CLCM
,
e
.
CBCM
,{
cN
:
"number"
,
v
:[{
b
:
"
\\
b(0[bB][01]+)"
},{
b
:
"
\\
b(0[oO][0-7]+)"
},{
b
:
e
.
CNR
}],
r
:
0
},{
b
:
"("
+
e
.
RSR
+
"|
\\
b(case|return|throw)
\\
b)
\\
s*"
,
k
:
"return throw case"
,
c
:[
e
.
CLCM
,
e
.
CBCM
,
e
.
RM
,{
b
:
/</
,
e
:
/
(\/\w
+|
\w
+
\/)
>/
,
sL
:
"xml"
,
c
:[{
b
:
/<
\w
+
\/
>/
,
skip
:
!
0
},{
b
:
/<
\w
+/
,
e
:
/
(\/\w
+|
\w
+
\/)
>/
,
skip
:
!
0
,
c
:[
"self"
]}]}],
r
:
0
},{
cN
:
"function"
,
bK
:
"function"
,
e
:
/
\{
/
,
eE
:
!
0
,
c
:[
e
.
inherit
(
e
.
TM
,{
b
:
/
[
A-Za-z$_
][
0-9A-Za-z$_
]
*/
}),{
cN
:
"params"
,
b
:
/
\(
/
,
e
:
/
\)
/
,
eB
:
!
0
,
eE
:
!
0
,
c
:[
e
.
CLCM
,
e
.
CBCM
]}],
i
:
/
\[
|%/
},{
b
:
/
\$[
(.
]
/
},
e
.
METHOD_GUARD
,{
cN
:
"class"
,
bK
:
"class"
,
e
:
/
[
{;=
]
/
,
eE
:
!
0
,
i
:
/
[
:"
\[\]]
/
,
c
:[{
bK
:
"extends"
},
e
.
UTM
]},{
bK
:
"constructor"
,
e
:
/
\{
/
,
eE
:
!
0
}],
i
:
/#
(?!
!
)
/
}});
hljs
.
registerLanguage
(
"less"
,
function
(
e
){
var
r
=
"[
\\
w-]+"
,
t
=
"("
+
r
+
"|@{"
+
r
+
"})"
,
a
=
[],
c
=
[],
s
=
function
(
e
){
return
{
cN
:
"string"
,
b
:
"~?"
+
e
+
".*?"
+
e
}},
b
=
function
(
e
,
r
,
t
){
return
{
cN
:
e
,
b
:
r
,
r
:
t
}},
i
=
{
b
:
"
\\
("
,
e
:
"
\\
)"
,
c
:
c
,
r
:
0
};
c
.
push
(
e
.
CLCM
,
e
.
CBCM
,
s
(
"'"
),
s
(
'"'
),
e
.
CSSNM
,{
b
:
"(url|data-uri)
\\
("
,
starts
:{
cN
:
"string"
,
e
:
"[
\\
)
\
\n
]"
,
eE
:
!
0
}},
b
(
"number"
,
"#[0-9A-Fa-f]+
\\
b"
),
i
,
b
(
"variable"
,
"@@?"
+
r
,
10
),
b
(
"variable"
,
"@{"
+
r
+
"}"
),
b
(
"built_in"
,
"~?`[^`]*?`"
),{
cN
:
"attribute"
,
b
:
r
+
"
\\
s*:"
,
e
:
":"
,
rB
:
!
0
,
eE
:
!
0
},{
cN
:
"meta"
,
b
:
"!important"
});
var
n
=
c
.
concat
({
b
:
"{"
,
e
:
"}"
,
c
:
a
}),
o
=
{
bK
:
"when"
,
eW
:
!
0
,
c
:[{
bK
:
"and not"
}].
concat
(
c
)},
u
=
{
cN
:
"attribute"
,
b
:
t
,
e
:
":"
,
eE
:
!
0
,
c
:[
e
.
CLCM
,
e
.
CBCM
],
i
:
/
\S
/
,
starts
:{
e
:
"[;}]"
,
rE
:
!
0
,
c
:
c
,
i
:
"[<=$]"
}},
C
=
{
cN
:
"keyword"
,
b
:
"@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)
\\
b"
,
starts
:{
e
:
"[;{}]"
,
rE
:
!
0
,
c
:
c
,
r
:
0
}},
l
=
{
cN
:
"variable"
,
v
:[{
b
:
"@"
+
r
+
"
\\
s*:"
,
r
:
15
},{
b
:
"@"
+
r
}],
starts
:{
e
:
"[;}]"
,
rE
:
!
0
,
c
:
n
}},
p
=
{
v
:[{
b
:
"[
\\
.#:&
\\
[]"
,
e
:
"[;{}]"
},{
b
:
t
+
"[^;]*{"
,
e
:
"{"
}],
rB
:
!
0
,
rE
:
!
0
,
i
:
"[<='$
\"
]"
,
c
:[
e
.
CLCM
,
e
.
CBCM
,
o
,
b
(
"keyword"
,
"all
\\
b"
),
b
(
"variable"
,
"@{"
+
r
+
"}"
),
b
(
"selector-tag"
,
t
+
"%?"
,
0
),
b
(
"selector-id"
,
"#"
+
t
),
b
(
"selector-class"
,
"
\\
."
+
t
,
0
),
b
(
"selector-tag"
,
"&"
,
0
),{
cN
:
"selector-attr"
,
b
:
"
\\
["
,
e
:
"
\\
]"
},{
b
:
"
\\
("
,
e
:
"
\\
)"
,
c
:
n
},{
b
:
"!important"
}]};
return
a
.
push
(
e
.
CLCM
,
e
.
CBCM
,
C
,
l
,
p
,
u
),{
cI
:
!
0
,
i
:
"[=>'/<($
\"
]"
,
c
:
a
}});
/*!
highlight.js v9.2.0 | BSD3 License | git.io/hljslicense
https://highlightjs.org/download/
*/
!
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
,
"&"
).
replace
(
/</gm
,
"<"
).
replace
(
/>/gm
,
">"
)}
function
t
(
e
){
return
e
.
nodeName
.
toLowerCase
()}
function
r
(
e
,
n
){
var
t
=
e
&&
e
.
exec
(
n
);
return
t
&&
0
==
t
.
index
}
function
a
(
e
){
return
/^
(
no-
?
highlight|plain|text
)
$/i
.
test
(
e
)}
function
i
(
e
){
var
n
,
t
,
r
,
i
=
e
.
className
+
" "
;
if
(
i
+=
e
.
parentNode
?
e
.
parentNode
.
className
:
""
,
t
=
/
\b
lang
(?:
uage
)?
-
([\w
-
]
+
)\b
/i
.
exec
(
i
))
return
w
(
t
[
1
])?
t
[
1
]:
"no-highlight"
;
for
(
i
=
i
.
split
(
/
\s
+/
),
n
=
0
,
r
=
i
.
length
;
r
>
n
;
n
++
)
if
(
w
(
i
[
n
])
||
a
(
i
[
n
]))
return
i
[
n
]}
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
,
a
){
for
(
var
i
=
e
.
firstChild
;
i
;
i
=
i
.
nextSibling
)
3
==
i
.
nodeType
?
a
+=
i
.
nodeValue
.
length
:
1
==
i
.
nodeType
&&
(
n
.
push
({
event
:
"start"
,
offset
:
a
,
node
:
i
}),
a
=
r
(
i
,
a
),
t
(
i
).
match
(
/br|hr|img|input/
)
||
n
.
push
({
event
:
"stop"
,
offset
:
a
,
node
:
i
}));
return
a
}(
e
,
0
),
n
}
function
c
(
e
,
r
,
a
){
function
i
(){
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
)
+
'"'
}
f
+=
"<"
+
t
(
e
)
+
Array
.
prototype
.
map
.
call
(
e
.
attributes
,
r
).
join
(
""
)
+
">"
}
function
u
(
e
){
f
+=
"</"
+
t
(
e
)
+
">"
}
function
c
(
e
){(
"start"
==
e
.
event
?
o
:
u
)(
e
.
node
)}
for
(
var
s
=
0
,
f
=
""
,
l
=
[];
e
.
length
||
r
.
length
;){
var
g
=
i
();
if
(
f
+=
n
(
a
.
substr
(
s
,
g
[
0
].
offset
-
s
)),
s
=
g
[
0
].
offset
,
g
==
e
){
l
.
reverse
().
forEach
(
u
);
do
c
(
g
.
splice
(
0
,
1
)[
0
]),
g
=
i
();
while
(
g
==
e
&&
g
.
length
&&
g
[
0
].
offset
==
s
);
l
.
reverse
().
forEach
(
o
)}
else
"start"
==
g
[
0
].
event
?
l
.
push
(
g
[
0
].
node
):
l
.
pop
(),
c
(
g
.
splice
(
0
,
1
)[
0
])}
return
f
+
n
(
a
.
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
(
a
,
i
){
if
(
!
a
.
compiled
){
if
(
a
.
compiled
=!
0
,
a
.
k
=
a
.
k
||
a
.
bK
,
a
.
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
a
.
k
?
c
(
"keyword"
,
a
.
k
):
Object
.
keys
(
a
.
k
).
forEach
(
function
(
e
){
c
(
e
,
a
.
k
[
e
])}),
a
.
k
=
u
}
a
.
lR
=
t
(
a
.
l
||
/
\b\w
+
\b
/
,
!
0
),
i
&&
(
a
.
bK
&&
(
a
.
b
=
"
\\
b("
+
a
.
bK
.
split
(
" "
).
join
(
"|"
)
+
")
\\
b"
),
a
.
b
||
(
a
.
b
=
/
\B
|
\b
/
),
a
.
bR
=
t
(
a
.
b
),
a
.
e
||
a
.
eW
||
(
a
.
e
=
/
\B
|
\b
/
),
a
.
e
&&
(
a
.
eR
=
t
(
a
.
e
)),
a
.
tE
=
n
(
a
.
e
)
||
""
,
a
.
eW
&&
i
.
tE
&&
(
a
.
tE
+=
(
a
.
e
?
"|"
:
""
)
+
i
.
tE
)),
a
.
i
&&
(
a
.
iR
=
t
(
a
.
i
)),
void
0
===
a
.
r
&&
(
a
.
r
=
1
),
a
.
c
||
(
a
.
c
=
[]);
var
s
=
[];
a
.
c
.
forEach
(
function
(
e
){
e
.
v
?
e
.
v
.
forEach
(
function
(
n
){
s
.
push
(
o
(
e
,
n
))}):
s
.
push
(
"self"
==
e
?
a
:
e
)}),
a
.
c
=
s
,
a
.
c
.
forEach
(
function
(
e
){
r
(
e
,
a
)}),
a
.
starts
&&
r
(
a
.
starts
,
i
);
var
f
=
a
.
c
.
map
(
function
(
e
){
return
e
.
bK
?
"
\\
.?("
+
e
.
b
+
")
\\
.?"
:
e
.
b
}).
concat
([
a
.
tE
,
a
.
i
]).
map
(
n
).
filter
(
Boolean
);
a
.
t
=
f
.
length
?
t
(
f
.
join
(
"|"
),
!
0
):{
exec
:
function
(){
return
null
}}}}
r
(
e
)}
function
f
(
e
,
t
,
a
,
i
){
function
o
(
e
,
n
){
for
(
var
t
=
0
;
t
<
n
.
c
.
length
;
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
!
a
&&
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
p
(
e
,
n
,
t
,
r
){
var
a
=
r
?
""
:
E
.
classPrefix
,
i
=
'<span class="'
+
a
,
o
=
t
?
""
:
"</span>"
;
return
i
+=
e
+
'">'
,
i
+
n
+
o
}
function
h
(){
if
(
!
k
.
k
)
return
n
(
M
);
var
e
=
""
,
t
=
0
;
k
.
lR
.
lastIndex
=
0
;
for
(
var
r
=
k
.
lR
.
exec
(
M
);
r
;){
e
+=
n
(
M
.
substr
(
t
,
r
.
index
-
t
));
var
a
=
g
(
k
,
r
);
a
?(
B
+=
a
[
1
],
e
+=
p
(
a
[
0
],
n
(
r
[
0
]))):
e
+=
n
(
r
[
0
]),
t
=
k
.
lR
.
lastIndex
,
r
=
k
.
lR
.
exec
(
M
)}
return
e
+
n
(
M
.
substr
(
t
))}
function
d
(){
var
e
=
"string"
==
typeof
k
.
sL
;
if
(
e
&&!
R
[
k
.
sL
])
return
n
(
M
);
var
t
=
e
?
f
(
k
.
sL
,
M
,
!
0
,
y
[
k
.
sL
]):
l
(
M
,
k
.
sL
.
length
?
k
.
sL
:
void
0
);
return
k
.
r
>
0
&&
(
B
+=
t
.
r
),
e
&&
(
y
[
k
.
sL
]
=
t
.
top
),
p
(
t
.
language
,
t
.
value
,
!
1
,
!
0
)}
function
b
(){
L
+=
void
0
!==
k
.
sL
?
d
():
h
(),
M
=
""
}
function
v
(
e
,
n
){
L
+=
e
.
cN
?
p
(
e
.
cN
,
""
,
!
0
):
""
,
k
=
Object
.
create
(
e
,{
parent
:{
value
:
k
}})}
function
m
(
e
,
n
){
if
(
M
+=
e
,
void
0
===
n
)
return
b
(),
0
;
var
t
=
o
(
n
,
k
);
if
(
t
)
return
t
.
skip
?
M
+=
n
:(
t
.
eB
&&
(
M
+=
n
),
b
(),
t
.
rB
||
t
.
eB
||
(
M
=
n
)),
v
(
t
,
n
),
t
.
rB
?
0
:
n
.
length
;
var
r
=
u
(
k
,
n
);
if
(
r
){
var
a
=
k
;
a
.
skip
?
M
+=
n
:(
a
.
rE
||
a
.
eE
||
(
M
+=
n
),
b
(),
a
.
eE
&&
(
M
=
n
));
do
k
.
cN
&&
(
L
+=
"</span>"
),
k
.
skip
||
(
B
+=
k
.
r
),
k
=
k
.
parent
;
while
(
k
!=
r
.
parent
);
return
r
.
starts
&&
v
(
r
.
starts
,
""
),
a
.
rE
?
0
:
n
.
length
}
if
(
c
(
n
,
k
))
throw
new
Error
(
'Illegal lexeme "'
+
n
+
'" for mode "'
+
(
k
.
cN
||
"<unnamed>"
)
+
'"'
);
return
M
+=
n
,
n
.
length
||
1
}
var
N
=
w
(
e
);
if
(
!
N
)
throw
new
Error
(
'Unknown language: "'
+
e
+
'"'
);
s
(
N
);
var
x
,
k
=
i
||
N
,
y
=
{},
L
=
""
;
for
(
x
=
k
;
x
!=
N
;
x
=
x
.
parent
)
x
.
cN
&&
(
L
=
p
(
x
.
cN
,
""
,
!
0
)
+
L
);
var
M
=
""
,
B
=
0
;
try
{
for
(
var
C
,
j
,
I
=
0
;;){
if
(
k
.
t
.
lastIndex
=
I
,
C
=
k
.
t
.
exec
(
t
),
!
C
)
break
;
j
=
m
(
t
.
substr
(
I
,
C
.
index
-
I
),
C
[
0
]),
I
=
C
.
index
+
j
}
for
(
m
(
t
.
substr
(
I
)),
x
=
k
;
x
.
parent
;
x
=
x
.
parent
)
x
.
cN
&&
(
L
+=
"</span>"
);
return
{
r
:
B
,
value
:
L
,
language
:
e
,
top
:
k
}}
catch
(
O
){
if
(
-
1
!=
O
.
message
.
indexOf
(
"Illegal"
))
return
{
r
:
0
,
value
:
n
(
t
)};
throw
O
}}
function
l
(
e
,
t
){
t
=
t
||
E
.
languages
||
Object
.
keys
(
R
);
var
r
=
{
r
:
0
,
value
:
n
(
e
)},
a
=
r
;
return
t
.
forEach
(
function
(
n
){
if
(
w
(
n
)){
var
t
=
f
(
n
,
e
,
!
1
);
t
.
language
=
n
,
t
.
r
>
a
.
r
&&
(
a
=
t
),
t
.
r
>
r
.
r
&&
(
a
=
r
,
r
=
t
)}}),
a
.
language
&&
(
r
.
second_best
=
a
),
r
}
function
g
(
e
){
return
E
.
tabReplace
&&
(
e
=
e
.
replace
(
/^
((
<
[^
>
]
+>|
\t)
+
)
/gm
,
function
(
e
,
n
){
return
n
.
replace
(
/
\t
/g
,
E
.
tabReplace
)})),
E
.
useBR
&&
(
e
=
e
.
replace
(
/
\n
/g
,
"<br>"
)),
e
}
function
p
(
e
,
n
,
t
){
var
r
=
n
?
x
[
n
]:
t
,
a
=
[
e
.
trim
()];
return
e
.
match
(
/
\b
hljs
\b
/
)
||
a
.
push
(
"hljs"
),
-
1
===
e
.
indexOf
(
r
)
&&
a
.
push
(
r
),
a
.
join
(
" "
).
trim
()}
function
h
(
e
){
var
n
=
i
(
e
);
if
(
!
a
(
n
)){
var
t
;
E
.
useBR
?(
t
=
document
.
createElementNS
(
"http://www.w3.org/1999/xhtml"
,
"div"
),
t
.
innerHTML
=
e
.
innerHTML
.
replace
(
/
\n
/g
,
""
).
replace
(
/<br
[
\/]
*>/g
,
"
\n
"
)):
t
=
e
;
var
r
=
t
.
textContent
,
o
=
n
?
f
(
n
,
r
,
!
0
):
l
(
r
),
s
=
u
(
t
);
if
(
s
.
length
){
var
h
=
document
.
createElementNS
(
"http://www.w3.org/1999/xhtml"
,
"div"
);
h
.
innerHTML
=
o
.
value
,
o
.
value
=
c
(
s
,
u
(
h
),
r
)}
o
.
value
=
g
(
o
.
value
),
e
.
innerHTML
=
o
.
value
,
e
.
className
=
p
(
e
.
className
,
n
,
o
.
language
),
e
.
result
=
{
language
:
o
.
language
,
re
:
o
.
r
},
o
.
second_best
&&
(
e
.
second_best
=
{
language
:
o
.
second_best
.
language
,
re
:
o
.
second_best
.
r
})}}
function
d
(
e
){
E
=
o
(
E
,
e
)}
function
b
(){
if
(
!
b
.
called
){
b
.
called
=!
0
;
var
e
=
document
.
querySelectorAll
(
"pre code"
);
Array
.
prototype
.
forEach
.
call
(
e
,
h
)}}
function
v
(){
addEventListener
(
"DOMContentLoaded"
,
b
,
!
1
),
addEventListener
(
"load"
,
b
,
!
1
)}
function
m
(
n
,
t
){
var
r
=
R
[
n
]
=
t
(
e
);
r
.
aliases
&&
r
.
aliases
.
forEach
(
function
(
e
){
x
[
e
]
=
n
})}
function
N
(){
return
Object
.
keys
(
R
)}
function
w
(
e
){
return
e
=
(
e
||
""
).
toLowerCase
(),
R
[
e
]
||
R
[
x
[
e
]]}
var
E
=
{
classPrefix
:
"hljs-"
,
tabReplace
:
null
,
useBR
:
!
1
,
languages
:
void
0
},
R
=
{},
x
=
{};
return
e
.
highlight
=
f
,
e
.
highlightAuto
=
l
,
e
.
fixMarkup
=
g
,
e
.
highlightBlock
=
h
,
e
.
configure
=
d
,
e
.
initHighlighting
=
b
,
e
.
initHighlightingOnLoad
=
v
,
e
.
registerLanguage
=
m
,
e
.
listLanguages
=
N
,
e
.
getLanguage
=
w
,
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|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
a
=
e
.
inherit
({
cN
:
"comment"
,
b
:
n
,
e
:
t
,
c
:[]},
r
||
{});
return
a
.
c
.
push
(
e
.
PWM
),
a
.
c
.
push
({
cN
:
"doctag"
,
b
:
"(?:TODO|FIXME|NOTE|BUG|XXX):"
,
r
:
0
}),
a
},
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
(
"markdown"
,
function
(
e
){
return
{
aliases
:[
"md"
,
"mkdown"
,
"mkd"
],
c
:[{
cN
:
"section"
,
v
:[{
b
:
"^#{1,6}"
,
e
:
"$"
},{
b
:
"^.+?
\
\n
[=-]{2,}$"
}]},{
b
:
"<"
,
e
:
">"
,
sL
:
"xml"
,
r
:
0
},{
cN
:
"bullet"
,
b
:
"^([*+-]|(
\\
d+
\\
.))
\\
s+"
},{
cN
:
"strong"
,
b
:
"[*_]{2}.+?[*_]{2}"
},{
cN
:
"emphasis"
,
v
:[{
b
:
"
\\
*.+?
\\
*"
},{
b
:
"_.+?_"
,
r
:
0
}]},{
cN
:
"quote"
,
b
:
"^>
\\
s+"
,
e
:
"$"
},{
cN
:
"code"
,
v
:[{
b
:
"`.+?`"
},{
b
:
"^( {4}| )"
,
e
:
"$"
,
r
:
0
}]},{
b
:
"^[-
\\
*]{3,}"
,
e
:
"$"
},{
b
:
"
\\
[.+?
\\
][
\\
(
\\
[].*?[
\\
)
\\
]]"
,
rB
:
!
0
,
c
:[{
cN
:
"string"
,
b
:
"
\\
["
,
e
:
"
\\
]"
,
eB
:
!
0
,
rE
:
!
0
,
r
:
0
},{
cN
:
"link"
,
b
:
"
\\
]
\\
("
,
e
:
"
\\
)"
,
eB
:
!
0
,
eE
:
!
0
},{
cN
:
"symbol"
,
b
:
"
\\
]
\\
["
,
e
:
"
\\
]"
,
eB
:
!
0
,
eE
:
!
0
}],
r
:
10
},{
b
:
"^
\\
[.+
\\
]:"
,
rB
:
!
0
,
c
:[{
cN
:
"symbol"
,
b
:
"
\\
["
,
e
:
"
\\
]:"
,
eB
:
!
0
,
eE
:
!
0
,
starts
:{
cN
:
"link"
,
e
:
"$"
}}]}]}});
hljs
.
registerLanguage
(
"css"
,
function
(
e
){
var
c
=
"[a-zA-Z-][a-zA-Z0-9_-]*"
,
t
=
{
b
:
/
[
A-Z
\_\.\-]
+
\s
*:/
,
rB
:
!
0
,
e
:
";"
,
eW
:
!
0
,
c
:[{
cN
:
"attribute"
,
b
:
/
\S
/
,
e
:
":"
,
eE
:
!
0
,
starts
:{
eW
:
!
0
,
eE
:
!
0
,
c
:[{
b
:
/
[\w
-
]
+
\(
/
,
rB
:
!
0
,
c
:[{
cN
:
"built_in"
,
b
:
/
[\w
-
]
+/
},{
b
:
/
\(
/
,
e
:
/
\)
/
,
c
:[
e
.
ASM
,
e
.
QSM
]}]},
e
.
CSSNM
,
e
.
QSM
,
e
.
ASM
,
e
.
CBCM
,{
cN
:
"number"
,
b
:
"#[0-9A-Fa-f]+"
},{
cN
:
"meta"
,
b
:
"!important"
}]}}]};
return
{
cI
:
!
0
,
i
:
/
[
=
\/
|'
\$]
/
,
c
:[
e
.
CBCM
,{
cN
:
"selector-id"
,
b
:
/#
[
A-Za-z0-9_-
]
+/
},{
cN
:
"selector-class"
,
b
:
/
\.[
A-Za-z0-9_-
]
+/
},{
cN
:
"selector-attr"
,
b
:
/
\[
/
,
e
:
/
\]
/
,
i
:
"$"
},{
cN
:
"selector-pseudo"
,
b
:
/:
(
:
)?[
a-zA-Z0-9
\_\-\+\(\)
"'.
]
+/
},{
b
:
"@(font-face|page)"
,
l
:
"[a-z-]+"
,
k
:
"font-face page"
},{
b
:
"@"
,
e
:
"[{;]"
,
c
:[{
cN
:
"keyword"
,
b
:
/
\S
+/
},{
b
:
/
\s
/
,
eW
:
!
0
,
eE
:
!
0
,
r
:
0
,
c
:[
e
.
ASM
,
e
.
QSM
,
e
.
CSSNM
]}]},{
cN
:
"selector-tag"
,
b
:
c
,
r
:
0
},{
b
:
"{"
,
e
:
"}"
,
i
:
/
\S
/
,
c
:[
e
.
CBCM
,
t
]}]}});
hljs
.
registerLanguage
(
"json"
,
function
(
e
){
var
i
=
{
literal
:
"true false null"
},
n
=
[
e
.
QSM
,
e
.
CNM
],
r
=
{
e
:
","
,
eW
:
!
0
,
eE
:
!
0
,
c
:
n
,
k
:
i
},
t
=
{
b
:
"{"
,
e
:
"}"
,
c
:[{
cN
:
"attr"
,
b
:
/"/
,
e
:
/"/
,
c
:[
e
.
BE
],
i
:
"
\
\n
"
},
e
.
inherit
(
r
,{
b
:
/:/
})],
i
:
"
\\
S"
},
c
=
{
b
:
"
\\
["
,
e
:
"
\\
]"
,
c
:[
e
.
inherit
(
r
)],
i
:
"
\\
S"
};
return
n
.
splice
(
n
.
length
,
0
,
t
,
c
),{
c
:
n
,
k
:
i
,
i
:
"
\\
S"
}});
hljs
.
registerLanguage
(
"xml"
,
function
(
s
){
var
e
=
"[A-Za-z0-9
\\
._:-]+"
,
t
=
{
eW
:
!
0
,
i
:
/</
,
r
:
0
,
c
:[{
cN
:
"attr"
,
b
:
e
,
r
:
0
},{
b
:
"="
,
r
:
0
,
c
:[{
cN
:
"string"
,
v
:[{
b
:
/"/
,
e
:
/"/
},{
b
:
/'/
,
e
:
/'/
},{
b
:
/
[^\s\/
>
]
+/
}]}]}]};
return
{
aliases
:[
"html"
,
"xhtml"
,
"rss"
,
"atom"
,
"xsl"
,
"plist"
],
cI
:
!
0
,
c
:[{
cN
:
"meta"
,
b
:
"<!DOCTYPE"
,
e
:
">"
,
r
:
10
,
c
:[{
b
:
"
\\
["
,
e
:
"
\\
]"
}]},
s
.
C
(
"<!--"
,
"-->"
,{
r
:
10
}),{
b
:
"<
\\
!
\\
[CDATA
\\
["
,
e
:
"
\\
]
\\
]>"
,
r
:
10
},{
b
:
/<
\?(
php
)?
/
,
e
:
/
\?
>/
,
sL
:
"php"
,
c
:[{
b
:
"/
\\
*"
,
e
:
"
\\
*/"
,
skip
:
!
0
}]},{
cN
:
"tag"
,
b
:
"<style(?=
\\
s|>|$)"
,
e
:
">"
,
k
:{
name
:
"style"
},
c
:[
t
],
starts
:{
e
:
"</style>"
,
rE
:
!
0
,
sL
:[
"css"
,
"xml"
]}},{
cN
:
"tag"
,
b
:
"<script(?=
\\
s|>|$)"
,
e
:
">"
,
k
:{
name
:
"script"
},
c
:[
t
],
starts
:{
e
:
"</script>"
,
rE
:
!
0
,
sL
:[
"actionscript"
,
"javascript"
,
"handlebars"
,
"xml"
]}},{
cN
:
"meta"
,
v
:[{
b
:
/<
\?
xml/
,
e
:
/
\?
>/
,
r
:
10
},{
b
:
/<
\?\w
+/
,
e
:
/
\?
>/
}]},{
cN
:
"tag"
,
b
:
"</?"
,
e
:
"/?>"
,
c
:[{
cN
:
"name"
,
b
:
/
[^\/
><
\s]
+/
,
r
:
0
},
t
]}]}});
hljs
.
registerLanguage
(
"bash"
,
function
(
e
){
var
t
=
{
cN
:
"variable"
,
v
:[{
b
:
/
\$[\w\d
#@
][\w\d
_
]
*/
},{
b
:
/
\$\{(
.*
?)
}/
}]},
s
=
{
cN
:
"string"
,
b
:
/"/
,
e
:
/"/
,
c
:[
e
.
BE
,
t
,{
cN
:
"variable"
,
b
:
/
\$\(
/
,
e
:
/
\)
/
,
c
:[
e
.
BE
]}]},
a
=
{
cN
:
"string"
,
b
:
/'/
,
e
:
/'/
};
return
{
aliases
:[
"sh"
,
"zsh"
],
l
:
/-
?[
a-z
\.]
+/
,
k
:{
keyword
:
"if then else elif fi for while in do done case esac function"
,
literal
:
"true false"
,
built_in
:
"break cd continue eval exec exit export getopts hash pwd readonly return shift test times trap umask unset alias bind builtin caller command declare echo enable help let local logout mapfile printf read readarray source type typeset ulimit unalias set shopt autoload bg bindkey bye cap chdir clone comparguments compcall compctl compdescribe compfiles compgroups compquote comptags comptry compvalues dirs disable disown echotc echoti emulate fc fg float functions getcap getln history integer jobs kill limit log noglob popd print pushd pushln rehash sched setcap setopt stat suspend ttyctl unfunction unhash unlimit unsetopt vared wait whence where which zcompile zformat zftp zle zmodload zparseopts zprof zpty zregexparse zsocket zstyle ztcp"
,
_
:
"-ne -eq -lt -gt -f -d -e -s -l -a"
},
c
:[{
cN
:
"meta"
,
b
:
/^#!
[^\n]
+sh
\s
*$/
,
r
:
10
},{
cN
:
"function"
,
b
:
/
\w[\w\d
_
]
*
\s
*
\(\s
*
\)\s
*
\{
/
,
rB
:
!
0
,
c
:[
e
.
inherit
(
e
.
TM
,{
b
:
/
\w[\w\d
_
]
*/
})],
r
:
0
},
e
.
HCM
,
s
,
a
,
t
]}});
hljs
.
registerLanguage
(
"javascript"
,
function
(
e
){
return
{
aliases
:[
"js"
,
"jsx"
],
k
:{
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"
},
c
:[{
cN
:
"meta"
,
r
:
10
,
b
:
/^
\s
*
[
'"
]
use
(
strict|asm
)[
'"
]
/
},{
cN
:
"meta"
,
b
:
/^#!/
,
e
:
/$/
},
e
.
ASM
,
e
.
QSM
,{
cN
:
"string"
,
b
:
"`"
,
e
:
"`"
,
c
:[
e
.
BE
,{
cN
:
"subst"
,
b
:
"
\\
$
\\
{"
,
e
:
"
\\
}"
}]},
e
.
CLCM
,
e
.
CBCM
,{
cN
:
"number"
,
v
:[{
b
:
"
\\
b(0[bB][01]+)"
},{
b
:
"
\\
b(0[oO][0-7]+)"
},{
b
:
e
.
CNR
}],
r
:
0
},{
b
:
"("
+
e
.
RSR
+
"|
\\
b(case|return|throw)
\\
b)
\\
s*"
,
k
:
"return throw case"
,
c
:[
e
.
CLCM
,
e
.
CBCM
,
e
.
RM
,{
b
:
/</
,
e
:
/
(\/\w
+|
\w
+
\/)
>/
,
sL
:
"xml"
,
c
:[{
b
:
/<
\w
+
\/
>/
,
skip
:
!
0
},{
b
:
/<
\w
+/
,
e
:
/
(\/\w
+|
\w
+
\/)
>/
,
skip
:
!
0
,
c
:[
"self"
]}]}],
r
:
0
},{
cN
:
"function"
,
bK
:
"function"
,
e
:
/
\{
/
,
eE
:
!
0
,
c
:[
e
.
inherit
(
e
.
TM
,{
b
:
/
[
A-Za-z$_
][
0-9A-Za-z$_
]
*/
}),{
cN
:
"params"
,
b
:
/
\(
/
,
e
:
/
\)
/
,
eB
:
!
0
,
eE
:
!
0
,
c
:[
e
.
CLCM
,
e
.
CBCM
]}],
i
:
/
\[
|%/
},{
b
:
/
\$[
(.
]
/
},
e
.
METHOD_GUARD
,{
cN
:
"class"
,
bK
:
"class"
,
e
:
/
[
{;=
]
/
,
eE
:
!
0
,
i
:
/
[
:"
\[\]]
/
,
c
:[{
bK
:
"extends"
},
e
.
UTM
]},{
bK
:
"constructor"
,
e
:
/
\{
/
,
eE
:
!
0
}],
i
:
/#
(?!
!
)
/
}});
hljs
.
registerLanguage
(
"less"
,
function
(
e
){
var
r
=
"[
\\
w-]+"
,
t
=
"("
+
r
+
"|@{"
+
r
+
"})"
,
a
=
[],
c
=
[],
s
=
function
(
e
){
return
{
cN
:
"string"
,
b
:
"~?"
+
e
+
".*?"
+
e
}},
b
=
function
(
e
,
r
,
t
){
return
{
cN
:
e
,
b
:
r
,
r
:
t
}},
i
=
{
b
:
"
\\
("
,
e
:
"
\\
)"
,
c
:
c
,
r
:
0
};
c
.
push
(
e
.
CLCM
,
e
.
CBCM
,
s
(
"'"
),
s
(
'"'
),
e
.
CSSNM
,{
b
:
"(url|data-uri)
\\
("
,
starts
:{
cN
:
"string"
,
e
:
"[
\\
)
\
\n
]"
,
eE
:
!
0
}},
b
(
"number"
,
"#[0-9A-Fa-f]+
\\
b"
),
i
,
b
(
"variable"
,
"@@?"
+
r
,
10
),
b
(
"variable"
,
"@{"
+
r
+
"}"
),
b
(
"built_in"
,
"~?`[^`]*?`"
),{
cN
:
"attribute"
,
b
:
r
+
"
\\
s*:"
,
e
:
":"
,
rB
:
!
0
,
eE
:
!
0
},{
cN
:
"meta"
,
b
:
"!important"
});
var
n
=
c
.
concat
({
b
:
"{"
,
e
:
"}"
,
c
:
a
}),
o
=
{
bK
:
"when"
,
eW
:
!
0
,
c
:[{
bK
:
"and not"
}].
concat
(
c
)},
u
=
{
cN
:
"attribute"
,
b
:
t
,
e
:
":"
,
eE
:
!
0
,
c
:[
e
.
CLCM
,
e
.
CBCM
],
i
:
/
\S
/
,
starts
:{
e
:
"[;}]"
,
rE
:
!
0
,
c
:
c
,
i
:
"[<=$]"
}},
C
=
{
cN
:
"keyword"
,
b
:
"@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)
\\
b"
,
starts
:{
e
:
"[;{}]"
,
rE
:
!
0
,
c
:
c
,
r
:
0
}},
l
=
{
cN
:
"variable"
,
v
:[{
b
:
"@"
+
r
+
"
\\
s*:"
,
r
:
15
},{
b
:
"@"
+
r
}],
starts
:{
e
:
"[;}]"
,
rE
:
!
0
,
c
:
n
}},
p
=
{
v
:[{
b
:
"[
\\
.#:&
\\
[]"
,
e
:
"[;{}]"
},{
b
:
t
+
"[^;]*{"
,
e
:
"{"
}],
rB
:
!
0
,
rE
:
!
0
,
i
:
"[<='$
\"
]"
,
c
:[
e
.
CLCM
,
e
.
CBCM
,
o
,
b
(
"keyword"
,
"all
\\
b"
),
b
(
"variable"
,
"@{"
+
r
+
"}"
),
b
(
"selector-tag"
,
t
+
"%?"
,
0
),
b
(
"selector-id"
,
"#"
+
t
),
b
(
"selector-class"
,
"
\\
."
+
t
,
0
),
b
(
"selector-tag"
,
"&"
,
0
),{
cN
:
"selector-attr"
,
b
:
"
\\
["
,
e
:
"
\\
]"
},{
b
:
"
\\
("
,
e
:
"
\\
)"
,
c
:
n
},{
b
:
"!important"
}]};
return
a
.
push
(
e
.
CLCM
,
e
.
CBCM
,
C
,
l
,
p
,
u
),{
cI
:
!
0
,
i
:
"[=>'/<($
\"
]"
,
c
:
a
}});
src/blocks/highlight/highlight.less
0 → 100644
View file @
8d714342
@import '../../less/variables.less'; // только для удобства обращения к переменным
.hljs {
display: block;
width: auto;
color: @text-color;
background-color: transparent;
padding: 0;
}
.hljs-comment,
.hljs-quote {
color: #999;
}
.hljs-keyword,
.hljs-selector-tag,
.hljs-subst {
color: #333;
font-weight: bold;
}
.hljs-number,
.hljs-literal,
.hljs-variable,
.hljs-template-variable,
.hljs-tag .hljs-attr {
color: #4f9fcf;
}
.hljs-string,
.hljs-doctag {
color: #d44950;
}
.hljs-title,
.hljs-section,
.hljs-selector-id {
color: #900;
font-weight: bold;
}
.hljs-subst {
font-weight: normal;
}
.hljs-type,
.hljs-class .hljs-title {
color: #458;
font-weight: bold;
}
.hljs-tag,
.hljs-name,
.hljs-attribute {
color: #2f6f9f;
font-weight: normal;
}
.hljs-regexp,
.hljs-link {
color: #009926;
}
.hljs-symbol,
.hljs-bullet {
color: #990073;
}
.hljs-built_in,
.hljs-builtin-name {
color: #0086b3;
}
.hljs-meta {
color: #999;
font-weight: bold;
}
.hljs-deletion {
background: #fdd;
}
.hljs-addition {
background: #dfd;
}
.hljs-emphasis {
font-style: italic;
}
.hljs-strong {
font-weight: bold;
}
src/blocks/highlight/readme.md
0 → 100644
View file @
8d714342
Это не обычный блок. Это компонент, служащий для подсветки синтаксиса в
<code>
pre>code
</code>
.
src/less/style.less
View file @
8d714342
...
...
@@ -7,6 +7,8 @@
@import './src/less/global/global-forms.less';
@import './src/less/global/global-tables.less';
@import './src/blocks/highlight/highlight.less';
@import './src/blocks/dl-horizontal/dl-horizontal.less';
@import './src/blocks/blockquote-right/blockquote-right.less';
@import './src/blocks/blocks-library/blocks-library.less';
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment