hexo-theme-solitude 2.1.3 → 2.1.4

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
@@ -20,7 +20,7 @@ English丨[简体中文](README_zh-Hans.md)丨[繁体中文](README_zh-Hant.md)
20
20
  [![discord](https://img.shields.io/discord/1266610921942548553?style=for-the-badge&logo=discord&label=discord&logoColor=white)](https://discord.gg/HZXAnK4Sut)
21
21
  ![JetBrains](https://img.shields.io/badge/jetbrains-support-black?logo=jetbrains&style=for-the-badge)
22
22
 
23
- [Docs](https://solitude.js.org/)丨[Preview](https://solitude.js.org/preview/)丨[Author](https://blog.everfu.cn/)
23
+ [Docs](https://solitude.js.org/)丨[Preview](https://blog.everfu.cn/)
24
24
 
25
25
  </div>
26
26
 
package/README_zh-Hans.md CHANGED
@@ -20,7 +20,7 @@
20
20
  [![discord](https://img.shields.io/discord/1266610921942548553?style=for-the-badge&logo=discord&label=discord&logoColor=white)](https://discord.gg/HZXAnK4Sut)
21
21
  ![JetBrains](https://img.shields.io/badge/jetbrains-support-black?logo=jetbrains&style=for-the-badge)
22
22
 
23
- [文档](https://solitude.js.org/)丨[预览](https://solitude.js.org/preview/zh/)丨[作者](https://blog.everfu.cn/)
23
+ [文档](https://solitude.js.org/)丨[预览](https://blog.everfu.cn/)
24
24
 
25
25
  </div>
26
26
 
package/README_zh-Hant.md CHANGED
@@ -20,7 +20,7 @@
20
20
  [![discord](https://img.shields.io/discord/1266610921942548553?style=for-the-badge&logo=discord&label=discord&logoColor=white)](https://discord.gg/HZXAnK4Sut)
21
21
  ![JetBrains](https://img.shields.io/badge/jetbrains-support-black?logo=jetbrains&style=for-the-badge)
22
22
 
23
- [文档](https://solitude.js.org/)丨[預覽](https://solitude.js.org/preview/zh/)丨[作者](https://blog.everfu.cn/)
23
+ [文档](https://solitude.js.org/)丨[預覽](https://blog.everfu.cn/)
24
24
 
25
25
  </div>
26
26
 
package/_config.yml CHANGED
@@ -613,6 +613,7 @@ capsule:
613
613
  server: netease
614
614
  # 类型:playlist / song
615
615
  type: playlist
616
+ volume: 0.8
616
617
  # --------------------------- end ---------------------------
617
618
 
618
619
  # --------------------------- start ---------------------------
@@ -240,6 +240,7 @@ rightside:
240
240
  toc: Toc
241
241
  comment: Comment
242
242
  top: Top
243
+ barrage: 弹
243
244
  hide:
244
245
  translate: 简繁转换
245
246
  mode: Mode
package/languages/en.yml CHANGED
@@ -241,6 +241,7 @@ rightside:
241
241
  toc: Toc
242
242
  comment: Comment
243
243
  top: Top
244
+ barrage: 弹
244
245
  hide:
245
246
  translate: 简繁转换
246
247
  mode: Mode
@@ -240,6 +240,7 @@ rightside:
240
240
  toc: 目录
241
241
  comment: 评论
242
242
  top: 返回顶部
243
+ barrage: 弹
243
244
  hide:
244
245
  translate: 简繁转换
245
246
  mode: 显示模式切换
@@ -239,6 +239,7 @@ rightside:
239
239
  toc: 目錄
240
240
  comment: 評論
241
241
  top: 返回頂部
242
+ barrage: 彈
242
243
  hide:
243
244
  translate: 簡繁轉換
244
245
  mode: 顯示模式切換
@@ -12,39 +12,40 @@ if theme.post.footer.enable && is_post()
12
12
  div.footer-bar-description=theme.post.footer.desc
13
13
  if theme.post.footer.button.enable
14
14
  a.footer-bar-link(href=url_for(theme.post.footer.button.url))= theme.post.footer.button.name
15
- div#footer_deal
16
- - var leftInfo = information.left || []
17
- - var rightInfo = information.right || []
15
+ if information.left || information.right || information.author
16
+ div#footer_deal
17
+ - var leftInfo = information.left || []
18
+ - var rightInfo = information.right || []
18
19
 
19
- each value, label in leftInfo
20
- - var array = value.split('||')
21
- a.deal_link(href=url_for(trim(array[0])), title=label)
22
- i.solitude(class=array[1])
20
+ each value, label in leftInfo
21
+ - var array = value.split('||')
22
+ a.deal_link(href=url_for(trim(array[0])), title=label)
23
+ i.solitude(class=array[1])
23
24
 
24
- if information.author
25
- div#footer_mini_logo.nolazyload.footer_mini_logo(title=_p('nav.backtop'), onclick="sco.toTop()")
26
- img(src=information.author, alt=_p('nav.backtop'))
25
+ if information.author
26
+ div#footer_mini_logo.nolazyload.footer_mini_logo(title=_p('nav.backtop'), onclick="sco.toTop()")
27
+ img(src=information.author, alt=_p('nav.backtop'))
27
28
 
28
- each value, label in rightInfo
29
- - var array = value.split('||')
30
- a.deal_link(href=url_for(trim(array[0])), title=label)
31
- i.solitude(class=array[1])
32
- div#st-footer
29
+ each value, label in rightInfo
30
+ - var array = value.split('||')
31
+ a.deal_link(href=url_for(trim(array[0])), title=label)
32
+ i.solitude(class=array[1])
33
+ if group
34
+ div#st-footer
35
+ each value, x in group || []
36
+ div.footer-group
37
+ h3.footer-title= x
38
+ div.footer-links
39
+ each url, y in value
40
+ a.footer-item(href=url_for(url), title=y)= y
33
41
 
34
- each value, x in group || []
35
- div.footer-group
36
- h3.footer-title= x
37
- div.footer-links
38
- each url, y in value
39
- a.footer-item(href=url_for(url), title=y)= y
40
-
41
- if theme.footer && theme.footer.randomlink
42
- div.footer-group
43
- div.footer-title-group
44
- h3.footer-title= _p('footer.randomlink')
45
- button.random-friends-btn(onclick='randomLinksList()', title=_p('footer.randomlink'))
46
- i.solitude.fa-solid.fa-arrows-rotate
47
- div.footer-links#friend-links-in-footer
42
+ if theme.footer && theme.footer.randomlink
43
+ div.footer-group
44
+ div.footer-title-group
45
+ h3.footer-title= _p('footer.randomlink')
46
+ button.random-friends-btn(onclick='randomLinksList()', title=_p('footer.randomlink'))
47
+ i.solitude.fa-solid.fa-arrows-rotate
48
+ div.footer-links#friend-links-in-footer
48
49
  div#footer-bar
49
50
  div.footer-bar-links
50
51
  div.footer-bar-left
@@ -1,23 +1,25 @@
1
1
  - var filteredPosts = site.posts.data.filter(item => item.recommend === true).slice(0,6)
2
- .top-post-group
3
- each post in filteredPosts
4
- .top-post-item
5
- .post_cover
6
- a(href=url_for(post.path), title=post.title)
7
- span.top-post-top-text= _p('home.recommend')
8
- img.post_bg(alt=post.title, src=url_for(post.cover))
9
- .top-post-info
10
- a.article-title(href=url_for(post.path), title=post.title)= post.title
2
+ if filteredPosts.length > 0
3
+ .top-post-group
4
+ each post in filteredPosts
5
+ .top-post-item
6
+ .post_cover
7
+ a(href=url_for(post.path), title=post.title)
8
+ span.top-post-top-text= _p('home.recommend')
9
+ img.post_bg(alt=post.title, src=url_for(post.cover))
10
+ .top-post-info
11
+ a.article-title(href=url_for(post.path), title=post.title)= post.title
11
12
 
12
13
  mixin todayCardContent
13
14
  .todayCard-info
14
15
  .todayCard-tips= theme.hometop.recommendList.sup
15
16
  .todayCard-title= theme.hometop.recommendList.title
16
17
  .todayCard-cover.nolazyload(style=`background: url('${theme.hometop.recommendList.img}') no-repeat center /cover`)
17
- .banner-button-group
18
- a.banner-button(onclick="window.event.cancelBubble=true;sco.hideTodayCard();")
19
- i.solitude.fa-solid.fa-circle-plus
20
- span.banner-button-text= _p('home.recommendmore')
18
+ if filteredPosts.length > 0
19
+ .banner-button-group
20
+ a.banner-button(onclick="window.event.cancelBubble=true;sco.hideTodayCard();")
21
+ i.solitude.fa-solid.fa-circle-plus
22
+ span.banner-button-text= _p('home.recommendmore')
21
23
 
22
24
  case theme.hometop.recommendList.url.startsWith('/')
23
25
  when true
@@ -6,4 +6,7 @@
6
6
  i.fas.fa-circle-half-stroke
7
7
  if theme.rightside.hide.aside
8
8
  button.aside.pc(type='button' title=_p('rightside.hide.aside') onclick='sco.switchHideAside()')
9
- i.fas.fa-arrows-alt-h
9
+ i.fas.fa-arrows-alt-h
10
+ if theme.keyboard.enable
11
+ button.keyboard.pc(type='button' title=_p('console.switch_keyboard') onclick="sco.switchKeyboard()")
12
+ i.fas.fa-keyboard
@@ -8,6 +8,9 @@
8
8
  if page.comment
9
9
  button.comment(type='button' title=_p('rightside.show.comment') onclick="sco.scrollTo('post-comment')")
10
10
  i.fas.fa-comment
11
+ if theme.comment.commentBarrage && page.comment
12
+ button.barrage.pc(type='button' title=_p('rightside.show.barrage') onclick="sco.switchCommentBarrage()")
13
+ span= _p('rightside.show.barrage')
11
14
  button.top(type='button' title=_p('rightside.show.top') onclick='sco.toTop()')
12
15
  i.fas.fa-arrow-up
13
16
  span#percent= "0"
@@ -1,3 +1,3 @@
1
- div.needEndHide#nav-music(onclick="sco.musicToggle()")
2
- div#nav-music-hoverTips=__('music.hit')
3
- meting-js(id=theme.capsule.id, server=theme.capsule.server, type="playlist", mutex="true", preload="none", data-lrctype="0", order="random", theme="var(--efu-main)")
1
+ div.needEndHide#nav-music
2
+ #nav-music-hoverTips(onclick='sco.musicToggle()')= __('music.hit')
3
+ meting-js(id=theme.capsule.id server=theme.capsule.server type="playlist" mutex="true" preload="none" theme="var(--efu-main)" data-lrctype="0" order="random" volume=theme.capsule.volume)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hexo-theme-solitude",
3
- "version": "2.1.3",
3
+ "version": "2.1.4",
4
4
  "description": "A beautiful, powerful, and efficient Hexo theme developed by everfu.",
5
5
  "main": "package.json",
6
6
  "scripts": {
package/plugins.yml CHANGED
@@ -1,11 +1,11 @@
1
1
  algolia_search:
2
2
  name: algoliasearch
3
3
  file: dist/algoliasearch-lite.umd.js
4
- version: 4.24.0
4
+ version: 5.4.1
5
5
  instantsearch:
6
6
  name: instantsearch.js
7
7
  file: dist/instantsearch.production.min.js
8
- version: 4.73.3
8
+ version: 4.74.1
9
9
  pjax:
10
10
  name: pjax
11
11
  file: pjax.min.js
@@ -18,11 +18,11 @@ waline_js:
18
18
  name: '@waline/client'
19
19
  file: dist/waline.js
20
20
  other_name: waline
21
- version: 3.3.0
21
+ version: 3.3.1
22
22
  waline_css:
23
23
  name: '@waline/client'
24
24
  file: dist/waline.css
25
- version: 3.3.0
25
+ version: 3.3.1
26
26
  other_name: waline
27
27
  valine:
28
28
  name: valine
@@ -31,11 +31,11 @@ valine:
31
31
  artalk_css:
32
32
  name: artalk
33
33
  file: dist/Artalk.css
34
- version: 2.8.7
34
+ version: 2.9.0
35
35
  artalk_js:
36
36
  name: artalk
37
37
  file: dist/Artalk.js
38
- version: 2.8.7
38
+ version: 2.9.0
39
39
  katex:
40
40
  name: katex
41
41
  file: dist/katex.min.css
@@ -231,6 +231,7 @@ hexo.extend.filter.register('before_generate', () => {
231
231
  id: '8407304077',
232
232
  server: 'netease',
233
233
  type: 'playlist',
234
+ volume: 0.8,
234
235
  },
235
236
  keyboard: {
236
237
  enable: false,
@@ -54,6 +54,10 @@ maxWidth1024()
54
54
  @media screen and (max-width: 1024px)
55
55
  {block}
56
56
 
57
+ maxWidth1199()
58
+ @media screen and (max-width: 1199px)
59
+ {block}
60
+
57
61
  maxWidth1200()
58
62
  @media screen and (max-width: 1200px)
59
63
  {block}
@@ -362,16 +362,24 @@ i.solitude
362
362
  line-height 1
363
363
  font-synthesis style
364
364
 
365
+ #body-wrap
366
+ display: flex
367
+ flex-direction: column
368
+ min-height: 100vh
369
+ justify-content: space-between
370
+
365
371
  .layout
366
372
  display: flex
367
373
  margin: 0 auto
368
374
  padding: 0 1.5rem
375
+ width 100%
369
376
  max-width: 1200px
370
377
  +maxWidth768()
371
378
  padding 0
372
379
 
373
380
  &#content-inner
374
381
  max-width: 1400px
382
+ flex-grow: 1
375
383
 
376
384
  /.hide-aside.layout
377
385
  max-width: 1400px
@@ -6,13 +6,13 @@
6
6
  else
7
7
  order 2
8
8
 
9
- +minWidth900()
9
+ +minWidth1200()
10
10
  if hexo-config('aside.position') == 0
11
11
  padding-right 15px
12
12
  else
13
13
  padding-left 15px
14
14
 
15
- +maxWidth1200()
15
+ +maxWidth1199()
16
16
  .card-widget:not(#card-toc)
17
17
  display: none
18
18
 
@@ -1,218 +1,229 @@
1
1
  if hexo-config('capsule.enable')
2
- #nav-music
3
- display flex
4
- align-items center
5
- z-index 11
6
- position fixed
7
- bottom 20px
8
- left 20px
9
- cursor pointer
10
- transition .3s
11
- transform-origin left bottom
12
- box-shadow var(--efu-shadow-border)
13
- border-radius 40px
14
- overflow hidden
15
- user-select none
16
-
17
- +maxWidth798()
18
- display none !important
19
-
20
- span
21
- user-select none
22
-
23
- div
24
- user-select none
25
-
26
- &.playing
27
- box-shadow 0 0 12px -3px var(--efu-none)
28
- -webkit-animation playingShadow 5s linear infinite
29
-
30
- .aplayer
31
- background var(--efu-main-op-deep)
32
- border var(--style-border-hover)
33
- backdrop-filter saturate(180%) blur(20px)
34
- -webkit-backdrop-filter blur(20px)
35
- transform translateZ(0)
36
-
37
- &.aplayer-withlrc
38
- .aplayer-pic
39
- box-shadow 0 0 14px #ffffffa6
40
- -webkit-transform rotate(0) scale(1.1)
41
- border-color var(--efu-white)
42
- animation-play-state running
43
-
44
- .aplayer-info
45
- color var(--efu-white)
46
-
47
- .aplayer-lrc
48
- width 200px
49
- margin-bottom 0
50
- opacity 1
51
-
52
- .aplayer-info
53
- .aplayer-controller
54
- .aplayer-bar-wrap
55
- .aplayer-bar
56
- opacity 1
57
-
58
- .aplayer-played
59
- animation-play-state running
60
- height: 100%;
61
- opacity: .1;
62
- background-color: var(--efu-white) !important;
63
- animation: lightBar 5s ease infinite;
64
- animation-play-state: paused;
65
-
66
- #nav-music-hoverTips
67
- opacity 0
68
-
69
- .aplayer
70
- background var(--efu-card-bg)
71
- border-radius 60px
72
- height 41px
73
- display flex
74
- margin 0
75
- pointer-events none
76
- transition .3s
77
- border var(--style-border)
78
- box-shadow none
79
-
80
- &.aplayer-withlrc
81
- .aplayer-pic
82
- height 25px
83
- width 25px
84
- border-radius 40px
85
- z-index 1
86
- transition .3s
87
- -webkit-transform rotate(0) scale(1)
88
- border var(--style-border-always)
89
- -webkit-animation changeright 24s linear infinite
90
- animation-play-state paused
91
-
92
- .aplayer-info
93
- height 100%
94
- color var(--efu-fontcolor)
95
- margin-left 8px
96
- padding 0
97
- display flex
98
- align-items center
99
-
100
- .aplayer-lrc
101
- width 0
102
- opacity 0
103
- transition .3s
104
- margin-left 8px
105
- margin-top -2px
106
-
107
- .aplayer-notice
108
- display none
109
-
110
- .aplayer-miniswitcher
111
- display none
112
-
113
- .aplayer-body
114
- position relative
115
- display flex
116
- align-items center
117
- padding 0 12px 0 8px
118
-
119
- .aplayer-pic
120
- .aplayer-play
121
- opacity 0
122
-
123
- div
124
- display none
125
-
126
- .aplayer-info
127
- .aplayer-music
128
- margin 0
129
- display flex
130
- align-items center
131
- padding 0
132
- z-index 1
133
-
134
- .aplayer-author
135
- display none
136
-
137
- .aplayer-title
138
- cursor pointer
139
- line-height 1
140
- display inline-block
141
- white-space nowrap
142
- max-width 120px
143
- overflow hidden
144
- text-overflow ellipsis
145
- transition .3s
146
-
147
- .aplayer-controller
148
- position absolute
149
- width 100%
150
- height 100%
151
- top 0
152
- left 0
153
-
154
- .aplayer-time
155
- display none
156
-
157
- .aplayer-bar-wrap
158
- margin 0
159
- padding 0
160
-
161
- .aplayer-bar
162
- height 100%
163
- background 0 0
164
- opacity 0
165
-
166
- .aplayer-loaded
167
- display none
168
-
169
- .aplayer-played
170
- height 100%
171
- opacity .1
172
- background-color var(--efu-white) !important
173
- -webkit-animation lightBar 5s ease infinite
174
- animation-play-state paused
175
-
176
- &.aplayer-withlist
177
- .aplayer-info
178
- border none
179
-
180
- .aplayer-lrc
181
- p
182
- color #ffffffb3
183
- filter blur(1px)
184
-
185
- &.aplayer-lrc-current
186
- color var(--efu-white)
187
- border none
188
- filter blur(0)
189
-
190
- #nav-music-hoverTips
191
- color var(--efu-white)
192
- background var(--efu-main)
193
- width 100%
194
- height 100%
195
- position absolute
196
- top 0
197
- left 0
198
- align-items center
199
- justify-content center
200
- display flex
201
- border-radius 40px
202
- opacity 0
203
- font-size 12px
204
- z-index 2
205
- pointer-events none
206
- transition .3s
207
-
208
- &:hover
209
- &:not(.playing)
210
- #nav-music-hoverTips
211
- opacity 1
212
-
213
- .aplayer-list
214
- display none
215
-
216
- #nav-music .aplayer .aplayer-lrc:after,
217
- #nav-music .aplayer .aplayer-lrc:before
218
- display none
2
+ @keyframes changeright
3
+ 0%, 50%, 100%
4
+ transform: rotate(0deg) scale(1.1)
5
+ box-shadow: 0 0 2px #ffffff00
6
+ 25%, 75%
7
+ transform: rotate(90deg) scale(1.1)
8
+ box-shadow: 0 0 14px #ffffff
9
+
10
+ @keyframes playingShadow
11
+ 0%, 100%
12
+ box-shadow: 0 0px 12px -3px var(--efu-none)
13
+ 50%
14
+ box-shadow: 0 0px 12px 0px var(--efu-main)
15
+
16
+ @keyframes lightBar
17
+ 0%, 100%
18
+ opacity: 0.1
19
+ 60%
20
+ opacity: 0.3
21
+
22
+ .aplayer.aplayer-narrow
23
+ .aplayer-body,
24
+ .aplayer-pic
25
+ height: 66px
26
+ width: 66px
27
+
28
+ #nav-music
29
+ display: flex
30
+ align-items: center
31
+ z-index: 12
32
+ position: fixed
33
+ bottom: 20px
34
+ left: 20px
35
+ cursor: pointer
36
+ transition: all 0.5s, left 0s
37
+ transform-origin: left bottom
38
+ box-shadow: var(--efu-shadow-border)
39
+ border-radius: 40px
40
+ overflow: hidden
41
+
42
+ &:active
43
+ transform: scale(0.97)
44
+
45
+ &.playing
46
+ border: var(--style-border)
47
+ box-shadow: 0 0px 12px -3px var(--efu-none)
48
+ animation: playingShadow 5s linear infinite
49
+
50
+ .aplayer.aplayer-withlrc
51
+ .aplayer-pic
52
+ box-shadow: 0 0 14px #ffffffa6
53
+ transform: rotate(0deg) scale(1.1)
54
+ border-color: var(--efu-white)
55
+ animation-play-state: running
56
+
57
+ .aplayer-info
58
+ color: var(--efu-white)
59
+
60
+ #nav-music-hoverTips
61
+ width: 0
62
+
63
+ .aplayer
64
+ background: var(--efu-main)
65
+ border: var(--style-border-hover)
66
+ backdrop-filter: saturate(180%) blur(20px)
67
+ transform: translateZ(0)
68
+
69
+ .aplayer .aplayer-info .aplayer-controller .aplayer-bar-wrap .aplayer-bar .aplayer-played
70
+ animation-play-state: running
71
+
72
+ &:hover:not(.playing) #nav-music-hoverTips
73
+ opacity: 1
74
+
75
+ .aplayer.aplayer-withlrc
76
+ .aplayer-pic
77
+ height: 25px
78
+ width: 25px
79
+ border-radius: 40px
80
+ z-index: 1
81
+ transition: 0.3s
82
+ transform: rotate(0deg) scale(1)
83
+ border: var(--style-border-always)
84
+ animation: changeright 24s linear infinite
85
+ animation-play-state: paused
86
+
87
+ .aplayer-info
88
+ height: 100%
89
+ color: var(--efu-fontcolor)
90
+ margin: 0
91
+ padding: 0
92
+ display: flex
93
+ align-items: center
94
+
95
+ #nav-music-hoverTips
96
+ color: var(--efu-white)
97
+ background: var(--efu-main)
98
+ width: 100%
99
+ height: 100%
100
+ position: absolute
101
+ top: 0
102
+ left: 0
103
+ align-items: center
104
+ justify-content: center
105
+ display: flex
106
+ border-radius: 40px
107
+ opacity: 0
108
+ font-size: 12px
109
+ z-index: 2
110
+ transition: 0.3s
111
+
112
+ .aplayer
113
+ background: var(--efu-card-bg)
114
+ border-radius: 60px
115
+ height: 41px
116
+ display: flex
117
+ margin: 0
118
+ transition: 0.3s
119
+ border: var(--style-border)
120
+ box-shadow: none
121
+
122
+ .aplayer-notice,
123
+ .aplayer-miniswitcher,
124
+ .aplayer-list
125
+ display: none
126
+
127
+ .aplayer-body
128
+ position: relative
129
+ display: flex
130
+ align-items: center
131
+
132
+ .aplayer-info
133
+ .aplayer-music
134
+ margin: 0
135
+ display: flex
136
+ align-items: center
137
+ padding: 0 12px 0 8px
138
+ cursor: pointer
139
+ z-index: 1
140
+ height: 100%
141
+
142
+ .aplayer-title
143
+ cursor: pointer
144
+ line-height: 1
145
+ display: inline-block
146
+ white-space: nowrap
147
+ max-width: 120px
148
+ overflow: hidden
149
+ text-overflow: ellipsis
150
+ transition: 0.3s
151
+ user-select: none
152
+
153
+ .aplayer-controller
154
+ position: absolute
155
+ width: 100%
156
+ height: 100%
157
+ top: 0
158
+ left: 0
159
+
160
+ .aplayer-bar-wrap
161
+ margin: 0
162
+ padding: 0
163
+
164
+ .aplayer-bar
165
+ height: 100%
166
+ background: 0 0
167
+
168
+ .aplayer-loaded
169
+ display: none
170
+
171
+ .aplayer-played
172
+ height: 100%
173
+ opacity: 0.1
174
+ background-color: var(--efu-white) !important
175
+ animation: lightBar 5s ease infinite
176
+ animation-play-state: paused
177
+
178
+ .aplayer-pic
179
+ pointer-events: none
180
+
181
+ .aplayer-button
182
+ bottom: 50%
183
+ right: 50%
184
+ transform: translate(50%, 50%)
185
+ margin: 0
186
+ transition: 0.3s
187
+ pointer-events all
188
+
189
+ &:has(.aplayer-button.aplayer-play)
190
+ animation-play-state: paused
191
+ transform: rotate(0deg) scale(1) !important
192
+
193
+ margin-left: 8px
194
+
195
+ .aplayer-info .aplayer-controller .aplayer-time,
196
+ .aplayer-info .aplayer-music .aplayer-author
197
+ display: none
198
+
199
+ &.aplayer-withlist .aplayer-info
200
+ border: none
201
+
202
+ .aplayer-lrc
203
+ width: 0
204
+ opacity: 0
205
+ transition: 0.3s
206
+ margin-bottom: -15px
207
+
208
+ p.aplayer-lrc-current
209
+ color: var(--efu-white)
210
+ border: none
211
+ min-height: 20px
212
+ filter: none
213
+
214
+ &:after,
215
+ &:before
216
+ display: none
217
+
218
+ p
219
+ color: #ffffffb3
220
+ filter: blur(.8px)
221
+
222
+ &.stretch .aplayer.aplayer-withlrc .aplayer-lrc
223
+ width: 200px
224
+ margin-left: 8px
225
+ opacity: 1
226
+
227
+ .aplayer-thumb
228
+ width: 0!important
229
+ height: 0!important
@@ -1,6 +1,7 @@
1
1
  if hexo-config('hometop.enable') || hexo-config('says.enable')
2
2
  #home_top
3
3
  max-width 1400px
4
+ width 100%
4
5
  margin 0 auto
5
6
  padding .5rem 1.5rem
6
7
 
@@ -253,9 +253,10 @@
253
253
 
254
254
  +maxWidth768()
255
255
  width calc(50% - 12px)
256
+ height: 120px
256
257
 
257
- +maxWidth600()
258
- width calc(100% - 12px)
258
+ a
259
+ flex-direction: column
259
260
 
260
261
  a
261
262
  display flex
@@ -286,6 +287,19 @@
286
287
  height fit-content
287
288
  padding 0 4px
288
289
 
290
+ +maxWidth768()
291
+ align-items center
292
+ width 100%
293
+
294
+ .flink-item-name
295
+ padding: 0
296
+ width: 100%
297
+ text-align: center
298
+ font-size: 14px
299
+
300
+ .flink-item-desc
301
+ display: none
302
+
289
303
  span
290
304
  transition .3s
291
305
 
package/source/js/main.js CHANGED
@@ -150,23 +150,52 @@ const sco = {
150
150
  });
151
151
  }
152
152
  },
153
- musicToggle() {
154
- const $music = document.querySelector('#nav-music') || null;
155
- const $meting = document.querySelector('meting-js') || null;
156
- const $console = document.getElementById('consoleMusic') || null;
157
- const $rm_text = document.querySelector('#menu-music-toggle span') || null;
158
- const $rm_icon = document.querySelector('#menu-music-toggle i') || null;
153
+ musicToggle(isMeting = true) {
154
+ if (!this.isMusicBind) {
155
+ this.musicBind();
156
+ }
157
+ const $music = document.querySelector('#nav-music');
158
+ const $meting = document.querySelector('meting-js');
159
+ const $console = document.getElementById('consoleMusic');
160
+ const $rmText = document.querySelector('#menu-music-toggle span');
161
+ const $rmIcon = document.querySelector('#menu-music-toggle i');
162
+
159
163
  this.musicPlaying = !this.musicPlaying;
160
164
  $music.classList.toggle("playing", this.musicPlaying);
161
- $console && $console.classList.toggle("on", this.musicPlaying);
165
+ $music.classList.toggle("stretch", this.musicPlaying);
166
+ $console?.classList.toggle("on", this.musicPlaying);
167
+
162
168
  if (this.musicPlaying) {
163
- $meting.aplayer.play();
164
- (typeof rm !== 'undefined') && rm?.menuItems.music[0] && ($rm_text.textContent = GLOBAL_CONFIG.right_menu.music.stop) && ($rm_icon.className = 'solitude fas fa-pause')
169
+ if (typeof rm !== 'undefined' && rm?.menuItems.music[0]) {
170
+ $rmText.textContent = GLOBAL_CONFIG.right_menu.music.stop;
171
+ $rmIcon.className = 'solitude fas fa-pause';
172
+ }
165
173
  } else {
166
- $meting.aplayer.pause();
167
- (typeof rm !== 'undefined') && rm?.menuItems.music[0] && ($rm_text.textContent = GLOBAL_CONFIG.right_menu.music.start) && ($rm_icon.className = 'solitude fas fa-play')
174
+ if (typeof rm !== 'undefined' && rm?.menuItems.music[0]) {
175
+ $rmText.textContent = GLOBAL_CONFIG.right_menu.music.start;
176
+ $rmIcon.className = 'solitude fas fa-play';
177
+ }
178
+ }
179
+
180
+ if(isMeting){
181
+ this.musicPlaying ? $meting.aplayer.play() : $meting.aplayer.pause();
168
182
  }
169
183
  },
184
+ musicBind() {
185
+ const $music = document.querySelector('#nav-music');
186
+ const $name = document.querySelector('#nav-music .aplayer-music');
187
+ const $button = document.querySelector('#nav-music .aplayer-button');
188
+
189
+ $name?.addEventListener('click', () => {
190
+ $music.classList.toggle("stretch");
191
+ });
192
+
193
+ $button?.addEventListener('click', () => {
194
+ this.musicToggle(false);
195
+ });
196
+
197
+ this.isMusicBind = true;
198
+ },
170
199
  switchCommentBarrage() {
171
200
  let commentBarrageElement = document.querySelector(".comment-barrage");
172
201
  let consoleCommentBarrage = document.querySelector("#consoleCommentBarrage");
@@ -189,7 +218,7 @@ const sco = {
189
218
  this.sco_keyboards = !this.sco_keyboards;
190
219
  const consoleKeyboard = document.querySelector("#consoleKeyboard");
191
220
  const keyboardFunction = this.sco_keyboards ? openKeyboard : closeKeyboard;
192
- consoleKeyboard.classList.toggle("on", this.sco_keyboards);
221
+ consoleKeyboard?.classList.toggle("on", this.sco_keyboards);
193
222
  keyboardFunction();
194
223
  localStorage.setItem("keyboard", this.sco_keyboards);
195
224
  document.getElementById('keyboard-tips')?.classList.remove('show');
@@ -163,8 +163,8 @@ window.oncontextmenu = (ele) => {
163
163
  } else {
164
164
  rm.menuItems.paste.style.display = "none";
165
165
  }
166
-
167
- if (tagName === "meting-js") {
166
+ let cls = ele.target.className.toLowerCase();
167
+ if (cls.match(/aplayer/)) {
168
168
  display = true;
169
169
  rm.menuItems.music.forEach((item) => (item.style.display = "flex"));
170
170
  } else {