Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenDocCN
web-hacking-101-zh
提交
a856a39e
W
web-hacking-101-zh
项目概览
OpenDocCN
/
web-hacking-101-zh
8 个月 前同步成功
通知
0
Star
11
Fork
4
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
W
web-hacking-101-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
a856a39e
编写于
9月 16, 2020
作者:
W
wizardforcel
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
2020-09-16 22:09:16
上级
92137e5d
变更
4
展开全部
隐藏空白更改
内联
并排
Showing
4 changed file
with
834 addition
and
3 deletion
+834
-3
asset/docsify.min.js
asset/docsify.min.js
+1
-0
asset/search.min.js
asset/search.min.js
+1
-0
asset/vue.css
asset/vue.css
+829
-0
index.html
index.html
+3
-3
未找到文件。
asset/docsify.min.js
0 → 100644
浏览文件 @
a856a39e
此差异已折叠。
点击以展开。
asset/search.min.js
0 → 100644
浏览文件 @
a856a39e
!
function
(){
var
h
=
{},
f
=
{
EXPIRE_KEY
:
"
docsify.search.expires
"
,
INDEX_KEY
:
"
docsify.search.index
"
};
function
l
(
e
){
var
n
=
{
"
&
"
:
"
&
"
,
"
<
"
:
"
<
"
,
"
>
"
:
"
>
"
,
'
"
'
:
"
"
"
,
"
'
"
:
"
'
"
};
return
String
(
e
).
replace
(
/
[
&<>"'
]
/g
,
function
(
e
){
return
n
[
e
]})}
function
p
(
e
){
return
e
.
text
||
"
table
"
!==
e
.
type
||
(
e
.
cells
.
unshift
(
e
.
header
),
e
.
text
=
e
.
cells
.
map
(
function
(
e
){
return
e
.
join
(
"
|
"
)}).
join
(
"
|
\n
"
)),
e
.
text
}
function
u
(
r
,
e
,
i
,
o
){
void
0
===
e
&&
(
e
=
""
);
var
s
,
n
=
window
.
marked
.
lexer
(
e
),
c
=
window
.
Docsify
.
slugify
,
d
=
{};
return
n
.
forEach
(
function
(
e
){
if
(
"
heading
"
===
e
.
type
&&
e
.
depth
<=
o
){
var
n
=
function
(
e
){
void
0
===
e
&&
(
e
=
""
);
var
a
=
{};
return
{
str
:
e
=
e
&&
e
.
replace
(
/^'/
,
""
).
replace
(
/'$/
,
""
).
replace
(
/
(?:
^|
\s)
:
([\w
-
]
+:
?)
=
?([\w
-%
]
+
)?
/g
,
function
(
e
,
n
,
t
){
return
-
1
===
n
.
indexOf
(
"
:
"
)?(
a
[
n
]
=
t
&&
t
.
replace
(
/"/g
,
""
)
||!
0
,
""
):
e
}).
trim
(),
config
:
a
}}(
e
.
text
),
t
=
n
.
str
,
a
=
n
.
config
;
s
=
a
.
id
?
i
.
toURL
(
r
,{
id
:
c
(
a
.
id
)}):
i
.
toURL
(
r
,{
id
:
c
(
l
(
e
.
text
))}),
d
[
s
]
=
{
slug
:
s
,
title
:
t
,
body
:
""
}}
else
{
if
(
!
s
)
return
;
d
[
s
]?
d
[
s
].
body
?(
e
.
text
=
p
(
e
),
d
[
s
].
body
+=
"
\n
"
+
(
e
.
text
||
""
)):(
e
.
text
=
p
(
e
),
d
[
s
].
body
=
d
[
s
].
body
?
d
[
s
].
body
+
e
.
text
:
e
.
text
):
d
[
s
]
=
{
slug
:
s
,
title
:
""
,
body
:
""
}}}),
c
.
clear
(),
d
}
function
c
(
e
){
var
r
=
[],
i
=
[];
Object
.
keys
(
h
).
forEach
(
function
(
n
){
i
=
i
.
concat
(
Object
.
keys
(
h
[
n
]).
map
(
function
(
e
){
return
h
[
n
][
e
]}))});
var
o
=
(
e
=
e
.
trim
()).
split
(
/
[\s\-
,
\\/]
+/
);
1
!==
o
.
length
&&
(
o
=
[].
concat
(
e
,
o
));
function
n
(
e
){
var
n
=
i
[
e
],
s
=
0
,
c
=
""
,
d
=
n
.
title
&&
n
.
title
.
trim
(),
p
=
n
.
body
&&
n
.
body
.
trim
(),
t
=
n
.
slug
||
""
;
if
(
d
&&
(
o
.
forEach
(
function
(
e
){
var
n
,
t
=
new
RegExp
(
e
.
replace
(
/
[
|
\\
{}()[
\]
^$+*?.
]
/g
,
"
\\
$&
"
),
"
gi
"
),
a
=-
1
;
if
(
n
=
d
?
d
.
search
(
t
):
-
1
,
a
=
p
?
p
.
search
(
t
):
-
1
,
0
<=
n
||
0
<=
a
){
s
+=
0
<=
n
?
3
:
0
<=
a
?
2
:
0
,
a
<
0
&&
(
a
=
0
);
var
r
,
i
=
0
;
i
=
0
==
(
r
=
a
<
11
?
0
:
a
-
10
)?
70
:
a
+
e
.
length
+
60
,
p
&&
i
>
p
.
length
&&
(
i
=
p
.
length
);
var
o
=
"
...
"
+
l
(
p
).
substring
(
r
,
i
).
replace
(
t
,
function
(
e
){
return
'
<em class="search-keyword">
'
+
e
+
"
</em>
"
})
+
"
...
"
;
c
+=
o
}}),
0
<
s
)){
var
a
=
{
title
:
l
(
d
),
content
:
p
?
c
:
""
,
url
:
t
,
score
:
s
};
r
.
push
(
a
)}}
for
(
var
t
=
0
;
t
<
i
.
length
;
t
++
)
n
(
t
);
return
r
.
sort
(
function
(
e
,
n
){
return
n
.
score
-
e
.
score
})}
function
i
(
t
,
a
){
var
e
=
"
auto
"
===
t
.
paths
,
n
=
e
?
function
(
r
){
var
i
=
[];
return
Docsify
.
dom
.
findAll
(
"
.sidebar-nav a:not(.section-link):not([data-nosearch])
"
).
forEach
(
function
(
e
){
var
n
=
e
.
href
,
t
=
e
.
getAttribute
(
"
href
"
),
a
=
r
.
parse
(
n
).
path
;
a
&&-
1
===
i
.
indexOf
(
a
)
&&!
Docsify
.
util
.
isAbsolutePath
(
t
)
&&
i
.
push
(
a
)}),
i
}(
a
.
router
):
t
.
paths
,
r
=
""
;
if
(
e
&&
t
.
pathNamespaces
){
var
i
=
n
[
0
];
if
(
Array
.
isArray
(
t
.
pathNamespaces
))
r
=
t
.
pathNamespaces
.
find
(
function
(
e
){
return
i
.
startsWith
(
e
)})
||
r
;
else
if
(
t
.
pathNamespaces
instanceof
RegExp
){
var
o
=
i
.
match
(
t
.
pathNamespaces
);
o
&&
(
r
=
o
[
0
])}}
var
s
=
function
(
e
){
return
e
?
f
.
EXPIRE_KEY
+
"
/
"
+
e
:
f
.
EXPIRE_KEY
}(
t
.
namespace
)
+
r
,
c
=
function
(
e
){
return
e
?
f
.
INDEX_KEY
+
"
/
"
+
e
:
f
.
INDEX_KEY
}(
t
.
namespace
)
+
r
,
d
=
localStorage
.
getItem
(
s
)
<
Date
.
now
();
if
(
h
=
JSON
.
parse
(
localStorage
.
getItem
(
c
)),
d
)
h
=
{};
else
if
(
!
e
)
return
;
var
p
=
n
.
length
,
l
=
0
;
n
.
forEach
(
function
(
n
){
if
(
h
[
n
])
return
l
++
;
Docsify
.
get
(
a
.
router
.
getFile
(
n
),
!
1
,
a
.
config
.
requestHeaders
).
then
(
function
(
e
){
h
[
n
]
=
u
(
n
,
e
,
a
.
router
,
t
.
depth
),
p
===++
l
&&
function
(
e
,
n
,
t
){
localStorage
.
setItem
(
n
,
Date
.
now
()
+
e
),
localStorage
.
setItem
(
t
,
JSON
.
stringify
(
h
))}(
t
.
maxAge
,
s
,
c
)})})}
var
d
,
m
=
""
;
function
r
(
e
){
var
n
=
Docsify
.
dom
.
find
(
"
div.search
"
),
t
=
Docsify
.
dom
.
find
(
n
,
"
.results-panel
"
),
a
=
Docsify
.
dom
.
find
(
n
,
"
.clear-button
"
),
r
=
Docsify
.
dom
.
find
(
"
.sidebar-nav
"
),
i
=
Docsify
.
dom
.
find
(
"
.app-name
"
);
if
(
!
e
)
return
t
.
classList
.
remove
(
"
show
"
),
a
.
classList
.
remove
(
"
show
"
),
t
.
innerHTML
=
""
,
void
(
d
.
hideOtherSidebarContent
&&
(
r
.
classList
.
remove
(
"
hide
"
),
i
.
classList
.
remove
(
"
hide
"
)));
var
o
=
c
(
e
),
s
=
""
;
o
.
forEach
(
function
(
e
){
s
+=
'
<div class="matching-post">
\n
<a href="
'
+
e
.
url
+
'
">
\n
<h2>
'
+
e
.
title
+
"
</h2>
\n
<p>
"
+
e
.
content
+
"
</p>
\n
</a>
\n
</div>
"
}),
t
.
classList
.
add
(
"
show
"
),
a
.
classList
.
add
(
"
show
"
),
t
.
innerHTML
=
s
||
'
<p class="empty">
'
+
m
+
"
</p>
"
,
d
.
hideOtherSidebarContent
&&
(
r
.
classList
.
add
(
"
hide
"
),
i
.
classList
.
add
(
"
hide
"
))}
function
a
(
e
){
d
=
e
}
function
o
(
e
,
n
){
var
t
=
n
.
router
.
parse
().
query
.
s
;
a
(
e
),
Docsify
.
dom
.
style
(
"
\n
.sidebar {
\n
padding-top: 0;
\n
}
\n\n
.search {
\n
margin-bottom: 20px;
\n
padding: 6px;
\n
border-bottom: 1px solid #eee;
\n
}
\n\n
.search .input-wrap {
\n
display: flex;
\n
align-items: center;
\n
}
\n\n
.search .results-panel {
\n
display: none;
\n
}
\n\n
.search .results-panel.show {
\n
display: block;
\n
}
\n\n
.search input {
\n
outline: none;
\n
border: none;
\n
width: 100%;
\n
padding: 0 7px;
\n
line-height: 36px;
\n
font-size: 14px;
\n
border: 1px solid transparent;
\n
}
\n\n
.search input:focus {
\n
box-shadow: 0 0 5px var(--theme-color, #42b983);
\n
border: 1px solid var(--theme-color, #42b983);
\n
}
\n\n
.search input::-webkit-search-decoration,
\n
.search input::-webkit-search-cancel-button,
\n
.search input {
\n
-webkit-appearance: none;
\n
-moz-appearance: none;
\n
appearance: none;
\n
}
\n
.search .clear-button {
\n
cursor: pointer;
\n
width: 36px;
\n
text-align: right;
\n
display: none;
\n
}
\n\n
.search .clear-button.show {
\n
display: block;
\n
}
\n\n
.search .clear-button svg {
\n
transform: scale(.5);
\n
}
\n\n
.search h2 {
\n
font-size: 17px;
\n
margin: 10px 0;
\n
}
\n\n
.search a {
\n
text-decoration: none;
\n
color: inherit;
\n
}
\n\n
.search .matching-post {
\n
border-bottom: 1px solid #eee;
\n
}
\n\n
.search .matching-post:last-child {
\n
border-bottom: 0;
\n
}
\n\n
.search p {
\n
font-size: 14px;
\n
overflow: hidden;
\n
text-overflow: ellipsis;
\n
display: -webkit-box;
\n
-webkit-line-clamp: 2;
\n
-webkit-box-orient: vertical;
\n
}
\n\n
.search p.empty {
\n
text-align: center;
\n
}
\n\n
.app-name.hide, .sidebar-nav.hide {
\n
display: none;
\n
}
"
),
function
(
e
){
void
0
===
e
&&
(
e
=
""
);
var
n
=
'
<div class="input-wrap">
\n
<input type="search" value="
'
+
e
+
'
" aria-label="Search text" />
\n
<div class="clear-button">
\n
<svg width="26" height="24">
\n
<circle cx="12" cy="12" r="11" fill="#ccc" />
\n
<path stroke="white" stroke-width="2" d="M8.25,8.25,15.75,15.75" />
\n
<path stroke="white" stroke-width="2"d="M8.25,15.75,15.75,8.25" />
\n
</svg>
\n
</div>
\n
</div>
\n
<div class="results-panel"></div>
\n
</div>
'
,
t
=
Docsify
.
dom
.
create
(
"
div
"
,
n
),
a
=
Docsify
.
dom
.
find
(
"
aside
"
);
Docsify
.
dom
.
toggleClass
(
t
,
"
search
"
),
Docsify
.
dom
.
before
(
a
,
t
)}(
t
),
function
(){
var
e
,
n
=
Docsify
.
dom
.
find
(
"
div.search
"
),
t
=
Docsify
.
dom
.
find
(
n
,
"
input
"
),
a
=
Docsify
.
dom
.
find
(
n
,
"
.input-wrap
"
);
Docsify
.
dom
.
on
(
n
,
"
click
"
,
function
(
e
){
return
-
1
===
[
"
A
"
,
"
H2
"
,
"
P
"
,
"
EM
"
].
indexOf
(
e
.
target
.
tagName
)
&&
e
.
stopPropagation
()}),
Docsify
.
dom
.
on
(
t
,
"
input
"
,
function
(
n
){
clearTimeout
(
e
),
e
=
setTimeout
(
function
(
e
){
return
r
(
n
.
target
.
value
.
trim
())},
100
)}),
Docsify
.
dom
.
on
(
a
,
"
click
"
,
function
(
e
){
"
INPUT
"
!==
e
.
target
.
tagName
&&
(
t
.
value
=
""
,
r
())})}(),
t
&&
setTimeout
(
function
(
e
){
return
r
(
t
)},
500
)}
function
s
(
e
,
n
){
a
(
e
),
function
(
e
,
n
){
var
t
=
Docsify
.
dom
.
getNode
(
'
.search input[type="search"]
'
);
if
(
t
)
if
(
"
string
"
==
typeof
e
)
t
.
placeholder
=
e
;
else
{
var
a
=
Object
.
keys
(
e
).
filter
(
function
(
e
){
return
-
1
<
n
.
indexOf
(
e
)})[
0
];
t
.
placeholder
=
e
[
a
]}}(
e
.
placeholder
,
n
.
route
.
path
),
function
(
e
,
n
){
if
(
"
string
"
==
typeof
e
)
m
=
e
;
else
{
var
t
=
Object
.
keys
(
e
).
filter
(
function
(
e
){
return
-
1
<
n
.
indexOf
(
e
)})[
0
];
m
=
e
[
t
]}}(
e
.
noData
,
n
.
route
.
path
)}
var
g
=
{
placeholder
:
"
Type to search
"
,
noData
:
"
No Results!
"
,
paths
:
"
auto
"
,
depth
:
2
,
maxAge
:
864
e5
,
hideOtherSidebarContent
:
!
1
,
namespace
:
void
0
,
pathNamespaces
:
void
0
};
$docsify
.
plugins
=
[].
concat
(
function
(
e
,
n
){
var
t
=
Docsify
.
util
,
a
=
n
.
config
.
search
||
g
;
Array
.
isArray
(
a
)?
g
.
paths
=
a
:
"
object
"
==
typeof
a
&&
(
g
.
paths
=
Array
.
isArray
(
a
.
paths
)?
a
.
paths
:
"
auto
"
,
g
.
maxAge
=
t
.
isPrimitive
(
a
.
maxAge
)?
a
.
maxAge
:
g
.
maxAge
,
g
.
placeholder
=
a
.
placeholder
||
g
.
placeholder
,
g
.
noData
=
a
.
noData
||
g
.
noData
,
g
.
depth
=
a
.
depth
||
g
.
depth
,
g
.
hideOtherSidebarContent
=
a
.
hideOtherSidebarContent
||
g
.
hideOtherSidebarContent
,
g
.
namespace
=
a
.
namespace
||
g
.
namespace
,
g
.
pathNamespaces
=
a
.
pathNamespaces
||
g
.
pathNamespaces
);
var
r
=
"
auto
"
===
g
.
paths
;
e
.
mounted
(
function
(
e
){
o
(
g
,
n
),
r
||
i
(
g
,
n
)}),
e
.
doneEach
(
function
(
e
){
s
(
g
,
n
),
r
&&
i
(
g
,
n
)})},
$docsify
.
plugins
)}();
asset/vue.css
0 → 100644
浏览文件 @
a856a39e
@import
url("https://fonts.googleapis.com/css?family=Roboto+Mono|Source+Sans+Pro:300,400,600")
;
*
{
-webkit-font-smoothing
:
antialiased
;
-webkit-overflow-scrolling
:
touch
;
-webkit-tap-highlight-color
:
rgba
(
0
,
0
,
0
,
0
);
-webkit-text-size-adjust
:
none
;
-webkit-touch-callout
:
none
;
box-sizing
:
border-box
;
}
body
:not
(
.ready
)
{
overflow
:
hidden
;
}
body
:not
(
.ready
)
[
data-cloak
],
body
:not
(
.ready
)
.app-nav
,
body
:not
(
.ready
)
>
nav
{
display
:
none
;
}
div
#app
{
font-size
:
30px
;
font-weight
:
lighter
;
margin
:
40vh
auto
;
text-align
:
center
;
}
div
#app
:empty::before
{
content
:
'Loading...'
;
}
.emoji
{
height
:
1.2rem
;
vertical-align
:
middle
;
}
.progress
{
background-color
:
var
(
--theme-color
,
#42b983
);
height
:
2px
;
left
:
0px
;
position
:
fixed
;
right
:
0px
;
top
:
0px
;
transition
:
width
0.2s
,
opacity
0.4s
;
width
:
0%
;
z-index
:
999999
;
}
.search
a
:hover
{
color
:
var
(
--theme-color
,
#42b983
);
}
.search
.search-keyword
{
color
:
var
(
--theme-color
,
#42b983
);
font-style
:
normal
;
font-weight
:
bold
;
}
html
,
body
{
height
:
100%
;
}
body
{
-moz-osx-font-smoothing
:
grayscale
;
-webkit-font-smoothing
:
antialiased
;
color
:
#34495e
;
font-family
:
'Source Sans Pro'
,
'Helvetica Neue'
,
Arial
,
sans-serif
;
font-size
:
15px
;
letter-spacing
:
0
;
margin
:
0
;
overflow-x
:
hidden
;
}
img
{
max-width
:
100%
;
}
a
[
disabled
]
{
cursor
:
not-allowed
;
opacity
:
0.6
;
}
kbd
{
border
:
solid
1px
#ccc
;
border-radius
:
3px
;
display
:
inline-block
;
font-size
:
12px
!important
;
line-height
:
12px
;
margin-bottom
:
3px
;
padding
:
3px
5px
;
vertical-align
:
middle
;
}
li
input
[
type
=
'checkbox'
]
{
margin
:
0
0.2em
0.25em
0
;
vertical-align
:
middle
;
}
.app-nav
{
margin
:
25px
60px
0
0
;
position
:
absolute
;
right
:
0
;
text-align
:
right
;
z-index
:
10
;
/* navbar dropdown */
}
.app-nav.no-badge
{
margin-right
:
25px
;
}
.app-nav
p
{
margin
:
0
;
}
.app-nav
>
a
{
margin
:
0
1rem
;
padding
:
5px
0
;
}
.app-nav
ul
,
.app-nav
li
{
display
:
inline-block
;
list-style
:
none
;
margin
:
0
;
}
.app-nav
a
{
color
:
inherit
;
font-size
:
16px
;
text-decoration
:
none
;
transition
:
color
0.3s
;
}
.app-nav
a
:hover
{
color
:
var
(
--theme-color
,
#42b983
);
}
.app-nav
a
.active
{
border-bottom
:
2px
solid
var
(
--theme-color
,
#42b983
);
color
:
var
(
--theme-color
,
#42b983
);
}
.app-nav
li
{
display
:
inline-block
;
margin
:
0
1rem
;
padding
:
5px
0
;
position
:
relative
;
cursor
:
pointer
;
}
.app-nav
li
ul
{
background-color
:
#fff
;
border
:
1px
solid
#ddd
;
border-bottom-color
:
#ccc
;
border-radius
:
4px
;
box-sizing
:
border-box
;
display
:
none
;
max-height
:
calc
(
100vh
-
61px
);
overflow-y
:
auto
;
padding
:
10px
0
;
position
:
absolute
;
right
:
-15px
;
text-align
:
left
;
top
:
100%
;
white-space
:
nowrap
;
}
.app-nav
li
ul
li
{
display
:
block
;
font-size
:
14px
;
line-height
:
1rem
;
margin
:
0
;
margin
:
8px
14px
;
white-space
:
nowrap
;
}
.app-nav
li
ul
a
{
display
:
block
;
font-size
:
inherit
;
margin
:
0
;
padding
:
0
;
}
.app-nav
li
ul
a
.active
{
border-bottom
:
0
;
}
.app-nav
li
:hover
ul
{
display
:
block
;
}
.github-corner
{
border-bottom
:
0
;
position
:
fixed
;
right
:
0
;
text-decoration
:
none
;
top
:
0
;
z-index
:
1
;
}
.github-corner
:hover
.octo-arm
{
-webkit-animation
:
octocat-wave
560ms
ease-in-out
;
animation
:
octocat-wave
560ms
ease-in-out
;
}
.github-corner
svg
{
color
:
#fff
;
fill
:
var
(
--theme-color
,
#42b983
);
height
:
80px
;
width
:
80px
;
}
main
{
display
:
block
;
position
:
relative
;
width
:
100vw
;
height
:
100%
;
z-index
:
0
;
}
main
.hidden
{
display
:
none
;
}
.anchor
{
display
:
inline-block
;
text-decoration
:
none
;
transition
:
all
0.3s
;
}
.anchor
span
{
color
:
#34495e
;
}
.anchor
:hover
{
text-decoration
:
underline
;
}
.sidebar
{
border-right
:
1px
solid
rgba
(
0
,
0
,
0
,
0.07
);
overflow-y
:
auto
;
padding
:
40px
0
0
;
position
:
absolute
;
top
:
0
;
bottom
:
0
;
left
:
0
;
transition
:
transform
250ms
ease-out
;
width
:
300px
;
z-index
:
20
;
}
.sidebar
>
h1
{
margin
:
0
auto
1rem
;
font-size
:
1.5rem
;
font-weight
:
300
;
text-align
:
center
;
}
.sidebar
>
h1
a
{
color
:
inherit
;
text-decoration
:
none
;
}
.sidebar
>
h1
.app-nav
{
display
:
block
;
position
:
static
;
}
.sidebar
.sidebar-nav
{
line-height
:
2em
;
padding-bottom
:
40px
;
}
.sidebar
li
.collapse
.app-sub-sidebar
{
display
:
none
;
}
.sidebar
ul
{
margin
:
0
0
0
15px
;
padding
:
0
;
}
.sidebar
li
>
p
{
font-weight
:
700
;
margin
:
0
;
}
.sidebar
ul
,
.sidebar
ul
li
{
list-style
:
none
;
}
.sidebar
ul
li
a
{
border-bottom
:
none
;
display
:
block
;
}
.sidebar
ul
li
ul
{
padding-left
:
20px
;
}
.sidebar
::-webkit-scrollbar
{
width
:
4px
;
}
.sidebar
::-webkit-scrollbar-thumb
{
background
:
transparent
;
border-radius
:
4px
;
}
.sidebar
:hover::-webkit-scrollbar-thumb
{
background
:
rgba
(
136
,
136
,
136
,
0.4
);
}
.sidebar
:hover::-webkit-scrollbar-track
{
background
:
rgba
(
136
,
136
,
136
,
0.1
);
}
.sidebar-toggle
{
background-color
:
transparent
;
background-color
:
rgba
(
255
,
255
,
255
,
0.8
);
border
:
0
;
outline
:
none
;
padding
:
10px
;
position
:
absolute
;
bottom
:
0
;
left
:
0
;
text-align
:
center
;
transition
:
opacity
0.3s
;
width
:
284px
;
z-index
:
30
;
cursor
:
pointer
;
}
.sidebar-toggle
:hover
.sidebar-toggle-button
{
opacity
:
0.4
;
}
.sidebar-toggle
span
{
background-color
:
var
(
--theme-color
,
#42b983
);
display
:
block
;
margin-bottom
:
4px
;
width
:
16px
;
height
:
2px
;
}
body
.sticky
.sidebar
,
body
.sticky
.sidebar-toggle
{
position
:
fixed
;
}
.content
{
padding-top
:
60px
;
position
:
absolute
;
top
:
0
;
right
:
0
;
bottom
:
0
;
left
:
300px
;
transition
:
left
250ms
ease
;
}
.markdown-section
{
margin
:
0
auto
;
max-width
:
80%
;
padding
:
30px
15px
40px
15px
;
position
:
relative
;
}
.markdown-section
>
*
{
box-sizing
:
border-box
;
font-size
:
inherit
;
}
.markdown-section
>
:first-child
{
margin-top
:
0
!important
;
}
.markdown-section
hr
{
border
:
none
;
border-bottom
:
1px
solid
#eee
;
margin
:
2em
0
;
}
.markdown-section
iframe
{
border
:
1px
solid
#eee
;
/* fix horizontal overflow on iOS Safari */
width
:
1px
;
min-width
:
100%
;
}
.markdown-section
table
{
border-collapse
:
collapse
;
border-spacing
:
0
;
display
:
block
;
margin-bottom
:
1rem
;
overflow
:
auto
;
width
:
100%
;
}
.markdown-section
th
{
border
:
1px
solid
#ddd
;
font-weight
:
bold
;
padding
:
6px
13px
;
}
.markdown-section
td
{
border
:
1px
solid
#ddd
;
padding
:
6px
13px
;
}
.markdown-section
tr
{
border-top
:
1px
solid
#ccc
;
}
.markdown-section
tr
:nth-child
(
2
n
)
{
background-color
:
#f8f8f8
;
}
.markdown-section
p
.tip
{
background-color
:
#f8f8f8
;
border-bottom-right-radius
:
2px
;
border-left
:
4px
solid
#f66
;
border-top-right-radius
:
2px
;
margin
:
2em
0
;
padding
:
12px
24px
12px
30px
;
position
:
relative
;
}
.markdown-section
p
.tip
:before
{
background-color
:
#f66
;
border-radius
:
100%
;
color
:
#fff
;
content
:
'!'
;
font-family
:
'Dosis'
,
'Source Sans Pro'
,
'Helvetica Neue'
,
Arial
,
sans-serif
;
font-size
:
14px
;
font-weight
:
bold
;
left
:
-12px
;
line-height
:
20px
;
position
:
absolute
;
height
:
20px
;
width
:
20px
;
text-align
:
center
;
top
:
14px
;
}
.markdown-section
p
.tip
code
{
background-color
:
#efefef
;
}
.markdown-section
p
.tip
em
{
color
:
#34495e
;
}
.markdown-section
p
.warn
{
background
:
rgba
(
66
,
185
,
131
,
0.1
);
border-radius
:
2px
;
padding
:
1rem
;
}
.markdown-section
ul
.task-list
>
li
{
list-style-type
:
none
;
}
body
.close
.sidebar
{
transform
:
translateX
(
-300px
);
}
body
.close
.sidebar-toggle
{
width
:
auto
;
}
body
.close
.content
{
left
:
0
;
}
@media
print
{
.github-corner
,
.sidebar-toggle
,
.sidebar
,
.app-nav
{
display
:
none
;
}
}
@media
screen
and
(
max-width
:
768px
)
{
.github-corner
,
.sidebar-toggle
,
.sidebar
{
position
:
fixed
;
}
.app-nav
{
margin-top
:
16px
;
}
.app-nav
li
ul
{
top
:
30px
;
}
main
{
height
:
auto
;
overflow-x
:
hidden
;
}
.sidebar
{
left
:
-300px
;
transition
:
transform
250ms
ease-out
;
}
.content
{
left
:
0
;
max-width
:
100vw
;
position
:
static
;
padding-top
:
20px
;
transition
:
transform
250ms
ease
;
}
.app-nav
,
.github-corner
{
transition
:
transform
250ms
ease-out
;
}
.sidebar-toggle
{
background-color
:
transparent
;
width
:
auto
;
padding
:
30px
30px
10px
10px
;
}
body
.close
.sidebar
{
transform
:
translateX
(
300px
);
}
body
.close
.sidebar-toggle
{
background-color
:
rgba
(
255
,
255
,
255
,
0.8
);
transition
:
1s
background-color
;
width
:
284px
;
padding
:
10px
;
}
body
.close
.content
{
transform
:
translateX
(
300px
);
}
body
.close
.app-nav
,
body
.close
.github-corner
{
display
:
none
;
}
.github-corner
:hover
.octo-arm
{
-webkit-animation
:
none
;
animation
:
none
;
}
.github-corner
.octo-arm
{
-webkit-animation
:
octocat-wave
560ms
ease-in-out
;
animation
:
octocat-wave
560ms
ease-in-out
;
}
}
@-webkit-keyframes
octocat-wave
{
0
%,
100
%
{
transform
:
rotate
(
0
);
}
20
%,
60
%
{
transform
:
rotate
(
-25deg
);
}
40
%,
80
%
{
transform
:
rotate
(
10deg
);
}
}
@keyframes
octocat-wave
{
0
%,
100
%
{
transform
:
rotate
(
0
);
}
20
%,
60
%
{
transform
:
rotate
(
-25deg
);
}
40
%,
80
%
{
transform
:
rotate
(
10deg
);
}
}
section
.cover
{
align-items
:
center
;
background-position
:
center
center
;
background-repeat
:
no-repeat
;
background-size
:
cover
;
height
:
100vh
;
width
:
100vw
;
display
:
none
;
}
section
.cover.show
{
display
:
flex
;
}
section
.cover.has-mask
.mask
{
background-color
:
#fff
;
opacity
:
0.8
;
position
:
absolute
;
top
:
0
;
height
:
100%
;
width
:
100%
;
}
section
.cover
.cover-main
{
flex
:
1
;
margin
:
-20px
16px
0
;
text-align
:
center
;
position
:
relative
;
}
section
.cover
a
{
color
:
inherit
;
text-decoration
:
none
;
}
section
.cover
a
:hover
{
text-decoration
:
none
;
}
section
.cover
p
{
line-height
:
1.5rem
;
margin
:
1em
0
;
}
section
.cover
h1
{
color
:
inherit
;
font-size
:
2.5rem
;
font-weight
:
300
;
margin
:
0.625rem
0
2.5rem
;
position
:
relative
;
text-align
:
center
;
}
section
.cover
h1
a
{
display
:
block
;
}
section
.cover
h1
small
{
bottom
:
-0.4375rem
;
font-size
:
1rem
;
position
:
absolute
;
}
section
.cover
blockquote
{
font-size
:
1.5rem
;
text-align
:
center
;
}
section
.cover
ul
{
line-height
:
1.8
;
list-style-type
:
none
;
margin
:
1em
auto
;
max-width
:
500px
;
padding
:
0
;
}
section
.cover
.cover-main
>
p
:last-child
a
{
border-color
:
var
(
--theme-color
,
#42b983
);
border-radius
:
2rem
;
border-style
:
solid
;
border-width
:
1px
;
box-sizing
:
border-box
;
color
:
var
(
--theme-color
,
#42b983
);
display
:
inline-block
;
font-size
:
1.05rem
;
letter-spacing
:
0.1rem
;
margin
:
0.5rem
1rem
;
padding
:
0.75em
2rem
;
text-decoration
:
none
;
transition
:
all
0.15s
ease
;
}
section
.cover
.cover-main
>
p
:last-child
a
:last-child
{
background-color
:
var
(
--theme-color
,
#42b983
);
color
:
#fff
;
}
section
.cover
.cover-main
>
p
:last-child
a
:last-child:hover
{
color
:
inherit
;
opacity
:
0.8
;
}
section
.cover
.cover-main
>
p
:last-child
a
:hover
{
color
:
inherit
;
}
section
.cover
blockquote
>
p
>
a
{
border-bottom
:
2px
solid
var
(
--theme-color
,
#42b983
);
transition
:
color
0.3s
;
}
section
.cover
blockquote
>
p
>
a
:hover
{
color
:
var
(
--theme-color
,
#42b983
);
}
body
{
background-color
:
#fff
;
}
/* sidebar */
.sidebar
{
background-color
:
#fff
;
color
:
#364149
;
}
.sidebar
li
{
margin
:
6px
0
6px
0
;
}
.sidebar
ul
li
a
{
color
:
#505d6b
;
font-size
:
14px
;
font-weight
:
normal
;
overflow
:
hidden
;
text-decoration
:
none
;
text-overflow
:
ellipsis
;
white-space
:
nowrap
;
}
.sidebar
ul
li
a
:hover
{
text-decoration
:
underline
;
}
.sidebar
ul
li
ul
{
padding
:
0
;
}
.sidebar
ul
li
.active
>
a
{
border-right
:
2px
solid
;
color
:
var
(
--theme-color
,
#42b983
);
font-weight
:
600
;
}
.app-sub-sidebar
li
::before
{
content
:
'-'
;
padding-right
:
4px
;
float
:
left
;
}
/* markdown content found on pages */
.markdown-section
h1
,
.markdown-section
h2
,
.markdown-section
h3
,
.markdown-section
h4
,
.markdown-section
strong
{
color
:
#2c3e50
;
font-weight
:
600
;
}
.markdown-section
a
{
color
:
var
(
--theme-color
,
#42b983
);
font-weight
:
600
;
}
.markdown-section
h1
{
font-size
:
2rem
;
margin
:
0
0
1rem
;
}
.markdown-section
h2
{
font-size
:
1.75rem
;
margin
:
45px
0
0.8rem
;
}
.markdown-section
h3
{
font-size
:
1.5rem
;
margin
:
40px
0
0.6rem
;
}
.markdown-section
h4
{
font-size
:
1.25rem
;
}
.markdown-section
h5
{
font-size
:
1rem
;
}
.markdown-section
h6
{
color
:
#777
;
font-size
:
1rem
;
}
.markdown-section
figure
,
.markdown-section
p
{
margin
:
1.2em
0
;
}
.markdown-section
p
,
.markdown-section
ul
,
.markdown-section
ol
{
line-height
:
1.6rem
;
word-spacing
:
0.05rem
;
}
.markdown-section
ul
,
.markdown-section
ol
{
padding-left
:
1.5rem
;
}
.markdown-section
blockquote
{
border-left
:
4px
solid
var
(
--theme-color
,
#42b983
);
color
:
#858585
;
margin
:
2em
0
;
padding-left
:
20px
;
}
.markdown-section
blockquote
p
{
font-weight
:
600
;
margin-left
:
0
;
}
.markdown-section
iframe
{
margin
:
1em
0
;
}
.markdown-section
em
{
color
:
#7f8c8d
;
}
.markdown-section
code
{
background-color
:
#f8f8f8
;
border-radius
:
2px
;
color
:
#e96900
;
font-family
:
'Roboto Mono'
,
Monaco
,
courier
,
monospace
;
font-size
:
0.8rem
;
margin
:
0
2px
;
padding
:
3px
5px
;
white-space
:
pre-wrap
;
}
.markdown-section
pre
{
-moz-osx-font-smoothing
:
initial
;
-webkit-font-smoothing
:
initial
;
background-color
:
#f8f8f8
;
font-family
:
'Roboto Mono'
,
Monaco
,
courier
,
monospace
;
line-height
:
1.5rem
;
margin
:
1.2em
0
;
overflow
:
auto
;
padding
:
0
1.4rem
;
position
:
relative
;
word-wrap
:
normal
;
}
/* code highlight */
.token.comment
,
.token.prolog
,
.token.doctype
,
.token.cdata
{
color
:
#8e908c
;
}
.token.namespace
{
opacity
:
0.7
;
}
.token.boolean
,
.token.number
{
color
:
#c76b29
;
}
.token.punctuation
{
color
:
#525252
;
}
.token.property
{
color
:
#c08b30
;
}
.token.tag
{
color
:
#2973b7
;
}
.token.string
{
color
:
var
(
--theme-color
,
#42b983
);
}
.token.selector
{
color
:
#6679cc
;
}
.token.attr-name
{
color
:
#2973b7
;
}
.token.entity
,
.token.url
,
.language-css
.token.string
,
.style
.token.string
{
color
:
#22a2c9
;
}
.token.attr-value
,
.token.control
,
.token.directive
,
.token.unit
{
color
:
var
(
--theme-color
,
#42b983
);
}
.token.keyword
,
.token.function
{
color
:
#e96900
;
}
.token.statement
,
.token.regex
,
.token.atrule
{
color
:
#22a2c9
;
}
.token.placeholder
,
.token.variable
{
color
:
#3d8fd1
;
}
.token.deleted
{
text-decoration
:
line-through
;
}
.token.inserted
{
border-bottom
:
1px
dotted
#202746
;
text-decoration
:
none
;
}
.token.italic
{
font-style
:
italic
;
}
.token.important
,
.token.bold
{
font-weight
:
bold
;
}
.token.important
{
color
:
#c94922
;
}
.token.entity
{
cursor
:
help
;
}
.markdown-section
pre
>
code
{
-moz-osx-font-smoothing
:
initial
;
-webkit-font-smoothing
:
initial
;
background-color
:
#f8f8f8
;
border-radius
:
2px
;
color
:
#525252
;
display
:
block
;
font-family
:
'Roboto Mono'
,
Monaco
,
courier
,
monospace
;
font-size
:
0.8rem
;
line-height
:
inherit
;
margin
:
0
2px
;
max-width
:
inherit
;
overflow
:
inherit
;
padding
:
2.2em
5px
;
white-space
:
inherit
;
}
.markdown-section
code
::after
,
.markdown-section
code
::before
{
letter-spacing
:
0.05rem
;
}
code
.token
{
-moz-osx-font-smoothing
:
initial
;
-webkit-font-smoothing
:
initial
;
min-height
:
1.5rem
;
position
:
relative
;
left
:
auto
;
}
pre
::after
{
color
:
#ccc
;
content
:
attr
(
data-lang
);
font-size
:
0.6rem
;
font-weight
:
600
;
height
:
15px
;
line-height
:
15px
;
padding
:
5px
10px
0
;
position
:
absolute
;
right
:
0
;
text-align
:
right
;
top
:
0
;
}
index.html
浏览文件 @
a856a39e
...
...
@@ -6,7 +6,7 @@
<meta
http-equiv=
"X-UA-Compatible"
content=
"IE=edge,chrome=1"
>
<meta
name=
"viewport"
content=
"width=device-width,initial-scale=1"
>
<meta
charset=
"UTF-8"
>
<link
rel=
"stylesheet"
href=
"
//unpkg.com/docsify/themes
/vue.css"
>
<link
rel=
"stylesheet"
href=
"
asset
/vue.css"
>
<!-- google ads -->
<script
async
src=
"//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"
></script>
...
...
@@ -70,7 +70,7 @@
}
</script>
<script
src=
"
//unpkg.com/docsify/lib
/docsify.min.js"
></script>
<script
src=
"
//unpkg.com/docsify/lib/plugins
/search.min.js"
></script>
<script
src=
"
asset
/docsify.min.js"
></script>
<script
src=
"
asset
/search.min.js"
></script>
</body>
</html>
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录