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
bd016bb5
Unverified
Commit
bd016bb5
authored
Jan 13, 2019
by
Van
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
🎨
fix #12620
parent
0ba0ac12
Changes
6
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
44 additions
and
6 deletions
+44
-6
src/main/webapp/WEB-INF/static-resources.xml
src/main/webapp/WEB-INF/static-resources.xml
+3
-1
src/main/webapp/css/default-admin.min.css
src/main/webapp/css/default-admin.min.css
+1
-1
src/main/webapp/js/common.js
src/main/webapp/js/common.js
+11
-2
src/main/webapp/js/common.min.js
src/main/webapp/js/common.min.js
+1
-1
src/main/webapp/skins
src/main/webapp/skins
+1
-1
src/main/webapp/sw.js
src/main/webapp/sw.js
+27
-0
No files found.
src/main/webapp/WEB-INF/static-resources.xml
View file @
bd016bb5
...
...
@@ -20,8 +20,9 @@
-->
<!--
Description: Static resources definition.
Version: 2.
7.6.6, Dec 10, 2016
Version: 2.
8.0.60, Jan 13, 2019
Author: Liang Ding
Author: Liyuan Li
-->
<static-files>
<!-- Uses the STANDARD Ant Path Pattern to configure these paths! -->
...
...
@@ -29,6 +30,7 @@
<include
path=
"/favicon.ico"
/>
<include
path=
"/favicon.png"
/>
<include
path=
"/robots.txt"
/>
<include
path=
"/sw.js"
/>
<include
path=
"/manifest.json"
/>
<include
path=
"/js/**.js"
/>
...
...
src/main/webapp/css/default-admin.min.css
View file @
bd016bb5
body
,
input
,
textarea
{
font-family
:
"Helvetica Neue"
,
"Luxi Sans"
,
"DejaVu Sans"
,
Tahoma
,
"Hiragino Sans GB"
,
"Microsoft Yahei"
,
sans-serif
}
html
,
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
}
.content-reset
{
word-wrap
:
break-word
;
overflow
:
auto
;
line-height
:
1.65
;
font-size
:
16px
;
word-break
:
break-word
}
.content-reset
ul
,
.content-reset
ol
{
padding-left
:
2em
;
margin-top
:
0
;
margin-bottom
:
16px
}
.content-reset
li
{
margin-top
:
.25em
}
.content-reset
img
{
cursor
:
zoom-in
}
.content-reset
img
.emoji
{
cursor
:
auto
;
max-width
:
18px
}
.content-reset
h1
,
.content-reset
h2
,
.content-reset
h3
,
.content-reset
h4
,
.content-reset
h5
,
.content-reset
h6
{
margin-top
:
24px
;
margin-bottom
:
16px
;
font-weight
:
600
;
line-height
:
1.25
}
.content-reset
h1
{
padding-bottom
:
.3em
;
font-size
:
1.7em
;
border-bottom
:
1px
solid
#eee
}
.content-reset
h2
{
padding-bottom
:
.3em
;
font-size
:
1.5em
;
border-bottom
:
1px
solid
#eee
}
.content-reset
h3
{
font-size
:
1.25em
}
.content-reset
h4
{
font-size
:
1em
}
.content-reset
h5
{
font-size
:
.875em
}
.content-reset
h6
{
font-size
:
.85em
}
.content-reset
hr
{
height
:
.15em
;
padding
:
0
;
margin
:
24px
0
;
background-color
:
#e7e7e7
;
border
:
0
}
.content-reset
p
{
margin-top
:
0
;
margin-bottom
:
16px
}
.content-reset
blockquote
{
padding
:
0
1em
;
color
:
#777
;
border-left
:
.25em
solid
#ddd
;
margin-bottom
:
16px
}
.content-reset
blockquote
p
{
margin
:
0
}
.content-reset
ins
>
iframe
{
border
:
0
}
.content-reset
iframe
{
border
:
1px
solid
rgba
(
0
,
0
,
0
,
0.38
)}
.content-reset
table
{
width
:
100%
;
border
:
1px
solid
#dedede
;
margin
:
15px
auto
;
border-collapse
:
collapse
;
empty-cells
:
show
}
.content-reset
thead
{
text-align
:
center
}
.content-reset
td
,
.content-reset
th
{
height
:
35px
;
border
:
1px
solid
#dedede
;
padding
:
0
10px
}
.content-reset
th
{
font-weight
:
bold
;
text-align
:
center
!important
;
background
:
rgba
(
158
,
188
,
226
,
0.2
)}
.content-reset
tbody
tr
:nth-child
(
2n
)
{
background
:
rgba
(
158
,
188
,
226
,
0.12
)}
.content-reset
tr
:hover
{
background
:
#efefef
}
.content-reset
code
{
padding
:
.2em
.4em
;
margin
:
0
;
font-size
:
85%
;
background-color
:
rgba
(
252
,
41
,
41
,
0.12
);
border-radius
:
3px
;
word-break
:
break-word
}
.content-reset
pre
{
position
:
relative
}
.content-reset
pre
textarea
{
position
:
absolute
;
top
:
-100000px
}
.content-reset
pre
>
code
{
padding
:
.5em
;
background-color
:
rgba
(
0
,
0
,
0
,
0.04
);
background-size
:
20px
20px
;
border-radius
:
5px
;
display
:
block
}
.content-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
rgba
(
0
,
0
,
0
,
0.38
);
border-bottom-color
:
#bbb
;
border-radius
:
3px
;
box-shadow
:
inset
0
-1px
0
#bbb
}
.content-reset__task
,
.content-reset
.task-list-item
{
list-style
:
none
;
margin-left
:
-1em
}
.tooltipped
{
position
:
relative
;
cursor
:
pointer
}
.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
}
.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
}
@-webkit-keyframes
tooltip-appear
{
from
{
opacity
:
0
}
to
{
opacity
:
1
}}
@keyframes
tooltip-appear
{
from
{
opacity
:
0
}
to
{
opacity
:
1
}}
.tooltipped-hover
::before
,
.tooltipped-hover
::after
,
.tooltipped
:hover::before
,
.tooltipped
:hover::after
,
.tooltipped
:active::before
,
.tooltipped
:active::after
,
.tooltipped
:focus::before
,
.tooltipped
:focus::after
{
display
:
inline-block
;
text-decoration
:
none
;
-webkit-animation-name
:
tooltip-appear
;
animation-name
:
tooltip-appear
;
-webkit-animation-duration
:
.1s
;
animation-duration
:
.1s
;
-webkit-animation-fill-mode
:
forwards
;
animation-fill-mode
:
forwards
;
-webkit-animation-timing-function
:
ease-in
;
animation-timing-function
:
ease-in
;
-webkit-animation-delay
:
.4s
;
animation-delay
:
.4s
}
.tooltipped-s
::after
,
.tooltipped-se
::after
,
.tooltipped-sw
::after
{
top
:
100%
;
right
:
50%
;
margin-top
:
5px
}
.tooltipped-s
::before
,
.tooltipped-se
::before
,
.tooltipped-sw
::before
{
top
:
auto
;
right
:
50%
;
bottom
:
-5px
;
margin-right
:
-5px
;
border-bottom-color
:
rgba
(
0
,
0
,
0
,
0.8
)}
.tooltipped-se
::after
{
right
:
auto
;
left
:
50%
;
margin-left
:
-15px
}
.tooltipped-sw
::after
{
margin-right
:
-15px
}
.tooltipped-n
::after
,
.tooltipped-ne
::after
,
.tooltipped-nw
::after
{
right
:
50%
;
bottom
:
100%
;
margin-bottom
:
5px
}
.tooltipped-n
::before
,
.tooltipped-ne
::before
,
.tooltipped-nw
::before
{
top
:
-5px
;
right
:
50%
;
bottom
:
auto
;
margin-right
:
-5px
;
border-top-color
:
rgba
(
0
,
0
,
0
,
0.8
)}
.tooltipped-ne
::after
{
right
:
auto
;
left
:
50%
;
margin-left
:
-15px
}
.tooltipped-nw
::after
{
margin-right
:
-15px
}
.tooltipped-s
::after
,
.tooltipped-n
::after
{
-webkit-transform
:
translateX
(
50%
);
transform
:
translateX
(
50%
)}
.tooltipped-w
::after
{
right
:
100%
;
bottom
:
50%
;
margin-right
:
5px
;
-webkit-transform
:
translateY
(
50%
);
transform
:
translateY
(
50%
)}
.tooltipped-w
::before
{
top
:
50%
;
bottom
:
50%
;
left
:
-5px
;
margin-top
:
-5px
;
border-left-color
:
rgba
(
0
,
0
,
0
,
0.8
)}
.tooltipped-e
::after
{
bottom
:
50%
;
left
:
100%
;
margin-left
:
5px
;
-webkit-transform
:
translateY
(
50%
);
transform
:
translateY
(
50%
)}
.tooltipped-e
::before
{
top
:
50%
;
right
:
-5px
;
bottom
:
50%
;
margin-top
:
-5px
;
border-right-color
:
rgba
(
0
,
0
,
0
,
0.8
)}
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
:
0
;
line-height
:
18px
}
button
:hover
{
background-color
:
#1ca59e
;
border-color
:
#1ca59e
}
@font-face
{
font-family
:
'icomoon'
;
src
:
url('fonts/icomoon.eot?f71494')
;
src
:
url('fonts/icomoon.eot?f71494#iefix')
format
(
'embedded-opentype'
),
url('fonts/icomoon.ttf?f71494')
format
(
'truetype'
),
url('fonts/icomoon.woff?f71494')
format
(
'woff'
),
url('fonts/icomoon.svg?f71494#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-move-down
:before
{
content
:
"\e90a"
}
.icon-move-up
:before
{
content
:
"\e90b"
}
.icon-points
:before
{
content
:
"\e900"
}
.icon-goods
:before
{
content
:
"\e904"
}
.icon-bold
:before
{
content
:
"\e000"
}
.icon-italic
:before
{
content
:
"\e001"
}
.icon-quote
:before
{
content
:
"\e003"
}
.icon-unordered-list
:before
{
content
:
"\e004"
}
.icon-ordered-list
:before
{
content
:
"\e005"
}
.icon-link
:before
{
content
:
"\e006"
}
.icon-image
:before
{
content
:
"\e007"
}
.icon-play
:before
{
content
:
"\e008"
}
.icon-music
:before
{
content
:
"\e009"
}
.icon-contract
:before
{
content
:
"\e00a"
}
.icon-fullscreen
:before
{
content
:
"\e00b"
}
.icon-question
:before
{
content
:
"\e00c"
}
.icon-info
:before
{
content
:
"\e00d"
}
.icon-undo
:before
{
content
:
"\e00e"
}
.icon-redo
:before
{
content
:
"\e00f"
}
.icon-code
:before
{
content
:
"\e011"
}
.icon-preview
:before
{
content
:
"\e002"
}
.icon-navigation
:before
{
content
:
"\e903"
}
.icon-thumbs-down
:before
{
content
:
"\e901"
}
.icon-thumbs-up
:before
{
content
:
"\e902"
}
.icon-video
:before
{
content
:
"\f057"
}
.icon-feed
:before
{
content
:
"\e61f"
}
.icon-article
:before
{
content
:
"\e61d"
}
.icon-star
:before
{
content
:
"\e600"
}
.icon-register
:before
{
content
:
"\e602"
}
.icon-logout
:before
{
content
:
"\e603"
}
.icon-setting
:before
{
content
:
"\e604"
}
.icon-google
:before
{
content
:
"\e605"
}
.icon-search
:before
{
content
:
"\e606"
}
.icon-weibo
:before
{
content
:
"\e607"
}
.icon-date
:before
{
content
:
"\e608"
}
.icon-view
:before
{
content
:
"\e609"
}
.icon-cmts
:before
{
content
:
"\e60a"
}
.icon-refresh
:before
{
content
:
"\e60b"
}
.icon-up
:before
{
content
:
"\e60c"
}
.icon-twitter
:before
{
content
:
"\e60d"
}
.icon-edit
:before
{
content
:
"\e60e"
}
.icon-tencent
:before
{
content
:
"\e60f"
}
.icon-tag
:before
{
content
:
"\e610"
}
.icon-tags
:before
{
content
:
"\e611"
}
.icon-addfile
:before
{
content
:
"\e612"
}
.icon-login
:before
{
content
:
"\e613"
}
.icon-articles
:before
{
content
:
"\e614"
}
.icon-userrole
:before
{
content
:
"\e615"
}
.icon-email
:before
{
content
:
"\e616"
}
.icon-flag
:before
{
content
:
"\e617"
}
.icon-chevron-down
:before
{
content
:
"\e618"
}
.icon-chevron-up
:before
{
content
:
"\e619"
}
.icon-reply
:before
{
content
:
"\e61a"
}
.icon-clock
:before
{
content
:
"\e61b"
}
.icon-compass
:before
{
content
:
"\e61c"
}
.icon-heart
:before
{
content
:
"\e9da"
}
.icon-locked
:before
{
content
:
"\e61e"
}
.icon-close
:before
{
content
:
"\e909"
}
.icon-wechat
:before
{
content
:
"\e907"
}
.icon-upload
:before
{
content
:
"\f0ee"
}
.icon-copy
:before
{
content
:
"\e908"
}
.icon-time
:before
{
content
:
"\e906"
}
.icon-sortasc
:before
{
content
:
"\e905"
}
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
,
.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
>
.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
>
.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
:
0
;
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
.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
:
#fff
;
color
:
#1fb5ad
}
.sub-tabs-main
{
background-color
:
#fff
;
padding
:
15px
;
border-radius
:
0
0
4px
4px
}
.form
>
div
{
margin
:
15px
0
}
.form
label
{
margin-bottom
:
10px
;
display
:
inline-block
}
.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
}
#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
,
.02
);
background-size
:
cover
;
background-repeat
:
no-repeat
;
background-position
:
50%
;
height
:
180px
;
width
:
100%
}
.article__thumbnail
button
{
margin-top
:
10px
}
button
#submitArticle
{
background-color
:
#fa8564
;
border-color
:
#fa8564
}
button
#submitArticle
:hover
{
background-color
:
#ec6459
;
border-color
:
#ec6459
}
.CodeMirror
{
border-radius
:
0
0
3px
3px
;
box-shadow
:
0
1px
2px
rgba
(
0
,
0
,
0
,
0.075
)
inset
;
border
:
1px
solid
#ccc
;
margin-bottom
:
20px
;
border-top-width
:
0
;
height
:
470px
}
.comment-content
.CodeMirror
{
height
:
170px
}
#pagePagePanel
{
margin-top
:
0
}
#skinsPanel
{
min-width
:
328px
;
width
:
99%
}
.skinPreview
{
cursor
:
pointer
;
height
:
160px
;
margin
:
6px
;
width
:
280px
}
.skinItem
{
background-color
:
#fafafa
;
border-radius
:
3px
;
box-shadow
:
1px
1px
3px
#333
;
line-height
:
16px
;
margin
:
10px
;
text-align
:
center
}
#skinMain
.skinItem.selected
{
background-color
:
#1fb5ad
}
.skinItem
:hover
{
background-color
:
#EEE
}
.f-blue
,
.error-msg
{
color
:
#36c
}
.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
{
float
:
left
;
margin
:
20px
0
0
20px
}
.about-margin
{
font-size
:
20px
;
margin
:
20px
0
}
.content-reset
.about-list
li
{
border
:
0
}
.content-reset
.about-list
li
:hover
{
background-color
:
#fff
;
text-decoration
:
underline
}
.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
:
#00c
;
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
{
margin
:
5px
10px
5px
0
;
display
:
inline-block
;
background-color
:
#c7cbd6
;
border-color
:
#c7cbd6
}
.completed-ck
span
:hover
,
.signs
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
:
#000
;
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
:
#fff
;
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
:
#fff
;
border
:
1px
solid
#666
;
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
:
0
}
.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
:
0
}
.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
}
.tip-panel
{
background-color
:
#FFF
;
box-shadow
:
0
3px
10px
#8b8b8b
;
display
:
none
;
max-height
:
500px
;
max-width
:
500px
;
overflow
:
hidden
;
padding
:
3px
;
position
:
absolute
;
z-index
:
1
}
.navigation-icon
{
height
:
18px
;
width
:
18px
;
float
:
left
;
margin
:
-1px
10px
0
0
}
#preferenceSignButton1
,
#preferenceSignButton2
,
#preferenceSignButton3
{
margin
:
10px
0
}
#tabPreferencePanel
label
,
#tabPreferencePanel_setting
label
,
#tabPreferencePanel_qiniu
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
}
@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
.15s
ease-in-out
;
left
:
-240px
;
z-index
:
100
}
.top__menu
{
font-size
:
22px
;
margin
:
12px
;
float
:
left
;
display
:
block
}
.editor-toolbar
{
height
:
auto
!important
;
overflow
:
hidden
}
.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
}}
\ No newline at end of file
body
,
input
,
textarea
{
font-family
:
"Helvetica Neue"
,
"Luxi Sans"
,
"DejaVu Sans"
,
Tahoma
,
"Hiragino Sans GB"
,
"Microsoft Yahei"
,
sans-serif
}
html
,
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
}
.content-reset
{
word-wrap
:
break-word
;
overflow
:
auto
;
line-height
:
1.65
;
font-size
:
16px
;
word-break
:
break-word
}
.content-reset
ul
,
.content-reset
ol
{
padding-left
:
2em
;
margin-top
:
0
;
margin-bottom
:
16px
}
.content-reset
li
{
margin-top
:
.25em
}
.content-reset
img
{
cursor
:
zoom-in
}
.content-reset
img
.emoji
{
cursor
:
auto
;
max-width
:
18px
}
.content-reset
h1
,
.content-reset
h2
,
.content-reset
h3
,
.content-reset
h4
,
.content-reset
h5
,
.content-reset
h6
{
margin-top
:
24px
;
margin-bottom
:
16px
;
font-weight
:
600
;
line-height
:
1.25
}
.content-reset
h1
{
padding-bottom
:
.3em
;
font-size
:
1.7em
;
border-bottom
:
1px
solid
#eee
}
.content-reset
h2
{
padding-bottom
:
.3em
;
font-size
:
1.5em
;
border-bottom
:
1px
solid
#eee
}
.content-reset
h3
{
font-size
:
1.25em
}
.content-reset
h4
{
font-size
:
1em
}
.content-reset
h5
{
font-size
:
.875em
}
.content-reset
h6
{
font-size
:
.85em
}
.content-reset
hr
{
height
:
.15em
;
padding
:
0
;
margin
:
24px
0
;
background-color
:
#e7e7e7
;
border
:
0
}
.content-reset
p
{
margin-top
:
0
;
margin-bottom
:
16px
}
.content-reset
blockquote
{
padding
:
0
1em
;
color
:
#777
;
border-left
:
.25em
solid
#ddd
;
margin-bottom
:
16px
}
.content-reset
blockquote
p
{
margin
:
0
}
.content-reset
ins
>
iframe
{
border
:
0
}
.content-reset
iframe
{
border
:
1px
solid
rgba
(
0
,
0
,
0
,
0.38
)}
.content-reset
table
{
width
:
100%
;
border
:
1px
solid
#dedede
;
margin
:
15px
auto
;
border-collapse
:
collapse
;
empty-cells
:
show
}
.content-reset
thead
{
text-align
:
center
}
.content-reset
td
,
.content-reset
th
{
height
:
35px
;
border
:
1px
solid
#dedede
;
padding
:
0
10px
}
.content-reset
th
{
font-weight
:
bold
;
text-align
:
center
!important
;
background
:
rgba
(
158
,
188
,
226
,
0.2
)}
.content-reset
tbody
tr
:nth-child
(
2n
)
{
background
:
rgba
(
158
,
188
,
226
,
0.12
)}
.content-reset
tr
:hover
{
background
:
#efefef
}
.content-reset
code
{
padding
:
.2em
.4em
;
margin
:
0
;
font-size
:
85%
;
background-color
:
rgba
(
252
,
41
,
41
,
0.12
);
border-radius
:
3px
;
word-break
:
break-word
}
.content-reset
pre
{
position
:
relative
}
.content-reset
pre
textarea
{
position
:
absolute
;
top
:
-100000px
}
.content-reset
pre
>
code
{
padding
:
.5em
;
background-color
:
rgba
(
0
,
0
,
0
,
0.04
);
background-size
:
20px
20px
;
border-radius
:
5px
;
display
:
block
}
.content-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
rgba
(
0
,
0
,
0
,
0.38
);
border-bottom-color
:
#bbb
;
border-radius
:
3px
;
box-shadow
:
inset
0
-1px
0
#bbb
}
.content-reset__task
,
.content-reset
.task-list-item
{
list-style
:
none
;
margin-left
:
-1em
}
.tooltipped
{
position
:
relative
;
cursor
:
pointer
}
.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
}
.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
}
@-webkit-keyframes
tooltip-appear
{
from
{
opacity
:
0
}
to
{
opacity
:
1
}}
@keyframes
tooltip-appear
{
from
{
opacity
:
0
}
to
{
opacity
:
1
}}
.tooltipped-hover
::before
,
.tooltipped-hover
::after
,
.tooltipped
:hover::before
,
.tooltipped
:hover::after
,
.tooltipped
:active::before
,
.tooltipped
:active::after
,
.tooltipped
:focus::before
,
.tooltipped
:focus::after
{
display
:
inline-block
;
text-decoration
:
none
;
-webkit-animation-name
:
tooltip-appear
;
animation-name
:
tooltip-appear
;
-webkit-animation-duration
:
.1s
;
animation-duration
:
.1s
;
-webkit-animation-fill-mode
:
forwards
;
animation-fill-mode
:
forwards
;
-webkit-animation-timing-function
:
ease-in
;
animation-timing-function
:
ease-in
;
-webkit-animation-delay
:
.4s
;
animation-delay
:
.4s
}
.tooltipped-s
::after
,
.tooltipped-se
::after
,
.tooltipped-sw
::after
{
top
:
100%
;
right
:
50%
;
margin-top
:
5px
}
.tooltipped-s
::before
,
.tooltipped-se
::before
,
.tooltipped-sw
::before
{
top
:
auto
;
right
:
50%
;
bottom
:
-5px
;
margin-right
:
-5px
;
border-bottom-color
:
rgba
(
0
,
0
,
0
,
0.8
)}
.tooltipped-se
::after
{
right
:
auto
;
left
:
50%
;
margin-left
:
-15px
}
.tooltipped-sw
::after
{
margin-right
:
-15px
}
.tooltipped-n
::after
,
.tooltipped-ne
::after
,
.tooltipped-nw
::after
{
right
:
50%
;
bottom
:
100%
;
margin-bottom
:
5px
}
.tooltipped-n
::before
,
.tooltipped-ne
::before
,
.tooltipped-nw
::before
{
top
:
-5px
;
right
:
50%
;
bottom
:
auto
;
margin-right
:
-5px
;
border-top-color
:
rgba
(
0
,
0
,
0
,
0.8
)}
.tooltipped-ne
::after
{
right
:
auto
;
left
:
50%
;
margin-left
:
-15px
}
.tooltipped-nw
::after
{
margin-right
:
-15px
}
.tooltipped-s
::after
,
.tooltipped-n
::after
{
-webkit-transform
:
translateX
(
50%
);
transform
:
translateX
(
50%
)}
.tooltipped-w
::after
{
right
:
100%
;
bottom
:
50%
;
margin-right
:
5px
;
-webkit-transform
:
translateY
(
50%
);
transform
:
translateY
(
50%
)}
.tooltipped-w
::before
{
top
:
50%
;
bottom
:
50%
;
left
:
-5px
;
margin-top
:
-5px
;
border-left-color
:
rgba
(
0
,
0
,
0
,
0.8
)}
.tooltipped-e
::after
{
bottom
:
50%
;
left
:
100%
;
margin-left
:
5px
;
-webkit-transform
:
translateY
(
50%
);
transform
:
translateY
(
50%
)}
.tooltipped-e
::before
{
top
:
50%
;
right
:
-5px
;
bottom
:
50%
;
margin-top
:
-5px
;
border-right-color
:
rgba
(
0
,
0
,
0
,
0.8
)}
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
:
0
;
line-height
:
18px
}
button
:hover
{
background-color
:
#1ca59e
;
border-color
:
#1ca59e
}
@font-face
{
font-family
:
'icomoon'
;
src
:
url('fonts/icomoon.eot?f71494')
;
src
:
url('fonts/icomoon.eot?f71494#iefix')
format
(
'embedded-opentype'
),
url('fonts/icomoon.ttf?f71494')
format
(
'truetype'
),
url('fonts/icomoon.woff?f71494')
format
(
'woff'
),
url('fonts/icomoon.svg?f71494#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-move-down
:before
{
content
:
"\e90a"
}
.icon-move-up
:before
{
content
:
"\e90b"
}
.icon-points
:before
{
content
:
"\e900"
}
.icon-goods
:before
{
content
:
"\e904"
}
.icon-bold
:before
{
content
:
"\e000"
}
.icon-italic
:before
{
content
:
"\e001"
}
.icon-quote
:before
{
content
:
"\e003"
}
.icon-unordered-list
:before
{
content
:
"\e004"
}
.icon-ordered-list
:before
{
content
:
"\e005"
}
.icon-link
:before
{
content
:
"\e006"
}
.icon-image
:before
{
content
:
"\e007"
}
.icon-play
:before
{
content
:
"\e008"
}
.icon-music
:before
{
content
:
"\e009"
}
.icon-contract
:before
{
content
:
"\e00a"
}
.icon-fullscreen
:before
{
content
:
"\e00b"
}
.icon-question
:before
{
content
:
"\e00c"
}
.icon-info
:before
{
content
:
"\e00d"
}
.icon-undo
:before
{
content
:
"\e00e"
}
.icon-redo
:before
{
content
:
"\e00f"
}
.icon-code
:before
{
content
:
"\e011"
}
.icon-preview
:before
{
content
:
"\e002"
}
.icon-navigation
:before
{
content
:
"\e903"
}
.icon-thumbs-down
:before
{
content
:
"\e901"
}
.icon-thumbs-up
:before
{
content
:
"\e902"
}
.icon-video
:before
{
content
:
"\f057"
}
.icon-feed
:before
{
content
:
"\e61f"
}
.icon-article
:before
{
content
:
"\e61d"
}
.icon-star
:before
{
content
:
"\e600"
}
.icon-register
:before
{
content
:
"\e602"
}
.icon-logout
:before
{
content
:
"\e603"
}
.icon-setting
:before
{
content
:
"\e604"
}
.icon-google
:before
{
content
:
"\e605"
}
.icon-search
:before
{
content
:
"\e606"
}
.icon-weibo
:before
{
content
:
"\e607"
}
.icon-date
:before
{
content
:
"\e608"
}
.icon-view
:before
{
content
:
"\e609"
}
.icon-cmts
:before
{
content
:
"\e60a"
}
.icon-refresh
:before
{
content
:
"\e60b"
}
.icon-up
:before
{
content
:
"\e60c"
}
.icon-twitter
:before
{
content
:
"\e60d"
}
.icon-edit
:before
{
content
:
"\e60e"
}
.icon-tencent
:before
{
content
:
"\e60f"
}
.icon-tag
:before
{
content
:
"\e610"
}
.icon-tags
:before
{
content
:
"\e611"
}
.icon-addfile
:before
{
content
:
"\e612"
}
.icon-login
:before
{
content
:
"\e613"
}
.icon-articles
:before
{
content
:
"\e614"
}
.icon-userrole
:before
{
content
:
"\e615"
}
.icon-email
:before
{
content
:
"\e616"
}
.icon-flag
:before
{
content
:
"\e617"
}
.icon-chevron-down
:before
{
content
:
"\e618"
}
.icon-chevron-up
:before
{
content
:
"\e619"
}
.icon-reply
:before
{
content
:
"\e61a"
}
.icon-clock
:before
{
content
:
"\e61b"
}
.icon-compass
:before
{
content
:
"\e61c"
}
.icon-heart
:before
{
content
:
"\e9da"
}
.icon-locked
:before
{
content
:
"\e61e"
}
.icon-close
:before
{
content
:
"\e909"
}
.icon-wechat
:before
{
content
:
"\e907"
}
.icon-upload
:before
{
content
:
"\f0ee"
}
.icon-copy
:before
{
content
:
"\e908"
}
.icon-time
:before
{
content
:
"\e906"
}
.icon-sortasc
:before
{
content
:
"\e905"
}
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
,
.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
>
.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
>
.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
:
0
;
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
.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
:
#fff
;
color
:
#1fb5ad
}
.sub-tabs-main
{
background-color
:
#fff
;
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
}
#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
,
.02
);
background-size
:
cover
;
background-repeat
:
no-repeat
;
background-position
:
50%
;
height
:
180px
;
width
:
100%
}
.article__thumbnail
button
{
margin-top
:
10px
}
button
#submitArticle
{
background-color
:
#fa8564
;
border-color
:
#fa8564
}
button
#submitArticle
:hover
{
background-color
:
#ec6459
;
border-color
:
#ec6459
}
.CodeMirror
{
border-radius
:
0
0
3px
3px
;
box-shadow
:
0
1px
2px
rgba
(
0
,
0
,
0
,
0.075
)
inset
;
border
:
1px
solid
#ccc
;
margin-bottom
:
20px
;
border-top-width
:
0
;
height
:
470px
}
.comment-content
.CodeMirror
{
height
:
170px
}
#pagePagePanel
{
margin-top
:
0
}
#skinsPanel
{
min-width
:
328px
;
width
:
99%
}
.skinPreview
{
cursor
:
pointer
;
height
:
160px
;
margin
:
6px
;
width
:
280px
}
.skinItem
{
background-color
:
#fafafa
;
border-radius
:
3px
;
box-shadow
:
1px
1px
3px
#333
;
line-height
:
16px
;
margin
:
10px
;
text-align
:
center
}
#skinMain
.skinItem.selected
{
background-color
:
#1fb5ad
}
.skinItem
:hover
{
background-color
:
#EEE
}
.f-blue
,
.error-msg
{
color
:
#36c
}
.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
{
float
:
left
;
margin
:
20px
0
0
20px
}
.about-margin
{
font-size
:
20px
;
margin
:
20px
0
}
.content-reset
.about-list
li
{
border
:
0
}
.content-reset
.about-list
li
:hover
{
background-color
:
#fff
;
text-decoration
:
underline
}
.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
:
#00c
;
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
{
margin
:
5px
10px
5px
0
;
display
:
inline-block
;
background-color
:
#c7cbd6
;
border-color
:
#c7cbd6
}
.completed-ck
span
:hover
,
.signs
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
:
#000
;
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
:
#fff
;
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
:
#fff
;
border
:
1px
solid
#666
;
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
:
0
}
.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
:
0
}
.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
}
.tip-panel
{
background-color
:
#FFF
;
box-shadow
:
0
3px
10px
#8b8b8b
;
display
:
none
;
max-height
:
500px
;
max-width
:
500px
;
overflow
:
hidden
;
padding
:
3px
;
position
:
absolute
;
z-index
:
1
}
.navigation-icon
{
height
:
18px
;
width
:
18px
;
float
:
left
;
margin
:
-1px
10px
0
0
}
#preferenceSignButton1
,
#preferenceSignButton2
,
#preferenceSignButton3
{
margin
:
10px
0
}
#tabPreferencePanel
label
,
#tabPreferencePanel_setting
label
,
#tabPreferencePanel_qiniu
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
}
@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
.15s
ease-in-out
;
left
:
-240px
;
z-index
:
100
}
.top__menu
{
font-size
:
22px
;
margin
:
12px
;
float
:
left
;
display
:
block
}
.editor-toolbar
{
height
:
auto
!important
;
overflow
:
hidden
}
.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
}}
\ No newline at end of file
src/main/webapp/js/common.js
View file @
bd016bb5
...
...
@@ -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.
4.1.1, Oct 27, 2018
* @version 1.
5.0.0, Jan 13, 2019
*/
/**
...
...
@@ -322,6 +322,15 @@ var Util = {
Util
.
killIE
();
Util
.
setTopBar
();
Util
.
parseMarkdown
();
Util
.
initSW
();
},
/**
* @description 注册 Service Work
*/
initSW
:
function
()
{
if
(
navigator
.
serviceWorker
)
{
navigator
.
serviceWorker
.
register
(
'
/sw.js
'
,
{
scope
:
'
/
'
});
}
},
/**
* @description 替换侧边栏表情为图片
...
...
src/main/webapp/js/common.min.js
View file @
bd016bb5
var
Util
=
{
htmlDecode
:
function
(
code
){
var
div
=
document
.
createElement
(
"
div
"
);
div
.
innerHTML
=
decodeURIComponent
(
code
);
return
div
.
innerText
},
isArticlePage
:
function
(
href
){
var
isArticle
=
true
;
if
(
href
.
indexOf
(
latkeConfig
.
servePath
+
"
/tags/
"
)
>-
1
){
isArticle
=
false
}
if
(
href
.
indexOf
(
latkeConfig
.
servePath
+
"
/tags.html
"
)
>-
1
){
isArticle
=
false
}
if
(
href
.
indexOf
(
latkeConfig
.
servePath
+
"
/category/
"
)
>-
1
){
isArticle
=
false
}
if
(
href
.
indexOf
(
latkeConfig
.
servePath
+
"
/archives.html
"
)
>-
1
){
isArticle
=
false
}
if
(
href
.
indexOf
(
latkeConfig
.
servePath
+
"
/archives/
"
)
>-
1
){
isArticle
=
false
}
if
(
href
.
indexOf
(
latkeConfig
.
servePath
+
"
/links.html
"
)
>-
1
){
isArticle
=
false
}
if
(
href
===
latkeConfig
.
servePath
){
isArticle
=
false
}
if
(
/^
[
0-9
]
*$/
.
test
(
href
.
replace
(
latkeConfig
.
servePath
+
"
/
"
,
""
))){
isArticle
=
false
}
return
isArticle
},
initPjax
:
function
(
cb
){
if
(
$
(
"
#pjax
"
).
length
===
1
){
$
.
pjax
({
selector
:
"
a
"
,
container
:
"
#pjax
"
,
show
:
""
,
cache
:
false
,
storage
:
true
,
titleSuffix
:
""
,
filter
:
function
(
href
){
if
(
href
===
latkeConfig
.
servePath
+
"
/rss.xml
"
||
href
.
indexOf
(
latkeConfig
.
servePath
+
"
/admin-index.do
"
)
>-
1
){
return
true
}
if
(
href
.
indexOf
(
latkeConfig
.
servePath
)
>-
1
){
return
false
}
return
true
},
callback
:
function
(){
cb
&&
cb
()}});
NProgress
.
configure
({
showSpinner
:
false
});
$
(
"
#pjax
"
).
bind
(
"
pjax.start
"
,
function
(){
NProgress
.
start
()});
$
(
"
#pjax
"
).
bind
(
"
pjax.end
"
,
function
(){
window
.
scroll
(
window
.
scrollX
,
0
);
NProgress
.
done
()})}},
parseMarkdown
:
function
(
className
){
var
hasMathJax
=
false
;
var
hasFlow
=
false
;
var
className
=
className
||
"
article-body
"
;
$
(
"
.
"
+
className
).
each
(
function
(){
$
(
this
).
find
(
"
p
"
).
each
(
function
(){
if
(
$
(
this
).
text
().
split
(
"
$
"
).
length
>
2
||
(
$
(
this
).
text
().
split
(
"
\\
(
"
).
length
>
1
&&
$
(
this
).
text
().
split
(
"
\\
)
"
).
length
>
1
)){
hasMathJax
=
true
;
return
false
}});
if
(
$
(
this
).
find
(
"
code.lang-flow, code.language-flow
"
).
length
>
0
){
hasFlow
=
true
;
return
false
}});
if
(
hasMathJax
){
var
initMathJax
=
function
(){
MathJax
.
Hub
.
Config
({
tex2jax
:{
inlineMath
:[[
"
$
"
,
"
$
"
],[
"
\\
(
"
,
"
\\
)
"
]],
displayMath
:[[
"
$$
"
,
"
$$
"
]],
processEscapes
:
true
,
processEnvironments
:
true
,
skipTags
:[
"
pre
"
,
"
code
"
,
"
script
"
]}});
MathJax
.
Hub
.
Typeset
()};
if
(
typeof
MathJax
!==
"
undefined
"
){
initMathJax
()}
else
{
$
.
ajax
({
method
:
"
GET
"
,
url
:
"
https://cdn.staticfile.org/MathJax/MathJax-2.6-latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML&_=1473258780393
"
,
dataType
:
"
script
"
,
cache
:
true
}).
done
(
function
(){
initMathJax
()})}}
if
(
hasFlow
){
var
initFlow
=
function
(){
$
(
"
.
"
+
className
+
"
code.lang-flow, .
"
+
className
+
"
code.language-flow
"
).
each
(
function
(
index
){
var
$it
=
$
(
this
);
var
id
=
"
symFlow
"
+
(
new
Date
()).
getTime
()
+
index
;
$it
.
hide
();
var
diagram
=
flowchart
.
parse
(
$
.
trim
(
$it
.
text
()));
$it
.
parent
().
after
(
'
<div style="text-align: center" id="
'
+
id
+
'
"></div>
'
);
diagram
.
drawSVG
(
id
);
$it
.
parent
().
remove
();
$
(
"
#
"
+
id
).
find
(
"
svg
"
).
height
(
"
auto
"
).
width
(
"
auto
"
)})};
if
(
typeof
(
flowchart
)
!==
"
undefined
"
){
initFlow
()}
else
{
$
.
ajax
({
method
:
"
GET
"
,
url
:
latkeConfig
.
staticServePath
+
"
/js/lib/flowchart/flowchart.min.js
"
,
dataType
:
"
script
"
,
cache
:
true
}).
done
(
function
(){
initFlow
()})}}},
isLoggedIn
:
function
(){
if
((
$
(
"
#admin
"
).
length
===
1
&&
$
(
"
#admin
"
).
data
(
"
login
"
))
||
latkeConfig
.
isLoggedIn
===
"
true
"
){
return
true
}
else
{
return
false
}},
getUserName
:
function
(){
if
(
$
(
"
#adminName
"
).
length
===
1
){
return
$
(
"
#adminName
"
).
text
()}
else
{
return
latkeConfig
.
userName
}},
error
:
function
(){
$
(
"
#tipMsg
"
).
text
(
"
Error:
"
+
arguments
[
0
]
+
"
File:
"
+
arguments
[
1
]
+
"
\n
Line:
"
+
arguments
[
2
]
+
"
please report this issue on https://github.com/b3log/solo/issues/new
"
);
$
(
"
#loadMsg
"
).
text
(
""
)},
killIE
:
function
(
ieVersion
){
var
addKillPanel
=
function
(){
if
(
Cookie
.
readCookie
(
"
showKill
"
)
===
""
){
try
{
var
left
=
(
$
(
window
).
width
()
-
781
)
/
2
,
top1
=
(
$
(
window
).
height
()
-
680
)
/
2
;
var
killIEHTML
=
"
<div style='display: block; height: 100%; width: 100%; position: fixed; background-color: rgb(0, 0, 0); opacity: 0.6;filter: alpha(opacity=60); top: 0px;z-index:110'></div><iframe style='left:
"
+
left
+
"
px;z-index:120;top:
"
+
top1
+
"
px; position: fixed; border: 0px none; width: 781px; height: 680px;' src='
"
+
latkeConfig
.
servePath
+
"
/kill-browser'></iframe>
"
;
$
(
"
body
"
).
append
(
killIEHTML
)}
catch
(
e
){
var
left
=
10
,
top1
=
0
;
var
killIEHTML
=
"
<div style='display: block; height: 100%; width: 100%; position: fixed; background-color: rgb(0, 0, 0); opacity: 0.6;filter: alpha(opacity=60); top: 0px;z-index:110'></div><iframe style='left:
"
+
left
+
"
px;z-index:120;top:
"
+
top1
+
"
px; position: fixed; border: 0px none; width: 781px; height: 680px;' src='
"
+
latkeConfig
.
servePath
+
"
/kill-browser'></iframe>
"
;
document
.
body
.
innerHTML
=
document
.
body
.
innerHTML
+
killIEHTML
}}};
var
ua
=
navigator
.
userAgent
.
split
(
"
MSIE
"
)[
1
];
if
(
ua
){
if
(
!
ieVersion
){
ieVersion
=
7
}
if
(
parseFloat
(
ua
.
split
(
"
;
"
))
<=
ieVersion
){
addKillPanel
()}}},
replaceEmString
:
function
(
str
){
var
commentSplited
=
str
.
split
(
"
[em
"
);
if
(
commentSplited
.
length
===
1
){
return
str
}
str
=
commentSplited
[
0
];
for
(
var
j
=
1
;
j
<
commentSplited
.
length
;
j
++
){
var
key
=
commentSplited
[
j
].
substr
(
0
,
2
);
str
+=
"
<img width='20' src='
"
+
latkeConfig
.
staticServePath
+
"
/images/emotions/em
"
+
key
+
"
.png' alt='
"
+
Label
[
"
em
"
+
key
+
"
Label
"
]
+
"
' title='
"
+
Label
[
"
em
"
+
key
+
"
Label
"
]
+
"
'/>
"
+
commentSplited
[
j
].
substr
(
3
)}
return
str
},
proessURL
:
function
(
url
){
if
(
!
/^
\w
+:
\/\/
/
.
test
(
url
)){
url
=
"
http://
"
+
url
}
return
url
},
switchMobile
:
function
(
skin
){
Cookie
.
createCookie
(
"
btouch_switch_toggle
"
,
skin
,
365
);
setTimeout
(
function
(){
location
.
reload
()},
1250
)},
setTopBar
:
function
(){
var
$top
=
$
(
"
#top
"
);
if
(
$top
.
length
===
1
){
var
$showTop
=
$
(
"
#showTop
"
);
$showTop
.
click
(
function
(){
$top
.
slideDown
();
$showTop
.
hide
()});
$
(
"
#hideTop
"
).
click
(
function
(){
$top
.
slideUp
();
$showTop
.
show
()})}},
goTop
:
function
(){
$
(
"
html, body
"
).
animate
({
scrollTop
:
0
},
800
)},
goBottom
:
function
(
bottom
){
if
(
!
bottom
){
bottom
=
0
}
var
wHeight
=
$
(
"
body
"
).
height
()
>
$
(
document
).
height
()?
$
(
"
body
"
).
height
():
$
(
document
).
height
();
window
.
scrollTo
(
0
,
wHeight
-
$
(
window
).
height
()
-
bottom
)},
init
:
function
(){
Util
.
killIE
();
Util
.
setTopBar
();
Util
.
parseMarkdown
()},
replaceSideEm
:
function
(
comments
){
for
(
var
i
=
0
;
i
<
comments
.
length
;
i
++
){
var
$comment
=
$
(
comments
[
i
]);
$comment
.
html
(
Util
.
replaceEmString
(
$comment
.
html
()))}},
buildTags
:
function
(
id
){
id
=
id
||
"
tags
"
;
var
classes
=
[
"
tags1
"
,
"
tags2
"
,
"
tags3
"
,
"
tags4
"
,
"
tags5
"
],
bList
=
$
(
"
#
"
+
id
+
"
b
"
).
get
();
var
max
=
parseInt
(
$
(
"
#
"
+
id
+
"
b
"
).
last
().
text
());
var
distance
=
Math
.
ceil
(
max
/
classes
.
length
);
for
(
var
i
=
0
;
i
<
bList
.
length
;
i
++
){
var
num
=
parseInt
(
bList
[
i
].
innerHTML
);
for
(
var
j
=
0
;
j
<
classes
.
length
;
j
++
){
if
(
num
>
j
*
distance
&&
num
<=
(
j
+
1
)
*
distance
){
bList
[
i
].
parentNode
.
className
=
classes
[
j
];
break
}}}
$
(
"
#
"
+
id
).
html
(
$
(
"
#
"
+
id
+
"
li
"
).
get
().
sort
(
function
(
a
,
b
){
var
valA
=
$
(
a
).
find
(
"
span
"
).
text
().
toLowerCase
();
var
valB
=
$
(
b
).
find
(
"
span
"
).
text
().
toLowerCase
();
return
valA
.
localeCompare
(
valB
)}))},
toDate
:
function
(
time
,
format
){
var
dateTime
=
new
Date
(
time
);
var
o
=
{
"
M+
"
:
dateTime
.
getMonth
()
+
1
,
"
d+
"
:
dateTime
.
getDate
(),
"
H+
"
:
dateTime
.
getHours
(),
"
m+
"
:
dateTime
.
getMinutes
(),
"
s+
"
:
dateTime
.
getSeconds
(),
"
q+
"
:
Math
.
floor
((
dateTime
.
getMonth
()
+
3
)
/
3
),
S
:
dateTime
.
getMilliseconds
()};
if
(
/
(
y+
)
/
.
test
(
format
)){
format
=
format
.
replace
(
RegExp
.
$1
,(
dateTime
.
getFullYear
()
+
""
).
substr
(
4
-
RegExp
.
$1
.
length
))}
for
(
var
k
in
o
){
if
(
new
RegExp
(
"
(
"
+
k
+
"
)
"
).
test
(
format
)){
format
=
format
.
replace
(
RegExp
.
$1
,
RegExp
.
$1
.
length
==
1
?
o
[
k
]:(
"
00
"
+
o
[
k
]).
substr
((
""
+
o
[
k
]).
length
))}}
return
format
},
getWinHeight
:
function
(){
if
(
window
.
innerHeight
){
return
window
.
innerHeight
}
if
(
document
.
compatMode
===
"
CSS1Compat
"
){
return
window
.
document
.
documentElement
.
clientHeight
}
return
window
.
document
.
body
.
clientHeight
}};
if
(
!
Cookie
){
var
Cookie
=
{
readCookie
:
function
(
name
){
var
nameEQ
=
name
+
"
=
"
;
var
ca
=
document
.
cookie
.
split
(
"
;
"
);
for
(
var
i
=
0
;
i
<
ca
.
length
;
i
++
){
var
c
=
ca
[
i
];
while
(
c
.
charAt
(
0
)
==
"
"
){
c
=
c
.
substring
(
1
,
c
.
length
)}
if
(
c
.
indexOf
(
nameEQ
)
==
0
){
return
decodeURIComponent
(
c
.
substring
(
nameEQ
.
length
,
c
.
length
))}}
return
""
},
eraseCookie
:
function
(
name
){
this
.
createCookie
(
name
,
""
,
-
1
)},
createCookie
:
function
(
name
,
value
,
days
){
var
expires
=
""
;
if
(
days
){
var
date
=
new
Date
();
date
.
setTime
(
date
.
getTime
()
+
(
days
*
24
*
60
*
60
*
1000
));
expires
=
"
; expires=
"
+
date
.
toGMTString
()}
document
.
cookie
=
name
+
"
=
"
+
encodeURIComponent
(
value
)
+
expires
+
"
; path=/
"
}}};
\ No newline at end of file
var
Util
=
{
htmlDecode
:
function
(
code
){
var
div
=
document
.
createElement
(
"
div
"
);
div
.
innerHTML
=
decodeURIComponent
(
code
);
return
div
.
innerText
},
isArticlePage
:
function
(
href
){
var
isArticle
=
true
;
if
(
href
.
indexOf
(
latkeConfig
.
servePath
+
"
/tags/
"
)
>-
1
){
isArticle
=
false
}
if
(
href
.
indexOf
(
latkeConfig
.
servePath
+
"
/tags.html
"
)
>-
1
){
isArticle
=
false
}
if
(
href
.
indexOf
(
latkeConfig
.
servePath
+
"
/category/
"
)
>-
1
){
isArticle
=
false
}
if
(
href
.
indexOf
(
latkeConfig
.
servePath
+
"
/archives.html
"
)
>-
1
){
isArticle
=
false
}
if
(
href
.
indexOf
(
latkeConfig
.
servePath
+
"
/archives/
"
)
>-
1
){
isArticle
=
false
}
if
(
href
.
indexOf
(
latkeConfig
.
servePath
+
"
/links.html
"
)
>-
1
){
isArticle
=
false
}
if
(
href
===
latkeConfig
.
servePath
){
isArticle
=
false
}
if
(
/^
[
0-9
]
*$/
.
test
(
href
.
replace
(
latkeConfig
.
servePath
+
"
/
"
,
""
))){
isArticle
=
false
}
return
isArticle
},
initPjax
:
function
(
cb
){
if
(
$
(
"
#pjax
"
).
length
===
1
){
$
.
pjax
({
selector
:
"
a
"
,
container
:
"
#pjax
"
,
show
:
""
,
cache
:
false
,
storage
:
true
,
titleSuffix
:
""
,
filter
:
function
(
href
){
if
(
href
===
latkeConfig
.
servePath
+
"
/rss.xml
"
||
href
.
indexOf
(
latkeConfig
.
servePath
+
"
/admin-index.do
"
)
>-
1
){
return
true
}
if
(
href
.
indexOf
(
latkeConfig
.
servePath
)
>-
1
){
return
false
}
return
true
},
callback
:
function
(){
cb
&&
cb
()}});
NProgress
.
configure
({
showSpinner
:
false
});
$
(
"
#pjax
"
).
bind
(
"
pjax.start
"
,
function
(){
NProgress
.
start
()});
$
(
"
#pjax
"
).
bind
(
"
pjax.end
"
,
function
(){
window
.
scroll
(
window
.
scrollX
,
0
);
NProgress
.
done
()})}},
parseMarkdown
:
function
(
className
){
var
hasMathJax
=
false
;
var
hasFlow
=
false
;
var
className
=
className
||
"
article-body
"
;
$
(
"
.
"
+
className
).
each
(
function
(){
$
(
this
).
find
(
"
p
"
).
each
(
function
(){
if
(
$
(
this
).
text
().
split
(
"
$
"
).
length
>
2
||
(
$
(
this
).
text
().
split
(
"
\\
(
"
).
length
>
1
&&
$
(
this
).
text
().
split
(
"
\\
)
"
).
length
>
1
)){
hasMathJax
=
true
;
return
false
}});
if
(
$
(
this
).
find
(
"
code.lang-flow, code.language-flow
"
).
length
>
0
){
hasFlow
=
true
;
return
false
}});
if
(
hasMathJax
){
var
initMathJax
=
function
(){
MathJax
.
Hub
.
Config
({
tex2jax
:{
inlineMath
:[[
"
$
"
,
"
$
"
],[
"
\\
(
"
,
"
\\
)
"
]],
displayMath
:[[
"
$$
"
,
"
$$
"
]],
processEscapes
:
true
,
processEnvironments
:
true
,
skipTags
:[
"
pre
"
,
"
code
"
,
"
script
"
]}});
MathJax
.
Hub
.
Typeset
()};
if
(
typeof
MathJax
!==
"
undefined
"
){
initMathJax
()}
else
{
$
.
ajax
({
method
:
"
GET
"
,
url
:
"
https://cdn.staticfile.org/MathJax/MathJax-2.6-latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML&_=1473258780393
"
,
dataType
:
"
script
"
,
cache
:
true
}).
done
(
function
(){
initMathJax
()})}}
if
(
hasFlow
){
var
initFlow
=
function
(){
$
(
"
.
"
+
className
+
"
code.lang-flow, .
"
+
className
+
"
code.language-flow
"
).
each
(
function
(
index
){
var
$it
=
$
(
this
);
var
id
=
"
symFlow
"
+
(
new
Date
()).
getTime
()
+
index
;
$it
.
hide
();
var
diagram
=
flowchart
.
parse
(
$
.
trim
(
$it
.
text
()));
$it
.
parent
().
after
(
'
<div style="text-align: center" id="
'
+
id
+
'
"></div>
'
);
diagram
.
drawSVG
(
id
);
$it
.
parent
().
remove
();
$
(
"
#
"
+
id
).
find
(
"
svg
"
).
height
(
"
auto
"
).
width
(
"
auto
"
)})};
if
(
typeof
(
flowchart
)
!==
"
undefined
"
){
initFlow
()}
else
{
$
.
ajax
({
method
:
"
GET
"
,
url
:
latkeConfig
.
staticServePath
+
"
/js/lib/flowchart/flowchart.min.js
"
,
dataType
:
"
script
"
,
cache
:
true
}).
done
(
function
(){
initFlow
()})}}},
isLoggedIn
:
function
(){
if
((
$
(
"
#admin
"
).
length
===
1
&&
$
(
"
#admin
"
).
data
(
"
login
"
))
||
latkeConfig
.
isLoggedIn
===
"
true
"
){
return
true
}
else
{
return
false
}},
getUserName
:
function
(){
if
(
$
(
"
#adminName
"
).
length
===
1
){
return
$
(
"
#adminName
"
).
text
()}
else
{
return
latkeConfig
.
userName
}},
error
:
function
(){
$
(
"
#tipMsg
"
).
text
(
"
Error:
"
+
arguments
[
0
]
+
"
File:
"
+
arguments
[
1
]
+
"
\n
Line:
"
+
arguments
[
2
]
+
"
please report this issue on https://github.com/b3log/solo/issues/new
"
);
$
(
"
#loadMsg
"
).
text
(
""
)},
killIE
:
function
(
ieVersion
){
var
addKillPanel
=
function
(){
if
(
Cookie
.
readCookie
(
"
showKill
"
)
===
""
){
try
{
var
left
=
(
$
(
window
).
width
()
-
781
)
/
2
,
top1
=
(
$
(
window
).
height
()
-
680
)
/
2
;
var
killIEHTML
=
"
<div style='display: block; height: 100%; width: 100%; position: fixed; background-color: rgb(0, 0, 0); opacity: 0.6;filter: alpha(opacity=60); top: 0px;z-index:110'></div><iframe style='left:
"
+
left
+
"
px;z-index:120;top:
"
+
top1
+
"
px; position: fixed; border: 0px none; width: 781px; height: 680px;' src='
"
+
latkeConfig
.
servePath
+
"
/kill-browser'></iframe>
"
;
$
(
"
body
"
).
append
(
killIEHTML
)}
catch
(
e
){
var
left
=
10
,
top1
=
0
;
var
killIEHTML
=
"
<div style='display: block; height: 100%; width: 100%; position: fixed; background-color: rgb(0, 0, 0); opacity: 0.6;filter: alpha(opacity=60); top: 0px;z-index:110'></div><iframe style='left:
"
+
left
+
"
px;z-index:120;top:
"
+
top1
+
"
px; position: fixed; border: 0px none; width: 781px; height: 680px;' src='
"
+
latkeConfig
.
servePath
+
"
/kill-browser'></iframe>
"
;
document
.
body
.
innerHTML
=
document
.
body
.
innerHTML
+
killIEHTML
}}};
var
ua
=
navigator
.
userAgent
.
split
(
"
MSIE
"
)[
1
];
if
(
ua
){
if
(
!
ieVersion
){
ieVersion
=
7
}
if
(
parseFloat
(
ua
.
split
(
"
;
"
))
<=
ieVersion
){
addKillPanel
()}}},
replaceEmString
:
function
(
str
){
var
commentSplited
=
str
.
split
(
"
[em
"
);
if
(
commentSplited
.
length
===
1
){
return
str
}
str
=
commentSplited
[
0
];
for
(
var
j
=
1
;
j
<
commentSplited
.
length
;
j
++
){
var
key
=
commentSplited
[
j
].
substr
(
0
,
2
);
str
+=
"
<img width='20' src='
"
+
latkeConfig
.
staticServePath
+
"
/images/emotions/em
"
+
key
+
"
.png' alt='
"
+
Label
[
"
em
"
+
key
+
"
Label
"
]
+
"
' title='
"
+
Label
[
"
em
"
+
key
+
"
Label
"
]
+
"
'/>
"
+
commentSplited
[
j
].
substr
(
3
)}
return
str
},
proessURL
:
function
(
url
){
if
(
!
/^
\w
+:
\/\/
/
.
test
(
url
)){
url
=
"
http://
"
+
url
}
return
url
},
switchMobile
:
function
(
skin
){
Cookie
.
createCookie
(
"
btouch_switch_toggle
"
,
skin
,
365
);
setTimeout
(
function
(){
location
.
reload
()},
1250
)},
setTopBar
:
function
(){
var
$top
=
$
(
"
#top
"
);
if
(
$top
.
length
===
1
){
var
$showTop
=
$
(
"
#showTop
"
);
$showTop
.
click
(
function
(){
$top
.
slideDown
();
$showTop
.
hide
()});
$
(
"
#hideTop
"
).
click
(
function
(){
$top
.
slideUp
();
$showTop
.
show
()})}},
goTop
:
function
(){
$
(
"
html, body
"
).
animate
({
scrollTop
:
0
},
800
)},
goBottom
:
function
(
bottom
){
if
(
!
bottom
){
bottom
=
0
}
var
wHeight
=
$
(
"
body
"
).
height
()
>
$
(
document
).
height
()?
$
(
"
body
"
).
height
():
$
(
document
).
height
();
window
.
scrollTo
(
0
,
wHeight
-
$
(
window
).
height
()
-
bottom
)},
init
:
function
(){
Util
.
killIE
();
Util
.
setTopBar
();
Util
.
parseMarkdown
();
if
(
navigator
.
serviceWorker
){
navigator
.
serviceWorker
.
register
(
"
/sw.js
"
)}},
replaceSideEm
:
function
(
comments
){
for
(
var
i
=
0
;
i
<
comments
.
length
;
i
++
){
var
$comment
=
$
(
comments
[
i
]);
$comment
.
html
(
Util
.
replaceEmString
(
$comment
.
html
()))}},
buildTags
:
function
(
id
){
id
=
id
||
"
tags
"
;
var
classes
=
[
"
tags1
"
,
"
tags2
"
,
"
tags3
"
,
"
tags4
"
,
"
tags5
"
],
bList
=
$
(
"
#
"
+
id
+
"
b
"
).
get
();
var
max
=
parseInt
(
$
(
"
#
"
+
id
+
"
b
"
).
last
().
text
());
var
distance
=
Math
.
ceil
(
max
/
classes
.
length
);
for
(
var
i
=
0
;
i
<
bList
.
length
;
i
++
){
var
num
=
parseInt
(
bList
[
i
].
innerHTML
);
for
(
var
j
=
0
;
j
<
classes
.
length
;
j
++
){
if
(
num
>
j
*
distance
&&
num
<=
(
j
+
1
)
*
distance
){
bList
[
i
].
parentNode
.
className
=
classes
[
j
];
break
}}}
$
(
"
#
"
+
id
).
html
(
$
(
"
#
"
+
id
+
"
li
"
).
get
().
sort
(
function
(
a
,
b
){
var
valA
=
$
(
a
).
find
(
"
span
"
).
text
().
toLowerCase
();
var
valB
=
$
(
b
).
find
(
"
span
"
).
text
().
toLowerCase
();
return
valA
.
localeCompare
(
valB
)}))},
toDate
:
function
(
time
,
format
){
var
dateTime
=
new
Date
(
time
);
var
o
=
{
"
M+
"
:
dateTime
.
getMonth
()
+
1
,
"
d+
"
:
dateTime
.
getDate
(),
"
H+
"
:
dateTime
.
getHours
(),
"
m+
"
:
dateTime
.
getMinutes
(),
"
s+
"
:
dateTime
.
getSeconds
(),
"
q+
"
:
Math
.
floor
((
dateTime
.
getMonth
()
+
3
)
/
3
),
S
:
dateTime
.
getMilliseconds
()};
if
(
/
(
y+
)
/
.
test
(
format
)){
format
=
format
.
replace
(
RegExp
.
$1
,(
dateTime
.
getFullYear
()
+
""
).
substr
(
4
-
RegExp
.
$1
.
length
))}
for
(
var
k
in
o
){
if
(
new
RegExp
(
"
(
"
+
k
+
"
)
"
).
test
(
format
)){
format
=
format
.
replace
(
RegExp
.
$1
,
RegExp
.
$1
.
length
==
1
?
o
[
k
]:(
"
00
"
+
o
[
k
]).
substr
((
""
+
o
[
k
]).
length
))}}
return
format
},
getWinHeight
:
function
(){
if
(
window
.
innerHeight
){
return
window
.
innerHeight
}
if
(
document
.
compatMode
===
"
CSS1Compat
"
){
return
window
.
document
.
documentElement
.
clientHeight
}
return
window
.
document
.
body
.
clientHeight
}};
if
(
!
Cookie
){
var
Cookie
=
{
readCookie
:
function
(
name
){
var
nameEQ
=
name
+
"
=
"
;
var
ca
=
document
.
cookie
.
split
(
"
;
"
);
for
(
var
i
=
0
;
i
<
ca
.
length
;
i
++
){
var
c
=
ca
[
i
];
while
(
c
.
charAt
(
0
)
==
"
"
){
c
=
c
.
substring
(
1
,
c
.
length
)}
if
(
c
.
indexOf
(
nameEQ
)
==
0
){
return
decodeURIComponent
(
c
.
substring
(
nameEQ
.
length
,
c
.
length
))}}
return
""
},
eraseCookie
:
function
(
name
){
this
.
createCookie
(
name
,
""
,
-
1
)},
createCookie
:
function
(
name
,
value
,
days
){
var
expires
=
""
;
if
(
days
){
var
date
=
new
Date
();
date
.
setTime
(
date
.
getTime
()
+
(
days
*
24
*
60
*
60
*
1000
));
expires
=
"
; expires=
"
+
date
.
toGMTString
()}
document
.
cookie
=
name
+
"
=
"
+
encodeURIComponent
(
value
)
+
expires
+
"
; path=/
"
}}};
\ No newline at end of file
skins
@
91f7a9f8
Subproject commit
889f6c797b8d9f7a661880a54940b9063f58b63d
Subproject commit
91f7a9f828d35f16a810d82fa7f9854612df6d97
src/main/webapp/sw.js
0 → 100644
View file @
bd016bb5
/*
* Solo - A small and beautiful blogging system written in Java.
* Copyright (c) 2010-2019, b3log.org & hacpai.com
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
/**
* @fileoverview 注册 Service Work,目前为空,只为触发添加到桌面。
*
* @author <a href="http://vanessa.b3log.org">Liyuan Li</a>
* @version 0.1.0.0, Jan 13, 2019
*/
self
.
addEventListener
(
'
fetch
'
,
function
(
event
)
{
// fix 'cannot be installed: does not work offline'
})
\ No newline at end of file
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