hexo-theme-solitude 3.0.21 → 4.0.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.
Files changed (142) hide show
  1. package/.github/FUNDING.yml +3 -3
  2. package/README.md +11 -1
  3. package/README_en-US.md +11 -1
  4. package/_config.yml +16 -7
  5. package/languages/default.yml +56 -36
  6. package/languages/en.yml +90 -69
  7. package/languages/es.yml +94 -73
  8. package/languages/zh-CN.yml +56 -34
  9. package/languages/zh-TW.yml +80 -57
  10. package/layout/archive.pug +60 -14
  11. package/layout/category.pug +13 -11
  12. package/layout/includes/body/gadsense.pug +2 -2
  13. package/layout/includes/console.pug +71 -72
  14. package/layout/includes/footer.pug +24 -9
  15. package/layout/includes/head/config.pug +83 -39
  16. package/layout/includes/head/mode.pug +7 -7
  17. package/layout/includes/head/page_config.pug +20 -11
  18. package/layout/includes/inject/body.pug +14 -36
  19. package/layout/includes/keyboard.pug +3 -3
  20. package/layout/includes/loading.pug +1 -37
  21. package/layout/includes/mixins/articleSort.pug +3 -3
  22. package/layout/includes/mixins/common.pug +8 -4
  23. package/layout/includes/mixins/pace.pug +1 -1
  24. package/layout/includes/mixins/pagination.pug +3 -3
  25. package/layout/includes/nav.pug +4 -3
  26. package/layout/includes/page/about.pug +9 -8
  27. package/layout/includes/page/brevity.pug +2 -2
  28. package/layout/includes/page/links.pug +23 -11
  29. package/layout/includes/page/music.pug +0 -5
  30. package/layout/includes/rightmenu.pug +20 -20
  31. package/layout/includes/sidebar.pug +2 -2
  32. package/layout/includes/widgets/aside/asideInfoCard.pug +2 -2
  33. package/layout/includes/widgets/aside/asideTag.pug +2 -2
  34. package/layout/includes/widgets/home/bbTimeList.pug +3 -3
  35. package/layout/includes/widgets/home/categoryBar.pug +30 -15
  36. package/layout/includes/widgets/home/hometop.pug +113 -8
  37. package/layout/includes/widgets/home/postList.pug +1 -2
  38. package/layout/includes/widgets/home/topGroup.pug +3 -7
  39. package/layout/includes/widgets/nav/group.pug +4 -2
  40. package/layout/includes/widgets/nav/menu.pug +6 -4
  41. package/layout/includes/widgets/nav/right.pug +7 -6
  42. package/layout/includes/widgets/page/about/award.pug +67 -38
  43. package/layout/includes/widgets/page/about/hobbies.pug +12 -3
  44. package/layout/includes/widgets/page/banner.pug +1 -1
  45. package/layout/includes/widgets/page/kit/content.pug +2 -2
  46. package/layout/includes/widgets/page/links/banner.pug +30 -19
  47. package/layout/includes/widgets/page/message/artalk.pug +3 -3
  48. package/layout/includes/widgets/page/message/content.pug +3 -3
  49. package/layout/includes/widgets/page/message/twikoo.pug +3 -3
  50. package/layout/includes/widgets/page/message/valine.pug +4 -4
  51. package/layout/includes/widgets/page/message/waline.pug +3 -3
  52. package/layout/includes/widgets/page/recentcomment/artalk.pug +5 -9
  53. package/layout/includes/widgets/page/recentcomment/twikoo.pug +5 -9
  54. package/layout/includes/widgets/page/recentcomment/valine.pug +6 -10
  55. package/layout/includes/widgets/page/recentcomment/waline.pug +5 -9
  56. package/layout/includes/widgets/post/award.pug +1 -28
  57. package/layout/includes/widgets/post/copyright.pug +10 -10
  58. package/layout/includes/widgets/post/postInfo.pug +10 -11
  59. package/layout/includes/widgets/post/postMeta.pug +3 -2
  60. package/layout/includes/widgets/rightside/hide.pug +5 -5
  61. package/layout/includes/widgets/rightside/show.pug +7 -7
  62. package/layout/includes/widgets/third-party/comments/artalk.pug +9 -9
  63. package/layout/includes/widgets/third-party/comments/giscus.pug +2 -2
  64. package/layout/includes/widgets/third-party/comments/twikoo.pug +5 -5
  65. package/layout/includes/widgets/third-party/comments/valine.pug +6 -6
  66. package/layout/includes/widgets/third-party/comments/waline.pug +6 -6
  67. package/layout/includes/widgets/third-party/hot/twikoo.pug +1 -1
  68. package/layout/includes/widgets/third-party/music.pug +9 -5
  69. package/layout/includes/widgets/third-party/news-comment/artalk.pug +6 -6
  70. package/layout/includes/widgets/third-party/news-comment/twikoo.pug +7 -7
  71. package/layout/includes/widgets/third-party/news-comment/valine.pug +8 -8
  72. package/layout/includes/widgets/third-party/news-comment/waline.pug +7 -7
  73. package/layout/includes/widgets/third-party/pjax.pug +16 -10
  74. package/layout/includes/widgets/third-party/search/algolia-search.pug +2 -2
  75. package/layout/includes/widgets/third-party/search/docsearch.pug +3 -3
  76. package/layout/includes/widgets/third-party/search/index.pug +1 -3
  77. package/layout/includes/widgets/third-party/search/local-search.pug +9 -9
  78. package/layout/index.pug +8 -6
  79. package/package.json +8 -7
  80. package/plugins.yml +22 -21
  81. package/scripts/event/cdn.js +11 -6
  82. package/scripts/event/friend_links.js +30 -0
  83. package/scripts/event/merge_config.js +15 -7
  84. package/scripts/filter/comment.js +2 -2
  85. package/scripts/filter/default.js +1 -1
  86. package/scripts/helper/inject_head_js.js +79 -33
  87. package/scripts/helper/related_post.js +16 -21
  88. package/scripts/tags/chart.js +1 -1
  89. package/scripts/tags/typeit.js +1 -1
  90. package/source/css/_components/capsule.styl +259 -168
  91. package/source/css/_components/rightside.styl +98 -242
  92. package/source/css/_global/animation.styl +1 -10
  93. package/source/css/_global/index.styl +27 -1
  94. package/source/css/_layout/aside.styl +7 -1
  95. package/source/css/_layout/console.styl +145 -165
  96. package/source/css/_layout/header.styl +238 -47
  97. package/source/css/_layout/pagination.styl +176 -132
  98. package/source/css/_layout/rightmenu.styl +11 -2
  99. package/source/css/_layout/sidebar.styl +39 -17
  100. package/source/css/_mode/index.styl +7 -1
  101. package/source/css/_page/_about/about.styl +18 -2
  102. package/source/css/_page/_about/buff.styl +1 -1
  103. package/source/css/_page/_about/contentinfo.styl +2 -1
  104. package/source/css/_page/_about/game.styl +57 -1
  105. package/source/css/_page/_about/like.styl +7 -2
  106. package/source/css/_page/_about/maxim.styl +1 -1
  107. package/source/css/_page/_about/reward.styl +226 -108
  108. package/source/css/_page/_about/skills.styl +5 -3
  109. package/source/css/_page/_home/category-bar.styl +162 -88
  110. package/source/css/_page/_home/home-top.styl +309 -263
  111. package/source/css/_page/_home/home.styl +34 -7
  112. package/source/css/_page/archive.styl +412 -0
  113. package/source/css/_page/category.styl +27 -1
  114. package/source/css/_page/index.styl +2 -0
  115. package/source/css/_page/links.styl +190 -0
  116. package/source/css/_page/other.styl +37 -0
  117. package/source/css/_post/index.styl +2 -1
  118. package/source/css/_post/meta.styl +245 -217
  119. package/source/css/_search/local-search.styl +158 -82
  120. package/source/css/var.styl +2 -2
  121. package/source/js/archive-page.js +191 -0
  122. package/source/js/core/actions.js +48 -0
  123. package/source/js/core/api.js +32 -0
  124. package/source/js/core/config.js +13 -0
  125. package/source/js/core/lifecycle.js +52 -0
  126. package/source/js/core/preloader.js +34 -0
  127. package/source/js/core/resources.js +65 -0
  128. package/source/js/covercolor/api.js +13 -103
  129. package/source/js/covercolor/ave.js +14 -77
  130. package/source/js/covercolor/local.js +22 -116
  131. package/source/js/covercolor/shared.js +102 -0
  132. package/source/js/friend_links.js +502 -0
  133. package/source/js/main.js +793 -177
  134. package/source/js/music.js +24 -14
  135. package/source/js/post_ai.js +13 -2
  136. package/source/js/right_menu.js +44 -24
  137. package/source/js/search/algolia.js +29 -21
  138. package/source/js/search/local.js +231 -266
  139. package/source/js/tw_cn.js +37 -12
  140. package/source/js/utils.js +37 -25
  141. package/layout/includes/widgets/randomlink.pug +0 -43
  142. package/scripts/filter/randomPosts.js +0 -16
@@ -1,145 +1,138 @@
1
- @keyframes changeright
2
- 0%, 50%, 100%
1
+ @keyframes capsuleCoverSpin
2
+ from
3
3
  transform: rotate(0deg) scale(1.1)
4
- box-shadow: 0 0 2px #ffffff00
5
- 25%, 75%
6
- transform: rotate(90deg) scale(1.1)
7
- box-shadow: 0 0 14px #ffffff
4
+ to
5
+ transform: rotate(360deg) scale(1.1)
8
6
 
9
- @keyframes playingShadow
7
+ @keyframes capsulePlayingShadow
10
8
  0%, 100%
11
- box-shadow: 0 0px 12px -3px var(--efu-none)
9
+ box-shadow: 0 0 12px -6px var(--efu-none)
12
10
  50%
13
- box-shadow: 0 0px 12px 0px var(--efu-music)
14
-
15
- @keyframes lightBar
16
- 0%, 100%
17
- opacity: 0.1
18
- 60%
19
- opacity: 0.3
20
-
21
- .aplayer.aplayer-narrow
22
- .aplayer-body,
23
- .aplayer-pic
24
- height: 66px
25
- width: 66px
11
+ box-shadow: 0 0 12px -3px var(--efu-music)
26
12
 
27
13
  #nav-music
28
14
  display: flex
29
15
  align-items: center
30
- z-index: 12
31
16
  position: fixed
32
- bottom: 20px
33
17
  left: 20px
18
+ bottom: 20px
19
+ z-index: 12
20
+ width: fit-content
21
+ max-width: calc(100vw - 40px)
22
+ overflow: hidden
23
+ isolation: isolate
34
24
  cursor: pointer
35
- transition: all 0.5s, left 0s
36
- transform-origin: left bottom
37
25
  border-radius: 40px
38
- overflow: hidden
26
+ transform-origin: left bottom
27
+ transition: box-shadow 0.3s, opacity 0.3s, transform 0.3s
28
+ box-shadow: var(--efu-shadow-border)
29
+
30
+ &,
31
+ div,
32
+ span
33
+ user-select: none
34
+
39
35
  .aplayer-button
40
- display none
36
+ display: none
41
37
 
42
- &.playing
43
- box-shadow: 0 0px 12px -3px var(--efu-none)
44
- animation: playingShadow 5s linear infinite
38
+ #nav-music-hoverTips
39
+ position: absolute
40
+ inset: 0
41
+ z-index: 2
42
+ display: flex
43
+ align-items: center
44
+ justify-content: center
45
+ width: 100%
46
+ height: 100%
47
+ gap: 12px
48
+ color: var(--efu-white)
49
+ background: unquote('color-mix(in srgb, var(--efu-music) 50%, transparent)')
50
+ border-radius: 40px
51
+ opacity: 0
52
+ pointer-events: none
53
+ transition: opacity 0.3s, background 0.3s, width 0.3s, padding 0.3s
45
54
 
46
- .aplayer.aplayer-withlrc
47
- .aplayer-pic
48
- box-shadow: 0 0 14px #ffffffa6
49
- transform: rotate(0deg) scale(1.1)
50
- border-color: var(--efu-white)
51
- animation-play-state: running
55
+ .music-control-btn
56
+ display: none
57
+ align-items: center
58
+ justify-content: center
59
+ width: 20px
60
+ height: 40px
61
+ padding: 0
62
+ color: var(--efu-white)
63
+ background: transparent
64
+ border: 0
65
+ font-size: 16px
66
+ line-height: 40px
67
+ opacity: 0.8
68
+ cursor: pointer
69
+ transition: opacity 0.2s, transform 0.2s
52
70
 
53
- .aplayer-info
54
- color: var(--efu-white)
71
+ &:hover,
72
+ &:focus-visible
73
+ opacity: 1
55
74
 
56
- .aplayer
57
- background: var(--efu-music)
58
- backdrop-filter: saturate(180%) blur(20px)
59
- transform: translateZ(0)
75
+ &:active
76
+ transform: scale(0.85)
60
77
 
61
- .aplayer .aplayer-info .aplayer-controller .aplayer-bar-wrap .aplayer-bar .aplayer-played
62
- animation-play-state: running
78
+ &:focus-visible
79
+ outline: 2px solid var(--efu-white)
80
+ outline-offset: -3px
81
+ border-radius: 20px
63
82
 
64
83
  &:hover #nav-music-hoverTips
65
84
  opacity: 1
66
-
67
- &:hover:not(.playing)
85
+ pointer-events: auto
86
+
87
+ &:not(.playing):hover
68
88
  #nav-music-hoverTips
69
- justify-content: center
70
- padding-right: 0
89
+ backdrop-filter: blur(10px)
90
+ -webkit-backdrop-filter: blur(10px)
91
+
71
92
  #music-play
72
93
  display: flex
73
- padding 5px 10px
74
- width 100%
75
- height 100%
76
- justify-content center
77
- align-items center
78
94
 
79
95
  &.playing
80
- #nav-music-hoverTips
81
- width 180px
82
- right 0
83
- left auto
84
- background linear-gradient(to left,var(--efu-music) 60%,transparent)
85
- &:hover
86
- #nav-music-hoverTips > i:not(#music-play)
87
- display: block
88
-
89
- .aplayer.aplayer-withlrc
90
- .aplayer-pic
91
- height: 25px
92
- width: 25px
93
- border-radius: 40px
94
- z-index: 1
95
- transition: 0.3s
96
- transform: rotate(0deg) scale(1)
97
- border: var(--style-border-always)
98
- animation: changeright 24s linear infinite
99
- animation-play-state: paused
100
-
101
- .aplayer-info
102
- height: 100%
103
- color: var(--efu-fontcolor)
104
- margin 0
105
- margin-right 8px
106
- padding: 0
107
- display: flex
108
- align-items: center
96
+ animation: capsulePlayingShadow 5s linear infinite
109
97
 
110
- #nav-music-hoverTips
111
- color: var(--efu-white)
112
- background: var(--efu-music)
113
- width: 100%
114
- height: 100%
115
- position: absolute
116
- top: 0
117
- left: 0
118
- align-items: center
119
- justify-content: center
120
- display: flex
121
- border-radius: 40px
122
- opacity: 0
123
- font-size: 12px
124
- z-index: 2
125
- transition: 0.3s
126
- justify-content flex-end
127
- gap 1rem
128
- padding-right 1rem
98
+ #nav-music-hoverTips
99
+ left: auto
100
+ right: 0
101
+ width: 180px
102
+ padding-right: 20px
103
+ justify-content: flex-end
104
+ background: linear-gradient(to left, var(--efu-music) 60%, transparent)
129
105
 
130
- i
131
- font-size: 16px
132
- display none
133
- cursor pointer
106
+ &:hover
107
+ #music-prev,
108
+ #music-pause,
109
+ #music-next
110
+ display: flex
134
111
 
135
112
  .aplayer
136
- background: var(--efu-music)
137
- border-radius: 60px
138
- height: 41px
139
- display: flex
113
+ display: block
114
+ position: relative
115
+ width: fit-content
116
+ min-width: 122px
117
+ max-width: calc(100vw - 40px)
118
+ height: 46px
119
+ max-height: 46px
140
120
  margin: 0
141
- transition: 0.3s
142
- box-shadow: none
121
+ padding: 0
122
+ overflow: hidden
123
+ color: var(--efu-fontcolor)
124
+ background: linear-gradient(to bottom, var(--efu-maskbg), var(--efu-maskbgdeep))
125
+ border: var(--style-border)
126
+ border-radius: 60px
127
+ box-shadow: var(--efu-shadow-glass-inset)
128
+ backdrop-filter: saturate(180%) blur(20px)
129
+ -webkit-backdrop-filter: saturate(180%) blur(20px)
130
+ transform: translateZ(0)
131
+ transition: background 0.28s, border-color 0.28s, box-shadow 0.28s
132
+
133
+ &,
134
+ *
135
+ box-sizing: border-box
143
136
 
144
137
  .aplayer-notice,
145
138
  .aplayer-miniswitcher,
@@ -147,105 +140,203 @@
147
140
  display: none
148
141
 
149
142
  .aplayer-body
150
- position: relative
151
143
  display: flex
152
144
  align-items: center
145
+ position: relative
146
+ width: auto
147
+ height: 46px
148
+ min-height: 46px
149
+ max-height: 46px
150
+ padding: 8px 16px 8px 8px
151
+ overflow: hidden
152
+ border-radius: 60px
153
+
154
+ .aplayer-pic
155
+ position: relative
156
+ z-index: 1
157
+ float: none
158
+ flex-shrink: 0
159
+ width: 30px
160
+ height: 30px
161
+ margin: 0
162
+ pointer-events: none
163
+ border: var(--style-border-always)
164
+ border-radius: 40px
165
+ transform: rotate(0deg) scale(1)
166
+ transition: transform 0.28s, box-shadow 0.28s, border-color 0.28s
153
167
 
154
168
  .aplayer-info
169
+ display: flex
170
+ align-items: center
171
+ align-self: center
172
+ position: static
173
+ flex: 0 0 auto
174
+ width: max-content
175
+ max-width: 120px
176
+ height: 30px
177
+ min-height: 30px
178
+ margin: 0 0 0 10px
179
+ padding: 0
180
+ overflow: visible
181
+ color: var(--efu-fontcolor)
182
+ border: 0 !important
183
+ transition: max-width 0.28s, color 0.28s
184
+
155
185
  .aplayer-music
156
- margin: 0
157
186
  display: flex
158
187
  align-items: center
159
- padding-bottom 0
160
- padding-left 8px
161
- cursor: pointer
188
+ position: relative
162
189
  z-index: 1
163
- height: 100%
190
+ flex-shrink: 0
191
+ height: 30px
192
+ min-height: 30px
193
+ margin: 0
194
+ padding: 0
195
+ line-height: 30px
196
+ overflow: hidden
164
197
 
165
198
  .aplayer-title
166
- cursor: pointer
167
- line-height: 1
168
- display: inline-block
169
- white-space: nowrap
199
+ display: block
170
200
  max-width: 120px
201
+ height: 30px
202
+ line-height: 30px
171
203
  overflow: hidden
204
+ color: var(--efu-fontcolor)
205
+ font-size: 14px
206
+ white-space: nowrap
172
207
  text-overflow: ellipsis
173
- transition: 0.3s
174
- user-select: none
175
- color var(--efu-white)
208
+ cursor: pointer
209
+ transition: color 0.28s
210
+
211
+ .aplayer-author
212
+ display: none
176
213
 
177
214
  .aplayer-controller
178
- // position: absolute
179
- // width: 100%
180
- // height: 100%
181
- // top: 0
182
- // left: 0
215
+ display: block
216
+ position: absolute
217
+ inset: 0
218
+ z-index: 0
219
+ width: 100%
220
+ height: 100%
183
221
 
184
222
  .aplayer-bar-wrap
223
+ position: absolute
224
+ inset: 0
225
+ width: 100%
226
+ height: 100%
185
227
  margin: 0
186
228
  padding: 0
187
229
 
188
230
  .aplayer-bar
231
+ position: relative
232
+ width: 100%
189
233
  height: 100%
190
- background: 0 0
234
+ background: transparent
235
+ opacity: 0
236
+ transition: opacity 0.3s
191
237
 
192
238
  .aplayer-loaded
193
239
  display: none
194
240
 
195
241
  .aplayer-played
242
+ position: absolute
243
+ top: 0
244
+ bottom: 0
245
+ left: 0
196
246
  height: 100%
197
- opacity: 0.1
198
247
  background-color: var(--efu-white) !important
199
- animation: lightBar 5s ease infinite
200
- animation-play-state: paused
248
+ opacity: 0.15
201
249
 
202
- .aplayer-pic
203
- pointer-events: none
250
+ .aplayer-time
251
+ display: none
204
252
 
205
- .aplayer-button
206
- bottom: 50%
207
- right: 50%
208
- transform: translate(50%, 50%)
209
- margin: 0
210
- transition: 0.3s
211
- pointer-events all
253
+ .aplayer-lrc
254
+ display: block
255
+ flex-shrink: 0
256
+ width: 230px
257
+ max-width: 0
258
+ height: 18px
259
+ min-height: 18px
260
+ margin: 0
261
+ padding: 0
262
+ overflow: hidden
263
+ opacity: 0
264
+ transition: max-width 0.28s, margin 0.28s, opacity 0.28s
212
265
 
213
- &:has(.aplayer-button.aplayer-play)
214
- animation-play-state: paused
215
- transform: rotate(0deg) scale(1) !important
266
+ &:after,
267
+ &:before
268
+ display: none
216
269
 
217
- margin-left: 8px
270
+ .aplayer-lrc-contents
271
+ width: 100%
218
272
 
219
- .aplayer-info .aplayer-controller .aplayer-time,
220
- .aplayer-info .aplayer-music .aplayer-author
221
- display: none
273
+ p
274
+ width: 100%
275
+ height: 16px !important
276
+ min-height: 16px
277
+ margin: 0 !important
278
+ padding: 0 !important
279
+ overflow: hidden
280
+ color: var(--efu-white)
281
+ font-size: 14px
282
+ line-height: 16px !important
283
+ text-align: left
284
+ white-space: nowrap
285
+ text-overflow: ellipsis
286
+ opacity: 0.35
287
+ filter: none
222
288
 
223
- &.aplayer-withlist .aplayer-info
224
- border: none
289
+ &.aplayer-lrc-current
290
+ color: var(--efu-white)
291
+ border: 0
292
+ opacity: 1
293
+ filter: none
225
294
 
226
- .aplayer-lrc
227
- width: 0
228
- opacity: 0
229
- transition: 0.3s
230
- margin-bottom: -15px
295
+ &:not(.playing):hover .aplayer
296
+ color: var(--efu-white)
297
+ background: unquote('color-mix(in srgb, var(--efu-music) 78%, transparent)')
298
+ border-color: var(--efu-music)
231
299
 
232
- p.aplayer-lrc-current
300
+ .aplayer-info,
301
+ .aplayer-title
302
+ color: var(--efu-white)
303
+
304
+ &.playing
305
+ .aplayer
306
+ color: var(--efu-white)
307
+ background: var(--efu-music)
308
+ border-color: var(--efu-music)
309
+ box-shadow: unquote('var(--efu-shadow-glass-inset), 0 0 26px color-mix(in srgb, var(--efu-music) 42%, transparent)')
310
+
311
+ .aplayer-pic
312
+ border-color: var(--efu-card-bg)
313
+ box-shadow: 0 0 14px var(--efu-card-bg)
314
+ animation: capsuleCoverSpin 24s linear infinite
315
+
316
+ .aplayer-info
317
+ max-width: unquote('min(332px, calc(100vw - 120px))')
233
318
  color: var(--efu-white)
234
- border: none
235
- min-height: 20px
236
- filter: none
237
319
 
238
- &:after,
239
- &:before
240
- display: none
320
+ .aplayer-title
321
+ color: var(--efu-white) !important
241
322
 
242
- p
243
- color: #ffffffb3
244
- filter: blur(.8px)
323
+ .aplayer-bar
324
+ opacity: 1
325
+
326
+ .aplayer-lrc
327
+ max-width: 230px
328
+ margin-left: 12px
329
+ opacity: 1
245
330
 
246
- &.stretch .aplayer.aplayer-withlrc .aplayer-lrc
247
- width: 200px
331
+ @media (hover: none)
332
+ #nav-music.playing #nav-music-hoverTips
248
333
  opacity: 1
334
+ pointer-events: auto
335
+
336
+ #music-prev,
337
+ #music-pause,
338
+ #music-next
339
+ display: flex
249
340
 
250
341
  .aplayer-thumb
251
342
  width: 0 !important