hexo-theme-solitude 1.8.12 → 1.9.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 CHANGED
@@ -38,7 +38,7 @@
38
38
  [![gitee](https://img.shields.io/badge/Gitee-red?logo=gitee)](https://gitee.com/nsjjd_w/hexo-theme-solitude)
39
39
  [![gitlab](https://img.shields.io/badge/GitLab-blue?logo=gitlab)](https://gitlab.com/efu/hexo-theme-solitude)
40
40
 
41
- [预览](https://www.efu.me/) 丨 [文档](https://solitude-docs.efu.me/)
41
+ [预览](https://www.efu.me/) 丨 [文档](https://docs.efu.me/)
42
42
 
43
43
  </div>
44
44
 
@@ -73,13 +73,13 @@
73
73
  theme: solitude
74
74
  ```
75
75
 
76
- 前往 [文档](https://solitude-docs.efu.me/) 获取更多信息。
76
+ 前往 [文档](https://docs.efu.me/) 获取更多信息。
77
77
 
78
78
  ## 赞助者
79
79
 
80
80
  <p align="center">
81
81
  <a href="https://cdn.jsdelivr.net/gh/efuo/static/sponsors.svg">
82
- <img src='https://cdn.jsdelivr.net/gh/efuo/static/sponsors.svg'/>
82
+ <img src='https://cdn.jsdelivr.net/gh/efuo/static/sponsors.svg' alt="赞助者"/>
83
83
  </a>
84
84
  </p>
85
85
 
package/README_en-US.md CHANGED
@@ -38,7 +38,7 @@
38
38
  [![gitee](https://img.shields.io/badge/Gitee-red?logo=gitee)](https://gitee.com/nsjjd_w/hexo-theme-solitude)
39
39
  [![gitlab](https://img.shields.io/badge/GitLab-blue?logo=gitlab)](https://gitlab.com/efu/hexo-theme-solitude)
40
40
 
41
- [Preview](https://efu.me/) 丨 [Documentation](https://solitude-docs.efu.me/)
41
+ [Preview](https://efu.me/) 丨 [Documentation](https://docs.efu.me/)
42
42
 
43
43
  </div>
44
44
 
@@ -73,7 +73,7 @@
73
73
  theme: solitude
74
74
  ```
75
75
 
76
- Check out the [Documentation](https://solitude-docs.efu.me/) for more information.
76
+ Check out the [Documentation](https://docs.efu.me/) for more information.
77
77
 
78
78
  ## Sponsors
79
79
 
package/README_fr.md CHANGED
@@ -39,7 +39,7 @@ Le thème se compose de [@张洪Heo](https://github.com/zhheo) Autorisation comp
39
39
  [![gitee](https://img.shields.io/badge/Gitee-red?logo=gitee)](https://gitee.com/nsjjd_w/hexo-theme-solitude)
40
40
  [![gitlab](https://img.shields.io/badge/GitLab-blue?logo=gitlab)](https://gitlab.com/efu/hexo-theme-solitude)
41
41
 
42
- [Aperçu](https://www.efu.me/) 丨 [documentation](https://solitude-docs.efu.me/)
42
+ [Aperçu](https://www.efu.me/) 丨 [documentation](https://docs.efu.me/)
43
43
 
44
44
  </div>
45
45
 
@@ -75,7 +75,7 @@ Le thème se compose de [@张洪Heo](https://github.com/zhheo) Autorisation comp
75
75
  theme: solitude
76
76
  ```
77
77
 
78
- Go to [Docs](https://solitude-docs.efu.me) for more information.
78
+ Go to [Docs](https://docs.efu.me) for more information.
79
79
 
80
80
  ## Sponsors
81
81
 
package/README_ja.md CHANGED
@@ -38,7 +38,7 @@
38
38
  [![gitee](https://img.shields.io/badge/Gitee-red?logo=gitee)](https://gitee.com/nsjjd_w/hexo-theme-solitude)
39
39
  [![gitlab](https://img.shields.io/badge/GitLab-blue?logo=gitlab)](https://gitlab.com/efu/hexo-theme-solitude)
40
40
 
41
- [プレビュー](https://www.efu.me/) 丨 [ドキュメンテーション](https://solitude-docs.efu.me/)
41
+ [プレビュー](https://www.efu.me/) 丨 [ドキュメンテーション](https://docs.efu.me/)
42
42
 
43
43
  </div>
44
44
 
@@ -73,7 +73,7 @@
73
73
  theme: solitude
74
74
  ```
75
75
 
76
- 詳しくは [Docs](https://solitude-docs.efu.me) をご覧ください。
76
+ 詳しくは [Docs](https://docs.efu.me) をご覧ください。
77
77
 
78
78
  ## スポンサー
79
79
 
package/README_zh-Hant.md CHANGED
@@ -38,7 +38,7 @@
38
38
  [![gitee](https://img.shields.io/badge/Gitee-red?logo=gitee)](https://gitee.com/nsjjd_w/hexo-theme-solitude)
39
39
  [![gitlab](https://img.shields.io/badge/GitLab-blue?logo=gitlab)](https://gitlab.com/efu/hexo-theme-solitude)
40
40
 
41
- [預覽](https://efu.me/) 丨 [文档](https://solitude-docs.efu.me/)
41
+ [預覽](https://efu.me/) 丨 [文档](https://docs.efu.me/)
42
42
 
43
43
  </div>
44
44
 
@@ -71,7 +71,7 @@
71
71
  theme: solitude
72
72
  ```
73
73
 
74
- 前往 [文檔](https://solitude-docs.efu.me) 獲取更多資訊。
74
+ 前往 [文檔](https://docs.efu.me) 獲取更多資訊。
75
75
 
76
76
  ## 贊助者
77
77
 
package/_config.yml CHANGED
@@ -354,9 +354,14 @@ post:
354
354
  title: 感谢您的赞赏。
355
355
  desc: 因为有你们的支持,我才体会到写文章的价值。
356
356
  list:
357
- # - name: 支付宝
358
- # qcode: https://7.isyangs.cn/34/65f2e5a6d2ef5-34.png
359
- # color: var(--efu-blue)
357
+ # - name: 爱发电
358
+ # qcode: https://s3.qjqq.cn/47/661ba8e695f17.webp!color
359
+ # url: https://afdian.net/a/efu0u0/
360
+ # color: var(--efu-purple)
361
+ # - name: Github Sponsor
362
+ # qcode: https://s3.qjqq.cn/47/661ba900c4bc1.webp!color
363
+ # url: https://github.com/sponsors/efuo
364
+ # color: var(--efu-black)
360
365
  # 版权中订阅按钮跳转链接,填写地址后开启
361
366
  # Subscription button jump link in copyright
362
367
  rss: # /atom.xml
@@ -655,6 +660,23 @@ search:
655
660
  preload: false
656
661
  CDN:
657
662
 
663
+ # Post Chat AI
664
+ # 后台地址:https://ai.tianli0.top/?InviteID=OZ3Z0V2R
665
+ tianli_talk:
666
+ enable: false
667
+ title: 智能客服与搜索
668
+ key: # https://ai.tianli0.top/?InviteID=OZ3Z0V2R
669
+ # 默认值
670
+ # backgroundColor: "var(--efu-main)",
671
+ # bottom: "60px",
672
+ option: #https://ai.tianli0.top/codeMaker.html
673
+ # defaultInput: false
674
+ # upLoadWeb: true
675
+ # userTitle: Efu Chat
676
+ # userDesc: 你好,我是 Efu 的智能客服,有什么可以帮助你的?
677
+ # showInviteLink: 'https://ai.tianli0.top/?InviteID=OZ3Z0V2R'
678
+ # blackDom:
679
+ # - .aplayer
658
680
  # 文章摘要AI
659
681
  # post abstract AI
660
682
  post_ai:
@@ -180,6 +180,11 @@ right_menu:
180
180
  forward: Forward
181
181
  copyMusicName: CopyName
182
182
 
183
+ pagination:
184
+ prev: Prev
185
+ next: Next
186
+ to: To page
187
+
183
188
  about:
184
189
  other:
185
190
  oneself:
package/languages/en.yml CHANGED
@@ -180,6 +180,11 @@ right_menu:
180
180
  forward: Forward
181
181
  copyMusicName: CopyName
182
182
 
183
+ pagination:
184
+ prev: Prev
185
+ next: Next
186
+ to: To page
187
+
183
188
  about:
184
189
  other:
185
190
  oneself:
@@ -182,6 +182,11 @@ right_menu:
182
182
  forward: 切换到下一首
183
183
  copyMusicName: 复制歌名
184
184
 
185
+ pagination:
186
+ prev: 上一页
187
+ next: 下一页
188
+ to: 跳转到指定页面
189
+
185
190
  about:
186
191
  other:
187
192
  oneself:
@@ -182,6 +182,11 @@ right_menu:
182
182
  forward: 切換到下一首
183
183
  copyMusicName: 複製歌名
184
184
 
185
+ pagination:
186
+ prev: 上一頁
187
+ next: 下一頁
188
+ to: 跳轉到指定頁面
189
+
185
190
  about:
186
191
  other:
187
192
  oneself:
@@ -27,7 +27,7 @@ include ../head/pwa.pug
27
27
 
28
28
  script.
29
29
  console.log(
30
- "%c Program: Hexo %c Theme: Solitude %c Version: v1.8.12",
30
+ "%c Program: Hexo %c Theme: Solitude %c Version: v1.9.0",
31
31
  "border-radius:5px 0 0 5px;padding: 5px 10px;color:white;background:#ff3842;",
32
32
  "padding: 5px 10px;color:white;background:#3e9f50;",
33
33
  "padding: 5px 10px;color:white;background:#0084ff;",
@@ -45,6 +45,10 @@ html(lang=config.language, data-theme="light")
45
45
  // search
46
46
  include ./widgets/third-party/search/index.pug
47
47
 
48
+ // Tianli-Talk
49
+ if theme.tianli_talk.enable
50
+ include ./widgets/third-party/tianli-talk.pug
51
+
48
52
  // music
49
53
  if theme.capsule.enable
50
54
  include ./widgets/third-party/music.pug
@@ -1,8 +1,8 @@
1
1
  nav#pagination
2
2
  div.pagination
3
- - var options = {mid_size: 1,escape: false,next_text: '<div class="pagination_tips_next">下页</div> <i class="solitude st-arrow-right-bold"></i>',prev_text: '<i class="solitude st-arrow-left-bold"></i> <div class="pagination_tips_prev">上页</div>'}
3
+ - var options = {mid_size: 1,escape: false,next_text: `<div class="pagination_tips_next">${_p("pagination.next")}</div> <i class="solitude st-arrow-right-bold"></i>`,prev_text: `<i class="solitude st-arrow-left-bold"></i> <div class="pagination_tips_prev">${_p("pagination.prev")}</div>`}
4
4
  !=paginator(options)
5
5
  div.toPageGroup
6
- input#toPageText(oninput="value=value.replace(/[^0-9]/g,'')" maxlength="3" title="跳转到指定页面" onkeyup="if (this.value === '0') this.value = ''")
6
+ input#toPageText(oninput="value=value.replace(/[^0-9]/g,'')" maxlength="3" title=_p('pagination.to') onkeyup="if (this.value === '0') this.value = ''")
7
7
  a#toPageButton(onclick="sco.toPage()")
8
8
  i.solitude.st-show-right-line
@@ -2,29 +2,17 @@
2
2
  - var noSticky, Sticky, customNoSticky, customSticky;
3
3
  if(is_home())
4
4
  - noSticky = theme.aside.home.noSticky.split(',')
5
- - customNoSticky = site.data.aside?.home?.noSticky
6
- - customSticky = site.data.aside?.home?.Sticky
7
5
  - Sticky = theme.aside.home.Sticky.split(',')
8
6
  else if(is_post())
9
7
  - noSticky = theme.aside.post.noSticky.split(',')
10
- - customNoSticky = site.data.aside?.post?.noSticky
11
- - customSticky = site.data.aside?.post?.Sticky
12
8
  - Sticky = theme.aside.post.Sticky.split(',')
13
9
  else if(is_page() || is_archive() || is_tag() || is_category())
14
10
  - noSticky = theme.aside.page.noSticky.split(',')
15
- - customNoSticky = site.data.aside?.page?.noSticky
16
- - customSticky = site.data.aside?.page?.Sticky
17
11
  - Sticky = theme.aside.page.Sticky.split(',')
18
12
  each item in noSticky
19
13
  include ./asideSwitch.pug
20
- if customNoSticky
21
- each item in customNoSticky
22
- include ./asideCustom.pug
23
14
  .sticky_layout
24
15
  if page.toc
25
16
  include ./asideToc.pug
26
- if customSticky
27
- each item in customSticky
28
- include ./asideCustom.pug
29
17
  each item in Sticky
30
18
  include ./asideSwitch.pug
@@ -1,6 +1,6 @@
1
- .card-widget(class=item.class_name, id=item.id_name)
1
+ .card-widget(class=item.class, id=item.id)
2
2
  .item-headline
3
3
  i(class=item.icon)
4
- span=item.name
5
- div(class=item.class_content ||'item-content', id=item.id_content, style=item.style_content)
6
- != item.html
4
+ span=item.title
5
+ div(class=item.content_class ||'item-content', id=item.content_id, style=item.content_css)
6
+ != item.content_html
@@ -8,4 +8,8 @@ case item
8
8
  when 'allInfo'
9
9
  include ./asideAllInfo.pug
10
10
  default
11
- include ../../page/default.pug
11
+ - const custom = site.data?.aside?.find((i) => i.name === item)
12
+ if custom
13
+ != partial("includes/widgets/aside/asideCustom", {item: custom}, {cache: true})
14
+ else
15
+ include ../../page/default.pug
@@ -1,5 +1,5 @@
1
- .post-reward(onclick="AddRewardMask()")
2
- .reward-button(title=_p('award.tipping'))
1
+ .post-reward
2
+ .reward-button(title=_p('award.tipping') onclick="AddRewardMask()")
3
3
  i.solitude.st-hand-heart-fill
4
4
  =_p('award.tipping')
5
5
  .reward-main
@@ -9,7 +9,8 @@
9
9
  - let list = theme.post.award.list || []
10
10
  for item in list
11
11
  li.reward-item
12
- img.post-qr-code-img.nolazyload(src=item.qcode, alt=item.name, style="border-color: " + item.color)
12
+ a(href=url_for(item.url))
13
+ img.post-qr-code-img.nolazyload(src=item.qcode, alt=item.name, style="border-color: " + item.color)
13
14
  .post-qr-code-desc=item.name
14
15
  a.reward-main-btn(href=url_for(theme.post.award.appreciators))
15
16
  .reward-text= _p('award.title')
@@ -20,8 +21,6 @@ script.
20
21
  let rewardMainElements = document.querySelectorAll(".reward-main");
21
22
  let quitBoxElement = document.querySelector("#quit-box");
22
23
 
23
- console.log("RemoveRewardMask")
24
-
25
24
  rewardMainElements.forEach(element => {
26
25
  element.style.display = "none";
27
26
  });
@@ -35,8 +34,6 @@ script.
35
34
  let rewardMainElements = document.querySelectorAll(".reward-main");
36
35
  let quitBoxElement = document.querySelector("#quit-box");
37
36
 
38
- console.log("AddRewardMask")
39
-
40
37
  rewardMainElements.forEach(element => {
41
38
  element.style.display = "flex";
42
39
  });
@@ -0,0 +1,26 @@
1
+ - const {key,option,title} = theme.tianli_talk
2
+
3
+ span.needEndHide#efuTalk(onclick="togglePostChatContainer(); return false;" title=title)
4
+ i.solitude.st-robot-fill
5
+ span.efuTalkTitle=title
6
+
7
+ script.
8
+ var postChatConfig = {
9
+ backgroundColor: "var(--efu-main)",
10
+ bottom: "60px",
11
+ ...!{JSON.stringify(option)}
12
+ };
13
+
14
+ let b = true;
15
+
16
+ document.getElementById('efuTalk').addEventListener('click', function () {
17
+ this.classList.toggle('on');
18
+ let efu = this
19
+ b && setTimeout(() => {
20
+ document.getElementById('close-button').addEventListener('click', function () {
21
+ efu.classList.remove('on');
22
+ })
23
+ }, 0);
24
+ b = false
25
+ });
26
+ script(pjax data-postChat_key=key src="https://ai.tianli0.top/static/public/postChatUser.min.js")
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hexo-theme-solitude",
3
- "version": "1.8.12",
3
+ "version": "1.9.0",
4
4
  "description": "A beautiful, powerful, and efficient Hexo theme developed by the efu.",
5
5
  "main": "package.json",
6
6
  "scripts": {
@@ -791,52 +791,54 @@ if hexo-config('nav.group')
791
791
  &:after
792
792
  color var(--efu-card-bg)
793
793
 
794
- .back-menu-list-groups
795
- .back-menu-list
796
- display flex
797
- flex-direction row
798
- flex-wrap wrap
799
- width 340px
800
- justify-content space-between
794
+ .back-menu-list
795
+ display flex
796
+ flex-direction row
797
+ flex-wrap wrap
798
+ width 340px
799
+ justify-content space-between
801
800
 
802
- &::before
803
- position absolute
804
- top -15px
805
- left 0
806
- width 100%
807
- height 20px
808
- content ''
801
+ &::before
802
+ position absolute
803
+ top -15px
804
+ left 0
805
+ width 100%
806
+ height 20px
807
+ content ''
809
808
 
810
- .back-menu-item
811
- display flex
812
- align-items center
813
- margin 4px 8px
814
- padding 4px 8px
809
+ .back-menu-item
810
+ display flex
811
+ align-items center
812
+ margin 4px 8px
813
+ padding 4px 8px
815
814
 
816
- #nav &
817
- padding 4px 8px
815
+ #nav &
816
+ padding 4px 8px
818
817
 
819
- &:hover
820
- background var(--efu-lighttext)
821
- transform scale(1)
818
+ #nav &
819
+ &:hover
820
+ background var(--efu-lighttext)
822
821
 
823
- .back-menu-item-text
824
- color var(--efu-card-bg)
822
+ &:hover
823
+ background var(--efu-lighttext)
825
824
 
826
- .back-menu-item-icon
827
- width 24px
828
- height 24px
829
- border-radius 8px
830
- background var(--efu-none)
825
+ .back-menu-item-text
826
+ color var(--efu-card-bg)
831
827
 
832
- .back-menu-item-text
833
- font-size 16px
834
- transition .3s
835
- margin-left .5rem
836
- color var(--efu-fontcolor)
828
+ .back-menu-item-icon
829
+ width 24px
830
+ height 24px
831
+ border-radius 8px
832
+ background var(--efu-none)
837
833
 
838
- +maxWidth768()
839
- font-size 14px
834
+ .back-menu-item-text
835
+ font-size 16px
836
+ transition .3s
837
+ margin-left .5rem
838
+ color var(--efu-fontcolor)
839
+
840
+ +maxWidth768()
841
+ font-size 14px
840
842
 
841
843
  .page
842
844
  #nav
@@ -61,4 +61,8 @@ if $about
61
61
  +minWidth768()
62
62
  .needEndHide.hide
63
63
  bottom -200px !important
64
- opacity 0
64
+ opacity 0
65
+
66
+ +maxWidth768()
67
+ .needEndHide
68
+ display none!important
@@ -27,4 +27,8 @@ if hexo-config('search.enable')
27
27
 
28
28
  // comment
29
29
  if hexo-config('comment.use')
30
- @import '_comments/comment.styl'
30
+ @import '_comments/comment.styl'
31
+
32
+ // third party
33
+ if hexo-config('tianli_talk.enable')
34
+ @import 'third_party/tianli_talk.styl'
@@ -0,0 +1,62 @@
1
+ #efuTalk
2
+ display flex
3
+ align-items center
4
+ z-index 1001
5
+ position fixed
6
+ bottom 70px
7
+ left 20px
8
+ height 38px
9
+ cursor pointer
10
+ transition .3s
11
+ box-shadow var(--efu-shadow-border)
12
+ background var(--efu-card-bg)
13
+ border-radius 20px
14
+ overflow hidden
15
+ padding 8px
16
+ color var(--efu-fontcolor)
17
+ width 42px
18
+ border var(--style-border-always)
19
+
20
+ #efuTalk.on, #efuTalk:hover
21
+ background var(--efu-lighttext)
22
+ color var(--efu-card-bg)
23
+ width 159px
24
+ border-color var(--efu-lighttext)
25
+
26
+ #efuTalk span.efuTalkTitle
27
+ display flex
28
+ font-size 14px
29
+ padding 0 12px
30
+ line-height 1
31
+ white-space nowrap
32
+ opacity 0
33
+ transition .3s
34
+
35
+ #postChat_iframeContainer
36
+ z-index 1000
37
+ border var(--style-border-always)
38
+ background var(--efu-card-bg)
39
+ animation to_show_fromLeftBottom .2s ease-out
40
+ border-radius 12px
41
+
42
+ #efuTalk.on span.efuTalkTitle, #efuTalk:hover span.efuTalkTitle
43
+ color var(--efu-card-bg)
44
+ opacity 1
45
+
46
+ #postChat_button
47
+ display none!important
48
+
49
+ #efuTalk i.solitude.efuTalkIcon
50
+ width 18px
51
+ height 18px
52
+ font-size 18px
53
+ margin-left 3px
54
+ line-height 1
55
+
56
+ @keyframes to_show_fromLeftBottom
57
+ from
58
+ opacity 0
59
+ transform scale(0)
60
+ to
61
+ opacity 1
62
+ transform scale(1)
@@ -111,7 +111,6 @@ window.oncontextmenu = (ele) => {
111
111
  let x = ele.clientX + 10;
112
112
  let y = ele.clientY;
113
113
  Array.from(rm.menuItems.other).forEach(item => item.style.display = 'block');
114
-
115
114
  rm.globalEvent = ele
116
115
 
117
116
  let display = false
@@ -174,7 +173,7 @@ window.oncontextmenu = (ele) => {
174
173
  return false;
175
174
  }
176
175
 
177
- (function() {
176
+ (function () {
178
177
  const addEventListener = (element, event, handler) => element.addEventListener(event, handler);
179
178
 
180
179
  addEventListener(rm.menuItems.back, 'click', () => window.history.back() || rm.hideRightMenu());
@@ -212,7 +211,7 @@ window.oncontextmenu = (ele) => {
212
211
  rm.hideRightMenu();
213
212
  });
214
213
 
215
- if(utils.saveToLocal.get('commentBarrageSwitch') !== null){
214
+ if (utils.saveToLocal.get('commentBarrageSwitch') !== null) {
216
215
  rm.menuItems.barrage && rm.barrage(!utils.saveToLocal.get('commentBarrageSwitch'));
217
216
  }
218
217
 
@@ -221,6 +220,7 @@ window.oncontextmenu = (ele) => {
221
220
  addEventListener(rm.menuItems.new, 'click', () => window.open(rm.domhref) && rm.hideRightMenu());
222
221
  addEventListener(rm.menuItems.downloadImg, 'click', () => rm.downloadImage() && rm.hideRightMenu());
223
222
  addEventListener(rm.menuItems.copyImg, 'click', () => rm.copyImage() && rm.hideRightMenu());
223
+ addEventListener(rm.menuItems.copyLink, 'click', () => rm.copyText(rm.domhref) && rm.hideRightMenu());
224
224
  })();
225
225
 
226
226
  is_rm = true