hexo-theme-solitude 1.4.6 → 1.5.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 (87) hide show
  1. package/CONTRIBUTING.md +16 -3
  2. package/README.md +2 -2
  3. package/README_EN.md +2 -2
  4. package/_config.yml +155 -230
  5. package/languages/en-US.yml +5 -2
  6. package/languages/zh-CN.yml +5 -2
  7. package/languages/zh-TW.yml +5 -2
  8. package/layout/404.pug +2 -2
  9. package/layout/includes/footer.pug +8 -6
  10. package/layout/includes/head/config.pug +7 -7
  11. package/layout/includes/head/opengraph.pug +5 -4
  12. package/layout/includes/head/pwa.pug +2 -3
  13. package/layout/includes/inject/body.pug +17 -19
  14. package/layout/includes/inject/head.pug +3 -2
  15. package/layout/includes/mixins/pagination.pug +1 -1
  16. package/layout/includes/nav.pug +3 -3
  17. package/layout/includes/page/says.pug +44 -7
  18. package/layout/includes/sidebar.pug +1 -1
  19. package/layout/includes/widgets/aside/asideInfoCard.pug +4 -3
  20. package/layout/includes/widgets/home/banner.pug +11 -4
  21. package/layout/includes/widgets/home/bbTimeList.pug +13 -7
  22. package/layout/includes/widgets/home/categoryGroup.pug +11 -8
  23. package/layout/includes/widgets/home/hometop.pug +1 -2
  24. package/layout/includes/widgets/home/postList.pug +3 -3
  25. package/layout/includes/widgets/nav/group.pug +13 -0
  26. package/layout/includes/widgets/nav/menu.pug +20 -16
  27. package/layout/includes/widgets/page/about/award.pug +1 -1
  28. package/layout/includes/widgets/page/banner.pug +8 -13
  29. package/layout/includes/widgets/page/equipment/content.pug +1 -1
  30. package/layout/includes/widgets/page/links/linksCard.pug +0 -1
  31. package/layout/includes/widgets/third-party/comments/waline.pug +2 -0
  32. package/layout/includes/widgets/third-party/news-comment/twikoo.pug +2 -2
  33. package/layout/includes/widgets/third-party/news-comment/waline.pug +2 -2
  34. package/layout/includes/widgets/third-party/search/algolia-search.pug +1 -1
  35. package/layout/includes/widgets/third-party/search/local-search.pug +1 -1
  36. package/layout/index.pug +6 -6
  37. package/layout/page.pug +0 -2
  38. package/package.json +1 -1
  39. package/plugins.yml +0 -5
  40. package/scripts/event/init.js +18 -17
  41. package/scripts/event/welcome.js +1 -1
  42. package/scripts/generator/gallery.js +29 -27
  43. package/scripts/helper/getArchiveLength.js +5 -9
  44. package/scripts/helper/related_post.js +28 -39
  45. package/scripts/helper/stylus.js +23 -8
  46. package/source/css/_global/animation.styl +313 -0
  47. package/source/css/_layout/basic.styl +10 -1
  48. package/source/css/_layout/header.styl +5 -5
  49. package/source/css/_layout/index.styl +0 -1
  50. package/source/css/_page/_about/skills.styl +1 -1
  51. package/source/css/_page/_home/category-bar.styl +14 -14
  52. package/source/css/_page/_home/home-top.styl +57 -45
  53. package/source/css/_page/_home/recent-post.styl +1 -1
  54. package/source/css/_page/equipment.styl +3 -2
  55. package/source/css/_page/home.styl +0 -15
  56. package/source/css/_page/index.styl +0 -2
  57. package/source/css/_page/links.styl +9 -8
  58. package/source/css/_page/says.styl +1 -2
  59. package/source/css/_page/share.styl +30 -67
  60. package/source/css/_widgets/_aside/index.styl +1 -1
  61. package/source/css/_widgets/_aside/info.styl +1 -1
  62. package/source/css/_widgets/_comment/twikoo.styl +4 -6
  63. package/source/css/_widgets/_comment/waline.styl +435 -72
  64. package/source/css/_widgets/_extra/console.styl +1 -1
  65. package/source/css/_widgets/_extra/fullpage.styl +1 -1
  66. package/source/css/_widgets/_mixins/footer.styl +1 -1
  67. package/source/css/_widgets/_post/content.styl +1 -11
  68. package/source/css/_widgets/_post/meta.styl +2 -2
  69. package/source/css/_widgets/_post/relatedPost.styl +1 -1
  70. package/source/css/_widgets/_post/tools.styl +1 -1
  71. package/source/css/_widgets/_search/algolia-search.styl +4 -2
  72. package/source/css/_widgets/_tags/note.styl +4 -0
  73. package/source/css/index.styl +0 -1
  74. package/source/js/comment/twikoo_commentBarrage.js +76 -75
  75. package/source/js/covercolor/local.js +11 -10
  76. package/source/js/main.js +27 -35
  77. package/source/js/music.js +89 -49
  78. package/layout/includes/page/rss.pug +0 -20
  79. package/layout/includes/widgets/home/bb/json.pug +0 -25
  80. package/layout/includes/widgets/home/bb/local.pug +0 -20
  81. package/layout/includes/widgets/home/bb/memos.pug +0 -28
  82. package/layout/includes/widgets/nav/left.pug +0 -10
  83. package/layout/includes/widgets/page/says/json.pug +0 -82
  84. package/layout/includes/widgets/page/says/local.pug +0 -44
  85. package/layout/includes/widgets/page/says/memos.pug +0 -111
  86. package/source/css/_global/animation.css +0 -813
  87. package/source/css/_page/rss.styl +0 -82
@@ -1,21 +1,22 @@
1
1
  hexo.extend.filter.register('before_generate', () => {
2
- const hexoVer = hexo.version.replace(/(^.*\..*)\..*/, '$1')
3
- const nodeVer = process.version.replace(/^v/, '');
4
- const [majorVer] = nodeVer.split('.');
5
- const logger = hexo.log, config = hexo.config
2
+ const hexoVer = hexo.version.replace(/(^.*\..*)\..*/, '$1');
3
+ const nodeVer = process.version.replace(/^v/, '');
4
+ const [majorVer] = nodeVer.split('.');
5
+ const logger = hexo.log;
6
+ const config = hexo.config;
6
7
 
7
- if (hexoVer < 6.3) {
8
- logger.error('请把 Hexo 升级到 V6.3.0 或更高的版本!')
9
- process.exit(-1)
10
- }
8
+ if (hexoVer < 6.3) {
9
+ logger.error('请把 Hexo 升级到 V6.3.0 或更高的版本!');
10
+ process.exit(-1);
11
+ }
12
+
13
+ if (config.prismjs.enable) {
14
+ logger.error('主题尚未支持 prismjs 请使用 highlightjs !');
15
+ process.exit(-1);
16
+ }
11
17
 
12
- if (config.prismjs.enable) {
13
- logger.error('主题尚未支持 prismjs 请使用 highlightjs ')
14
- process.exit(-1)
15
- }
16
- if (Number(majorVer) < 14) {
17
- logger.error('请将 Node.js 升级到 v14.0.0 或更高的版本!');
18
- process.exit(-1);
19
- }
18
+ if (Number(majorVer) < 14) {
19
+ logger.error('请将 Node.js 升级到 v14.0.0 或更高的版本!');
20
+ process.exit(-1);
20
21
  }
21
- )
22
+ });
@@ -9,6 +9,6 @@ hexo.on('ready', () => {
9
9
  ###### #### ##### ##### # ### ###### ######
10
10
  ${version}
11
11
  ===================================================================
12
- 主题链接:https://github.com/wleelw/Hexo-theme-solitude
12
+ GitHub: https://github.com/wleelw/hexo-theme-solitude
13
13
  `)
14
14
  })
@@ -6,20 +6,23 @@ hexo.extend.generator.register('gallery', function (locals) {
6
6
  if (!hexo.theme.config.album.enable) return;
7
7
  const album = locals.data.gallery.gallery;
8
8
  if (!album) return;
9
+ const { url, cover, comment, title, album_list, descr, rightbtn, rightbtnlink } = album;
9
10
  return {
10
- path: album.url + '/index.html', layout: ['page'], data: {
11
- url: album.url,
12
- cover: album.cover,
11
+ path: `${url}/index.html`,
12
+ layout: ['page'],
13
+ data: {
14
+ url,
15
+ cover,
13
16
  type: 'gallery',
14
- comment: album.comment,
15
- desc: album.title,
16
- title: album.title,
17
- album: album.album_list,
18
- leftend: album.descr,
19
- rightbtn: album.rightbtn,
20
- rightbtnlink: album.rightbtnlink
17
+ comment,
18
+ desc: title,
19
+ title,
20
+ album: album_list,
21
+ leftend: descr,
22
+ rightbtn,
23
+ rightbtnlink
21
24
  }
22
- }
25
+ };
23
26
  });
24
27
 
25
28
  hexo.extend.generator.register('album', function (locals) {
@@ -27,21 +30,20 @@ hexo.extend.generator.register('album', function (locals) {
27
30
  const album = locals.data.gallery.gallery;
28
31
  let back = hexo.config.language === 'zh-CN' ? '返回相册' : hexo.config.language === 'zh-TW' ? '返回相冊' : 'Back to Album';
29
32
  if (!album) return;
30
- const albumPages = [];
31
- album.album_list.forEach(function (item) {
32
- albumPages.push({
33
- path: album.url + '/' + item.album + '/index.html', layout: ['page'], data: {
34
- album: item,
35
- type: 'album',
36
- cover: item.cover,
37
- title: item.class_name,
38
- desc: item.class_name,
39
- leftend: item.descr,
40
- rightbtn: back,
41
- rightbtnlink: `/${album.url}/`,
42
- comment: item.comment
43
- }
44
- });
45
- });
33
+ const albumPages = album.album_list.map(item => ({
34
+ path: `${album.url}/${item.album}/index.html`,
35
+ layout: ['page'],
36
+ data: {
37
+ album: item,
38
+ type: 'album',
39
+ cover: item.cover,
40
+ title: item.class_name,
41
+ desc: item.class_name,
42
+ leftend: item.descr,
43
+ rightbtn: back,
44
+ rightbtnlink: `/${album.url}/`,
45
+ comment: item.comment
46
+ }
47
+ }));
46
48
  return albumPages;
47
49
  });
@@ -6,13 +6,9 @@ hexo.extend.helper.register('getArchiveLength', function (type) {
6
6
  }
7
7
  const posts = this.site.posts.sort('-date').data
8
8
  let archive = {}
9
- posts.forEach(post => {
9
+ for (const post of posts) {
10
10
  const postdate = type === 'year' ? moment(post.date).format('YYYY') : moment(post.date).format('YYYY/MM');
11
- if(!archive[postdate]){
12
- archive[postdate] = 1
13
- } else {
14
- archive[postdate] ++
15
- }
16
- });
17
- return archive
18
- });
11
+ archive[postdate] = (archive[postdate] || 0) + 1;
12
+ }
13
+ return archive;
14
+ });
@@ -1,10 +1,15 @@
1
1
  'use strict'
2
2
 
3
3
  hexo.extend.helper.register('related_posts', function (currentPost, allPosts) {
4
- let relatedPosts = []
4
+ const relatedPosts = []
5
+ const config = hexo.theme.config
6
+ const limitNum = config.related_post.limit || 6
7
+ const dateType = config.related_post.date_type || 'created'
8
+ const headlineLang = this._p('喜欢这篇的人也看了')
9
+
5
10
  currentPost.tags.forEach(function (tag) {
6
11
  allPosts.forEach(function (post) {
7
- if (isTagRelated(tag.name, post.tags)) {
12
+ if (isTagRelated(tag.name, post.tags) && currentPost.path !== post.path) {
8
13
  const relatedPost = {
9
14
  title: post.title,
10
15
  path: post.path,
@@ -18,61 +23,45 @@ hexo.extend.helper.register('related_posts', function (currentPost, allPosts) {
18
23
  if (index !== -1) {
19
24
  relatedPosts[index].weight += 1
20
25
  } else {
21
- if (currentPost.path !== post.path) {
22
- relatedPosts.push(relatedPost)
23
- }
26
+ relatedPosts.push(relatedPost)
24
27
  }
25
28
  }
26
29
  })
27
30
  })
31
+
28
32
  if (relatedPosts.length === 0) {
29
33
  return ''
30
34
  }
31
- let result = ''
32
- const config = hexo.theme.config
33
-
34
- const limitNum = config.related_post.limit || 6
35
- const dateType = config.related_post.date_type || 'created'
36
- const headlineLang = this._p('喜欢这篇的人也看了')
37
-
38
- relatedPosts = relatedPosts.sort(compare('weight', dateType))
39
35
 
40
- if (relatedPosts.length > 0) {
41
- result += '<div class="relatedPosts">'
42
- result += `<div class="headline"><i class="scoicon sco-star-smile-fill"></i><span>${headlineLang}</span><div class="relatedPosts-link"><a onclick="event.preventDefault(); toRandomPost();" href="javascript:void(0);" rel="external nofollow" data-pjax-state="">随便逛逛</a></div></div>`
43
- result += '<div class="relatedPosts-list">'
36
+ relatedPosts.sort(compare('weight', dateType))
44
37
 
45
- for (let i = 0; i < Math.min(relatedPosts.length, limitNum); i++) {
46
- const cover = relatedPosts[i].cover || 'var(--default-bg-color)'
47
- const title = this.escape_html(relatedPosts[i].title)
48
- result += `<div><a href="${this.url_for(relatedPosts[i].path)}" title="${title}">`
49
- result += `<img class="cover" src="${this.url_for(cover)}" alt="cover">`
50
- result += `<div class="content is-center"><div class="title">${title}</div></div>`
51
- result += '</a></div>'
52
- }
38
+ let result = '<div class="relatedPosts">'
39
+ result += `<div class="headline"><i class="scoicon sco-star-smile-fill"></i><span>${headlineLang}</span><div class="relatedPosts-link"><a onclick="event.preventDefault(); toRandomPost();" href="javascript:void(0);" rel="external nofollow" data-pjax-state="">随便逛逛</a></div></div>`
40
+ result += '<div class="relatedPosts-list">'
53
41
 
54
- result += '</div></div>'
55
- return result
42
+ for (let i = 0; i < Math.min(relatedPosts.length, limitNum); i++) {
43
+ const cover = relatedPosts[i].cover || 'var(--default-bg-color)'
44
+ const title = this.escape_html(relatedPosts[i].title)
45
+ result += `<div><a href="${this.url_for(relatedPosts[i].path)}" title="${title}">`
46
+ result += `<img class="cover" src="${this.url_for(cover)}" alt="cover">`
47
+ result += `<div class="content is-center"><div class="title">${title}</div></div>`
48
+ result += '</a></div>'
56
49
  }
50
+
51
+ result += '</div></div>'
52
+ return result
57
53
  })
58
54
 
59
55
  function isTagRelated(tagName, TBDtags) {
60
- let result = false
61
- TBDtags.forEach(function (tag) {
62
- if (tagName === tag.name) {
63
- result = true
64
- }
56
+ return TBDtags.some(function (tag) {
57
+ return tagName === tag.name
65
58
  })
66
- return result
67
59
  }
68
60
 
69
61
  function findItem(arrayToSearch, attr, val) {
70
- for (let i = 0; i < arrayToSearch.length; i++) {
71
- if (arrayToSearch[i][attr] === val) {
72
- return i
73
- }
74
- }
75
- return -1
62
+ return arrayToSearch.findIndex(function (item) {
63
+ return item[attr] === val
64
+ })
76
65
  }
77
66
 
78
67
  function compare(attr, dateType) {
@@ -1,13 +1,13 @@
1
1
  hexo.extend.filter.register('stylus:renderer', function (style) {
2
- const {config, theme} = this
2
+ const {config, theme} = this;
3
3
  const data = hexo.locals.get('data');
4
4
 
5
5
  if (theme.config.aside.tags.highlight) {
6
- let array = theme.config.aside.tags.list.map(item => encodeURIComponent(item));
6
+ const array = theme.config.aside.tags.list.map(item => encodeURIComponent(item));
7
7
  style.define('highlightTags', array);
8
8
  }
9
9
 
10
- let aside = [
10
+ const aside = [
11
11
  theme.config.aside.home.noSticky,
12
12
  theme.config.aside.home.Sticky,
13
13
  theme.config.aside.post.noSticky,
@@ -15,14 +15,29 @@ hexo.extend.filter.register('stylus:renderer', function (style) {
15
15
  theme.config.aside.page.Sticky,
16
16
  theme.config.aside.page.noSticky
17
17
  ].join(',').split(',');
18
- let uniqueArr = [...new Set(aside)]; // 去重
18
+ const uniqueArr = [...new Set(aside)];
19
19
  if (uniqueArr.length > 0) {
20
20
  style.define('aside', uniqueArr);
21
21
  }
22
22
 
23
- if (data && data.about) {
24
- style.define('about', Object.keys(data.about));
25
- } else {
26
- style.define('about', []);
23
+ style.define('about', data && data.about ? Object.keys(data.about) : []);
24
+
25
+ let group = Object.keys(theme.config.hometop.group).map(key => {
26
+ return {
27
+ [key]: (theme.config.hometop.group[key]).split('||')[2]
28
+ }
29
+ });
30
+
31
+ style.define('banner_group', group);
32
+
33
+ function getGroupColor(key) {
34
+ let color = '';
35
+ group.forEach(item => {
36
+ if (item[key]) {
37
+ color = item[key];
38
+ }
39
+ });
40
+ return color;
27
41
  }
42
+ style.define('getGroupColor', getGroupColor);
28
43
  });
@@ -0,0 +1,313 @@
1
+ @keyframes barrageIn
2
+ 0%
3
+ transform translateY(20px)
4
+ opacity 0
5
+ 100%
6
+ transform translateY(0)
7
+ opacity 1
8
+
9
+ @keyframes barrageOut
10
+ 0%
11
+ transform translateY(0)
12
+ opacity 1
13
+ 100%
14
+ transform translateY(20px)
15
+ opacity 0
16
+
17
+ @keyframes scroll-down-effect
18
+ 0%
19
+ top 0
20
+ opacity .4
21
+ 50%
22
+ top -16px
23
+ opacity 1
24
+ filter none
25
+ 100%
26
+ top 0
27
+ opacity .4
28
+
29
+ @keyframes header-effect
30
+ 0%
31
+ opacity 0
32
+ transform translateY(-50px)
33
+ 100%
34
+ opacity 1
35
+ filter none
36
+ transform translateY(0)
37
+
38
+ @keyframes headerNoOpacity
39
+ 0%
40
+ transform translateY(-50px)
41
+ 100%
42
+ transform translateY(0)
43
+
44
+ @keyframes bottom-top
45
+ 0%
46
+ opacity 0
47
+ margin-top 50px
48
+ 100%
49
+ opacity 1
50
+ filter none
51
+ margin-top 0
52
+
53
+ @keyframes titlescale
54
+ 0%
55
+ opacity 0
56
+ transform scale(.7)
57
+ 100%
58
+ opacity 1
59
+ filter none
60
+ transform scale(1)
61
+
62
+ @keyframes search_close
63
+ 0%
64
+ transform translateY(0)
65
+ opacity 1
66
+ 100%
67
+ transform translateY(20px)
68
+ opacity 0
69
+
70
+ @keyframes to_show
71
+ 0%
72
+ opacity 0
73
+ 100%
74
+ opacity 1
75
+ filter none
76
+
77
+ @keyframes to_hide
78
+ 0%
79
+ opacity 1
80
+ filter none
81
+ 100%
82
+ opacity 0
83
+
84
+ @keyframes ribbon_to_show
85
+ 0%
86
+ opacity 0
87
+ 100%
88
+ opacity .6
89
+
90
+ @keyframes avatar_turn_around
91
+ 0%
92
+ transform rotate(0)
93
+ 100%
94
+ transform rotate(360deg)
95
+
96
+ @keyframes sub_menus
97
+ 0%
98
+ opacity 0
99
+ transform translateY(10px)
100
+ 100%
101
+ opacity 1
102
+ filter none
103
+ transform translateY(0)
104
+
105
+ @keyframes donate_effcet
106
+ 0%
107
+ opacity 0
108
+ transform translateY(-20px)
109
+ 100%
110
+ opacity 1
111
+ filter none
112
+ transform translateY(0)
113
+
114
+ @keyframes announ_animation
115
+ 0%, 100%
116
+ transform scale(1)
117
+ filter blur(0)
118
+ 50%
119
+ transform scale(1.2)
120
+ filter blur(20px)
121
+
122
+ @keyframes sidebarItem
123
+ 0%
124
+ transform translateX(200px)
125
+ 100%
126
+ transform translateX(0)
127
+
128
+ @keyframes sco-spin
129
+ 0%
130
+ transform rotate(0)
131
+ 100%
132
+ transform rotate(360deg)
133
+
134
+ @keyframes code-expand-key
135
+ 0%
136
+ opacity .6
137
+ 50%
138
+ opacity .1
139
+ 100%
140
+ opacity .6
141
+
142
+ @keyframes slide-in
143
+ from
144
+ transform translateY(20px)
145
+ opacity 0
146
+ to
147
+ transform translateY(0)
148
+ opacity 1
149
+
150
+ @keyframes slide-in-op
151
+ from
152
+ opacity 0
153
+ to
154
+ opacity 1
155
+
156
+ @keyframes more-btn-move
157
+ 0%, 100%
158
+ transform translateX(0)
159
+ 50%
160
+ transform translateX(3px)
161
+
162
+ @keyframes toc-open
163
+ 0%
164
+ transform scale(.7)
165
+ 100%
166
+ transform scale(1)
167
+
168
+ @keyframes toc-close
169
+ 0%
170
+ transform scale(1)
171
+ 100%
172
+ transform scale(.7)
173
+
174
+ @keyframes configure-clockwise
175
+ 0%
176
+ transform rotate(0)
177
+ 25%
178
+ transform rotate(90deg)
179
+ 50%
180
+ transform rotate(180deg)
181
+ 75%
182
+ transform rotate(270deg)
183
+ 100%
184
+ transform rotate(360deg)
185
+
186
+ @keyframes configure-xclockwise
187
+ 0%
188
+ transform rotate(45deg)
189
+ 25%
190
+ transform rotate(-45deg)
191
+ 50%
192
+ transform rotate(-135deg)
193
+ 75%
194
+ transform rotate(-225deg)
195
+ 100%
196
+ transform rotate(-315deg)
197
+
198
+ @keyframes tabshow
199
+ 0%
200
+ transform translateY(15px)
201
+ 100%
202
+ transform translateY(0)
203
+
204
+ @keyframes snackbar-progress
205
+ from
206
+ width 0
207
+ to
208
+ width 100%
209
+
210
+ @keyframes move-forever
211
+ 0%
212
+ transform translate3d(-90px, 0, 0)
213
+ 100%
214
+ transform translate3d(85px, 0, 0)
215
+
216
+ @keyframes rowup
217
+ from
218
+ transform translateY(0)
219
+ to
220
+ transform translateY(-50%)
221
+
222
+ @keyframes rowleft
223
+ from
224
+ transform translateX(0)
225
+ to
226
+ transform translateX(-50%)
227
+
228
+ @keyframes gradient
229
+ 0%
230
+ background-position 0 50%
231
+ 50%
232
+ background-position 100% 50%
233
+ 100%
234
+ background-position 0 50%
235
+
236
+ @keyframes commonTipsIn
237
+ 0%
238
+ top -50px
239
+ opacity 0
240
+ 100%
241
+ top -60px
242
+ opacity 1
243
+
244
+ @keyframes commonTriangleIn
245
+ 0%
246
+ transform translate(-50%, -36px)
247
+ opacity 0
248
+ 100%
249
+ transform translate(-50%, -46px)
250
+ opacity 1
251
+
252
+ @keyframes owoIn
253
+ 0%
254
+ transform translate(0, -95%)
255
+ opacity 0
256
+ 100%
257
+ transform translate(0, -105%)
258
+ opacity 1
259
+
260
+ @keyframes light_tag
261
+ 0%
262
+ transform skewx(0)
263
+ -o-transform skewx(0)
264
+ -moz-transform skewx(0)
265
+ -webkit-transform skewx(0)
266
+ left -150px
267
+ 99%
268
+ transform skewx(-25deg)
269
+ -o-transform skewx(-25deg)
270
+ -moz-transform skewx(-25deg)
271
+ -webkit-transform skewx(-25deg)
272
+ left 50px
273
+
274
+ @keyframes floating
275
+ 0%
276
+ transform translate(0, -4px)
277
+ 50%
278
+ transform translate(0, 4px)
279
+ 100%
280
+ transform translate(0, -4px)
281
+
282
+ @media screen and (min-width: 768px)
283
+ @keyframes showCover
284
+ from
285
+ opacity 0
286
+ transform rotate(10deg) translateY(-8%) scale(1.8)
287
+ to
288
+ opacity 0.5
289
+ transform rotate(10deg) translateY(-10%) scale(2)
290
+
291
+ @keyframes blinking-cursor
292
+ 0%
293
+ transform scale(.6)
294
+ 25%
295
+ transform scale(1)
296
+ 50%
297
+ transform scale(.6)
298
+ 75%
299
+ transform scale(1)
300
+ 100%
301
+ transform scale(.6)
302
+
303
+ @keyframes AILoading
304
+ 0%
305
+ opacity 1
306
+ 25%
307
+ opacity .3
308
+ 50%
309
+ opacity 1
310
+ 75%
311
+ opacity .3
312
+ 100%
313
+ opacity 1
@@ -296,4 +296,13 @@ b, strong
296
296
  .button--animated
297
297
  border-radius 8px
298
298
  transition .3s
299
- position relative
299
+ position relative
300
+
301
+ if hexo-config('fancybox')
302
+ a.fancybox
303
+ border-bottom 0
304
+ padding 0
305
+ margin auto
306
+ display contents
307
+ width fit-content
308
+ user-select none
@@ -97,7 +97,7 @@
97
97
  transition 0.3s
98
98
  display flex
99
99
  justify-content center
100
- -webkit-user-select none
100
+ user-select none
101
101
 
102
102
  +maxWidth768()
103
103
  background linear-gradient(to top, var(--sco-main-none) 0, var(--sco-main) 100%)
@@ -558,7 +558,7 @@
558
558
  font-size .78em
559
559
  cursor pointer
560
560
 
561
- if hexo-config('nav.left.enable')
561
+ if hexo-config('nav.group')
562
562
  .back-home-button
563
563
  &:hover
564
564
  +minWidth900()
@@ -658,7 +658,7 @@
658
658
  transition .3s
659
659
  white-space nowrap
660
660
 
661
- if hexo-config('nav.left.enable')
661
+ if hexo-config('nav.group')
662
662
  .back-home-button
663
663
  display flex
664
664
  width 35px
@@ -749,7 +749,7 @@ if hexo-config('nav.left.enable')
749
749
  +minWidth900()
750
750
  background var(--sco-lighttext)
751
751
 
752
- if hexo-config('nav.left.enable')
752
+ if hexo-config('nav.group')
753
753
  .back-home-button
754
754
  color var(--sco-fontcolor)
755
755
 
@@ -767,7 +767,7 @@ if hexo-config('nav.left.enable')
767
767
  background-color var(--sco-main)
768
768
 
769
769
  .post
770
- if hexo-config('nav.left.enable')
770
+ if hexo-config('nav.group')
771
771
  .back-home-button
772
772
  color var(--sco-white)
773
773
 
@@ -30,7 +30,6 @@
30
30
  align-self flex-start
31
31
  animation slide-in .6s .1s backwards
32
32
  position relative
33
- overflow hidden
34
33
 
35
34
  +maxWidth768()
36
35
  box-shadow none
@@ -16,7 +16,7 @@
16
16
  margin-top 20px
17
17
  display flex
18
18
  flex-wrap nowrap
19
- animation rowup 60s linear infinite
19
+ animation rowleft 60s linear infinite
20
20
 
21
21
  .skills-style-group
22
22
  position relative