hexo-theme-solitude 1.0.0 → 1.1.3

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.
Files changed (125) hide show
  1. package/README.md +62 -20
  2. package/README_EN.md +98 -0
  3. package/_config.yml +162 -144
  4. package/layout/404.ejs +1 -1
  5. package/layout/layout.ejs +27 -32
  6. package/layout/page/about.ejs +3 -1
  7. package/layout/page/circle.ejs +1 -1
  8. package/layout/page/echarts.ejs +1 -14
  9. package/layout/page/links.ejs +2 -13
  10. package/layout/page/rss.ejs +10 -8
  11. package/layout/page/says.ejs +1 -0
  12. package/layout/partial/body.ejs +0 -1
  13. package/layout/partial/compoment/about/award.ejs +3 -1
  14. package/layout/partial/compoment/about/hobbies.ejs +44 -35
  15. package/layout/partial/compoment/about/other.ejs +68 -60
  16. package/layout/partial/compoment/aside/asideFlipCard.ejs +67 -3
  17. package/layout/partial/compoment/aside/asideHistory.ejs +49 -0
  18. package/layout/partial/compoment/aside/asideNewestPost.ejs +1 -1
  19. package/layout/partial/compoment/aside/asidePower.ejs +3 -3
  20. package/layout/partial/compoment/aside/asideSwitch.ejs +6 -0
  21. package/layout/partial/compoment/aside/asideToc.ejs +1 -1
  22. package/layout/partial/compoment/aside/asideWebInfo.ejs +8 -8
  23. package/layout/partial/compoment/aside/asideWelcome.ejs +33 -0
  24. package/layout/partial/compoment/circle/angle.ejs +2 -2
  25. package/layout/partial/compoment/circle/content.ejs +8 -11
  26. package/layout/partial/compoment/dorakika/rightmenu.ejs +90 -105
  27. package/layout/partial/compoment/hometop/bbTimeList.ejs +1 -1
  28. package/layout/partial/compoment/hometop/groupTag.ejs +1 -1
  29. package/layout/partial/compoment/hometop/topGroup.ejs +11 -18
  30. package/layout/partial/compoment/inject/body.ejs +20 -7
  31. package/layout/partial/compoment/inject/head.ejs +67 -3
  32. package/layout/partial/compoment/links/angle.ejs +26 -0
  33. package/layout/partial/compoment/links/banner.ejs +2 -2
  34. package/layout/partial/compoment/mixins/pagination.ejs +2 -2
  35. package/layout/partial/compoment/nav/right.ejs +6 -6
  36. package/layout/partial/compoment/post/award.ejs +30 -22
  37. package/layout/partial/compoment/post/copyright.ejs +10 -8
  38. package/layout/partial/compoment/post/postMeta.ejs +21 -19
  39. package/layout/partial/compoment/says/saysBottom.ejs +3 -3
  40. package/layout/partial/compoment/says/saysContent.ejs +0 -1
  41. package/layout/partial/compoment/says/saysFunction.ejs +15 -0
  42. package/layout/partial/compoment/third-party/comments/comment.ejs +1 -1
  43. package/layout/partial/compoment/third-party/comments/twikoo.ejs +2 -1
  44. package/layout/partial/compoment/third-party/search/algolia-search.ejs +2 -2
  45. package/layout/partial/compoment/third-party/search/local-search.ejs +2 -2
  46. package/layout/partial/console.ejs +10 -4
  47. package/layout/partial/footer.ejs +11 -9
  48. package/layout/partial/nav.ejs +2 -2
  49. package/layout/partial/sidebar.ejs +2 -2
  50. package/layout/post.ejs +19 -3
  51. package/package.json +4 -5
  52. package/scripts/event/welcome.js +6 -7
  53. package/scripts/helper/charts.js +45 -34
  54. package/scripts/helper/randomLinks.js +1 -1
  55. package/scripts/helper/related_post.js +11 -4
  56. package/scripts/helper/themeJsExport.js +12 -10
  57. package/scripts/tags/fold.js +2 -3
  58. package/scripts/tags/note.js +6 -2
  59. package/scripts/tags/tabs.js +2 -2
  60. package/source/css/main.css +79 -265
  61. package/source/css/search/algolia-search.css +1 -1
  62. package/source/css/search/local-search.css +1 -1
  63. package/source/css/var.css +3 -0
  64. package/source/img/default.png +0 -0
  65. package/source/img/error_load.png +0 -0
  66. package/source/img/logo-horizontal_version.png +0 -0
  67. package/source/img/pwa/16.png +0 -0
  68. package/source/img/pwa/180.png +0 -0
  69. package/source/img/pwa/192.png +0 -0
  70. package/source/img/pwa/32.png +0 -0
  71. package/source/img/pwa/512.png +0 -0
  72. package/source/img/pwa/logo.png +0 -0
  73. package/source/img/pwa/siteicon/splash-1125x2436.png +0 -0
  74. package/source/img/pwa/siteicon/splash-1136x640.png +0 -0
  75. package/source/img/pwa/siteicon/splash-1170x2532.png +0 -0
  76. package/source/img/pwa/siteicon/splash-1179x2556.png +0 -0
  77. package/source/img/pwa/siteicon/splash-1242x2208.png +0 -0
  78. package/source/img/pwa/siteicon/splash-1242x2688.png +0 -0
  79. package/source/img/pwa/siteicon/splash-1248x2778.png +0 -0
  80. package/source/img/pwa/siteicon/splash-1290x2796.png +0 -0
  81. package/source/img/pwa/siteicon/splash-1334x750.png +0 -0
  82. package/source/img/pwa/siteicon/splash-1536x2048.png +0 -0
  83. package/source/img/pwa/siteicon/splash-1620x2160.png +0 -0
  84. package/source/img/pwa/siteicon/splash-1668x2224.png +0 -0
  85. package/source/img/pwa/siteicon/splash-1668x2388.png +0 -0
  86. package/source/img/pwa/siteicon/splash-1792x828.png +0 -0
  87. package/source/img/pwa/siteicon/splash-2048x1536.png +0 -0
  88. package/source/img/pwa/siteicon/splash-2048x2732.png +0 -0
  89. package/source/img/pwa/siteicon/splash-2160x1620.png +0 -0
  90. package/source/img/pwa/siteicon/splash-2208x1242.png +0 -0
  91. package/source/img/pwa/siteicon/splash-2224x1668.png +0 -0
  92. package/source/img/pwa/siteicon/splash-2388x1668.png +0 -0
  93. package/source/img/pwa/siteicon/splash-2436x1125.png +0 -0
  94. package/source/img/pwa/siteicon/splash-2532x1170.png +0 -0
  95. package/source/img/pwa/siteicon/splash-2556x1179.png +0 -0
  96. package/source/img/pwa/siteicon/splash-2688x1242.png +0 -0
  97. package/source/img/pwa/siteicon/splash-2732x2048.png +0 -0
  98. package/source/img/pwa/siteicon/splash-2778x1248.png +0 -0
  99. package/source/img/pwa/siteicon/splash-2796x1290.png +0 -0
  100. package/source/img/pwa/siteicon/splash-640x1136.png +0 -0
  101. package/source/img/pwa/siteicon/splash-750x1334.png +0 -0
  102. package/source/img/pwa/siteicon/splash-828x1792.png +0 -0
  103. package/source/img/solitude-show.jpg +0 -0
  104. package/source/js/commentBarrage.js +145 -136
  105. package/source/js/extend/covercolor/local.js +104 -94
  106. package/source/js/extend/search/algolia-search.js +11 -0
  107. package/source/js/extend/search/local-search.js +12 -1
  108. package/source/js/main.js +212 -27
  109. package/source/js/rightmenu.js +402 -0
  110. package/source/js/txmap.js +236 -0
  111. package/source/lib/chuckle-post-ai.js +1 -0
  112. package/source/lib/circle.min.js +1 -0
  113. package/source/lib/friends_post.js +4 -98
  114. package/source/lib/snackbar.min.js +9 -0
  115. package/source/lib/view-image.min.js +6 -0
  116. package/scripts/filter/katex.js +0 -25
  117. package/scripts/tags/expand.js +0 -4
  118. package/source/img/power.png +0 -0
  119. package/source/js/circle.js +0 -1828
  120. package/source/js/extend/covercolor/web.js +0 -137
  121. package/source/js/post_ai.js +0 -517
  122. package/source/lib/snackbar.js +0 -16
  123. package/source/lib/view-image.js +0 -13
  124. /package/source/lib/{bundle.js → bundle.min.js} +0 -0
  125. /package/source/lib/{lazyload.js → lazyload.min.js} +0 -0
@@ -1,115 +1,100 @@
1
1
  <div id="rightMenu">
2
2
  <div class="rightMenu-group rightMenu-small">
3
- <a class="rightMenu-item" href="javascript:window.history.back();">
4
- <i class="scoicon ri-arrow-left-circle-fill"></i>
5
- </a>
6
- <a class="rightMenu-item" href="javascript:window.history.forward();">
7
- <i class="scoicon ri-arrow-right-circle-fill"></i>
8
- </a>
9
- <a class="rightMenu-item" href="javascript:window.location.reload();">
10
- <i class="scoicon ri-restart-fill"></i>
11
- </a>
12
- <a class="rightMenu-item" href="javascript:sco.toTop();">
13
- <i class="scoicon ri-arrow-up-circle-fill"></i>
14
- </a>
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 hide" id="menu-text">
17
- <a class="rightMenu-item" href="javascript:rmf.copySelect();">
18
- <i class="scoicon ri-file-copy-fill"></i>
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="scoicon sco-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" href="javascript:toRandomPost();">
24
- <i class="scoicon ri-signal-tower-fill"></i>
25
- <span>随便逛逛</span>
26
- </a>
27
- <a class="rightMenu-item" href="/categories/">
28
- <i class="scoicon ri-send-backward"></i>
29
- <span>文章分类</span>
30
- </a>
31
- <a class="rightMenu-item" href="/tags/">
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
- <a class="rightMenu-item" href="javascript:sco.switchDarkMode();">
38
- <i class="scoicon ri-contrast-2-fill"></i>
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
- </a>
45
- <% if(theme.comment.enable){ %>
46
- <a class="rightMenu-item" href="javascript:sco.switchCommentBarrage()">
47
- <i class="scoicon ri-message-3-fill"></i>
48
- <span class="menu-commentBarrage-text">关闭热评</span>
49
- </a>
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
- <script>
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>
@@ -11,5 +11,5 @@
11
11
  <% } %>
12
12
  </div>
13
13
  </div>
14
- <i class="bber-gotobb scoicon ri-arrow-right-circle-fill" style="font-size: 1rem" title="查看全文" onclick="pjax.loadUrl('/says/')"></i>
14
+ <i class="bber-gotobb scoicon sco-right-btn-fill" style="font-size: 1rem" title="查看全文" onclick="pjax.loadUrl('/essay/')"></i>
15
15
  </div>
@@ -26,5 +26,5 @@
26
26
  </div>
27
27
  <a id="banner-hover" onclick="toRandomPost()" data-pjax-state="">
28
28
  <span class="bannerText">随便逛逛</span>
29
- <i class="scoicon ri-arrow-right-line banner-righticon"></i>
29
+ <i class="scoicon sco-arrow-2-right-line banner-righticon"></i>
30
30
  </a>
@@ -1,18 +1,3 @@
1
- <style type="text/css">
2
- <!--.topGroup .todayCard::after {-->
3
- <!-- box-shadow: 0 -109px 133px -9px <%- theme.hometop.recommendList.color %> inset;-->
4
- <!--}-->
5
-
6
- .todayCard-title,
7
- .todayCard-tips,
8
- .topGroup .banner-button {
9
- color: #ffffff;
10
- }
11
-
12
- .topGroup .todayCard {
13
- background: <%- theme.hometop.recommendList.color %>;
14
- }
15
- </style>
16
1
  <% for (const post of site.posts.data.filter(item => item.recommend === true).slice(0,6)){ %>
17
2
  <div class="recent-post-item">
18
3
  <div class="post_cover left_radius">
@@ -30,8 +15,16 @@
30
15
  </div>
31
16
  </div>
32
17
  <% } %>
33
- <div class="todayCard" id="todayCard" onclick="pjax.loadUrl('<%= theme.hometop.recommendList.url %>')"
34
- style="z-index: 1;">
18
+ <% if (theme.hometop.recommendList.url.startsWith('/') && theme.hometop.recommendList.url.endsWith('/')) { %>
19
+ <div class="todayCard" id="todayCard" onclick="pjax.loadUrl('<%= theme.hometop.recommendList.url %>')" style="z-index: 1;">
20
+ <% } else { %>
21
+ <script>
22
+ function GoTodayCard() {
23
+ window.open("<%= theme.hometop.recommendList.url %>", "_blank");
24
+ }
25
+ </script>
26
+ <div class="todayCard" id="todayCard" onclick="GoTodayCard()" style="z-index: 1;">
27
+ <% } %>
35
28
  <div class="todayCard-info">
36
29
  <div class="todayCard-tips"><%= theme.hometop.recommendList.sup %></div>
37
30
  <div class="todayCard-title"><%= theme.hometop.recommendList.title %></div>
@@ -41,7 +34,7 @@
41
34
  </div>
42
35
  <div class="banner-button-group"><a class="banner-button"
43
36
  onclick="window.event.cancelBubble=true;sco.hideTodayCard();">
44
- <i class="scoicon ri-add-circle-fill"></i>
37
+ <i class="scoicon sco-add-fill"></i>
45
38
  <span class="banner-button-text">更多推荐</span>
46
39
  </a>
47
40
  </div>
@@ -7,11 +7,12 @@
7
7
  <% if(theme.lightbox){ %>
8
8
  <%- js(cdn.viewimagejs) %>
9
9
  <% } %>
10
- <% if(theme.hometop.bbtime){ %>
11
- <%- css(cdn.swipercss) %>
10
+ <% if(theme.hometop.bbtime || theme.aside.history.enable){ %>
12
11
  <%- js(cdn.swiperjs) %>
13
12
  <% } %>
13
+ <%- js('/js/utils') %>
14
14
  <div id="js-pjax">
15
+ <%- partial('partial/compoment/dorakika/rightmenu', {cache: true}) %>
15
16
  <% if(page.type === 'says' || page.type === 'album' || page.type === 'album_detail' ){ %>
16
17
  <%- js(cdn.waterfalljs) %>
17
18
  <script>
@@ -22,22 +23,20 @@
22
23
  }), 500);
23
24
  </script>
24
25
  <% } %>
25
- <% if(theme.thirdparty.busuanzi && (theme.aside.siteinfo.uv || theme.aside.siteinfo.pv)){ %>
26
+ <% if(theme.thirdparty.busuanzi && (theme.aside.siteinfo.uv || theme.aside.siteinfo.pv || theme.thirdparty.busuanzi.usecomment === false)){ %>
26
27
  <script async
27
28
  src="<%= cdn.busuanzijs %>"></script>
28
29
  <% } %>
29
30
  </div>
31
+ <%- js('/js/main') %>
30
32
  <% if(theme.thirdparty.aplayer.enable){ %>
31
- <%- css(cdn.aplayercss) %>
32
33
  <%- js(cdn.aplayerjs) %>
33
34
  <%- js(cdn.metingjs) %>
34
35
  <script>
35
36
  var meting_api = "<%- theme.thirdparty.aplayer.api %>";
36
37
  </script>
37
38
  <% } %>
38
- <% if(theme.post.covercolor && !theme.post.covercolor.local){ %>
39
- <%- js('/js/extend/covercolor/web') %>
40
- <% }else{ %>
39
+ <% if(theme.post.covercolor){ %>
41
40
  <%- js('/js/extend/covercolor/local') %>
42
41
  <% } %>
43
42
 
@@ -50,8 +49,22 @@
50
49
  <%- js('/js/extend/console/comment')
51
50
  %>
52
51
  <% } %>
52
+ <%- js('/js/rightmenu') %>
53
+
54
+ <% if(theme.comment.enable){ %>
55
+ <script data-pjax src="/js/commentBarrage.js"></script>
56
+ <% } %>
57
+
58
+ <% if (page.katex){ %>
59
+ <%- css(cdn.katexcss) %>
60
+ <%- js(cdn.katexjs) %>
61
+ <% } %>
53
62
 
54
63
  <% if (page.katex){ %>
55
64
  <% css(cdn.katexcss) %>
56
65
  <% js(cdn.katexjs) %>
66
+ <% } %>
67
+
68
+ <% if(theme.aside.welcome.enable){ %>
69
+ <%- js('/js/txmap.js') %>
57
70
  <% } %>
@@ -5,8 +5,10 @@
5
5
  <% if(theme.loading.pace){ %>
6
6
  <script data-pace-options="{ &quot;restartOnRequestAfter&quot;:false,&quot;eventLag&quot;:false}" src="<%= cdn.pacejs %>"></script>
7
7
  <% } %>
8
- <%- css(theme.icon.customicon) %>
9
- <%- css(cdn.remixicon) %>
8
+ <% if(theme.icon.customicon){ %>
9
+ <%- css(theme.icon.customicon) %>
10
+ <% } %>
11
+ <%- css(cdn.scoicon) %>
10
12
  <%- css(cdn.snackbarcss) %>
11
13
  <% if(theme.comment.enable){ %>
12
14
  <%- css('/css/commentBarrage') %>
@@ -16,4 +18,66 @@
16
18
  <%- js(cdn.instantsearch) %>
17
19
  <%- js(cdn.algolia) %>
18
20
  <% } %>
19
- <script type="text/javascript" src="/js/utils.js"></script>
21
+ <% if(theme.thirdparty.aplayer.enable){%>
22
+ <%- css(cdn.aplayercss) %>
23
+ <%} %>
24
+ <% if(theme.hometop.bbtime || theme.aside.history.enable){ %>
25
+ <%- css(cdn.swipercss) %>
26
+ <% } %>
27
+ <script>
28
+ (win=> {
29
+ win.saveToLocal = {
30
+ set: function setWithExpiry(key, value, ttl) {
31
+ if (ttl === 0)
32
+ return
33
+ const now = new Date()
34
+ const expiryDay = ttl * 86400000
35
+ const item = {
36
+ value: value,
37
+ expiry: now.getTime() + expiryDay,
38
+ }
39
+ localStorage.setItem(key, JSON.stringify(item))
40
+ },
41
+
42
+ get: function getWithExpiry(key) {
43
+ const itemStr = localStorage.getItem(key)
44
+
45
+ if (!itemStr) {
46
+ return undefined
47
+ }
48
+ const item = JSON.parse(itemStr)
49
+ const now = new Date()
50
+
51
+ if (now.getTime() > item.expiry) {
52
+ localStorage.removeItem(key)
53
+ return undefined
54
+ }
55
+ return item.value
56
+ }
57
+ }
58
+
59
+ const DarkModeStatus = localStorage.getItem('theme')
60
+ if(DarkModeStatus !== null){
61
+ if(DarkModeStatus === 'dark'){
62
+ document.documentElement.setAttribute('data-theme', 'dark')
63
+ }else{
64
+ document.documentElement.setAttribute('data-theme', 'light')
65
+ }
66
+ }
67
+
68
+ const asideStatus = saveToLocal.get('aside-status')
69
+ if (asideStatus !== undefined) {
70
+ if (asideStatus === 'hide') {
71
+ document.documentElement.classList.add('hide-aside')
72
+ } else {
73
+ document.documentElement.classList.remove('hide-aside')
74
+ }
75
+ }
76
+ }
77
+ )(window)
78
+
79
+ console.log("%c🔥 程序:Hexo | 主题:Hexo-Theme-Solitude | 作者:DuoSco团队 | 官网:https://github.com/DuoSco/Hexo-theme-solitude 😋", "color:#fff; background: linear-gradient(270deg, #18d7d3, #68b7dd, #8695e6, #986fee); padding: 8px 15px; border-radius: 8px");
80
+ </script>
81
+ <% if(theme.thirdparty.ai.enable){ %>
82
+ <%- js('/lib/chuckle-post-ai') %>
83
+ <% } %>
@@ -0,0 +1,26 @@
1
+ <div class="title-h2-a">
2
+ <div class="title-h2-a-left">
3
+ <h2 style="padding-top: 0;margin:0.6rem 0 0.6rem;">🎣 钓鱼</h2>
4
+ <a id="random-post-start" href="javascript:fetchRandomPost();" rel="external nofollow"
5
+ style="transition-duration: 0.3s; transform: rotate(63000deg); opacity: 1;" data-pjax-state="">
6
+ <i class="scoicon refresh-line" hidden="hidden"></i>
7
+ </a>
8
+ </div>
9
+ <div class="title-h2-a-right"><a class="random-post-all" href="/links/" data-pjax-state="">全部友链</a></div>
10
+ </div>
11
+ <div id="random-post"></div>
12
+
13
+ <div class="title-h2-a">
14
+ <div class="title-h2-a-left">
15
+ <h2 style="padding-top: 0;margin:0.6rem 0 0.6rem;">🐟 鱼塘</h2>
16
+ </div>
17
+ <div class="title-h2-a-right"><span>以下内容自动生成,未经过审核</span></div>
18
+ </div>
19
+ <script>
20
+ var fdata = {
21
+ apiurl: "<%= theme.thirdparty.circle.api %>",
22
+ defaultFish: 100,
23
+ hungryFish: 100,
24
+ }
25
+ </script>
26
+ <%- js('/lib/friends_post') %>
@@ -5,12 +5,12 @@
5
5
  <div class="banner-button-group">
6
6
  <% if (theme.footer.randomlink){ %>
7
7
  <a class="banner-button secondary" onclick="travelling()">
8
- <i class="scoicon ri-signal-tower-fill"></i>
8
+ <i class="scoicon sco-signal-tower-fill"></i>
9
9
  <span class="banner-button-text">随机访问</span>
10
10
  </a>
11
11
  <% } %>
12
12
  <a class="banner-button" onclick="sco.scrollToComment()">
13
- <i class="scoicon ri-arrow-right-circle-fill"></i>
13
+ <i class="scoicon sco-right-btn-fill"></i>
14
14
  <span class="scoicon banner-button-text">申请友链</span>
15
15
  </a>
16
16
  </div>
@@ -3,8 +3,8 @@
3
3
  <% const options = {
4
4
  mid_size: 1,
5
5
  escape: false,
6
- next_text: '<div class="pagination_tips_next">下页</div> <i class="scoicon ri-arrow-right-s-line"></i>',
7
- prev_text: '<i class="scoicon ri-arrow-left-s-line"></i> <div class="pagination_tips_prev">上页</div>'
6
+ next_text: '<div class="pagination_tips_next">下页</div> <i class="scoicon sco-arrow-right-bold"></i>',
7
+ prev_text: '<i class="scoicon sco-arrow-left-bold"></i> <div class="pagination_tips_prev">上页</div>'
8
8
  } %>
9
9
  <%- paginator(options) %>
10
10
  </div>
@@ -1,7 +1,7 @@
1
1
  <% if(theme.nav.right.travellings){ %>
2
2
  <div class="nav-button only-home" id="travellings_button">
3
3
  <a class="site-page" target="_blank" rel="noopener external nofollow" href="https://www.travellings.cn/go.html" title="开往-友链接力" width="120">
4
- <i class="scoicon ri-subway-line" style="font-size: 1rem;"></i>
4
+ <i class="scoicon sco-train-line" style="font-size: 1rem;"></i>
5
5
  </a>
6
6
  </div>
7
7
  <% } %>
@@ -9,7 +9,7 @@
9
9
  <div class="nav-button" id="randomPost_button">
10
10
  <a class="site-page" onclick="toRandomPost()"
11
11
  title="随机前往一个文章">
12
- <i class="scoicon ri-signal-tower-fill" style="font-size: 1rem;"></i>
12
+ <i class="scoicon sco-signal-tower-fill" style="font-size: 1rem;"></i>
13
13
  </a>
14
14
  </div>
15
15
  <% } %>
@@ -17,7 +17,7 @@
17
17
  <div class="nav-button" id="search-button">
18
18
  <a class="site-page social-icon search" title="站内搜索"
19
19
  href="javascript:void(0);" rel="external nofollow">
20
- <i class="scoicon ri-search-2-line" style="font-size: 1rem;"></i>
20
+ <i class="scoicon sco-search-line" style="font-size: 1rem;"></i>
21
21
  </a>
22
22
  </div>
23
23
  <% } %>
@@ -25,18 +25,18 @@
25
25
  <div class="nav-button" id="nav-console">
26
26
  <a class="console_switchbutton" onclick="sco.showConsole()"
27
27
  title="显示中控台" href="javascript:void(0);" rel="external nofollow">
28
- <i class="scoicon ri-layout-masonry-fill" style="font-size: 1rem;"></i>
28
+ <i class="scoicon sco-dashboard-fill" style="font-size: 1rem;"></i>
29
29
  </a>
30
30
  </div>
31
31
  <% } %>
32
32
  <div class="nav-button" id="nav-totop" onclick="sco.toTop()">
33
33
  <a class="totopbtn">
34
- <i class="scoicon ri-arrow-up-line"></i>
34
+ <i class="scoicon sco-arrow-up-line"></i>
35
35
  <span id="percent">0</span>
36
36
  </a>
37
37
  </div>
38
38
  <div id="toggle-menu">
39
39
  <a class="site-page">
40
- <i class="scoicon ri-menu-fill" style="font-size: 1rem;"></i>
40
+ <i class="scoicon sco-menu-line" style="font-size: 1rem;"></i>
41
41
  </a>
42
42
  </div>
@@ -1,25 +1,6 @@
1
1
  <div class="post-reward">
2
- <div class="reward-button button--animated" title="赞赏作者">
3
- <script>
4
- if (utils.isMobile()) {
5
- const showReward = () => {
6
- const rewardMain = document.querySelector('.reward-main');
7
- rewardMain.style.display = 'flex';
8
- document.addEventListener('touchstart', hideReward);
9
- };
10
- const hideReward = () => {
11
- const rewardMain = document.querySelector('.reward-main');
12
- rewardMain.style.display = 'none';
13
- document.removeEventListener('touchstart', hideReward);
14
- };
15
- const rewardButton = document.querySelector('.reward-button');
16
- rewardButton.addEventListener('touchstart', event => {
17
- event.stopPropagation();
18
- showReward();
19
- });
20
- }
21
- </script>
22
- <i class="heofont icon-hand-heart-fill"></i>
2
+ <div class="reward-button button--animated" onclick="AddRewardMask()" title="赞赏作者">
3
+ <i class="scoicon sco-hand-heart-fill"></i>
23
4
  打赏作者
24
5
  </div>
25
6
  <div class="reward-main">
@@ -49,4 +30,31 @@
49
30
  </a>
50
31
  </ul>
51
32
  </div>
52
- </div>
33
+ </div>
34
+ <script type="text/javascript">
35
+ function RemoveRewardMask() {
36
+ let rewardMainElements = document.querySelectorAll(".reward-main");
37
+ let quitBoxElement = document.querySelector("#quit-box");
38
+
39
+ rewardMainElements.forEach(element => {
40
+ element.style.display = "none";
41
+ });
42
+
43
+ if (quitBoxElement) {
44
+ quitBoxElement.style.display = "none";
45
+ }
46
+ }
47
+
48
+ function AddRewardMask() {
49
+ let rewardMainElements = document.querySelectorAll(".reward-main");
50
+ let quitBoxElement = document.querySelector("#quit-box");
51
+
52
+ rewardMainElements.forEach(element => {
53
+ element.style.display = "flex";
54
+ });
55
+
56
+ if (quitBoxElement) {
57
+ quitBoxElement.style.display = "flex";
58
+ }
59
+ }
60
+ </script>
@@ -11,15 +11,17 @@
11
11
  </div>
12
12
  <div class="post-tools" id="post-tools">
13
13
  <div class="post-tools-left">
14
- <% if(theme.post.award.enable){%>
14
+ <% if(theme.post.award.enable){ %>
15
15
  <%- partial('/award', {cache: true}) %>
16
- <%} %>
17
- <div class="reward-link mode">
18
- <a class="reward-link-button" href="<%= theme.footer.rss.url %>">
19
- <i class="heofont icon-plant-fill"></i>
20
- 订阅
21
- </a>
22
- </div>
16
+ <% } %>
17
+ <% if(theme.footer.rss.enable){ %>
18
+ <div class="reward-link mode">
19
+ <a class="reward-link-button" href="<%- theme.footer.rss.url %>">
20
+ <i class="scoicon sco-plant-fill"></i>
21
+ 订阅
22
+ </a>
23
+ </div>
24
+ <% } %>
23
25
  </div>
24
26
  </div>
25
27
  <div class="post-copyright__notice">