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
711bd078
Unverified
Commit
711bd078
authored
Jul 04, 2018
by
Liang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
🐛
fixed #12469
parent
28611056
Changes
4
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
37 additions
and
3 deletions
+37
-3
src/main/webapp/js/common.min.js
src/main/webapp/js/common.min.js
+17
-0
src/main/webapp/js/lib/CodeMirrorEditor/editor.js
src/main/webapp/js/lib/CodeMirrorEditor/editor.js
+2
-2
src/main/webapp/js/lib/compress/admin-lib.min.js
src/main/webapp/js/lib/compress/admin-lib.min.js
+1
-1
src/main/webapp/js/page.min.js
src/main/webapp/js/page.min.js
+17
-0
No files found.
src/main/webapp/js/common.min.js
View file @
711bd078
/*
* Solo - A beautiful, simple, stable, fast Java blogging system.
* Copyright (c) 2010-2018, 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/>.
*/
var
Util
=
{
_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
,
articelCB
){
if
(
$
(
"
#pjax
"
).
length
===
1
){
$
.
pjax
({
selector
:
"
a
"
,
container
:
"
#pjax
"
,
show
:
""
,
cache
:
false
,
storage
:
true
,
titleSuffix
:
""
,
filter
:
function
(
href
){
return
Util
.
_isArticlePage
(
href
)},
callback
:
function
(){
cb
()}});
NProgress
.
configure
({
showSpinner
:
false
});
$
(
"
#pjax
"
).
bind
(
"
pjax.start
"
,
function
(){
NProgress
.
start
()});
$
(
"
#pjax
"
).
bind
(
"
pjax.end
"
,
function
(){
NProgress
.
done
()});
return
}
if
(
$
(
"
#pjaxArticle
"
).
length
===
1
){
$
.
pjax
({
selector
:
"
a
"
,
container
:
"
#pjaxArticle
"
,
show
:
""
,
cache
:
false
,
storage
:
true
,
titleSuffix
:
""
,
filter
:
function
(
href
){
return
!
Util
.
_isArticlePage
(
href
)},
callback
:
function
(){
articelCB
()}});
NProgress
.
configure
({
showSpinner
:
false
});
$
(
"
#pjaxArticle
"
).
bind
(
"
pjax.start
"
,
function
(){
NProgress
.
start
()});
$
(
"
#pjaxArticle
"
).
bind
(
"
pjax.end
"
,
function
(){
NProgress
.
done
()});
return
}},
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
().
indexOf
(
"
$
\\
"
)
>-
1
||
$
(
this
).
text
().
indexOf
(
"
$$
"
)
>-
1
){
hasMathJax
=
true
}});
if
(
$
(
this
).
find
(
"
code.lang-flow, code.language-flow
"
).
length
>
0
){
hasFlow
=
true
}});
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
(){
var
addKillPanel
=
function
(){
if
(
Cookie
.
readCookie
(
"
showKill
"
)
===
""
){
var
left
=
(
$
(
window
).
width
()
-
701
)
/
2
,
top1
=
(
$
(
window
).
height
()
-
420
)
/
2
;
$
(
"
body
"
).
append
(
"
<div style='display: block; height: 100%; width: 100%; position: fixed; background-color: rgb(0, 0, 0); opacity: 0.6; top: 0px;z-index:11'></div><iframe style='left:
"
+
left
+
"
px;z-index:20;top:
"
+
top1
+
"
px; position: fixed; border: 0px none; width: 701px; height: 420px;' src='
"
+
latkeConfig
.
servePath
+
"
/kill-browser'></iframe>
"
)}};
if
(
$
.
browser
.
msie
){
if
(
$
.
browser
.
version
===
"
6.0
"
||
$
.
browser
.
version
===
"
7.0
"
){
addKillPanel
();
return
}
if
(
window
.
external
&&
window
.
external
.
twGetRunPath
){
var
path
=
external
.
twGetRunPath
();
if
(
path
&&
path
.
toLowerCase
().
indexOf
(
"
360se
"
)
>-
1
&&
window
.
location
.
href
.
indexOf
(
"
admin-index
"
)
>-
1
){
addKillPanel
();
return
}}}},
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
src/main/webapp/js/lib/CodeMirrorEditor/editor.js
View file @
711bd078
...
...
@@ -1174,7 +1174,7 @@
+
(
$
(
window
).
height
()
-
$
(
'
.editor-toolbar
'
).
outerHeight
())
+
'
px">
'
+
result
.
html
+
'
</div>
'
);
hljs
.
initHighlighting
.
called
=
false
;
hljs
.
initHighlighting
();
Util
.
parseMarkdown
();
Util
.
parseMarkdown
(
'
content-reset
'
);
}
});
...
...
@@ -1370,7 +1370,7 @@
},
success
:
function
(
result
,
textStatus
)
{
preview
.
innerHTML
=
result
.
html
;
Util
.
parseMarkdown
();
Util
.
parseMarkdown
(
'
content-reset
'
);
hljs
.
initHighlighting
.
called
=
false
;
hljs
.
initHighlighting
();
}
...
...
src/main/webapp/js/lib/compress/admin-lib.min.js
View file @
711bd078
This source diff could not be displayed because it is too large. You can
view the blob
instead.
src/main/webapp/js/page.min.js
View file @
711bd078
This diff is collapsed.
Click to expand it.
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