hexo-theme-solitude 1.0.0 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +12 -7
- package/_config.yml +117 -99
- package/layout/404.ejs +1 -1
- package/layout/layout.ejs +27 -32
- package/layout/page/links.ejs +1 -12
- package/layout/page/says.ejs +1 -0
- package/layout/partial/body.ejs +0 -1
- package/layout/partial/compoment/about/award.ejs +2 -0
- package/layout/partial/compoment/about/hobbies.ejs +44 -35
- package/layout/partial/compoment/about/other.ejs +68 -60
- package/layout/partial/compoment/aside/asideFlipCard.ejs +67 -3
- package/layout/partial/compoment/aside/asideHistory.ejs +49 -0
- package/layout/partial/compoment/aside/asideNewestPost.ejs +1 -1
- package/layout/partial/compoment/aside/asidePower.ejs +3 -3
- package/layout/partial/compoment/aside/asideSwitch.ejs +6 -0
- package/layout/partial/compoment/aside/asideToc.ejs +1 -1
- package/layout/partial/compoment/aside/asideWebInfo.ejs +8 -8
- package/layout/partial/compoment/aside/asideWelcome.ejs +33 -0
- package/layout/partial/compoment/circle/angle.ejs +1 -1
- package/layout/partial/compoment/circle/content.ejs +2 -5
- package/layout/partial/compoment/dorakika/rightmenu.ejs +90 -105
- package/layout/partial/compoment/hometop/bbTimeList.ejs +1 -1
- package/layout/partial/compoment/hometop/groupTag.ejs +1 -1
- package/layout/partial/compoment/hometop/topGroup.ejs +11 -18
- package/layout/partial/compoment/inject/body.ejs +19 -4
- package/layout/partial/compoment/inject/head.ejs +68 -3
- package/layout/partial/compoment/links/angle.ejs +26 -0
- package/layout/partial/compoment/links/banner.ejs +2 -2
- package/layout/partial/compoment/mixins/pagination.ejs +2 -2
- package/layout/partial/compoment/nav/right.ejs +6 -6
- package/layout/partial/compoment/post/postMeta.ejs +10 -10
- package/layout/partial/compoment/says/saysBottom.ejs +3 -3
- package/layout/partial/compoment/says/saysContent.ejs +0 -1
- package/layout/partial/compoment/says/saysFunction.ejs +15 -0
- package/layout/partial/compoment/third-party/comments/comment.ejs +1 -1
- package/layout/partial/compoment/third-party/comments/twikoo.ejs +2 -1
- package/layout/partial/compoment/third-party/search/algolia-search.ejs +2 -2
- package/layout/partial/compoment/third-party/search/local-search.ejs +2 -2
- package/layout/partial/console.ejs +10 -4
- package/layout/partial/footer.ejs +6 -9
- package/layout/partial/nav.ejs +1 -1
- package/layout/partial/sidebar.ejs +2 -2
- package/layout/post.ejs +18 -2
- package/package.json +5 -6
- package/scripts/event/welcome.js +6 -7
- package/scripts/helper/randomLinks.js +1 -1
- package/scripts/helper/related_post.js +1 -1
- package/scripts/helper/themeJsExport.js +12 -10
- package/scripts/tags/hide.js +70 -0
- package/scripts/tags/tabs.js +1 -1
- package/source/css/main.css +55 -106
- package/source/css/search/algolia-search.css +1 -1
- package/source/css/search/local-search.css +1 -1
- package/source/css/var.css +3 -0
- package/source/img/error_load.png +0 -0
- package/source/img/pwa/16.png +0 -0
- package/source/img/pwa/32.png +0 -0
- package/source/js/commentBarrage.js +145 -136
- package/source/js/extend/search/algolia-search.js +11 -0
- package/source/js/extend/search/local-search.js +12 -1
- package/source/js/main.js +203 -21
- package/source/js/rightmenu.js +402 -0
- package/source/js/txmap.js +236 -0
- package/source/lib/chuckle-post-ai.js +1 -0
- package/source/lib/circle.min.js +1 -0
- package/source/lib/friends_post.js +4 -98
- package/source/lib/snackbar.min.js +9 -0
- package/source/lib/view-image.min.js +6 -0
- package/source/img/power.png +0 -0
- package/source/js/circle.js +0 -1828
- package/source/js/post_ai.js +0 -517
- package/source/lib/snackbar.js +0 -16
- package/source/lib/view-image.js +0 -13
- /package/source/lib/{bundle.js → bundle.min.js} +0 -0
- /package/source/lib/{lazyload.js → lazyload.min.js} +0 -0
@@ -1,68 +1,76 @@
|
|
1
1
|
<div class="author-content">
|
2
|
-
|
3
|
-
<div class="
|
4
|
-
<div class="
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
<
|
14
|
-
|
2
|
+
<% if(site.data.about.tj){ %>
|
3
|
+
<div class="about-statistic author-content-item" style="background: url(<%= site.data.about.tj.img %>);">
|
4
|
+
<div class="card-content">
|
5
|
+
<div class="author-content-item-tips">数据</div>
|
6
|
+
<span class="author-content-item-title">访问统计</span>
|
7
|
+
<div id="statistic"></div>
|
8
|
+
<div class="post-tips">
|
9
|
+
统计信息来自 <a href="https://invite.51.la/1NzKqTeb?target=V6" target="_blank"
|
10
|
+
rel="noopener nofollow">51la网站统计</a>
|
11
|
+
</div>
|
12
|
+
<div class="banner-button-group">
|
13
|
+
<a class="banner-button" onclick="pjax.loadUrl("/echart/")" data-pjax-state="">
|
14
|
+
<i class="scoicon sco-right-btn-fill"></i>
|
15
|
+
<span class="banner-button-text">文章统计</span>
|
16
|
+
</a>
|
17
|
+
</div>
|
15
18
|
</div>
|
16
19
|
</div>
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
20
|
+
<script>
|
21
|
+
fetch("<%= site.data.about.tj.url %>")
|
22
|
+
.then(res => res.text())
|
23
|
+
.then(data => {
|
24
|
+
let title = ["最近活跃", "今日人数", "今日访问", "昨日人数", "昨日访问", "本月访问", "总访问量"];
|
25
|
+
let num = data.match(/(<\/span><span>).*?(\/span><\/p>)/g);
|
26
|
+
num = num.map(el => {
|
27
|
+
let val = el.replace(/(<\/span><span>)/g, "");
|
28
|
+
let str = val.replace(/(<\/span><\/p>)/g, "");
|
29
|
+
return str;
|
30
|
+
});
|
31
|
+
let s = document.getElementById("statistic");
|
32
|
+
let statistic = [];
|
33
|
+
for (let i = 0; i < num.length; i++) {
|
34
|
+
if (i == 0 || i == num.length - 1) continue;
|
35
|
+
s.innerHTML += "<div><span>" + title[i] + "</span><span id=" + title[i] + ">" + num[i] + "</span></div>";
|
36
|
+
}
|
28
37
|
});
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
</div>
|
55
|
-
<div>
|
56
|
-
<span class="selfInfo-title">现在职业</span>
|
57
|
-
<span class="selfInfo-content" style="color: #b04fe6;"><%= oneself.occupation %></span>
|
38
|
+
</script>
|
39
|
+
<% } %>
|
40
|
+
<% if(site.data.about.oneself){ %>
|
41
|
+
<style>
|
42
|
+
:root {
|
43
|
+
--site-about-oneself-map--light: url(<%= site.data.about.oneself.map.light %>);
|
44
|
+
--site-about-oneself-map--dark: url(<%= site.data.about.oneself.map.dark %>);
|
45
|
+
}
|
46
|
+
</style>
|
47
|
+
<% const oneself = site.data.about.oneself; %>
|
48
|
+
<div class="author-content-item-group column mapAndInfo">
|
49
|
+
<div class="author-content-item map single">
|
50
|
+
<span class="map-title">我现在住在 <b><%= oneself.location %></b></span></div>
|
51
|
+
<div class="author-content-item selfInfo single">
|
52
|
+
<div><span class="selfInfo-title">生于</span>
|
53
|
+
<span class="selfInfo-content" style="color: #43a6c6;"><%= oneself.birthYear %></span>
|
54
|
+
</div>
|
55
|
+
<div>
|
56
|
+
<span class="selfInfo-title"><%= oneself.university %></span>
|
57
|
+
<span class="selfInfo-content" style="color: #c69043;"><%= oneself.major %></span>
|
58
|
+
</div>
|
59
|
+
<div>
|
60
|
+
<span class="selfInfo-title">现在职业</span>
|
61
|
+
<span class="selfInfo-content" style="color: #b04fe6;"><%= oneself.occupation %></span>
|
62
|
+
</div>
|
58
63
|
</div>
|
59
64
|
</div>
|
60
|
-
|
65
|
+
<% } %>
|
61
66
|
</div>
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
<
|
66
|
-
|
67
|
+
|
68
|
+
<% if(site.data.about.cause){ %>
|
69
|
+
<div class="author-content">
|
70
|
+
<div class="create-site-post author-content-item single">
|
71
|
+
<div class="author-content-item-tips">心路历程</div>
|
72
|
+
<span class="author-content-item-title">为什么建站?</span>
|
73
|
+
<%- site.data.about.cause %>
|
74
|
+
</div>
|
67
75
|
</div>
|
68
|
-
|
76
|
+
<% } %>
|
@@ -1,8 +1,72 @@
|
|
1
|
-
<
|
1
|
+
<style>
|
2
|
+
#aside-content .card-widget.card-platform {
|
3
|
+
background: var(--sco-main);
|
4
|
+
display: flex;
|
5
|
+
justify-content: center;
|
6
|
+
align-content: center;
|
7
|
+
padding: 0;
|
8
|
+
cursor: pointer;
|
9
|
+
border: none;
|
10
|
+
height: 110px;
|
11
|
+
border: var(--style-border);
|
12
|
+
transition: 0.6s
|
13
|
+
}
|
14
|
+
#aside-content .card-widget.card-platform:before {
|
15
|
+
position: absolute;
|
16
|
+
width: 100%;
|
17
|
+
height: 100%;
|
18
|
+
left: 0;
|
19
|
+
top: 0;
|
20
|
+
background: url("<%- theme.aside.flip.favicon || 'https://img.meuicat.com/blog/14.webp' %>") center center no-repeat;
|
21
|
+
content: '';
|
22
|
+
background-size: cover
|
23
|
+
}
|
24
|
+
#aside-content .card-widget.card-platform:hover:before {
|
25
|
+
filter: blur(12px) saturate(1.5);
|
26
|
+
transition: .3s
|
27
|
+
}
|
28
|
+
#aside-content .card-widget #flip-wrapper {
|
29
|
+
perspective: 1000;
|
30
|
+
position: relative;
|
31
|
+
width: 235px;
|
32
|
+
height: 110px;
|
33
|
+
z-index: 1
|
34
|
+
}
|
35
|
+
#aside-content .card-platform #flip-wrapper:hover #flip-content {
|
36
|
+
transform: rotateY(180deg)
|
37
|
+
}
|
38
|
+
#aside-content .card-platform #flip-wrapper #flip-content {
|
39
|
+
width: 100%;
|
40
|
+
height: 100%;
|
41
|
+
transform-style: preserve-3d;
|
42
|
+
transition: cubic-bezier(0, 0, 0, 1.29) 0.3s
|
43
|
+
}
|
44
|
+
#aside-content .card-platform #flip-wrapper #flip-content .face {
|
45
|
+
position: absolute;
|
46
|
+
width: 100%;
|
47
|
+
height: 100%;
|
48
|
+
-webkit-backface-visibility: hidden;
|
49
|
+
backface-visibility: hidden;
|
50
|
+
background: url("<%- theme.aside.flip.face || 'https://img.meuicat.com/blog/15.webp' %>") center center no-repeat;
|
51
|
+
background-size: 100%
|
52
|
+
}
|
53
|
+
#aside-content .card-platform #flip-wrapper #flip-content .face.back {
|
54
|
+
display: block;
|
55
|
+
-webkit-transform: rotateY(180deg);
|
56
|
+
transform: rotateY(180deg);
|
57
|
+
box-sizing: border-box;
|
58
|
+
background: url("<%- theme.aside.flip.backface || 'https://img.meuicat.com/blog/16.webp' %>") center center no-repeat;
|
59
|
+
background-size: 100%
|
60
|
+
}
|
61
|
+
[data-theme='dark'] #aside-content .card-widget.card-platform {
|
62
|
+
background: var(--sco-card-bg)
|
63
|
+
}
|
64
|
+
</style>
|
65
|
+
<div class="card-widget card-platform">
|
2
66
|
<div id="flip-wrapper">
|
3
67
|
<div id="flip-content">
|
4
|
-
<div class="face"
|
5
|
-
<div class="back face"
|
68
|
+
<div class="face"></div>
|
69
|
+
<div class="back face"></div>
|
6
70
|
</div>
|
7
71
|
</div>
|
8
72
|
</div>
|
@@ -0,0 +1,49 @@
|
|
1
|
+
<% if(theme.aside.history.enable){ %>
|
2
|
+
<style>
|
3
|
+
.swiper-wrapper{
|
4
|
+
flex-direction: column
|
5
|
+
}
|
6
|
+
.history_slide {
|
7
|
+
text-align:left;
|
8
|
+
display: flex !important;
|
9
|
+
flex-direction:column;
|
10
|
+
align-items: flex-start
|
11
|
+
}
|
12
|
+
#history-baidu > .blog-slider__pagination{
|
13
|
+
display:none
|
14
|
+
}
|
15
|
+
.history_slide_time{
|
16
|
+
color: var(--sco-secondtext);
|
17
|
+
font-size: 14px;
|
18
|
+
font-style: italic;
|
19
|
+
font-weight: lighter
|
20
|
+
}
|
21
|
+
.history_slide_link {
|
22
|
+
line-height: 1.5;
|
23
|
+
-webkit-line-clamp: 2;
|
24
|
+
display: -webkit-box;
|
25
|
+
overflow: hidden;
|
26
|
+
-webkit-box-orient: vertical
|
27
|
+
}
|
28
|
+
.history_slide_link a{
|
29
|
+
color: var(--sco-main);
|
30
|
+
padding: 0 4px;
|
31
|
+
border-radius: 4px
|
32
|
+
}
|
33
|
+
.history_slide_link a:hover{
|
34
|
+
color: var(--sco-white);
|
35
|
+
background: var(--sco-main)
|
36
|
+
}
|
37
|
+
</style>
|
38
|
+
<div class="card-widget card-history">
|
39
|
+
<div class="item-headline">
|
40
|
+
<i class="<%- theme.aside.history.icon || 'scoicon sco-clock-fill' %>"></i>
|
41
|
+
<span><%- theme.aside.history.title || '那年今日' %></span>
|
42
|
+
</div>
|
43
|
+
<div id="history-baidu" style="height: 100px;overflow: hidden">
|
44
|
+
<div id="history-container" class="history_swiper-container" style="width: 100%;height: 100%;margin-top: 6px">
|
45
|
+
<div id="history_container_wrapper" class="swiper-wrapper" style="height:20px"></div>
|
46
|
+
</div>
|
47
|
+
</div>
|
48
|
+
</div>
|
49
|
+
<% } %>
|
@@ -1,13 +1,13 @@
|
|
1
1
|
<div class="card-widget card-power">
|
2
|
-
<% const data = site.data.
|
2
|
+
<% const data = site.data.afadian.links %>
|
3
3
|
<% const vip = data[Math.floor(Math.random() * data.length)] %>
|
4
4
|
<div class="item-headline">
|
5
|
-
<
|
5
|
+
<i class="scoicon sco-afdian-line"></i>
|
6
6
|
<span>爱发电赞助</span>
|
7
7
|
<a class="power-charge" href="<%= theme.aside.power.link %>" rel="external nofollow" target="_blank"
|
8
8
|
title="赞助博主">赞助</a>
|
9
9
|
</div>
|
10
|
-
<a id="power-star" data-pjax-state="" href="<%= vip.url
|
10
|
+
<a id="power-star" data-pjax-state="" href="<%= vip.url %>">
|
11
11
|
<div id="power-star-image"
|
12
12
|
style="background-image: url('<%= vip.avatar %>');"></div>
|
13
13
|
<div class="power-star-body">
|
@@ -8,6 +8,12 @@
|
|
8
8
|
case 'flip': %>
|
9
9
|
<%- partial('partial/compoment/aside/asideFlipCard', {cache: true}) %>
|
10
10
|
<% break;
|
11
|
+
case 'welcome': %>
|
12
|
+
<%- partial('partial/compoment/aside/asideWelcome', {cache: true}) %>
|
13
|
+
<% break;
|
14
|
+
case 'history': %>
|
15
|
+
<%- partial('partial/compoment/aside/asideHistory', {cache: true}) %>
|
16
|
+
<% break;
|
11
17
|
case 'newestPost': %>
|
12
18
|
<%- partial('partial/compoment/aside/asideNewestPost', {cache: true}) %>
|
13
19
|
<% break;
|
@@ -2,7 +2,7 @@
|
|
2
2
|
<% if(theme.aside.siteinfo.postcount){ %>
|
3
3
|
<div class="webinfo-item">
|
4
4
|
<div class="webinfo-item-title">
|
5
|
-
<i class="item-icon
|
5
|
+
<i class="item-icon scoicon sco-folder-fill"></i>
|
6
6
|
<div class="item-name">文章总数 :</div>
|
7
7
|
</div>
|
8
8
|
<div class="item-count"><%= site.posts.length %></div>
|
@@ -12,26 +12,26 @@
|
|
12
12
|
<% if(theme.aside.siteinfo.pv){ %>
|
13
13
|
<div class="webinfo-item">
|
14
14
|
<div class="webinfo-item-title">
|
15
|
-
<i class="item-icon
|
15
|
+
<i class="item-icon scoicon sco-visitor-line"></i>
|
16
16
|
<div class="item-name">总访问数 :</div>
|
17
17
|
</div>
|
18
|
-
<span id="busuanzi_value_site_pv"><i class="
|
18
|
+
<span id="busuanzi_value_site_pv"><i class="scoicon sco-loading-line"></i></span>
|
19
19
|
</div>
|
20
20
|
<% } %>
|
21
21
|
<% if(theme.aside.siteinfo.uv){ %>
|
22
22
|
<div class="webinfo-item">
|
23
23
|
<div class="webinfo-item-title">
|
24
|
-
<i class="item-icon
|
24
|
+
<i class="item-icon scoicon sco-team-fill"></i>
|
25
25
|
<div class="item-name">总访客数 :</div>
|
26
26
|
</div>
|
27
|
-
<span id="busuanzi_value_site_uv"><i class="
|
27
|
+
<span id="busuanzi_value_site_uv"><i class="scoicon sco-loading-line"></i></span>
|
28
28
|
</div>
|
29
29
|
<% } %>
|
30
30
|
<% } %>
|
31
31
|
<% if(theme.aside.siteinfo.runtimeenable){ %>
|
32
32
|
<div class="webinfo-item">
|
33
33
|
<div class="webinfo-item-title">
|
34
|
-
<i class="item-icon
|
34
|
+
<i class="item-icon scoicon sco-calendar-todo-fill"></i>
|
35
35
|
<div class="item-name">建站天数 :</div>
|
36
36
|
</div>
|
37
37
|
<div class="item-count" id="runtimeshow">
|
@@ -41,7 +41,7 @@
|
|
41
41
|
<% if(theme.aside.siteinfo.updatetime){ %>
|
42
42
|
<div class="webinfo-item">
|
43
43
|
<div class="webinfo-item-title">
|
44
|
-
<i class="item-icon
|
44
|
+
<i class="item-icon scoicon sco-loop-left-fill"></i>
|
45
45
|
<div class="item-name">最后更新 :</div>
|
46
46
|
</div>
|
47
47
|
<time class="item-count" datetime="<%= new Date() %>">
|
@@ -51,7 +51,7 @@
|
|
51
51
|
<% if(theme.thirdparty.wordcount && theme.aside.siteinfo.wordcount){ %>
|
52
52
|
<div class="webinfo-item">
|
53
53
|
<div class="webinfo-item-title">
|
54
|
-
<i class="item-icon
|
54
|
+
<i class="item-icon scoicon sco-word-fill"></i>
|
55
55
|
<div class="item-name">全站字数 :</div>
|
56
56
|
</div>
|
57
57
|
<div class="item-count"><%= totalcount(site) %></div>
|
@@ -0,0 +1,33 @@
|
|
1
|
+
<% if(theme.aside.welcome.enable){ %>
|
2
|
+
<style>
|
3
|
+
#welcome-info {
|
4
|
+
overflow: hidden;
|
5
|
+
margin-top: 4px
|
6
|
+
}
|
7
|
+
|
8
|
+
#welcome-info .welcome-time {
|
9
|
+
width: 100%;
|
10
|
+
margin: 12px 0 0;
|
11
|
+
display: inline-flex
|
12
|
+
}
|
13
|
+
|
14
|
+
#welcome-info .welcome-message {
|
15
|
+
width: 100%;
|
16
|
+
margin-bottom: 8px;
|
17
|
+
display: inline-flex
|
18
|
+
}
|
19
|
+
</style>
|
20
|
+
<div class="card-widget card-welcome">
|
21
|
+
<div class="item-headline">
|
22
|
+
<i class="<%- theme.aside.welcome.icon || 'scoicon sco-map-pin-fill' %>"></i>
|
23
|
+
<span><%- theme.aside.welcome.title || '来访者' %></span>
|
24
|
+
</div>
|
25
|
+
<div id="welcome-info"></div>
|
26
|
+
</div>
|
27
|
+
<script data-pjax>
|
28
|
+
var longitude = '<%= theme.aside.welcome.longitude %>'
|
29
|
+
var Latitude = '<%= theme.aside.welcome.Latitude %>'
|
30
|
+
var txkey = '<%= theme.aside.welcome.key %>'
|
31
|
+
var ipLoacation;
|
32
|
+
</script>
|
33
|
+
<% } %>
|
@@ -3,7 +3,7 @@
|
|
3
3
|
<h2 style="padding-top: 0;margin:0.6rem 0 0.6rem;">🎣 钓鱼</h2>
|
4
4
|
<a id="random-post-start" href="javascript:fetchRandomPost();" rel="external nofollow"
|
5
5
|
style="transition-duration: 0.3s; transform: rotate(63000deg); opacity: 1;" data-pjax-state="">
|
6
|
-
<i class="scoicon
|
6
|
+
<i class="scoicon sco-refresh-line"></i>
|
7
7
|
</a>
|
8
8
|
</div>
|
9
9
|
<div class="title-h2-a-right"><a class="random-post-all" href="/links/" data-pjax-state="">全部友链</a></div>
|
@@ -15,8 +15,5 @@
|
|
15
15
|
expire_days: <%= theme.circle.expire_days %>,
|
16
16
|
}
|
17
17
|
</script>
|
18
|
-
<script type="text/javascript"
|
19
|
-
|
20
|
-
<script type="text/javascript"
|
21
|
-
src="<%= theme.circle.bundejs ? theme.circle.bundejs : 'https://npm.elemecdn.com/wzheo-absolute@1.0.3/lib/bundle.min.js' %>"
|
22
|
-
rel="external nofollow"></script>
|
18
|
+
<script type="text/javascript" src="<%= theme.circle.appjs %>"></script>
|
19
|
+
<script type="text/javascript" src="<%= theme.circle.bundlejs %>"></script>
|
@@ -1,115 +1,100 @@
|
|
1
1
|
<div id="rightMenu">
|
2
2
|
<div class="rightMenu-group rightMenu-small">
|
3
|
-
<
|
4
|
-
<i class="scoicon
|
5
|
-
</
|
6
|
-
<
|
7
|
-
<i class="scoicon
|
8
|
-
</
|
9
|
-
<
|
10
|
-
<i class="scoicon
|
11
|
-
</
|
12
|
-
<
|
13
|
-
<i class="scoicon
|
14
|
-
</
|
3
|
+
<div class="rightMenu-item" id="menu-backward">
|
4
|
+
<i class="scoicon sco-arrow-left-line"></i>
|
5
|
+
</div>
|
6
|
+
<div class="rightMenu-item" id="menu-forward">
|
7
|
+
<i class="scoicon sco-arrow-right-line"></i>
|
8
|
+
</div>
|
9
|
+
<div class="rightMenu-item" id="menu-refresh">
|
10
|
+
<i class="scoicon sco-restart-line" style="font-size: 19px;"></i>
|
11
|
+
</div>
|
12
|
+
<div class="rightMenu-item" id="menu-top">
|
13
|
+
<i class="scoicon sco-arrow-up-line"></i>
|
14
|
+
</div>
|
15
15
|
</div>
|
16
|
-
<div class="rightMenu-group rightMenu-line
|
17
|
-
<
|
18
|
-
<i class="scoicon
|
16
|
+
<div class="rightMenu-group rightMenu-line rightMenuPlugin">
|
17
|
+
<div class="rightMenu-item" id="menu-copytext">
|
18
|
+
<i class="scoicon sco-copy-fill"></i>
|
19
19
|
<span>复制选中文本</span>
|
20
|
+
</div>
|
21
|
+
<div class="rightMenu-item" id="menu-pastetext">
|
22
|
+
<i class="heofont icon-clipboard-fill"></i>
|
23
|
+
<span>粘贴文本</span>
|
24
|
+
</div>
|
25
|
+
<a class="rightMenu-item" id="menu-commenttext" data-pjax-state="">
|
26
|
+
<i class="scoicon sco-chat-new-fill"></i>
|
27
|
+
<span>引用到评论</span>
|
20
28
|
</a>
|
29
|
+
<div class="rightMenu-item" id="menu-newwindow">
|
30
|
+
<i class="scoicon sco-window-fill"></i>
|
31
|
+
<span>新窗口打开</span>
|
32
|
+
</div>
|
33
|
+
<div class="rightMenu-item" id="menu-copylink">
|
34
|
+
<i class="scoicon sco-link-line"></i>
|
35
|
+
<span>复制链接地址</span>
|
36
|
+
</div>
|
37
|
+
<div class="rightMenu-item" id="menu-copyimg">
|
38
|
+
<i class="scoicon sco-copy-fill"></i>
|
39
|
+
<span>复制此图片</span>
|
40
|
+
</div>
|
41
|
+
<div class="rightMenu-item" id="menu-downloadimg">
|
42
|
+
<i class="scoicon sco-download-cloud-fill"></i>
|
43
|
+
<span>下载此图片</span>
|
44
|
+
</div>
|
45
|
+
<div class="rightMenu-item" id="menu-search">
|
46
|
+
<i class="scoicon sco-search-line"></i>
|
47
|
+
<span>站内搜索</span>
|
48
|
+
</div>
|
49
|
+
<div class="rightMenu-item" id="menu-searchBaidu">
|
50
|
+
<i class="scoicon sco-baidu-fill"></i>
|
51
|
+
<span>百度搜索</span>
|
52
|
+
</div>
|
53
|
+
<div class="rightMenu-item" id="menu-music-toggle">
|
54
|
+
<i class="scoicon sco-play-fill"></i>
|
55
|
+
<span>播放音乐</span>
|
56
|
+
</div>
|
57
|
+
<div class="rightMenu-item" id="menu-music-back">
|
58
|
+
<i class="scoicon sco-skip-back-fill"></i>
|
59
|
+
<span>切换到上一首</span>
|
60
|
+
</div>
|
61
|
+
<div class="rightMenu-item" id="menu-music-forward">
|
62
|
+
<i class="scoicon sco-skip-forward-fill"></i>
|
63
|
+
<span>切换到下一首</span>
|
64
|
+
</div>
|
65
|
+
<div class="rightMenu-item" id="menu-music-playlist"
|
66
|
+
onclick="window.open('<%- theme.thirdparty.aplayer.server == 'tencent' ? `https://y.qq.com/n/ryqq/playlist/${theme.thirdparty.aplayer.id}` : `https://music.163.com/#/playlist?id=${theme.thirdparty.aplayer.id}` %>', '_blank');">
|
67
|
+
<i class="scoicon sco-play-list-2-line"></i>
|
68
|
+
<span>查看所有歌曲</span></div>
|
69
|
+
<div class="rightMenu-item" id="menu-music-copyMusicName">
|
70
|
+
<i class="scoicon sco-copy-fill"></i>
|
71
|
+
<span>复制歌名</span>
|
72
|
+
</div>
|
21
73
|
</div>
|
22
|
-
<div class="rightMenu-group rightMenu-line">
|
23
|
-
<a class="rightMenu-item"
|
24
|
-
<i class="scoicon
|
25
|
-
<span>随便逛逛</span>
|
26
|
-
|
27
|
-
|
28
|
-
<
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
<i class="scoicon ri-price-tag-3-fill"></i>
|
33
|
-
<span>文章标签</span>
|
34
|
-
</a>
|
74
|
+
<div class="rightMenu-group rightMenu-line rightMenuOther">
|
75
|
+
<a class="rightMenu-item menu-Link" id="menu-randomPost" data-pjax-state="">
|
76
|
+
<i class="scoicon sco-signal-tower-fill"></i>
|
77
|
+
<span>随便逛逛</span></a>
|
78
|
+
<a class="rightMenu-item menu-link" href="/categories/" data-pjax-state="">
|
79
|
+
<i class="scoicon sco-checkbox-multiple-blank-fill"></i>
|
80
|
+
<span>博客分类</span></a>
|
81
|
+
<a class="rightMenu-item menu-link" href="/tags/" data-pjax-state="">
|
82
|
+
<i class="scoicon sco-price-tag-fill"></i>
|
83
|
+
<span>文章标签</span></a>
|
35
84
|
</div>
|
36
|
-
<div class="rightMenu-group rightMenu-line">
|
37
|
-
<
|
38
|
-
<i class="scoicon
|
39
|
-
<span>昼夜转换</span>
|
40
|
-
</a>
|
41
|
-
<a class="rightMenu-item" href="javascript:sco.copyPageUrl();">
|
42
|
-
<i class="scoicon ri-external-link-fill"></i>
|
85
|
+
<div class="rightMenu-group rightMenu-line rightMenuOther">
|
86
|
+
<div class="rightMenu-item" id="menu-copy">
|
87
|
+
<i class="scoicon sco-external-link-fill"></i>
|
43
88
|
<span>复制地址</span>
|
44
|
-
</
|
45
|
-
|
46
|
-
<
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
89
|
+
</div>
|
90
|
+
<div class="rightMenu-item" id="menu-commentBarrage">
|
91
|
+
<i class="scoicon sco-chat-fill"></i>
|
92
|
+
<span class="menu-commentBarrage-text">关闭热评</span>
|
93
|
+
</div>
|
94
|
+
<div class="rightMenu-item" id="menu-darkmode">
|
95
|
+
<i class="scoicon sco-moon-clear-fill"></i>
|
96
|
+
<span class="menu-darkmode-text">浅色模式</span>
|
97
|
+
</div>
|
51
98
|
</div>
|
52
99
|
</div>
|
53
|
-
<
|
54
|
-
let rmf = {};
|
55
|
-
rmf.showRightMenu = function (isTrue, x = 0, y = 0) {
|
56
|
-
let rightMenu = document.getElementById('rightMenu');
|
57
|
-
rightMenu.style.top = x + 'px';
|
58
|
-
rightMenu.style.left = y + 'px';
|
59
|
-
|
60
|
-
if (isTrue) {
|
61
|
-
rightMenu.style.display = 'block';
|
62
|
-
} else {
|
63
|
-
rightMenu.style.display = 'none';
|
64
|
-
}
|
65
|
-
}
|
66
|
-
|
67
|
-
//复制选中文字
|
68
|
-
rmf.copySelect = function () {
|
69
|
-
document.execCommand('Copy', false, null);
|
70
|
-
//这里可以写点东西提示一下 已复制
|
71
|
-
}
|
72
|
-
|
73
|
-
rmf.hideRightMenu = function () {
|
74
|
-
rmf.showRightMenu(false);
|
75
|
-
document.getElementById("rightmenu-item").style.display = "none";
|
76
|
-
};
|
77
|
-
|
78
|
-
rmf.rightmenuCopyText = function (e) {
|
79
|
-
navigator.clipboard && navigator.clipboard.writeText(e),
|
80
|
-
rmf.hideRightMenu()
|
81
|
-
}
|
82
|
-
|
83
|
-
// 右键菜单事件
|
84
|
-
if (!(navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i))) {
|
85
|
-
window.oncontextmenu = function (event) {
|
86
|
-
let rightMenuGroup = document.querySelectorAll('.rightMenu-group.hide');
|
87
|
-
rightMenuGroup.forEach(function (group) {
|
88
|
-
group.style.display = 'none';
|
89
|
-
});
|
90
|
-
|
91
|
-
//如果有文字选中,则显示 文字选中相关的菜单项
|
92
|
-
if (document.getSelection().toString()) {
|
93
|
-
document.getElementById('menu-text').style.display = 'block';
|
94
|
-
}
|
95
|
-
|
96
|
-
let pageX = event.clientX + 10;
|
97
|
-
let pageY = event.clientY;
|
98
|
-
let rmWidth = document.getElementById('rightMenu').offsetWidth;
|
99
|
-
let rmHeight = document.getElementById('rightMenu').offsetHeight;
|
100
|
-
if (pageX + rmWidth > window.innerWidth) {
|
101
|
-
pageX -= rmWidth + 10;
|
102
|
-
}
|
103
|
-
if (pageY + rmHeight > window.innerHeight) {
|
104
|
-
pageY -= pageY + rmHeight - window.innerHeight;
|
105
|
-
}
|
106
|
-
|
107
|
-
rmf.showRightMenu(true, pageY, pageX);
|
108
|
-
return false;
|
109
|
-
};
|
110
|
-
|
111
|
-
window.addEventListener('click', function () {
|
112
|
-
rmf.showRightMenu(false);
|
113
|
-
});
|
114
|
-
}
|
115
|
-
</script>
|
100
|
+
<div id="rightmenu-mask"></div>
|