hexo-theme-shokax 0.2.7 → 0.2.8

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/CONTRIBUTING.md CHANGED
@@ -14,14 +14,10 @@
14
14
  1. 您同意我们在未来进行授权许可更改时包含您所贡献的代码
15
15
  2. 您有对于 shokaX 所使用的相关技术和 github PR 及 actions 的基础了解
16
16
 
17
- 对于代码修改的说明:
18
- 1. `page js` 仅需要修改ts文件,`hexo script` 请修改js文件
19
-
20
17
  有关提交的说明:
21
18
  1. 您在提交时的`commit message`应描述其改动
22
19
  2. 如果您提交的代码中包括图片资源,建议使用`webp`或`avif`格式
23
- 3. 由于 Copilot 所生成的代码可能存在版权问题,如果您使用了 Copilot,请在 PR 正文中说明
24
- 4. 条件允许的情况下代码应当附有注释以便维护
20
+ 3. 条件允许的情况下代码应当附有注释以便维护
25
21
 
26
22
  有关审查(Review)的说明:
27
23
  1. 您在 PR 时应打开允许维护者修改 PR,以便我们进行修改
package/_config.yml CHANGED
@@ -74,6 +74,13 @@ loader:
74
74
  start: true # 进入页面时显示加载动画
75
75
  switch: false # 切换页面时显示加载动画
76
76
 
77
+ # 使用polyfill.io自动处理浏览器兼容问题
78
+ polyfill:
79
+ enable: true
80
+ features:
81
+ - default
82
+ - fetch
83
+
77
84
  # 显示的动画(烟花)
78
85
  fireworks:
79
86
  enable: true
@@ -108,7 +108,9 @@ html(lang=page.language?page.language:config.language, style=theme.grayMode ? 'f
108
108
  ]
109
109
  };
110
110
 
111
- script(src="https://polyfill.alicdn.com/polyfill.min.js")
111
+ if theme.polyfill.enable
112
+ script(src=`https://polyfill.io/v3/polyfill.min.js?features=${theme.polyfill.features}`)
113
+
112
114
  if theme.advVendors.enable
113
115
  each i in _list_vendor_js()
114
116
  != _adv_vendor_js(i)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hexo-theme-shokax",
3
- "version": "0.2.7",
3
+ "version": "0.2.8",
4
4
  "description": "a hexo theme based on shoka",
5
5
  "main": "index.js",
6
6
  "repository": "https://github.com/theme-shoka-x/hexo-theme-shokaX",
@@ -34,7 +34,6 @@ hexo.extend.generator.register('script', function (locals) {
34
34
  },
35
35
  loader: theme.loader,
36
36
  search: null,
37
- valine: theme.valine,
38
37
  outime: {
39
38
  enable: theme.outime.enable,
40
39
  days: theme.outime.days
@@ -156,8 +156,6 @@ const sidebarTOC = function () {
156
156
  return sections.indexOf(entry.target);
157
157
  };
158
158
  const createIntersectionObserver = function () {
159
- if (!window.IntersectionObserver)
160
- return;
161
159
  const observer = new IntersectionObserver(function (entries, observe) {
162
160
  const index = findIndex(entries) + (diffY < 0 ? 1 : 0);
163
161
  if (activeLock === null) {
@@ -325,8 +325,6 @@ const postBeauty = function () {
325
325
  });
326
326
  const angleDown = document.querySelectorAll('.show-btn .i-angle-down');
327
327
  if (angleDown.length) {
328
- if (!window.IntersectionObserver)
329
- return;
330
328
  const io = new IntersectionObserver((entries) => {
331
329
  entries.forEach(entry => {
332
330
  if (entry.isIntersecting) {
@@ -408,20 +406,15 @@ const loadComments = function () {
408
406
  else {
409
407
  goToComment.display('');
410
408
  }
411
- if (!window.IntersectionObserver) {
409
+ const io = new IntersectionObserver(function (entries, observer) {
410
+ const entry = entries[0];
412
411
  vendorCss('valine');
413
- }
414
- else {
415
- const io = new IntersectionObserver(function (entries, observer) {
416
- const entry = entries[0];
417
- vendorCss('valine');
418
- if (entry.isIntersecting || entry.intersectionRatio > 0) {
419
- transition($dom('#comments'), 'bounceUpIn');
420
- observer.disconnect();
421
- }
422
- });
423
- io.observe(element);
424
- }
412
+ if (entry.isIntersecting || entry.intersectionRatio > 0) {
413
+ transition($dom('#comments'), 'bounceUpIn');
414
+ observer.disconnect();
415
+ }
416
+ });
417
+ io.observe(element);
425
418
  };
426
419
  const algoliaSearch = function (pjax) {
427
420
  if (CONFIG.search === null) {
@@ -563,8 +556,6 @@ const domInit = function () {
563
556
  });
564
557
  }
565
558
  const createIntersectionObserver = function () {
566
- if (!window.IntersectionObserver)
567
- return;
568
559
  new IntersectionObserver(([entry]) => {
569
560
  if (entry.isIntersecting) {
570
561
  document.querySelectorAll('.parallax>use').forEach(i => {
@@ -1,548 +0,0 @@
1
- .v {
2
- &.wrap {
3
- animation: none;
4
- opacity: 0;
5
- }
6
-
7
- .lozaded {
8
- animation: none;
9
- }
10
-
11
- input,
12
- textarea {
13
- border: none;
14
- outline: none;
15
- background: transparent;
16
- font-size: $font-size-smallest;
17
- transition: all .25s ease;
18
- }
19
-
20
- a {
21
- color: var(--color-aqua);
22
-
23
- &:hover {
24
- color: var(--primary-color);
25
- }
26
- }
27
-
28
- .text-center {
29
- text-align: center;
30
- }
31
-
32
- .text-right {
33
- text-align: right;
34
- }
35
-
36
- .float-right {
37
- float: right !important;
38
- }
39
-
40
- .pd5 {
41
- padding: 5px;
42
- }
43
-
44
- .pd10 {
45
- padding: 10px;
46
- }
47
-
48
- .vemoji, .emoji, .tk-owo-emotion {
49
- max-height: 1.5rem;
50
- display: inline;
51
- vertical-align: middle;
52
- }
53
-
54
- .submitting {
55
- margin: 1em 0;
56
- }
57
-
58
- .form {
59
- shadow-box();
60
- margin-bottom: .625rem;
61
- position: relative;
62
- padding: .625rem;
63
-
64
- >.inner {
65
- .auth-section {
66
- display: flex;
67
- padding: .3em .6em;
68
- }
69
-
70
- +mobile-small() {
71
- flex-wrap: wrap;
72
- }
73
-
74
- .input {
75
- flex: 1 1 27%;
76
- width: 27%;
77
-
78
- +mobile-small() {
79
- flex: 1 1 100%;
80
- padding-right: 0;
81
- width: 100%;
82
- }
83
-
84
- input {
85
- padding: .625rem .3125rem;
86
- width: 100%;
87
- border-bottom: .0625rem dashed var(--grey-4);
88
-
89
- &:focus {
90
- border-bottom-color: var(--primary-color);
91
- }
92
- }
93
- }
94
-
95
- .textarea {
96
- padding: .3em .6em;
97
- }
98
-
99
- .veditor {
100
- width: 100%;
101
- min-height: 8.75em;
102
- font-size: $font-size-small;
103
- line-height: 1.75;
104
- resize: vertical;
105
- }
106
-
107
- .btn-group {
108
- padding: .625rem 0;
109
- display: flex;
110
-
111
- .i-markdown {
112
- font-size: $font-size-smallest;
113
- }
114
-
115
- .left {
116
- width: 30%;
117
- }
118
-
119
- .right {
120
- width: 70%;
121
- text-align: right;
122
- }
123
- }
124
-
125
- .vextra-area {
126
- margin: .4em 0 .4em .5em;
127
- }
128
-
129
-
130
- .preview-box {
131
- padding: .4375rem 1.25rem;
132
- font-size: $font-size-smaller;
133
- shadow-box();
134
- }
135
-
136
- .trigger-section {
137
- display: none;
138
- }
139
- }
140
-
141
- .smile-body {
142
-
143
- img {
144
- display: inline-block;
145
- width: auto;
146
- height: 3rem;
147
- cursor: pointer;
148
- padding: .5rem;
149
- border-radius: .25rem;
150
- transition: box-shadow .2s ease-out, background .2s ease-out;
151
- }
152
-
153
- li.active img, img:hover {
154
- background: var(--grey-2);
155
- box-shadow: 1px 1px 2px var(--grey-1), -1px -1px 2px var(--grey-4), inset 8px 8px 16px var(--grey-1), inset -8px -8px 16px var(--grey-3);
156
- }
157
-
158
- .smile-icons {
159
- border-radius: .5rem;
160
- margin: .3rem 0;
161
- min-height: 10rem;
162
- max-height: 10rem;
163
- overflow: auto;
164
- background: var(--grey-2);
165
- padding: .5rem;
166
- }
167
-
168
- .smile-bar {
169
- li {
170
- display: inline-block;
171
- margin-right: .25rem;
172
- }
173
-
174
- img {
175
- width: 2.8rem;
176
- height: 2.8rem;
177
- background: var(--grey-2);
178
- object-fit: contain;
179
- }
180
- }
181
- }
182
-
183
- .btn {
184
- cursor: pointer;
185
- display: inline-block;
186
- margin: .5rem;
187
- overflow: hidden;
188
- vertical-align: middle;
189
-
190
- &.actived .ic {
191
- color: var(--primary-color);
192
- }
193
-
194
- .ic {
195
- color: var(--grey-6);
196
- transition: all .25s ease;
197
-
198
- &:hover {
199
- color: var(--color-blue);
200
- }
201
- }
202
- }
203
-
204
- .cancel-reply {
205
- position: absolute;
206
- right: 0;
207
- top: 0;
208
- z-index: 1;
209
- }
210
-
211
- .vsubmit {
212
- font-size: $font-size-small;
213
- }
214
- }
215
-
216
- .msg {
217
- position: absolute;
218
- background: var(--grey-1-a5);
219
- width: 100%;
220
- height: 100%;
221
- left: 0;
222
- top: 0;
223
-
224
- .alert {
225
- padding: 3em 0 0 0;
226
-
227
- .text {
228
- color: var(--grey-8);
229
- padding: 15px;
230
- }
231
- }
232
-
233
- +mobile() {
234
- .alert {
235
- padding: 8em 0;
236
-
237
- .text {
238
- padding: 10px;
239
- }
240
- }
241
- }
242
- }
243
-
244
- .info {
245
- padding: .3125rem;
246
- font-weight: 600;
247
- font-size: $font-size-larger;
248
-
249
- .col {
250
- display: inline-block;
251
- padding: 0 20px;
252
- position: relative;
253
- background: transparent;
254
- z-index: 2;
255
-
256
- .count {
257
- font-size: 1.375rem;
258
- font-weight: inherit;
259
- }
260
- }
261
- }
262
-
263
-
264
-
265
- .next {
266
- .more {
267
- cursor: pointer;
268
- margin: 1em 0;
269
- }
270
- }
271
-
272
- .list {
273
- width: 100%;
274
- }
275
- .item {
276
- word-break: break-all;
277
- padding-top: 1.25em;
278
-
279
- .avatar {
280
- width: 3.125em;
281
- height: 3.125em;
282
- float: left;
283
- border-radius: 50%;
284
- margin-right: .7525em;
285
- border: .0625rem solid var(--grey-3);
286
- padding: .125em
287
- }
288
-
289
- &:hover .avatar {
290
- animation: .8s ease-out 0s 1 normal both running shake;
291
- }
292
-
293
- .main {
294
- overflow: hidden;
295
- padding-bottom: .5em;
296
- border-bottom: .0625rem dashed var(--grey-3);
297
- }
298
-
299
- .head, .meta {
300
- color: var(--grey-5);
301
- line-height: 1.8;
302
- }
303
-
304
- .name {
305
- margin-right: .875rem;
306
- }
307
-
308
- .tag, .system, .time {
309
- display: inline-block;
310
- font-size: $font-size-smallest;
311
- }
312
-
313
- +mobile-small() {
314
- .system span {
315
- display: none;
316
- }
317
- }
318
- .tag {
319
- border-radius: .125rem;
320
- color: var(--grey-1);
321
- padding: 0 .3125rem;
322
- margin-right: .5rem;
323
- background-color: var(--color-grey);
324
-
325
- $tagcolor = hexo-config('valine.tagColor');
326
-
327
- for type in $tagcolor {
328
- &.{slice(type, 0, 1)} {
329
- background-color: unquote(slice(type, 1));
330
- }
331
- }
332
- }
333
-
334
- .at {
335
- color: var(--primary-color);
336
-
337
- &:hover {
338
- color: var(--color-aqua);
339
- }
340
- }
341
-
342
- .meta {
343
- line-height: 1;
344
- .at {
345
- float: right;
346
- }
347
- }
348
-
349
- .content {
350
- margin-bottom: .75em;
351
- padding: .625em;
352
-
353
- > .inner {
354
- font-size: $font-size-small;
355
- word-wrap: break-word;
356
- word-break: break-all;
357
- line-height: 2;
358
- position: relative;
359
-
360
- &.expand {
361
- cursor: pointer;
362
- max-height: 8em;
363
-
364
- overflow: hidden;
365
-
366
- &::before {
367
- display: block;
368
- content: "";
369
- position: absolute;
370
- width: 100%;
371
- left: 0;
372
- top: 0;
373
- bottom: 3.15em;
374
- background: linear-gradient(180deg, var(--grey-1-a0), var(--grey-1));
375
- z-index: 999;
376
- }
377
-
378
- &::after {
379
- display: block;
380
- content: attr(data-expand);
381
- text-align: center;
382
- position: absolute;
383
- width: 100%;
384
- height: 3.15em;
385
- line-height: 3.15em;
386
- left: 0;
387
- bottom: 0;
388
- z-index: 999;
389
- background: var(--grey-1);
390
- }
391
- }
392
- }
393
-
394
- .form {
395
- margin-top: 1rem;
396
- }
397
- }
398
-
399
- &:last-child .main {
400
- border-bottom: none
401
- }
402
-
403
- .children {
404
- padding-left: 1em;
405
- border-left: .0625rem dashed var(--grey-3);
406
-
407
- .avatar {
408
- width: 2.225em;
409
- height: 2.225em
410
- }
411
- }
412
- }
413
-
414
- .empty {
415
- padding: 20px;
416
- text-align: center;
417
- }
418
-
419
-
420
- /************ Loading ************/
421
- .spinner {
422
- margin: 10px auto;
423
- width: 50px;
424
- height: 30px;
425
- text-align: center;
426
- font-size: 10px;
427
- }
428
-
429
- .spinner>div {
430
- background-color: var(--primary-color);
431
- height: 100%;
432
- width: 6px;
433
- margin-right: 3px;
434
- display: inline-block;
435
- animation: sk-stretchdelay 1.2s infinite ease-in-out;
436
- }
437
-
438
- .spinner .r2 {
439
- animation-delay: -1.1s;
440
- }
441
-
442
- .spinner .r3 {
443
- animation-delay: -1s;
444
- }
445
-
446
- .spinner .r4 {
447
- animation-delay: -0.9s;
448
- }
449
-
450
- .spinner .r5 {
451
- animation-delay: -0.8s;
452
- }
453
-
454
- @keyframes sk-stretchdelay {
455
-
456
- 0%,
457
- 40%,
458
- 100% {
459
- transform: scaleY(0.4);
460
- }
461
-
462
- 20% {
463
- transform: scaleY(1);
464
- }
465
- }
466
- }
467
-
468
- .hljs-comment,
469
- .hljs-quote {
470
- color: var(--grey-5);
471
- font-style: italic;
472
- }
473
-
474
- .hljs-keyword,
475
- .hljs-selector-tag,
476
- .hljs-subst,
477
- .hljs-meta {
478
- color: var(--grey-7);
479
- font-weight: bold;
480
- }
481
-
482
- .hljs-number,
483
- .hljs-literal,
484
- .hljs-variable,
485
- .hljs-template-variable,
486
- .hljs-tag .hljs-attr {
487
- color: var(--color-green);
488
- }
489
-
490
- .hljs-string,
491
- .hljs-doctag {
492
- color: var(--color-red);
493
- }
494
-
495
- .hljs-title,
496
- .hljs-section,
497
- .hljs-selector-id {
498
- color: var(--color-pink);
499
- font-weight: bold;
500
- }
501
-
502
- .hljs-subst {
503
- font-weight: normal;
504
- }
505
-
506
- .hljs-type,
507
- .hljs-class .hljs-title {
508
- color: var(--color-grey);
509
- font-weight: bold;
510
- }
511
-
512
- .hljs-tag,
513
- .hljs-name,
514
- .hljs-attribute {
515
- color: var(--color-orange);
516
- font-weight: normal;
517
- }
518
-
519
- .hljs-regexp,
520
- .hljs-link {
521
- color: var(--color-green);
522
- }
523
-
524
- .hljs-symbol,
525
- .hljs-bullet {
526
- color: var(--color-purple);
527
- }
528
-
529
- .hljs-built_in,
530
- .hljs-builtin-name {
531
- color: var(--color-aqua);
532
- }
533
-
534
- .hljs-deletion {
535
- background: #fdd;
536
- }
537
-
538
- .hljs-addition {
539
- background: #dfd;
540
- }
541
-
542
- .hljs-emphasis {
543
- font-style: italic;
544
- }
545
-
546
- .hljs-strong {
547
- font-weight: bold;
548
- }