Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
S
solo-1
Project overview
Project overview
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
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
Administrator
solo-1
Commits
3bc97fde
Unverified
Commit
3bc97fde
authored
Aug 06, 2019
by
Van
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
⬆
vditor
parent
31f12b8e
Changes
11
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
46 additions
and
45 deletions
+46
-45
package-lock.json
package-lock.json
+30
-30
package.json
package.json
+1
-1
src/main/webapp/js/admin/admin.min.js
src/main/webapp/js/admin/admin.min.js
+2
-2
src/main/webapp/js/admin/article.js
src/main/webapp/js/admin/article.js
+3
-3
src/main/webapp/js/admin/editor.js
src/main/webapp/js/admin/editor.js
+2
-2
src/main/webapp/js/page.js
src/main/webapp/js/page.js
+3
-2
src/main/webapp/js/page.min.js
src/main/webapp/js/page.min.js
+1
-1
src/main/webapp/scss/admin.css
src/main/webapp/scss/admin.css
+1
-1
src/main/webapp/scss/base.css
src/main/webapp/scss/base.css
+1
-1
src/main/webapp/scss/start.css
src/main/webapp/scss/start.css
+1
-1
src/main/webapp/skins
src/main/webapp/skins
+1
-1
No files found.
package-lock.json
View file @
3bc97fde
...
...
@@ -1165,9 +1165,9 @@
"integrity"
:
"sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw=="
},
"acorn-globals"
:
{
"version"
:
"4.3.
2
"
,
"resolved"
:
"https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.
2
.tgz"
,
"integrity"
:
"sha512-
BbzvZhVtZP+Bs1J1HcwrQe8ycfO0wStkSGxuul3He3GkHOIZ6eTqOkPuw9IP1X3+IkOo4wiJmwkobzXYz4wew
Q=="
,
"version"
:
"4.3.
3
"
,
"resolved"
:
"https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.
3
.tgz"
,
"integrity"
:
"sha512-
vkR40VwS2SYO98AIeFvzWWh+xyc2qi9s7OoXSFEGIP/rOJKzjnhykaZJNnHdoq4BL2gGxI5EZOU16z896EYnO
Q=="
,
"requires"
:
{
"acorn"
:
"^6.0.1"
,
"acorn-walk"
:
"^6.0.1"
...
...
@@ -1469,9 +1469,9 @@
"dev"
:
true
},
"async-limiter"
:
{
"version"
:
"1.0.
0
"
,
"resolved"
:
"https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.
0
.tgz"
,
"integrity"
:
"sha512-
jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg
=="
"version"
:
"1.0.
1
"
,
"resolved"
:
"https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.
1
.tgz"
,
"integrity"
:
"sha512-
csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ
=="
},
"async-settle"
:
{
"version"
:
"1.0.0"
,
...
...
@@ -1772,9 +1772,9 @@
}
},
"caniuse-lite"
:
{
"version"
:
"1.0.3000098
8
"
,
"resolved"
:
"https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.3000098
8
.tgz"
,
"integrity"
:
"sha512-
lPj3T8poYrRc/bniW5SQPND3GRtSrQdUM/R4mCYTbZxyi3jQiggLvZH4+BYUuX0t4TXjU+vMM7KFDQg+rSzZUQ
=="
"version"
:
"1.0.3000098
9
"
,
"resolved"
:
"https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.3000098
9
.tgz"
,
"integrity"
:
"sha512-
vrMcvSuMz16YY6GSVZ0dWDTJP8jqk3iFQ/Aq5iqblPwxSVVZI+zxDyTX0VPqtQsDnfdrBDcsmhgTEOh5R8Lbpw
=="
},
"caseless"
:
{
"version"
:
"0.12.0"
,
...
...
@@ -2208,9 +2208,9 @@
"integrity"
:
"sha512-ejINPfPSNdGFKEOAtnBtdkpr24c4d4jsei6Lg98mxf424ivoDP2956/5HDpIAtmHo85lqT4pruy+zEgvRUBqaQ=="
},
"d3-brush"
:
{
"version"
:
"1.
0.6
"
,
"resolved"
:
"https://registry.npmjs.org/d3-brush/-/d3-brush-1.
0.6
.tgz"
,
"integrity"
:
"sha512-
lGSiF5SoSqO5/mYGD5FAeGKKS62JdA1EV7HPrU2b5rTX4qEJJtpjaGLJngjnkewQy7UnGstnFd3168wpf5z76w
=="
,
"version"
:
"1.
1.1
"
,
"resolved"
:
"https://registry.npmjs.org/d3-brush/-/d3-brush-1.
1.1
.tgz"
,
"integrity"
:
"sha512-
nVIsduqChMBemov7NvTj3imYvDcihqf73RzoLULW0FrDmIlaWuP8Q9P+rPQB5SpqQjbrr4m0DoaHQewVcPhZsQ
=="
,
"requires"
:
{
"d3-dispatch"
:
"1"
,
"d3-drag"
:
"1"
,
...
...
@@ -2234,9 +2234,9 @@
"integrity"
:
"sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A=="
},
"d3-color"
:
{
"version"
:
"1.
2.8
"
,
"resolved"
:
"https://registry.npmjs.org/d3-color/-/d3-color-1.
2.8
.tgz"
,
"integrity"
:
"sha512-
yeANXzP37PHk0DbSTMNPhnJD+Nn4G//O5E825bR6fAfHH43hobSBpgB9G9oWVl9+XgUaQ4yCnsX1H+l8DoaL9A
=="
"version"
:
"1.
3.0
"
,
"resolved"
:
"https://registry.npmjs.org/d3-color/-/d3-color-1.
3.0
.tgz"
,
"integrity"
:
"sha512-
NHODMBlj59xPAwl2BDiO2Mog6V+PrGRtBfWKqKRrs9MCqlSkIEb0Z/SfY7jW29ReHTDC/j+vwXhnZcXI3+3fbg
=="
},
"d3-contour"
:
{
"version"
:
"1.3.2"
,
...
...
@@ -2321,9 +2321,9 @@
}
},
"d3-path"
:
{
"version"
:
"1.0.
7
"
,
"resolved"
:
"https://registry.npmjs.org/d3-path/-/d3-path-1.0.
7
.tgz"
,
"integrity"
:
"sha512-
q0cW1RpvA5c5ma2rch62mX8AYaiLX0+bdaSM2wxSU9tXjU4DNvkx9qiUvjkuWCj3p22UO/hlPivujqMiR9PDzA
=="
"version"
:
"1.0.
8
"
,
"resolved"
:
"https://registry.npmjs.org/d3-path/-/d3-path-1.0.
8
.tgz"
,
"integrity"
:
"sha512-
J6EfUNwcMQ+aM5YPOB8ZbgAZu6wc82f/0WFxrxwV6Ll8wBwLaHLKCqQ5Imub02JriCVVdPjgI+6P3a4EWJCxAg
=="
},
"d3-polygon"
:
{
"version"
:
"1.0.5"
,
...
...
@@ -2652,9 +2652,9 @@
}
},
"documentation"
:
{
"version"
:
"12.1.
0
"
,
"resolved"
:
"https://registry.npmjs.org/documentation/-/documentation-12.1.
0
.tgz"
,
"integrity"
:
"sha512-
iAllbFhy1P5DvKAcrPw0h5R5rNMnaXAjExj3XKUzW/eBvQ6JhTbDELQnN8k3SrBvQAnm70+6NLsmxA+csp4f/
Q=="
,
"version"
:
"12.1.
1
"
,
"resolved"
:
"https://registry.npmjs.org/documentation/-/documentation-12.1.
1
.tgz"
,
"integrity"
:
"sha512-
OmvNJ6gddKy9K8lx+eA9w+dTxs//vetBnzhaGrTnXbKkE1qgAP0DXaEE8pva2ptSDw3Wa6oDm3C7fKgXdobjP
Q=="
,
"requires"
:
{
"@babel/core"
:
"^7.1.2"
,
"@babel/generator"
:
"^7.1.3"
,
...
...
@@ -2953,9 +2953,9 @@
}
},
"electron-to-chromium"
:
{
"version"
:
"1.3.2
09
"
,
"resolved"
:
"https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.2
09
.tgz"
,
"integrity"
:
"sha512-
KxRvLp5jUapyKIcMaecwgmUpJEsJKuHn0DJJPZjZh2valqYlzdmGvaE/nTAqwKqQwf0jIKv7Go4FYHu9wKWzO
g=="
"version"
:
"1.3.2
15
"
,
"resolved"
:
"https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.2
15
.tgz"
,
"integrity"
:
"sha512-
ZV3OnwF0FlIygwxAG2H92yt7WGjWBpawyFAFu8e9k7xJatY+BPowID0D0Bs3PMACYAJATEejw/I9cawO27ZvT
g=="
},
"emoji-regex"
:
{
"version"
:
"6.1.1"
,
...
...
@@ -7412,9 +7412,9 @@
"integrity"
:
"sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw=="
},
"terser"
:
{
"version"
:
"4.1.
2
"
,
"resolved"
:
"https://registry.npmjs.org/terser/-/terser-4.1.
2
.tgz"
,
"integrity"
:
"sha512-
jvNoEQSPXJdssFwqPSgWjsOrb+ELoE+ILpHPKXC83tIxOlh2U75F1KuB2luLD/3a6/7K3Vw5pDn+hvu0C4AzSw
=="
,
"version"
:
"4.1.
3
"
,
"resolved"
:
"https://registry.npmjs.org/terser/-/terser-4.1.
3
.tgz"
,
"integrity"
:
"sha512-
on13d+cnpn5bMouZu+J8tPYQecsdRJCJuxFJ+FVoPBoLJgk5bCBkp+Uen2hWyi0KIUm6eDarnlAlH+KgIx/PuQ
=="
,
"requires"
:
{
"commander"
:
"^2.20.0"
,
"source-map"
:
"~0.6.1"
,
...
...
@@ -7968,9 +7968,9 @@
"integrity"
:
"sha1-HCQ6ULWVwb5Up1S/7OhWO5/42BM="
},
"vditor"
:
{
"version"
:
"1.
6.11
"
,
"resolved"
:
"https://registry.npmjs.org/vditor/-/vditor-1.
6.11
.tgz"
,
"integrity"
:
"sha512-
hJpkyGR4xSyD8k/lM3mVofFLszTCv+3qVdvgQ0tpx3no3mOGFH876lF/t6+Xo/VYkjQrHII50AmbsqtykQe2X
A=="
,
"version"
:
"1.
7.0
"
,
"resolved"
:
"https://registry.npmjs.org/vditor/-/vditor-1.
7.0
.tgz"
,
"integrity"
:
"sha512-
KHYh2dtnNFGAnq/vRYZpuaAIqABdu6vPPaIt/JiE8ckBUqrf+5D9fCiqIg7DJ9jTnQEc7OP5rMqfEOMqjFE1i
A=="
,
"requires"
:
{
"echarts"
:
"^4.2.1"
,
"highlight.js"
:
"^9.15.8"
,
...
...
package.json
View file @
3bc97fde
...
...
@@ -36,6 +36,6 @@
"
gulp-uglify
"
:
"
^3.0.2
"
},
"dependencies"
:
{
"
vditor
"
:
"
^1.
6.12
"
"
vditor
"
:
"
^1.
7.0
"
}
}
src/main/webapp/js/admin/admin.min.js
View file @
3bc97fde
Util
.
htmlDecode
=
function
(
t
){
var
e
=
document
.
createElement
(
"
div
"
);
return
e
.
innerHTML
=
decodeURIComponent
(
t
),
e
.
innerText
};
var
Admin
=
function
(){
this
.
register
=
{},
this
.
tools
=
[
"
#page-list
"
,
"
#theme-list
"
,
"
#link-list
"
,
"
#preference
"
,
"
#user-list
"
,
"
#plugin-list
"
,
"
#others
"
,
"
#category-list
"
],
this
.
adTools
=
[
"
link-list
"
,
"
preference
"
,
"
theme-list
"
,
"
page-list
"
,
"
user-list
"
,
"
plugin-list
"
,
"
others
"
,
"
category-list
"
]};
$
.
extend
(
Admin
.
prototype
,{
logout
:
function
(){
window
.
location
.
href
=
Label
.
servePath
+
"
/logout
"
},
toggleMenu
:
function
(){
"
-240px
"
===
$
(
"
#tabs
"
).
css
(
"
left
"
)?(
$
(
"
#tabs
"
).
css
(
"
left
"
,
0
),
$
(
"
.tabs__bg
"
).
show
()):(
$
(
"
#tabs
"
).
css
(
"
left
"
,
"
-240px
"
),
$
(
"
.tabs__bg
"
).
hide
())},
clearTip
:
function
(){
$
(
"
#tipMsg
"
).
text
(
""
),
$
(
"
#loadMsg
"
).
text
(
""
)},
setHashByPage
:
function
(
t
){
var
e
=
window
.
location
.
hash
.
split
(
"
/
"
);
/^
\d
*$/
.
test
(
e
[
e
.
length
-
1
])?
e
[
e
.
length
-
1
]
=
t
:
e
.
push
(
t
),
window
.
location
.
hash
=
e
.
join
(
"
/
"
)},
selectTab
:
function
(
t
){
window
.
location
.
hash
=
"
#
"
+
t
},
analyseHash
:
function
(){
for
(
var
t
=
window
.
location
.
hash
,
e
=
t
.
substr
(
1
,
t
.
length
-
1
).
split
(
"
/
"
),
i
=
{
page
:
1
,
hashList
:[]},
a
=
0
;
a
<
e
.
length
;
a
++
)
a
===
e
.
length
-
1
&&
/^
\d
+$/
.
test
(
e
[
a
])?
i
.
page
=
e
[
a
]:
i
.
hashList
.
push
(
e
[
a
]);
return
i
},
setCurByHash
:
function
(){
$
(
window
).
scrollTop
(
0
),
$
(
"
#tipMsg
"
).
text
(
""
);
var
t
=
admin
.
analyseHash
(),
e
=
t
.
hashList
[
1
],
i
=
t
.
hashList
[
2
];
if
(
1
===
t
.
hashList
.
length
&&
(
e
=
t
.
hashList
[
0
]),
""
!==
e
){
try
{
if
(
admin
.
editors
.
articleEditor
.
getContent
){
if
(
"
article
"
!==
e
&&
admin
.
article
.
isConfirm
&&
""
!==
admin
.
editors
.
articleEditor
.
getContent
().
replace
(
/
\s
/g
,
""
)
&&
admin
.
article
.
content
!==
admin
.
editors
.
articleEditor
.
getContent
()
&&!
confirm
(
Label
.
editorLeaveLabel
))
return
void
(
window
.
location
.
hash
=
"
#article/article
"
);
if
(
"
article
"
===
e
&&
admin
.
article
.
isConfirm
&&
""
!==
admin
.
editors
.
articleEditor
.
getContent
().
replace
(
/
\s
/g
,
""
)
&&
admin
.
article
.
content
!==
admin
.
editors
.
articleEditor
.
getContent
())
return
}}
catch
(
t
){
console
.
log
(
t
)}
"
article
"
!==
e
&&
admin
.
editors
.
articleEditor
.
setContent
&&
admin
.
article
.
clear
(),
admin
.
article
.
isConfirm
=!
0
,
$
(
"
#tabs
"
).
tabs
(
"
setCurrent
"
,
e
),
$
(
"
#loadMsg
"
).
text
(
Label
.
loadingLabel
),
1
===
$
(
"
#tabsPanel_
"
+
e
).
length
?
""
===
$
(
"
#tabsPanel_
"
+
e
).
html
().
replace
(
/
\s
/g
,
""
)?
$
(
"
#tabsPanel_
"
+
e
).
load
(
"
admin-
"
+
e
+
"
.do
"
,
function
(){
"
article
"
===
e
&&
admin
.
article
.
status
.
id
?
admin
.
register
[
e
].
init
.
call
(
admin
.
register
[
e
].
obj
,
admin
.
article
.
getAndSet
):
admin
.
register
[
e
].
init
.
call
(
admin
.
register
[
e
].
obj
,
t
.
page
),
i
&&
$
(
"
#tab
"
+
e
.
substring
(
0
,
1
).
toUpperCase
()
+
e
.
substring
(
1
)).
tabs
(
"
setCurrent
"
,
i
),
admin
.
plugin
.
setCurByHash
(
t
)}):(
"
article
"
===
e
&&
admin
.
article
.
status
.
id
&&
admin
.
article
.
getAndSet
(),
admin
.
register
[
e
]
&&
admin
.
register
[
e
].
refresh
&&
admin
.
register
[
e
].
refresh
.
call
(
admin
.
register
[
e
].
obj
,
t
.
page
),
i
&&
$
(
"
#tab
"
+
e
.
substring
(
0
,
1
).
toUpperCase
()
+
e
.
substring
(
1
)).
tabs
(
"
setCurrent
"
,
i
),
admin
.
plugin
.
setCurByHash
(
t
)):(
$
(
"
#tipMsg
"
).
text
(
"
Error: No tab!
"
+
Label
.
reportIssueLabel
),
$
(
"
#loadMsg
"
).
text
(
""
))}},
init
:
function
(){
Util
.
killIE
(),
$
(
"
#loadMsg
"
).
text
(
Label
.
loadingLabel
),
$
(
"
#tabs
"
).
tabs
(),
setInterval
(
function
(){
""
!==
$
(
"
#tipMsg
"
).
text
()
&&
setTimeout
(
function
(){
$
(
"
#tipMsg
"
).
text
(
""
)},
7
e3
)},
6
e3
),
$
(
"
#loadMsg
"
).
text
(
""
),
window
.
onbeforeunload
=
function
(
t
){
if
(
"
#article/article
"
===
window
.
location
.
hash
)
return
t
&&
(
t
.
returnValue
=
Label
.
editorLeaveLabel
),
Label
.
editorLeaveLabel
},
$
(
document
).
ajaxError
(
function
(
t
,
e
,
i
,
a
){
200
!==
e
.
status
&&
$
(
"
#tipMsg
"
).
text
(
e
.
status
+
"
:
"
+
a
)})},
collapseNav
:
function
(
t
){
$
(
t
).
next
().
slideToggle
(
"
normal
"
,
function
(){
"
none
"
!==
this
.
style
.
display
?(
$
(
t
).
find
(
"
.icon-chevron-down
"
)[
0
].
className
=
"
icon-chevron-up fn__right
"
,
$
(
t
).
addClass
(
"
tab-current
"
)):(
$
(
t
).
find
(
"
.icon-chevron-up
"
)[
0
].
className
=
"
icon-chevron-down fn__right
"
,
$
(
t
).
removeClass
(
"
tab-current
"
)),
$
(
"
#tabs > ul
"
).
height
(
"
auto
"
),
$
(
"
#tabs > ul
"
).
height
(
$
(
"
#tabs > ul
"
).
height
()
+
80
)})},
inited
:
function
(){
if
(
"
adminRole
"
!==
Label
.
userRole
)
for
(
var
t
=
0
;
t
<
this
.
adTools
.
length
;
t
++
)
$
(
"
#tabs
"
).
tabs
(
"
remove
"
,
this
.
adTools
[
t
]);
else
for
(
var
e
=
0
;
e
<
this
.
tools
.
length
;
e
++
)
if
(
"
#
"
+
window
.
location
.
hash
.
split
(
"
/
"
)[
1
]
===
this
.
tools
[
e
]){
$
(
"
#tabToolsTitle
"
).
click
();
break
}
this
.
setCurByHash
()}});
var
admin
=
new
Admin
;
admin
.
editors
=
{};
var
SoloEditor
=
function
(
e
){
this
.
conf
=
e
,
this
.
init
()};
$
.
extend
(
SoloEditor
.
prototype
,{
init
:
function
(){
this
.
editor
=
new
Vditor
(
this
.
conf
.
id
,{
cache
:
!
0
,
tab
:
"
\t
"
,
hint
:{
emojiPath
:
Label
.
staticServePath
+
"
/images/emoji
"
},
preview
:{
delay
:
500
,
show
:
this
.
conf
.
previewShow
,
url
:
Label
.
servePath
+
"
/console/markdown/2html
"
,
parse
:
function
(
e
){
"
none
"
!==
e
.
style
.
display
&&
Util
.
parseLanguage
()}},
upload
:{
max
:
10485760
,
url
:
Label
.
uploadURL
,
token
:
Label
.
uploadToken
,
filename
:
function
(
e
){
return
e
.
replace
(
/
[^
(a-zA-Z0-9
\u
4e00-
\u
9fa5
\.
)
]
/g
,
""
).
replace
(
/
[\?\\/
:|<>
\*\[\]\(\)\$
%
\{\}
@~
]
/g
,
""
).
replace
(
"
/
\\
s/g
"
,
""
)}},
height
:
this
.
conf
.
height
,
counter
:
102400
,
resize
:{
enable
:
this
.
conf
.
resize
},
lang
:
Label
.
localeString
}),
"
function
"
==
typeof
this
.
conf
.
fun
&&
this
.
conf
.
fun
()},
getContent
:
function
(){
return
this
.
editor
.
getValue
()},
setContent
:
function
(
e
){
this
.
editor
.
setValue
(
e
)},
remove
:
function
(){
document
.
getElementById
(
this
.
editor
.
vditor
.
id
).
outerHTML
=
""
}}),
admin
.
editors
.
articleEditor
=
{},
admin
.
editors
.
abstractEditor
=
{};
admin
.
editors
=
{};
var
SoloEditor
=
function
(
e
){
this
.
conf
=
e
,
this
.
init
()};
$
.
extend
(
SoloEditor
.
prototype
,{
init
:
function
(){
this
.
editor
=
new
Vditor
(
this
.
conf
.
id
,{
cache
:
!
0
,
tab
:
"
\t
"
,
hint
:{
emojiPath
:
Label
.
staticServePath
+
"
/images/emoji
"
},
preview
:{
delay
:
500
,
mode
:
this
.
conf
.
previewMode
,
url
:
Label
.
servePath
+
"
/console/markdown/2html
"
,
parse
:
function
(
e
){
"
none
"
!==
e
.
style
.
display
&&
Util
.
parseLanguage
()}},
upload
:{
max
:
10485760
,
url
:
Label
.
uploadURL
,
token
:
Label
.
uploadToken
,
filename
:
function
(
e
){
return
e
.
replace
(
/
[^
(a-zA-Z0-9
\u
4e00-
\u
9fa5
\.
)
]
/g
,
""
).
replace
(
/
[\?\\/
:|<>
\*\[\]\(\)\$
%
\{\}
@~
]
/g
,
""
).
replace
(
"
/
\\
s/g
"
,
""
)}},
height
:
this
.
conf
.
height
,
counter
:
102400
,
resize
:{
enable
:
this
.
conf
.
resize
},
lang
:
Label
.
localeString
}),
"
function
"
==
typeof
this
.
conf
.
fun
&&
this
.
conf
.
fun
()},
getContent
:
function
(){
return
this
.
editor
.
getValue
()},
setContent
:
function
(
e
){
this
.
editor
.
setValue
(
e
)},
remove
:
function
(){
document
.
getElementById
(
this
.
editor
.
vditor
.
id
).
outerHTML
=
""
}}),
admin
.
editors
.
articleEditor
=
{},
admin
.
editors
.
abstractEditor
=
{};
var
TablePaginate
=
function
(
a
){
this
.
id
=
a
,
this
.
currentPage
=
1
};
$
.
extend
(
TablePaginate
.
prototype
,{
buildTable
:
function
(
a
,
t
){
var
e
=
{
colModel
:
a
,
noDataTip
:
Label
.
noDataLabel
};
t
||
(
e
.
expendRow
=
{
index
:
"
expendRow
"
}),
$
(
"
#
"
+
this
.
id
+
"
Table
"
).
table
(
e
)},
initPagination
:
function
(){
var
a
=
this
.
id
;
$
(
"
#
"
+
a
+
"
Pagination
"
).
paginate
({
bind
:
function
(
a
,
t
){
t
?
$
(
"
#tipMsg
"
).
text
(
t
):
admin
.
setHashByPage
(
a
)},
currentPage
:
1
,
errorMessage
:
Label
.
inputErrorLabel
,
nextPageText
:
"
>
"
,
previousPageText
:
"
<
"
,
goText
:
Label
.
gotoLabel
,
type
:
"
custom
"
,
custom
:[
1
],
pageCount
:
1
})},
initCommentsDialog
:
function
(){
var
a
=
this
;
$
(
"
#
"
+
this
.
id
+
"
Comments
"
).
dialog
({
modal
:
!
0
,
hideFooter
:
!
0
,
close
:
function
(){
return
admin
[
a
.
id
+
"
List
"
].
getList
(
a
.
currentPage
),
!
0
}})},
updateTablePagination
:
function
(
a
,
t
,
e
){
if
((
t
=
parseInt
(
t
))
>
e
.
paginationPageCount
&&
1
<
t
)
return
$
(
"
#tipMsg
"
).
text
(
Label
.
pageLabel
+
t
+
Label
.
notFoundLabel
),
void
$
(
"
#loadMsg
"
).
text
(
""
);
$
(
"
#
"
+
this
.
id
+
"
Table
"
).
table
(
"
update
"
,{
data
:[{
groupName
:
"
all
"
,
groupData
:
a
}]}),
0
===
e
.
paginationPageCount
&&
(
e
.
paginationPageCount
=
1
),
$
(
"
#
"
+
this
.
id
+
"
Pagination
"
).
paginate
(
"
update
"
,{
pageCount
:
e
.
paginationPageCount
,
currentPage
:
t
,
custom
:
e
.
paginationPageNums
}),
this
.
currentPage
=
t
}});
admin
.
article
=
{
isConfirm
:
!
0
,
status
:{
id
:
void
0
,
isArticle
:
void
0
},
content
:
""
,
get
:
function
(
t
,
e
){
this
.
status
.
id
=
t
,
this
.
status
.
isArticle
=
e
,
admin
.
selectTab
(
"
article/article
"
)},
getAndSet
:
function
(){
$
(
"
#loadMsg
"
).
text
(
Label
.
loadingLabel
),
$
(
"
#tipMsg
"
).
text
(
""
),
$
.
ajax
({
url
:
Label
.
servePath
+
"
/console/article/
"
+
admin
.
article
.
status
.
id
,
type
:
"
GET
"
,
cache
:
!
1
,
success
:
function
(
e
,
t
){
if
(
$
(
"
#tipMsg
"
).
text
(
e
.
msg
),
e
.
sc
){
$
(
"
#title
"
).
val
(
e
.
article
.
articleTitle
),
admin
.
editors
.
articleEditor
.
setContent
(
e
.
article
.
articleContent
),
admin
.
editors
.
abstractEditor
.
setContent
(
e
.
article
.
articleAbstract
),
admin
.
article
.
content
=
admin
.
editors
.
articleEditor
.
getContent
();
for
(
var
i
=
e
.
article
.
articleTags
,
a
=
""
,
l
=
0
;
l
<
i
.
length
;
l
++
)
0
===
l
?
a
=
i
[
l
].
tagTitle
:
a
+=
"
,
"
+
i
[
l
].
tagTitle
;
$
(
"
#tag
"
).
val
(
a
),
$
(
"
#permalink
"
).
val
(
e
.
article
.
articlePermalink
),
$
(
"
#viewPwd
"
).
val
(
e
.
article
.
articleViewPwd
),
$
(
"
#articleCommentable
"
).
prop
(
"
checked
"
,
e
.
article
.
articleCommentable
);
var
s
=
e
.
article
.
signs
;
$
(
"
.signs button
"
).
each
(
function
(
t
){
parseInt
(
e
.
article
.
articleSignId
)
===
parseInt
(
s
[
t
].
oId
)?
$
(
"
#articleSign
"
+
s
[
t
].
oId
).
addClass
(
"
selected
"
):
$
(
"
#articleSign
"
+
s
[
t
].
oId
).
removeClass
(
"
selected
"
)}),
admin
.
article
.
setStatus
(),
$
(
"
#loadMsg
"
).
text
(
""
)}
else
$
(
"
#loadMsg
"
).
text
(
""
)}})},
del
:
function
(
t
,
i
,
e
){
confirm
(
Label
.
confirmRemoveLabel
+
Label
.
articleLabel
+
'
"
'
+
Util
.
htmlDecode
(
e
)
+
'
"?
'
)
&&
(
$
(
"
#loadMsg
"
).
text
(
Label
.
loadingLabel
),
$
(
"
#tipMsg
"
).
text
(
""
),
$
.
ajax
({
url
:
Label
.
servePath
+
"
/console/article/
"
+
t
,
type
:
"
DELETE
"
,
cache
:
!
1
,
success
:
function
(
t
,
e
){
$
(
"
#tipMsg
"
).
text
(
t
.
msg
),
t
.
sc
?
admin
[
i
+
"
List
"
].
getList
(
1
):
$
(
"
#loadMsg
"
).
text
(
""
)}}))},
add
:
function
(
e
){
if
(
admin
.
article
.
validate
()){
var
i
=
this
;
i
.
_addDisabled
(),
$
(
"
#loadMsg
"
).
text
(
Label
.
loadingLabel
),
$
(
"
#tipMsg
"
).
text
(
""
);
var
t
=
""
;
$
(
"
.signs button
"
).
each
(
function
(){
"
selected
"
===
this
.
className
&&
(
t
=
this
.
id
.
substr
(
this
.
id
.
length
-
1
,
1
))});
var
a
=
admin
.
editors
.
articleEditor
.
getContent
(),
l
=
admin
.
editors
.
abstractEditor
.
getContent
();
if
(
$
(
"
#articleThumbnail
"
).
prop
(
"
checked
"
)){
var
s
=
$
(
"
.thumbnail__img
"
).
css
(
"
background-image
"
);
a
=
"
.
replace
(
"
w/768
"
,
"
w/960
"
).
replace
(
"
h/432
"
,
"
h/540
"
)
+
"
)
\n\n
"
+
a
}
var
c
=
{
article
:{
articleTitle
:
$
(
"
#title
"
).
val
(),
articleContent
:
a
,
articleAbstract
:
l
,
articleTags
:
this
.
trimUniqueArray
(
$
(
"
#tag
"
).
val
()).
toString
(),
articlePermalink
:
$
(
"
#permalink
"
).
val
(),
articleStatus
:
e
,
articleSignId
:
t
,
postToCommunity
:
$
(
"
#postToCommunity
"
).
prop
(
"
checked
"
),
articleCommentable
:
$
(
"
#articleCommentable
"
).
prop
(
"
checked
"
),
articleViewPwd
:
$
(
"
#viewPwd
"
).
val
()}};
$
.
ajax
({
url
:
Label
.
servePath
+
"
/console/article/
"
,
type
:
"
POST
"
,
cache
:
!
1
,
data
:
JSON
.
stringify
(
c
),
success
:
function
(
t
){
$
(
"
#tipMsg
"
).
text
(
t
.
msg
),
t
.
sc
&&
(
admin
.
article
.
status
.
id
=
void
0
,
0
===
e
?
admin
.
selectTab
(
"
article/article-list
"
):
admin
.
selectTab
(
"
article/draft-list
"
),
admin
.
article
.
isConfirm
=!
1
)},
complete
:
function
(
t
,
e
){
i
.
_removeDisabled
(),
$
(
"
#loadMsg
"
).
text
(
""
)}})}},
update
:
function
(
i
){
if
(
admin
.
article
.
validate
()){
var
a
=
this
;
a
.
_addDisabled
(),
$
(
"
#loadMsg
"
).
text
(
Label
.
loadingLabel
),
$
(
"
#tipMsg
"
).
text
(
""
);
var
t
=
""
;
$
(
"
.signs button
"
).
each
(
function
(){
"
selected
"
===
this
.
className
&&
(
t
=
this
.
id
.
substr
(
this
.
id
.
length
-
1
,
1
))});
var
e
=
admin
.
editors
.
articleEditor
.
getContent
(),
l
=
admin
.
editors
.
abstractEditor
.
getContent
();
if
(
$
(
"
#articleThumbnail
"
).
prop
(
"
checked
"
)){
var
s
=
$
(
"
.thumbnail__img
"
).
css
(
"
background-image
"
);
e
=
"
.
replace
(
"
w/768
"
,
"
w/960
"
).
replace
(
"
h/432
"
,
"
h/540
"
)
+
"
)
\n\n
"
+
e
}
var
c
=
{
article
:{
oId
:
this
.
status
.
id
,
articleTitle
:
$
(
"
#title
"
).
val
(),
articleContent
:
e
,
articleAbstract
:
l
,
articleTags
:
this
.
trimUniqueArray
(
$
(
"
#tag
"
).
val
()).
toString
(),
articlePermalink
:
$
(
"
#permalink
"
).
val
(),
articleStatus
:
i
,
articleSignId
:
t
,
articleCommentable
:
$
(
"
#articleCommentable
"
).
prop
(
"
checked
"
),
articleViewPwd
:
$
(
"
#viewPwd
"
).
val
(),
postToCommunity
:
$
(
"
#postToCommunity
"
).
prop
(
"
checked
"
)}};
$
.
ajax
({
url
:
Label
.
servePath
+
"
/console/article/
"
,
type
:
"
PUT
"
,
cache
:
!
1
,
data
:
JSON
.
stringify
(
c
),
success
:
function
(
t
,
e
){
$
(
"
#tipMsg
"
).
text
(
t
.
msg
),
t
.
sc
&&
(
0
===
i
?
admin
.
selectTab
(
"
article/article-list
"
):
admin
.
selectTab
(
"
article/draft-list
"
),
$
(
"
#tipMsg
"
).
text
(
Label
.
updateSuccLabel
),
admin
.
article
.
status
.
id
=
void
0
,
admin
.
article
.
isConfirm
=!
1
)},
complete
:
function
(
t
,
e
){
a
.
_removeDisabled
(),
$
(
"
#loadMsg
"
).
text
(
""
)}})}},
setStatus
:
function
(){
$
.
ajax
({
url
:
Label
.
servePath
+
"
/console/tags
"
,
type
:
"
GET
"
,
cache
:
!
1
,
success
:
function
(
t
,
e
){
if
(
$
(
"
#tipMsg
"
).
text
(
t
.
msg
),
t
.
sc
){
if
(
!
(
t
.
tags
.
length
<=
0
)){
$
(
"
#tagCheckboxPanel>span
"
).
remove
(
""
);
for
(
var
i
=
""
,
a
=
0
;
a
<
t
.
tags
.
length
;
a
++
)
i
+=
"
<span>
"
+
t
.
tags
[
a
].
tagTitle
+
"
</span>
"
;
$
(
"
#tagCheckboxPanel
"
).
html
(
i
+
'
<div class="fn__clear"></div>
'
),
$
(
"
#loadMsg
"
).
text
(
""
)}}
else
$
(
"
#loadMsg
"
).
text
(
""
)}}),
this
.
status
?
this
.
status
.
isArticle
?(
$
(
"
#unSubmitArticle
"
).
show
(),
$
(
"
#saveArticle
"
).
hide
(),
$
(
"
#submitArticle
"
).
show
()):(
$
(
"
#submitArticle
"
).
show
(),
$
(
"
#unSubmitArticle
"
).
hide
(),
$
(
"
#saveArticle
"
).
show
()):(
$
(
"
#submitArticle
"
).
show
(),
$
(
"
#unSubmitArticle
"
).
hide
(),
$
(
"
#saveArticle
"
).
show
(),
$
(
"
#postToCommunityPanel
"
).
show
())},
clear
:
function
(){
this
.
status
=
{
id
:
void
0
,
isArticle
:
void
0
},
this
.
setStatus
(),
$
(
"
#title
"
).
val
(
""
),
admin
.
editors
.
articleEditor
.
setContent
(
""
),
admin
.
editors
.
abstractEditor
.
setContent
(
""
),
$
(
"
#tag
"
).
val
(
""
),
$
(
"
#tagCheckboxPanel
"
).
hide
().
find
(
"
span
"
).
removeClass
(
"
selected
"
),
$
(
"
#permalink
"
).
val
(
""
),
$
(
"
#articleCammentable
"
).
prop
(
"
checked
"
,
!
0
),
$
(
"
#postToCommunity
"
).
prop
(
"
checked
"
,
!
1
),
$
(
"
.signs button
"
).
each
(
function
(
t
){
this
.
className
=
0
===
t
?
"
selected
"
:
""
}),
$
(
"
#articleThumbnail
"
).
prop
(
"
checked
"
)
&&
$
(
"
#articleThumbnail
"
).
click
()},
init
:
function
(
t
){
$
(
"
.signs button
"
).
click
(
function
(
t
){
$
(
"
.signs button
"
).
removeClass
(
"
selected
"
),
$
(
this
).
addClass
(
"
selected
"
)}),
$
(
"
#tipMsg
"
).
text
(
Label
.
uploadMsg
),
$
.
ajax
({
url
:
Label
.
servePath
+
"
/console/tags
"
,
type
:
"
GET
"
,
cache
:
!
1
,
success
:
function
(
t
,
e
){
if
(
$
(
"
#tipMsg
"
).
text
(
t
.
msg
),
t
.
sc
){
if
(
!
(
t
.
tags
.
length
<=
0
)){
for
(
var
i
=
[],
a
=
0
;
a
<
t
.
tags
.
length
;
a
++
)
i
.
push
(
t
.
tags
[
a
].
tagTitle
);
$
(
"
#tag
"
).
completed
({
height
:
160
,
buttonText
:
Label
.
selectLabel
,
data
:
i
}),
$
(
"
#loadMsg
"
).
text
(
""
)}}
else
$
(
"
#loadMsg
"
).
text
(
""
)}}),
$
(
"
#submitArticle
"
).
click
(
function
(){
admin
.
article
.
status
.
id
?
admin
.
article
.
update
(
0
):
admin
.
article
.
add
(
0
)}),
$
(
"
#saveArticle
"
).
click
(
function
(){
admin
.
article
.
status
.
id
?
admin
.
article
.
update
(
admin
.
article
.
status
.
isArticle
?
0
:
1
):
admin
.
article
.
add
(
1
)}),
admin
.
editors
.
articleEditor
=
new
SoloEditor
({
id
:
"
articleContent
"
,
height
:
500
,
fun
:
t
,
preview
Show
:
!
0
,
resize
:
!
1
}),
admin
.
editors
.
abstractEditor
=
new
SoloEditor
({
id
:
"
abstract
"
,
height
:
200
,
previewShow
:
!
1
,
resize
:
!
0
}),
$
(
"
#articleThumbnailBtn
"
).
click
(
function
(){
$
.
ajax
({
url
:
Label
.
servePath
+
"
/console/thumbs?n=1&w=768&h=432
"
,
type
:
"
GET
"
,
cache
:
!
1
,
success
:
function
(
t
,
e
){
t
.
sc
?
$
(
"
#articleThumbnailBtn
"
).
prev
().
css
(
"
background-image
"
,
"
url(
"
+
t
.
data
[
0
]
+
"
)
"
):
$
(
"
#loadMsg
"
).
text
(
t
.
msg
)}})}).
click
()},
validate
:
function
(){
var
t
=
admin
.
editors
.
articleEditor
.
getContent
();
if
(
""
===
$
(
"
#title
"
).
val
().
replace
(
/
\s
/g
,
""
))
$
(
"
#tipMsg
"
).
text
(
Label
.
titleEmptyLabel
),
$
(
"
#title
"
).
focus
().
val
(
""
);
else
{
if
(
""
!==
t
.
replace
(
/
\s
/g
,
""
))
return
!
0
;
$
(
"
#tipMsg
"
).
text
(
Label
.
contentEmptyLabel
)}
return
!
1
},
unPublish
:
function
(){
var
i
=
this
;
i
.
_addDisabled
(),
$
.
ajax
({
url
:
Label
.
servePath
+
"
/console/article/unpublish/
"
+
admin
.
article
.
status
.
id
,
type
:
"
PUT
"
,
cache
:
!
1
,
success
:
function
(
t
,
e
){
$
(
"
#tipMsg
"
).
text
(
t
.
msg
),
t
.
sc
&&
(
admin
.
selectTab
(
"
article/draft-list
"
),
admin
.
article
.
status
.
id
=
void
0
,
admin
.
article
.
isConfirm
=!
1
)},
complete
:
function
(
t
,
e
){
i
.
_removeDisabled
(),
$
(
"
#loadMsg
"
).
text
(
""
)}})},
trimUniqueArray
:
function
(
t
){
for
(
var
e
=
(
t
=
t
.
toString
()).
split
(
"
,
"
),
i
=
0
;
i
<
e
.
length
;
i
++
)
e
[
i
]
=
e
[
i
].
replace
(
/
(
^
\s
*
)
|
(\s
*$
)
/g
,
""
),
""
===
e
[
i
]
&&
(
e
.
splice
(
i
,
1
),
i
--
);
return
$
.
unique
(
e
).
toString
()},
prePost
:
function
(){
if
(
$
(
"
#loadMsg
"
).
text
(
Label
.
loadingLabel
),
admin
.
article
.
content
=
""
,
admin
.
editors
.
articleEditor
.
getContent
){
var
t
=
admin
.
editors
.
articleEditor
.
getContent
();
"
#article/article
"
===
window
.
location
.
hash
&&
""
!==
t
.
replace
(
/
\s
/g
,
""
)
&&
confirm
(
Label
.
editorPostLabel
)
&&
admin
.
article
.
clear
(),
$
(
"
#tipMsg
"
).
text
(
""
),
$
(
"
#loadMsg
"
).
text
(
""
)}},
_addDisabled
:
function
(){
$
(
"
#unSubmitArticle
"
).
attr
(
"
disabled
"
,
"
disabled
"
),
$
(
"
#saveArticle
"
).
attr
(
"
disabled
"
,
"
disabled
"
),
$
(
"
#submitArticle
"
).
attr
(
"
disabled
"
,
"
disabled
"
)},
_removeDisabled
:
function
(){
$
(
"
#unSubmitArticle
"
).
removeAttr
(
"
disabled
"
),
$
(
"
#saveArticle
"
).
removeAttr
(
"
disabled
"
),
$
(
"
#submitArticle
"
).
removeAttr
(
"
disabled
"
)}},
admin
.
register
.
article
=
{
obj
:
admin
.
article
,
init
:
admin
.
article
.
init
,
refresh
:
function
(){
admin
.
editors
.
abstractEditor
.
setContent
(
""
),
admin
.
editors
.
articleEditor
.
setContent
(
""
),
$
(
"
#loadMsg
"
).
text
(
""
),
$
(
"
#tipMsg
"
).
text
(
Label
.
uploadMsg
)}};
admin
.
article
=
{
isConfirm
:
!
0
,
status
:{
id
:
void
0
,
isArticle
:
void
0
},
content
:
""
,
get
:
function
(
t
,
e
){
this
.
status
.
id
=
t
,
this
.
status
.
isArticle
=
e
,
admin
.
selectTab
(
"
article/article
"
)},
getAndSet
:
function
(){
$
(
"
#loadMsg
"
).
text
(
Label
.
loadingLabel
),
$
(
"
#tipMsg
"
).
text
(
""
),
$
.
ajax
({
url
:
Label
.
servePath
+
"
/console/article/
"
+
admin
.
article
.
status
.
id
,
type
:
"
GET
"
,
cache
:
!
1
,
success
:
function
(
e
,
t
){
if
(
$
(
"
#tipMsg
"
).
text
(
e
.
msg
),
e
.
sc
){
$
(
"
#title
"
).
val
(
e
.
article
.
articleTitle
),
admin
.
editors
.
articleEditor
.
setContent
(
e
.
article
.
articleContent
),
admin
.
editors
.
abstractEditor
.
setContent
(
e
.
article
.
articleAbstract
),
admin
.
article
.
content
=
admin
.
editors
.
articleEditor
.
getContent
();
for
(
var
i
=
e
.
article
.
articleTags
,
a
=
""
,
l
=
0
;
l
<
i
.
length
;
l
++
)
0
===
l
?
a
=
i
[
l
].
tagTitle
:
a
+=
"
,
"
+
i
[
l
].
tagTitle
;
$
(
"
#tag
"
).
val
(
a
),
$
(
"
#permalink
"
).
val
(
e
.
article
.
articlePermalink
),
$
(
"
#viewPwd
"
).
val
(
e
.
article
.
articleViewPwd
),
$
(
"
#articleCommentable
"
).
prop
(
"
checked
"
,
e
.
article
.
articleCommentable
);
var
s
=
e
.
article
.
signs
;
$
(
"
.signs button
"
).
each
(
function
(
t
){
parseInt
(
e
.
article
.
articleSignId
)
===
parseInt
(
s
[
t
].
oId
)?
$
(
"
#articleSign
"
+
s
[
t
].
oId
).
addClass
(
"
selected
"
):
$
(
"
#articleSign
"
+
s
[
t
].
oId
).
removeClass
(
"
selected
"
)}),
admin
.
article
.
setStatus
(),
$
(
"
#loadMsg
"
).
text
(
""
)}
else
$
(
"
#loadMsg
"
).
text
(
""
)}})},
del
:
function
(
t
,
i
,
e
){
confirm
(
Label
.
confirmRemoveLabel
+
Label
.
articleLabel
+
'
"
'
+
Util
.
htmlDecode
(
e
)
+
'
"?
'
)
&&
(
$
(
"
#loadMsg
"
).
text
(
Label
.
loadingLabel
),
$
(
"
#tipMsg
"
).
text
(
""
),
$
.
ajax
({
url
:
Label
.
servePath
+
"
/console/article/
"
+
t
,
type
:
"
DELETE
"
,
cache
:
!
1
,
success
:
function
(
t
,
e
){
$
(
"
#tipMsg
"
).
text
(
t
.
msg
),
t
.
sc
?
admin
[
i
+
"
List
"
].
getList
(
1
):
$
(
"
#loadMsg
"
).
text
(
""
)}}))},
add
:
function
(
e
){
if
(
admin
.
article
.
validate
()){
var
i
=
this
;
i
.
_addDisabled
(),
$
(
"
#loadMsg
"
).
text
(
Label
.
loadingLabel
),
$
(
"
#tipMsg
"
).
text
(
""
);
var
t
=
""
;
$
(
"
.signs button
"
).
each
(
function
(){
"
selected
"
===
this
.
className
&&
(
t
=
this
.
id
.
substr
(
this
.
id
.
length
-
1
,
1
))});
var
a
=
admin
.
editors
.
articleEditor
.
getContent
(),
l
=
admin
.
editors
.
abstractEditor
.
getContent
();
if
(
$
(
"
#articleThumbnail
"
).
prop
(
"
checked
"
)){
var
s
=
$
(
"
.thumbnail__img
"
).
css
(
"
background-image
"
);
a
=
"
.
replace
(
"
w/768
"
,
"
w/960
"
).
replace
(
"
h/432
"
,
"
h/540
"
)
+
"
)
\n\n
"
+
a
}
var
c
=
{
article
:{
articleTitle
:
$
(
"
#title
"
).
val
(),
articleContent
:
a
,
articleAbstract
:
l
,
articleTags
:
this
.
trimUniqueArray
(
$
(
"
#tag
"
).
val
()).
toString
(),
articlePermalink
:
$
(
"
#permalink
"
).
val
(),
articleStatus
:
e
,
articleSignId
:
t
,
postToCommunity
:
$
(
"
#postToCommunity
"
).
prop
(
"
checked
"
),
articleCommentable
:
$
(
"
#articleCommentable
"
).
prop
(
"
checked
"
),
articleViewPwd
:
$
(
"
#viewPwd
"
).
val
()}};
$
.
ajax
({
url
:
Label
.
servePath
+
"
/console/article/
"
,
type
:
"
POST
"
,
cache
:
!
1
,
data
:
JSON
.
stringify
(
c
),
success
:
function
(
t
){
$
(
"
#tipMsg
"
).
text
(
t
.
msg
),
t
.
sc
&&
(
admin
.
article
.
status
.
id
=
void
0
,
0
===
e
?
admin
.
selectTab
(
"
article/article-list
"
):
admin
.
selectTab
(
"
article/draft-list
"
),
admin
.
article
.
isConfirm
=!
1
)},
complete
:
function
(
t
,
e
){
i
.
_removeDisabled
(),
$
(
"
#loadMsg
"
).
text
(
""
)}})}},
update
:
function
(
i
){
if
(
admin
.
article
.
validate
()){
var
a
=
this
;
a
.
_addDisabled
(),
$
(
"
#loadMsg
"
).
text
(
Label
.
loadingLabel
),
$
(
"
#tipMsg
"
).
text
(
""
);
var
t
=
""
;
$
(
"
.signs button
"
).
each
(
function
(){
"
selected
"
===
this
.
className
&&
(
t
=
this
.
id
.
substr
(
this
.
id
.
length
-
1
,
1
))});
var
e
=
admin
.
editors
.
articleEditor
.
getContent
(),
l
=
admin
.
editors
.
abstractEditor
.
getContent
();
if
(
$
(
"
#articleThumbnail
"
).
prop
(
"
checked
"
)){
var
s
=
$
(
"
.thumbnail__img
"
).
css
(
"
background-image
"
);
e
=
"
.
replace
(
"
w/768
"
,
"
w/960
"
).
replace
(
"
h/432
"
,
"
h/540
"
)
+
"
)
\n\n
"
+
e
}
var
c
=
{
article
:{
oId
:
this
.
status
.
id
,
articleTitle
:
$
(
"
#title
"
).
val
(),
articleContent
:
e
,
articleAbstract
:
l
,
articleTags
:
this
.
trimUniqueArray
(
$
(
"
#tag
"
).
val
()).
toString
(),
articlePermalink
:
$
(
"
#permalink
"
).
val
(),
articleStatus
:
i
,
articleSignId
:
t
,
articleCommentable
:
$
(
"
#articleCommentable
"
).
prop
(
"
checked
"
),
articleViewPwd
:
$
(
"
#viewPwd
"
).
val
(),
postToCommunity
:
$
(
"
#postToCommunity
"
).
prop
(
"
checked
"
)}};
$
.
ajax
({
url
:
Label
.
servePath
+
"
/console/article/
"
,
type
:
"
PUT
"
,
cache
:
!
1
,
data
:
JSON
.
stringify
(
c
),
success
:
function
(
t
,
e
){
$
(
"
#tipMsg
"
).
text
(
t
.
msg
),
t
.
sc
&&
(
0
===
i
?
admin
.
selectTab
(
"
article/article-list
"
):
admin
.
selectTab
(
"
article/draft-list
"
),
$
(
"
#tipMsg
"
).
text
(
Label
.
updateSuccLabel
),
admin
.
article
.
status
.
id
=
void
0
,
admin
.
article
.
isConfirm
=!
1
)},
complete
:
function
(
t
,
e
){
a
.
_removeDisabled
(),
$
(
"
#loadMsg
"
).
text
(
""
)}})}},
setStatus
:
function
(){
$
.
ajax
({
url
:
Label
.
servePath
+
"
/console/tags
"
,
type
:
"
GET
"
,
cache
:
!
1
,
success
:
function
(
t
,
e
){
if
(
$
(
"
#tipMsg
"
).
text
(
t
.
msg
),
t
.
sc
){
if
(
!
(
t
.
tags
.
length
<=
0
)){
$
(
"
#tagCheckboxPanel>span
"
).
remove
(
""
);
for
(
var
i
=
""
,
a
=
0
;
a
<
t
.
tags
.
length
;
a
++
)
i
+=
"
<span>
"
+
t
.
tags
[
a
].
tagTitle
+
"
</span>
"
;
$
(
"
#tagCheckboxPanel
"
).
html
(
i
+
'
<div class="fn__clear"></div>
'
),
$
(
"
#loadMsg
"
).
text
(
""
)}}
else
$
(
"
#loadMsg
"
).
text
(
""
)}}),
this
.
status
?
this
.
status
.
isArticle
?(
$
(
"
#unSubmitArticle
"
).
show
(),
$
(
"
#saveArticle
"
).
hide
(),
$
(
"
#submitArticle
"
).
show
()):(
$
(
"
#submitArticle
"
).
show
(),
$
(
"
#unSubmitArticle
"
).
hide
(),
$
(
"
#saveArticle
"
).
show
()):(
$
(
"
#submitArticle
"
).
show
(),
$
(
"
#unSubmitArticle
"
).
hide
(),
$
(
"
#saveArticle
"
).
show
(),
$
(
"
#postToCommunityPanel
"
).
show
())},
clear
:
function
(){
this
.
status
=
{
id
:
void
0
,
isArticle
:
void
0
},
this
.
setStatus
(),
$
(
"
#title
"
).
val
(
""
),
admin
.
editors
.
articleEditor
.
setContent
(
""
),
admin
.
editors
.
abstractEditor
.
setContent
(
""
),
$
(
"
#tag
"
).
val
(
""
),
$
(
"
#tagCheckboxPanel
"
).
hide
().
find
(
"
span
"
).
removeClass
(
"
selected
"
),
$
(
"
#permalink
"
).
val
(
""
),
$
(
"
#articleCammentable
"
).
prop
(
"
checked
"
,
!
0
),
$
(
"
#postToCommunity
"
).
prop
(
"
checked
"
,
!
1
),
$
(
"
.signs button
"
).
each
(
function
(
t
){
this
.
className
=
0
===
t
?
"
selected
"
:
""
}),
$
(
"
#articleThumbnail
"
).
prop
(
"
checked
"
)
&&
$
(
"
#articleThumbnail
"
).
click
()},
init
:
function
(
t
){
$
(
"
.signs button
"
).
click
(
function
(
t
){
$
(
"
.signs button
"
).
removeClass
(
"
selected
"
),
$
(
this
).
addClass
(
"
selected
"
)}),
$
(
"
#tipMsg
"
).
text
(
Label
.
uploadMsg
),
$
.
ajax
({
url
:
Label
.
servePath
+
"
/console/tags
"
,
type
:
"
GET
"
,
cache
:
!
1
,
success
:
function
(
t
,
e
){
if
(
$
(
"
#tipMsg
"
).
text
(
t
.
msg
),
t
.
sc
){
if
(
!
(
t
.
tags
.
length
<=
0
)){
for
(
var
i
=
[],
a
=
0
;
a
<
t
.
tags
.
length
;
a
++
)
i
.
push
(
t
.
tags
[
a
].
tagTitle
);
$
(
"
#tag
"
).
completed
({
height
:
160
,
buttonText
:
Label
.
selectLabel
,
data
:
i
}),
$
(
"
#loadMsg
"
).
text
(
""
)}}
else
$
(
"
#loadMsg
"
).
text
(
""
)}}),
$
(
"
#submitArticle
"
).
click
(
function
(){
admin
.
article
.
status
.
id
?
admin
.
article
.
update
(
0
):
admin
.
article
.
add
(
0
)}),
$
(
"
#saveArticle
"
).
click
(
function
(){
admin
.
article
.
status
.
id
?
admin
.
article
.
update
(
admin
.
article
.
status
.
isArticle
?
0
:
1
):
admin
.
article
.
add
(
1
)}),
admin
.
editors
.
articleEditor
=
new
SoloEditor
({
id
:
"
articleContent
"
,
height
:
500
,
fun
:
t
,
preview
Mode
:
"
both
"
,
resize
:
!
1
}),
admin
.
editors
.
abstractEditor
=
new
SoloEditor
({
id
:
"
abstract
"
,
height
:
200
,
previewMode
:
"
editor
"
,
resize
:
!
0
}),
$
(
"
#articleThumbnailBtn
"
).
click
(
function
(){
$
.
ajax
({
url
:
Label
.
servePath
+
"
/console/thumbs?n=1&w=768&h=432
"
,
type
:
"
GET
"
,
cache
:
!
1
,
success
:
function
(
t
,
e
){
t
.
sc
?
$
(
"
#articleThumbnailBtn
"
).
prev
().
css
(
"
background-image
"
,
"
url(
"
+
t
.
data
[
0
]
+
"
)
"
):
$
(
"
#loadMsg
"
).
text
(
t
.
msg
)}})}).
click
()},
validate
:
function
(){
var
t
=
admin
.
editors
.
articleEditor
.
getContent
();
if
(
""
===
$
(
"
#title
"
).
val
().
replace
(
/
\s
/g
,
""
))
$
(
"
#tipMsg
"
).
text
(
Label
.
titleEmptyLabel
),
$
(
"
#title
"
).
focus
().
val
(
""
);
else
{
if
(
""
!==
t
.
replace
(
/
\s
/g
,
""
))
return
!
0
;
$
(
"
#tipMsg
"
).
text
(
Label
.
contentEmptyLabel
)}
return
!
1
},
unPublish
:
function
(){
var
i
=
this
;
i
.
_addDisabled
(),
$
.
ajax
({
url
:
Label
.
servePath
+
"
/console/article/unpublish/
"
+
admin
.
article
.
status
.
id
,
type
:
"
PUT
"
,
cache
:
!
1
,
success
:
function
(
t
,
e
){
$
(
"
#tipMsg
"
).
text
(
t
.
msg
),
t
.
sc
&&
(
admin
.
selectTab
(
"
article/draft-list
"
),
admin
.
article
.
status
.
id
=
void
0
,
admin
.
article
.
isConfirm
=!
1
)},
complete
:
function
(
t
,
e
){
i
.
_removeDisabled
(),
$
(
"
#loadMsg
"
).
text
(
""
)}})},
trimUniqueArray
:
function
(
t
){
for
(
var
e
=
(
t
=
t
.
toString
()).
split
(
"
,
"
),
i
=
0
;
i
<
e
.
length
;
i
++
)
e
[
i
]
=
e
[
i
].
replace
(
/
(
^
\s
*
)
|
(\s
*$
)
/g
,
""
),
""
===
e
[
i
]
&&
(
e
.
splice
(
i
,
1
),
i
--
);
return
$
.
unique
(
e
).
toString
()},
prePost
:
function
(){
if
(
$
(
"
#loadMsg
"
).
text
(
Label
.
loadingLabel
),
admin
.
article
.
content
=
""
,
admin
.
editors
.
articleEditor
.
getContent
){
var
t
=
admin
.
editors
.
articleEditor
.
getContent
();
"
#article/article
"
===
window
.
location
.
hash
&&
""
!==
t
.
replace
(
/
\s
/g
,
""
)
&&
confirm
(
Label
.
editorPostLabel
)
&&
admin
.
article
.
clear
(),
$
(
"
#tipMsg
"
).
text
(
""
),
$
(
"
#loadMsg
"
).
text
(
""
)}},
_addDisabled
:
function
(){
$
(
"
#unSubmitArticle
"
).
attr
(
"
disabled
"
,
"
disabled
"
),
$
(
"
#saveArticle
"
).
attr
(
"
disabled
"
,
"
disabled
"
),
$
(
"
#submitArticle
"
).
attr
(
"
disabled
"
,
"
disabled
"
)},
_removeDisabled
:
function
(){
$
(
"
#unSubmitArticle
"
).
removeAttr
(
"
disabled
"
),
$
(
"
#saveArticle
"
).
removeAttr
(
"
disabled
"
),
$
(
"
#submitArticle
"
).
removeAttr
(
"
disabled
"
)}},
admin
.
register
.
article
=
{
obj
:
admin
.
article
,
init
:
admin
.
article
.
init
,
refresh
:
function
(){
admin
.
editors
.
abstractEditor
.
setContent
(
""
),
admin
.
editors
.
articleEditor
.
setContent
(
""
),
$
(
"
#loadMsg
"
).
text
(
""
),
$
(
"
#tipMsg
"
).
text
(
Label
.
uploadMsg
)}};
admin
.
comment
=
{
open
:
function
(
e
,
t
){
this
.
getList
(
e
,
t
),
$
(
"
#
"
+
t
+
"
Comments
"
).
dialog
(
"
open
"
)},
getList
:
function
(
l
,
c
){
$
(
"
#loadMsg
"
).
text
(
Label
.
loadingLabel
),
$
(
"
#tipMsg
"
).
text
(
""
),
$
(
"
#
"
+
c
+
"
Comments
"
).
html
(
""
);
var
e
=
"
article
"
;
"
page
"
===
c
&&
(
e
=
"
page
"
),
$
.
ajax
({
url
:
Label
.
servePath
+
"
/console/comments/
"
+
e
+
"
/
"
+
l
,
type
:
"
GET
"
,
cache
:
!
1
,
success
:
function
(
e
,
t
){
if
(
$
(
"
#tipMsg
"
).
text
(
e
.
msg
),
e
.
sc
){
for
(
var
a
=
e
.
comments
,
n
=
""
,
m
=
0
;
m
<
a
.
length
;
m
++
){
var
s
=
"
<a target='_blank' href='
"
+
a
[
m
].
commentURL
+
"
'>
"
,
o
=
a
[
m
].
commentContent
;
"
http://
"
===
a
[
m
].
commentURL
&&
(
s
=
"
<a target='_blank'>
"
),
n
+=
"
<div class='comment-title'><span class='fn__left'>
"
+
s
+
a
[
m
].
commentName
+
"
</a>
"
,
a
[
m
].
commentOriginalCommentName
&&
(
n
+=
"
@
"
+
a
[
m
].
commentOriginalCommentName
),
n
+=
"
</span><a title='
"
+
Label
.
removeLabel
+
"
' class='fn__right fn__pointer' href=
\"
javascript:admin.comment.del('
"
+
a
[
m
].
oId
+
"
', '
"
+
c
+
"
', '
"
+
l
+
"
')
\"
>
"
+
Label
.
removeLabel
+
"
</a><span class='fn__right'>
"
+
$
.
bowknot
.
getDate
(
a
[
m
].
commentTime
)
+
"
</span><div class='fn__clear'></div></div><div class='vditor-reset'>
"
+
o
+
"
</div>
"
}
""
===
n
&&
(
n
=
Label
.
noCommentLabel
),
$
(
"
#
"
+
c
+
"
Comments
"
).
html
(
n
),
Util
.
parseMarkdown
(),
Util
.
parseLanguage
(),
$
(
"
#loadMsg
"
).
text
(
""
)}
else
$
(
"
#loadMsg
"
).
text
(
""
)}})},
del
:
function
(
e
,
a
,
n
){
if
(
confirm
(
Label
.
confirmRemoveLabel
+
Label
.
commentLabel
+
"
?
"
)){
$
(
"
#loadMsg
"
).
text
(
Label
.
loadingLabel
);
var
t
=
"
article
"
;
"
page
"
===
a
&&
(
t
=
"
page
"
),
$
.
ajax
({
url
:
Label
.
servePath
+
"
/console/
"
+
t
+
"
/comment/
"
+
e
,
type
:
"
DELETE
"
,
cache
:
!
1
,
success
:
function
(
e
,
t
){
$
(
"
#tipMsg
"
).
text
(
e
.
msg
),
e
.
sc
&&
admin
.
comment
.
getList
(
n
,
a
),
$
(
"
#loadMsg
"
).
text
(
""
)}})}}};
admin
.
articleList
=
{
tablePagination
:
new
TablePaginate
(
"
article
"
),
init
:
function
(
t
){
this
.
tablePagination
.
buildTable
([{
text
:
Label
.
titleLabel
,
index
:
"
title
"
,
minWidth
:
110
,
style
:
"
padding-left: 12px;font-size:14px;
"
},{
text
:
Label
.
authorLabel
,
index
:
"
author
"
,
width
:
150
,
style
:
"
padding-left: 12px;
"
},{
text
:
Label
.
commentLabel
,
index
:
"
comments
"
,
width
:
80
,
style
:
"
padding-left: 12px;
"
},{
text
:
Label
.
viewLabel
,
width
:
60
,
index
:
"
articleViewCount
"
,
style
:
"
padding-left: 12px;
"
},{
text
:
Label
.
dateLabel
,
index
:
"
date
"
,
width
:
90
,
style
:
"
padding-left: 12px;
"
}]),
this
.
tablePagination
.
initPagination
(),
this
.
tablePagination
.
initCommentsDialog
(),
this
.
getList
(
t
);
var
e
=
this
;
$
(
"
#articleListBtn
"
).
click
(
function
(){
e
.
getList
(
t
)})},
syncToHacpai
:
function
(
t
){
$
.
ajax
({
url
:
Label
.
servePath
+
"
/console/article/push2rhy?id=
"
+
t
,
type
:
"
GET
"
,
cache
:
!
1
,
success
:
function
(
t
,
e
){
$
(
"
#tipMsg
"
).
text
(
Label
.
pushSuccLabel
)}})},
getList
:
function
(
c
){
var
o
=
this
;
$
(
"
#loadMsg
"
).
text
(
Label
.
loadingLabel
),
$
.
ajax
({
url
:
Label
.
servePath
+
"
/console/articles/status/published/
"
+
c
+
"
/
"
+
Label
.
PAGE_SIZE
+
"
/
"
+
Label
.
WINDOW_SIZE
+
"
?k=
"
+
$
(
"
#articleListInput
"
).
val
(),
type
:
"
GET
"
,
cache
:
!
1
,
success
:
function
(
t
,
e
){
if
(
$
(
"
#tipMsg
"
).
text
(
t
.
msg
),
t
.
sc
){
for
(
var
a
=
t
.
articles
,
i
=
[],
l
=
0
;
l
<
a
.
length
;
l
++
){
i
[
l
]
=
{},
i
[
l
].
title
=
'
<a href="
'
+
Label
.
servePath
+
a
[
l
].
articlePermalink
+
"
\"
target='_blank' title='
"
+
a
[
l
].
articleTitle
+
"
' class='no-underline'>
"
+
a
[
l
].
articleTitle
+
"
</a><span class='table-tag'>
"
+
a
[
l
].
articleTags
+
"
</span>
"
,
i
[
l
].
date
=
$
.
bowknot
.
getDate
(
a
[
l
].
articleCreateTime
),
i
[
l
].
comments
=
a
[
l
].
articleCommentCount
,
i
[
l
].
articleViewCount
=
a
[
l
].
articleViewCount
,
i
[
l
].
author
=
a
[
l
].
authorName
;
var
n
=
a
[
l
].
articlePutTop
?
Label
.
cancelPutTopLabel
:
Label
.
putTopLabel
;
i
[
l
].
expendRow
=
"
<a href='javascript:void(0)' onclick=
\"
admin.article.get('
"
+
a
[
l
].
oId
+
"
', true)
\"
>
"
+
Label
.
updateLabel
+
"
</a> <a href='javascript:void(0)' onclick=
\"
admin.article.del('
"
+
a
[
l
].
oId
+
"
', 'article', '
"
+
encodeURIComponent
(
a
[
l
].
articleTitle
)
+
"
')
\"
>
"
+
Label
.
removeLabel
+
"
</a> <a href='javascript:void(0)' onclick=
\"
admin.articleList.syncToHacpai('
"
+
a
[
l
].
oId
+
"
')
\"
>
"
+
Label
.
pushToHacpaiLabel
+
"
</a> <a href='javascript:void(0)' onclick=
\"
admin.articleList.popTop(this, '
"
+
a
[
l
].
oId
+
"
')
\"
>
"
+
n
+
"
</a> <a href='javascript:void(0)' onclick=
\"
admin.comment.open('
"
+
a
[
l
].
oId
+
"
', 'article')
\"
>
"
+
Label
.
commentLabel
+
"
</a>
"
}
o
.
tablePagination
.
updateTablePagination
(
i
,
c
,
t
.
pagination
),
$
(
"
#loadMsg
"
).
text
(
""
)}
else
$
(
"
#loadMsg
"
).
text
(
""
)}})},
popTop
:
function
(
t
,
e
){
$
(
"
#loadMsg
"
).
text
(
Label
.
loadingLabel
),
$
(
"
#tipMsg
"
).
text
(
""
);
var
a
=
$
(
t
),
i
=
"
canceltop
"
,
l
=
Label
.
putTopLabel
;
a
.
html
()
===
Label
.
putTopLabel
&&
(
i
=
"
puttop
"
,
l
=
Label
.
cancelPutTopLabel
),
$
.
ajax
({
url
:
Label
.
servePath
+
"
/console/article/
"
+
i
+
"
/
"
+
e
,
type
:
"
PUT
"
,
cache
:
!
1
,
success
:
function
(
t
,
e
){
$
(
"
#tipMsg
"
).
text
(
t
.
msg
),
t
.
sc
&&
a
.
html
(
l
),
$
(
"
#loadMsg
"
).
text
(
""
)}})}},
admin
.
register
[
"
article-list
"
]
=
{
obj
:
admin
.
articleList
,
init
:
admin
.
articleList
.
init
,
refresh
:
admin
.
articleList
.
getList
};
admin
.
draftList
=
{
tablePagination
:
new
TablePaginate
(
"
draft
"
),
init
:
function
(
t
){
this
.
tablePagination
.
buildTable
([{
text
:
Label
.
titleLabel
,
index
:
"
title
"
,
minWidth
:
110
,
style
:
"
padding-left: 12px;font-size:14px;
"
},{
text
:
Label
.
authorLabel
,
index
:
"
author
"
,
width
:
150
,
style
:
"
padding-left: 12px;
"
},{
text
:
Label
.
commentLabel
,
index
:
"
comments
"
,
width
:
80
,
style
:
"
padding-left: 12px;
"
},{
text
:
Label
.
viewLabel
,
width
:
60
,
index
:
"
articleViewCount
"
,
style
:
"
padding-left: 12px;
"
},{
text
:
Label
.
dateLabel
,
index
:
"
date
"
,
width
:
90
,
style
:
"
padding-left: 12px;
"
}]),
this
.
tablePagination
.
initPagination
(),
this
.
tablePagination
.
initCommentsDialog
(),
this
.
getList
(
t
)},
getList
:
function
(
n
){
$
(
"
#loadMsg
"
).
text
(
Label
.
loadingLabel
);
var
d
=
this
;
$
.
ajax
({
url
:
Label
.
servePath
+
"
/console/articles/status/unpublished/
"
+
n
+
"
/
"
+
Label
.
PAGE_SIZE
+
"
/
"
+
Label
.
WINDOW_SIZE
,
type
:
"
GET
"
,
cache
:
!
1
,
success
:
function
(
t
,
e
){
if
(
$
(
"
#tipMsg
"
).
text
(
t
.
msg
),
t
.
sc
){
for
(
var
a
=
t
.
articles
,
i
=
[],
l
=
0
;
l
<
a
.
length
;
l
++
)
i
[
l
]
=
{},
i
[
l
].
tags
=
a
[
l
].
articleTags
,
i
[
l
].
date
=
$
.
bowknot
.
getDate
(
a
[
l
].
articleCreateTime
),
i
[
l
].
comments
=
a
[
l
].
articleCommentCount
,
i
[
l
].
articleViewCount
=
a
[
l
].
articleViewCount
,
i
[
l
].
author
=
a
[
l
].
authorName
,
i
[
l
].
title
=
"
<a class='no-underline' href='
"
+
Label
.
servePath
+
a
[
l
].
articlePermalink
+
"
' target='_blank'>
"
+
a
[
l
].
articleTitle
+
"
</a><span class='table-tag'>
"
+
a
[
l
].
articleTags
+
"
</span>
"
,
i
[
l
].
expendRow
=
"
<a href='javascript:void(0)' onclick=
\"
admin.article.get('
"
+
a
[
l
].
oId
+
"
', false);
\"
>
"
+
Label
.
updateLabel
+
"
</a> <a href='javascript:void(0)' onclick=
\"
admin.article.del('
"
+
a
[
l
].
oId
+
"
', 'draft', '
"
+
encodeURIComponent
(
a
[
l
].
articleTitle
)
+
"
')
\"
>
"
+
Label
.
removeLabel
+
"
</a> <a href='javascript:void(0)' onclick=
\"
admin.comment.open('
"
+
a
[
l
].
oId
+
"
', 'draft')
\"
>
"
+
Label
.
commentLabel
+
"
</a>
"
;
d
.
tablePagination
.
updateTablePagination
(
i
,
n
,
t
.
pagination
),
$
(
"
#loadMsg
"
).
text
(
""
)}
else
$
(
"
#loadMsg
"
).
text
(
""
)}})}},
admin
.
register
[
"
draft-list
"
]
=
{
obj
:
admin
.
draftList
,
init
:
admin
.
draftList
.
init
,
refresh
:
admin
.
draftList
.
getList
};
...
...
src/main/webapp/js/admin/article.js
View file @
3bc97fde
...
...
@@ -20,7 +20,7 @@
*
* @author <a href="http://vanessa.b3log.org">Liyuan Li</a>
* @author <a href="http://88250.b3log.org">Liang Ding</a>
* @version 1.6.0.
4, Mar 4
, 2019
* @version 1.6.0.
5, Aug 6
, 2019
*/
admin
.
article
=
{
// 当发文章,取消发布,更新文章时设置为 false。不需在离开编辑器时进行提示。
...
...
@@ -417,14 +417,14 @@ admin.article = {
id
:
'
articleContent
'
,
height
:
500
,
fun
:
fun
,
preview
Show
:
true
,
preview
Mode
:
'
both
'
,
resize
:
false
,
})
admin
.
editors
.
abstractEditor
=
new
SoloEditor
({
id
:
'
abstract
'
,
height
:
200
,
preview
Show
:
false
,
preview
Mode
:
'
editor
'
,
resize
:
true
,
})
...
...
src/main/webapp/js/admin/editor.js
View file @
3bc97fde
...
...
@@ -19,7 +19,7 @@
* @fileoverview editor
*
* @author <a href="http://vanessa.b3log.org">Liyuan Li</a>
* @version 1.3.0.
0, Jun 1
, 2019
* @version 1.3.0.
1, Aug 6
, 2019
*/
admin
.
editors
=
{}
...
...
@@ -49,7 +49,7 @@ $.extend(SoloEditor.prototype, {
},
preview
:
{
delay
:
500
,
show
:
this
.
conf
.
previewShow
,
mode
:
this
.
conf
.
previewMode
,
url
:
Label
.
servePath
+
'
/console/markdown/2html
'
,
parse
:
function
(
element
)
{
if
(
element
.
style
.
display
===
'
none
'
)
{
...
...
src/main/webapp/js/page.js
View file @
3bc97fde
...
...
@@ -20,7 +20,7 @@
*
* @author <a href="http://vanessa.b3log.org">Liyuan Li</a>
* @author <a href="http://88250.b3log.org">Liang Ding</a>
* @version 2.4.0.
0, Jul 11
, 2019
* @version 2.4.0.
1, Aug 6
, 2019
*/
var
Page
=
function
(
tips
)
{
this
.
currentCommentId
=
''
...
...
@@ -128,6 +128,7 @@ $.extend(Page.prototype, {
'
link
'
,
'
table
'
,
'
|
'
,
'
both
'
,
'
preview
'
,
'
fullscreen
'
,
'
info
'
,
...
...
@@ -164,7 +165,7 @@ $.extend(Page.prototype, {
},
preview
:
{
delay
:
500
,
show
:
false
,
mode
:
'
editor
'
,
url
:
Label
.
servePath
+
'
/console/markdown/2html
'
,
hljs
:
{
enable
:
true
,
...
...
src/main/webapp/js/page.min.js
View file @
3bc97fde
var
Page
=
function
(
t
){
this
.
currentCommentId
=
""
,
this
.
tips
=
t
};
$
.
extend
(
Page
.
prototype
,{
share
:
function
(){
var
t
=
$
(
"
.article__share
"
);
if
(
0
!==
t
.
length
){
var
e
=
t
.
find
(
"
.item__qr
"
),
o
=
t
.
data
(
"
url
"
),
i
=
t
.
data
(
"
avatar
"
),
n
=
encodeURIComponent
(
t
.
data
(
"
title
"
)
+
"
-
"
+
t
.
data
(
"
blogtitle
"
)),
r
=
encodeURIComponent
(
o
),
l
=
{};
l
.
tencent
=
"
http://share.v.t.qq.com/index.php?c=share&a=index&title=
"
+
n
+
"
&url=
"
+
r
+
"
&pic=
"
+
i
,
l
.
weibo
=
"
http://v.t.sina.com.cn/share/share.php?title=
"
+
n
+
"
&url=
"
+
r
+
"
&pic=
"
+
i
,
l
.
qqz
=
"
https://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?url=
"
+
r
+
"
&sharesource=qzone&title=
"
+
n
+
"
&pics=
"
+
i
,
l
.
twitter
=
"
https://twitter.com/intent/tweet?status=
"
+
n
+
"
"
+
r
,
t
.
find
(
"
span
"
).
click
(
function
(){
var
t
=
$
(
this
).
data
(
"
type
"
);
if
(
t
)
return
"
wechat
"
===
t
?(
0
===
e
.
find
(
"
canvas
"
).
length
?(
Util
.
addScript
(
Label
.
staticServePath
+
"
/js/lib/jquery.qrcode.min.js
"
,
"
qrcodeScript
"
),
e
.
qrcode
({
width
:
128
,
height
:
128
,
text
:
o
})):
e
.
slideToggle
(),
!
1
):
void
window
.
open
(
l
[
t
],
"
_blank
"
,
"
top=100,left=200,width=648,height=618
"
)})}},
load
:
function
(){
var
t
=
this
;
$
(
"
#comment
"
).
click
(
function
(){
t
.
toggleEditor
()}).
attr
(
"
readonly
"
,
"
readonly
"
),
$
(
"
#soloEditorCancel
"
).
click
(
function
(){
t
.
toggleEditor
()}),
$
(
"
#soloEditorAdd
"
).
click
(
function
(){
t
.
submitComment
()})},
toggleEditor
:
function
(
t
,
e
){
var
o
=
$
(
"
#soloEditor
"
);
if
(
0
!==
o
.
length
){
if
(
!
$
(
"
#soloEditorComment
"
).
hasClass
(
"
vditor
"
)){
Util
.
addScript
(
"
https://cdn.jsdelivr.net/npm/vditor@latest/dist/index.min.js
"
,
"
vditorScript
"
);
var
i
=
[
"
emoji
"
,
"
headings
"
,
"
bold
"
,
"
italic
"
,
"
strike
"
,
"
|
"
,
"
line
"
,
"
quote
"
,
"
|
"
,
"
list
"
,
"
ordered-list
"
,
"
check
"
,
"
|
"
,
"
code
"
,
"
inline-code
"
,
"
|
"
,
"
undo
"
,
"
redo
"
,
"
|
"
,
"
link
"
,
"
table
"
,
"
|
"
,
"
preview
"
,
"
fullscreen
"
,
"
info
"
,
"
help
"
],
n
=!
0
;
$
(
window
).
width
()
<
768
&&
(
n
=!
(
i
=
[
"
emoji
"
,
"
line
"
,
"
quote
"
,
"
list
"
,
"
ordered-list
"
,
"
check
"
,
"
link
"
,
"
preview
"
,
"
info
"
,
"
help
"
])),
window
.
vditor
=
new
Vditor
(
"
soloEditorComment
"
,{
placeholder
:
this
.
tips
.
commentContentCannotEmptyLabel
,
height
:
180
,
tab
:
"
\t
"
,
hint
:{
emojiPath
:
Label
.
staticServePath
+
"
/images/emoji
"
},
esc
:
function
(){
$
(
"
#soloEditorCancel
"
).
click
()},
ctrlEnter
:
function
(){
$
(
"
#soloEditorAdd
"
).
click
()},
preview
:{
delay
:
500
,
show
:
!
1
,
url
:
Label
.
servePath
+
"
/console/markdown/2html
"
,
hljs
:{
enable
:
!
0
,
style
:
Label
.
hljsStyle
},
parse
:
function
(
t
){
"
none
"
!==
t
.
style
.
display
&&
Util
.
parseLanguage
()}},
counter
:
500
,
resize
:{
enable
:
n
,
position
:
"
top
"
},
lang
:
Label
.
langLabel
,
toolbar
:
i
}),
vditor
.
focus
()}
"
-300px
"
===
o
.
css
(
"
bottom
"
)
||
t
?(
$
(
"
#soloEditorError
"
).
text
(
""
),
$
(
window
).
width
()
<
768
?
o
.
css
({
top
:
"
0
"
,
bottom
:
"
auto
"
,
opacity
:
1
}):
o
.
css
({
bottom
:
"
0
"
,
top
:
"
auto
"
,
opacity
:
1
}),
this
.
currentCommentId
=
t
,
$
(
"
#soloEditorReplyTarget
"
).
text
(
e
?
"
@
"
+
e
:
""
),
"
undefined
"
!=
typeof
vditor
&&
vditor
.
focus
()):
o
.
css
({
bottom
:
"
-300px
"
,
top
:
"
auto
"
,
opacity
:
0
})}
else
location
.
href
=
Label
.
servePath
+
"
/start
"
},
loadRandomArticles
:
function
(
s
){
var
c
=
this
.
tips
.
randomArticles1Label
;
$
.
ajax
({
url
:
Label
.
servePath
+
"
/articles/random
"
,
type
:
"
POST
"
,
success
:
function
(
t
,
e
){
var
o
=
t
.
randomArticles
;
if
(
o
&&
0
!==
o
.
length
){
for
(
var
i
=
""
,
n
=
0
;
n
<
o
.
length
;
n
++
){
var
r
=
o
[
n
],
l
=
r
.
articleTitle
;
i
+=
"
<li><a rel='nofollow' title='
"
+
l
+
"
' href='
"
+
Label
.
servePath
+
r
.
articlePermalink
+
"
'>
"
+
l
+
"
</a></li>
"
}
var
a
=
(
s
||
"
<h4>
"
+
c
+
"
</h4>
"
)
+
"
<ul>
"
+
i
+
"
</ul>
"
;
$
(
"
#randomArticles
"
).
append
(
a
)}
else
$
(
"
#randomArticles
"
).
remove
()}})},
loadRelevantArticles
:
function
(
t
,
s
){
$
.
ajax
({
url
:
Label
.
servePath
+
"
/article/id/
"
+
t
+
"
/relevant/articles
"
,
type
:
"
GET
"
,
success
:
function
(
t
,
e
){
var
o
=
t
.
relevantArticles
;
if
(
o
&&
0
!==
o
.
length
){
for
(
var
i
=
""
,
n
=
0
;
n
<
o
.
length
;
n
++
){
var
r
=
o
[
n
],
l
=
r
.
articleTitle
;
i
+=
"
<li><a rel='nofollow' title='
"
+
l
+
"
' href='
"
+
Label
.
servePath
+
r
.
articlePermalink
+
"
'>
"
+
l
+
"
</a></li>
"
}
var
a
=
s
+
"
<ul>
"
+
i
+
"
</ul>
"
;
$
(
"
#relevantArticles
"
).
append
(
a
)}
else
$
(
"
#relevantArticles
"
).
remove
()},
error
:
function
(){
$
(
"
#relevantArticles
"
).
remove
()}})},
loadExternalRelevantArticles
:
function
(
t
,
s
){
var
c
=
this
.
tips
;
try
{
$
.
ajax
({
url
:
"
https://rhythm.b3log.org/get-articles-by-tags.do?tags=
"
+
t
+
"
&blogHost=
"
+
c
.
blogHost
+
"
&paginationPageSize=
"
+
c
.
externalRelevantArticlesDisplayCount
,
type
:
"
GET
"
,
cache
:
!
0
,
dataType
:
"
jsonp
"
,
error
:
function
(){
$
(
"
#externalRelevantArticles
"
).
remove
()},
success
:
function
(
t
,
e
){
var
o
=
t
.
articles
;
if
(
o
&&
0
!==
o
.
length
){
for
(
var
i
=
""
,
n
=
0
;
n
<
o
.
length
;
n
++
){
var
r
=
o
[
n
],
l
=
r
.
articleTitle
;
i
+=
"
<li><a rel='nofollow' title='
"
+
l
+
"
' target='_blank' href='
"
+
r
.
articlePermalink
+
"
'>
"
+
l
+
"
</a></li>
"
}
var
a
=
(
s
||
"
<h4>
"
+
c
.
externalRelevantArticles1Label
+
"
</h4>
"
)
+
"
<ul>
"
+
i
+
"
</ul>
"
;
$
(
"
#externalRelevantArticles
"
).
append
(
a
)}
else
$
(
"
#externalRelevantArticles
"
).
remove
()}})}
catch
(
t
){}},
submitComment
:
function
(){
var
e
=
this
,
t
=
this
.
tips
;
if
(
1
<
vditor
.
getValue
().
length
&&
vditor
.
getValue
().
length
<
500
){
$
(
"
#soloEditorAdd
"
).
attr
(
"
disabled
"
,
"
disabled
"
);
var
o
=
{
oId
:
t
.
oId
,
commentContent
:
vditor
.
getValue
()};
this
.
currentCommentId
&&
(
o
.
commentOriginalCommentId
=
this
.
currentCommentId
),
$
.
ajax
({
type
:
"
POST
"
,
url
:
Label
.
servePath
+
"
/article/comments
"
,
cache
:
!
1
,
contentType
:
"
application/json
"
,
data
:
JSON
.
stringify
(
o
),
success
:
function
(
t
){
$
(
"
#soloEditorAdd
"
).
removeAttr
(
"
disabled
"
),
t
.
sc
?(
e
.
toggleEditor
(),
vditor
.
setValue
(
""
),
e
.
addCommentAjax
(
t
.
cmtTpl
)):
$
(
"
#soloEditorError
"
).
html
(
t
.
msg
)}})}
else
$
(
"
#soloEditorError
"
).
text
(
e
.
tips
.
commentContentCannotEmptyLabel
)},
addReplyForm
:
function
(
t
,
e
){
this
.
currentCommentId
=
t
,
this
.
toggleEditor
(
t
,
e
)},
hideComment
:
function
(
t
){
$
(
"
#commentRef
"
+
t
).
hide
()},
showComment
:
function
(
t
,
e
,
o
,
i
){
var
n
=
parseInt
(
$
(
t
).
position
().
top
);
if
(
i
&&
(
n
=
parseInt
(
$
(
t
).
parents
(
i
).
position
().
top
)),
0
<
$
(
"
#commentRef
"
+
e
).
length
)
$
(
"
#commentRef
"
+
e
).
show
().
css
(
"
top
"
,
n
+
o
+
"
px
"
);
else
{
var
r
=
$
(
"
#
"
+
e
).
clone
();
r
.
addClass
(
"
comment-body-ref
"
).
attr
(
"
id
"
,
"
commentRef
"
+
e
),
r
.
find
(
"
#replyForm
"
).
remove
(),
$
(
"
#comments
"
).
append
(
r
),
$
(
"
#commentRef
"
+
e
).
css
(
"
top
"
,
n
+
o
+
"
px
"
)}},
addCommentAjax
:
function
(
t
){
0
<
$
(
"
#comments
"
).
children
().
length
?
$
(
$
(
"
#comments
"
).
children
()[
0
]).
before
(
t
):
$
(
"
#comments
"
).
html
(
t
),
Util
.
parseMarkdown
(),
Util
.
parseLanguage
(),
window
.
location
.
hash
=
"
#comments
"
}});
\ No newline at end of file
var
Page
=
function
(
t
){
this
.
currentCommentId
=
""
,
this
.
tips
=
t
};
$
.
extend
(
Page
.
prototype
,{
share
:
function
(){
var
t
=
$
(
"
.article__share
"
);
if
(
0
!==
t
.
length
){
var
e
=
t
.
find
(
"
.item__qr
"
),
o
=
t
.
data
(
"
url
"
),
i
=
t
.
data
(
"
avatar
"
),
n
=
encodeURIComponent
(
t
.
data
(
"
title
"
)
+
"
-
"
+
t
.
data
(
"
blogtitle
"
)),
r
=
encodeURIComponent
(
o
),
l
=
{};
l
.
tencent
=
"
http://share.v.t.qq.com/index.php?c=share&a=index&title=
"
+
n
+
"
&url=
"
+
r
+
"
&pic=
"
+
i
,
l
.
weibo
=
"
http://v.t.sina.com.cn/share/share.php?title=
"
+
n
+
"
&url=
"
+
r
+
"
&pic=
"
+
i
,
l
.
qqz
=
"
https://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?url=
"
+
r
+
"
&sharesource=qzone&title=
"
+
n
+
"
&pics=
"
+
i
,
l
.
twitter
=
"
https://twitter.com/intent/tweet?status=
"
+
n
+
"
"
+
r
,
t
.
find
(
"
span
"
).
click
(
function
(){
var
t
=
$
(
this
).
data
(
"
type
"
);
if
(
t
)
return
"
wechat
"
===
t
?(
0
===
e
.
find
(
"
canvas
"
).
length
?(
Util
.
addScript
(
Label
.
staticServePath
+
"
/js/lib/jquery.qrcode.min.js
"
,
"
qrcodeScript
"
),
e
.
qrcode
({
width
:
128
,
height
:
128
,
text
:
o
})):
e
.
slideToggle
(),
!
1
):
void
window
.
open
(
l
[
t
],
"
_blank
"
,
"
top=100,left=200,width=648,height=618
"
)})}},
load
:
function
(){
var
t
=
this
;
$
(
"
#comment
"
).
click
(
function
(){
t
.
toggleEditor
()}).
attr
(
"
readonly
"
,
"
readonly
"
),
$
(
"
#soloEditorCancel
"
).
click
(
function
(){
t
.
toggleEditor
()}),
$
(
"
#soloEditorAdd
"
).
click
(
function
(){
t
.
submitComment
()})},
toggleEditor
:
function
(
t
,
e
){
var
o
=
$
(
"
#soloEditor
"
);
if
(
0
!==
o
.
length
){
if
(
!
$
(
"
#soloEditorComment
"
).
hasClass
(
"
vditor
"
)){
Util
.
addScript
(
"
https://cdn.jsdelivr.net/npm/vditor@latest/dist/index.min.js
"
,
"
vditorScript
"
);
var
i
=
[
"
emoji
"
,
"
headings
"
,
"
bold
"
,
"
italic
"
,
"
strike
"
,
"
|
"
,
"
line
"
,
"
quote
"
,
"
|
"
,
"
list
"
,
"
ordered-list
"
,
"
check
"
,
"
|
"
,
"
code
"
,
"
inline-code
"
,
"
|
"
,
"
undo
"
,
"
redo
"
,
"
|
"
,
"
link
"
,
"
table
"
,
"
|
"
,
"
both
"
,
"
preview
"
,
"
fullscreen
"
,
"
info
"
,
"
help
"
],
n
=!
0
;
$
(
window
).
width
()
<
768
&&
(
n
=!
(
i
=
[
"
emoji
"
,
"
line
"
,
"
quote
"
,
"
list
"
,
"
ordered-list
"
,
"
check
"
,
"
link
"
,
"
preview
"
,
"
info
"
,
"
help
"
])),
window
.
vditor
=
new
Vditor
(
"
soloEditorComment
"
,{
placeholder
:
this
.
tips
.
commentContentCannotEmptyLabel
,
height
:
180
,
tab
:
"
\t
"
,
hint
:{
emojiPath
:
Label
.
staticServePath
+
"
/images/emoji
"
},
esc
:
function
(){
$
(
"
#soloEditorCancel
"
).
click
()},
ctrlEnter
:
function
(){
$
(
"
#soloEditorAdd
"
).
click
()},
preview
:{
delay
:
500
,
mode
:
"
editor
"
,
url
:
Label
.
servePath
+
"
/console/markdown/2html
"
,
hljs
:{
enable
:
!
0
,
style
:
Label
.
hljsStyle
},
parse
:
function
(
t
){
"
none
"
!==
t
.
style
.
display
&&
Util
.
parseLanguage
()}},
counter
:
500
,
resize
:{
enable
:
n
,
position
:
"
top
"
},
lang
:
Label
.
langLabel
,
toolbar
:
i
}),
vditor
.
focus
()}
"
-300px
"
===
o
.
css
(
"
bottom
"
)
||
t
?(
$
(
"
#soloEditorError
"
).
text
(
""
),
$
(
window
).
width
()
<
768
?
o
.
css
({
top
:
"
0
"
,
bottom
:
"
auto
"
,
opacity
:
1
}):
o
.
css
({
bottom
:
"
0
"
,
top
:
"
auto
"
,
opacity
:
1
}),
this
.
currentCommentId
=
t
,
$
(
"
#soloEditorReplyTarget
"
).
text
(
e
?
"
@
"
+
e
:
""
),
"
undefined
"
!=
typeof
vditor
&&
vditor
.
focus
()):
o
.
css
({
bottom
:
"
-300px
"
,
top
:
"
auto
"
,
opacity
:
0
})}
else
location
.
href
=
Label
.
servePath
+
"
/start
"
},
loadRandomArticles
:
function
(
s
){
var
c
=
this
.
tips
.
randomArticles1Label
;
$
.
ajax
({
url
:
Label
.
servePath
+
"
/articles/random
"
,
type
:
"
POST
"
,
success
:
function
(
t
,
e
){
var
o
=
t
.
randomArticles
;
if
(
o
&&
0
!==
o
.
length
){
for
(
var
i
=
""
,
n
=
0
;
n
<
o
.
length
;
n
++
){
var
r
=
o
[
n
],
l
=
r
.
articleTitle
;
i
+=
"
<li><a rel='nofollow' title='
"
+
l
+
"
' href='
"
+
Label
.
servePath
+
r
.
articlePermalink
+
"
'>
"
+
l
+
"
</a></li>
"
}
var
a
=
(
s
||
"
<h4>
"
+
c
+
"
</h4>
"
)
+
"
<ul>
"
+
i
+
"
</ul>
"
;
$
(
"
#randomArticles
"
).
append
(
a
)}
else
$
(
"
#randomArticles
"
).
remove
()}})},
loadRelevantArticles
:
function
(
t
,
s
){
$
.
ajax
({
url
:
Label
.
servePath
+
"
/article/id/
"
+
t
+
"
/relevant/articles
"
,
type
:
"
GET
"
,
success
:
function
(
t
,
e
){
var
o
=
t
.
relevantArticles
;
if
(
o
&&
0
!==
o
.
length
){
for
(
var
i
=
""
,
n
=
0
;
n
<
o
.
length
;
n
++
){
var
r
=
o
[
n
],
l
=
r
.
articleTitle
;
i
+=
"
<li><a rel='nofollow' title='
"
+
l
+
"
' href='
"
+
Label
.
servePath
+
r
.
articlePermalink
+
"
'>
"
+
l
+
"
</a></li>
"
}
var
a
=
s
+
"
<ul>
"
+
i
+
"
</ul>
"
;
$
(
"
#relevantArticles
"
).
append
(
a
)}
else
$
(
"
#relevantArticles
"
).
remove
()},
error
:
function
(){
$
(
"
#relevantArticles
"
).
remove
()}})},
loadExternalRelevantArticles
:
function
(
t
,
s
){
var
c
=
this
.
tips
;
try
{
$
.
ajax
({
url
:
"
https://rhythm.b3log.org/get-articles-by-tags.do?tags=
"
+
t
+
"
&blogHost=
"
+
c
.
blogHost
+
"
&paginationPageSize=
"
+
c
.
externalRelevantArticlesDisplayCount
,
type
:
"
GET
"
,
cache
:
!
0
,
dataType
:
"
jsonp
"
,
error
:
function
(){
$
(
"
#externalRelevantArticles
"
).
remove
()},
success
:
function
(
t
,
e
){
var
o
=
t
.
articles
;
if
(
o
&&
0
!==
o
.
length
){
for
(
var
i
=
""
,
n
=
0
;
n
<
o
.
length
;
n
++
){
var
r
=
o
[
n
],
l
=
r
.
articleTitle
;
i
+=
"
<li><a rel='nofollow' title='
"
+
l
+
"
' target='_blank' href='
"
+
r
.
articlePermalink
+
"
'>
"
+
l
+
"
</a></li>
"
}
var
a
=
(
s
||
"
<h4>
"
+
c
.
externalRelevantArticles1Label
+
"
</h4>
"
)
+
"
<ul>
"
+
i
+
"
</ul>
"
;
$
(
"
#externalRelevantArticles
"
).
append
(
a
)}
else
$
(
"
#externalRelevantArticles
"
).
remove
()}})}
catch
(
t
){}},
submitComment
:
function
(){
var
e
=
this
,
t
=
this
.
tips
;
if
(
1
<
vditor
.
getValue
().
length
&&
vditor
.
getValue
().
length
<
500
){
$
(
"
#soloEditorAdd
"
).
attr
(
"
disabled
"
,
"
disabled
"
);
var
o
=
{
oId
:
t
.
oId
,
commentContent
:
vditor
.
getValue
()};
this
.
currentCommentId
&&
(
o
.
commentOriginalCommentId
=
this
.
currentCommentId
),
$
.
ajax
({
type
:
"
POST
"
,
url
:
Label
.
servePath
+
"
/article/comments
"
,
cache
:
!
1
,
contentType
:
"
application/json
"
,
data
:
JSON
.
stringify
(
o
),
success
:
function
(
t
){
$
(
"
#soloEditorAdd
"
).
removeAttr
(
"
disabled
"
),
t
.
sc
?(
e
.
toggleEditor
(),
vditor
.
setValue
(
""
),
e
.
addCommentAjax
(
t
.
cmtTpl
)):
$
(
"
#soloEditorError
"
).
html
(
t
.
msg
)}})}
else
$
(
"
#soloEditorError
"
).
text
(
e
.
tips
.
commentContentCannotEmptyLabel
)},
addReplyForm
:
function
(
t
,
e
){
this
.
currentCommentId
=
t
,
this
.
toggleEditor
(
t
,
e
)},
hideComment
:
function
(
t
){
$
(
"
#commentRef
"
+
t
).
hide
()},
showComment
:
function
(
t
,
e
,
o
,
i
){
var
n
=
parseInt
(
$
(
t
).
position
().
top
);
if
(
i
&&
(
n
=
parseInt
(
$
(
t
).
parents
(
i
).
position
().
top
)),
0
<
$
(
"
#commentRef
"
+
e
).
length
)
$
(
"
#commentRef
"
+
e
).
show
().
css
(
"
top
"
,
n
+
o
+
"
px
"
);
else
{
var
r
=
$
(
"
#
"
+
e
).
clone
();
r
.
addClass
(
"
comment-body-ref
"
).
attr
(
"
id
"
,
"
commentRef
"
+
e
),
r
.
find
(
"
#replyForm
"
).
remove
(),
$
(
"
#comments
"
).
append
(
r
),
$
(
"
#commentRef
"
+
e
).
css
(
"
top
"
,
n
+
o
+
"
px
"
)}},
addCommentAjax
:
function
(
t
){
0
<
$
(
"
#comments
"
).
children
().
length
?
$
(
$
(
"
#comments
"
).
children
()[
0
]).
before
(
t
):
$
(
"
#comments
"
).
html
(
t
),
Util
.
parseMarkdown
(),
Util
.
parseLanguage
(),
window
.
location
.
hash
=
"
#comments
"
}});
\ No newline at end of file
src/main/webapp/scss/admin.css
View file @
3bc97fde
html
{
-webkit-text-size-adjust
:
100%
;
-ms-text-size-adjust
:
100%
;
height
:
100%
}
body
{
margin
:
0
;
font-family
:
"Helvetica Neue"
,
"Luxi Sans"
,
"DejaVu Sans"
,
Tahoma
,
"Hiragino Sans GB"
,
"Microsoft Yahei"
,
sans-serif
;
font-size
:
14px
;
background-color
:
#fff
;
-webkit-font-smoothing
:
antialiased
;
-webkit-overflow-scrolling
:
touch
}
::-moz-selection
{
text-shadow
:
none
;
background
:
rgba
(
65
,
131
,
196
,
0.4
)}
::selection
{
text-shadow
:
none
;
background
:
rgba
(
66
,
133
,
244
,
0.4
)}
ul
,
ol
{
margin
:
0
;
padding
:
0
}
h1
,
h2
,
h3
,
h4
,
h5
,
h6
,
dl
,
dd
,
p
{
margin
:
0
}
article
,
aside
,
details
,
figcaption
,
figure
,
footer
,
header
,
hgroup
,
nav
,
section
{
display
:
block
}
audio
,
canvas
,
video
{
display
:
inline-block
}
audio
:not
([
controls
])
{
display
:
none
}
a
{
outline
:
0
;
text-decoration
:
none
}
a
:hover
{
text-decoration
:
underline
}
sub
,
sup
{
position
:
relative
;
font-size
:
75%
;
line-height
:
0
;
vertical-align
:
baseline
}
sup
{
top
:
-0.5em
}
sub
{
bottom
:
-0.25em
}
img
{
max-width
:
100%
;
vertical-align
:
middle
;
border
:
0
;
height
:
auto
;
-ms-interpolation-mode
:
bicubic
;
overflow
:
hidden
;
font-size
:
12px
}
button
,
input
,
select
,
textarea
{
margin
:
0
;
font-size
:
100%
;
vertical-align
:
middle
;
font-family
:
"Helvetica Neue"
,
"Luxi Sans"
,
"DejaVu Sans"
,
Tahoma
,
"Hiragino Sans GB"
,
"Microsoft Yahei"
,
sans-serif
;
outline
:
none
}
button
,
input
{
line-height
:
normal
}
button
::-moz-focus-inner
,
input
::-moz-focus-inner
{
padding
:
0
;
border
:
0
}
button
,
input
[
type
=
"button"
],
input
[
type
=
"reset"
],
input
[
type
=
"submit"
]
{
cursor
:
pointer
;
-webkit-appearance
:
button
}
input
[
type
=
"search"
]
{
box-sizing
:
content-box
;
-webkit-appearance
:
textfield
}
input
[
type
=
"search"
]
::-webkit-search-decoration
,
input
[
type
=
"search"
]
::-webkit-search-cancel-button
{
-webkit-appearance
:
none
}
textarea
{
overflow
:
auto
;
resize
:
vertical
}
svg
{
fill
:
currentColor
;
display
:
inline-block
;
stroke-width
:
0
;
stroke
:
currentColor
;
width
:
14px
;
height
:
14px
}
blockquote
{
margin
:
0
}
.fn__flex
{
display
:
flex
}
.fn__flex-center
{
align-self
:
center
}
.fn__flex-inline
{
display
:
inline-flex
;
align-items
:
center
}
.fn__flex-1
{
flex
:
1
;
min-width
:
1px
}
.fn__flex-column
{
min-height
:
100%
;
display
:
flex
;
flex-direction
:
column
}
.fn__pointer
{
cursor
:
pointer
}
.fn__clear
:before
,
.fn__clear
:after
{
display
:
table
;
content
:
""
}
.fn__clear
:after
{
clear
:
both
}
.fn__left
{
float
:
left
}
.fn__right
{
float
:
right
}
.fn__none
{
display
:
none
}
.fn__hidden
{
visibility
:
hidden
}
.fn__ellipsis
{
overflow
:
hidden
;
text-overflow
:
ellipsis
;
white-space
:
nowrap
;
word-wrap
:
normal
}
.ft__13
{
font-size
:
13px
}
.ft__smaller
{
font-size
:
12px
}
.ft__center
{
text-align
:
center
}
.ft__nowrap
{
white-space
:
nowrap
}
@keyframes
tooltip-appear
{
from
{
opacity
:
0
}
to
{
opacity
:
1
}}
.vditor-tooltipped
{
position
:
relative
;
cursor
:
pointer
}
.vditor-tooltipped
::after
{
position
:
absolute
;
z-index
:
1000000
;
display
:
none
;
padding
:
5px
8px
;
font-size
:
11px
;
font-weight
:
normal
;
-webkit-font-smoothing
:
subpixel-antialiased
;
color
:
#fff
;
text-align
:
center
;
text-decoration
:
none
;
text-shadow
:
none
;
text-transform
:
none
;
letter-spacing
:
normal
;
word-wrap
:
break-word
;
white-space
:
pre
;
pointer-events
:
none
;
content
:
attr
(
aria-label
);
background
:
rgba
(
0
,
0
,
0
,
0.8
);
border-radius
:
3px
;
line-height
:
16px
;
opacity
:
0
}
.vditor-tooltipped
::before
{
position
:
absolute
;
z-index
:
1000001
;
display
:
none
;
width
:
0
;
height
:
0
;
color
:
rgba
(
0
,
0
,
0
,
0.8
);
pointer-events
:
none
;
content
:
""
;
border
:
5px
solid
transparent
;
opacity
:
0
}
.vditor-tooltipped--hover
::before
,
.vditor-tooltipped--hover
::after
,
.vditor-tooltipped
:hover::before
,
.vditor-tooltipped
:hover::after
,
.vditor-tooltipped
:active::before
,
.vditor-tooltipped
:active::after
,
.vditor-tooltipped
:focus::before
,
.vditor-tooltipped
:focus::after
{
display
:
inline-block
;
text-decoration
:
none
;
animation-name
:
tooltip-appear
;
animation-duration
:
0.1
s
;
animation-fill-mode
:
forwards
;
animation-timing-function
:
ease-in
;
animation-delay
:
0.4s
}
.vditor-tooltipped__s
::after
,
.vditor-tooltipped__se
::after
,
.vditor-tooltipped__sw
::after
{
top
:
100%
;
right
:
50%
;
margin-top
:
5px
}
.vditor-tooltipped__s
::before
,
.vditor-tooltipped__se
::before
,
.vditor-tooltipped__sw
::before
{
top
:
auto
;
right
:
50%
;
bottom
:
-5px
;
margin-right
:
-5px
;
border-bottom-color
:
rgba
(
0
,
0
,
0
,
0.8
)}
.vditor-tooltipped__se
::after
{
right
:
auto
;
left
:
50%
;
margin-left
:
-15px
}
.vditor-tooltipped__sw
::after
{
margin-right
:
-15px
}
.vditor-tooltipped__n
::after
,
.vditor-tooltipped__ne
::after
,
.vditor-tooltipped__nw
::after
{
right
:
50%
;
bottom
:
100%
;
margin-bottom
:
5px
}
.vditor-tooltipped__n
::before
,
.vditor-tooltipped__ne
::before
,
.vditor-tooltipped__nw
::before
{
top
:
-5px
;
right
:
50%
;
bottom
:
auto
;
margin-right
:
-5px
;
border-top-color
:
rgba
(
0
,
0
,
0
,
0.8
)}
.vditor-tooltipped__ne
::after
{
right
:
auto
;
left
:
50%
;
margin-left
:
-15px
}
.vditor-tooltipped__nw
::after
{
margin-right
:
-15px
}
.vditor-tooltipped__s
::after
,
.vditor-tooltipped__n
::after
{
transform
:
translateX
(
50%
)}
.vditor-tooltipped__w
::after
{
right
:
100%
;
bottom
:
50%
;
margin-right
:
5px
;
transform
:
translateY
(
50%
)}
.vditor-tooltipped__w
::before
{
top
:
50%
;
bottom
:
50%
;
left
:
-5px
;
margin-top
:
-5px
;
border-left-color
:
rgba
(
0
,
0
,
0
,
0.8
)}
.vditor-tooltipped__e
::after
{
bottom
:
50%
;
left
:
100%
;
margin-left
:
5px
;
transform
:
translateY
(
50%
)}
.vditor-tooltipped__e
::before
{
top
:
50%
;
right
:
-5px
;
bottom
:
50%
;
margin-top
:
-5px
;
border-right-color
:
rgba
(
0
,
0
,
0
,
0.8
)}
@keyframes
scale-in
{
0
%
{
opacity
:
0
;
transform
:
scale
(
0.5
)}
100
%
{
opacity
:
1
;
transform
:
scale
(
1
)}}
.vditor-panel
{
background-color
:
#fff
;
position
:
absolute
;
box-shadow
:
0
1px
2px
rgba
(
0
,
0
,
0
,
0.2
);
border-radius
:
3px
;
padding
:
5px
;
z-index
:
1
;
font-size
:
14px
;
display
:
none
;
user-select
:
none
;
max-width
:
320px
;
min-width
:
80px
;
animation-duration
:
.15s
;
animation-name
:
scale-in
;
animation-timing-function
:
cubic-bezier
(
0.2
,
0
,
0.13
,
1.5
)}
.vditor-panel
h1
,
.vditor-panel
h2
,
.vditor-panel
h3
,
.vditor-panel
h4
,
.vditor-panel
h5
,
.vditor-panel
h6
{
margin
:
0
;
cursor
:
pointer
;
padding
:
3px
10px
;
border-radius
:
3px
;
line-height
:
normal
}
.vditor-panel
h1
:hover
,
.vditor-panel
h2
:hover
,
.vditor-panel
h3
:hover
,
.vditor-panel
h4
:hover
,
.vditor-panel
h5
:hover
,
.vditor-panel
h6
:hover
{
background-color
:
#4285f4
;
color
:
#fff
}
.vditor-toolbar
{
background-color
:
#f6f8fa
;
border-bottom
:
1px
solid
#d1d5da
;
padding
:
0
5px
;
border-radius
:
3px
3px
0
0
}
.vditor-toolbar
>
div
{
padding
:
10px
5px
;
float
:
left
;
line-height
:
14px
;
height
:
36px
;
box-sizing
:
border-box
}
.vditor-toolbar
svg
{
fill
:
currentColor
;
display
:
inline-block
;
stroke-width
:
0
;
stroke
:
currentColor
;
width
:
14px
;
height
:
14px
}
.vditor-toolbar
.vditor-tooltipped
{
color
:
#586069
}
.vditor-toolbar
.vditor-tooltipped
:hover
{
color
:
#4285f4
}
.vditor-toolbar
label
{
overflow
:
hidden
;
position
:
relative
;
height
:
14px
;
width
:
15px
;
display
:
block
;
cursor
:
pointer
}
.vditor-toolbar
label
svg
{
position
:
absolute
;
top
:
0
;
left
:
0
}
.vditor-toolbar
label
input
{
position
:
absolute
;
width
:
15px
;
height
:
15px
;
top
:
0
;
left
:
0
;
opacity
:
.001
;
overflow
:
hidden
}
.vditor-menu--current
svg
{
color
:
#4285f4
}
.vditor-menu__divider
{
width
:
10px
}
.vditor-menu__br
{
width
:
100%
;
padding
:
0
!important
;
height
:
0
!important
}
.vditor-emojis
{
display
:
inline-block
;
overflow
:
auto
}
.vditor-emojis
::-webkit-scrollbar
{
display
:
none
}
.vditor-emojis__tip
{
flex
:
1
;
width
:
200px
;
margin-right
:
10px
;
color
:
#586069
;
white-space
:
nowrap
;
text-overflow
:
ellipsis
;
overflow
:
hidden
}
.vditor-emojis__tail
{
margin-top
:
5px
;
font-size
:
12px
;
color
:
#586069
;
display
:
flex
}
.vditor-emojis__tail
a
{
text-decoration
:
none
;
color
:
#586069
}
.vditor-emojis__tail
a
:hover
{
color
:
#4285f4
}
.vditor-emojis
span
{
cursor
:
pointer
;
border-radius
:
3px
;
float
:
left
;
height
:
30px
;
width
:
30px
;
text-align
:
center
;
line-height
:
26px
;
padding
:
3px
;
box-sizing
:
border-box
;
font-size
:
16px
;
transition
:
all
0.15s
ease-in-out
}
.vditor-emojis
span
:hover
{
transform
:
scale
(
1.2
)}
.vditor-emojis
img
{
height
:
20px
;
width
:
20px
;
float
:
left
;
margin
:
3px
0
0
3px
}
.vditor
{
display
:
flex
;
flex-direction
:
column
;
border
:
1px
solid
#d1d5da
;
border-radius
:
3px
;
box-sizing
:
border-box
}
.vditor--fullscreen
{
position
:
fixed
;
top
:
0
;
width
:
100%
!important
;
left
:
0
;
height
:
100vh
!important
;
z-index
:
90
;
background-color
:
#fff
}
.vditor-content
{
display
:
flex
;
min-height
:
60px
;
flex
:
1
;
position
:
relative
}
.vditor-textarea
{
height
:
100%
;
overflow
:
auto
;
width
:
100%
;
flex
:
1
;
border
:
0
;
resize
:
none
;
padding
:
10px
;
box-sizing
:
border-box
;
background-color
:
#fafbfc
;
outline
:
0
none
;
font-size
:
16px
;
line-height
:
22px
;
color
:
#24292e
;
border-radius
:
0
0
3px
3px
}
.vditor-textarea
[
disabled
]
{
opacity
:
0.3
;
cursor
:
not-allowed
}
.vditor-textarea
:focus
{
background-color
:
#fff
}
.vditor-textarea
:empty::before
{
content
:
attr
(
placeholder
);
color
:
rgba
(
36
,
41
,
46
,
0.68
)}
.vditor-preview
{
flex
:
1
;
background-color
:
#fff
;
overflow
:
auto
;
padding
:
10px
;
box-shadow
:
inset
1px
0
#d1d5da
;
box-sizing
:
border-box
;
border-radius
:
0
0
3px
0
}
.vditor-preview
::-webkit-scrollbar
{
display
:
none
}
.vditor-counter
{
padding
:
0
3px
;
position
:
absolute
;
bottom
:
10px
;
right
:
20px
;
color
:
#24292e
;
background-color
:
rgba
(
255
,
255
,
255
,
0.6
);
border-radius
:
3px
;
font-size
:
12px
;
user-select
:
none
}
.vditor-counter--error
{
color
:
#d23f31
;
background-color
:
rgba
(
210
,
63
,
49
,
0.1
)}
.vditor-resize
{
padding
:
1px
0
;
border-radius
:
5px
;
cursor
:
row-resize
;
transition
:
all
0.15s
ease-in-out
;
user-select
:
none
;
background-color
:
#f6f8fa
}
.vditor-resize
:hover
{
background-color
:
#4285f4
}
.vditor-resize
:hover
svg
{
color
:
#fff
}
.vditor-resize
svg
{
fill
:
currentColor
;
stroke-width
:
0
;
stroke
:
currentColor
;
width
:
13px
;
height
:
3px
;
display
:
block
;
margin
:
0
auto
;
color
:
#586069
}
.vditor-upload
{
opacity
:
0
;
position
:
absolute
;
width
:
100%
;
height
:
5px
;
left
:
0
;
top
:
-3px
;
border-radius
:
3px
;
overflow
:
hidden
;
transition
:
all
0.15s
ease-in-out
;
color
:
#fff
;
font-size
:
12px
;
line-height
:
14px
}
.vditor-upload
ul
{
margin
:
0
}
.vditor-upload--tip
{
height
:
auto
;
opacity
:
1
!important
}
.vditor-upload--tip
.vditor-upload__close
{
display
:
block
}
.vditor-upload__close
{
display
:
none
;
position
:
absolute
;
right
:
5px
;
cursor
:
pointer
;
padding
:
5px
;
top
:
0
}
.vditor-upload__progress
{
height
:
100%
;
background-color
:
rgba
(
66
,
133
,
244
,
0.8
);
transition
:
all
0.15s
ease-in-out
;
padding
:
5px
;
box-sizing
:
border-box
}
.vditor-hint
{
background-color
:
#fff
;
position
:
absolute
;
box-shadow
:
0
1px
2px
rgba
(
0
,
0
,
0
,
0.2
);
border-radius
:
3px
;
padding
:
5px
0
;
z-index
:
1
;
line-height
:
20px
;
list-style
:
none
;
color
:
#24292e
;
font-size
:
12px
;
margin
:
0
;
max-width
:
200px
;
min-width
:
80px
;
display
:
none
}
.vditor-hint
li
{
cursor
:
pointer
;
padding
:
3px
10px
;
border-bottom
:
1px
solid
#d1d5da
;
line-height
:
20px
}
.vditor-hint
li
:last-child
{
border-bottom
:
0
}
.vditor-hint--current
,
.vditor-hint
li
:hover
{
background-color
:
#4285f4
;
color
:
#fff
}
.vditor-hint__emoji
{
font-size
:
16px
;
float
:
left
;
margin-right
:
3px
}
.vditor-hint
img
{
height
:
20px
;
width
:
20px
;
float
:
left
;
margin-right
:
3px
}
.vditor-reset
{
font-family
:
"Helvetica Neue"
,
"Luxi Sans"
,
"DejaVu Sans"
,
Tahoma
,
"Hiragino Sans GB"
,
"Microsoft Yahei"
,
sans-serif
;
word-wrap
:
break-word
;
overflow
:
auto
;
line-height
:
1.65
;
font-size
:
16px
;
word-break
:
break-word
}
.vditor-reset
ul
ul
ul
{
list-style-type
:
square
}
.vditor-reset
ul
ul
{
list-style-type
:
circle
}
.vditor-reset
ul
{
list-style-type
:
disc
}
.vditor-reset
ul
,
.vditor-reset
ol
{
padding-left
:
2em
;
margin-top
:
0
;
margin-bottom
:
16px
}
.vditor-reset
li
{
margin-top
:
0.25em
}
.vditor-reset
audio
{
max-width
:
100%
}
.vditor-reset
video
{
max-height
:
90vh
}
.vditor-reset
img
.emoji
{
cursor
:
auto
;
max-width
:
20px
;
vertical-align
:
sub
}
.vditor-reset
h1
,
.vditor-reset
h2
,
.vditor-reset
h3
,
.vditor-reset
h4
,
.vditor-reset
h5
,
.vditor-reset
h6
{
margin-top
:
24px
;
margin-bottom
:
16px
;
font-weight
:
600
;
line-height
:
1.25
}
.vditor-reset
h1
{
padding-bottom
:
0.3em
;
font-size
:
1.7em
;
border-bottom
:
1px
solid
#eee
}
.vditor-reset
h2
{
padding-bottom
:
0.3em
;
font-size
:
1.5em
;
border-bottom
:
1px
solid
#eee
}
.vditor-reset
h3
{
font-size
:
1.25em
}
.vditor-reset
h4
{
font-size
:
1em
}
.vditor-reset
h5
{
font-size
:
0.875em
}
.vditor-reset
h6
{
font-size
:
0.85em
}
.vditor-reset
hr
{
height
:
2px
;
padding
:
0
;
margin
:
24px
0
;
background-color
:
#e7e7e7
;
border
:
0
}
.vditor-reset
p
{
margin-top
:
0
;
margin-bottom
:
16px
}
.vditor-reset
blockquote
{
padding
:
0
1em
;
color
:
#777
;
border-left
:
0.25em
solid
#ddd
;
margin
:
0
0
16px
0
}
.vditor-reset
blockquote
p
{
margin
:
0
}
.vditor-reset
ins
>
iframe
{
border
:
0
}
.vditor-reset
iframe
{
border
:
1px
solid
#d1d5da
;
max-width
:
100%
;
box-sizing
:
border-box
}
.vditor-reset
table
{
width
:
100%
;
border
:
1px
solid
#dedede
;
margin
:
15px
auto
;
border-collapse
:
collapse
;
empty-cells
:
show
}
.vditor-reset
thead
{
text-align
:
center
}
.vditor-reset
td
,
.vditor-reset
th
{
height
:
35px
;
border
:
1px
solid
#dedede
;
padding
:
0
10px
}
.vditor-reset
th
{
font-weight
:
bold
;
text-align
:
center
!important
;
background
:
rgba
(
158
,
188
,
226
,
0.2
)}
.vditor-reset
tbody
tr
:nth-child
(
2n
)
{
background
:
rgba
(
158
,
188
,
226
,
0.12
)}
.vditor-reset
tr
:hover
{
background
:
#efefef
}
.vditor-reset
code
{
padding
:
0.2em
0.4em
;
margin
:
0
;
font-size
:
85%
;
border-radius
:
3px
;
font-family
:
mononoki
,
Consolas
,
"Liberation Mono"
,
Menlo
,
Courier
,
monospace
;
word-break
:
break-word
;
background-size
:
20px
20px
;
background-image
:
url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8AgMAAABHkjHhAAAACVBMVEWAgIBaWlo+Pj7rTFvWAAAAA3RSTlMHCAw+VhR4AAAA+klEQVQoz4WSMW7EQAhFPxKWNh2FCx+HkaZI6RRb5DYbyVfIJXLKDCFoMbaTKSw/8ZnPAPjaH2xgZcUNUDADD7D9LtDBCLZ45fbkvo/30K8yeI64pPwl6znd/3n/Oe93P3ho9qeh72btTFzqkz0rsJle8Zr81OLEwZ1dv/713uWqvu2pl+k0fy7MWtj9r/tN5q/02z89qa/L4Dc2LvM93kezPfXlME/O86EbY/V9GB9ePX8G1/6W+/9h1dq/HGfTfzT3j/xNo7522Bfnqe5jO/fvhVthlfk434v3iO9zG/UOphyPeinPl1J8Gtaa7xPTa/Dk+RIs4deMvwGvcGsmsCvJ0AAAAABJRU5ErkJggg==)
}
.vditor-reset
pre
>
code
{
padding
:
0.5em
;
border-radius
:
5px
;
display
:
block
;
overflow
:
auto
}
.vditor-reset
pre
:hover
div
.vditor-copy
{
display
:
block
}
.vditor-reset
kbd
{
display
:
inline-block
;
padding
:
3px
5px
;
font
:
11px
Consolas
,
"Liberation Mono"
,
Menlo
,
Courier
,
monospace
;
line-height
:
10px
;
color
:
#555
;
vertical-align
:
middle
;
background-color
:
#fcfcfc
;
border
:
solid
1px
#d1d5da
;
border-bottom-color
:
#bbb
;
border-radius
:
3px
;
box-shadow
:
inset
0
-1px
0
#bbb
}
.vditor-reset
summary
{
cursor
:
pointer
}
.vditor-reset
summary
:focus
{
outline
:
none
}
.vditor-reset
svg
{
height
:
auto
;
width
:
auto
}
.vditor-reset
p
:last-child
,
.vditor-reset
blockquote
:last-child
,
.vditor-reset
pre
:last-child
,
.vditor-reset
ul
:last-child
,
.vditor-reset
ol
:last-child
,
.vditor-reset
hr
:last-child
{
margin-bottom
:
0
}
.vditor-reset
.katex
{
position
:
relative
}
.vditor-reset
.language-echarts
{
overflow
:
hidden
;
height
:
420px
}
.vditor-task
{
list-style
:
none
;
margin-left
:
-1.4em
;
display
:
flex
;
align-items
:
center
}
.vditor-task
input
{
margin-right
:
5px
}
.vditor-copy
{
position
:
relative
;
display
:
none
}
.vditor-copy
textarea
{
position
:
absolute
;
left
:
-100000px
}
.vditor-copy
span
{
cursor
:
pointer
;
position
:
absolute
;
right
:
0.5em
;
top
:
0.5em
;
height
:
14px
;
width
:
14px
;
display
:
block
;
background-color
:
#f6f8fa
;
border-radius
:
3px
;
padding
:
3px
}
.vditor-copy
svg
{
color
:
#586069
;
height
:
14px
;
width
:
14px
;
display
:
block
;
fill
:
currentColor
}
body
{
color
:
#767676
;
background
:
#f1f2f7
;
font-size
:
13px
}
a
{
color
:
#4183c4
;
text-decoration
:
none
}
a
:visited
{
color
:
#7ba9d6
}
a
:active
{
color
:
#2c5d8d
}
a
:hover
{
text-decoration
:
underline
}
button
,
.completed-ck
span
{
padding
:
6px
12px
;
margin-bottom
:
0
;
font-size
:
14px
;
font-weight
:
400
;
text-align
:
center
;
white-space
:
nowrap
;
vertical-align
:
baseline
;
cursor
:
pointer
;
user-select
:
none
;
background-image
:
none
;
border
:
1px
solid
#1fb5ad
;
border-radius
:
4px
;
background-color
:
#1fb5ad
;
color
:
#fff
;
height
:
auto
;
outline
:
none
;
line-height
:
18px
}
button
.small
,
.completed-ck
span
.small
{
padding
:
3px
6px
;
font-size
:
12px
}
button
:hover
{
background-color
:
#1ca59e
;
border-color
:
#1ca59e
}
.fn__margin12
{
margin
:
12px
}
@font-face
{
font-family
:
'icomoon'
;
src
:
url("fonts/icomoon.eot?pmeuih")
;
src
:
url("fonts/icomoon.eot?pmeuih#iefix")
format
(
"embedded-opentype"
),
url("fonts/icomoon.ttf?pmeuih")
format
(
"truetype"
),
url("fonts/icomoon.woff?pmeuih")
format
(
"woff"
),
url("fonts/icomoon.svg?pmeuih#icomoon")
format
(
"svg"
);
font-weight
:
normal
;
font-style
:
normal
}
[
class
^=
"icon-"
],[
class
*=
" icon-"
]
{
font-family
:
'icomoon'
!important
;
speak
:
none
;
font-style
:
normal
;
font-weight
:
normal
;
font-variant
:
normal
;
text-transform
:
none
;
line-height
:
1
;
-webkit-font-smoothing
:
antialiased
;
-moz-osx-font-smoothing
:
grayscale
}
.icon-close
:before
{
content
:
"\e909"
}
.icon-move-down
:before
{
content
:
"\e90a"
}
.icon-move-up
:before
{
content
:
"\e90b"
}
.icon-unordered-list
:before
{
content
:
"\e004"
}
.icon-info
:before
{
content
:
"\e00d"
}
.icon-article
:before
{
content
:
"\e61d"
}
.icon-setting
:before
{
content
:
"\e604"
}
.icon-cmts
:before
{
content
:
"\e60a"
}
.icon-refresh
:before
{
content
:
"\e60b"
}
.icon-chevron-down
:before
{
content
:
"\e618"
}
.icon-chevron-up
:before
{
content
:
"\e619"
}
a
[
class
^=
"icon-"
],
a
[
class
*=
" icon-"
]
{
color
:
#333
}
a
[
class
^=
"icon-"
]
:hover
,
a
[
class
*=
" icon-"
]
:hover
{
text-decoration
:
none
;
color
:
#4183c4
}
.aboutIcon
{
background-position
:
-16px
-48px
}
.icon-move-down
,
.icon-move-up
{
cursor
:
pointer
}
#allPanel
{
height
:
auto
;
min-height
:
100%
;
position
:
relative
}
#tabsPanel
{
margin
:
50px
0
0
240px
;
padding
:
15px
;
min-height
:
100px
}
#tabsPanel
>
div
{
padding-bottom
:
36px
}
#tabsPanel_article-list
,
#tabsPanel_draft-list
,
#tabsPanel_comment-list
,
#tabsPanel_plugin-list
,
#tabsPanel_page-list
>
div
:first-child
,
#tabsPanel_user-list
>
div
:first-child
,
#tabsPanel_category-list
>
div
:first-child
,
#tabsPanel_link-list
>
div
:first-child
{
background-color
:
#FFF
;
border-radius
:
4px
;
margin-bottom
:
40px
;
overflow
:
hidden
}
.tip
{
font-weight
:
bold
;
margin
:
0
auto
;
overflow
:
hidden
;
padding
:
2px
0
;
position
:
fixed
;
text-align
:
center
;
top
:
3px
;
left
:
255px
;
z-index
:
1001
}
#tipMsg
,
#loadMsg
{
color
:
#31708f
;
background-color
:
#d9edf7
;
border-radius
:
4px
;
line-height
:
40px
;
display
:
inline-block
}
.footer
{
bottom
:
12px
;
position
:
absolute
;
text-align
:
center
;
width
:
100%
;
padding-left
:
240px
;
box-sizing
:
border-box
}
#top
{
height
:
50px
;
position
:
fixed
;
box-shadow
:
1px
0
3px
rgba
(
0
,
0
,
0
,
0.15
);
width
:
100%
;
top
:
0
;
background-color
:
#fff
;
z-index
:
80
}
#top
>
a
{
background
:
#1fb5ad
;
float
:
left
;
width
:
240px
;
height
:
50px
;
position
:
relative
;
color
:
#F7F7F7
;
text-align
:
center
;
text-decoration
:
none
;
font-size
:
20px
;
line-height
:
50px
}
#top
>
.fn__right
a
{
color
:
#555
;
line-height
:
32px
;
margin
:
8px
10px
;
border
:
1px
solid
#f6f6f6
;
background-color
:
#f6f6f6
;
border-radius
:
100px
;
padding
:
0
10px
;
text-decoration
:
none
;
display
:
inline-block
}
#top
>
.fn__right
a
:hover
{
color
:
#333
}
#top
.avatar
{
height
:
25px
;
width
:
25px
;
border-radius
:
20px
;
background-size
:
cover
;
background-repeat
:
no-repeat
;
background-position
:
center
center
;
float
:
left
;
margin
:
3px
6px
0
0
}
#tabs
{
height
:
100%
;
min-height
:
468px
;
width
:
240px
;
margin-top
:
50px
;
position
:
fixed
;
top
:
0
;
background-color
:
#32323a
;
overflow
:
auto
}
#tabs
ul
{
list-style
:
none
}
#tabs
li
{
margin-left
:
0px
;
border-bottom
:
1px
solid
rgba
(
255
,
255
,
255
,
0.05
)}
#tabs
li
>
div
>
a
,
#tabs
#tabToolsTitle
,
#tabs
#tabArticleTitle
{
color
:
#aeb2b7
;
display
:
block
;
text-decoration
:
none
;
letter-spacing
:
1px
;
padding
:
18px
0
18px
25px
;
line-height
:
18px
;
height
:
18px
;
transition
:
all
0.3s
ease
;
cursor
:
pointer
}
#tabs
a
:hover
,
#tabs
a
.tab-current
,
#tabs
#tabToolsTitle
.tab-current
,
#tabs
#tabArticleTitle
.tab-current
,
#tabs
#tabToolsTitle
:hover
,
#tabs
#tabArticleTitle
:hover
{
background-color
:
#28282e
;
color
:
#1fb5ad
}
#tabs
li
li
{
border-bottom
:
0
}
#tabs
li
li
>
div
>
a
{
padding
:
13px
0
13px
46px
;
line-height
:
15px
;
height
:
15px
;
background-color
:
#28282e
}
#tabs
li
li
>
div
>
a
:hover
,
#tabs
li
li
>
div
>
a
.tab-current
{
background-color
:
#202025
}
#tabs
.commentIcon
,
#tabs
.postIcon
,
#tabs
.preferenceIcon
,
#tabs
.usersIcon
,
#tabs
.aboutIcon
{
display
:
none
}
#tabs
.icon-chevron-up
,
#tabs
.icon-chevron-down
{
margin-right
:
10px
}
.sub-tabs
{
background-color
:
#e0e1e7
;
border-radius
:
4px
4px
0
0
;
overflow
:
hidden
}
.sub-tabs
ul
{
float
:
left
;
list-style
:
none
outside
none
;
margin-right
:
24px
}
.sub-tabs
li
{
float
:
left
;
margin
:
0
}
.sub-tabs
li
a
{
border-right
:
1px
solid
#e0e1e7
;
color
:
#898989
;
display
:
block
;
line-height
:
18px
;
padding
:
20px
15px
;
text-decoration
:
none
}
.sub-tabs
.tab-current
,
.sub-tabs
.tab-current
:hover
,
.sub-tabs
a
:hover
{
background-color
:
#FFFFFF
;
color
:
#1fb5ad
}
.sub-tabs-main
{
background-color
:
#FFFFFF
;
padding
:
15px
;
border-radius
:
0
0
4px
4px
}
.form
>
div
{
margin
:
15px
0
}
.form
label
{
margin-bottom
:
10px
;
display
:
inline-block
}
.form
label
.checkbox
{
display
:
inline-flex
;
align-items
:
center
;
margin
:
11px
0
}
.form
label
.checkbox
input
{
height
:
auto
}
.form
input
[
type
=
'text'
],
.form
input
[
type
=
'password'
],
.form
textarea
,
.form
select
{
font-size
:
14px
;
outline
:
medium
none
;
width
:
100%
;
padding
:
6px
12px
;
height
:
34px
;
box-sizing
:
border-box
;
border
:
1px
solid
#e2e2e4
;
color
:
#333
;
border-radius
:
4px
;
transition
:
border-color
ease-in-out
.15s
,
box-shadow
ease-in-out
.15s
;
background-color
:
#fff
}
.form
textarea
{
height
:
auto
}
.form
input
[
type
=
'text'
]
:focus
,
.form
input
[
type
=
'radio'
]
:focus
,
.form
input
[
type
=
'password'
]
:focus
,
.form
textarea
:focus
{
box-shadow
:
none
;
border-color
:
#1fb5ad
}
table
.form
label
{
margin
:
10px
0
0
0
}
table
.form
th
{
vertical-align
:
initial
}
.module-panel
{
border-radius
:
4px
;
background-color
:
#fff
;
margin-bottom
:
20px
;
min-height
:
160px
}
.module-header
{
background
:
#fafafa
;
padding
:
15px
;
border-bottom
:
1px
solid
#eff2f7
;
border-top-left-radius
:
3px
;
border-top-right-radius
:
3px
}
.module-header
h2
{
font-size
:
13px
;
font-weight
:
400
}
.module-header
a
{
color
:
#767676
;
text-decoration
:
none
}
.module-header
a
:hover
{
color
:
#1fb5ad
}
.module-panel
.module-body
{
padding
:
15px
}
.module-panel
.module-body
li
{
padding
:
10px
;
line-height
:
18px
;
border-bottom
:
1px
solid
#ddd
}
.module-panel
.module-body
li
:hover
{
background-color
:
#fafafa
}
.module-panel
.module-body
li
a
:hover
{
text-decoration
:
none
}
.comment-title
{
background-color
:
#ECECEC
;
border-bottom
:
1px
solid
#DFDFDF
;
border-top
:
1px
solid
#F9F9F9
;
padding
:
3px
6px
3px
12px
;
line-height
:
24px
}
#comments
{
height
:
462px
;
overflow
:
auto
}
.article__thumbnail
{
margin
:
10px
auto
20px
;
display
:
none
;
text-align
:
center
}
.article__thumbnail
.thumbnail__img
{
background-color
:
rgba
(
0
,
0
,
0
,
0.02
);
background-size
:
cover
;
background-repeat
:
no-repeat
;
background-position
:
50%
;
height
:
432px
;
width
:
768px
;
margin
:
0
auto
}
.article__thumbnail
button
{
margin-top
:
10px
}
button
#submitArticle
{
background-color
:
#fa8564
;
border-color
:
#fa8564
}
button
#submitArticle
:hover
{
background-color
:
#ec6459
;
border-color
:
#ec6459
}
#skinsPanel
{
min-width
:
328px
;
width
:
99%
}
.skinPreview
{
height
:
160px
;
width
:
280px
}
.skinItem
{
background-color
:
#FAFAFA
;
border-radius
:
3px
;
box-shadow
:
0
0
1px
rgba
(
0
,
0
,
0
,
0.3
);
font-size
:
16px
;
line-height
:
24px
;
margin
:
10px
;
text-align
:
center
}
.skinItem
button
:first-child
{
margin-left
:
10px
}
#skinMain
.skinItem.selected
,
.skinItem
:hover
{
background-color
:
#1fb5ad
;
box-shadow
:
0px
0px
6px
rgba
(
0
,
0
,
0
,
0.3
)}
.f-blue
,
.error-msg
{
color
:
#3366CC
}
.signs
button
{
margin
:
0
12px
}
.small-head
{
float
:
left
;
height
:
35px
;
margin
:
3px
9px
0
3px
;
width
:
35px
}
#commentTable
.table-main
td
{
vertical-align
:
top
}
.about-logo
{
margin
:
0
40px
0
20px
;
align-self
:
center
}
.about-margin
{
font-size
:
18px
;
margin
:
20px
0
}
.about__panel
.about-list
li
{
border
:
0
;
padding
:
0
;
margin-left
:
24px
}
.about__panel
.about-list
li
:hover
{
background-color
:
#fff
;
text-decoration
:
underline
}
.ft__fade
{
color
:
rgba
(
0
,
0
,
0
,
0.38
)}
.ft__green
{
color
:
#569e3d
}
.tag__select
{
position
:
relative
;
display
:
block
}
.tag__select
button
{
position
:
absolute
;
right
:
0
;
top
:
1px
;
border-radius
:
0
4px
4px
0
}
.completed-panel
{
background-color
:
#fff
;
border
:
1px
solid
#ddd
;
color
:
#0000CC
;
display
:
none
;
overflow
:
auto
;
padding
:
2px
;
position
:
absolute
;
z-index
:
10
;
width
:
50%
;
border-top
:
0
}
.completed-panel
a
{
display
:
block
;
text-decoration
:
none
;
line-height
:
26px
;
padding
:
0
5px
}
.completed-panel
a
.selected
{
background-color
:
#fafafa
;
color
:
#fa8564
}
.completed-ck
{
margin-top
:
9px
}
.completed-ck
span
,
.signs
button
,
.skinItem
button
{
margin
:
5px
10px
5px
0
;
display
:
inline-block
;
background-color
:
#c7cbd6
;
border-color
:
#c7cbd6
}
.completed-ck
span
:hover
,
.signs
button
:hover
,
.skinItem
button
:hover
{
background-color
:
#b0b5b9
;
border-color
:
#b0b5b9
}
.completed-ck
span
.selected
,
.signs
button
.selected
{
background-color
:
#1ca59e
;
border-color
:
#1ca59e
;
color
:
#fff
}
.dialog-background
{
background-color
:
#000000
;
display
:
none
;
filter
:
alpha
(
opacity
=
30
);
height
:
100%
;
left
:
0
;
opacity
:
.3
;
position
:
fixed
;
top
:
0
;
width
:
100%
;
z-index
:
90
}
.dialog-panel
{
display
:
none
;
position
:
absolute
;
z-index
:
100
}
.dialog-title
{
color
:
#FFFFFF
;
float
:
left
;
font-size
:
12px
;
margin-left
:
12px
}
.dialog-header-bg
{
background
:
#32323a
;
border-radius
:
6px
6px
0
0
;
cursor
:
move
;
height
:
34px
;
line-height
:
34px
}
.dialog-header-bg
.icon-close
{
cursor
:
pointer
;
float
:
right
;
height
:
18px
;
margin-top
:
6px
;
padding
:
3px
;
width
:
22px
;
color
:
#1fb5ad
}
.dialog-header-bg
.icon-close
:hover
{
color
:
#1ca59e
}
.dialog-main
{
background-color
:
#FFFFFF
;
border
:
1px
solid
#666666
;
border-color
:
#C0C0C0
#D9D9D9
#D9D9D9
;
border-top-width
:
0
;
padding
:
12px
}
.paginate-paginate
div
.button.paginate-page
,
.paginate-paginate
a
,
.paginate-pageCount
,
.pagination-pages
{
border
:
1px
solid
#EFF2F7
;
padding
:
6px
12px
;
cursor
:
pointer
;
float
:
left
;
line-height
:
18px
;
background
:
#eee
;
height
:
18px
;
margin-left
:
1px
;
border-radius
:
0
;
text-decoration
:
none
;
color
:
#333
}
.pagination-current-page
,
.paginate-pageCount
{
cursor
:
auto
}
.paginate-pageCount
{
margin-left
:
10px
}
.pagination-current-page
,
.paginate-paginate
a
:hover
,
.paginate-paginate
div
.button.paginate-page
:hover
,
.pagination-pages
:hover
{
border-color
:
#2eb4ad
;
background-color
:
#2eb4ad
;
color
:
#FFF
}
.paginate-paginate
div
.button
{
padding
:
0
;
float
:
left
;
border
:
0
;
background
:
none
}
.paginate-inputPage
{
height
:
26px
;
width
:
24px
;
margin
:
0
5px
}
.table-main
{
margin
:
0
;
padding
:
0
;
position
:
relative
}
.table-main
table
{
word-break
:
break-all
;
word-wrap
:
break-word
}
.table-header
{
border-bottom
:
1px
solid
#ddd
;
background-color
:
#fafafa
;
padding
:
15px
0
}
.table-header
th
{
line-height
:
18px
;
text-align
:
left
;
text-indent
:
6px
;
font-weight
:
normal
}
.table-main
td
{
border-bottom
:
1px
solid
#ddd
;
color
:
#767676
;
padding
:
10px
0
}
.table-lineHover
.table-hasExpend
td
{
border-bottom
:
0px
}
.table-heiglight
td
,
.table-lineHover
td
{
background-color
:
#fafafa
;
border-right-color
:
#fafafa
}
.table-expendRow
td
{
padding
:
0
0
5px
36px
}
.table-expendRow
td
span
{
margin-left
:
60px
}
.table-expendRow
td
a
{
padding
:
1px
5px
;
font-size
:
12px
;
line-height
:
1.5
;
border-radius
:
3px
;
text-decoration
:
none
;
color
:
#FFF
;
background-color
:
#c7cbd6
;
border-color
:
#c7cbd6
}
.table-expendRow
td
a
:hover
{
background-color
:
#b0b5b9
;
border-color
:
#b0b5b9
}
.table-center
{
margin
:
0
auto
}
.table-tag
{
color
:
#D54121
;
font-size
:
12px
;
font-style
:
italic
;
margin-left
:
10px
}
.navigation-icon
{
height
:
18px
;
width
:
18px
;
float
:
left
;
margin
:
-1px
10px
0
0
}
#preferenceSignButton1
,
#preferenceSignButton2
,
#preferenceSignButton3
{
margin
:
10px
0
}
#tabPreferencePanel
label
,
#tabPreferencePanel_setting
label
,
.form__no-table
label
{
width
:
100%
;
margin-top
:
10px
;
font-weight
:
bold
}
.page-list__label
{
width
:
100%
}
.search-btn
{
position
:
absolute
;
top
:
28px
;
right
:
27px
;
border-radius
:
0
4px
4px
0
}
.vditor-toolbar
label
{
margin-bottom
:
0
}
.vditor
.vditor-textarea
{
border
:
0
;
resize
:
none
;
padding
:
10px
;
box-sizing
:
border-box
;
background-color
:
#fafbfc
;
outline
:
0
none
;
font-size
:
16px
;
line-height
:
22px
;
color
:
#24292e
;
border-radius
:
0
0
3px
3px
}
@media
(
max-width
:
768px
){
#top
>
a
{
display
:
none
}
#tabsPanel
{
margin-left
:
0
}
.footer
{
padding-left
:
0
}
.skinPreview
{
width
:
100%
;
height
:
auto
;
margin
:
0
}
.tip
{
left
:
12px
}
#tabs
{
transition
:
all
0.15s
ease-in-out
;
left
:
-240px
;
z-index
:
100
}
.top__menu
{
font-size
:
22px
;
margin
:
12px
;
float
:
left
;
display
:
block
}
.fn__flex
{
display
:
block
}
#permalink
{
margin
:
0
!important
}
.permalink__label
{
margin-bottom
:
10px
!important
}
.viewpwd__panel
,
.article-commentable__panel
{
float
:
none
}
#viewPwd
{
width
:
100%
!important
}
.viewpwd__panel
label
{
margin-top
:
20px
}
.signs
label
{
width
:
100%
}
.table-expendRow
td
{
padding-left
:
10px
}
.about-margin
{
margin-bottom
:
10px
}
.about__iframe
{
margin
:
0
0
20px
0
!important
}
.about-logo
{
margin
:
0
auto
;
display
:
block
;
float
:
none
;
width
:
128px
}
.about__panel
{
margin-left
:
0
!important
}
.dialog-panel
{
left
:
0
!important
;
top
:
0
!important
;
padding
:
10px
!important
;
box-sizing
:
border-box
!important
;
width
:
100%
!important
}
.tabs__bg
{
display
:
none
;
width
:
100vw
;
height
:
100vh
;
background-color
:
rgba
(
0
,
0
,
0
,
0.4
);
position
:
fixed
;
top
:
0
;
z-index
:
78
}}
html
{
-webkit-text-size-adjust
:
100%
;
-ms-text-size-adjust
:
100%
;
height
:
100%
}
body
{
margin
:
0
;
font-family
:
"Helvetica Neue"
,
"Luxi Sans"
,
"DejaVu Sans"
,
Tahoma
,
"Hiragino Sans GB"
,
"Microsoft Yahei"
,
sans-serif
;
font-size
:
14px
;
background-color
:
#fff
;
-webkit-font-smoothing
:
antialiased
;
-webkit-overflow-scrolling
:
touch
}
::-moz-selection
{
text-shadow
:
none
;
background
:
rgba
(
65
,
131
,
196
,
0.4
)}
::selection
{
text-shadow
:
none
;
background
:
rgba
(
66
,
133
,
244
,
0.4
)}
ul
,
ol
{
margin
:
0
;
padding
:
0
}
h1
,
h2
,
h3
,
h4
,
h5
,
h6
,
dl
,
dd
,
p
{
margin
:
0
}
article
,
aside
,
details
,
figcaption
,
figure
,
footer
,
header
,
hgroup
,
nav
,
section
{
display
:
block
}
audio
,
canvas
,
video
{
display
:
inline-block
}
audio
:not
([
controls
])
{
display
:
none
}
a
{
outline
:
0
;
text-decoration
:
none
}
a
:hover
{
text-decoration
:
underline
}
sub
,
sup
{
position
:
relative
;
font-size
:
75%
;
line-height
:
0
;
vertical-align
:
baseline
}
sup
{
top
:
-0.5em
}
sub
{
bottom
:
-0.25em
}
img
{
max-width
:
100%
;
vertical-align
:
middle
;
border
:
0
;
height
:
auto
;
-ms-interpolation-mode
:
bicubic
;
overflow
:
hidden
;
font-size
:
12px
}
button
,
input
,
select
,
textarea
{
margin
:
0
;
font-size
:
100%
;
vertical-align
:
middle
;
font-family
:
"Helvetica Neue"
,
"Luxi Sans"
,
"DejaVu Sans"
,
Tahoma
,
"Hiragino Sans GB"
,
"Microsoft Yahei"
,
sans-serif
;
outline
:
none
}
button
,
input
{
line-height
:
normal
}
button
::-moz-focus-inner
,
input
::-moz-focus-inner
{
padding
:
0
;
border
:
0
}
button
,
input
[
type
=
"button"
],
input
[
type
=
"reset"
],
input
[
type
=
"submit"
]
{
cursor
:
pointer
;
-webkit-appearance
:
button
}
input
[
type
=
"search"
]
{
box-sizing
:
content-box
;
-webkit-appearance
:
textfield
}
input
[
type
=
"search"
]
::-webkit-search-decoration
,
input
[
type
=
"search"
]
::-webkit-search-cancel-button
{
-webkit-appearance
:
none
}
textarea
{
overflow
:
auto
;
resize
:
vertical
}
svg
{
fill
:
currentColor
;
display
:
inline-block
;
stroke-width
:
0
;
stroke
:
currentColor
;
width
:
14px
;
height
:
14px
}
blockquote
{
margin
:
0
}
.fn__flex
{
display
:
flex
}
.fn__flex-center
{
align-self
:
center
}
.fn__flex-inline
{
display
:
inline-flex
;
align-items
:
center
}
.fn__flex-1
{
flex
:
1
;
min-width
:
1px
}
.fn__flex-column
{
min-height
:
100%
;
display
:
flex
;
flex-direction
:
column
}
.fn__pointer
{
cursor
:
pointer
}
.fn__clear
:before
,
.fn__clear
:after
{
display
:
table
;
content
:
""
}
.fn__clear
:after
{
clear
:
both
}
.fn__left
{
float
:
left
}
.fn__right
{
float
:
right
}
.fn__none
{
display
:
none
}
.fn__hidden
{
visibility
:
hidden
}
.fn__ellipsis
{
overflow
:
hidden
;
text-overflow
:
ellipsis
;
white-space
:
nowrap
;
word-wrap
:
normal
}
.ft__13
{
font-size
:
13px
}
.ft__smaller
{
font-size
:
12px
}
.ft__center
{
text-align
:
center
}
.ft__nowrap
{
white-space
:
nowrap
}
@keyframes
tooltip-appear
{
from
{
opacity
:
0
}
to
{
opacity
:
1
}}
.vditor-tooltipped
{
position
:
relative
;
cursor
:
pointer
}
.vditor-tooltipped
::after
{
position
:
absolute
;
z-index
:
1000000
;
display
:
none
;
padding
:
5px
8px
;
font-size
:
11px
;
font-weight
:
normal
;
-webkit-font-smoothing
:
subpixel-antialiased
;
color
:
#fff
;
text-align
:
center
;
text-decoration
:
none
;
text-shadow
:
none
;
text-transform
:
none
;
letter-spacing
:
normal
;
word-wrap
:
break-word
;
white-space
:
pre
;
pointer-events
:
none
;
content
:
attr
(
aria-label
);
background
:
rgba
(
0
,
0
,
0
,
0.8
);
border-radius
:
3px
;
line-height
:
16px
;
opacity
:
0
}
.vditor-tooltipped
::before
{
position
:
absolute
;
z-index
:
1000001
;
display
:
none
;
width
:
0
;
height
:
0
;
color
:
rgba
(
0
,
0
,
0
,
0.8
);
pointer-events
:
none
;
content
:
""
;
border
:
5px
solid
transparent
;
opacity
:
0
}
.vditor-tooltipped--hover
::before
,
.vditor-tooltipped--hover
::after
,
.vditor-tooltipped
:hover::before
,
.vditor-tooltipped
:hover::after
,
.vditor-tooltipped
:active::before
,
.vditor-tooltipped
:active::after
,
.vditor-tooltipped
:focus::before
,
.vditor-tooltipped
:focus::after
{
display
:
inline-block
;
text-decoration
:
none
;
animation-name
:
tooltip-appear
;
animation-duration
:
0.1
5s
;
animation-fill-mode
:
forwards
;
animation-timing-function
:
ease-in
}
.vditor-tooltipped__s
::after
,
.vditor-tooltipped__se
::after
,
.vditor-tooltipped__sw
::after
{
top
:
100%
;
right
:
50%
;
margin-top
:
5px
}
.vditor-tooltipped__s
::before
,
.vditor-tooltipped__se
::before
,
.vditor-tooltipped__sw
::before
{
top
:
auto
;
right
:
50%
;
bottom
:
-5px
;
margin-right
:
-5px
;
border-bottom-color
:
rgba
(
0
,
0
,
0
,
0.8
)}
.vditor-tooltipped__se
::after
{
right
:
auto
;
left
:
50%
;
margin-left
:
-15px
}
.vditor-tooltipped__sw
::after
{
margin-right
:
-15px
}
.vditor-tooltipped__n
::after
,
.vditor-tooltipped__ne
::after
,
.vditor-tooltipped__nw
::after
{
right
:
50%
;
bottom
:
100%
;
margin-bottom
:
5px
}
.vditor-tooltipped__n
::before
,
.vditor-tooltipped__ne
::before
,
.vditor-tooltipped__nw
::before
{
top
:
-5px
;
right
:
50%
;
bottom
:
auto
;
margin-right
:
-5px
;
border-top-color
:
rgba
(
0
,
0
,
0
,
0.8
)}
.vditor-tooltipped__ne
::after
{
right
:
auto
;
left
:
50%
;
margin-left
:
-15px
}
.vditor-tooltipped__nw
::after
{
margin-right
:
-15px
}
.vditor-tooltipped__s
::after
,
.vditor-tooltipped__n
::after
{
transform
:
translateX
(
50%
)}
.vditor-tooltipped__w
::after
{
right
:
100%
;
bottom
:
50%
;
margin-right
:
5px
;
transform
:
translateY
(
50%
)}
.vditor-tooltipped__w
::before
{
top
:
50%
;
bottom
:
50%
;
left
:
-5px
;
margin-top
:
-5px
;
border-left-color
:
rgba
(
0
,
0
,
0
,
0.8
)}
.vditor-tooltipped__e
::after
{
bottom
:
50%
;
left
:
100%
;
margin-left
:
5px
;
transform
:
translateY
(
50%
)}
.vditor-tooltipped__e
::before
{
top
:
50%
;
right
:
-5px
;
bottom
:
50%
;
margin-top
:
-5px
;
border-right-color
:
rgba
(
0
,
0
,
0
,
0.8
)}
@keyframes
scale-in
{
0
%
{
opacity
:
0
;
transform
:
scale
(
0.5
)}
100
%
{
opacity
:
1
;
transform
:
scale
(
1
)}}
.vditor-panel
{
background-color
:
#fff
;
position
:
absolute
;
box-shadow
:
0
1px
2px
rgba
(
0
,
0
,
0
,
0.2
);
border-radius
:
3px
;
padding
:
5px
;
z-index
:
1
;
font-size
:
14px
;
display
:
none
;
user-select
:
none
;
max-width
:
320px
;
min-width
:
80px
;
animation-duration
:
.15s
;
animation-name
:
scale-in
;
animation-timing-function
:
cubic-bezier
(
0.2
,
0
,
0.13
,
1.5
)}
.vditor-panel
h1
,
.vditor-panel
h2
,
.vditor-panel
h3
,
.vditor-panel
h4
,
.vditor-panel
h5
,
.vditor-panel
h6
{
margin
:
0
;
cursor
:
pointer
;
padding
:
3px
10px
;
border-radius
:
3px
;
line-height
:
normal
}
.vditor-panel
h1
:hover
,
.vditor-panel
h2
:hover
,
.vditor-panel
h3
:hover
,
.vditor-panel
h4
:hover
,
.vditor-panel
h5
:hover
,
.vditor-panel
h6
:hover
{
background-color
:
#4285f4
;
color
:
#fff
}
.vditor-toolbar
{
background-color
:
#f6f8fa
;
border-bottom
:
1px
solid
#d1d5da
;
padding
:
0
5px
;
border-radius
:
3px
3px
0
0
}
.vditor-toolbar
>
div
{
padding
:
10px
5px
;
float
:
left
;
line-height
:
14px
;
height
:
36px
;
box-sizing
:
border-box
}
.vditor-toolbar
svg
{
fill
:
currentColor
;
display
:
inline-block
;
stroke-width
:
0
;
stroke
:
currentColor
;
width
:
14px
;
height
:
14px
}
.vditor-toolbar
.vditor-tooltipped
{
color
:
#586069
}
.vditor-toolbar
.vditor-tooltipped
:hover
{
color
:
#4285f4
}
.vditor-toolbar
label
{
overflow
:
hidden
;
position
:
relative
;
height
:
14px
;
width
:
15px
;
display
:
block
;
cursor
:
pointer
}
.vditor-toolbar
label
svg
{
position
:
absolute
;
top
:
0
;
left
:
0
}
.vditor-toolbar
label
input
{
position
:
absolute
;
width
:
15px
;
height
:
15px
;
top
:
0
;
left
:
0
;
opacity
:
.001
;
overflow
:
hidden
}
.vditor-menu--current
svg
{
color
:
#4285f4
}
.vditor-menu__divider
{
width
:
10px
}
.vditor-menu__br
{
width
:
100%
;
padding
:
0
!important
;
height
:
0
!important
}
.vditor-emojis
{
display
:
inline-block
;
overflow
:
auto
}
.vditor-emojis
::-webkit-scrollbar
{
display
:
none
}
.vditor-emojis__tip
{
flex
:
1
;
width
:
200px
;
margin-right
:
10px
;
color
:
#586069
;
white-space
:
nowrap
;
text-overflow
:
ellipsis
;
overflow
:
hidden
}
.vditor-emojis__tail
{
margin-top
:
5px
;
font-size
:
12px
;
color
:
#586069
;
display
:
flex
}
.vditor-emojis__tail
a
{
text-decoration
:
none
;
color
:
#586069
}
.vditor-emojis__tail
a
:hover
{
color
:
#4285f4
}
.vditor-emojis
span
{
cursor
:
pointer
;
border-radius
:
3px
;
float
:
left
;
height
:
30px
;
width
:
30px
;
text-align
:
center
;
line-height
:
26px
;
padding
:
3px
;
box-sizing
:
border-box
;
font-size
:
16px
;
transition
:
all
0.15s
ease-in-out
}
.vditor-emojis
span
:hover
{
transform
:
scale
(
1.2
)}
.vditor-emojis
img
{
height
:
20px
;
width
:
20px
;
float
:
left
;
margin
:
3px
0
0
3px
}
@keyframes
slideInDown
{
from
{
transform
:
translate3d
(
0
,
-100%
,
0
);
visibility
:
visible
}
to
{
transform
:
translate3d
(
0
,
0
,
0
)}}
.vditor
{
display
:
flex
;
flex-direction
:
column
;
border
:
1px
solid
#d1d5da
;
border-radius
:
3px
;
box-sizing
:
border-box
}
.vditor--fullscreen
{
position
:
fixed
;
top
:
0
;
width
:
100%
!important
;
left
:
0
;
height
:
100vh
!important
;
z-index
:
90
;
background-color
:
#fff
}
.vditor-content
{
display
:
flex
;
min-height
:
60px
;
flex
:
1
;
position
:
relative
}
.vditor-textarea
{
height
:
100%
;
overflow
:
auto
;
width
:
100%
;
flex
:
1
;
border
:
0
;
resize
:
none
;
padding
:
10px
;
box-sizing
:
border-box
;
background-color
:
#fafbfc
;
outline
:
0
none
;
font-size
:
16px
;
line-height
:
22px
;
color
:
#24292e
;
border-radius
:
0
0
3px
3px
}
.vditor-textarea
[
contenteditable
=
"false"
]
{
opacity
:
0.3
;
cursor
:
not-allowed
}
.vditor-textarea
:focus
{
background-color
:
#fff
}
.vditor-textarea
:empty::before
{
content
:
attr
(
placeholder
);
color
:
rgba
(
36
,
41
,
46
,
0.68
)}
.vditor-preview
{
flex
:
1
;
background-color
:
#fff
;
overflow
:
auto
;
padding
:
10px
;
box-shadow
:
inset
1px
0
#d1d5da
;
box-sizing
:
border-box
;
border-radius
:
0
0
3px
0
}
.vditor-preview--editor
{
display
:
none
}
.vditor-preview--both
{
display
:
block
}
.vditor-preview--preview
{
position
:
absolute
;
top
:
0
;
left
:
-1px
;
bottom
:
0
;
right
:
0
;
display
:
block
}
.vditor-preview
>
div
::-webkit-scrollbar
{
display
:
none
}
.vditor-preview
>
.vditor-reset
{
margin
:
0
auto
}
.vditor-counter
{
padding
:
0
3px
;
position
:
absolute
;
bottom
:
10px
;
right
:
20px
;
color
:
#24292e
;
background-color
:
rgba
(
255
,
255
,
255
,
0.6
);
border-radius
:
3px
;
font-size
:
12px
;
user-select
:
none
}
.vditor-counter--error
{
color
:
#d23f31
;
background-color
:
rgba
(
210
,
63
,
49
,
0.1
)}
.vditor-resize
{
padding
:
1px
0
;
border-radius
:
5px
;
cursor
:
row-resize
;
transition
:
all
0.15s
ease-in-out
;
user-select
:
none
;
background-color
:
#f6f8fa
}
.vditor-resize
:hover
{
background-color
:
#4285f4
}
.vditor-resize
:hover
svg
{
color
:
#fff
}
.vditor-resize
svg
{
fill
:
currentColor
;
stroke-width
:
0
;
stroke
:
currentColor
;
width
:
13px
;
height
:
3px
;
display
:
block
;
margin
:
0
auto
;
color
:
#586069
}
.vditor-upload
{
position
:
absolute
;
height
:
3px
;
left
:
0
;
top
:
-2px
;
transition
:
all
0.15s
ease-in-out
;
background-color
:
rgba
(
66
,
133
,
244
,
0.8
)}
.vditor-tip
{
position
:
absolute
;
font-size
:
12px
;
top
:
10px
;
color
:
#fff
;
animation-duration
:
.15s
;
animation-fill-mode
:
both
;
width
:
100%
;
text-align
:
center
}
.vditor-tip--show
{
display
:
block
;
animation-name
:
slideInDown
}
.vditor-tip__content
{
text-align
:
left
;
display
:
inline-block
;
line-height
:
16px
;
padding
:
3px
10px
;
border-radius
:
3px
;
background
:
rgba
(
66
,
133
,
244
,
0.8
);
position
:
relative
}
.vditor-tip__content
ul
{
margin
:
2px
0
;
padding
:
0
0
0
18px
}
.vditor-tip__close
{
position
:
absolute
;
color
:
#586069
;
top
:
-7px
;
right
:
-15px
;
font-weight
:
bold
;
cursor
:
pointer
}
.vditor-tip__close
:hover
{
color
:
#4285f4
}
.vditor-hint
{
background-color
:
#fff
;
position
:
absolute
;
box-shadow
:
0
1px
2px
rgba
(
0
,
0
,
0
,
0.2
);
border-radius
:
3px
;
padding
:
5px
0
;
z-index
:
1
;
line-height
:
20px
;
list-style
:
none
;
color
:
#24292e
;
font-size
:
12px
;
margin
:
0
;
max-width
:
200px
;
min-width
:
80px
;
display
:
none
}
.vditor-hint
li
{
cursor
:
pointer
;
padding
:
3px
10px
;
border-bottom
:
1px
solid
#d1d5da
;
line-height
:
20px
}
.vditor-hint
li
:last-child
{
border-bottom
:
0
}
.vditor-hint--current
,
.vditor-hint
li
:hover
{
background-color
:
#4285f4
;
color
:
#fff
}
.vditor-hint__emoji
{
font-size
:
16px
;
float
:
left
;
margin-right
:
3px
}
.vditor-hint
img
{
height
:
20px
;
width
:
20px
;
float
:
left
;
margin-right
:
3px
}
.vditor-reset
{
font-family
:
"Helvetica Neue"
,
"Luxi Sans"
,
"DejaVu Sans"
,
Tahoma
,
"Hiragino Sans GB"
,
"Microsoft Yahei"
,
sans-serif
;
word-wrap
:
break-word
;
overflow
:
auto
;
line-height
:
1.65
;
font-size
:
16px
;
word-break
:
break-word
}
.vditor-reset
ul
ul
ul
{
list-style-type
:
square
}
.vditor-reset
ul
ul
{
list-style-type
:
circle
}
.vditor-reset
ul
{
list-style-type
:
disc
}
.vditor-reset
ul
,
.vditor-reset
ol
{
padding-left
:
2em
;
margin-top
:
0
;
margin-bottom
:
16px
}
.vditor-reset
li
{
margin-top
:
0.25em
}
.vditor-reset
audio
{
max-width
:
100%
}
.vditor-reset
audio
:focus
{
outline
:
none
}
.vditor-reset
video
{
max-height
:
90vh
}
.vditor-reset
img
.emoji
{
cursor
:
auto
;
max-width
:
20px
;
vertical-align
:
sub
}
.vditor-reset
h1
,
.vditor-reset
h2
,
.vditor-reset
h3
,
.vditor-reset
h4
,
.vditor-reset
h5
,
.vditor-reset
h6
{
margin-top
:
24px
;
margin-bottom
:
16px
;
font-weight
:
600
;
line-height
:
1.25
}
.vditor-reset
h1
{
padding-bottom
:
0.3em
;
font-size
:
1.7em
;
border-bottom
:
1px
solid
#eee
}
.vditor-reset
h2
{
padding-bottom
:
0.3em
;
font-size
:
1.5em
;
border-bottom
:
1px
solid
#eee
}
.vditor-reset
h3
{
font-size
:
1.25em
}
.vditor-reset
h4
{
font-size
:
1em
}
.vditor-reset
h5
{
font-size
:
0.875em
}
.vditor-reset
h6
{
font-size
:
0.85em
}
.vditor-reset
hr
{
height
:
2px
;
padding
:
0
;
margin
:
24px
0
;
background-color
:
#e7e7e7
;
border
:
0
}
.vditor-reset
p
{
margin-top
:
0
;
margin-bottom
:
16px
}
.vditor-reset
blockquote
{
padding
:
0
1em
;
color
:
#777
;
border-left
:
0.25em
solid
#ddd
;
margin
:
0
0
16px
0
}
.vditor-reset
blockquote
p
{
margin
:
0
}
.vditor-reset
ins
>
iframe
{
border
:
0
}
.vditor-reset
iframe
{
border
:
1px
solid
#d1d5da
;
max-width
:
100%
;
box-sizing
:
border-box
}
.vditor-reset
table
{
width
:
100%
;
border
:
1px
solid
#dedede
;
margin
:
15px
auto
;
border-collapse
:
collapse
;
empty-cells
:
show
}
.vditor-reset
thead
{
text-align
:
center
}
.vditor-reset
td
,
.vditor-reset
th
{
height
:
35px
;
border
:
1px
solid
#dedede
;
padding
:
0
10px
}
.vditor-reset
th
{
font-weight
:
bold
;
text-align
:
center
!important
;
background
:
rgba
(
158
,
188
,
226
,
0.2
)}
.vditor-reset
tbody
tr
:nth-child
(
2n
)
{
background
:
rgba
(
158
,
188
,
226
,
0.12
)}
.vditor-reset
tr
:hover
{
background
:
#efefef
}
.vditor-reset
code
{
padding
:
0.2em
0.4em
;
margin
:
0
;
font-size
:
85%
;
border-radius
:
3px
;
font-family
:
mononoki
,
Consolas
,
"Liberation Mono"
,
Menlo
,
Courier
,
monospace
;
word-break
:
break-word
;
background-size
:
20px
20px
;
background-image
:
url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8AgMAAABHkjHhAAAACVBMVEWAgIBaWlo+Pj7rTFvWAAAAA3RSTlMHCAw+VhR4AAAA+klEQVQoz4WSMW7EQAhFPxKWNh2FCx+HkaZI6RRb5DYbyVfIJXLKDCFoMbaTKSw/8ZnPAPjaH2xgZcUNUDADD7D9LtDBCLZ45fbkvo/30K8yeI64pPwl6znd/3n/Oe93P3ho9qeh72btTFzqkz0rsJle8Zr81OLEwZ1dv/713uWqvu2pl+k0fy7MWtj9r/tN5q/02z89qa/L4Dc2LvM93kezPfXlME/O86EbY/V9GB9ePX8G1/6W+/9h1dq/HGfTfzT3j/xNo7522Bfnqe5jO/fvhVthlfk434v3iO9zG/UOphyPeinPl1J8Gtaa7xPTa/Dk+RIs4deMvwGvcGsmsCvJ0AAAAABJRU5ErkJggg==)
}
.vditor-reset
pre
>
code
{
padding
:
0.5em
;
border-radius
:
5px
;
display
:
block
;
overflow
:
auto
}
.vditor-reset
pre
:hover
div
.vditor-copy
{
display
:
block
}
.vditor-reset
kbd
{
display
:
inline-block
;
padding
:
3px
5px
;
font
:
11px
Consolas
,
"Liberation Mono"
,
Menlo
,
Courier
,
monospace
;
line-height
:
10px
;
color
:
#555
;
vertical-align
:
middle
;
background-color
:
#fcfcfc
;
border
:
solid
1px
#d1d5da
;
border-bottom-color
:
#bbb
;
border-radius
:
3px
;
box-shadow
:
inset
0
-1px
0
#bbb
}
.vditor-reset
summary
{
cursor
:
pointer
}
.vditor-reset
summary
:focus
{
outline
:
none
}
.vditor-reset
svg
{
height
:
auto
;
width
:
auto
}
.vditor-reset
p
:last-child
,
.vditor-reset
blockquote
:last-child
,
.vditor-reset
pre
:last-child
,
.vditor-reset
ul
:last-child
,
.vditor-reset
ol
:last-child
,
.vditor-reset
hr
:last-child
{
margin-bottom
:
0
}
.vditor-reset
.katex
{
position
:
relative
}
.vditor-reset
.language-echarts
{
overflow
:
hidden
;
height
:
420px
}
.vditor-task
{
list-style
:
none
;
margin-left
:
-1.4em
;
display
:
flex
;
align-items
:
center
}
.vditor-task
input
{
margin-right
:
5px
}
.vditor-copy
{
position
:
relative
;
display
:
none
}
.vditor-copy
textarea
{
position
:
absolute
;
left
:
-100000px
}
.vditor-copy
span
{
cursor
:
pointer
;
position
:
absolute
;
right
:
0.5em
;
top
:
0.5em
;
height
:
14px
;
width
:
14px
;
display
:
block
;
background-color
:
#f6f8fa
;
border-radius
:
3px
;
padding
:
3px
}
.vditor-copy
svg
{
color
:
#586069
;
height
:
14px
;
width
:
14px
;
display
:
block
;
fill
:
currentColor
}
body
{
color
:
#767676
;
background
:
#f1f2f7
;
font-size
:
13px
}
a
{
color
:
#4183c4
;
text-decoration
:
none
}
a
:visited
{
color
:
#7ba9d6
}
a
:active
{
color
:
#2c5d8d
}
a
:hover
{
text-decoration
:
underline
}
button
,
.completed-ck
span
{
padding
:
6px
12px
;
margin-bottom
:
0
;
font-size
:
14px
;
font-weight
:
400
;
text-align
:
center
;
white-space
:
nowrap
;
vertical-align
:
baseline
;
cursor
:
pointer
;
user-select
:
none
;
background-image
:
none
;
border
:
1px
solid
#1fb5ad
;
border-radius
:
4px
;
background-color
:
#1fb5ad
;
color
:
#fff
;
height
:
auto
;
outline
:
none
;
line-height
:
18px
}
button
.small
,
.completed-ck
span
.small
{
padding
:
3px
6px
;
font-size
:
12px
}
button
:hover
{
background-color
:
#1ca59e
;
border-color
:
#1ca59e
}
.fn__margin12
{
margin
:
12px
}
@font-face
{
font-family
:
'icomoon'
;
src
:
url("fonts/icomoon.eot?pmeuih")
;
src
:
url("fonts/icomoon.eot?pmeuih#iefix")
format
(
"embedded-opentype"
),
url("fonts/icomoon.ttf?pmeuih")
format
(
"truetype"
),
url("fonts/icomoon.woff?pmeuih")
format
(
"woff"
),
url("fonts/icomoon.svg?pmeuih#icomoon")
format
(
"svg"
);
font-weight
:
normal
;
font-style
:
normal
}
[
class
^=
"icon-"
],[
class
*=
" icon-"
]
{
font-family
:
'icomoon'
!important
;
speak
:
none
;
font-style
:
normal
;
font-weight
:
normal
;
font-variant
:
normal
;
text-transform
:
none
;
line-height
:
1
;
-webkit-font-smoothing
:
antialiased
;
-moz-osx-font-smoothing
:
grayscale
}
.icon-close
:before
{
content
:
"\e909"
}
.icon-move-down
:before
{
content
:
"\e90a"
}
.icon-move-up
:before
{
content
:
"\e90b"
}
.icon-unordered-list
:before
{
content
:
"\e004"
}
.icon-info
:before
{
content
:
"\e00d"
}
.icon-article
:before
{
content
:
"\e61d"
}
.icon-setting
:before
{
content
:
"\e604"
}
.icon-cmts
:before
{
content
:
"\e60a"
}
.icon-refresh
:before
{
content
:
"\e60b"
}
.icon-chevron-down
:before
{
content
:
"\e618"
}
.icon-chevron-up
:before
{
content
:
"\e619"
}
a
[
class
^=
"icon-"
],
a
[
class
*=
" icon-"
]
{
color
:
#333
}
a
[
class
^=
"icon-"
]
:hover
,
a
[
class
*=
" icon-"
]
:hover
{
text-decoration
:
none
;
color
:
#4183c4
}
.aboutIcon
{
background-position
:
-16px
-48px
}
.icon-move-down
,
.icon-move-up
{
cursor
:
pointer
}
#allPanel
{
height
:
auto
;
min-height
:
100%
;
position
:
relative
}
#tabsPanel
{
margin
:
50px
0
0
240px
;
padding
:
15px
;
min-height
:
100px
}
#tabsPanel
>
div
{
padding-bottom
:
36px
}
#tabsPanel_article-list
,
#tabsPanel_draft-list
,
#tabsPanel_comment-list
,
#tabsPanel_plugin-list
,
#tabsPanel_page-list
>
div
:first-child
,
#tabsPanel_user-list
>
div
:first-child
,
#tabsPanel_category-list
>
div
:first-child
,
#tabsPanel_link-list
>
div
:first-child
{
background-color
:
#FFF
;
border-radius
:
4px
;
margin-bottom
:
40px
;
overflow
:
hidden
}
.tip
{
font-weight
:
bold
;
margin
:
0
auto
;
overflow
:
hidden
;
padding
:
2px
0
;
position
:
fixed
;
text-align
:
center
;
top
:
3px
;
left
:
255px
;
z-index
:
1001
}
#tipMsg
,
#loadMsg
{
color
:
#31708f
;
background-color
:
#d9edf7
;
border-radius
:
4px
;
line-height
:
40px
;
display
:
inline-block
}
.footer
{
bottom
:
12px
;
position
:
absolute
;
text-align
:
center
;
width
:
100%
;
padding-left
:
240px
;
box-sizing
:
border-box
}
#top
{
height
:
50px
;
position
:
fixed
;
box-shadow
:
1px
0
3px
rgba
(
0
,
0
,
0
,
0.15
);
width
:
100%
;
top
:
0
;
background-color
:
#fff
;
z-index
:
80
}
#top
>
a
{
background
:
#1fb5ad
;
float
:
left
;
width
:
240px
;
height
:
50px
;
position
:
relative
;
color
:
#F7F7F7
;
text-align
:
center
;
text-decoration
:
none
;
font-size
:
20px
;
line-height
:
50px
}
#top
>
.fn__right
a
{
color
:
#555
;
line-height
:
32px
;
margin
:
8px
10px
;
border
:
1px
solid
#f6f6f6
;
background-color
:
#f6f6f6
;
border-radius
:
100px
;
padding
:
0
10px
;
text-decoration
:
none
;
display
:
inline-block
}
#top
>
.fn__right
a
:hover
{
color
:
#333
}
#top
.avatar
{
height
:
25px
;
width
:
25px
;
border-radius
:
20px
;
background-size
:
cover
;
background-repeat
:
no-repeat
;
background-position
:
center
center
;
float
:
left
;
margin
:
3px
6px
0
0
}
#tabs
{
height
:
100%
;
min-height
:
468px
;
width
:
240px
;
margin-top
:
50px
;
position
:
fixed
;
top
:
0
;
background-color
:
#32323a
;
overflow
:
auto
}
#tabs
ul
{
list-style
:
none
}
#tabs
li
{
margin-left
:
0px
;
border-bottom
:
1px
solid
rgba
(
255
,
255
,
255
,
0.05
)}
#tabs
li
>
div
>
a
,
#tabs
#tabToolsTitle
,
#tabs
#tabArticleTitle
{
color
:
#aeb2b7
;
display
:
block
;
text-decoration
:
none
;
letter-spacing
:
1px
;
padding
:
18px
0
18px
25px
;
line-height
:
18px
;
height
:
18px
;
transition
:
all
0.3s
ease
;
cursor
:
pointer
}
#tabs
a
:hover
,
#tabs
a
.tab-current
,
#tabs
#tabToolsTitle
.tab-current
,
#tabs
#tabArticleTitle
.tab-current
,
#tabs
#tabToolsTitle
:hover
,
#tabs
#tabArticleTitle
:hover
{
background-color
:
#28282e
;
color
:
#1fb5ad
}
#tabs
li
li
{
border-bottom
:
0
}
#tabs
li
li
>
div
>
a
{
padding
:
13px
0
13px
46px
;
line-height
:
15px
;
height
:
15px
;
background-color
:
#28282e
}
#tabs
li
li
>
div
>
a
:hover
,
#tabs
li
li
>
div
>
a
.tab-current
{
background-color
:
#202025
}
#tabs
.commentIcon
,
#tabs
.postIcon
,
#tabs
.preferenceIcon
,
#tabs
.usersIcon
,
#tabs
.aboutIcon
{
display
:
none
}
#tabs
.icon-chevron-up
,
#tabs
.icon-chevron-down
{
margin-right
:
10px
}
.sub-tabs
{
background-color
:
#e0e1e7
;
border-radius
:
4px
4px
0
0
;
overflow
:
hidden
}
.sub-tabs
ul
{
float
:
left
;
list-style
:
none
outside
none
;
margin-right
:
24px
}
.sub-tabs
li
{
float
:
left
;
margin
:
0
}
.sub-tabs
li
a
{
border-right
:
1px
solid
#e0e1e7
;
color
:
#898989
;
display
:
block
;
line-height
:
18px
;
padding
:
20px
15px
;
text-decoration
:
none
}
.sub-tabs
.tab-current
,
.sub-tabs
.tab-current
:hover
,
.sub-tabs
a
:hover
{
background-color
:
#FFFFFF
;
color
:
#1fb5ad
}
.sub-tabs-main
{
background-color
:
#FFFFFF
;
padding
:
15px
;
border-radius
:
0
0
4px
4px
}
.form
>
div
{
margin
:
15px
0
}
.form
label
{
margin-bottom
:
10px
;
display
:
inline-block
}
.form
label
.checkbox
{
display
:
inline-flex
;
align-items
:
center
;
margin
:
11px
0
}
.form
label
.checkbox
input
{
height
:
auto
}
.form
input
[
type
=
'text'
],
.form
input
[
type
=
'password'
],
.form
textarea
,
.form
select
{
font-size
:
14px
;
outline
:
medium
none
;
width
:
100%
;
padding
:
6px
12px
;
height
:
34px
;
box-sizing
:
border-box
;
border
:
1px
solid
#e2e2e4
;
color
:
#333
;
border-radius
:
4px
;
transition
:
border-color
ease-in-out
.15s
,
box-shadow
ease-in-out
.15s
;
background-color
:
#fff
}
.form
textarea
{
height
:
auto
}
.form
input
[
type
=
'text'
]
:focus
,
.form
input
[
type
=
'radio'
]
:focus
,
.form
input
[
type
=
'password'
]
:focus
,
.form
textarea
:focus
{
box-shadow
:
none
;
border-color
:
#1fb5ad
}
table
.form
label
{
margin
:
10px
0
0
0
}
table
.form
th
{
vertical-align
:
initial
}
.module-panel
{
border-radius
:
4px
;
background-color
:
#fff
;
margin-bottom
:
20px
;
min-height
:
160px
}
.module-header
{
background
:
#fafafa
;
padding
:
15px
;
border-bottom
:
1px
solid
#eff2f7
;
border-top-left-radius
:
3px
;
border-top-right-radius
:
3px
}
.module-header
h2
{
font-size
:
13px
;
font-weight
:
400
}
.module-header
a
{
color
:
#767676
;
text-decoration
:
none
}
.module-header
a
:hover
{
color
:
#1fb5ad
}
.module-panel
.module-body
{
padding
:
15px
}
.module-panel
.module-body
li
{
padding
:
10px
;
line-height
:
18px
;
border-bottom
:
1px
solid
#ddd
}
.module-panel
.module-body
li
:hover
{
background-color
:
#fafafa
}
.module-panel
.module-body
li
a
:hover
{
text-decoration
:
none
}
.comment-title
{
background-color
:
#ECECEC
;
border-bottom
:
1px
solid
#DFDFDF
;
border-top
:
1px
solid
#F9F9F9
;
padding
:
3px
6px
3px
12px
;
line-height
:
24px
}
#comments
{
height
:
462px
;
overflow
:
auto
}
.article__thumbnail
{
margin
:
10px
auto
20px
;
display
:
none
;
text-align
:
center
}
.article__thumbnail
.thumbnail__img
{
background-color
:
rgba
(
0
,
0
,
0
,
0.02
);
background-size
:
cover
;
background-repeat
:
no-repeat
;
background-position
:
50%
;
height
:
432px
;
width
:
768px
;
margin
:
0
auto
}
.article__thumbnail
button
{
margin-top
:
10px
}
button
#submitArticle
{
background-color
:
#fa8564
;
border-color
:
#fa8564
}
button
#submitArticle
:hover
{
background-color
:
#ec6459
;
border-color
:
#ec6459
}
#skinsPanel
{
min-width
:
328px
;
width
:
99%
}
.skinPreview
{
height
:
160px
;
width
:
280px
}
.skinItem
{
background-color
:
#FAFAFA
;
border-radius
:
3px
;
box-shadow
:
0
0
1px
rgba
(
0
,
0
,
0
,
0.3
);
font-size
:
16px
;
line-height
:
24px
;
margin
:
10px
;
text-align
:
center
}
.skinItem
button
:first-child
{
margin-left
:
10px
}
#skinMain
.skinItem.selected
,
.skinItem
:hover
{
background-color
:
#1fb5ad
;
box-shadow
:
0px
0px
6px
rgba
(
0
,
0
,
0
,
0.3
)}
.f-blue
,
.error-msg
{
color
:
#3366CC
}
.signs
button
{
margin
:
0
12px
}
.small-head
{
float
:
left
;
height
:
35px
;
margin
:
3px
9px
0
3px
;
width
:
35px
}
#commentTable
.table-main
td
{
vertical-align
:
top
}
.about-logo
{
margin
:
0
40px
0
20px
;
align-self
:
center
}
.about-margin
{
font-size
:
18px
;
margin
:
20px
0
}
.about__panel
.about-list
li
{
border
:
0
;
padding
:
0
;
margin-left
:
24px
}
.about__panel
.about-list
li
:hover
{
background-color
:
#fff
;
text-decoration
:
underline
}
.ft__fade
{
color
:
rgba
(
0
,
0
,
0
,
0.38
)}
.ft__green
{
color
:
#569e3d
}
.tag__select
{
position
:
relative
;
display
:
block
}
.tag__select
button
{
position
:
absolute
;
right
:
0
;
top
:
1px
;
border-radius
:
0
4px
4px
0
}
.completed-panel
{
background-color
:
#fff
;
border
:
1px
solid
#ddd
;
color
:
#0000CC
;
display
:
none
;
overflow
:
auto
;
padding
:
2px
;
position
:
absolute
;
z-index
:
10
;
width
:
50%
;
border-top
:
0
}
.completed-panel
a
{
display
:
block
;
text-decoration
:
none
;
line-height
:
26px
;
padding
:
0
5px
}
.completed-panel
a
.selected
{
background-color
:
#fafafa
;
color
:
#fa8564
}
.completed-ck
{
margin-top
:
9px
}
.completed-ck
span
,
.signs
button
,
.skinItem
button
{
margin
:
5px
10px
5px
0
;
display
:
inline-block
;
background-color
:
#c7cbd6
;
border-color
:
#c7cbd6
}
.completed-ck
span
:hover
,
.signs
button
:hover
,
.skinItem
button
:hover
{
background-color
:
#b0b5b9
;
border-color
:
#b0b5b9
}
.completed-ck
span
.selected
,
.signs
button
.selected
{
background-color
:
#1ca59e
;
border-color
:
#1ca59e
;
color
:
#fff
}
.dialog-background
{
background-color
:
#000000
;
display
:
none
;
filter
:
alpha
(
opacity
=
30
);
height
:
100%
;
left
:
0
;
opacity
:
.3
;
position
:
fixed
;
top
:
0
;
width
:
100%
;
z-index
:
90
}
.dialog-panel
{
display
:
none
;
position
:
absolute
;
z-index
:
100
}
.dialog-title
{
color
:
#FFFFFF
;
float
:
left
;
font-size
:
12px
;
margin-left
:
12px
}
.dialog-header-bg
{
background
:
#32323a
;
border-radius
:
6px
6px
0
0
;
cursor
:
move
;
height
:
34px
;
line-height
:
34px
}
.dialog-header-bg
.icon-close
{
cursor
:
pointer
;
float
:
right
;
height
:
18px
;
margin-top
:
6px
;
padding
:
3px
;
width
:
22px
;
color
:
#1fb5ad
}
.dialog-header-bg
.icon-close
:hover
{
color
:
#1ca59e
}
.dialog-main
{
background-color
:
#FFFFFF
;
border
:
1px
solid
#666666
;
border-color
:
#C0C0C0
#D9D9D9
#D9D9D9
;
border-top-width
:
0
;
padding
:
12px
}
.paginate-paginate
div
.button.paginate-page
,
.paginate-paginate
a
,
.paginate-pageCount
,
.pagination-pages
{
border
:
1px
solid
#EFF2F7
;
padding
:
6px
12px
;
cursor
:
pointer
;
float
:
left
;
line-height
:
18px
;
background
:
#eee
;
height
:
18px
;
margin-left
:
1px
;
border-radius
:
0
;
text-decoration
:
none
;
color
:
#333
}
.pagination-current-page
,
.paginate-pageCount
{
cursor
:
auto
}
.paginate-pageCount
{
margin-left
:
10px
}
.pagination-current-page
,
.paginate-paginate
a
:hover
,
.paginate-paginate
div
.button.paginate-page
:hover
,
.pagination-pages
:hover
{
border-color
:
#2eb4ad
;
background-color
:
#2eb4ad
;
color
:
#FFF
}
.paginate-paginate
div
.button
{
padding
:
0
;
float
:
left
;
border
:
0
;
background
:
none
}
.paginate-inputPage
{
height
:
26px
;
width
:
24px
;
margin
:
0
5px
}
.table-main
{
margin
:
0
;
padding
:
0
;
position
:
relative
}
.table-main
table
{
word-break
:
break-all
;
word-wrap
:
break-word
}
.table-header
{
border-bottom
:
1px
solid
#ddd
;
background-color
:
#fafafa
;
padding
:
15px
0
}
.table-header
th
{
line-height
:
18px
;
text-align
:
left
;
text-indent
:
6px
;
font-weight
:
normal
}
.table-main
td
{
border-bottom
:
1px
solid
#ddd
;
color
:
#767676
;
padding
:
10px
0
}
.table-lineHover
.table-hasExpend
td
{
border-bottom
:
0px
}
.table-heiglight
td
,
.table-lineHover
td
{
background-color
:
#fafafa
;
border-right-color
:
#fafafa
}
.table-expendRow
td
{
padding
:
0
0
5px
36px
}
.table-expendRow
td
span
{
margin-left
:
60px
}
.table-expendRow
td
a
{
padding
:
1px
5px
;
font-size
:
12px
;
line-height
:
1.5
;
border-radius
:
3px
;
text-decoration
:
none
;
color
:
#FFF
;
background-color
:
#c7cbd6
;
border-color
:
#c7cbd6
}
.table-expendRow
td
a
:hover
{
background-color
:
#b0b5b9
;
border-color
:
#b0b5b9
}
.table-center
{
margin
:
0
auto
}
.table-tag
{
color
:
#D54121
;
font-size
:
12px
;
font-style
:
italic
;
margin-left
:
10px
}
.navigation-icon
{
height
:
18px
;
width
:
18px
;
float
:
left
;
margin
:
-1px
10px
0
0
}
#preferenceSignButton1
,
#preferenceSignButton2
,
#preferenceSignButton3
{
margin
:
10px
0
}
#tabPreferencePanel
label
,
#tabPreferencePanel_setting
label
,
.form__no-table
label
{
width
:
100%
;
margin-top
:
10px
;
font-weight
:
bold
}
.page-list__label
{
width
:
100%
}
.search-btn
{
position
:
absolute
;
top
:
28px
;
right
:
27px
;
border-radius
:
0
4px
4px
0
}
.vditor-toolbar
label
{
margin-bottom
:
0
}
.vditor
.vditor-textarea
{
border
:
0
;
resize
:
none
;
padding
:
10px
;
box-sizing
:
border-box
;
background-color
:
#fafbfc
;
outline
:
0
none
;
font-size
:
16px
;
line-height
:
22px
;
color
:
#24292e
;
border-radius
:
0
0
3px
3px
}
@media
(
max-width
:
768px
){
#top
>
a
{
display
:
none
}
#tabsPanel
{
margin-left
:
0
}
.footer
{
padding-left
:
0
}
.skinPreview
{
width
:
100%
;
height
:
auto
;
margin
:
0
}
.tip
{
left
:
12px
}
#tabs
{
transition
:
all
0.15s
ease-in-out
;
left
:
-240px
;
z-index
:
100
}
.top__menu
{
font-size
:
22px
;
margin
:
12px
;
float
:
left
;
display
:
block
}
.fn__flex
{
display
:
block
}
#permalink
{
margin
:
0
!important
}
.permalink__label
{
margin-bottom
:
10px
!important
}
.viewpwd__panel
,
.article-commentable__panel
{
float
:
none
}
#viewPwd
{
width
:
100%
!important
}
.viewpwd__panel
label
{
margin-top
:
20px
}
.signs
label
{
width
:
100%
}
.table-expendRow
td
{
padding-left
:
10px
}
.about-margin
{
margin-bottom
:
10px
}
.about__iframe
{
margin
:
0
0
20px
0
!important
}
.about-logo
{
margin
:
0
auto
;
display
:
block
;
float
:
none
;
width
:
128px
}
.about__panel
{
margin-left
:
0
!important
}
.dialog-panel
{
left
:
0
!important
;
top
:
0
!important
;
padding
:
10px
!important
;
box-sizing
:
border-box
!important
;
width
:
100%
!important
}
.tabs__bg
{
display
:
none
;
width
:
100vw
;
height
:
100vh
;
background-color
:
rgba
(
0
,
0
,
0
,
0.4
);
position
:
fixed
;
top
:
0
;
z-index
:
78
}}
src/main/webapp/scss/base.css
View file @
3bc97fde
html
{
-webkit-text-size-adjust
:
100%
;
-ms-text-size-adjust
:
100%
;
height
:
100%
}
body
{
margin
:
0
;
font-family
:
"Helvetica Neue"
,
"Luxi Sans"
,
"DejaVu Sans"
,
Tahoma
,
"Hiragino Sans GB"
,
"Microsoft Yahei"
,
sans-serif
;
font-size
:
14px
;
background-color
:
#fff
;
-webkit-font-smoothing
:
antialiased
;
-webkit-overflow-scrolling
:
touch
}
::-moz-selection
{
text-shadow
:
none
;
background
:
rgba
(
65
,
131
,
196
,
0.4
)}
::selection
{
text-shadow
:
none
;
background
:
rgba
(
66
,
133
,
244
,
0.4
)}
ul
,
ol
{
margin
:
0
;
padding
:
0
}
h1
,
h2
,
h3
,
h4
,
h5
,
h6
,
dl
,
dd
,
p
{
margin
:
0
}
article
,
aside
,
details
,
figcaption
,
figure
,
footer
,
header
,
hgroup
,
nav
,
section
{
display
:
block
}
audio
,
canvas
,
video
{
display
:
inline-block
}
audio
:not
([
controls
])
{
display
:
none
}
a
{
outline
:
0
;
text-decoration
:
none
}
a
:hover
{
text-decoration
:
underline
}
sub
,
sup
{
position
:
relative
;
font-size
:
75%
;
line-height
:
0
;
vertical-align
:
baseline
}
sup
{
top
:
-0.5em
}
sub
{
bottom
:
-0.25em
}
img
{
max-width
:
100%
;
vertical-align
:
middle
;
border
:
0
;
height
:
auto
;
-ms-interpolation-mode
:
bicubic
;
overflow
:
hidden
;
font-size
:
12px
}
button
,
input
,
select
,
textarea
{
margin
:
0
;
font-size
:
100%
;
vertical-align
:
middle
;
font-family
:
"Helvetica Neue"
,
"Luxi Sans"
,
"DejaVu Sans"
,
Tahoma
,
"Hiragino Sans GB"
,
"Microsoft Yahei"
,
sans-serif
;
outline
:
none
}
button
,
input
{
line-height
:
normal
}
button
::-moz-focus-inner
,
input
::-moz-focus-inner
{
padding
:
0
;
border
:
0
}
button
,
input
[
type
=
"button"
],
input
[
type
=
"reset"
],
input
[
type
=
"submit"
]
{
cursor
:
pointer
;
-webkit-appearance
:
button
}
input
[
type
=
"search"
]
{
box-sizing
:
content-box
;
-webkit-appearance
:
textfield
}
input
[
type
=
"search"
]
::-webkit-search-decoration
,
input
[
type
=
"search"
]
::-webkit-search-cancel-button
{
-webkit-appearance
:
none
}
textarea
{
overflow
:
auto
;
resize
:
vertical
}
svg
{
fill
:
currentColor
;
display
:
inline-block
;
stroke-width
:
0
;
stroke
:
currentColor
;
width
:
14px
;
height
:
14px
}
blockquote
{
margin
:
0
}
@keyframes
tooltip-appear
{
from
{
opacity
:
0
}
to
{
opacity
:
1
}}
.vditor-tooltipped
{
position
:
relative
;
cursor
:
pointer
}
.vditor-tooltipped
::after
{
position
:
absolute
;
z-index
:
1000000
;
display
:
none
;
padding
:
5px
8px
;
font-size
:
11px
;
font-weight
:
normal
;
-webkit-font-smoothing
:
subpixel-antialiased
;
color
:
#fff
;
text-align
:
center
;
text-decoration
:
none
;
text-shadow
:
none
;
text-transform
:
none
;
letter-spacing
:
normal
;
word-wrap
:
break-word
;
white-space
:
pre
;
pointer-events
:
none
;
content
:
attr
(
aria-label
);
background
:
rgba
(
0
,
0
,
0
,
0.8
);
border-radius
:
3px
;
line-height
:
16px
;
opacity
:
0
}
.vditor-tooltipped
::before
{
position
:
absolute
;
z-index
:
1000001
;
display
:
none
;
width
:
0
;
height
:
0
;
color
:
rgba
(
0
,
0
,
0
,
0.8
);
pointer-events
:
none
;
content
:
""
;
border
:
5px
solid
transparent
;
opacity
:
0
}
.vditor-tooltipped--hover
::before
,
.vditor-tooltipped--hover
::after
,
.vditor-tooltipped
:hover::before
,
.vditor-tooltipped
:hover::after
,
.vditor-tooltipped
:active::before
,
.vditor-tooltipped
:active::after
,
.vditor-tooltipped
:focus::before
,
.vditor-tooltipped
:focus::after
{
display
:
inline-block
;
text-decoration
:
none
;
animation-name
:
tooltip-appear
;
animation-duration
:
0.1
s
;
animation-fill-mode
:
forwards
;
animation-timing-function
:
ease-in
;
animation-delay
:
0.4s
}
.vditor-tooltipped__s
::after
,
.vditor-tooltipped__se
::after
,
.vditor-tooltipped__sw
::after
{
top
:
100%
;
right
:
50%
;
margin-top
:
5px
}
.vditor-tooltipped__s
::before
,
.vditor-tooltipped__se
::before
,
.vditor-tooltipped__sw
::before
{
top
:
auto
;
right
:
50%
;
bottom
:
-5px
;
margin-right
:
-5px
;
border-bottom-color
:
rgba
(
0
,
0
,
0
,
0.8
)}
.vditor-tooltipped__se
::after
{
right
:
auto
;
left
:
50%
;
margin-left
:
-15px
}
.vditor-tooltipped__sw
::after
{
margin-right
:
-15px
}
.vditor-tooltipped__n
::after
,
.vditor-tooltipped__ne
::after
,
.vditor-tooltipped__nw
::after
{
right
:
50%
;
bottom
:
100%
;
margin-bottom
:
5px
}
.vditor-tooltipped__n
::before
,
.vditor-tooltipped__ne
::before
,
.vditor-tooltipped__nw
::before
{
top
:
-5px
;
right
:
50%
;
bottom
:
auto
;
margin-right
:
-5px
;
border-top-color
:
rgba
(
0
,
0
,
0
,
0.8
)}
.vditor-tooltipped__ne
::after
{
right
:
auto
;
left
:
50%
;
margin-left
:
-15px
}
.vditor-tooltipped__nw
::after
{
margin-right
:
-15px
}
.vditor-tooltipped__s
::after
,
.vditor-tooltipped__n
::after
{
transform
:
translateX
(
50%
)}
.vditor-tooltipped__w
::after
{
right
:
100%
;
bottom
:
50%
;
margin-right
:
5px
;
transform
:
translateY
(
50%
)}
.vditor-tooltipped__w
::before
{
top
:
50%
;
bottom
:
50%
;
left
:
-5px
;
margin-top
:
-5px
;
border-left-color
:
rgba
(
0
,
0
,
0
,
0.8
)}
.vditor-tooltipped__e
::after
{
bottom
:
50%
;
left
:
100%
;
margin-left
:
5px
;
transform
:
translateY
(
50%
)}
.vditor-tooltipped__e
::before
{
top
:
50%
;
right
:
-5px
;
bottom
:
50%
;
margin-top
:
-5px
;
border-right-color
:
rgba
(
0
,
0
,
0
,
0.8
)}
@keyframes
scale-in
{
0
%
{
opacity
:
0
;
transform
:
scale
(
0.5
)}
100
%
{
opacity
:
1
;
transform
:
scale
(
1
)}}
.vditor-panel
{
background-color
:
#fff
;
position
:
absolute
;
box-shadow
:
0
1px
2px
rgba
(
0
,
0
,
0
,
0.2
);
border-radius
:
3px
;
padding
:
5px
;
z-index
:
1
;
font-size
:
14px
;
display
:
none
;
user-select
:
none
;
max-width
:
320px
;
min-width
:
80px
;
animation-duration
:
.15s
;
animation-name
:
scale-in
;
animation-timing-function
:
cubic-bezier
(
0.2
,
0
,
0.13
,
1.5
)}
.vditor-panel
h1
,
.vditor-panel
h2
,
.vditor-panel
h3
,
.vditor-panel
h4
,
.vditor-panel
h5
,
.vditor-panel
h6
{
margin
:
0
;
cursor
:
pointer
;
padding
:
3px
10px
;
border-radius
:
3px
;
line-height
:
normal
}
.vditor-panel
h1
:hover
,
.vditor-panel
h2
:hover
,
.vditor-panel
h3
:hover
,
.vditor-panel
h4
:hover
,
.vditor-panel
h5
:hover
,
.vditor-panel
h6
:hover
{
background-color
:
#4285f4
;
color
:
#fff
}
.vditor-toolbar
{
background-color
:
#f6f8fa
;
border-bottom
:
1px
solid
#d1d5da
;
padding
:
0
5px
;
border-radius
:
3px
3px
0
0
}
.vditor-toolbar
>
div
{
padding
:
10px
5px
;
float
:
left
;
line-height
:
14px
;
height
:
36px
;
box-sizing
:
border-box
}
.vditor-toolbar
svg
{
fill
:
currentColor
;
display
:
inline-block
;
stroke-width
:
0
;
stroke
:
currentColor
;
width
:
14px
;
height
:
14px
}
.vditor-toolbar
.vditor-tooltipped
{
color
:
#586069
}
.vditor-toolbar
.vditor-tooltipped
:hover
{
color
:
#4285f4
}
.vditor-toolbar
label
{
overflow
:
hidden
;
position
:
relative
;
height
:
14px
;
width
:
15px
;
display
:
block
;
cursor
:
pointer
}
.vditor-toolbar
label
svg
{
position
:
absolute
;
top
:
0
;
left
:
0
}
.vditor-toolbar
label
input
{
position
:
absolute
;
width
:
15px
;
height
:
15px
;
top
:
0
;
left
:
0
;
opacity
:
.001
;
overflow
:
hidden
}
.vditor-menu--current
svg
{
color
:
#4285f4
}
.vditor-menu__divider
{
width
:
10px
}
.vditor-menu__br
{
width
:
100%
;
padding
:
0
!important
;
height
:
0
!important
}
.vditor-emojis
{
display
:
inline-block
;
overflow
:
auto
}
.vditor-emojis
::-webkit-scrollbar
{
display
:
none
}
.vditor-emojis__tip
{
flex
:
1
;
width
:
200px
;
margin-right
:
10px
;
color
:
#586069
;
white-space
:
nowrap
;
text-overflow
:
ellipsis
;
overflow
:
hidden
}
.vditor-emojis__tail
{
margin-top
:
5px
;
font-size
:
12px
;
color
:
#586069
;
display
:
flex
}
.vditor-emojis__tail
a
{
text-decoration
:
none
;
color
:
#586069
}
.vditor-emojis__tail
a
:hover
{
color
:
#4285f4
}
.vditor-emojis
span
{
cursor
:
pointer
;
border-radius
:
3px
;
float
:
left
;
height
:
30px
;
width
:
30px
;
text-align
:
center
;
line-height
:
26px
;
padding
:
3px
;
box-sizing
:
border-box
;
font-size
:
16px
;
transition
:
all
0.15s
ease-in-out
}
.vditor-emojis
span
:hover
{
transform
:
scale
(
1.2
)}
.vditor-emojis
img
{
height
:
20px
;
width
:
20px
;
float
:
left
;
margin
:
3px
0
0
3px
}
.vditor
{
display
:
flex
;
flex-direction
:
column
;
border
:
1px
solid
#d1d5da
;
border-radius
:
3px
;
box-sizing
:
border-box
}
.vditor--fullscreen
{
position
:
fixed
;
top
:
0
;
width
:
100%
!important
;
left
:
0
;
height
:
100vh
!important
;
z-index
:
90
;
background-color
:
#fff
}
.vditor-content
{
display
:
flex
;
min-height
:
60px
;
flex
:
1
;
position
:
relative
}
.vditor-textarea
{
height
:
100%
;
overflow
:
auto
;
width
:
100%
;
flex
:
1
;
border
:
0
;
resize
:
none
;
padding
:
10px
;
box-sizing
:
border-box
;
background-color
:
#fafbfc
;
outline
:
0
none
;
font-size
:
16px
;
line-height
:
22px
;
color
:
#24292e
;
border-radius
:
0
0
3px
3px
}
.vditor-textarea
[
disabled
]
{
opacity
:
0.3
;
cursor
:
not-allowed
}
.vditor-textarea
:focus
{
background-color
:
#fff
}
.vditor-textarea
:empty::before
{
content
:
attr
(
placeholder
);
color
:
rgba
(
36
,
41
,
46
,
0.68
)}
.vditor-preview
{
flex
:
1
;
background-color
:
#fff
;
overflow
:
auto
;
padding
:
10px
;
box-shadow
:
inset
1px
0
#d1d5da
;
box-sizing
:
border-box
;
border-radius
:
0
0
3px
0
}
.vditor-preview
::-webkit-scrollbar
{
display
:
none
}
.vditor-counter
{
padding
:
0
3px
;
position
:
absolute
;
bottom
:
10px
;
right
:
20px
;
color
:
#24292e
;
background-color
:
rgba
(
255
,
255
,
255
,
0.6
);
border-radius
:
3px
;
font-size
:
12px
;
user-select
:
none
}
.vditor-counter--error
{
color
:
#d23f31
;
background-color
:
rgba
(
210
,
63
,
49
,
0.1
)}
.vditor-resize
{
padding
:
1px
0
;
border-radius
:
5px
;
cursor
:
row-resize
;
transition
:
all
0.15s
ease-in-out
;
user-select
:
none
;
background-color
:
#f6f8fa
}
.vditor-resize
:hover
{
background-color
:
#4285f4
}
.vditor-resize
:hover
svg
{
color
:
#fff
}
.vditor-resize
svg
{
fill
:
currentColor
;
stroke-width
:
0
;
stroke
:
currentColor
;
width
:
13px
;
height
:
3px
;
display
:
block
;
margin
:
0
auto
;
color
:
#586069
}
.vditor-upload
{
opacity
:
0
;
position
:
absolute
;
width
:
100%
;
height
:
5px
;
left
:
0
;
top
:
-3px
;
border-radius
:
3px
;
overflow
:
hidden
;
transition
:
all
0.15s
ease-in-out
;
color
:
#fff
;
font-size
:
12px
;
line-height
:
14px
}
.vditor-upload
ul
{
margin
:
0
}
.vditor-upload--tip
{
height
:
auto
;
opacity
:
1
!important
}
.vditor-upload--tip
.vditor-upload__close
{
display
:
block
}
.vditor-upload__close
{
display
:
none
;
position
:
absolute
;
right
:
5px
;
cursor
:
pointer
;
padding
:
5px
;
top
:
0
}
.vditor-upload__progress
{
height
:
100%
;
background-color
:
rgba
(
66
,
133
,
244
,
0.8
);
transition
:
all
0.15s
ease-in-out
;
padding
:
5px
;
box-sizing
:
border-box
}
.vditor-hint
{
background-color
:
#fff
;
position
:
absolute
;
box-shadow
:
0
1px
2px
rgba
(
0
,
0
,
0
,
0.2
);
border-radius
:
3px
;
padding
:
5px
0
;
z-index
:
1
;
line-height
:
20px
;
list-style
:
none
;
color
:
#24292e
;
font-size
:
12px
;
margin
:
0
;
max-width
:
200px
;
min-width
:
80px
;
display
:
none
}
.vditor-hint
li
{
cursor
:
pointer
;
padding
:
3px
10px
;
border-bottom
:
1px
solid
#d1d5da
;
line-height
:
20px
}
.vditor-hint
li
:last-child
{
border-bottom
:
0
}
.vditor-hint--current
,
.vditor-hint
li
:hover
{
background-color
:
#4285f4
;
color
:
#fff
}
.vditor-hint__emoji
{
font-size
:
16px
;
float
:
left
;
margin-right
:
3px
}
.vditor-hint
img
{
height
:
20px
;
width
:
20px
;
float
:
left
;
margin-right
:
3px
}
.vditor-reset
{
font-family
:
"Helvetica Neue"
,
"Luxi Sans"
,
"DejaVu Sans"
,
Tahoma
,
"Hiragino Sans GB"
,
"Microsoft Yahei"
,
sans-serif
;
word-wrap
:
break-word
;
overflow
:
auto
;
line-height
:
1.65
;
font-size
:
16px
;
word-break
:
break-word
}
.vditor-reset
ul
ul
ul
{
list-style-type
:
square
}
.vditor-reset
ul
ul
{
list-style-type
:
circle
}
.vditor-reset
ul
{
list-style-type
:
disc
}
.vditor-reset
ul
,
.vditor-reset
ol
{
padding-left
:
2em
;
margin-top
:
0
;
margin-bottom
:
16px
}
.vditor-reset
li
{
margin-top
:
0.25em
}
.vditor-reset
audio
{
max-width
:
100%
}
.vditor-reset
video
{
max-height
:
90vh
}
.vditor-reset
img
.emoji
{
cursor
:
auto
;
max-width
:
20px
;
vertical-align
:
sub
}
.vditor-reset
h1
,
.vditor-reset
h2
,
.vditor-reset
h3
,
.vditor-reset
h4
,
.vditor-reset
h5
,
.vditor-reset
h6
{
margin-top
:
24px
;
margin-bottom
:
16px
;
font-weight
:
600
;
line-height
:
1.25
}
.vditor-reset
h1
{
padding-bottom
:
0.3em
;
font-size
:
1.7em
;
border-bottom
:
1px
solid
#eee
}
.vditor-reset
h2
{
padding-bottom
:
0.3em
;
font-size
:
1.5em
;
border-bottom
:
1px
solid
#eee
}
.vditor-reset
h3
{
font-size
:
1.25em
}
.vditor-reset
h4
{
font-size
:
1em
}
.vditor-reset
h5
{
font-size
:
0.875em
}
.vditor-reset
h6
{
font-size
:
0.85em
}
.vditor-reset
hr
{
height
:
2px
;
padding
:
0
;
margin
:
24px
0
;
background-color
:
#e7e7e7
;
border
:
0
}
.vditor-reset
p
{
margin-top
:
0
;
margin-bottom
:
16px
}
.vditor-reset
blockquote
{
padding
:
0
1em
;
color
:
#777
;
border-left
:
0.25em
solid
#ddd
;
margin
:
0
0
16px
0
}
.vditor-reset
blockquote
p
{
margin
:
0
}
.vditor-reset
ins
>
iframe
{
border
:
0
}
.vditor-reset
iframe
{
border
:
1px
solid
#d1d5da
;
max-width
:
100%
;
box-sizing
:
border-box
}
.vditor-reset
table
{
width
:
100%
;
border
:
1px
solid
#dedede
;
margin
:
15px
auto
;
border-collapse
:
collapse
;
empty-cells
:
show
}
.vditor-reset
thead
{
text-align
:
center
}
.vditor-reset
td
,
.vditor-reset
th
{
height
:
35px
;
border
:
1px
solid
#dedede
;
padding
:
0
10px
}
.vditor-reset
th
{
font-weight
:
bold
;
text-align
:
center
!important
;
background
:
rgba
(
158
,
188
,
226
,
0.2
)}
.vditor-reset
tbody
tr
:nth-child
(
2n
)
{
background
:
rgba
(
158
,
188
,
226
,
0.12
)}
.vditor-reset
tr
:hover
{
background
:
#efefef
}
.vditor-reset
code
{
padding
:
0.2em
0.4em
;
margin
:
0
;
font-size
:
85%
;
border-radius
:
3px
;
font-family
:
mononoki
,
Consolas
,
"Liberation Mono"
,
Menlo
,
Courier
,
monospace
;
word-break
:
break-word
;
background-size
:
20px
20px
;
background-image
:
url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8AgMAAABHkjHhAAAACVBMVEWAgIBaWlo+Pj7rTFvWAAAAA3RSTlMHCAw+VhR4AAAA+klEQVQoz4WSMW7EQAhFPxKWNh2FCx+HkaZI6RRb5DYbyVfIJXLKDCFoMbaTKSw/8ZnPAPjaH2xgZcUNUDADD7D9LtDBCLZ45fbkvo/30K8yeI64pPwl6znd/3n/Oe93P3ho9qeh72btTFzqkz0rsJle8Zr81OLEwZ1dv/713uWqvu2pl+k0fy7MWtj9r/tN5q/02z89qa/L4Dc2LvM93kezPfXlME/O86EbY/V9GB9ePX8G1/6W+/9h1dq/HGfTfzT3j/xNo7522Bfnqe5jO/fvhVthlfk434v3iO9zG/UOphyPeinPl1J8Gtaa7xPTa/Dk+RIs4deMvwGvcGsmsCvJ0AAAAABJRU5ErkJggg==)
}
.vditor-reset
pre
>
code
{
padding
:
0.5em
;
border-radius
:
5px
;
display
:
block
;
overflow
:
auto
}
.vditor-reset
pre
:hover
div
.vditor-copy
{
display
:
block
}
.vditor-reset
kbd
{
display
:
inline-block
;
padding
:
3px
5px
;
font
:
11px
Consolas
,
"Liberation Mono"
,
Menlo
,
Courier
,
monospace
;
line-height
:
10px
;
color
:
#555
;
vertical-align
:
middle
;
background-color
:
#fcfcfc
;
border
:
solid
1px
#d1d5da
;
border-bottom-color
:
#bbb
;
border-radius
:
3px
;
box-shadow
:
inset
0
-1px
0
#bbb
}
.vditor-reset
summary
{
cursor
:
pointer
}
.vditor-reset
summary
:focus
{
outline
:
none
}
.vditor-reset
svg
{
height
:
auto
;
width
:
auto
}
.vditor-reset
p
:last-child
,
.vditor-reset
blockquote
:last-child
,
.vditor-reset
pre
:last-child
,
.vditor-reset
ul
:last-child
,
.vditor-reset
ol
:last-child
,
.vditor-reset
hr
:last-child
{
margin-bottom
:
0
}
.vditor-reset
.katex
{
position
:
relative
}
.vditor-reset
.language-echarts
{
overflow
:
hidden
;
height
:
420px
}
.vditor-task
{
list-style
:
none
;
margin-left
:
-1.4em
;
display
:
flex
;
align-items
:
center
}
.vditor-task
input
{
margin-right
:
5px
}
.vditor-copy
{
position
:
relative
;
display
:
none
}
.vditor-copy
textarea
{
position
:
absolute
;
left
:
-100000px
}
.vditor-copy
span
{
cursor
:
pointer
;
position
:
absolute
;
right
:
0.5em
;
top
:
0.5em
;
height
:
14px
;
width
:
14px
;
display
:
block
;
background-color
:
#f6f8fa
;
border-radius
:
3px
;
padding
:
3px
}
.vditor-copy
svg
{
color
:
#586069
;
height
:
14px
;
width
:
14px
;
display
:
block
;
fill
:
currentColor
}
textarea
{
overflow
:
hidden
}
button
,
.button
{
background
:
url(../images/icon.png)
repeat
center
bottom
;
border
:
1px
solid
;
border-color
:
#CCC
#BBBBBB
#A0A0A0
;
border-radius
:
4px
;
height
:
28px
;
margin
:
0
;
padding
:
0
6px
;
vertical-align
:
top
}
button
:hover
,
.button
:hover
{
border-color
:
#BBB
}
.padding12
{
padding
:
12px
}
.paddingBottom12
{
padding-bottom
:
12px
!important
}
.paddingTop12
{
padding-top
:
12px
!important
}
.margin12
{
margin
:
12px
}
.marginTop12
{
margin-top
:
12px
!important
}
.marginBottom12
{
margin-bottom
:
12px
!important
}
.marginLeft12
{
margin-left
:
12px
!important
}
.marginLeft6
{
margin-left
:
6px
!important
}
.marginRight12
{
margin-right
:
12px
!important
}
.f-bold
{
font-weight
:
bold
!important
}
.nowrap
{
white-space
:
nowrap
}
.left
{
float
:
left
}
.right
{
float
:
right
}
.clear
{
background-color
:
transparent
;
border
:
0
;
clear
:
both
;
display
:
block
;
font-size
:
0
;
height
:
0
;
line-height
:
0
;
overflow
:
hidden
}
.fn-clear
:before
,
.fn-clear
:after
{
display
:
table
;
content
:
""
}
.fn-clear
:after
{
clear
:
both
}
.fn__flex
{
display
:
flex
}
.fn__flex1
{
flex
:
1
;
min-width
:
1px
}
.fn__flex-inline
{
display
:
inline-flex
!important
;
align-items
:
center
}
.none
{
display
:
none
}
.pointer
{
cursor
:
pointer
}
.no-underline
{
text-decoration
:
none
!important
}
.red
{
color
:
red
}
.contentBody
{
margin-bottom
:
12px
;
padding
:
3px
12px
}
.form
th
{
text-align
:
right
;
white-space
:
nowrap
}
.form
input
[
type
=
'text'
],
.form
input
[
type
=
'password'
],
.form
textarea
{
border-color
:
#C0C0C0
#D9D9D9
#D9D9D9
;
border-right
:
1px
solid
#D9D9D9
;
border-style
:
solid
;
border-width
:
1px
;
font-family
:
Helvetica
,
Arial
,
sans-serif
;
font-size
:
12px
;
outline
:
medium
none
;
width
:
99%
;
padding
:
0
3px
}
.form
input
{
height
:
24px
}
.form
input
[
type
=
'checkbox'
]
{
border
:
0
;
vertical-align
:
sub
;
height
:
20px
}
.form
input
.normalInput
{
width
:
auto
}
.form
input
[
type
=
'checkbox'
]
:focus
{
border
:
0
;
box-shadow
:
0
0
0
}
.form
input
:focus
,
.form
textarea
:focus
{
box-shadow
:
0
1px
2px
rgba
(
0
,
0
,
0
,
0.3
)
inset
}
.form
textarea
{
padding
:
3px
;
overflow
:
auto
;
resize
:
vertical
}
.logo
{
padding
:
0
5px
;
text-decoration
:
none
;
text-shadow
:
0
0
1px
#EEEEEE
}
.putTopIcon
,
.notPutTopIcon
,
.deleteIcon
,
.updateIcon
,
.commentIcon
,
.homeIcon
,
.adminIcon
,
.loginIcon
,
.logoutIcon
,
.calendarIcon
,
.browserIcon
,
.postIcon
,
.articlesIcon
,
.draftsIcon
,
.usersIcon
,
.linkIcon
,
.preferenceIcon
,
.pageIcon
,
.trueIcon
,
.falseIcon
,
.fileIcon
,
.othersIcon
,
.goTopIcon
,
.goBottomIcon
,
.cacheIcon
,
.aboutIcon
{
background-image
:
url("../images/icon.png")
;
cursor
:
pointer
;
height
:
16px
;
width
:
16px
}
.adminIcon
,
.loginIcon
,
.logoutIcon
,
.homeIcon
{
margin-top
:
3px
}
.pageIcon
{
background-position
:
-144px
0px
}
.postIcon
{
background-position
:
-16px
0
}
.linkIcon
{
background-position
:
-32px
0
}
.preferenceIcon
{
background-position
:
-48px
0
}
.articlesIcon
{
background-position
:
-64px
0
}
.trueIcon
{
background-position
:
-80px
0
;
cursor
:
auto
}
.falseIcon
{
background-position
:
-96px
0
;
cursor
:
auto
}
.fileIcon
{
background-position
:
-112px
0
}
.deleteIcon
{
background-position
:
0
-16px
}
.updateIcon
{
background-position
:
-16px
-16px
}
.commentIcon
{
background-position
:
-32px
-16px
}
.homeIcon
{
background-position
:
-64px
-16px
}
.adminIcon
{
background-position
:
-80px
-16px
}
.logoutIcon
{
background-position
:
-96px
-16px
}
.loginIcon
{
background-position
:
-112px
-16px
}
.browserIcon
{
background-position
:
-128px
-16px
}
.calendarIcon
{
background-position
:
-144px
-16px
}
.putTopIcon
{
background-position
:
-16px
-32px
;
float
:
left
}
.notPutTopIcon
{
background-position
:
-32px
-32px
;
float
:
left
}
.othersIcon
{
background-position
:
-48px
-32px
}
.cacheIcon
{
background-position
:
-96px
-32px
}
.draftsIcon
{
background-position
:
-96px
-32px
}
.usersIcon
{
background-position
:
-112px
-32px
}
.goTopIcon
{
background-position
:
-64px
-32px
;
position
:
fixed
;
right
:
20px
;
top
:
45%
}
.goBottomIcon
{
background-position
:
-80px
-32px
;
bottom
:
40%
;
position
:
fixed
;
right
:
20px
}
#tags
{
list-style
:
none
}
#tags
li
{
float
:
left
;
list-style
:
none
;
height
:
38px
}
#tags
a
:hover
{
text-shadow
:
0
0
2px
#555555
}
#tags
a
{
border-radius
:
3px
3px
3px
3px
;
box-shadow
:
1px
1px
3px
#555555
;
float
:
left
;
margin
:
3px
6px
;
padding
:
3px
12px
;
text-decoration
:
none
}
#tags
.tags1
{
font-size
:
12px
;
font-weight
:
normal
}
#tags
.tags2
{
font-size
:
14px
;
font-weight
:
normal
}
#tags
.tags3
{
font-size
:
16px
;
font-weight
:
normal
}
#tags
.tags4
{
font-size
:
18px
;
font-weight
:
bold
}
#tags
.tags5
{
font-size
:
20px
;
font-weight
:
bold
}
#captcha
,
#captchaReply
{
cursor
:
pointer
}
html
{
-webkit-text-size-adjust
:
100%
;
-ms-text-size-adjust
:
100%
;
height
:
100%
}
body
{
margin
:
0
;
font-family
:
"Helvetica Neue"
,
"Luxi Sans"
,
"DejaVu Sans"
,
Tahoma
,
"Hiragino Sans GB"
,
"Microsoft Yahei"
,
sans-serif
;
font-size
:
14px
;
background-color
:
#fff
;
-webkit-font-smoothing
:
antialiased
;
-webkit-overflow-scrolling
:
touch
}
::-moz-selection
{
text-shadow
:
none
;
background
:
rgba
(
65
,
131
,
196
,
0.4
)}
::selection
{
text-shadow
:
none
;
background
:
rgba
(
66
,
133
,
244
,
0.4
)}
ul
,
ol
{
margin
:
0
;
padding
:
0
}
h1
,
h2
,
h3
,
h4
,
h5
,
h6
,
dl
,
dd
,
p
{
margin
:
0
}
article
,
aside
,
details
,
figcaption
,
figure
,
footer
,
header
,
hgroup
,
nav
,
section
{
display
:
block
}
audio
,
canvas
,
video
{
display
:
inline-block
}
audio
:not
([
controls
])
{
display
:
none
}
a
{
outline
:
0
;
text-decoration
:
none
}
a
:hover
{
text-decoration
:
underline
}
sub
,
sup
{
position
:
relative
;
font-size
:
75%
;
line-height
:
0
;
vertical-align
:
baseline
}
sup
{
top
:
-0.5em
}
sub
{
bottom
:
-0.25em
}
img
{
max-width
:
100%
;
vertical-align
:
middle
;
border
:
0
;
height
:
auto
;
-ms-interpolation-mode
:
bicubic
;
overflow
:
hidden
;
font-size
:
12px
}
button
,
input
,
select
,
textarea
{
margin
:
0
;
font-size
:
100%
;
vertical-align
:
middle
;
font-family
:
"Helvetica Neue"
,
"Luxi Sans"
,
"DejaVu Sans"
,
Tahoma
,
"Hiragino Sans GB"
,
"Microsoft Yahei"
,
sans-serif
;
outline
:
none
}
button
,
input
{
line-height
:
normal
}
button
::-moz-focus-inner
,
input
::-moz-focus-inner
{
padding
:
0
;
border
:
0
}
button
,
input
[
type
=
"button"
],
input
[
type
=
"reset"
],
input
[
type
=
"submit"
]
{
cursor
:
pointer
;
-webkit-appearance
:
button
}
input
[
type
=
"search"
]
{
box-sizing
:
content-box
;
-webkit-appearance
:
textfield
}
input
[
type
=
"search"
]
::-webkit-search-decoration
,
input
[
type
=
"search"
]
::-webkit-search-cancel-button
{
-webkit-appearance
:
none
}
textarea
{
overflow
:
auto
;
resize
:
vertical
}
svg
{
fill
:
currentColor
;
display
:
inline-block
;
stroke-width
:
0
;
stroke
:
currentColor
;
width
:
14px
;
height
:
14px
}
blockquote
{
margin
:
0
}
@keyframes
tooltip-appear
{
from
{
opacity
:
0
}
to
{
opacity
:
1
}}
.vditor-tooltipped
{
position
:
relative
;
cursor
:
pointer
}
.vditor-tooltipped
::after
{
position
:
absolute
;
z-index
:
1000000
;
display
:
none
;
padding
:
5px
8px
;
font-size
:
11px
;
font-weight
:
normal
;
-webkit-font-smoothing
:
subpixel-antialiased
;
color
:
#fff
;
text-align
:
center
;
text-decoration
:
none
;
text-shadow
:
none
;
text-transform
:
none
;
letter-spacing
:
normal
;
word-wrap
:
break-word
;
white-space
:
pre
;
pointer-events
:
none
;
content
:
attr
(
aria-label
);
background
:
rgba
(
0
,
0
,
0
,
0.8
);
border-radius
:
3px
;
line-height
:
16px
;
opacity
:
0
}
.vditor-tooltipped
::before
{
position
:
absolute
;
z-index
:
1000001
;
display
:
none
;
width
:
0
;
height
:
0
;
color
:
rgba
(
0
,
0
,
0
,
0.8
);
pointer-events
:
none
;
content
:
""
;
border
:
5px
solid
transparent
;
opacity
:
0
}
.vditor-tooltipped--hover
::before
,
.vditor-tooltipped--hover
::after
,
.vditor-tooltipped
:hover::before
,
.vditor-tooltipped
:hover::after
,
.vditor-tooltipped
:active::before
,
.vditor-tooltipped
:active::after
,
.vditor-tooltipped
:focus::before
,
.vditor-tooltipped
:focus::after
{
display
:
inline-block
;
text-decoration
:
none
;
animation-name
:
tooltip-appear
;
animation-duration
:
0.1
5s
;
animation-fill-mode
:
forwards
;
animation-timing-function
:
ease-in
}
.vditor-tooltipped__s
::after
,
.vditor-tooltipped__se
::after
,
.vditor-tooltipped__sw
::after
{
top
:
100%
;
right
:
50%
;
margin-top
:
5px
}
.vditor-tooltipped__s
::before
,
.vditor-tooltipped__se
::before
,
.vditor-tooltipped__sw
::before
{
top
:
auto
;
right
:
50%
;
bottom
:
-5px
;
margin-right
:
-5px
;
border-bottom-color
:
rgba
(
0
,
0
,
0
,
0.8
)}
.vditor-tooltipped__se
::after
{
right
:
auto
;
left
:
50%
;
margin-left
:
-15px
}
.vditor-tooltipped__sw
::after
{
margin-right
:
-15px
}
.vditor-tooltipped__n
::after
,
.vditor-tooltipped__ne
::after
,
.vditor-tooltipped__nw
::after
{
right
:
50%
;
bottom
:
100%
;
margin-bottom
:
5px
}
.vditor-tooltipped__n
::before
,
.vditor-tooltipped__ne
::before
,
.vditor-tooltipped__nw
::before
{
top
:
-5px
;
right
:
50%
;
bottom
:
auto
;
margin-right
:
-5px
;
border-top-color
:
rgba
(
0
,
0
,
0
,
0.8
)}
.vditor-tooltipped__ne
::after
{
right
:
auto
;
left
:
50%
;
margin-left
:
-15px
}
.vditor-tooltipped__nw
::after
{
margin-right
:
-15px
}
.vditor-tooltipped__s
::after
,
.vditor-tooltipped__n
::after
{
transform
:
translateX
(
50%
)}
.vditor-tooltipped__w
::after
{
right
:
100%
;
bottom
:
50%
;
margin-right
:
5px
;
transform
:
translateY
(
50%
)}
.vditor-tooltipped__w
::before
{
top
:
50%
;
bottom
:
50%
;
left
:
-5px
;
margin-top
:
-5px
;
border-left-color
:
rgba
(
0
,
0
,
0
,
0.8
)}
.vditor-tooltipped__e
::after
{
bottom
:
50%
;
left
:
100%
;
margin-left
:
5px
;
transform
:
translateY
(
50%
)}
.vditor-tooltipped__e
::before
{
top
:
50%
;
right
:
-5px
;
bottom
:
50%
;
margin-top
:
-5px
;
border-right-color
:
rgba
(
0
,
0
,
0
,
0.8
)}
@keyframes
scale-in
{
0
%
{
opacity
:
0
;
transform
:
scale
(
0.5
)}
100
%
{
opacity
:
1
;
transform
:
scale
(
1
)}}
.vditor-panel
{
background-color
:
#fff
;
position
:
absolute
;
box-shadow
:
0
1px
2px
rgba
(
0
,
0
,
0
,
0.2
);
border-radius
:
3px
;
padding
:
5px
;
z-index
:
1
;
font-size
:
14px
;
display
:
none
;
user-select
:
none
;
max-width
:
320px
;
min-width
:
80px
;
animation-duration
:
.15s
;
animation-name
:
scale-in
;
animation-timing-function
:
cubic-bezier
(
0.2
,
0
,
0.13
,
1.5
)}
.vditor-panel
h1
,
.vditor-panel
h2
,
.vditor-panel
h3
,
.vditor-panel
h4
,
.vditor-panel
h5
,
.vditor-panel
h6
{
margin
:
0
;
cursor
:
pointer
;
padding
:
3px
10px
;
border-radius
:
3px
;
line-height
:
normal
}
.vditor-panel
h1
:hover
,
.vditor-panel
h2
:hover
,
.vditor-panel
h3
:hover
,
.vditor-panel
h4
:hover
,
.vditor-panel
h5
:hover
,
.vditor-panel
h6
:hover
{
background-color
:
#4285f4
;
color
:
#fff
}
.vditor-toolbar
{
background-color
:
#f6f8fa
;
border-bottom
:
1px
solid
#d1d5da
;
padding
:
0
5px
;
border-radius
:
3px
3px
0
0
}
.vditor-toolbar
>
div
{
padding
:
10px
5px
;
float
:
left
;
line-height
:
14px
;
height
:
36px
;
box-sizing
:
border-box
}
.vditor-toolbar
svg
{
fill
:
currentColor
;
display
:
inline-block
;
stroke-width
:
0
;
stroke
:
currentColor
;
width
:
14px
;
height
:
14px
}
.vditor-toolbar
.vditor-tooltipped
{
color
:
#586069
}
.vditor-toolbar
.vditor-tooltipped
:hover
{
color
:
#4285f4
}
.vditor-toolbar
label
{
overflow
:
hidden
;
position
:
relative
;
height
:
14px
;
width
:
15px
;
display
:
block
;
cursor
:
pointer
}
.vditor-toolbar
label
svg
{
position
:
absolute
;
top
:
0
;
left
:
0
}
.vditor-toolbar
label
input
{
position
:
absolute
;
width
:
15px
;
height
:
15px
;
top
:
0
;
left
:
0
;
opacity
:
.001
;
overflow
:
hidden
}
.vditor-menu--current
svg
{
color
:
#4285f4
}
.vditor-menu__divider
{
width
:
10px
}
.vditor-menu__br
{
width
:
100%
;
padding
:
0
!important
;
height
:
0
!important
}
.vditor-emojis
{
display
:
inline-block
;
overflow
:
auto
}
.vditor-emojis
::-webkit-scrollbar
{
display
:
none
}
.vditor-emojis__tip
{
flex
:
1
;
width
:
200px
;
margin-right
:
10px
;
color
:
#586069
;
white-space
:
nowrap
;
text-overflow
:
ellipsis
;
overflow
:
hidden
}
.vditor-emojis__tail
{
margin-top
:
5px
;
font-size
:
12px
;
color
:
#586069
;
display
:
flex
}
.vditor-emojis__tail
a
{
text-decoration
:
none
;
color
:
#586069
}
.vditor-emojis__tail
a
:hover
{
color
:
#4285f4
}
.vditor-emojis
span
{
cursor
:
pointer
;
border-radius
:
3px
;
float
:
left
;
height
:
30px
;
width
:
30px
;
text-align
:
center
;
line-height
:
26px
;
padding
:
3px
;
box-sizing
:
border-box
;
font-size
:
16px
;
transition
:
all
0.15s
ease-in-out
}
.vditor-emojis
span
:hover
{
transform
:
scale
(
1.2
)}
.vditor-emojis
img
{
height
:
20px
;
width
:
20px
;
float
:
left
;
margin
:
3px
0
0
3px
}
@keyframes
slideInDown
{
from
{
transform
:
translate3d
(
0
,
-100%
,
0
);
visibility
:
visible
}
to
{
transform
:
translate3d
(
0
,
0
,
0
)}}
.vditor
{
display
:
flex
;
flex-direction
:
column
;
border
:
1px
solid
#d1d5da
;
border-radius
:
3px
;
box-sizing
:
border-box
}
.vditor--fullscreen
{
position
:
fixed
;
top
:
0
;
width
:
100%
!important
;
left
:
0
;
height
:
100vh
!important
;
z-index
:
90
;
background-color
:
#fff
}
.vditor-content
{
display
:
flex
;
min-height
:
60px
;
flex
:
1
;
position
:
relative
}
.vditor-textarea
{
height
:
100%
;
overflow
:
auto
;
width
:
100%
;
flex
:
1
;
border
:
0
;
resize
:
none
;
padding
:
10px
;
box-sizing
:
border-box
;
background-color
:
#fafbfc
;
outline
:
0
none
;
font-size
:
16px
;
line-height
:
22px
;
color
:
#24292e
;
border-radius
:
0
0
3px
3px
}
.vditor-textarea
[
contenteditable
=
"false"
]
{
opacity
:
0.3
;
cursor
:
not-allowed
}
.vditor-textarea
:focus
{
background-color
:
#fff
}
.vditor-textarea
:empty::before
{
content
:
attr
(
placeholder
);
color
:
rgba
(
36
,
41
,
46
,
0.68
)}
.vditor-preview
{
flex
:
1
;
background-color
:
#fff
;
overflow
:
auto
;
padding
:
10px
;
box-shadow
:
inset
1px
0
#d1d5da
;
box-sizing
:
border-box
;
border-radius
:
0
0
3px
0
}
.vditor-preview--editor
{
display
:
none
}
.vditor-preview--both
{
display
:
block
}
.vditor-preview--preview
{
position
:
absolute
;
top
:
0
;
left
:
-1px
;
bottom
:
0
;
right
:
0
;
display
:
block
}
.vditor-preview
>
div
::-webkit-scrollbar
{
display
:
none
}
.vditor-preview
>
.vditor-reset
{
margin
:
0
auto
}
.vditor-counter
{
padding
:
0
3px
;
position
:
absolute
;
bottom
:
10px
;
right
:
20px
;
color
:
#24292e
;
background-color
:
rgba
(
255
,
255
,
255
,
0.6
);
border-radius
:
3px
;
font-size
:
12px
;
user-select
:
none
}
.vditor-counter--error
{
color
:
#d23f31
;
background-color
:
rgba
(
210
,
63
,
49
,
0.1
)}
.vditor-resize
{
padding
:
1px
0
;
border-radius
:
5px
;
cursor
:
row-resize
;
transition
:
all
0.15s
ease-in-out
;
user-select
:
none
;
background-color
:
#f6f8fa
}
.vditor-resize
:hover
{
background-color
:
#4285f4
}
.vditor-resize
:hover
svg
{
color
:
#fff
}
.vditor-resize
svg
{
fill
:
currentColor
;
stroke-width
:
0
;
stroke
:
currentColor
;
width
:
13px
;
height
:
3px
;
display
:
block
;
margin
:
0
auto
;
color
:
#586069
}
.vditor-upload
{
position
:
absolute
;
height
:
3px
;
left
:
0
;
top
:
-2px
;
transition
:
all
0.15s
ease-in-out
;
background-color
:
rgba
(
66
,
133
,
244
,
0.8
)}
.vditor-tip
{
position
:
absolute
;
font-size
:
12px
;
top
:
10px
;
color
:
#fff
;
animation-duration
:
.15s
;
animation-fill-mode
:
both
;
width
:
100%
;
text-align
:
center
}
.vditor-tip--show
{
display
:
block
;
animation-name
:
slideInDown
}
.vditor-tip__content
{
text-align
:
left
;
display
:
inline-block
;
line-height
:
16px
;
padding
:
3px
10px
;
border-radius
:
3px
;
background
:
rgba
(
66
,
133
,
244
,
0.8
);
position
:
relative
}
.vditor-tip__content
ul
{
margin
:
2px
0
;
padding
:
0
0
0
18px
}
.vditor-tip__close
{
position
:
absolute
;
color
:
#586069
;
top
:
-7px
;
right
:
-15px
;
font-weight
:
bold
;
cursor
:
pointer
}
.vditor-tip__close
:hover
{
color
:
#4285f4
}
.vditor-hint
{
background-color
:
#fff
;
position
:
absolute
;
box-shadow
:
0
1px
2px
rgba
(
0
,
0
,
0
,
0.2
);
border-radius
:
3px
;
padding
:
5px
0
;
z-index
:
1
;
line-height
:
20px
;
list-style
:
none
;
color
:
#24292e
;
font-size
:
12px
;
margin
:
0
;
max-width
:
200px
;
min-width
:
80px
;
display
:
none
}
.vditor-hint
li
{
cursor
:
pointer
;
padding
:
3px
10px
;
border-bottom
:
1px
solid
#d1d5da
;
line-height
:
20px
}
.vditor-hint
li
:last-child
{
border-bottom
:
0
}
.vditor-hint--current
,
.vditor-hint
li
:hover
{
background-color
:
#4285f4
;
color
:
#fff
}
.vditor-hint__emoji
{
font-size
:
16px
;
float
:
left
;
margin-right
:
3px
}
.vditor-hint
img
{
height
:
20px
;
width
:
20px
;
float
:
left
;
margin-right
:
3px
}
.vditor-reset
{
font-family
:
"Helvetica Neue"
,
"Luxi Sans"
,
"DejaVu Sans"
,
Tahoma
,
"Hiragino Sans GB"
,
"Microsoft Yahei"
,
sans-serif
;
word-wrap
:
break-word
;
overflow
:
auto
;
line-height
:
1.65
;
font-size
:
16px
;
word-break
:
break-word
}
.vditor-reset
ul
ul
ul
{
list-style-type
:
square
}
.vditor-reset
ul
ul
{
list-style-type
:
circle
}
.vditor-reset
ul
{
list-style-type
:
disc
}
.vditor-reset
ul
,
.vditor-reset
ol
{
padding-left
:
2em
;
margin-top
:
0
;
margin-bottom
:
16px
}
.vditor-reset
li
{
margin-top
:
0.25em
}
.vditor-reset
audio
{
max-width
:
100%
}
.vditor-reset
audio
:focus
{
outline
:
none
}
.vditor-reset
video
{
max-height
:
90vh
}
.vditor-reset
img
.emoji
{
cursor
:
auto
;
max-width
:
20px
;
vertical-align
:
sub
}
.vditor-reset
h1
,
.vditor-reset
h2
,
.vditor-reset
h3
,
.vditor-reset
h4
,
.vditor-reset
h5
,
.vditor-reset
h6
{
margin-top
:
24px
;
margin-bottom
:
16px
;
font-weight
:
600
;
line-height
:
1.25
}
.vditor-reset
h1
{
padding-bottom
:
0.3em
;
font-size
:
1.7em
;
border-bottom
:
1px
solid
#eee
}
.vditor-reset
h2
{
padding-bottom
:
0.3em
;
font-size
:
1.5em
;
border-bottom
:
1px
solid
#eee
}
.vditor-reset
h3
{
font-size
:
1.25em
}
.vditor-reset
h4
{
font-size
:
1em
}
.vditor-reset
h5
{
font-size
:
0.875em
}
.vditor-reset
h6
{
font-size
:
0.85em
}
.vditor-reset
hr
{
height
:
2px
;
padding
:
0
;
margin
:
24px
0
;
background-color
:
#e7e7e7
;
border
:
0
}
.vditor-reset
p
{
margin-top
:
0
;
margin-bottom
:
16px
}
.vditor-reset
blockquote
{
padding
:
0
1em
;
color
:
#777
;
border-left
:
0.25em
solid
#ddd
;
margin
:
0
0
16px
0
}
.vditor-reset
blockquote
p
{
margin
:
0
}
.vditor-reset
ins
>
iframe
{
border
:
0
}
.vditor-reset
iframe
{
border
:
1px
solid
#d1d5da
;
max-width
:
100%
;
box-sizing
:
border-box
}
.vditor-reset
table
{
width
:
100%
;
border
:
1px
solid
#dedede
;
margin
:
15px
auto
;
border-collapse
:
collapse
;
empty-cells
:
show
}
.vditor-reset
thead
{
text-align
:
center
}
.vditor-reset
td
,
.vditor-reset
th
{
height
:
35px
;
border
:
1px
solid
#dedede
;
padding
:
0
10px
}
.vditor-reset
th
{
font-weight
:
bold
;
text-align
:
center
!important
;
background
:
rgba
(
158
,
188
,
226
,
0.2
)}
.vditor-reset
tbody
tr
:nth-child
(
2n
)
{
background
:
rgba
(
158
,
188
,
226
,
0.12
)}
.vditor-reset
tr
:hover
{
background
:
#efefef
}
.vditor-reset
code
{
padding
:
0.2em
0.4em
;
margin
:
0
;
font-size
:
85%
;
border-radius
:
3px
;
font-family
:
mononoki
,
Consolas
,
"Liberation Mono"
,
Menlo
,
Courier
,
monospace
;
word-break
:
break-word
;
background-size
:
20px
20px
;
background-image
:
url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8AgMAAABHkjHhAAAACVBMVEWAgIBaWlo+Pj7rTFvWAAAAA3RSTlMHCAw+VhR4AAAA+klEQVQoz4WSMW7EQAhFPxKWNh2FCx+HkaZI6RRb5DYbyVfIJXLKDCFoMbaTKSw/8ZnPAPjaH2xgZcUNUDADD7D9LtDBCLZ45fbkvo/30K8yeI64pPwl6znd/3n/Oe93P3ho9qeh72btTFzqkz0rsJle8Zr81OLEwZ1dv/713uWqvu2pl+k0fy7MWtj9r/tN5q/02z89qa/L4Dc2LvM93kezPfXlME/O86EbY/V9GB9ePX8G1/6W+/9h1dq/HGfTfzT3j/xNo7522Bfnqe5jO/fvhVthlfk434v3iO9zG/UOphyPeinPl1J8Gtaa7xPTa/Dk+RIs4deMvwGvcGsmsCvJ0AAAAABJRU5ErkJggg==)
}
.vditor-reset
pre
>
code
{
padding
:
0.5em
;
border-radius
:
5px
;
display
:
block
;
overflow
:
auto
}
.vditor-reset
pre
:hover
div
.vditor-copy
{
display
:
block
}
.vditor-reset
kbd
{
display
:
inline-block
;
padding
:
3px
5px
;
font
:
11px
Consolas
,
"Liberation Mono"
,
Menlo
,
Courier
,
monospace
;
line-height
:
10px
;
color
:
#555
;
vertical-align
:
middle
;
background-color
:
#fcfcfc
;
border
:
solid
1px
#d1d5da
;
border-bottom-color
:
#bbb
;
border-radius
:
3px
;
box-shadow
:
inset
0
-1px
0
#bbb
}
.vditor-reset
summary
{
cursor
:
pointer
}
.vditor-reset
summary
:focus
{
outline
:
none
}
.vditor-reset
svg
{
height
:
auto
;
width
:
auto
}
.vditor-reset
p
:last-child
,
.vditor-reset
blockquote
:last-child
,
.vditor-reset
pre
:last-child
,
.vditor-reset
ul
:last-child
,
.vditor-reset
ol
:last-child
,
.vditor-reset
hr
:last-child
{
margin-bottom
:
0
}
.vditor-reset
.katex
{
position
:
relative
}
.vditor-reset
.language-echarts
{
overflow
:
hidden
;
height
:
420px
}
.vditor-task
{
list-style
:
none
;
margin-left
:
-1.4em
;
display
:
flex
;
align-items
:
center
}
.vditor-task
input
{
margin-right
:
5px
}
.vditor-copy
{
position
:
relative
;
display
:
none
}
.vditor-copy
textarea
{
position
:
absolute
;
left
:
-100000px
}
.vditor-copy
span
{
cursor
:
pointer
;
position
:
absolute
;
right
:
0.5em
;
top
:
0.5em
;
height
:
14px
;
width
:
14px
;
display
:
block
;
background-color
:
#f6f8fa
;
border-radius
:
3px
;
padding
:
3px
}
.vditor-copy
svg
{
color
:
#586069
;
height
:
14px
;
width
:
14px
;
display
:
block
;
fill
:
currentColor
}
textarea
{
overflow
:
hidden
}
button
,
.button
{
background
:
url(../images/icon.png)
repeat
center
bottom
;
border
:
1px
solid
;
border-color
:
#CCC
#BBBBBB
#A0A0A0
;
border-radius
:
4px
;
height
:
28px
;
margin
:
0
;
padding
:
0
6px
;
vertical-align
:
top
}
button
:hover
,
.button
:hover
{
border-color
:
#BBB
}
.padding12
{
padding
:
12px
}
.paddingBottom12
{
padding-bottom
:
12px
!important
}
.paddingTop12
{
padding-top
:
12px
!important
}
.margin12
{
margin
:
12px
}
.marginTop12
{
margin-top
:
12px
!important
}
.marginBottom12
{
margin-bottom
:
12px
!important
}
.marginLeft12
{
margin-left
:
12px
!important
}
.marginLeft6
{
margin-left
:
6px
!important
}
.marginRight12
{
margin-right
:
12px
!important
}
.f-bold
{
font-weight
:
bold
!important
}
.nowrap
{
white-space
:
nowrap
}
.left
{
float
:
left
}
.right
{
float
:
right
}
.clear
{
background-color
:
transparent
;
border
:
0
;
clear
:
both
;
display
:
block
;
font-size
:
0
;
height
:
0
;
line-height
:
0
;
overflow
:
hidden
}
.fn-clear
:before
,
.fn-clear
:after
{
display
:
table
;
content
:
""
}
.fn-clear
:after
{
clear
:
both
}
.fn__flex
{
display
:
flex
}
.fn__flex1
{
flex
:
1
;
min-width
:
1px
}
.fn__flex-inline
{
display
:
inline-flex
!important
;
align-items
:
center
}
.none
{
display
:
none
}
.pointer
{
cursor
:
pointer
}
.no-underline
{
text-decoration
:
none
!important
}
.red
{
color
:
red
}
.contentBody
{
margin-bottom
:
12px
;
padding
:
3px
12px
}
.form
th
{
text-align
:
right
;
white-space
:
nowrap
}
.form
input
[
type
=
'text'
],
.form
input
[
type
=
'password'
],
.form
textarea
{
border-color
:
#C0C0C0
#D9D9D9
#D9D9D9
;
border-right
:
1px
solid
#D9D9D9
;
border-style
:
solid
;
border-width
:
1px
;
font-family
:
Helvetica
,
Arial
,
sans-serif
;
font-size
:
12px
;
outline
:
medium
none
;
width
:
99%
;
padding
:
0
3px
}
.form
input
{
height
:
24px
}
.form
input
[
type
=
'checkbox'
]
{
border
:
0
;
vertical-align
:
sub
;
height
:
20px
}
.form
input
.normalInput
{
width
:
auto
}
.form
input
[
type
=
'checkbox'
]
:focus
{
border
:
0
;
box-shadow
:
0
0
0
}
.form
input
:focus
,
.form
textarea
:focus
{
box-shadow
:
0
1px
2px
rgba
(
0
,
0
,
0
,
0.3
)
inset
}
.form
textarea
{
padding
:
3px
;
overflow
:
auto
;
resize
:
vertical
}
.logo
{
padding
:
0
5px
;
text-decoration
:
none
;
text-shadow
:
0
0
1px
#EEEEEE
}
.putTopIcon
,
.notPutTopIcon
,
.deleteIcon
,
.updateIcon
,
.commentIcon
,
.homeIcon
,
.adminIcon
,
.loginIcon
,
.logoutIcon
,
.calendarIcon
,
.browserIcon
,
.postIcon
,
.articlesIcon
,
.draftsIcon
,
.usersIcon
,
.linkIcon
,
.preferenceIcon
,
.pageIcon
,
.trueIcon
,
.falseIcon
,
.fileIcon
,
.othersIcon
,
.goTopIcon
,
.goBottomIcon
,
.cacheIcon
,
.aboutIcon
{
background-image
:
url("../images/icon.png")
;
cursor
:
pointer
;
height
:
16px
;
width
:
16px
}
.adminIcon
,
.loginIcon
,
.logoutIcon
,
.homeIcon
{
margin-top
:
3px
}
.pageIcon
{
background-position
:
-144px
0px
}
.postIcon
{
background-position
:
-16px
0
}
.linkIcon
{
background-position
:
-32px
0
}
.preferenceIcon
{
background-position
:
-48px
0
}
.articlesIcon
{
background-position
:
-64px
0
}
.trueIcon
{
background-position
:
-80px
0
;
cursor
:
auto
}
.falseIcon
{
background-position
:
-96px
0
;
cursor
:
auto
}
.fileIcon
{
background-position
:
-112px
0
}
.deleteIcon
{
background-position
:
0
-16px
}
.updateIcon
{
background-position
:
-16px
-16px
}
.commentIcon
{
background-position
:
-32px
-16px
}
.homeIcon
{
background-position
:
-64px
-16px
}
.adminIcon
{
background-position
:
-80px
-16px
}
.logoutIcon
{
background-position
:
-96px
-16px
}
.loginIcon
{
background-position
:
-112px
-16px
}
.browserIcon
{
background-position
:
-128px
-16px
}
.calendarIcon
{
background-position
:
-144px
-16px
}
.putTopIcon
{
background-position
:
-16px
-32px
;
float
:
left
}
.notPutTopIcon
{
background-position
:
-32px
-32px
;
float
:
left
}
.othersIcon
{
background-position
:
-48px
-32px
}
.cacheIcon
{
background-position
:
-96px
-32px
}
.draftsIcon
{
background-position
:
-96px
-32px
}
.usersIcon
{
background-position
:
-112px
-32px
}
.goTopIcon
{
background-position
:
-64px
-32px
;
position
:
fixed
;
right
:
20px
;
top
:
45%
}
.goBottomIcon
{
background-position
:
-80px
-32px
;
bottom
:
40%
;
position
:
fixed
;
right
:
20px
}
#tags
{
list-style
:
none
}
#tags
li
{
float
:
left
;
list-style
:
none
;
height
:
38px
}
#tags
a
:hover
{
text-shadow
:
0
0
2px
#555555
}
#tags
a
{
border-radius
:
3px
3px
3px
3px
;
box-shadow
:
1px
1px
3px
#555555
;
float
:
left
;
margin
:
3px
6px
;
padding
:
3px
12px
;
text-decoration
:
none
}
#tags
.tags1
{
font-size
:
12px
;
font-weight
:
normal
}
#tags
.tags2
{
font-size
:
14px
;
font-weight
:
normal
}
#tags
.tags3
{
font-size
:
16px
;
font-weight
:
normal
}
#tags
.tags4
{
font-size
:
18px
;
font-weight
:
bold
}
#tags
.tags5
{
font-size
:
20px
;
font-weight
:
bold
}
#captcha
,
#captchaReply
{
cursor
:
pointer
}
src/main/webapp/scss/start.css
View file @
3bc97fde
html
{
-webkit-text-size-adjust
:
100%
;
-ms-text-size-adjust
:
100%
;
height
:
100%
}
body
{
margin
:
0
;
font-family
:
"Helvetica Neue"
,
"Luxi Sans"
,
"DejaVu Sans"
,
Tahoma
,
"Hiragino Sans GB"
,
"Microsoft Yahei"
,
sans-serif
;
font-size
:
14px
;
background-color
:
#fff
;
-webkit-font-smoothing
:
antialiased
;
-webkit-overflow-scrolling
:
touch
}
::-moz-selection
{
text-shadow
:
none
;
background
:
rgba
(
65
,
131
,
196
,
0.4
)}
::selection
{
text-shadow
:
none
;
background
:
rgba
(
66
,
133
,
244
,
0.4
)}
ul
,
ol
{
margin
:
0
;
padding
:
0
}
h1
,
h2
,
h3
,
h4
,
h5
,
h6
,
dl
,
dd
,
p
{
margin
:
0
}
article
,
aside
,
details
,
figcaption
,
figure
,
footer
,
header
,
hgroup
,
nav
,
section
{
display
:
block
}
audio
,
canvas
,
video
{
display
:
inline-block
}
audio
:not
([
controls
])
{
display
:
none
}
a
{
outline
:
0
;
text-decoration
:
none
}
a
:hover
{
text-decoration
:
underline
}
sub
,
sup
{
position
:
relative
;
font-size
:
75%
;
line-height
:
0
;
vertical-align
:
baseline
}
sup
{
top
:
-0.5em
}
sub
{
bottom
:
-0.25em
}
img
{
max-width
:
100%
;
vertical-align
:
middle
;
border
:
0
;
height
:
auto
;
-ms-interpolation-mode
:
bicubic
;
overflow
:
hidden
;
font-size
:
12px
}
button
,
input
,
select
,
textarea
{
margin
:
0
;
font-size
:
100%
;
vertical-align
:
middle
;
font-family
:
"Helvetica Neue"
,
"Luxi Sans"
,
"DejaVu Sans"
,
Tahoma
,
"Hiragino Sans GB"
,
"Microsoft Yahei"
,
sans-serif
;
outline
:
none
}
button
,
input
{
line-height
:
normal
}
button
::-moz-focus-inner
,
input
::-moz-focus-inner
{
padding
:
0
;
border
:
0
}
button
,
input
[
type
=
"button"
],
input
[
type
=
"reset"
],
input
[
type
=
"submit"
]
{
cursor
:
pointer
;
-webkit-appearance
:
button
}
input
[
type
=
"search"
]
{
box-sizing
:
content-box
;
-webkit-appearance
:
textfield
}
input
[
type
=
"search"
]
::-webkit-search-decoration
,
input
[
type
=
"search"
]
::-webkit-search-cancel-button
{
-webkit-appearance
:
none
}
textarea
{
overflow
:
auto
;
resize
:
vertical
}
svg
{
fill
:
currentColor
;
display
:
inline-block
;
stroke-width
:
0
;
stroke
:
currentColor
;
width
:
14px
;
height
:
14px
}
blockquote
{
margin
:
0
}
@keyframes
tooltip-appear
{
from
{
opacity
:
0
}
to
{
opacity
:
1
}}
.vditor-tooltipped
{
position
:
relative
;
cursor
:
pointer
}
.vditor-tooltipped
::after
{
position
:
absolute
;
z-index
:
1000000
;
display
:
none
;
padding
:
5px
8px
;
font-size
:
11px
;
font-weight
:
normal
;
-webkit-font-smoothing
:
subpixel-antialiased
;
color
:
#fff
;
text-align
:
center
;
text-decoration
:
none
;
text-shadow
:
none
;
text-transform
:
none
;
letter-spacing
:
normal
;
word-wrap
:
break-word
;
white-space
:
pre
;
pointer-events
:
none
;
content
:
attr
(
aria-label
);
background
:
rgba
(
0
,
0
,
0
,
0.8
);
border-radius
:
3px
;
line-height
:
16px
;
opacity
:
0
}
.vditor-tooltipped
::before
{
position
:
absolute
;
z-index
:
1000001
;
display
:
none
;
width
:
0
;
height
:
0
;
color
:
rgba
(
0
,
0
,
0
,
0.8
);
pointer-events
:
none
;
content
:
""
;
border
:
5px
solid
transparent
;
opacity
:
0
}
.vditor-tooltipped--hover
::before
,
.vditor-tooltipped--hover
::after
,
.vditor-tooltipped
:hover::before
,
.vditor-tooltipped
:hover::after
,
.vditor-tooltipped
:active::before
,
.vditor-tooltipped
:active::after
,
.vditor-tooltipped
:focus::before
,
.vditor-tooltipped
:focus::after
{
display
:
inline-block
;
text-decoration
:
none
;
animation-name
:
tooltip-appear
;
animation-duration
:
0.1
s
;
animation-fill-mode
:
forwards
;
animation-timing-function
:
ease-in
;
animation-delay
:
0.4s
}
.vditor-tooltipped__s
::after
,
.vditor-tooltipped__se
::after
,
.vditor-tooltipped__sw
::after
{
top
:
100%
;
right
:
50%
;
margin-top
:
5px
}
.vditor-tooltipped__s
::before
,
.vditor-tooltipped__se
::before
,
.vditor-tooltipped__sw
::before
{
top
:
auto
;
right
:
50%
;
bottom
:
-5px
;
margin-right
:
-5px
;
border-bottom-color
:
rgba
(
0
,
0
,
0
,
0.8
)}
.vditor-tooltipped__se
::after
{
right
:
auto
;
left
:
50%
;
margin-left
:
-15px
}
.vditor-tooltipped__sw
::after
{
margin-right
:
-15px
}
.vditor-tooltipped__n
::after
,
.vditor-tooltipped__ne
::after
,
.vditor-tooltipped__nw
::after
{
right
:
50%
;
bottom
:
100%
;
margin-bottom
:
5px
}
.vditor-tooltipped__n
::before
,
.vditor-tooltipped__ne
::before
,
.vditor-tooltipped__nw
::before
{
top
:
-5px
;
right
:
50%
;
bottom
:
auto
;
margin-right
:
-5px
;
border-top-color
:
rgba
(
0
,
0
,
0
,
0.8
)}
.vditor-tooltipped__ne
::after
{
right
:
auto
;
left
:
50%
;
margin-left
:
-15px
}
.vditor-tooltipped__nw
::after
{
margin-right
:
-15px
}
.vditor-tooltipped__s
::after
,
.vditor-tooltipped__n
::after
{
transform
:
translateX
(
50%
)}
.vditor-tooltipped__w
::after
{
right
:
100%
;
bottom
:
50%
;
margin-right
:
5px
;
transform
:
translateY
(
50%
)}
.vditor-tooltipped__w
::before
{
top
:
50%
;
bottom
:
50%
;
left
:
-5px
;
margin-top
:
-5px
;
border-left-color
:
rgba
(
0
,
0
,
0
,
0.8
)}
.vditor-tooltipped__e
::after
{
bottom
:
50%
;
left
:
100%
;
margin-left
:
5px
;
transform
:
translateY
(
50%
)}
.vditor-tooltipped__e
::before
{
top
:
50%
;
right
:
-5px
;
bottom
:
50%
;
margin-top
:
-5px
;
border-right-color
:
rgba
(
0
,
0
,
0
,
0.8
)}
@keyframes
scale-in
{
0
%
{
opacity
:
0
;
transform
:
scale
(
0.5
)}
100
%
{
opacity
:
1
;
transform
:
scale
(
1
)}}
.vditor-panel
{
background-color
:
#fff
;
position
:
absolute
;
box-shadow
:
0
1px
2px
rgba
(
0
,
0
,
0
,
0.2
);
border-radius
:
3px
;
padding
:
5px
;
z-index
:
1
;
font-size
:
14px
;
display
:
none
;
user-select
:
none
;
max-width
:
320px
;
min-width
:
80px
;
animation-duration
:
.15s
;
animation-name
:
scale-in
;
animation-timing-function
:
cubic-bezier
(
0.2
,
0
,
0.13
,
1.5
)}
.vditor-panel
h1
,
.vditor-panel
h2
,
.vditor-panel
h3
,
.vditor-panel
h4
,
.vditor-panel
h5
,
.vditor-panel
h6
{
margin
:
0
;
cursor
:
pointer
;
padding
:
3px
10px
;
border-radius
:
3px
;
line-height
:
normal
}
.vditor-panel
h1
:hover
,
.vditor-panel
h2
:hover
,
.vditor-panel
h3
:hover
,
.vditor-panel
h4
:hover
,
.vditor-panel
h5
:hover
,
.vditor-panel
h6
:hover
{
background-color
:
#4285f4
;
color
:
#fff
}
.vditor-toolbar
{
background-color
:
#f6f8fa
;
border-bottom
:
1px
solid
#d1d5da
;
padding
:
0
5px
;
border-radius
:
3px
3px
0
0
}
.vditor-toolbar
>
div
{
padding
:
10px
5px
;
float
:
left
;
line-height
:
14px
;
height
:
36px
;
box-sizing
:
border-box
}
.vditor-toolbar
svg
{
fill
:
currentColor
;
display
:
inline-block
;
stroke-width
:
0
;
stroke
:
currentColor
;
width
:
14px
;
height
:
14px
}
.vditor-toolbar
.vditor-tooltipped
{
color
:
#586069
}
.vditor-toolbar
.vditor-tooltipped
:hover
{
color
:
#4285f4
}
.vditor-toolbar
label
{
overflow
:
hidden
;
position
:
relative
;
height
:
14px
;
width
:
15px
;
display
:
block
;
cursor
:
pointer
}
.vditor-toolbar
label
svg
{
position
:
absolute
;
top
:
0
;
left
:
0
}
.vditor-toolbar
label
input
{
position
:
absolute
;
width
:
15px
;
height
:
15px
;
top
:
0
;
left
:
0
;
opacity
:
.001
;
overflow
:
hidden
}
.vditor-menu--current
svg
{
color
:
#4285f4
}
.vditor-menu__divider
{
width
:
10px
}
.vditor-menu__br
{
width
:
100%
;
padding
:
0
!important
;
height
:
0
!important
}
.vditor-emojis
{
display
:
inline-block
;
overflow
:
auto
}
.vditor-emojis
::-webkit-scrollbar
{
display
:
none
}
.vditor-emojis__tip
{
flex
:
1
;
width
:
200px
;
margin-right
:
10px
;
color
:
#586069
;
white-space
:
nowrap
;
text-overflow
:
ellipsis
;
overflow
:
hidden
}
.vditor-emojis__tail
{
margin-top
:
5px
;
font-size
:
12px
;
color
:
#586069
;
display
:
flex
}
.vditor-emojis__tail
a
{
text-decoration
:
none
;
color
:
#586069
}
.vditor-emojis__tail
a
:hover
{
color
:
#4285f4
}
.vditor-emojis
span
{
cursor
:
pointer
;
border-radius
:
3px
;
float
:
left
;
height
:
30px
;
width
:
30px
;
text-align
:
center
;
line-height
:
26px
;
padding
:
3px
;
box-sizing
:
border-box
;
font-size
:
16px
;
transition
:
all
0.15s
ease-in-out
}
.vditor-emojis
span
:hover
{
transform
:
scale
(
1.2
)}
.vditor-emojis
img
{
height
:
20px
;
width
:
20px
;
float
:
left
;
margin
:
3px
0
0
3px
}
.vditor
{
display
:
flex
;
flex-direction
:
column
;
border
:
1px
solid
#d1d5da
;
border-radius
:
3px
;
box-sizing
:
border-box
}
.vditor--fullscreen
{
position
:
fixed
;
top
:
0
;
width
:
100%
!important
;
left
:
0
;
height
:
100vh
!important
;
z-index
:
90
;
background-color
:
#fff
}
.vditor-content
{
display
:
flex
;
min-height
:
60px
;
flex
:
1
;
position
:
relative
}
.vditor-textarea
{
height
:
100%
;
overflow
:
auto
;
width
:
100%
;
flex
:
1
;
border
:
0
;
resize
:
none
;
padding
:
10px
;
box-sizing
:
border-box
;
background-color
:
#fafbfc
;
outline
:
0
none
;
font-size
:
16px
;
line-height
:
22px
;
color
:
#24292e
;
border-radius
:
0
0
3px
3px
}
.vditor-textarea
[
disabled
]
{
opacity
:
0.3
;
cursor
:
not-allowed
}
.vditor-textarea
:focus
{
background-color
:
#fff
}
.vditor-textarea
:empty::before
{
content
:
attr
(
placeholder
);
color
:
rgba
(
36
,
41
,
46
,
0.68
)}
.vditor-preview
{
flex
:
1
;
background-color
:
#fff
;
overflow
:
auto
;
padding
:
10px
;
box-shadow
:
inset
1px
0
#d1d5da
;
box-sizing
:
border-box
;
border-radius
:
0
0
3px
0
}
.vditor-preview
::-webkit-scrollbar
{
display
:
none
}
.vditor-counter
{
padding
:
0
3px
;
position
:
absolute
;
bottom
:
10px
;
right
:
20px
;
color
:
#24292e
;
background-color
:
rgba
(
255
,
255
,
255
,
0.6
);
border-radius
:
3px
;
font-size
:
12px
;
user-select
:
none
}
.vditor-counter--error
{
color
:
#d23f31
;
background-color
:
rgba
(
210
,
63
,
49
,
0.1
)}
.vditor-resize
{
padding
:
1px
0
;
border-radius
:
5px
;
cursor
:
row-resize
;
transition
:
all
0.15s
ease-in-out
;
user-select
:
none
;
background-color
:
#f6f8fa
}
.vditor-resize
:hover
{
background-color
:
#4285f4
}
.vditor-resize
:hover
svg
{
color
:
#fff
}
.vditor-resize
svg
{
fill
:
currentColor
;
stroke-width
:
0
;
stroke
:
currentColor
;
width
:
13px
;
height
:
3px
;
display
:
block
;
margin
:
0
auto
;
color
:
#586069
}
.vditor-upload
{
opacity
:
0
;
position
:
absolute
;
width
:
100%
;
height
:
5px
;
left
:
0
;
top
:
-3px
;
border-radius
:
3px
;
overflow
:
hidden
;
transition
:
all
0.15s
ease-in-out
;
color
:
#fff
;
font-size
:
12px
;
line-height
:
14px
}
.vditor-upload
ul
{
margin
:
0
}
.vditor-upload--tip
{
height
:
auto
;
opacity
:
1
!important
}
.vditor-upload--tip
.vditor-upload__close
{
display
:
block
}
.vditor-upload__close
{
display
:
none
;
position
:
absolute
;
right
:
5px
;
cursor
:
pointer
;
padding
:
5px
;
top
:
0
}
.vditor-upload__progress
{
height
:
100%
;
background-color
:
rgba
(
66
,
133
,
244
,
0.8
);
transition
:
all
0.15s
ease-in-out
;
padding
:
5px
;
box-sizing
:
border-box
}
.vditor-hint
{
background-color
:
#fff
;
position
:
absolute
;
box-shadow
:
0
1px
2px
rgba
(
0
,
0
,
0
,
0.2
);
border-radius
:
3px
;
padding
:
5px
0
;
z-index
:
1
;
line-height
:
20px
;
list-style
:
none
;
color
:
#24292e
;
font-size
:
12px
;
margin
:
0
;
max-width
:
200px
;
min-width
:
80px
;
display
:
none
}
.vditor-hint
li
{
cursor
:
pointer
;
padding
:
3px
10px
;
border-bottom
:
1px
solid
#d1d5da
;
line-height
:
20px
}
.vditor-hint
li
:last-child
{
border-bottom
:
0
}
.vditor-hint--current
,
.vditor-hint
li
:hover
{
background-color
:
#4285f4
;
color
:
#fff
}
.vditor-hint__emoji
{
font-size
:
16px
;
float
:
left
;
margin-right
:
3px
}
.vditor-hint
img
{
height
:
20px
;
width
:
20px
;
float
:
left
;
margin-right
:
3px
}
.vditor-reset
{
font-family
:
"Helvetica Neue"
,
"Luxi Sans"
,
"DejaVu Sans"
,
Tahoma
,
"Hiragino Sans GB"
,
"Microsoft Yahei"
,
sans-serif
;
word-wrap
:
break-word
;
overflow
:
auto
;
line-height
:
1.65
;
font-size
:
16px
;
word-break
:
break-word
}
.vditor-reset
ul
ul
ul
{
list-style-type
:
square
}
.vditor-reset
ul
ul
{
list-style-type
:
circle
}
.vditor-reset
ul
{
list-style-type
:
disc
}
.vditor-reset
ul
,
.vditor-reset
ol
{
padding-left
:
2em
;
margin-top
:
0
;
margin-bottom
:
16px
}
.vditor-reset
li
{
margin-top
:
0.25em
}
.vditor-reset
audio
{
max-width
:
100%
}
.vditor-reset
video
{
max-height
:
90vh
}
.vditor-reset
img
.emoji
{
cursor
:
auto
;
max-width
:
20px
;
vertical-align
:
sub
}
.vditor-reset
h1
,
.vditor-reset
h2
,
.vditor-reset
h3
,
.vditor-reset
h4
,
.vditor-reset
h5
,
.vditor-reset
h6
{
margin-top
:
24px
;
margin-bottom
:
16px
;
font-weight
:
600
;
line-height
:
1.25
}
.vditor-reset
h1
{
padding-bottom
:
0.3em
;
font-size
:
1.7em
;
border-bottom
:
1px
solid
#eee
}
.vditor-reset
h2
{
padding-bottom
:
0.3em
;
font-size
:
1.5em
;
border-bottom
:
1px
solid
#eee
}
.vditor-reset
h3
{
font-size
:
1.25em
}
.vditor-reset
h4
{
font-size
:
1em
}
.vditor-reset
h5
{
font-size
:
0.875em
}
.vditor-reset
h6
{
font-size
:
0.85em
}
.vditor-reset
hr
{
height
:
2px
;
padding
:
0
;
margin
:
24px
0
;
background-color
:
#e7e7e7
;
border
:
0
}
.vditor-reset
p
{
margin-top
:
0
;
margin-bottom
:
16px
}
.vditor-reset
blockquote
{
padding
:
0
1em
;
color
:
#777
;
border-left
:
0.25em
solid
#ddd
;
margin
:
0
0
16px
0
}
.vditor-reset
blockquote
p
{
margin
:
0
}
.vditor-reset
ins
>
iframe
{
border
:
0
}
.vditor-reset
iframe
{
border
:
1px
solid
#d1d5da
;
max-width
:
100%
;
box-sizing
:
border-box
}
.vditor-reset
table
{
width
:
100%
;
border
:
1px
solid
#dedede
;
margin
:
15px
auto
;
border-collapse
:
collapse
;
empty-cells
:
show
}
.vditor-reset
thead
{
text-align
:
center
}
.vditor-reset
td
,
.vditor-reset
th
{
height
:
35px
;
border
:
1px
solid
#dedede
;
padding
:
0
10px
}
.vditor-reset
th
{
font-weight
:
bold
;
text-align
:
center
!important
;
background
:
rgba
(
158
,
188
,
226
,
0.2
)}
.vditor-reset
tbody
tr
:nth-child
(
2n
)
{
background
:
rgba
(
158
,
188
,
226
,
0.12
)}
.vditor-reset
tr
:hover
{
background
:
#efefef
}
.vditor-reset
code
{
padding
:
0.2em
0.4em
;
margin
:
0
;
font-size
:
85%
;
border-radius
:
3px
;
font-family
:
mononoki
,
Consolas
,
"Liberation Mono"
,
Menlo
,
Courier
,
monospace
;
word-break
:
break-word
;
background-size
:
20px
20px
;
background-image
:
url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8AgMAAABHkjHhAAAACVBMVEWAgIBaWlo+Pj7rTFvWAAAAA3RSTlMHCAw+VhR4AAAA+klEQVQoz4WSMW7EQAhFPxKWNh2FCx+HkaZI6RRb5DYbyVfIJXLKDCFoMbaTKSw/8ZnPAPjaH2xgZcUNUDADD7D9LtDBCLZ45fbkvo/30K8yeI64pPwl6znd/3n/Oe93P3ho9qeh72btTFzqkz0rsJle8Zr81OLEwZ1dv/713uWqvu2pl+k0fy7MWtj9r/tN5q/02z89qa/L4Dc2LvM93kezPfXlME/O86EbY/V9GB9ePX8G1/6W+/9h1dq/HGfTfzT3j/xNo7522Bfnqe5jO/fvhVthlfk434v3iO9zG/UOphyPeinPl1J8Gtaa7xPTa/Dk+RIs4deMvwGvcGsmsCvJ0AAAAABJRU5ErkJggg==)
}
.vditor-reset
pre
>
code
{
padding
:
0.5em
;
border-radius
:
5px
;
display
:
block
;
overflow
:
auto
}
.vditor-reset
pre
:hover
div
.vditor-copy
{
display
:
block
}
.vditor-reset
kbd
{
display
:
inline-block
;
padding
:
3px
5px
;
font
:
11px
Consolas
,
"Liberation Mono"
,
Menlo
,
Courier
,
monospace
;
line-height
:
10px
;
color
:
#555
;
vertical-align
:
middle
;
background-color
:
#fcfcfc
;
border
:
solid
1px
#d1d5da
;
border-bottom-color
:
#bbb
;
border-radius
:
3px
;
box-shadow
:
inset
0
-1px
0
#bbb
}
.vditor-reset
summary
{
cursor
:
pointer
}
.vditor-reset
summary
:focus
{
outline
:
none
}
.vditor-reset
svg
{
height
:
auto
;
width
:
auto
}
.vditor-reset
p
:last-child
,
.vditor-reset
blockquote
:last-child
,
.vditor-reset
pre
:last-child
,
.vditor-reset
ul
:last-child
,
.vditor-reset
ol
:last-child
,
.vditor-reset
hr
:last-child
{
margin-bottom
:
0
}
.vditor-reset
.katex
{
position
:
relative
}
.vditor-reset
.language-echarts
{
overflow
:
hidden
;
height
:
420px
}
.vditor-task
{
list-style
:
none
;
margin-left
:
-1.4em
;
display
:
flex
;
align-items
:
center
}
.vditor-task
input
{
margin-right
:
5px
}
.vditor-copy
{
position
:
relative
;
display
:
none
}
.vditor-copy
textarea
{
position
:
absolute
;
left
:
-100000px
}
.vditor-copy
span
{
cursor
:
pointer
;
position
:
absolute
;
right
:
0.5em
;
top
:
0.5em
;
height
:
14px
;
width
:
14px
;
display
:
block
;
background-color
:
#f6f8fa
;
border-radius
:
3px
;
padding
:
3px
}
.vditor-copy
svg
{
color
:
#586069
;
height
:
14px
;
width
:
14px
;
display
:
block
;
fill
:
currentColor
}
button
{
background-size
:
110%
110%
;
border
:
1px
solid
rgba
(
27
,
31
,
35
,
0.2
);
font-size
:
13px
;
font-weight
:
700
;
text-shadow
:
0
1px
0
rgba
(
255
,
255
,
255
,
0.9
);
white-space
:
nowrap
;
background-color
:
#eff3f6
;
background-image
:
linear-gradient
(
-180deg
,
#fafbfc
,
#eff3f6
90%
);
color
:
#24292e
;
border-radius
:
3px
;
box-shadow
:
0
1px
3px
rgba
(
0
,
0
,
0
,
0.075
);
outline
:
none
;
padding
:
7px
15px
;
margin-top
:
10px
;
cursor
:
pointer
}
button
:hover
{
background-color
:
#e6ebf1
;
background-image
:
linear-gradient
(
-180deg
,
#f0f3f6
,
#e6ebf1
90%
);
background-position
:
-.5em
;
border-color
:
rgba
(
27
,
31
,
35
,
0.35
)}
a
{
color
:
#4285f4
;
text-decoration
:
none
}
h2
{
background-color
:
#F3F1E5
;
border-radius
:
4px
4px
0
0
;
font-size
:
16px
;
margin
:
0
;
padding
:
10px
20px
}
h2
a
:hover
{
color
:
#d23f31
}
input
[
type
=
password
],
input
[
type
=
text
]
{
border
:
1px
solid
#d1d5da
;
background-color
:
#FAFAFA
;
border-radius
:
3px
;
box-shadow
:
inset
0
1px
2px
rgba
(
27
,
31
,
35
,
0.075
);
padding
:
7px
8px
;
width
:
100%
;
line-height
:
17px
;
box-sizing
:
border-box
;
-moz-box-sizing
:
border-box
;
-webkit-box-sizing
:
border-box
;
outline
:
none
;
margin-top
:
10px
}
input
[
type
=
password
]
:focus
,
input
[
type
=
text
]
:focus
{
background-color
:
#FFF
;
box-shadow
:
inset
0
1px
2px
rgba
(
27
,
31
,
35
,
0.075
),
0
0
0
0.2em
#dbedff
;
border
:
1px
solid
#4285f4
}
.error
{
color
:
#d23f31
;
font-weight
:
bold
}
.wrap
{
border-top
:
5px
solid
#E6E5D9
;
background-color
:
#F3F1E5
;
display
:
flex
;
flex-direction
:
column
;
min-height
:
100vh
;
box-sizing
:
border-box
}
.content-wrap
{
flex
:
1
;
display
:
flex
}
.content
{
background-color
:
#fff
;
margin
:
0
auto
;
width
:
760px
;
align-self
:
center
;
display
:
flex
}
.main
{
border-left
:
1px
solid
#E6E5D9
;
font-size
:
15px
;
padding
:
20px
;
flex
:
1
}
.footerWrapper
{
background-color
:
#FFFFFF
;
border-top
:
1px
solid
#E6E5D9
;
padding
:
12px
0
;
text-align
:
center
}
.a-error
{
text-align
:
right
}
.img-error
{
max-width
:
100%
;
margin
:
20px
auto
;
padding
:
0
;
display
:
block
}
.kill__btns
{
text-align
:
right
}
.kill__img
{
float
:
right
;
margin
:
-280px
0
0
0
}
.kill
.vditor-reset
{
margin
:
10px
}
#github
{
position
:
relative
;
text-align
:
center
}
#github
.github--loading
:after
{
content
:
"Loading..."
;
position
:
absolute
;
height
:
100%
;
width
:
100%
;
top
:
0
;
left
:
0
;
z-index
:
7
;
background-color
:
rgba
(
255
,
255
,
255
,
0.6
);
font-size
:
22px
;
text-align
:
center
;
padding-top
:
135px
;
color
:
#000
;
text-shadow
:
0
1px
2px
rgba
(
0
,
0
,
0
,
0.2
);
box-sizing
:
border-box
}
#github
.github__icon
{
height
:
200px
;
width
:
266px
;
background-image
:
url("../images/github.png")
;
margin
:
0
auto
;
background-size
:
contain
;
cursor
:
pointer
}
#github
.github__icon
:hover
{
background-image
:
url("../images/github.gif")
}
#github
img
{
display
:
none
}
.github__text
{
cursor
:
pointer
;
font-size
:
12px
;
color
:
#666
}
.github__text
ul
{
display
:
none
;
text-align
:
left
;
margin
:
5px
auto
0
;
width
:
280px
;
padding-left
:
24px
;
box-sizing
:
border-box
}
.github__link
{
font-size
:
12px
;
text-decoration
:
underline
;
margin-top
:
10px
;
display
:
block
}
.github__check
{
font-size
:
12px
;
display
:
inline-block
;
margin
:
10px
auto
0
;
align-items
:
center
;
line-height
:
20px
;
color
:
#999
}
.github__check
a
{
color
:
#999
;
text-decoration
:
underline
}
.github__check
input
{
width
:
auto
;
margin-right
:
5px
}
.search
{
border-top
:
5px
solid
#e6e5d9
;
background-color
:
#f3f1e5
;
padding
:
20px
0
20px
84px
;
min-height
:
480px
;
flex
:
1
}
.search__body
{
display
:
flex
;
flex-direction
:
column
}
.search__header
{
margin
:
20px
;
display
:
flex
}
.search__header
a
{
line-height
:
32px
}
.search__input
{
flex
:
1
;
display
:
flex
}
.search__input
input
{
margin
:
0
10px
0
20px
;
width
:
523px
;
height
:
32px
;
line-height
:
32px
}
.search__input
button
{
height
:
32px
;
margin
:
0
}
.search__articles
{
width
:
600px
}
.search__articles
.tag
{
color
:
#616161
;
padding
:
2px
5px
;
border
:
1px
solid
transparent
;
position
:
relative
;
height
:
20px
;
white-space
:
nowrap
;
word-wrap
:
normal
;
background-color
:
#f7f7f7
;
border-radius
:
3px
3px
3px
3px
;
line-height
:
21px
;
font-size
:
12px
;
display
:
inline-block
;
margin-right
:
5px
}
.search__articles
.tag
:hover
{
color
:
#000
;
box-shadow
:
0
1px
2px
rgba
(
0
,
0
,
0
,
0.2
);
text-decoration
:
none
}
.search__articles
header
h1
{
margin
:
0
}
.search__articles
header
h1
>
a
{
font-size
:
18px
;
text-decoration
:
none
;
font-weight
:
normal
}
.search__articles
.meta
{
font-size
:
14px
;
color
:
#999
;
margin
:
5px
0
}
.search__articles
footer
{
margin-bottom
:
30px
}
.search__articles
footer
a
{
text-decoration
:
none
;
font-size
:
13px
}
.search__articles
footer
a
:hover
,
.search__articles
header
h1
>
a
:hover
,
.search__pagination
a
:hover
{
text-decoration
:
underline
}
.search__pagination
a
{
color
:
#4285f4
;
text-decoration
:
none
}
.search__pagination
a
,
.search__pagination
span
{
margin-right
:
5px
}
@media
(
max-width
:
780px
){
.wrap
{
padding
:
40px
0
0
0
}
.content
{
width
:
auto
}
.logo
,
.search__header
img
,
.search__header
>
.fn-right
{
display
:
none
}
.main
{
border
:
0
;
float
:
none
;
width
:
auto
;
padding
:
10px
}
.a-500
,
.a-403
,
.a-404
{
margin
:
0
20px
0
0
}
#init
{
width
:
100%
;
padding
:
0
20px
;
box-sizing
:
border-box
;
left
:
0
}
.search
{
padding
:
20px
;
width
:
100%
;
min-height
:
auto
;
box-sizing
:
border-box
}
.search__input
input
{
width
:
auto
;
flex
:
1
;
margin-left
:
0
}
.search__articles
{
width
:
auto
}}
html
{
-webkit-text-size-adjust
:
100%
;
-ms-text-size-adjust
:
100%
;
height
:
100%
}
body
{
margin
:
0
;
font-family
:
"Helvetica Neue"
,
"Luxi Sans"
,
"DejaVu Sans"
,
Tahoma
,
"Hiragino Sans GB"
,
"Microsoft Yahei"
,
sans-serif
;
font-size
:
14px
;
background-color
:
#fff
;
-webkit-font-smoothing
:
antialiased
;
-webkit-overflow-scrolling
:
touch
}
::-moz-selection
{
text-shadow
:
none
;
background
:
rgba
(
65
,
131
,
196
,
0.4
)}
::selection
{
text-shadow
:
none
;
background
:
rgba
(
66
,
133
,
244
,
0.4
)}
ul
,
ol
{
margin
:
0
;
padding
:
0
}
h1
,
h2
,
h3
,
h4
,
h5
,
h6
,
dl
,
dd
,
p
{
margin
:
0
}
article
,
aside
,
details
,
figcaption
,
figure
,
footer
,
header
,
hgroup
,
nav
,
section
{
display
:
block
}
audio
,
canvas
,
video
{
display
:
inline-block
}
audio
:not
([
controls
])
{
display
:
none
}
a
{
outline
:
0
;
text-decoration
:
none
}
a
:hover
{
text-decoration
:
underline
}
sub
,
sup
{
position
:
relative
;
font-size
:
75%
;
line-height
:
0
;
vertical-align
:
baseline
}
sup
{
top
:
-0.5em
}
sub
{
bottom
:
-0.25em
}
img
{
max-width
:
100%
;
vertical-align
:
middle
;
border
:
0
;
height
:
auto
;
-ms-interpolation-mode
:
bicubic
;
overflow
:
hidden
;
font-size
:
12px
}
button
,
input
,
select
,
textarea
{
margin
:
0
;
font-size
:
100%
;
vertical-align
:
middle
;
font-family
:
"Helvetica Neue"
,
"Luxi Sans"
,
"DejaVu Sans"
,
Tahoma
,
"Hiragino Sans GB"
,
"Microsoft Yahei"
,
sans-serif
;
outline
:
none
}
button
,
input
{
line-height
:
normal
}
button
::-moz-focus-inner
,
input
::-moz-focus-inner
{
padding
:
0
;
border
:
0
}
button
,
input
[
type
=
"button"
],
input
[
type
=
"reset"
],
input
[
type
=
"submit"
]
{
cursor
:
pointer
;
-webkit-appearance
:
button
}
input
[
type
=
"search"
]
{
box-sizing
:
content-box
;
-webkit-appearance
:
textfield
}
input
[
type
=
"search"
]
::-webkit-search-decoration
,
input
[
type
=
"search"
]
::-webkit-search-cancel-button
{
-webkit-appearance
:
none
}
textarea
{
overflow
:
auto
;
resize
:
vertical
}
svg
{
fill
:
currentColor
;
display
:
inline-block
;
stroke-width
:
0
;
stroke
:
currentColor
;
width
:
14px
;
height
:
14px
}
blockquote
{
margin
:
0
}
@keyframes
tooltip-appear
{
from
{
opacity
:
0
}
to
{
opacity
:
1
}}
.vditor-tooltipped
{
position
:
relative
;
cursor
:
pointer
}
.vditor-tooltipped
::after
{
position
:
absolute
;
z-index
:
1000000
;
display
:
none
;
padding
:
5px
8px
;
font-size
:
11px
;
font-weight
:
normal
;
-webkit-font-smoothing
:
subpixel-antialiased
;
color
:
#fff
;
text-align
:
center
;
text-decoration
:
none
;
text-shadow
:
none
;
text-transform
:
none
;
letter-spacing
:
normal
;
word-wrap
:
break-word
;
white-space
:
pre
;
pointer-events
:
none
;
content
:
attr
(
aria-label
);
background
:
rgba
(
0
,
0
,
0
,
0.8
);
border-radius
:
3px
;
line-height
:
16px
;
opacity
:
0
}
.vditor-tooltipped
::before
{
position
:
absolute
;
z-index
:
1000001
;
display
:
none
;
width
:
0
;
height
:
0
;
color
:
rgba
(
0
,
0
,
0
,
0.8
);
pointer-events
:
none
;
content
:
""
;
border
:
5px
solid
transparent
;
opacity
:
0
}
.vditor-tooltipped--hover
::before
,
.vditor-tooltipped--hover
::after
,
.vditor-tooltipped
:hover::before
,
.vditor-tooltipped
:hover::after
,
.vditor-tooltipped
:active::before
,
.vditor-tooltipped
:active::after
,
.vditor-tooltipped
:focus::before
,
.vditor-tooltipped
:focus::after
{
display
:
inline-block
;
text-decoration
:
none
;
animation-name
:
tooltip-appear
;
animation-duration
:
0.1
5s
;
animation-fill-mode
:
forwards
;
animation-timing-function
:
ease-in
}
.vditor-tooltipped__s
::after
,
.vditor-tooltipped__se
::after
,
.vditor-tooltipped__sw
::after
{
top
:
100%
;
right
:
50%
;
margin-top
:
5px
}
.vditor-tooltipped__s
::before
,
.vditor-tooltipped__se
::before
,
.vditor-tooltipped__sw
::before
{
top
:
auto
;
right
:
50%
;
bottom
:
-5px
;
margin-right
:
-5px
;
border-bottom-color
:
rgba
(
0
,
0
,
0
,
0.8
)}
.vditor-tooltipped__se
::after
{
right
:
auto
;
left
:
50%
;
margin-left
:
-15px
}
.vditor-tooltipped__sw
::after
{
margin-right
:
-15px
}
.vditor-tooltipped__n
::after
,
.vditor-tooltipped__ne
::after
,
.vditor-tooltipped__nw
::after
{
right
:
50%
;
bottom
:
100%
;
margin-bottom
:
5px
}
.vditor-tooltipped__n
::before
,
.vditor-tooltipped__ne
::before
,
.vditor-tooltipped__nw
::before
{
top
:
-5px
;
right
:
50%
;
bottom
:
auto
;
margin-right
:
-5px
;
border-top-color
:
rgba
(
0
,
0
,
0
,
0.8
)}
.vditor-tooltipped__ne
::after
{
right
:
auto
;
left
:
50%
;
margin-left
:
-15px
}
.vditor-tooltipped__nw
::after
{
margin-right
:
-15px
}
.vditor-tooltipped__s
::after
,
.vditor-tooltipped__n
::after
{
transform
:
translateX
(
50%
)}
.vditor-tooltipped__w
::after
{
right
:
100%
;
bottom
:
50%
;
margin-right
:
5px
;
transform
:
translateY
(
50%
)}
.vditor-tooltipped__w
::before
{
top
:
50%
;
bottom
:
50%
;
left
:
-5px
;
margin-top
:
-5px
;
border-left-color
:
rgba
(
0
,
0
,
0
,
0.8
)}
.vditor-tooltipped__e
::after
{
bottom
:
50%
;
left
:
100%
;
margin-left
:
5px
;
transform
:
translateY
(
50%
)}
.vditor-tooltipped__e
::before
{
top
:
50%
;
right
:
-5px
;
bottom
:
50%
;
margin-top
:
-5px
;
border-right-color
:
rgba
(
0
,
0
,
0
,
0.8
)}
@keyframes
scale-in
{
0
%
{
opacity
:
0
;
transform
:
scale
(
0.5
)}
100
%
{
opacity
:
1
;
transform
:
scale
(
1
)}}
.vditor-panel
{
background-color
:
#fff
;
position
:
absolute
;
box-shadow
:
0
1px
2px
rgba
(
0
,
0
,
0
,
0.2
);
border-radius
:
3px
;
padding
:
5px
;
z-index
:
1
;
font-size
:
14px
;
display
:
none
;
user-select
:
none
;
max-width
:
320px
;
min-width
:
80px
;
animation-duration
:
.15s
;
animation-name
:
scale-in
;
animation-timing-function
:
cubic-bezier
(
0.2
,
0
,
0.13
,
1.5
)}
.vditor-panel
h1
,
.vditor-panel
h2
,
.vditor-panel
h3
,
.vditor-panel
h4
,
.vditor-panel
h5
,
.vditor-panel
h6
{
margin
:
0
;
cursor
:
pointer
;
padding
:
3px
10px
;
border-radius
:
3px
;
line-height
:
normal
}
.vditor-panel
h1
:hover
,
.vditor-panel
h2
:hover
,
.vditor-panel
h3
:hover
,
.vditor-panel
h4
:hover
,
.vditor-panel
h5
:hover
,
.vditor-panel
h6
:hover
{
background-color
:
#4285f4
;
color
:
#fff
}
.vditor-toolbar
{
background-color
:
#f6f8fa
;
border-bottom
:
1px
solid
#d1d5da
;
padding
:
0
5px
;
border-radius
:
3px
3px
0
0
}
.vditor-toolbar
>
div
{
padding
:
10px
5px
;
float
:
left
;
line-height
:
14px
;
height
:
36px
;
box-sizing
:
border-box
}
.vditor-toolbar
svg
{
fill
:
currentColor
;
display
:
inline-block
;
stroke-width
:
0
;
stroke
:
currentColor
;
width
:
14px
;
height
:
14px
}
.vditor-toolbar
.vditor-tooltipped
{
color
:
#586069
}
.vditor-toolbar
.vditor-tooltipped
:hover
{
color
:
#4285f4
}
.vditor-toolbar
label
{
overflow
:
hidden
;
position
:
relative
;
height
:
14px
;
width
:
15px
;
display
:
block
;
cursor
:
pointer
}
.vditor-toolbar
label
svg
{
position
:
absolute
;
top
:
0
;
left
:
0
}
.vditor-toolbar
label
input
{
position
:
absolute
;
width
:
15px
;
height
:
15px
;
top
:
0
;
left
:
0
;
opacity
:
.001
;
overflow
:
hidden
}
.vditor-menu--current
svg
{
color
:
#4285f4
}
.vditor-menu__divider
{
width
:
10px
}
.vditor-menu__br
{
width
:
100%
;
padding
:
0
!important
;
height
:
0
!important
}
.vditor-emojis
{
display
:
inline-block
;
overflow
:
auto
}
.vditor-emojis
::-webkit-scrollbar
{
display
:
none
}
.vditor-emojis__tip
{
flex
:
1
;
width
:
200px
;
margin-right
:
10px
;
color
:
#586069
;
white-space
:
nowrap
;
text-overflow
:
ellipsis
;
overflow
:
hidden
}
.vditor-emojis__tail
{
margin-top
:
5px
;
font-size
:
12px
;
color
:
#586069
;
display
:
flex
}
.vditor-emojis__tail
a
{
text-decoration
:
none
;
color
:
#586069
}
.vditor-emojis__tail
a
:hover
{
color
:
#4285f4
}
.vditor-emojis
span
{
cursor
:
pointer
;
border-radius
:
3px
;
float
:
left
;
height
:
30px
;
width
:
30px
;
text-align
:
center
;
line-height
:
26px
;
padding
:
3px
;
box-sizing
:
border-box
;
font-size
:
16px
;
transition
:
all
0.15s
ease-in-out
}
.vditor-emojis
span
:hover
{
transform
:
scale
(
1.2
)}
.vditor-emojis
img
{
height
:
20px
;
width
:
20px
;
float
:
left
;
margin
:
3px
0
0
3px
}
@keyframes
slideInDown
{
from
{
transform
:
translate3d
(
0
,
-100%
,
0
);
visibility
:
visible
}
to
{
transform
:
translate3d
(
0
,
0
,
0
)}}
.vditor
{
display
:
flex
;
flex-direction
:
column
;
border
:
1px
solid
#d1d5da
;
border-radius
:
3px
;
box-sizing
:
border-box
}
.vditor--fullscreen
{
position
:
fixed
;
top
:
0
;
width
:
100%
!important
;
left
:
0
;
height
:
100vh
!important
;
z-index
:
90
;
background-color
:
#fff
}
.vditor-content
{
display
:
flex
;
min-height
:
60px
;
flex
:
1
;
position
:
relative
}
.vditor-textarea
{
height
:
100%
;
overflow
:
auto
;
width
:
100%
;
flex
:
1
;
border
:
0
;
resize
:
none
;
padding
:
10px
;
box-sizing
:
border-box
;
background-color
:
#fafbfc
;
outline
:
0
none
;
font-size
:
16px
;
line-height
:
22px
;
color
:
#24292e
;
border-radius
:
0
0
3px
3px
}
.vditor-textarea
[
contenteditable
=
"false"
]
{
opacity
:
0.3
;
cursor
:
not-allowed
}
.vditor-textarea
:focus
{
background-color
:
#fff
}
.vditor-textarea
:empty::before
{
content
:
attr
(
placeholder
);
color
:
rgba
(
36
,
41
,
46
,
0.68
)}
.vditor-preview
{
flex
:
1
;
background-color
:
#fff
;
overflow
:
auto
;
padding
:
10px
;
box-shadow
:
inset
1px
0
#d1d5da
;
box-sizing
:
border-box
;
border-radius
:
0
0
3px
0
}
.vditor-preview--editor
{
display
:
none
}
.vditor-preview--both
{
display
:
block
}
.vditor-preview--preview
{
position
:
absolute
;
top
:
0
;
left
:
-1px
;
bottom
:
0
;
right
:
0
;
display
:
block
}
.vditor-preview
>
div
::-webkit-scrollbar
{
display
:
none
}
.vditor-preview
>
.vditor-reset
{
margin
:
0
auto
}
.vditor-counter
{
padding
:
0
3px
;
position
:
absolute
;
bottom
:
10px
;
right
:
20px
;
color
:
#24292e
;
background-color
:
rgba
(
255
,
255
,
255
,
0.6
);
border-radius
:
3px
;
font-size
:
12px
;
user-select
:
none
}
.vditor-counter--error
{
color
:
#d23f31
;
background-color
:
rgba
(
210
,
63
,
49
,
0.1
)}
.vditor-resize
{
padding
:
1px
0
;
border-radius
:
5px
;
cursor
:
row-resize
;
transition
:
all
0.15s
ease-in-out
;
user-select
:
none
;
background-color
:
#f6f8fa
}
.vditor-resize
:hover
{
background-color
:
#4285f4
}
.vditor-resize
:hover
svg
{
color
:
#fff
}
.vditor-resize
svg
{
fill
:
currentColor
;
stroke-width
:
0
;
stroke
:
currentColor
;
width
:
13px
;
height
:
3px
;
display
:
block
;
margin
:
0
auto
;
color
:
#586069
}
.vditor-upload
{
position
:
absolute
;
height
:
3px
;
left
:
0
;
top
:
-2px
;
transition
:
all
0.15s
ease-in-out
;
background-color
:
rgba
(
66
,
133
,
244
,
0.8
)}
.vditor-tip
{
position
:
absolute
;
font-size
:
12px
;
top
:
10px
;
color
:
#fff
;
animation-duration
:
.15s
;
animation-fill-mode
:
both
;
width
:
100%
;
text-align
:
center
}
.vditor-tip--show
{
display
:
block
;
animation-name
:
slideInDown
}
.vditor-tip__content
{
text-align
:
left
;
display
:
inline-block
;
line-height
:
16px
;
padding
:
3px
10px
;
border-radius
:
3px
;
background
:
rgba
(
66
,
133
,
244
,
0.8
);
position
:
relative
}
.vditor-tip__content
ul
{
margin
:
2px
0
;
padding
:
0
0
0
18px
}
.vditor-tip__close
{
position
:
absolute
;
color
:
#586069
;
top
:
-7px
;
right
:
-15px
;
font-weight
:
bold
;
cursor
:
pointer
}
.vditor-tip__close
:hover
{
color
:
#4285f4
}
.vditor-hint
{
background-color
:
#fff
;
position
:
absolute
;
box-shadow
:
0
1px
2px
rgba
(
0
,
0
,
0
,
0.2
);
border-radius
:
3px
;
padding
:
5px
0
;
z-index
:
1
;
line-height
:
20px
;
list-style
:
none
;
color
:
#24292e
;
font-size
:
12px
;
margin
:
0
;
max-width
:
200px
;
min-width
:
80px
;
display
:
none
}
.vditor-hint
li
{
cursor
:
pointer
;
padding
:
3px
10px
;
border-bottom
:
1px
solid
#d1d5da
;
line-height
:
20px
}
.vditor-hint
li
:last-child
{
border-bottom
:
0
}
.vditor-hint--current
,
.vditor-hint
li
:hover
{
background-color
:
#4285f4
;
color
:
#fff
}
.vditor-hint__emoji
{
font-size
:
16px
;
float
:
left
;
margin-right
:
3px
}
.vditor-hint
img
{
height
:
20px
;
width
:
20px
;
float
:
left
;
margin-right
:
3px
}
.vditor-reset
{
font-family
:
"Helvetica Neue"
,
"Luxi Sans"
,
"DejaVu Sans"
,
Tahoma
,
"Hiragino Sans GB"
,
"Microsoft Yahei"
,
sans-serif
;
word-wrap
:
break-word
;
overflow
:
auto
;
line-height
:
1.65
;
font-size
:
16px
;
word-break
:
break-word
}
.vditor-reset
ul
ul
ul
{
list-style-type
:
square
}
.vditor-reset
ul
ul
{
list-style-type
:
circle
}
.vditor-reset
ul
{
list-style-type
:
disc
}
.vditor-reset
ul
,
.vditor-reset
ol
{
padding-left
:
2em
;
margin-top
:
0
;
margin-bottom
:
16px
}
.vditor-reset
li
{
margin-top
:
0.25em
}
.vditor-reset
audio
{
max-width
:
100%
}
.vditor-reset
audio
:focus
{
outline
:
none
}
.vditor-reset
video
{
max-height
:
90vh
}
.vditor-reset
img
.emoji
{
cursor
:
auto
;
max-width
:
20px
;
vertical-align
:
sub
}
.vditor-reset
h1
,
.vditor-reset
h2
,
.vditor-reset
h3
,
.vditor-reset
h4
,
.vditor-reset
h5
,
.vditor-reset
h6
{
margin-top
:
24px
;
margin-bottom
:
16px
;
font-weight
:
600
;
line-height
:
1.25
}
.vditor-reset
h1
{
padding-bottom
:
0.3em
;
font-size
:
1.7em
;
border-bottom
:
1px
solid
#eee
}
.vditor-reset
h2
{
padding-bottom
:
0.3em
;
font-size
:
1.5em
;
border-bottom
:
1px
solid
#eee
}
.vditor-reset
h3
{
font-size
:
1.25em
}
.vditor-reset
h4
{
font-size
:
1em
}
.vditor-reset
h5
{
font-size
:
0.875em
}
.vditor-reset
h6
{
font-size
:
0.85em
}
.vditor-reset
hr
{
height
:
2px
;
padding
:
0
;
margin
:
24px
0
;
background-color
:
#e7e7e7
;
border
:
0
}
.vditor-reset
p
{
margin-top
:
0
;
margin-bottom
:
16px
}
.vditor-reset
blockquote
{
padding
:
0
1em
;
color
:
#777
;
border-left
:
0.25em
solid
#ddd
;
margin
:
0
0
16px
0
}
.vditor-reset
blockquote
p
{
margin
:
0
}
.vditor-reset
ins
>
iframe
{
border
:
0
}
.vditor-reset
iframe
{
border
:
1px
solid
#d1d5da
;
max-width
:
100%
;
box-sizing
:
border-box
}
.vditor-reset
table
{
width
:
100%
;
border
:
1px
solid
#dedede
;
margin
:
15px
auto
;
border-collapse
:
collapse
;
empty-cells
:
show
}
.vditor-reset
thead
{
text-align
:
center
}
.vditor-reset
td
,
.vditor-reset
th
{
height
:
35px
;
border
:
1px
solid
#dedede
;
padding
:
0
10px
}
.vditor-reset
th
{
font-weight
:
bold
;
text-align
:
center
!important
;
background
:
rgba
(
158
,
188
,
226
,
0.2
)}
.vditor-reset
tbody
tr
:nth-child
(
2n
)
{
background
:
rgba
(
158
,
188
,
226
,
0.12
)}
.vditor-reset
tr
:hover
{
background
:
#efefef
}
.vditor-reset
code
{
padding
:
0.2em
0.4em
;
margin
:
0
;
font-size
:
85%
;
border-radius
:
3px
;
font-family
:
mononoki
,
Consolas
,
"Liberation Mono"
,
Menlo
,
Courier
,
monospace
;
word-break
:
break-word
;
background-size
:
20px
20px
;
background-image
:
url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8AgMAAABHkjHhAAAACVBMVEWAgIBaWlo+Pj7rTFvWAAAAA3RSTlMHCAw+VhR4AAAA+klEQVQoz4WSMW7EQAhFPxKWNh2FCx+HkaZI6RRb5DYbyVfIJXLKDCFoMbaTKSw/8ZnPAPjaH2xgZcUNUDADD7D9LtDBCLZ45fbkvo/30K8yeI64pPwl6znd/3n/Oe93P3ho9qeh72btTFzqkz0rsJle8Zr81OLEwZ1dv/713uWqvu2pl+k0fy7MWtj9r/tN5q/02z89qa/L4Dc2LvM93kezPfXlME/O86EbY/V9GB9ePX8G1/6W+/9h1dq/HGfTfzT3j/xNo7522Bfnqe5jO/fvhVthlfk434v3iO9zG/UOphyPeinPl1J8Gtaa7xPTa/Dk+RIs4deMvwGvcGsmsCvJ0AAAAABJRU5ErkJggg==)
}
.vditor-reset
pre
>
code
{
padding
:
0.5em
;
border-radius
:
5px
;
display
:
block
;
overflow
:
auto
}
.vditor-reset
pre
:hover
div
.vditor-copy
{
display
:
block
}
.vditor-reset
kbd
{
display
:
inline-block
;
padding
:
3px
5px
;
font
:
11px
Consolas
,
"Liberation Mono"
,
Menlo
,
Courier
,
monospace
;
line-height
:
10px
;
color
:
#555
;
vertical-align
:
middle
;
background-color
:
#fcfcfc
;
border
:
solid
1px
#d1d5da
;
border-bottom-color
:
#bbb
;
border-radius
:
3px
;
box-shadow
:
inset
0
-1px
0
#bbb
}
.vditor-reset
summary
{
cursor
:
pointer
}
.vditor-reset
summary
:focus
{
outline
:
none
}
.vditor-reset
svg
{
height
:
auto
;
width
:
auto
}
.vditor-reset
p
:last-child
,
.vditor-reset
blockquote
:last-child
,
.vditor-reset
pre
:last-child
,
.vditor-reset
ul
:last-child
,
.vditor-reset
ol
:last-child
,
.vditor-reset
hr
:last-child
{
margin-bottom
:
0
}
.vditor-reset
.katex
{
position
:
relative
}
.vditor-reset
.language-echarts
{
overflow
:
hidden
;
height
:
420px
}
.vditor-task
{
list-style
:
none
;
margin-left
:
-1.4em
;
display
:
flex
;
align-items
:
center
}
.vditor-task
input
{
margin-right
:
5px
}
.vditor-copy
{
position
:
relative
;
display
:
none
}
.vditor-copy
textarea
{
position
:
absolute
;
left
:
-100000px
}
.vditor-copy
span
{
cursor
:
pointer
;
position
:
absolute
;
right
:
0.5em
;
top
:
0.5em
;
height
:
14px
;
width
:
14px
;
display
:
block
;
background-color
:
#f6f8fa
;
border-radius
:
3px
;
padding
:
3px
}
.vditor-copy
svg
{
color
:
#586069
;
height
:
14px
;
width
:
14px
;
display
:
block
;
fill
:
currentColor
}
button
{
background-size
:
110%
110%
;
border
:
1px
solid
rgba
(
27
,
31
,
35
,
0.2
);
font-size
:
13px
;
font-weight
:
700
;
text-shadow
:
0
1px
0
rgba
(
255
,
255
,
255
,
0.9
);
white-space
:
nowrap
;
background-color
:
#eff3f6
;
background-image
:
linear-gradient
(
-180deg
,
#fafbfc
,
#eff3f6
90%
);
color
:
#24292e
;
border-radius
:
3px
;
box-shadow
:
0
1px
3px
rgba
(
0
,
0
,
0
,
0.075
);
outline
:
none
;
padding
:
7px
15px
;
margin-top
:
10px
;
cursor
:
pointer
}
button
:hover
{
background-color
:
#e6ebf1
;
background-image
:
linear-gradient
(
-180deg
,
#f0f3f6
,
#e6ebf1
90%
);
background-position
:
-.5em
;
border-color
:
rgba
(
27
,
31
,
35
,
0.35
)}
a
{
color
:
#4285f4
;
text-decoration
:
none
}
h2
{
background-color
:
#F3F1E5
;
border-radius
:
4px
4px
0
0
;
font-size
:
16px
;
margin
:
0
;
padding
:
10px
20px
}
h2
a
:hover
{
color
:
#d23f31
}
input
[
type
=
password
],
input
[
type
=
text
]
{
border
:
1px
solid
#d1d5da
;
background-color
:
#FAFAFA
;
border-radius
:
3px
;
box-shadow
:
inset
0
1px
2px
rgba
(
27
,
31
,
35
,
0.075
);
padding
:
7px
8px
;
width
:
100%
;
line-height
:
17px
;
box-sizing
:
border-box
;
-moz-box-sizing
:
border-box
;
-webkit-box-sizing
:
border-box
;
outline
:
none
;
margin-top
:
10px
}
input
[
type
=
password
]
:focus
,
input
[
type
=
text
]
:focus
{
background-color
:
#FFF
;
box-shadow
:
inset
0
1px
2px
rgba
(
27
,
31
,
35
,
0.075
),
0
0
0
0.2em
#dbedff
;
border
:
1px
solid
#4285f4
}
.error
{
color
:
#d23f31
;
font-weight
:
bold
}
.wrap
{
border-top
:
5px
solid
#E6E5D9
;
background-color
:
#F3F1E5
;
display
:
flex
;
flex-direction
:
column
;
min-height
:
100vh
;
box-sizing
:
border-box
}
.content-wrap
{
flex
:
1
;
display
:
flex
}
.content
{
background-color
:
#fff
;
margin
:
0
auto
;
width
:
760px
;
align-self
:
center
;
display
:
flex
}
.main
{
border-left
:
1px
solid
#E6E5D9
;
font-size
:
15px
;
padding
:
20px
;
flex
:
1
}
.footerWrapper
{
background-color
:
#FFFFFF
;
border-top
:
1px
solid
#E6E5D9
;
padding
:
12px
0
;
text-align
:
center
}
.a-error
{
text-align
:
right
}
.img-error
{
max-width
:
100%
;
margin
:
20px
auto
;
padding
:
0
;
display
:
block
}
.kill__btns
{
text-align
:
right
}
.kill__img
{
float
:
right
;
margin
:
-280px
0
0
0
}
.kill
.vditor-reset
{
margin
:
10px
}
#github
{
position
:
relative
;
text-align
:
center
}
#github
.github--loading
:after
{
content
:
"Loading..."
;
position
:
absolute
;
height
:
100%
;
width
:
100%
;
top
:
0
;
left
:
0
;
z-index
:
7
;
background-color
:
rgba
(
255
,
255
,
255
,
0.6
);
font-size
:
22px
;
text-align
:
center
;
padding-top
:
135px
;
color
:
#000
;
text-shadow
:
0
1px
2px
rgba
(
0
,
0
,
0
,
0.2
);
box-sizing
:
border-box
}
#github
.github__icon
{
height
:
200px
;
width
:
266px
;
background-image
:
url("../images/github.png")
;
margin
:
0
auto
;
background-size
:
contain
;
cursor
:
pointer
}
#github
.github__icon
:hover
{
background-image
:
url("../images/github.gif")
}
#github
img
{
display
:
none
}
.github__text
{
cursor
:
pointer
;
font-size
:
12px
;
color
:
#666
}
.github__text
ul
{
display
:
none
;
text-align
:
left
;
margin
:
5px
auto
0
;
width
:
280px
;
padding-left
:
24px
;
box-sizing
:
border-box
}
.github__link
{
font-size
:
12px
;
text-decoration
:
underline
;
margin-top
:
10px
;
display
:
block
}
.github__check
{
font-size
:
12px
;
display
:
inline-block
;
margin
:
10px
auto
0
;
align-items
:
center
;
line-height
:
20px
;
color
:
#999
}
.github__check
a
{
color
:
#999
;
text-decoration
:
underline
}
.github__check
input
{
width
:
auto
;
margin-right
:
5px
}
.search
{
border-top
:
5px
solid
#e6e5d9
;
background-color
:
#f3f1e5
;
padding
:
20px
0
20px
84px
;
min-height
:
480px
;
flex
:
1
}
.search__body
{
display
:
flex
;
flex-direction
:
column
}
.search__header
{
margin
:
20px
;
display
:
flex
}
.search__header
a
{
line-height
:
32px
}
.search__input
{
flex
:
1
;
display
:
flex
}
.search__input
input
{
margin
:
0
10px
0
20px
;
width
:
523px
;
height
:
32px
;
line-height
:
32px
}
.search__input
button
{
height
:
32px
;
margin
:
0
}
.search__articles
{
width
:
600px
}
.search__articles
.tag
{
color
:
#616161
;
padding
:
2px
5px
;
border
:
1px
solid
transparent
;
position
:
relative
;
height
:
20px
;
white-space
:
nowrap
;
word-wrap
:
normal
;
background-color
:
#f7f7f7
;
border-radius
:
3px
3px
3px
3px
;
line-height
:
21px
;
font-size
:
12px
;
display
:
inline-block
;
margin-right
:
5px
}
.search__articles
.tag
:hover
{
color
:
#000
;
box-shadow
:
0
1px
2px
rgba
(
0
,
0
,
0
,
0.2
);
text-decoration
:
none
}
.search__articles
header
h1
{
margin
:
0
}
.search__articles
header
h1
>
a
{
font-size
:
18px
;
text-decoration
:
none
;
font-weight
:
normal
}
.search__articles
.meta
{
font-size
:
14px
;
color
:
#999
;
margin
:
5px
0
}
.search__articles
footer
{
margin-bottom
:
30px
}
.search__articles
footer
a
{
text-decoration
:
none
;
font-size
:
13px
}
.search__articles
footer
a
:hover
,
.search__articles
header
h1
>
a
:hover
,
.search__pagination
a
:hover
{
text-decoration
:
underline
}
.search__pagination
a
{
color
:
#4285f4
;
text-decoration
:
none
}
.search__pagination
a
,
.search__pagination
span
{
margin-right
:
5px
}
@media
(
max-width
:
780px
){
.wrap
{
padding
:
40px
0
0
0
}
.content
{
width
:
auto
}
.logo
,
.search__header
img
,
.search__header
>
.fn-right
{
display
:
none
}
.main
{
border
:
0
;
float
:
none
;
width
:
auto
;
padding
:
10px
}
.a-500
,
.a-403
,
.a-404
{
margin
:
0
20px
0
0
}
#init
{
width
:
100%
;
padding
:
0
20px
;
box-sizing
:
border-box
;
left
:
0
}
.search
{
padding
:
20px
;
width
:
100%
;
min-height
:
auto
;
box-sizing
:
border-box
}
.search__input
input
{
width
:
auto
;
flex
:
1
;
margin-left
:
0
}
.search__articles
{
width
:
auto
}}
skins
@
609fd087
Subproject commit
1960541a7ede6ab4304a1030fb17f756ae90f227
Subproject commit
609fd087e2ec75a0e29c2e2fce8da230f44b5b13
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