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
@@ -6,6 +6,7 @@
6
6
  <% const item = site.data.essay.essay_list[i];if(i >= 30)break; %>
7
7
  <li class="item">
8
8
  <%- partial('partial/compoment/says/saysContent', {item:item}) %>
9
+ <%- partial('partial/compoment/says/saysFunction', {item:item}) %>
9
10
  <hr>
10
11
  <%- partial('partial/compoment/says/saysBottom', {item:item}) %>
11
12
  </li>
@@ -1,5 +1,4 @@
1
1
  <div>
2
- <script type="text/javascript" src='/js/main.js' rel="external nofollow"></script>
3
2
  <%- partial('partial/compoment/inject/body', {cache: true}) %>
4
3
  <%- partial('partial/compoment/third-party/pjax', {cache: true}) %>
5
4
  <% if (theme.extends.body) for (const i of theme.extends.body){ %>
@@ -1,4 +1,5 @@
1
1
  <% let sum = 0; %>
2
+ <% if(site.data.about.rewardList){ %>
2
3
  <div class="author-content">
3
4
  <div class="author-content-item single reward">
4
5
  <div class="author-content-item-tips">致谢</div>
@@ -23,7 +24,7 @@
23
24
  <% if(theme.post.award.enable){ %>
24
25
  <div class="post-reward">
25
26
  <div class="post-reward" onclick="AddRewardMask()"></div>
26
- <div class="reward-button" title="赞赏作者"><i class="heofont icon-hand-heart-fill"></i> 打赏作者
27
+ <div class="reward-button" title="赞赏作者"><i class="scoicon sco-hand-heart-fill"></i> 打赏作者
27
28
  </div>
28
29
  <div class="reward-main">
29
30
  <ul class="reward-all">
@@ -55,3 +56,4 @@
55
56
  </div>
56
57
  </div>
57
58
  </div>
59
+ <% } %>
@@ -1,44 +1,53 @@
1
1
  <div class="author-content">
2
- <div class="author-content-item game-apex" style="background: url(<%= site.data.about.game1.img %>) no-repeat top; background-size: cover;">
3
- <div class="card-content">
4
- <div class="author-content-item-tips"><%= site.data.about.game1.title %></div>
5
- <span class="author-content-item-title"><%= site.data.about.game1.subtitle %></span>
6
- <div class="content-bottom">
7
- <div class="tips"><%= site.data.about.game1.tips_left %></div>
8
- <div class="tips"><%= site.data.about.game1.tips_right %></div>
9
- </div>
10
- </div>
11
- </div>
12
- <div class="author-content-item game-jl" style="background: url(<%= site.data.about.game2.img %>) no-repeat top; background-size: cover;">
13
- <div class="card-content">
14
- <div class="author-content-item-tips"><%= site.data.about.game2.title %></div>
15
- <span class="author-content-item-title"><%= site.data.about.game2.subtitle %></span>
16
- <div class="content-bottom">
17
- <div class="tips"><%= site.data.about.game2.tips_left %></div>
18
- <div class="tips"><%= site.data.about.game2.tips_right %></div>
2
+ <% if(site.data.about.game1){ %>
3
+ <div class="author-content-item game-apex"
4
+ style="background: url(<%- site.data.about.game1.img %>) no-repeat top; background-size: cover;">
5
+ <div class="card-content">
6
+ <div class="author-content-item-tips"><%= site.data.about.game1.title %></div>
7
+ <span class="author-content-item-title"><%= site.data.about.game1.subtitle %></span>
8
+ <div class="content-bottom">
9
+ <div class="tips"><%= site.data.about.game1.tips_left %></div>
10
+ <div class="tips"><%= site.data.about.game1.tips_right %></div>
11
+ </div>
19
12
  </div>
20
13
  </div>
21
- </div>
22
- </div>
23
- <% const likes = site.data.about.likes; %>
24
- <div class="author-content">
25
- <% likes.forEach(function(like) { %>
26
- <div class="author-content-item <%= like.type %>" style="background: url(<%= like.bg %>) no-repeat center;">
14
+ <% } %>
15
+ <% if(site.data.about.game2){ %>
16
+ <div class="author-content-item game-jl"
17
+ style="background: url(<%= site.data.about.game2.img %>) no-repeat top; background-size: cover;">
27
18
  <div class="card-content">
28
- <div class="author-content-item-tips"><%= like.tips %></div>
29
- <span class="author-content-item-title"><%= like.title %></span>
19
+ <div class="author-content-item-tips"><%= site.data.about.game2.title %></div>
20
+ <span class="author-content-item-title"><%= site.data.about.game2.subtitle %></span>
30
21
  <div class="content-bottom">
31
- <div class="tips"><%= like.subtips %></div>
32
- <% if(like.button){ %>
33
- <div class="banner-button-group">
34
- <a class="banner-button" href="<%= like.button_link %>" target="_blank" rel="noopener nofollow">
35
- <i class="ri-arrow-right-circle-fill"></i>
36
- <span class="banner-button-text"><%= like.button_text %></span>
37
- </a>
38
- </div>
39
- <% } %>
22
+ <div class="tips"><%= site.data.about.game2.tips_left %></div>
23
+ <div class="tips"><%= site.data.about.game2.tips_right %></div>
40
24
  </div>
41
25
  </div>
42
26
  </div>
43
- <% }); %>
27
+ <% } %>
44
28
  </div>
29
+ <% if(site.data.about.likes){ %>
30
+ <% const likes = site.data.about.likes; %>
31
+ <div class="author-content">
32
+ <% likes.forEach(function(like) { %>
33
+ <div class="author-content-item <%= like.type %>" style="background: url(<%= like.bg %>) no-repeat center;">
34
+ <div class="card-content">
35
+ <div class="author-content-item-tips"><%= like.tips %></div>
36
+ <span class="author-content-item-title"><%= like.title %></span>
37
+ <div class="content-bottom">
38
+ <div class="tips"><%= like.subtips %></div>
39
+ <% if(like.button){ %>
40
+ <div class="banner-button-group">
41
+ <a class="banner-button" href="<%= like.button_link %>" target="_blank"
42
+ rel="noopener nofollow">
43
+ <i class="scoicon sco-right-btn-fill"></i>
44
+ <span class="banner-button-text"><%= like.button_text %></span>
45
+ </a>
46
+ </div>
47
+ <% } %>
48
+ </div>
49
+ </div>
50
+ </div>
51
+ <% }); %>
52
+ </div>
53
+ <% } %>
@@ -1,68 +1,76 @@
1
1
  <div class="author-content">
2
- <div class="about-statistic author-content-item" style="background: url(<%= site.data.about.tj.img %>);">
3
- <div class="card-content">
4
- <div class="author-content-item-tips">数据</div>
5
- <span class="author-content-item-title">访问统计</span>
6
- <div id="statistic"></div>
7
- <div class="post-tips">
8
- 统计信息来自 <a href="https://invite.51.la/1NzKqTeb?target=V6" target="_blank" rel="noopener nofollow">51la网站统计</a>
9
- </div>
10
- <div class="banner-button-group">
11
- <a class="banner-button" onclick="pjax.loadUrl(&quot;/echart/&quot;)" data-pjax-state="">
12
- <i class="ri-arrow-right-circle-fill"></i>
13
- <span class="banner-button-text">文章统计</span>
14
- </a>
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(&quot;/echart/&quot;)" 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
- </div>
18
- <script>
19
- fetch("<%= site.data.about.tj.url %>")
20
- .then(res => res.text())
21
- .then(data => {
22
- let title = ["最近活跃", "今日人数", "今日访问", "昨日人数", "昨日访问", "本月访问", "总访问量"];
23
- let num = data.match(/(<\/span><span>).*?(\/span><\/p>)/g);
24
- num = num.map(el => {
25
- let val = el.replace(/(<\/span><span>)/g, "");
26
- let str = val.replace(/(<\/span><\/p>)/g, "");
27
- return str;
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
- let s = document.getElementById("statistic");
30
- let statistic = [];
31
- for (let i = 0; i < num.length; i++) {
32
- if (i == 0 || i == num.length - 1) continue;
33
- s.innerHTML += "<div><span>" + title[i] + "</span><span id=" + title[i] + ">" + num[i] + "</span></div>";
34
- }
35
- });
36
- </script>
37
- <style>
38
- :root {
39
- --site-about-oneself-map--light: url(<%= site.data.about.oneself.map.light %>);
40
- --site-about-oneself-map--dark: url(<%= site.data.about.oneself.map.dark %>);
41
- }
42
- </style>
43
- <% const oneself = site.data.about.oneself; %>
44
- <div class="author-content-item-group column mapAndInfo">
45
- <div class="author-content-item map single">
46
- <span class="map-title">我现在住在 <b><%= oneself.location %></b></span></div>
47
- <div class="author-content-item selfInfo single">
48
- <div><span class="selfInfo-title">生于</span>
49
- <span class="selfInfo-content" style="color: #43a6c6;"><%= oneself.birthYear %></span>
50
- </div>
51
- <div>
52
- <span class="selfInfo-title"><%= oneself.university %></span>
53
- <span class="selfInfo-content" style="color: #c69043;"><%= oneself.major %></span>
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
- </div>
65
+ <% } %>
61
66
  </div>
62
- <div class="author-content">
63
- <div class="create-site-post author-content-item single">
64
- <div class="author-content-item-tips">心路历程</div>
65
- <span class="author-content-item-title">为什么建站?</span>
66
- <%- site.data.about.cause %>
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
- </div>
76
+ <% } %>
@@ -1,8 +1,72 @@
1
- <div class="card-widget heo-right-widget" id="card-wechat">
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" style="background: url(<%= theme.aside.flip.face %>) center center no-repeat; background-size: 100%;"></div>
5
- <div class="back face" style="background: url(<%= theme.aside.flip.backface %>) center center no-repeat;background-size: 100%"></div>
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,6 +1,6 @@
1
1
  <div class="card-widget card-recent-post">
2
2
  <div class="item-headline">
3
- <i class="ri-map-2-line"></i>
3
+ <i class="scoicon sco-map-line"></i>
4
4
  <span>最近发布</span>
5
5
  </div>
6
6
  <div class="aside-list">
@@ -1,13 +1,13 @@
1
1
  <div class="card-widget card-power">
2
- <% const data = site.data.aifadian.links %>
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
- <img src="/img/power.png" style="width: 1.2rem">
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;
@@ -1,6 +1,6 @@
1
1
  <div class="card-widget" id="card-toc">
2
2
  <div class="item-headline">
3
- <i class="ri-menu-fill"></i>
3
+ <i class="scoicon sco-menu-line"></i>
4
4
  <span>文章目录</span>
5
5
  </div>
6
6
  <div class="toc-content" id="toc-content">
@@ -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 ri-archive-fill"></i>
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 ri-window-fill"></i>
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="ri-loader-2-fill"></i></span>
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 ri-team-fill"></i>
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="ri-loader-2-fill"></i></span>
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 ri-calendar-todo-fill"></i>
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 ri-loop-left-fill"></i>
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 ri-file-word-fill"></i>
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 ri-refresh-line"></i>
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>
@@ -18,7 +18,7 @@
18
18
  </div>
19
19
  <script>
20
20
  var fdata = {
21
- apiurl: "<%= theme.circle.api %>",
21
+ apiurl: "<%= theme.thirdparty.circle.api %>",
22
22
  defaultFish: 100,
23
23
  hungryFish: 100,
24
24
  }
@@ -2,21 +2,18 @@
2
2
  <script>
3
3
  let UserConfig = {
4
4
  // 填写你的api地址
5
- private_api_url: '<%= theme.circle.api %>',
5
+ private_api_url: '<%= theme.thirdparty.circle.api %>',
6
6
  // 默认加载文章数
7
- page_init_number: <%= theme.circle.page_init_number%>,
7
+ page_init_number: <%= theme.thirdparty.circle.page_init_number%>,
8
8
  // 点击加载更多时,一次最多加载几篇文章,默认10
9
- page_turning_number: <%= theme.circle.page_turning_number %>,
9
+ page_turning_number: <%= theme.thirdparty.circle.page_turning_number %>,
10
10
  // 头像加载失败时,默认头像地址
11
- error_img: '<%= theme.circle.error_img %>',
11
+ error_img: '<%= theme.thirdparty.circle.error_img %>',
12
12
  // 进入页面时第一次的排序规则
13
- sort_rule: '<%= theme.circle.sort_rule %>',
13
+ sort_rule: '<%= theme.thirdparty.circle.sort_rule %>',
14
14
  // 本地文章缓存数据过期时间(天)
15
- expire_days: <%= theme.circle.expire_days %>,
15
+ expire_days: <%= theme.thirdparty.circle.expire_days %>,
16
16
  }
17
17
  </script>
18
- <script type="text/javascript"
19
- src="<%= theme.circle.appjs ? theme.circle.appjs : '/js/circle.js' %>" rel="external nofollow"></script>
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
+ <%- js(theme.thirdparty.circle.appjs) %>
19
+ <%- js(theme.thirdparty.circle.bundlejs) %>