@mlikiowa/nanaeo 1.0.1702968276783 → 1.0.1702969117186

Sign up to get free protection for your applications and to get access to all the features.
Files changed (44) hide show
  1. package/2022/08/04/NewBlog/index.html +1 -3473
  2. package/2022/08/13/GaussWave/index.html +1 -3407
  3. package/about/index.html +1 -3236
  4. package/archives/2022/08/index.html +1 -3411
  5. package/archives/2022/index.html +1 -3411
  6. package/archives/index.html +1 -3308
  7. package/categories/DevLog/index.html +1 -3351
  8. package/categories/SiteLog/index.html +1 -3351
  9. package/categories/index.html +1 -3174
  10. package/content.json +1 -1
  11. package/css/Readme.html +1 -9
  12. package/css/first.css +2 -1504
  13. package/css/style.css +2 -7106
  14. package/friends/index.html +1 -3661
  15. package/index.html +1 -3421
  16. package/js/app.js +2 -1223
  17. package/js/plugins/aplayer.js +2 -186
  18. package/js/plugins/parallax.js +2 -191
  19. package/js/plugins/rightMenu.js +2 -577
  20. package/js/plugins/rightMenus.js +2 -618
  21. package/js/plugins/tags/contributors.js +2 -92
  22. package/js/plugins/tags/friends.js +2 -93
  23. package/js/plugins/tags/sites.js +2 -96
  24. package/js/search/hexo.js +2 -192
  25. package/maps/css/first.css.map +1 -0
  26. package/maps/css/style.css.map +1 -0
  27. package/maps/js/app.js.map +1 -0
  28. package/maps/js/plugins/aplayer.js.map +1 -0
  29. package/maps/js/plugins/parallax.js.map +1 -0
  30. package/maps/js/plugins/rightMenu.js.map +1 -0
  31. package/maps/js/plugins/rightMenus.js.map +1 -0
  32. package/maps/js/plugins/tags/contributors.js.map +1 -0
  33. package/maps/js/plugins/tags/friends.js.map +1 -0
  34. package/maps/js/plugins/tags/sites.js.map +1 -0
  35. package/maps/js/search/hexo.js.map +1 -0
  36. package/maps/volantis-sw.js.map +1 -0
  37. package/package.json +1 -1
  38. package/tags/DevLog/index.html +1 -3351
  39. package/tags/Gauss/index.html +1 -3351
  40. package/tags/Hexo/index.html +1 -3351
  41. package/tags/HexoThemes/index.html +1 -3351
  42. package/tags/SiteLog/index.html +1 -3351
  43. package/tags/index.html +1 -3159
  44. package/volantis-sw.js +2 -797
@@ -1,3411 +1 @@
1
- <!DOCTYPE html>
2
- <html lang="zh-CN,en,default">
3
- <head hexo-theme='https://github.com/volantis-x/hexo-theme-volantis/#5.8.0'>
4
- <meta name="generator" content="Hexo 6.3.0">
5
- <meta name="Volantis" content="5.8.0">
6
- <meta charset="utf-8">
7
- <!-- SEO相关 -->
8
- <meta name="robots" content="noindex,follow">
9
- <link rel="canonical" href="https://nanaeo.cn/archives/2022/"/>
10
- <!-- 渲染优化 -->
11
- <meta http-equiv='x-dns-prefetch-control' content='on' />
12
- <link rel='dns-prefetch' href='https://unpkg.com'>
13
- <link rel="preconnect" href="https://unpkg.com" crossorigin>
14
- <meta name="renderer" content="webkit">
15
- <meta name="force-rendering" content="webkit">
16
- <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
17
- <meta http-equiv="Content-Security-Policy" content=" default-src 'self' https:; block-all-mixed-content; base-uri 'self' https:; form-action 'self' https:; worker-src 'self' https:; connect-src 'self' https: *; img-src 'self' data: https: *; media-src 'self' https: *; font-src 'self' data: https: *; frame-src 'self' https: *; manifest-src 'self' https: *; child-src https:; script-src 'self' https: 'unsafe-inline' *; style-src 'self' https: 'unsafe-inline' *; ">
18
- <meta name="HandheldFriendly" content="True" >
19
- <meta name="apple-mobile-web-app-capable" content="yes">
20
- <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=5">
21
- <meta content="black-translucent" name="apple-mobile-web-app-status-bar-style">
22
- <meta content="telephone=no" name="format-detection">
23
- <!-- import head_begin begin -->
24
- <!-- import head_begin end -->
25
- <!-- Custom Files headBegin begin-->
26
-
27
- <!-- Custom Files headBegin end-->
28
- <!-- front-matter head_begin begin -->
29
- <!-- front-matter head_begin end -->
30
- <link rel="preload" href="/css/style.css" as="style">
31
- <link rel="preload" href="https://nanaeo.cn/asset/Sotheby.ttf" as="font" type="font/ttf" crossorigin="anonymous">
32
- <link rel="preload" href="https://fastly.jsdelivr.net/gh/moieo/moieo@main/moieo.woff2" as="font" type="font/woff2" crossorigin="anonymous">
33
-
34
- <!-- feed -->
35
- <!-- 页面元数据 -->
36
- <title>归档:2022 - Village</title>
37
- <meta name="keywords" content="null">
38
- <meta desc name="description" content="It is a little blog~ - Mlikiowa - Village">
39
-
40
- <meta property="og:type" content="website">
41
- <meta property="og:title" content="Village">
42
- <meta property="og:url" content="https://nanaeo.cn/archives/2022/index.html">
43
- <meta property="og:site_name" content="Village">
44
- <meta property="og:description" content="It is a little blog~">
45
- <meta property="og:locale" content="zh_CN">
46
- <meta property="og:image" content="https://fastly.jsdelivr.net/npm/volantis-static/media/org.volantis/blog/favicon/android-chrome-192x192.png">
47
- <meta property="article:author" content="Mlikiowa">
48
- <meta name="twitter:card" content="summary">
49
- <meta name="twitter:image" content="https://fastly.jsdelivr.net/npm/volantis-static/media/org.volantis/blog/favicon/android-chrome-192x192.png">
50
- <style>
51
- /* 首屏样式 */
52
- #safearea {
53
- display: none;
54
- }
55
- .post-story + .post-story {
56
- content-visibility: auto;
57
- contain-intrinsic-size: 10px 500px;
58
- }
59
- :root {
60
- --color-site-body: #e0eeee;
61
- --color-site-bg: #e0eeee;
62
- --color-site-inner: #fff;
63
- --color-site-footer: #666;
64
- --color-card: #fff0f5;
65
- --color-text: #eea9b8;
66
- --color-block: #f6f6f6;
67
- --color-inlinecode: #ec7bb6;
68
- --color-codeblock: #e0eeee;
69
- --color-h1: #3a3a3a;
70
- --color-h2: #3a3a3a;
71
- --color-h3: #23464f;
72
- --color-h4: #23464f;
73
- --color-h5: #23464f;
74
- --color-h6: #23464f;
75
- --color-p: #23464f;
76
- --color-list: #eea9b8;
77
- --color-list-hl: #f7cdd4;
78
- --color-meta: #888;
79
- --color-read-bkg: #e0d8c8;
80
- --color-read-post: #f8f1e2;
81
- --color-copyright-bkg: #f5f5f5;
82
- }
83
- * {
84
- box-sizing: border-box;
85
- -webkit-box-sizing: border-box;
86
- -moz-box-sizing: border-box;
87
- outline: none;
88
- margin: 0;
89
- padding: 0;
90
- }
91
- *::-webkit-scrollbar {
92
- height: 4px;
93
- width: 4px;
94
- }
95
- *::-webkit-scrollbar-track-piece {
96
- background: transparent;
97
- }
98
- *::-webkit-scrollbar-thumb {
99
- background: #fcc;
100
- cursor: pointer;
101
- border-radius: 2px;
102
- -webkit-border-radius: 2px;
103
- }
104
- *::-webkit-scrollbar-thumb:hover {
105
- background: #ff5722;
106
- }
107
- html {
108
- color: var(--color-text);
109
- width: 100%;
110
- height: 100%;
111
- font-family: Dosis, "PingFang SC", "Microsoft YaHei", Helvetica, Arial, Menlo, Monaco, monospace, sans-serif;
112
- font-size: 16px;
113
- }
114
- html >::-webkit-scrollbar {
115
- height: 4px;
116
- width: 4px;
117
- }
118
- html >::-webkit-scrollbar-track-piece {
119
- background: transparent;
120
- }
121
- html >::-webkit-scrollbar-thumb {
122
- background: #54b5a0 linear-gradient(45deg, rgba(255,255,255,0.4) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.4) 50%, rgba(255,255,255,0.4) 75%, transparent 75%, transparent);
123
- cursor: pointer;
124
- border-radius: 2px;
125
- -webkit-border-radius: 2px;
126
- }
127
- html >::-webkit-scrollbar-thumb:hover {
128
- background: #54b5a0 linear-gradient(45deg, rgba(255,255,255,0.4) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.4) 50%, rgba(255,255,255,0.4) 75%, transparent 75%, transparent);
129
- }
130
- body {
131
- background-color: var(--color-site-body);
132
- text-rendering: optimizelegibility;
133
- -webkit-tap-highlight-color: rgba(0,0,0,0);
134
- line-height: 1.6;
135
- -webkit-text-size-adjust: 100%;
136
- -ms-text-size-adjust: 100%;
137
- }
138
- body.modal-active {
139
- overflow: hidden;
140
- }
141
- @media screen and (max-width: 680px) {
142
- body.modal-active {
143
- position: fixed;
144
- top: 0;
145
- right: 0;
146
- bottom: 0;
147
- left: 0;
148
- }
149
- }
150
- a {
151
- color: #ec7bb6;
152
- cursor: pointer;
153
- text-decoration: none;
154
- transition: all 0.28s ease;
155
- -webkit-transition: all 0.28s ease;
156
- -khtml-transition: all 0.28s ease;
157
- -moz-transition: all 0.28s ease;
158
- -o-transition: all 0.28s ease;
159
- -ms-transition: all 0.28s ease;
160
- }
161
- a:hover {
162
- color: #ff5722;
163
- }
164
- a:active,
165
- a:hover {
166
- outline: 0;
167
- }
168
- ul,
169
- ol {
170
- padding-left: 0;
171
- }
172
- ul li,
173
- ol li {
174
- list-style: none;
175
- }
176
- header {
177
- display: -webkit-box /* OLD - iOS 6-, Safari 3.1-6 */;
178
- display: -moz-box /* OLD - Firefox 19- (buggy but mostly works) */;
179
- display: block;
180
- }
181
- img {
182
- border: 0;
183
- background: none;
184
- max-width: 100%;
185
- }
186
- svg:not(:root) {
187
- overflow: hidden;
188
- }
189
- hr {
190
- -moz-box-sizing: content-box;
191
- box-sizing: content-box;
192
- -webkit-box-sizing: content-box;
193
- -moz-box-sizing: content-box;
194
- height: 0;
195
- border: 0;
196
- border-radius: 1px;
197
- -webkit-border-radius: 1px;
198
- border-bottom: 1px solid rgba(238,169,184,0.1);
199
- }
200
- button,
201
- input {
202
- color: inherit;
203
- font: inherit;
204
- margin: 0;
205
- }
206
- button {
207
- overflow: visible;
208
- text-transform: none;
209
- -webkit-appearance: button;
210
- cursor: pointer;
211
- }
212
- @supports (backdrop-filter: blur(20px)) {
213
- .blur {
214
- background: rgba(255,240,245,0.9) !important;
215
- backdrop-filter: saturate(200%) blur(20px);
216
- }
217
- }
218
- .shadow {
219
- box-shadow: 0 1px 2px 0px rgba(0,0,0,0.1);
220
- -webkit-box-shadow: 0 1px 2px 0px rgba(0,0,0,0.1);
221
- }
222
- .shadow.floatable {
223
- transition: all 0.28s ease;
224
- -webkit-transition: all 0.28s ease;
225
- -khtml-transition: all 0.28s ease;
226
- -moz-transition: all 0.28s ease;
227
- -o-transition: all 0.28s ease;
228
- -ms-transition: all 0.28s ease;
229
- }
230
- .shadow.floatable:hover {
231
- box-shadow: 0 2px 4px 0px rgba(0,0,0,0.1), 0 4px 8px 0px rgba(0,0,0,0.1), 0 8px 16px 0px rgba(0,0,0,0.1);
232
- -webkit-box-shadow: 0 2px 4px 0px rgba(0,0,0,0.1), 0 4px 8px 0px rgba(0,0,0,0.1), 0 8px 16px 0px rgba(0,0,0,0.1);
233
- }
234
- #l_cover {
235
- min-height: 64px;
236
- }
237
- .cover-wrapper {
238
- top: 0;
239
- left: 0;
240
- max-width: 100%;
241
- height: 100vh;
242
- display: -webkit-box /* OLD - iOS 6-, Safari 3.1-6 */;
243
- display: -moz-box /* OLD - Firefox 19- (buggy but mostly works) */;
244
- display: -ms-flexbox /* TWEENER - IE 10 */;
245
- display: -webkit-flex /* NEW - Chrome */;
246
- display: flex /* NEW, Spec - Opera 12.1, Firefox 20+ */;
247
- display: flex;
248
- flex-wrap: nowrap;
249
- -webkit-flex-wrap: nowrap;
250
- -khtml-flex-wrap: nowrap;
251
- -moz-flex-wrap: nowrap;
252
- -o-flex-wrap: nowrap;
253
- -ms-flex-wrap: nowrap;
254
- -webkit-box-direction: normal;
255
- -moz-box-direction: normal;
256
- -webkit-box-orient: vertical;
257
- -moz-box-orient: vertical;
258
- -webkit-flex-direction: column;
259
- -ms-flex-direction: column;
260
- flex-direction: column;
261
- align-items: center;
262
- align-self: center;
263
- align-content: center;
264
- color: var(--color-site-inner);
265
- padding: 0 16px;
266
- user-select: none;
267
- -webkit-user-select: none;
268
- -moz-user-select: none;
269
- -ms-user-select: none;
270
- position: relative;
271
- overflow: hidden;
272
- margin-bottom: -100px;
273
- }
274
- .cover-wrapper .cover-bg {
275
- position: absolute;
276
- width: 100%;
277
- height: 100%;
278
- background-position: center;
279
- background-size: cover;
280
- -webkit-background-size: cover;
281
- -moz-background-size: cover;
282
- }
283
- .cover-wrapper .cover-bg.lazyload:not(.loaded) {
284
- opacity: 0;
285
- -webkit-opacity: 0;
286
- -moz-opacity: 0;
287
- }
288
- .cover-wrapper .cover-bg.lazyload.loaded {
289
- animation-delay: 0s;
290
- animation-duration: 0.5s;
291
- animation-fill-mode: forwards;
292
- animation-timing-function: ease-out;
293
- animation-name: fadeIn;
294
- }
295
- @-moz-keyframes fadeIn {
296
- 0% {
297
- opacity: 0;
298
- -webkit-opacity: 0;
299
- -moz-opacity: 0;
300
- filter: blur(12px);
301
- transform: scale(1.02);
302
- -webkit-transform: scale(1.02);
303
- -khtml-transform: scale(1.02);
304
- -moz-transform: scale(1.02);
305
- -o-transform: scale(1.02);
306
- -ms-transform: scale(1.02);
307
- }
308
- 100% {
309
- opacity: 1;
310
- -webkit-opacity: 1;
311
- -moz-opacity: 1;
312
- }
313
- }
314
- @-webkit-keyframes fadeIn {
315
- 0% {
316
- opacity: 0;
317
- -webkit-opacity: 0;
318
- -moz-opacity: 0;
319
- filter: blur(12px);
320
- transform: scale(1.02);
321
- -webkit-transform: scale(1.02);
322
- -khtml-transform: scale(1.02);
323
- -moz-transform: scale(1.02);
324
- -o-transform: scale(1.02);
325
- -ms-transform: scale(1.02);
326
- }
327
- 100% {
328
- opacity: 1;
329
- -webkit-opacity: 1;
330
- -moz-opacity: 1;
331
- }
332
- }
333
- @-o-keyframes fadeIn {
334
- 0% {
335
- opacity: 0;
336
- -webkit-opacity: 0;
337
- -moz-opacity: 0;
338
- filter: blur(12px);
339
- transform: scale(1.02);
340
- -webkit-transform: scale(1.02);
341
- -khtml-transform: scale(1.02);
342
- -moz-transform: scale(1.02);
343
- -o-transform: scale(1.02);
344
- -ms-transform: scale(1.02);
345
- }
346
- 100% {
347
- opacity: 1;
348
- -webkit-opacity: 1;
349
- -moz-opacity: 1;
350
- }
351
- }
352
- @keyframes fadeIn {
353
- 0% {
354
- opacity: 0;
355
- -webkit-opacity: 0;
356
- -moz-opacity: 0;
357
- filter: blur(12px);
358
- transform: scale(1.02);
359
- -webkit-transform: scale(1.02);
360
- -khtml-transform: scale(1.02);
361
- -moz-transform: scale(1.02);
362
- -o-transform: scale(1.02);
363
- -ms-transform: scale(1.02);
364
- }
365
- 100% {
366
- opacity: 1;
367
- -webkit-opacity: 1;
368
- -moz-opacity: 1;
369
- }
370
- }
371
- .cover-wrapper .cover-body {
372
- z-index: 1;
373
- position: relative;
374
- width: 100%;
375
- height: 100%;
376
- }
377
- .cover-wrapper#full {
378
- height: calc(100vh + 100px);
379
- padding-bottom: 100px;
380
- }
381
- .cover-wrapper#half {
382
- max-height: 640px;
383
- min-height: 400px;
384
- height: calc(36vh - 64px + 200px);
385
- }
386
- .cover-wrapper #scroll-down {
387
- width: 100%;
388
- height: 64px;
389
- position: absolute;
390
- bottom: 100px;
391
- text-align: center;
392
- cursor: pointer;
393
- }
394
- .cover-wrapper #scroll-down .scroll-down-effects {
395
- color: #fff;
396
- font-size: 24px;
397
- line-height: 64px;
398
- position: absolute;
399
- width: 24px;
400
- left: calc(50% - 12px);
401
- text-shadow: 0 1px 2px rgba(0,0,0,0.1);
402
- animation: scroll-down-effect 1.5s infinite;
403
- -webkit-animation: scroll-down-effect 1.5s infinite;
404
- -khtml-animation: scroll-down-effect 1.5s infinite;
405
- -moz-animation: scroll-down-effect 1.5s infinite;
406
- -o-animation: scroll-down-effect 1.5s infinite;
407
- -ms-animation: scroll-down-effect 1.5s infinite;
408
- }
409
- @-moz-keyframes scroll-down-effect {
410
- 0% {
411
- top: 0;
412
- opacity: 1;
413
- -webkit-opacity: 1;
414
- -moz-opacity: 1;
415
- }
416
- 50% {
417
- top: -16px;
418
- opacity: 0.4;
419
- -webkit-opacity: 0.4;
420
- -moz-opacity: 0.4;
421
- }
422
- 100% {
423
- top: 0;
424
- opacity: 1;
425
- -webkit-opacity: 1;
426
- -moz-opacity: 1;
427
- }
428
- }
429
- @-webkit-keyframes scroll-down-effect {
430
- 0% {
431
- top: 0;
432
- opacity: 1;
433
- -webkit-opacity: 1;
434
- -moz-opacity: 1;
435
- }
436
- 50% {
437
- top: -16px;
438
- opacity: 0.4;
439
- -webkit-opacity: 0.4;
440
- -moz-opacity: 0.4;
441
- }
442
- 100% {
443
- top: 0;
444
- opacity: 1;
445
- -webkit-opacity: 1;
446
- -moz-opacity: 1;
447
- }
448
- }
449
- @-o-keyframes scroll-down-effect {
450
- 0% {
451
- top: 0;
452
- opacity: 1;
453
- -webkit-opacity: 1;
454
- -moz-opacity: 1;
455
- }
456
- 50% {
457
- top: -16px;
458
- opacity: 0.4;
459
- -webkit-opacity: 0.4;
460
- -moz-opacity: 0.4;
461
- }
462
- 100% {
463
- top: 0;
464
- opacity: 1;
465
- -webkit-opacity: 1;
466
- -moz-opacity: 1;
467
- }
468
- }
469
- @keyframes scroll-down-effect {
470
- 0% {
471
- top: 0;
472
- opacity: 1;
473
- -webkit-opacity: 1;
474
- -moz-opacity: 1;
475
- }
476
- 50% {
477
- top: -16px;
478
- opacity: 0.4;
479
- -webkit-opacity: 0.4;
480
- -moz-opacity: 0.4;
481
- }
482
- 100% {
483
- top: 0;
484
- opacity: 1;
485
- -webkit-opacity: 1;
486
- -moz-opacity: 1;
487
- }
488
- }
489
- .cover-wrapper .cover-body {
490
- margin-top: 64px;
491
- margin-bottom: 100px;
492
- }
493
- .cover-wrapper .cover-body,
494
- .cover-wrapper .cover-body .top,
495
- .cover-wrapper .cover-body .bottom {
496
- display: -webkit-box /* OLD - iOS 6-, Safari 3.1-6 */;
497
- display: -moz-box /* OLD - Firefox 19- (buggy but mostly works) */;
498
- display: -ms-flexbox /* TWEENER - IE 10 */;
499
- display: -webkit-flex /* NEW - Chrome */;
500
- display: flex /* NEW, Spec - Opera 12.1, Firefox 20+ */;
501
- display: flex;
502
- -webkit-box-direction: normal;
503
- -moz-box-direction: normal;
504
- -webkit-box-orient: vertical;
505
- -moz-box-orient: vertical;
506
- -webkit-flex-direction: column;
507
- -ms-flex-direction: column;
508
- flex-direction: column;
509
- align-items: center;
510
- justify-content: center;
511
- -webkit-justify-content: center;
512
- -khtml-justify-content: center;
513
- -moz-justify-content: center;
514
- -o-justify-content: center;
515
- -ms-justify-content: center;
516
- max-width: 100%;
517
- }
518
- .cover-wrapper .cover-body .bottom {
519
- margin-top: 32px;
520
- }
521
- .cover-wrapper .cover-body .title {
522
- font-family: Sotheby, Helvetica, monospace;
523
- font-size: 3.125rem;
524
- line-height: 1.2;
525
- text-shadow: 0 1px 2px rgba(0,0,0,0.1);
526
- }
527
- .cover-wrapper .cover-body .subtitle {
528
- font-size: 20px;
529
- }
530
- .cover-wrapper .cover-body .logo {
531
- max-height: 120px;
532
- max-width: calc(100% - 4 * 16px);
533
- }
534
- @media screen and (min-height: 1024px) {
535
- .cover-wrapper .cover-body .title {
536
- font-size: 3rem;
537
- }
538
- .cover-wrapper .cover-body .subtitle {
539
- font-size: 1.05rem;
540
- }
541
- .cover-wrapper .cover-body .logo {
542
- max-height: 150px;
543
- }
544
- }
545
- .cover-wrapper .cover-body .m_search {
546
- position: relative;
547
- max-width: calc(100% - 16px);
548
- width: 320px;
549
- vertical-align: middle;
550
- }
551
- .cover-wrapper .cover-body .m_search .form {
552
- position: relative;
553
- display: -webkit-box /* OLD - iOS 6-, Safari 3.1-6 */;
554
- display: -moz-box /* OLD - Firefox 19- (buggy but mostly works) */;
555
- display: block;
556
- width: 100%;
557
- }
558
- .cover-wrapper .cover-body .m_search .icon,
559
- .cover-wrapper .cover-body .m_search .input {
560
- transition: all 0.28s ease;
561
- -webkit-transition: all 0.28s ease;
562
- -khtml-transition: all 0.28s ease;
563
- -moz-transition: all 0.28s ease;
564
- -o-transition: all 0.28s ease;
565
- -ms-transition: all 0.28s ease;
566
- }
567
- .cover-wrapper .cover-body .m_search .icon {
568
- position: absolute;
569
- display: -webkit-box /* OLD - iOS 6-, Safari 3.1-6 */;
570
- display: -moz-box /* OLD - Firefox 19- (buggy but mostly works) */;
571
- display: block;
572
- line-height: 2.5rem;
573
- width: 32px;
574
- top: 0;
575
- left: 5px;
576
- color: rgba(35,70,79,0.75);
577
- }
578
- .cover-wrapper .cover-body .m_search .input {
579
- display: -webkit-box /* OLD - iOS 6-, Safari 3.1-6 */;
580
- display: -moz-box /* OLD - Firefox 19- (buggy but mostly works) */;
581
- display: block;
582
- height: 2.5rem;
583
- width: 100%;
584
- box-shadow: none;
585
- -webkit-box-shadow: none;
586
- box-sizing: border-box;
587
- -webkit-box-sizing: border-box;
588
- -moz-box-sizing: border-box;
589
- font-size: 0.875rem;
590
- -webkit-appearance: none;
591
- padding-left: 36px;
592
- border-radius: 1.4rem;
593
- -webkit-border-radius: 1.4rem;
594
- background: rgba(255,240,245,0.6);
595
- backdrop-filter: blur(10px);
596
- border: none;
597
- color: var(--color-text);
598
- }
599
- @media screen and (max-width: 500px) {
600
- .cover-wrapper .cover-body .m_search .input {
601
- padding-left: 36px;
602
- }
603
- }
604
- .cover-wrapper .cover-body .m_search .input:hover {
605
- background: rgba(255,240,245,0.8);
606
- }
607
- .cover-wrapper .cover-body .m_search .input:focus {
608
- background: #fff0f5;
609
- }
610
- .cover-wrapper .list-h {
611
- display: -webkit-box /* OLD - iOS 6-, Safari 3.1-6 */;
612
- display: -moz-box /* OLD - Firefox 19- (buggy but mostly works) */;
613
- display: -ms-flexbox /* TWEENER - IE 10 */;
614
- display: -webkit-flex /* NEW - Chrome */;
615
- display: flex /* NEW, Spec - Opera 12.1, Firefox 20+ */;
616
- display: flex;
617
- -webkit-box-direction: normal;
618
- -moz-box-direction: normal;
619
- -webkit-box-orient: horizontal;
620
- -moz-box-orient: horizontal;
621
- -webkit-flex-direction: row;
622
- -ms-flex-direction: row;
623
- flex-direction: row;
624
- flex-wrap: wrap;
625
- -webkit-flex-wrap: wrap;
626
- -khtml-flex-wrap: wrap;
627
- -moz-flex-wrap: wrap;
628
- -o-flex-wrap: wrap;
629
- -ms-flex-wrap: wrap;
630
- align-items: stretch;
631
- border-radius: 4px;
632
- -webkit-border-radius: 4px;
633
- user-select: none;
634
- -webkit-user-select: none;
635
- -moz-user-select: none;
636
- -ms-user-select: none;
637
- }
638
- .cover-wrapper .list-h a {
639
- -webkit-box-flex: 1;
640
- -moz-box-flex: 1;
641
- -webkit-flex: 1 0;
642
- -ms-flex: 1 0;
643
- flex: 1 0;
644
- display: -webkit-box /* OLD - iOS 6-, Safari 3.1-6 */;
645
- display: -moz-box /* OLD - Firefox 19- (buggy but mostly works) */;
646
- display: -ms-flexbox /* TWEENER - IE 10 */;
647
- display: -webkit-flex /* NEW - Chrome */;
648
- display: flex /* NEW, Spec - Opera 12.1, Firefox 20+ */;
649
- display: flex;
650
- font-weight: 600;
651
- }
652
- .cover-wrapper .list-h a img {
653
- display: -webkit-box /* OLD - iOS 6-, Safari 3.1-6 */;
654
- display: -moz-box /* OLD - Firefox 19- (buggy but mostly works) */;
655
- display: block;
656
- border-radius: 2px;
657
- -webkit-border-radius: 2px;
658
- margin: 4px;
659
- min-width: 40px;
660
- max-width: 44px;
661
- }
662
- @media screen and (max-width: 768px) {
663
- .cover-wrapper .list-h a img {
664
- min-width: 36px;
665
- max-width: 40px;
666
- }
667
- }
668
- @media screen and (max-width: 500px) {
669
- .cover-wrapper .list-h a img {
670
- margin: 2px 4px;
671
- min-width: 32px;
672
- max-width: 36px;
673
- }
674
- }
675
- @media screen and (max-width: 375px) {
676
- .cover-wrapper .list-h a img {
677
- min-width: 28px;
678
- max-width: 32px;
679
- }
680
- }
681
- .cover-wrapper {
682
- max-width: 100%;
683
- }
684
- .cover-wrapper.search .bottom .menu {
685
- margin-top: 16px;
686
- }
687
- .cover-wrapper.search .bottom .menu .list-h a {
688
- white-space: nowrap;
689
- -webkit-box-direction: normal;
690
- -moz-box-direction: normal;
691
- -webkit-box-orient: horizontal;
692
- -moz-box-orient: horizontal;
693
- -webkit-flex-direction: row;
694
- -ms-flex-direction: row;
695
- flex-direction: row;
696
- align-items: baseline;
697
- padding: 2px;
698
- margin: 4px;
699
- color: var(--color-site-inner);
700
- opacity: 0.75;
701
- -webkit-opacity: 0.75;
702
- -moz-opacity: 0.75;
703
- text-shadow: 0 1px 2px rgba(0,0,0,0.05);
704
- border-bottom: 2px solid transparent;
705
- }
706
- .cover-wrapper.search .bottom .menu .list-h a i {
707
- margin-right: 4px;
708
- }
709
- .cover-wrapper.search .bottom .menu .list-h a p {
710
- font-size: 0.9375rem;
711
- }
712
- .cover-wrapper.search .bottom .menu .list-h a:hover,
713
- .cover-wrapper.search .bottom .menu .list-h a.active,
714
- .cover-wrapper.search .bottom .menu .list-h a:active {
715
- opacity: 1;
716
- -webkit-opacity: 1;
717
- -moz-opacity: 1;
718
- border-bottom: 2px solid var(--color-site-inner);
719
- }
720
- @font-face {
721
- font-family: 'Dosis';
722
- src: url("https://fastly.jsdelivr.net/gh/moieo/moieo@main/moieo.woff2");
723
- font-weight: 'normal';
724
- font-style: 'normal';
725
- font-display: swap;
726
- }
727
- @font-face {
728
- font-family: 'Sotheby';
729
- src: url("https://nanaeo.cn/asset/Sotheby.ttf");
730
- font-weight: 'normal';
731
- font-style: 'normal';
732
- font-display: swap;
733
- }
734
- .l_header {
735
- position: fixed;
736
- z-index: 1000;
737
- top: 0;
738
- width: 100%;
739
- height: 64px;
740
- background: var(--color-card);
741
- box-shadow: 0 1px 2px 0px rgba(0,0,0,0.1);
742
- -webkit-box-shadow: 0 1px 2px 0px rgba(0,0,0,0.1);
743
- }
744
- .l_header.auto {
745
- transition: opacity 0.4s ease;
746
- -webkit-transition: opacity 0.4s ease;
747
- -khtml-transition: opacity 0.4s ease;
748
- -moz-transition: opacity 0.4s ease;
749
- -o-transition: opacity 0.4s ease;
750
- -ms-transition: opacity 0.4s ease;
751
- visibility: hidden;
752
- }
753
- .l_header.auto.show {
754
- opacity: 1 !important;
755
- -webkit-opacity: 1 !important;
756
- -moz-opacity: 1 !important;
757
- visibility: visible;
758
- }
759
- .l_header .container {
760
- margin-left: 16px;
761
- margin-right: 16px;
762
- }
763
- .l_header #wrapper {
764
- height: 100%;
765
- user-select: none;
766
- -webkit-user-select: none;
767
- -moz-user-select: none;
768
- -ms-user-select: none;
769
- }
770
- .l_header #wrapper .nav-main,
771
- .l_header #wrapper .nav-sub {
772
- display: -webkit-box /* OLD - iOS 6-, Safari 3.1-6 */;
773
- display: -moz-box /* OLD - Firefox 19- (buggy but mostly works) */;
774
- display: -ms-flexbox /* TWEENER - IE 10 */;
775
- display: -webkit-flex /* NEW - Chrome */;
776
- display: flex /* NEW, Spec - Opera 12.1, Firefox 20+ */;
777
- display: flex;
778
- flex-wrap: nowrap;
779
- -webkit-flex-wrap: nowrap;
780
- -khtml-flex-wrap: nowrap;
781
- -moz-flex-wrap: nowrap;
782
- -o-flex-wrap: nowrap;
783
- -ms-flex-wrap: nowrap;
784
- justify-content: space-between;
785
- -webkit-justify-content: space-between;
786
- -khtml-justify-content: space-between;
787
- -moz-justify-content: space-between;
788
- -o-justify-content: space-between;
789
- -ms-justify-content: space-between;
790
- align-items: center;
791
- }
792
- .l_header #wrapper .nav-main {
793
- transition: all 0.28s ease;
794
- -webkit-transition: all 0.28s ease;
795
- -khtml-transition: all 0.28s ease;
796
- -moz-transition: all 0.28s ease;
797
- -o-transition: all 0.28s ease;
798
- -ms-transition: all 0.28s ease;
799
- }
800
- .l_header #wrapper.sub .nav-main {
801
- transform: translateY(-64px);
802
- -webkit-transform: translateY(-64px);
803
- -khtml-transform: translateY(-64px);
804
- -moz-transform: translateY(-64px);
805
- -o-transform: translateY(-64px);
806
- -ms-transform: translateY(-64px);
807
- }
808
- .l_header #wrapper .nav-sub {
809
- transition: all 0.28s ease;
810
- -webkit-transition: all 0.28s ease;
811
- -khtml-transition: all 0.28s ease;
812
- -moz-transition: all 0.28s ease;
813
- -o-transition: all 0.28s ease;
814
- -ms-transition: all 0.28s ease;
815
- opacity: 0;
816
- -webkit-opacity: 0;
817
- -moz-opacity: 0;
818
- height: 64px;
819
- width: calc(100% - 2 * 16px);
820
- position: absolute;
821
- }
822
- .l_header #wrapper .nav-sub ::-webkit-scrollbar {
823
- display: -webkit-box /* OLD - iOS 6-, Safari 3.1-6 */;
824
- display: -moz-box /* OLD - Firefox 19- (buggy but mostly works) */;
825
- display: none;
826
- }
827
- @media screen and (min-width: 2048px) {
828
- .l_header #wrapper .nav-sub {
829
- max-width: 55vw;
830
- margin: auto;
831
- }
832
- }
833
- .l_header #wrapper.sub .nav-sub {
834
- opacity: 1;
835
- -webkit-opacity: 1;
836
- -moz-opacity: 1;
837
- }
838
- .l_header #wrapper .title {
839
- position: relative;
840
- color: var(--color-text);
841
- padding-left: 24px;
842
- max-height: 64px;
843
- }
844
- .l_header #wrapper .nav-main .title {
845
- white-space: nowrap;
846
- overflow: hidden;
847
- text-overflow: ellipsis;
848
- flex-shrink: 0;
849
- line-height: 64px;
850
- padding: 0 24px;
851
- font-size: 1.25rem;
852
- font-family: Sotheby, Helvetica, monospace;
853
- }
854
- .l_header #wrapper .nav-main .title img {
855
- height: 64px;
856
- }
857
- .l_header .nav-sub {
858
- max-width: 1080px;
859
- margin: auto;
860
- }
861
- .l_header .nav-sub .title {
862
- font-weight: bold;
863
- font-family: Dosis, "PingFang SC", "Microsoft YaHei", Helvetica, Arial, Menlo, Monaco, monospace, sans-serif;
864
- line-height: 1.2;
865
- max-height: 64px;
866
- white-space: normal;
867
- flex-shrink: 1;
868
- }
869
- .l_header .switcher {
870
- display: -webkit-box /* OLD - iOS 6-, Safari 3.1-6 */;
871
- display: -moz-box /* OLD - Firefox 19- (buggy but mostly works) */;
872
- display: none;
873
- line-height: 64px;
874
- align-items: center;
875
- }
876
- .l_header .switcher .s-toc {
877
- display: -webkit-box /* OLD - iOS 6-, Safari 3.1-6 */;
878
- display: -moz-box /* OLD - Firefox 19- (buggy but mostly works) */;
879
- display: none;
880
- }
881
- @media screen and (max-width: 768px) {
882
- .l_header .switcher .s-toc {
883
- display: -webkit-box /* OLD - iOS 6-, Safari 3.1-6 */;
884
- display: -moz-box /* OLD - Firefox 19- (buggy but mostly works) */;
885
- display: -ms-flexbox /* TWEENER - IE 10 */;
886
- display: -webkit-flex /* NEW - Chrome */;
887
- display: flex /* NEW, Spec - Opera 12.1, Firefox 20+ */;
888
- display: flex;
889
- }
890
- }
891
- .l_header .switcher >li {
892
- height: 48px;
893
- transition: all 0.28s ease;
894
- -webkit-transition: all 0.28s ease;
895
- -khtml-transition: all 0.28s ease;
896
- -moz-transition: all 0.28s ease;
897
- -o-transition: all 0.28s ease;
898
- -ms-transition: all 0.28s ease;
899
- margin: 2px;
900
- }
901
- @media screen and (max-width: 500px) {
902
- .l_header .switcher >li {
903
- margin: 0 1px;
904
- height: 48px;
905
- }
906
- }
907
- .l_header .switcher >li >a {
908
- display: -webkit-box /* OLD - iOS 6-, Safari 3.1-6 */;
909
- display: -moz-box /* OLD - Firefox 19- (buggy but mostly works) */;
910
- display: -ms-flexbox /* TWEENER - IE 10 */;
911
- display: -webkit-flex /* NEW - Chrome */;
912
- display: flex /* NEW, Spec - Opera 12.1, Firefox 20+ */;
913
- display: flex;
914
- justify-content: center;
915
- -webkit-justify-content: center;
916
- -khtml-justify-content: center;
917
- -moz-justify-content: center;
918
- -o-justify-content: center;
919
- -ms-justify-content: center;
920
- align-items: center;
921
- width: 48px;
922
- height: 48px;
923
- padding: 0.85em 1.1em;
924
- border-radius: 100px;
925
- -webkit-border-radius: 100px;
926
- border: none;
927
- transition: all 0.28s ease;
928
- -webkit-transition: all 0.28s ease;
929
- -khtml-transition: all 0.28s ease;
930
- -moz-transition: all 0.28s ease;
931
- -o-transition: all 0.28s ease;
932
- -ms-transition: all 0.28s ease;
933
- color: #fcc;
934
- }
935
- .l_header .switcher >li >a:hover {
936
- border: none;
937
- }
938
- .l_header .switcher >li >a.active,
939
- .l_header .switcher >li >a:active {
940
- border: none;
941
- background: var(--color-site-bg);
942
- }
943
- @media screen and (max-width: 500px) {
944
- .l_header .switcher >li >a {
945
- width: 36px;
946
- height: 48px;
947
- }
948
- }
949
- .l_header .nav-sub .switcher {
950
- display: -webkit-box /* OLD - iOS 6-, Safari 3.1-6 */;
951
- display: -moz-box /* OLD - Firefox 19- (buggy but mostly works) */;
952
- display: -ms-flexbox /* TWEENER - IE 10 */;
953
- display: -webkit-flex /* NEW - Chrome */;
954
- display: flex /* NEW, Spec - Opera 12.1, Firefox 20+ */;
955
- display: flex;
956
- }
957
- .l_header .m_search {
958
- display: -webkit-box /* OLD - iOS 6-, Safari 3.1-6 */;
959
- display: -moz-box /* OLD - Firefox 19- (buggy but mostly works) */;
960
- display: -ms-flexbox /* TWEENER - IE 10 */;
961
- display: -webkit-flex /* NEW - Chrome */;
962
- display: flex /* NEW, Spec - Opera 12.1, Firefox 20+ */;
963
- display: flex;
964
- height: 64px;
965
- width: 240px;
966
- transition: all 0.28s ease;
967
- -webkit-transition: all 0.28s ease;
968
- -khtml-transition: all 0.28s ease;
969
- -moz-transition: all 0.28s ease;
970
- -o-transition: all 0.28s ease;
971
- -ms-transition: all 0.28s ease;
972
- }
973
- @media screen and (max-width: 1024px) {
974
- .l_header .m_search {
975
- width: 44px;
976
- min-width: 44px;
977
- }
978
- .l_header .m_search input::placeholder {
979
- opacity: 0;
980
- -webkit-opacity: 0;
981
- -moz-opacity: 0;
982
- }
983
- .l_header .m_search:hover {
984
- width: 240px;
985
- }
986
- .l_header .m_search:hover input::placeholder {
987
- opacity: 1;
988
- -webkit-opacity: 1;
989
- -moz-opacity: 1;
990
- }
991
- }
992
- @media screen and (min-width: 500px) {
993
- .l_header .m_search:hover .input {
994
- width: 100%;
995
- }
996
- .l_header .m_search:hover .input::placeholder {
997
- opacity: 1;
998
- -webkit-opacity: 1;
999
- -moz-opacity: 1;
1000
- }
1001
- }
1002
- @media screen and (max-width: 500px) {
1003
- .l_header .m_search {
1004
- min-width: 0;
1005
- }
1006
- .l_header .m_search input::placeholder {
1007
- opacity: 1;
1008
- -webkit-opacity: 1;
1009
- -moz-opacity: 1;
1010
- }
1011
- }
1012
- .l_header .m_search .form {
1013
- position: relative;
1014
- display: -webkit-box /* OLD - iOS 6-, Safari 3.1-6 */;
1015
- display: -moz-box /* OLD - Firefox 19- (buggy but mostly works) */;
1016
- display: -ms-flexbox /* TWEENER - IE 10 */;
1017
- display: -webkit-flex /* NEW - Chrome */;
1018
- display: flex /* NEW, Spec - Opera 12.1, Firefox 20+ */;
1019
- display: flex;
1020
- width: 100%;
1021
- align-items: center;
1022
- }
1023
- .l_header .m_search .icon {
1024
- position: absolute;
1025
- width: 36px;
1026
- left: 5px;
1027
- color: var(--color-meta);
1028
- }
1029
- @media screen and (max-width: 500px) {
1030
- .l_header .m_search .icon {
1031
- display: -webkit-box /* OLD - iOS 6-, Safari 3.1-6 */;
1032
- display: -moz-box /* OLD - Firefox 19- (buggy but mostly works) */;
1033
- display: none;
1034
- }
1035
- }
1036
- .l_header .m_search .input {
1037
- display: -webkit-box /* OLD - iOS 6-, Safari 3.1-6 */;
1038
- display: -moz-box /* OLD - Firefox 19- (buggy but mostly works) */;
1039
- display: block;
1040
- padding-top: 8px;
1041
- padding-bottom: 8px;
1042
- line-height: 1.3;
1043
- width: 100%;
1044
- color: var(--color-text);
1045
- background: #ffe6ee;
1046
- box-shadow: none;
1047
- -webkit-box-shadow: none;
1048
- box-sizing: border-box;
1049
- -webkit-box-sizing: border-box;
1050
- -moz-box-sizing: border-box;
1051
- padding-left: 40px;
1052
- font-size: 0.875rem;
1053
- border-radius: 8px;
1054
- -webkit-border-radius: 8px;
1055
- border: none;
1056
- transition: all 0.28s ease;
1057
- -webkit-transition: all 0.28s ease;
1058
- -khtml-transition: all 0.28s ease;
1059
- -moz-transition: all 0.28s ease;
1060
- -o-transition: all 0.28s ease;
1061
- -ms-transition: all 0.28s ease;
1062
- }
1063
- @media screen and (min-width: 500px) {
1064
- .l_header .m_search .input:focus {
1065
- box-shadow: 0 4px 8px 0px rgba(0,0,0,0.1);
1066
- -webkit-box-shadow: 0 4px 8px 0px rgba(0,0,0,0.1);
1067
- }
1068
- }
1069
- @media screen and (max-width: 500px) {
1070
- .l_header .m_search .input {
1071
- background: var(--color-block);
1072
- padding-left: 8px;
1073
- border: none;
1074
- }
1075
- .l_header .m_search .input:hover,
1076
- .l_header .m_search .input:focus {
1077
- border: none;
1078
- }
1079
- }
1080
- @media (max-width: 500px) {
1081
- .l_header .m_search {
1082
- left: 0;
1083
- width: 0;
1084
- overflow: hidden;
1085
- position: absolute;
1086
- background: #fff;
1087
- transition: all 0.28s ease;
1088
- -webkit-transition: all 0.28s ease;
1089
- -khtml-transition: all 0.28s ease;
1090
- -moz-transition: all 0.28s ease;
1091
- -o-transition: all 0.28s ease;
1092
- -ms-transition: all 0.28s ease;
1093
- }
1094
- .l_header .m_search .input {
1095
- border-radius: 32px;
1096
- -webkit-border-radius: 32px;
1097
- margin-left: 16px;
1098
- padding-left: 16px;
1099
- }
1100
- .l_header.z_search-open .m_search {
1101
- width: 100%;
1102
- }
1103
- .l_header.z_search-open .m_search .input {
1104
- width: calc(100% - 120px);
1105
- }
1106
- }
1107
- ul.m-pc >li>a {
1108
- color: inherit;
1109
- border-bottom: 2px solid transparent;
1110
- }
1111
- ul.m-pc >li>a:active,
1112
- ul.m-pc >li>a.active {
1113
- border-bottom: 2px solid #fcc;
1114
- }
1115
- ul.m-pc li:hover >ul.list-v,
1116
- ul.list-v li:hover >ul.list-v {
1117
- display: -webkit-box /* OLD - iOS 6-, Safari 3.1-6 */;
1118
- display: -moz-box /* OLD - Firefox 19- (buggy but mostly works) */;
1119
- display: block;
1120
- }
1121
- ul.nav-list-h {
1122
- display: -webkit-box /* OLD - iOS 6-, Safari 3.1-6 */;
1123
- display: -moz-box /* OLD - Firefox 19- (buggy but mostly works) */;
1124
- display: -ms-flexbox /* TWEENER - IE 10 */;
1125
- display: -webkit-flex /* NEW - Chrome */;
1126
- display: flex /* NEW, Spec - Opera 12.1, Firefox 20+ */;
1127
- display: flex;
1128
- align-items: stretch;
1129
- }
1130
- ul.nav-list-h>li {
1131
- position: relative;
1132
- justify-content: center;
1133
- -webkit-justify-content: center;
1134
- -khtml-justify-content: center;
1135
- -moz-justify-content: center;
1136
- -o-justify-content: center;
1137
- -ms-justify-content: center;
1138
- height: 100%;
1139
- line-height: 2.4;
1140
- border-radius: 4px;
1141
- -webkit-border-radius: 4px;
1142
- }
1143
- ul.nav-list-h>li >a {
1144
- -webkit-font-smoothing: antialiased;
1145
- -moz-osx-font-smoothing: grayscale;
1146
- font-weight: 600;
1147
- }
1148
- ul.list-v {
1149
- z-index: 1;
1150
- display: -webkit-box /* OLD - iOS 6-, Safari 3.1-6 */;
1151
- display: -moz-box /* OLD - Firefox 19- (buggy but mostly works) */;
1152
- display: none;
1153
- position: absolute;
1154
- background: var(--color-card);
1155
- box-shadow: 0 2px 4px 0px rgba(0,0,0,0.08), 0 4px 8px 0px rgba(0,0,0,0.08), 0 8px 16px 0px rgba(0,0,0,0.08);
1156
- -webkit-box-shadow: 0 2px 4px 0px rgba(0,0,0,0.08), 0 4px 8px 0px rgba(0,0,0,0.08), 0 8px 16px 0px rgba(0,0,0,0.08);
1157
- margin-top: -6px;
1158
- border-radius: 4px;
1159
- -webkit-border-radius: 4px;
1160
- padding: 8px 0;
1161
- }
1162
- ul.list-v.show {
1163
- display: -webkit-box /* OLD - iOS 6-, Safari 3.1-6 */;
1164
- display: -moz-box /* OLD - Firefox 19- (buggy but mostly works) */;
1165
- display: block;
1166
- }
1167
- ul.list-v hr {
1168
- margin-top: 8px;
1169
- margin-bottom: 8px;
1170
- }
1171
- ul.list-v >li {
1172
- white-space: nowrap;
1173
- word-break: keep-all;
1174
- }
1175
- ul.list-v >li.header {
1176
- font-size: 0.78125rem;
1177
- font-weight: bold;
1178
- line-height: 2em;
1179
- color: var(--color-meta);
1180
- margin: 8px 16px 4px;
1181
- }
1182
- ul.list-v >li.header i {
1183
- margin-right: 8px;
1184
- }
1185
- ul.list-v >li ul {
1186
- margin-left: 0;
1187
- display: -webkit-box /* OLD - iOS 6-, Safari 3.1-6 */;
1188
- display: -moz-box /* OLD - Firefox 19- (buggy but mostly works) */;
1189
- display: none;
1190
- margin-top: -40px;
1191
- }
1192
- ul.list-v .aplayer-container {
1193
- min-height: 64px;
1194
- padding: 6px 16px;
1195
- }
1196
- ul.list-v >li>a {
1197
- transition: all 0.28s ease;
1198
- -webkit-transition: all 0.28s ease;
1199
- -khtml-transition: all 0.28s ease;
1200
- -moz-transition: all 0.28s ease;
1201
- -o-transition: all 0.28s ease;
1202
- -ms-transition: all 0.28s ease;
1203
- display: -webkit-box /* OLD - iOS 6-, Safari 3.1-6 */;
1204
- display: -moz-box /* OLD - Firefox 19- (buggy but mostly works) */;
1205
- display: block;
1206
- color: var(--color-list);
1207
- font-size: 0.875rem;
1208
- font-weight: bold;
1209
- line-height: 36px;
1210
- padding: 0 20px 0 16px;
1211
- text-overflow: ellipsis;
1212
- margin: 0 4px;
1213
- border-radius: 4px;
1214
- -webkit-border-radius: 4px;
1215
- }
1216
- @media screen and (max-width: 1024px) {
1217
- ul.list-v >li>a {
1218
- line-height: 40px;
1219
- }
1220
- }
1221
- ul.list-v >li>a >i {
1222
- margin-right: 8px;
1223
- }
1224
- ul.list-v >li>a:active,
1225
- ul.list-v >li>a.active {
1226
- color: var(--color-list-hl);
1227
- }
1228
- ul.list-v >li>a:hover {
1229
- color: var(--color-list-hl);
1230
- background: var(--color-site-bg);
1231
- }
1232
- .l_header .menu >ul>li>a {
1233
- display: -webkit-box /* OLD - iOS 6-, Safari 3.1-6 */;
1234
- display: -moz-box /* OLD - Firefox 19- (buggy but mostly works) */;
1235
- display: block;
1236
- padding: 0 8px;
1237
- }
1238
- .l_header .menu >ul>li>a >i {
1239
- margin-right: 4px;
1240
- }
1241
- .l_header ul.nav-list-h>li {
1242
- color: var(--color-list);
1243
- line-height: 64px;
1244
- }
1245
- .l_header ul.nav-list-h>li >a {
1246
- max-height: 64px;
1247
- overflow: hidden;
1248
- color: inherit;
1249
- }
1250
- .l_header ul.nav-list-h>li >a:active,
1251
- .l_header ul.nav-list-h>li >a.active {
1252
- color: #fcc;
1253
- }
1254
- .l_header ul.nav-list-h>li:hover>a {
1255
- color: var(--color-list-hl);
1256
- }
1257
- .l_header ul.nav-list-h>li i.music {
1258
- animation: rotate-effect 1.5s linear infinite;
1259
- -webkit-animation: rotate-effect 1.5s linear infinite;
1260
- -khtml-animation: rotate-effect 1.5s linear infinite;
1261
- -moz-animation: rotate-effect 1.5s linear infinite;
1262
- -o-animation: rotate-effect 1.5s linear infinite;
1263
- -ms-animation: rotate-effect 1.5s linear infinite;
1264
- }
1265
- @-moz-keyframes rotate-effect {
1266
- 0% {
1267
- transform: rotate(0);
1268
- -webkit-transform: rotate(0);
1269
- -khtml-transform: rotate(0);
1270
- -moz-transform: rotate(0);
1271
- -o-transform: rotate(0);
1272
- -ms-transform: rotate(0);
1273
- }
1274
- 25% {
1275
- transform: rotate(90deg);
1276
- -webkit-transform: rotate(90deg);
1277
- -khtml-transform: rotate(90deg);
1278
- -moz-transform: rotate(90deg);
1279
- -o-transform: rotate(90deg);
1280
- -ms-transform: rotate(90deg);
1281
- }
1282
- 50% {
1283
- transform: rotate(180deg);
1284
- -webkit-transform: rotate(180deg);
1285
- -khtml-transform: rotate(180deg);
1286
- -moz-transform: rotate(180deg);
1287
- -o-transform: rotate(180deg);
1288
- -ms-transform: rotate(180deg);
1289
- }
1290
- 75% {
1291
- transform: rotate(270deg);
1292
- -webkit-transform: rotate(270deg);
1293
- -khtml-transform: rotate(270deg);
1294
- -moz-transform: rotate(270deg);
1295
- -o-transform: rotate(270deg);
1296
- -ms-transform: rotate(270deg);
1297
- }
1298
- 100% {
1299
- transform: rotate(360deg);
1300
- -webkit-transform: rotate(360deg);
1301
- -khtml-transform: rotate(360deg);
1302
- -moz-transform: rotate(360deg);
1303
- -o-transform: rotate(360deg);
1304
- -ms-transform: rotate(360deg);
1305
- }
1306
- }
1307
- @-webkit-keyframes rotate-effect {
1308
- 0% {
1309
- transform: rotate(0);
1310
- -webkit-transform: rotate(0);
1311
- -khtml-transform: rotate(0);
1312
- -moz-transform: rotate(0);
1313
- -o-transform: rotate(0);
1314
- -ms-transform: rotate(0);
1315
- }
1316
- 25% {
1317
- transform: rotate(90deg);
1318
- -webkit-transform: rotate(90deg);
1319
- -khtml-transform: rotate(90deg);
1320
- -moz-transform: rotate(90deg);
1321
- -o-transform: rotate(90deg);
1322
- -ms-transform: rotate(90deg);
1323
- }
1324
- 50% {
1325
- transform: rotate(180deg);
1326
- -webkit-transform: rotate(180deg);
1327
- -khtml-transform: rotate(180deg);
1328
- -moz-transform: rotate(180deg);
1329
- -o-transform: rotate(180deg);
1330
- -ms-transform: rotate(180deg);
1331
- }
1332
- 75% {
1333
- transform: rotate(270deg);
1334
- -webkit-transform: rotate(270deg);
1335
- -khtml-transform: rotate(270deg);
1336
- -moz-transform: rotate(270deg);
1337
- -o-transform: rotate(270deg);
1338
- -ms-transform: rotate(270deg);
1339
- }
1340
- 100% {
1341
- transform: rotate(360deg);
1342
- -webkit-transform: rotate(360deg);
1343
- -khtml-transform: rotate(360deg);
1344
- -moz-transform: rotate(360deg);
1345
- -o-transform: rotate(360deg);
1346
- -ms-transform: rotate(360deg);
1347
- }
1348
- }
1349
- @-o-keyframes rotate-effect {
1350
- 0% {
1351
- transform: rotate(0);
1352
- -webkit-transform: rotate(0);
1353
- -khtml-transform: rotate(0);
1354
- -moz-transform: rotate(0);
1355
- -o-transform: rotate(0);
1356
- -ms-transform: rotate(0);
1357
- }
1358
- 25% {
1359
- transform: rotate(90deg);
1360
- -webkit-transform: rotate(90deg);
1361
- -khtml-transform: rotate(90deg);
1362
- -moz-transform: rotate(90deg);
1363
- -o-transform: rotate(90deg);
1364
- -ms-transform: rotate(90deg);
1365
- }
1366
- 50% {
1367
- transform: rotate(180deg);
1368
- -webkit-transform: rotate(180deg);
1369
- -khtml-transform: rotate(180deg);
1370
- -moz-transform: rotate(180deg);
1371
- -o-transform: rotate(180deg);
1372
- -ms-transform: rotate(180deg);
1373
- }
1374
- 75% {
1375
- transform: rotate(270deg);
1376
- -webkit-transform: rotate(270deg);
1377
- -khtml-transform: rotate(270deg);
1378
- -moz-transform: rotate(270deg);
1379
- -o-transform: rotate(270deg);
1380
- -ms-transform: rotate(270deg);
1381
- }
1382
- 100% {
1383
- transform: rotate(360deg);
1384
- -webkit-transform: rotate(360deg);
1385
- -khtml-transform: rotate(360deg);
1386
- -moz-transform: rotate(360deg);
1387
- -o-transform: rotate(360deg);
1388
- -ms-transform: rotate(360deg);
1389
- }
1390
- }
1391
- @keyframes rotate-effect {
1392
- 0% {
1393
- transform: rotate(0);
1394
- -webkit-transform: rotate(0);
1395
- -khtml-transform: rotate(0);
1396
- -moz-transform: rotate(0);
1397
- -o-transform: rotate(0);
1398
- -ms-transform: rotate(0);
1399
- }
1400
- 25% {
1401
- transform: rotate(90deg);
1402
- -webkit-transform: rotate(90deg);
1403
- -khtml-transform: rotate(90deg);
1404
- -moz-transform: rotate(90deg);
1405
- -o-transform: rotate(90deg);
1406
- -ms-transform: rotate(90deg);
1407
- }
1408
- 50% {
1409
- transform: rotate(180deg);
1410
- -webkit-transform: rotate(180deg);
1411
- -khtml-transform: rotate(180deg);
1412
- -moz-transform: rotate(180deg);
1413
- -o-transform: rotate(180deg);
1414
- -ms-transform: rotate(180deg);
1415
- }
1416
- 75% {
1417
- transform: rotate(270deg);
1418
- -webkit-transform: rotate(270deg);
1419
- -khtml-transform: rotate(270deg);
1420
- -moz-transform: rotate(270deg);
1421
- -o-transform: rotate(270deg);
1422
- -ms-transform: rotate(270deg);
1423
- }
1424
- 100% {
1425
- transform: rotate(360deg);
1426
- -webkit-transform: rotate(360deg);
1427
- -khtml-transform: rotate(360deg);
1428
- -moz-transform: rotate(360deg);
1429
- -o-transform: rotate(360deg);
1430
- -ms-transform: rotate(360deg);
1431
- }
1432
- }
1433
- .menu-phone li ul.list-v {
1434
- right: calc(100% - 0.5 * 16px);
1435
- }
1436
- .menu-phone li ul.list-v ul {
1437
- right: calc(100% - 0.5 * 16px);
1438
- }
1439
- #wrapper {
1440
- max-width: 1080px;
1441
- margin: auto;
1442
- }
1443
- @media screen and (min-width: 2048px) {
1444
- #wrapper {
1445
- max-width: 55vw;
1446
- }
1447
- }
1448
- #wrapper .menu {
1449
- -webkit-box-flex: 1;
1450
- -moz-box-flex: 1;
1451
- -webkit-flex: 1 1;
1452
- -ms-flex: 1 1;
1453
- flex: 1 1;
1454
- margin: 0 16px 0 0;
1455
- }
1456
- #wrapper .menu .list-v ul {
1457
- left: calc(100% - 0.5 * 16px);
1458
- }
1459
- .menu-phone {
1460
- display: -webkit-box /* OLD - iOS 6-, Safari 3.1-6 */;
1461
- display: -moz-box /* OLD - Firefox 19- (buggy but mostly works) */;
1462
- display: none;
1463
- margin-top: 16px;
1464
- right: 8px;
1465
- transition: all 0.28s ease;
1466
- -webkit-transition: all 0.28s ease;
1467
- -khtml-transition: all 0.28s ease;
1468
- -moz-transition: all 0.28s ease;
1469
- -o-transition: all 0.28s ease;
1470
- -ms-transition: all 0.28s ease;
1471
- }
1472
- .menu-phone ul {
1473
- right: calc(100% - 0.5 * 16px);
1474
- }
1475
- @media screen and (max-width: 500px) {
1476
- .menu-phone {
1477
- display: -webkit-box /* OLD - iOS 6-, Safari 3.1-6 */;
1478
- display: -moz-box /* OLD - Firefox 19- (buggy but mostly works) */;
1479
- display: block;
1480
- }
1481
- }
1482
- .l_header {
1483
- max-width: 65vw;
1484
- left: calc((100% - 65vw) * 0.5);
1485
- border-bottom-left-radius: 8px;
1486
- border-bottom-right-radius: 8px;
1487
- }
1488
- @media screen and (max-width: 2048px) {
1489
- .l_header {
1490
- max-width: 1112px;
1491
- left: calc((100% - 1112px) * 0.5);
1492
- }
1493
- }
1494
- @media screen and (max-width: 1112px) {
1495
- .l_header {
1496
- left: 0;
1497
- border-radius: 0;
1498
- -webkit-border-radius: 0;
1499
- max-width: 100%;
1500
- }
1501
- }
1502
- @media screen and (max-width: 500px) {
1503
- .l_header .container {
1504
- margin-left: 0;
1505
- margin-right: 0;
1506
- }
1507
- .l_header #wrapper .nav-main .title {
1508
- padding-left: 16px;
1509
- padding-right: 16px;
1510
- }
1511
- .l_header #wrapper .nav-sub {
1512
- width: 100%;
1513
- }
1514
- .l_header #wrapper .nav-sub .title {
1515
- overflow-y: scroll;
1516
- margin-top: 2px;
1517
- padding: 8px 16px;
1518
- }
1519
- .l_header #wrapper .switcher {
1520
- display: -webkit-box /* OLD - iOS 6-, Safari 3.1-6 */;
1521
- display: -moz-box /* OLD - Firefox 19- (buggy but mostly works) */;
1522
- display: -ms-flexbox /* TWEENER - IE 10 */;
1523
- display: -webkit-flex /* NEW - Chrome */;
1524
- display: flex /* NEW, Spec - Opera 12.1, Firefox 20+ */;
1525
- display: flex;
1526
- margin-right: 8px;
1527
- }
1528
- .l_header .menu {
1529
- display: -webkit-box /* OLD - iOS 6-, Safari 3.1-6 */;
1530
- display: -moz-box /* OLD - Firefox 19- (buggy but mostly works) */;
1531
- display: none;
1532
- }
1533
- }
1534
- @media screen and (max-width: 500px) {
1535
- .list-v li {
1536
- max-width: 270px;
1537
- }
1538
- }
1539
- #u-search {
1540
- display: -webkit-box /* OLD - iOS 6-, Safari 3.1-6 */;
1541
- display: -moz-box /* OLD - Firefox 19- (buggy but mostly works) */;
1542
- display: none;
1543
- position: fixed;
1544
- top: 0;
1545
- left: 0;
1546
- width: 100%;
1547
- height: 100%;
1548
- padding: 60px 20px;
1549
- z-index: 1001;
1550
- }
1551
- @media screen and (max-width: 680px) {
1552
- #u-search {
1553
- padding: 0px;
1554
- }
1555
- }
1556
-
1557
- </style>
1558
- <link rel="stylesheet" href="/css/style.css" media="print" onload="this.media='all';this.onload=null">
1559
- <noscript><link rel="stylesheet" href="/css/style.css"></noscript>
1560
-
1561
- <script>
1562
- if (/*@cc_on!@*/false || (!!window.MSInputMethodContext && !!document.documentMode))
1563
- document.write(
1564
- '<style>'+
1565
- 'html{'+
1566
- 'overflow-x: hidden !important;'+
1567
- 'overflow-y: hidden !important;'+
1568
- '}'+
1569
- '.kill-ie{'+
1570
- 'text-align:center;'+
1571
- 'height: 100%;'+
1572
- 'margin-top: 15%;'+
1573
- 'margin-bottom: 5500%;'+
1574
- '}'+
1575
- '.kill-t{'+
1576
- 'font-size: 2rem;'+
1577
- '}'+
1578
- '.kill-c{'+
1579
- 'font-size: 1.2rem;'+
1580
- '}'+
1581
- '#l_header,#l_body{'+
1582
- 'display: none;'+
1583
- '}'+
1584
- '</style>'+
1585
- '<div class="kill-ie">'+
1586
- `<span class="kill-t"><b>抱歉,您的浏览器无法访问本站</b></span><br/>`+
1587
- `<span class="kill-c">微软已经于2016年终止了对 Internet Explorer (IE) 10 及更早版本的支持,<br/>继续使用存在极大的安全隐患,请使用当代主流的浏览器进行访问。</span><br/>`+
1588
- `<a target="_blank" rel="noopener" href="https://blogs.windows.com/windowsexperience/2021/05/19/the-future-of-internet-explorer-on-windows-10-is-in-microsoft-edge/"><strong>了解详情 ></strong></a>`+
1589
- '</div>');
1590
- </script>
1591
-
1592
-
1593
- <noscript>
1594
- <style>
1595
- html{
1596
- overflow-x: hidden !important;
1597
- overflow-y: hidden !important;
1598
- }
1599
- .kill-noscript{
1600
- text-align:center;
1601
- height: 100%;
1602
- margin-top: 15%;
1603
- margin-bottom: 5500%;
1604
- }
1605
- .kill-t{
1606
- font-size: 2rem;
1607
- }
1608
- .kill-c{
1609
- font-size: 1.2rem;
1610
- }
1611
- #l_header,#l_body{
1612
- display: none;
1613
- }
1614
- </style>
1615
- <div class="kill-noscript">
1616
- <span class="kill-t"><b>抱歉,您的浏览器无法访问本站</b></span><br/>
1617
- <span class="kill-c">本页面需要浏览器支持(启用)JavaScript</span><br/>
1618
- <a target="_blank" rel="noopener" href="https://www.baidu.com/s?wd=启用JavaScript"><strong>了解详情 ></strong></a>
1619
- </div>
1620
- </noscript>
1621
-
1622
-
1623
- <script>
1624
- /************这个文件存放不需要重载的全局变量和全局函数*********/
1625
- window.volantis = {}; // volantis 全局变量
1626
- volantis.debug = "env"; // 调试模式
1627
- volantis.dom = {}; // 页面Dom see: /source/js/app.js etc.
1628
-
1629
- volantis.GLOBAL_CONFIG ={
1630
- debug: "env",
1631
- cdn: {"js":{"app":"/js/app.js","parallax":"/js/plugins/parallax.js","rightMenu":"/js/plugins/rightMenu.js","rightMenus":"/js/plugins/rightMenus.js","sites":"/js/plugins/tags/sites.js","friends":"/js/plugins/tags/friends.js","contributors":"/js/plugins/tags/contributors.js","search":"/js/search/hexo.js"},"css":{"style":"/css/style.css"}},
1632
- default: {"avatar":"https://fastly.jsdelivr.net/npm/volantis-static/media/placeholder/avatar/round/3442075.svg","link":"https://fastly.jsdelivr.net/npm/volantis-static/media/placeholder/link/8f277b4ee0ecd.svg","cover":"https://fastly.jsdelivr.net/npm/volantis-static/media/placeholder/cover/76b86c0226ffd.svg","image":"https://fastly.jsdelivr.net/npm/volantis-static/media/placeholder/image/2659360.svg"},
1633
- lastupdate: new Date(1702968273249),
1634
- sidebar: {
1635
- for_page: ["blogger","category","webinfo"],
1636
- for_post: ["toc"],
1637
- webinfo: {
1638
- lastupd: {
1639
- enable: true,
1640
- friendlyShow: true
1641
- },
1642
- runtime: {
1643
- data: "2022/08/05",
1644
- unit: "天"
1645
- }
1646
- }
1647
- },
1648
- plugins: {
1649
- message: {"enable":true,"css":"https://fastly.jsdelivr.net/npm/volantis-static/libs/izitoast/dist/css/iziToast.min.css","js":"https://fastly.jsdelivr.net/npm/volantis-static/libs/izitoast/dist/js/iziToast.min.js","icon":{"default":"fa-solid fa-info-circle light-blue","quection":"fa-solid fa-question-circle light-blue"},"time":{"default":5000,"quection":20000},"position":"topRight","transitionIn":"bounceInLeft","transitionOut":"fadeOutRight","titleColor":"var(--color-text)","messageColor":"var(--color-text)","backgroundColor":"var(--color-card)","zindex":2147483647,"copyright":{"enable":true,"title":"知识共享许可协议","message":"请遵守 CC BY-NC-SA 4.0 协议。","icon":"far fa-copyright light-blue"},"aplayer":{"enable":true,"play":"fa-solid fa-play","pause":"fa-solid fa-pause"},"rightmenu":{"enable":true,"notice":true}},
1650
- fancybox: {"css":"https://fastly.jsdelivr.net/npm/volantis-static/libs/@fancyapps/ui/dist/fancybox.css","js":"https://fastly.jsdelivr.net/npm/volantis-static/libs/@fancyapps/ui/dist/fancybox.umd.js"},
1651
-
1652
-
1653
-
1654
- }
1655
- }
1656
-
1657
- /******************** volantis.EventListener ********************************/
1658
- // 事件监听器 see: /source/js/app.js
1659
- volantis.EventListener = {}
1660
- // 这里存放pjax切换页面时将被移除的事件监听器
1661
- volantis.EventListener.list = []
1662
- //构造方法
1663
- function volantisEventListener(type, f, ele) {
1664
- this.type = type
1665
- this.f = f
1666
- this.ele = ele
1667
- }
1668
- // 移除事件监听器
1669
- volantis.EventListener.remove = () => {
1670
- volantis.EventListener.list.forEach(function (i) {
1671
- i.ele.removeEventListener(i.type, i.f, false)
1672
- })
1673
- volantis.EventListener.list = []
1674
- }
1675
- /******************** volantis.dom.$ ********************************/
1676
- // 注:这里没有选择器,也没有forEach一次只处理一个dom,这里重新封装主题常用的dom方法,返回的是dom对象,对象包含了以下方法,同时保留dom的原生API
1677
- function volantisDom(ele) {
1678
- if (!ele) ele = document.createElement("div")
1679
- this.ele = ele;
1680
- // ==============================================================
1681
- this.ele.find = (c) => {
1682
- let q = this.ele.querySelector(c)
1683
- if (q)
1684
- return new volantisDom(q)
1685
- }
1686
- // ==============================================================
1687
- this.ele.hasClass = (c) => {
1688
- return this.ele.className.match(new RegExp('(\\s|^)' + c + '(\\s|$)'));
1689
- }
1690
- this.ele.addClass = (c) => {
1691
- this.ele.classList.add(c);
1692
- return this.ele
1693
- }
1694
- this.ele.removeClass = (c) => {
1695
- this.ele.classList.remove(c);
1696
- return this.ele
1697
- }
1698
- this.ele.toggleClass = (c) => {
1699
- if (this.ele.hasClass(c)) {
1700
- this.ele.removeClass(c)
1701
- } else {
1702
- this.ele.addClass(c)
1703
- }
1704
- return this.ele
1705
- }
1706
- // ==============================================================
1707
- // 参数 r 为 true 表示pjax切换页面时事件监听器将被移除,false不移除
1708
- this.ele.on = (c, f, r = 1) => {
1709
- this.ele.addEventListener(c, f, false)
1710
- if (r) {
1711
- volantis.EventListener.list.push(new volantisEventListener(c, f, this.ele))
1712
- }
1713
- return this.ele
1714
- }
1715
- this.ele.click = (f, r) => {
1716
- this.ele.on("click", f, r)
1717
- return this.ele
1718
- }
1719
- this.ele.scroll = (f, r) => {
1720
- this.ele.on("scroll", f, r)
1721
- return this.ele
1722
- }
1723
- // ==============================================================
1724
- this.ele.html = (c) => {
1725
- // if(c=== undefined){
1726
- // return this.ele.innerHTML
1727
- // }else{
1728
- this.ele.innerHTML = c
1729
- return this.ele
1730
- // }
1731
- }
1732
- // ==============================================================
1733
- this.ele.hide = (c) => {
1734
- this.ele.style.display = "none"
1735
- return this.ele
1736
- }
1737
- this.ele.show = (c) => {
1738
- this.ele.style.display = "block"
1739
- return this.ele
1740
- }
1741
- // ==============================================================
1742
- return this.ele
1743
- }
1744
- volantis.dom.$ = (ele) => {
1745
- return !!ele ? new volantisDom(ele) : null;
1746
- }
1747
- /******************** RunItem ********************************/
1748
- function RunItem() {
1749
- this.list = []; // 存放回调函数
1750
- this.start = () => {
1751
- for (var i = 0; i < this.list.length; i++) {
1752
- this.list[i].run();
1753
- }
1754
- };
1755
- this.push = (fn, name, setRequestAnimationFrame = true) => {
1756
- let myfn = fn
1757
- if (setRequestAnimationFrame) {
1758
- myfn = ()=>{
1759
- volantis.requestAnimationFrame(fn)
1760
- }
1761
- }
1762
- var f = new Item(myfn, name);
1763
- this.list.push(f);
1764
- };
1765
- this.remove = (name) =>{
1766
- for (let index = 0; index < this.list.length; index++) {
1767
- const e = this.list[index];
1768
- if (e.name == name) {
1769
- this.list.splice(index,1);
1770
- }
1771
- }
1772
- }
1773
- // 构造一个可以run的对象
1774
- function Item(fn, name) {
1775
- // 函数名称
1776
- this.name = name || fn.name;
1777
- // run方法
1778
- this.run = () => {
1779
- try {
1780
- fn()
1781
- } catch (error) {
1782
- console.log(error);
1783
- }
1784
- };
1785
- }
1786
- }
1787
- /******************** Pjax ********************************/
1788
- // /layout/_plugins/pjax/index.ejs
1789
- // volantis.pjax.send(callBack[,"callBackName"]) 传入pjax:send回调函数
1790
- // volantis.pjax.push(callBack[,"callBackName"]) 传入pjax:complete回调函数
1791
- // volantis.pjax.error(callBack[,"callBackName"]) 传入pjax:error回调函数
1792
- volantis.pjax = {};
1793
- volantis.pjax.method = {
1794
- complete: new RunItem(),
1795
- error: new RunItem(),
1796
- send: new RunItem(),
1797
- };
1798
- volantis.pjax = Object.assign(volantis.pjax, {
1799
- push: volantis.pjax.method.complete.push,
1800
- error: volantis.pjax.method.error.push,
1801
- send: volantis.pjax.method.send.push,
1802
- });
1803
- /******************** RightMenu ********************************/
1804
- // volantis.rightmenu.handle(callBack[,"callBackName"]) 外部菜单项控制
1805
- // 可在 volantis.mouseEvent 处获取右键事件
1806
- volantis.rightmenu = {};
1807
- volantis.rightmenu.method = {
1808
- handle: new RunItem(),
1809
- }
1810
- volantis.rightmenu = Object.assign(volantis.rightmenu, {
1811
- handle: volantis.rightmenu.method.handle.push,
1812
- });
1813
- /******************** Dark Mode ********************************/
1814
- // /layout/_partial/scripts/darkmode.ejs
1815
- // volantis.dark.mode 当前模式 dark or light
1816
- // volantis.dark.toggle() 暗黑模式触发器
1817
- // volantis.dark.push(callBack[,"callBackName"]) 传入触发器回调函数
1818
- volantis.dark = {};
1819
- volantis.dark.method = {
1820
- toggle: new RunItem(),
1821
- };
1822
- volantis.dark = Object.assign(volantis.dark, {
1823
- push: volantis.dark.method.toggle.push,
1824
- });
1825
- /******************** Message ********************************/
1826
- // VolantisApp.message
1827
- /******************** isMobile ********************************/
1828
- // /source/js/app.js
1829
- // volantis.isMobile
1830
- // volantis.isMobileOld
1831
- /********************脚本动态加载函数********************************/
1832
- // volantis.js(src, cb) cb 可以传入onload回调函数 或者 JSON对象 例如: volantis.js("src", ()=>{}) 或 volantis.js("src", {defer:true,onload:()=>{}})
1833
- // volantis.css(src)
1834
-
1835
- // 返回Promise对象,如下方法同步加载资源,这利于处理文件资源之间的依赖关系,例如:APlayer 需要在 MetingJS 之前加载
1836
- // (async () => {
1837
- // await volantis.js("...theme.plugins.aplayer.js.aplayer...")
1838
- // await volantis.js("...theme.plugins.aplayer.js.meting...")
1839
- // })();
1840
-
1841
- // 已经加入了setTimeout
1842
- volantis.js = (src, cb) => {
1843
- return new Promise(resolve => {
1844
- setTimeout(function () {
1845
- var HEAD = document.getElementsByTagName("head")[0] || document.documentElement;
1846
- var script = document.createElement("script");
1847
- script.setAttribute("type", "text/javascript");
1848
- if (cb) {
1849
- if (JSON.stringify(cb)) {
1850
- for (let p in cb) {
1851
- if (p == "onload") {
1852
- script[p] = () => {
1853
- cb[p]()
1854
- resolve()
1855
- }
1856
- } else {
1857
- script[p] = cb[p]
1858
- script.onload = resolve
1859
- }
1860
- }
1861
- } else {
1862
- script.onload = () => {
1863
- cb()
1864
- resolve()
1865
- };
1866
- }
1867
- } else {
1868
- script.onload = resolve
1869
- }
1870
- script.setAttribute("src", src);
1871
- HEAD.appendChild(script);
1872
- });
1873
- });
1874
- }
1875
- volantis.css = (src) => {
1876
- return new Promise(resolve => {
1877
- setTimeout(function () {
1878
- var link = document.createElement('link');
1879
- link.rel = "stylesheet";
1880
- link.href = src;
1881
- link.onload = resolve;
1882
- document.getElementsByTagName("head")[0].appendChild(link);
1883
- });
1884
- });
1885
- }
1886
- /********************按需加载的插件********************************/
1887
- // volantis.import.jQuery().then(()=>{})
1888
- volantis.import = {
1889
- jQuery: () => {
1890
- if (typeof jQuery == "undefined") {
1891
- return volantis.js("https://fastly.jsdelivr.net/npm/volantis-static/libs/jquery/dist/jquery.min.js")
1892
- } else {
1893
- return new Promise(resolve => {
1894
- resolve()
1895
- });
1896
- }
1897
- }
1898
- }
1899
- /********************** requestAnimationFrame ********************************/
1900
- // 1、requestAnimationFrame 会把每一帧中的所有 DOM 操作集中起来,在一次重绘或回流中就完成,并且重绘或回流的时间间隔紧紧跟随浏览器的刷新频率,一般来说,这个频率为每秒60帧。
1901
- // 2、在隐藏或不可见的元素中,requestAnimationFrame 将不会进行重绘或回流,这当然就意味着更少的的 cpu,gpu 和内存使用量。
1902
- volantis.requestAnimationFrame = (fn)=>{
1903
- if (!window.requestAnimationFrame) {
1904
- window.requestAnimationFrame = window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame;
1905
- }
1906
- window.requestAnimationFrame(fn)
1907
- }
1908
- /************************ layoutHelper *****************************************/
1909
- volantis.layoutHelper = (helper, html, opt)=>{
1910
- opt = Object.assign({clean:false, pjax:true}, opt)
1911
- function myhelper(helper, html, clean) {
1912
- volantis.tempDiv = document.createElement("div");
1913
- volantis.tempDiv.innerHTML = html;
1914
- let layoutHelper = document.querySelector("#layoutHelper-"+helper)
1915
- if (layoutHelper) {
1916
- if (clean) {
1917
- layoutHelper.innerHTML = ""
1918
- }
1919
- layoutHelper.append(volantis.tempDiv);
1920
- }
1921
- }
1922
- myhelper(helper, html, opt.clean)
1923
- if (opt.pjax) {
1924
- volantis.pjax.push(()=>{
1925
- myhelper(helper, html, opt.clean)
1926
- },"layoutHelper-"+helper)
1927
- }
1928
- }
1929
- /****************************** 滚动事件处理 ****************************************/
1930
- volantis.scroll = {
1931
- engine: new RunItem(),
1932
- unengine: new RunItem(),
1933
- };
1934
- volantis.scroll = Object.assign(volantis.scroll, {
1935
- push: volantis.scroll.engine.push,
1936
- });
1937
- // 滚动条距离顶部的距离
1938
- volantis.scroll.getScrollTop = () =>{
1939
- let scrollPos;
1940
- if (window.pageYOffset) {
1941
- scrollPos = window.pageYOffset;
1942
- } else if (document.compatMode && document.compatMode != 'BackCompat') {
1943
- scrollPos = document.documentElement.scrollTop;
1944
- } else if (document.body) {
1945
- scrollPos = document.body.scrollTop;
1946
- }
1947
- return scrollPos;
1948
- }
1949
- // 使用 requestAnimationFrame 处理滚动事件
1950
- // `volantis.scroll.del` 中存储了一个数值, 该数值检测一定时间间隔内滚动条滚动的位移, 数值的检测频率是浏览器的刷新频率. 数值为正数时, 表示向下滚动. 数值为负数时, 表示向上滚动.
1951
- volantis.scroll.handleScrollEvents = () => {
1952
- volantis.scroll.lastScrollTop = volantis.scroll.getScrollTop()
1953
- function loop() {
1954
- const scrollTop = volantis.scroll.getScrollTop();
1955
- if (volantis.scroll.lastScrollTop !== scrollTop) {
1956
- volantis.scroll.del = scrollTop - volantis.scroll.lastScrollTop;
1957
- volantis.scroll.lastScrollTop = scrollTop;
1958
- // if (volantis.scroll.del > 0) {
1959
- // console.log("向下滚动");
1960
- // } else {
1961
- // console.log("向上滚动");
1962
- // }
1963
- // 注销过期的unengine未滚动事件
1964
- volantis.scroll.unengine.list=[]
1965
- volantis.scroll.engine.start();
1966
- }else{
1967
- volantis.scroll.unengine.start();
1968
- }
1969
- volantis.requestAnimationFrame(loop)
1970
- }
1971
- volantis.requestAnimationFrame(loop)
1972
- }
1973
- volantis.scroll.handleScrollEvents()
1974
- volantis.scroll.ele = null;
1975
- // 触发页面滚动至目标元素位置
1976
- volantis.scroll.to = (ele, option = {}) => {
1977
- if (!ele) return;
1978
- volantis.scroll.ele = ele;
1979
- // 默认配置
1980
- opt = {
1981
- top: ele.getBoundingClientRect().top + document.documentElement.scrollTop,
1982
- behavior: "smooth"
1983
- }
1984
- // 定义配置
1985
- if ("top" in option) {
1986
- opt.top = option.top
1987
- }
1988
- if ("behavior" in option) {
1989
- opt.behavior = option.behavior
1990
- }
1991
- if ("addTop" in option) {
1992
- opt.top += option.addTop
1993
- }
1994
- if (!("observerDic" in option)) {
1995
- option.observerDic = 100
1996
- }
1997
- // 滚动
1998
- window.scrollTo(opt);
1999
- // 监视器
2000
- // 监视并矫正元素滚动到指定位置
2001
- // 用于处理 lazyload 引起的 cls 导致的定位失败问题
2002
- // option.observer = false
2003
- if (option.observer) {
2004
- setTimeout(() => {
2005
- if (volantis.scroll.ele != ele) {
2006
- return
2007
- }
2008
- volantis.scroll.unengine.push(() => {
2009
- let me = ele.getBoundingClientRect().top
2010
- if(!(me >= -option.observerDic && me <= option.observerDic)){
2011
- volantis.scroll.to(ele, option)
2012
- }
2013
- volantis.scroll.unengine.remove("unengineObserver")
2014
- },"unengineObserver")
2015
- },1000)
2016
- }
2017
- }
2018
- /********************** Content Visibility ********************************/
2019
- // 见 source/css/first.styl 如果遇到任何问题 删除 .post-story 即可
2020
- // 一个元素被声明 content-visibility 属性后 如果元素不在 viewport 中 浏览器不会计算其后代元素样式和属性 从而节省 Style & Layout 耗时
2021
- // content-visibility 的副作用: 锚点失效 等等(实验初期 暂不明确), 使用此方法清除样式
2022
- volantis.cleanContentVisibility = ()=>{
2023
- if (document.querySelector(".post-story")) {
2024
- console.log("cleanContentVisibility");
2025
- document.querySelectorAll(".post-story").forEach(e=>{
2026
- e.classList.remove("post-story")
2027
- })
2028
- }
2029
- }
2030
- /******************************************************************************/
2031
- /******************************************************************************/
2032
- /******************************************************************************/
2033
- //图像加载出错时的处理
2034
- function errorImgAvatar(img) {
2035
- img.src = "https://fastly.jsdelivr.net/npm/volantis-static/media/placeholder/avatar/round/3442075.svg";
2036
- img.onerror = null;
2037
- }
2038
- function errorImgCover(img) {
2039
- img.src = "https://fastly.jsdelivr.net/npm/volantis-static/media/placeholder/cover/76b86c0226ffd.svg";
2040
- img.onerror = null;
2041
- }
2042
- /******************************************************************************/
2043
- </script>
2044
-
2045
- <!-- import head_end begin -->
2046
- <!-- import head_end end -->
2047
- <!-- Custom Files headEnd begin-->
2048
-
2049
- <!-- Custom Files headEnd end-->
2050
- <!-- front-matter head_end begin -->
2051
- <!-- front-matter head_end end -->
2052
- </head>
2053
- <body itemscope itemtype="http://schema.org/WebPage">
2054
- <!-- import body_begin begin-->
2055
- <!-- import body_begin end-->
2056
- <!-- Custom Files bodyBegin begin-->
2057
-
2058
- <!-- Custom Files bodyBegin end-->
2059
- <!-- front-matter body_begin begin -->
2060
- <!-- front-matter body_begin end -->
2061
- <header itemscope itemtype="http://schema.org/WPHeader" id="l_header" class="l_header auto shadow floatable blur " style='opacity: 0' >
2062
- <div class='container'>
2063
- <div id='wrapper'>
2064
- <div class='nav-sub'>
2065
- <p class="title"></p>
2066
- <ul class='switcher nav-list-h m-phone' id="pjax-header-nav-list">
2067
- <li><a id="s-comment" class="fa-solid fa-comments fa-fw" target="_self" href="/" onclick="return false;" title="comment"></a></li>
2068
-
2069
- <li><a id="s-toc" class="s-toc fa-solid fa-list fa-fw" target="_self" href="/" onclick="return false;" title="toc"></a></li>
2070
-
2071
- </ul>
2072
- </div>
2073
- <div class="nav-main">
2074
-
2075
-
2076
- <a class="title flat-box" target="_self" href='/'>
2077
-
2078
-
2079
-
2080
- Mlikiowa
2081
-
2082
- </a>
2083
-
2084
-
2085
- <div class='menu navigation'>
2086
- <ul class='nav-list-h m-pc'>
2087
-
2088
-
2089
-
2090
-
2091
-
2092
- <li>
2093
- <a class="menuitem flat-box faa-parent animated-hover"
2094
- href="/" title="博客"
2095
-
2096
-
2097
-
2098
- active-action="action-home"
2099
- >
2100
- <i class='fa-solid fa-rss fa-fw'></i>博客
2101
- </a>
2102
-
2103
- </li>
2104
-
2105
-
2106
-
2107
-
2108
-
2109
- <li>
2110
- <a class="menuitem flat-box faa-parent animated-hover"
2111
- href="/categories/" title="分类"
2112
-
2113
-
2114
-
2115
- active-action="action-categories"
2116
- >
2117
- <i class='fa-solid fa-folder-open fa-fw'></i>分类
2118
- </a>
2119
-
2120
- </li>
2121
-
2122
-
2123
-
2124
-
2125
-
2126
- <li>
2127
- <a class="menuitem flat-box faa-parent animated-hover"
2128
- href="/tags/" title="标签"
2129
-
2130
-
2131
-
2132
- active-action="action-tags"
2133
- >
2134
- <i class='fa-solid fa-tags fa-fw'></i>标签
2135
- </a>
2136
-
2137
- </li>
2138
-
2139
-
2140
-
2141
-
2142
-
2143
- <li>
2144
- <a class="menuitem flat-box faa-parent animated-hover"
2145
- href="/archives/" title="归档"
2146
-
2147
-
2148
-
2149
- active-action="action-archives"
2150
- >
2151
- <i class='fa-solid fa-archive fa-fw'></i>归档
2152
- </a>
2153
-
2154
- </li>
2155
-
2156
-
2157
-
2158
-
2159
-
2160
- <li>
2161
- <a class="menuitem flat-box faa-parent animated-hover"
2162
- href="/friends/" title="友链"
2163
-
2164
-
2165
-
2166
- active-action="action-friends"
2167
- >
2168
- <i class='fa-solid fa-link fa-fw'></i>友链
2169
- </a>
2170
-
2171
- </li>
2172
-
2173
-
2174
-
2175
-
2176
-
2177
- <li>
2178
- <a class="menuitem flat-box faa-parent animated-hover"
2179
- href="/about/" title="关于"
2180
-
2181
-
2182
-
2183
- active-action="action-about"
2184
- >
2185
- <i class='fa-solid fa-info-circle fa-fw'></i>关于
2186
- </a>
2187
-
2188
- </li>
2189
-
2190
-
2191
-
2192
- </ul>
2193
- </div>
2194
-
2195
- <div class="m_search">
2196
- <form name="searchform" class="form u-search-form">
2197
- <i class="icon fa-solid fa-search fa-fw"></i>
2198
- <input type="text" class="input u-search-input" placeholder="Search..." />
2199
- </form>
2200
- </div>
2201
-
2202
-
2203
- <ul class='switcher nav-list-h m-phone'>
2204
-
2205
- <li><a class="s-search fa-solid fa-search fa-fw" target="_self" href="/" onclick="return false;" title="search"></a></li>
2206
-
2207
- <li>
2208
- <a class="s-menu fa-solid fa-bars fa-fw" target="_self" href="/" onclick="return false;" title="menu"></a>
2209
- <ul class="menu-phone list-v navigation white-box">
2210
-
2211
-
2212
-
2213
- <li>
2214
- <a class="menuitem flat-box faa-parent animated-hover"
2215
- href="/" title="博客"
2216
-
2217
-
2218
-
2219
- active-action="action-home"
2220
- >
2221
- <i class='fa-solid fa-rss fa-fw'></i>博客
2222
- </a>
2223
-
2224
- </li>
2225
-
2226
-
2227
-
2228
-
2229
-
2230
- <li>
2231
- <a class="menuitem flat-box faa-parent animated-hover"
2232
- href="/categories/" title="分类"
2233
-
2234
-
2235
-
2236
- active-action="action-categories"
2237
- >
2238
- <i class='fa-solid fa-folder-open fa-fw'></i>分类
2239
- </a>
2240
-
2241
- </li>
2242
-
2243
-
2244
-
2245
-
2246
-
2247
- <li>
2248
- <a class="menuitem flat-box faa-parent animated-hover"
2249
- href="/tags/" title="标签"
2250
-
2251
-
2252
-
2253
- active-action="action-tags"
2254
- >
2255
- <i class='fa-solid fa-tags fa-fw'></i>标签
2256
- </a>
2257
-
2258
- </li>
2259
-
2260
-
2261
-
2262
-
2263
-
2264
- <li>
2265
- <a class="menuitem flat-box faa-parent animated-hover"
2266
- href="/archives/" title="归档"
2267
-
2268
-
2269
-
2270
- active-action="action-archives"
2271
- >
2272
- <i class='fa-solid fa-archive fa-fw'></i>归档
2273
- </a>
2274
-
2275
- </li>
2276
-
2277
-
2278
-
2279
-
2280
-
2281
- <li>
2282
- <a class="menuitem flat-box faa-parent animated-hover"
2283
- href="/friends/" title="友链"
2284
-
2285
-
2286
-
2287
- active-action="action-friends"
2288
- >
2289
- <i class='fa-solid fa-link fa-fw'></i>友链
2290
- </a>
2291
-
2292
- </li>
2293
-
2294
-
2295
-
2296
-
2297
-
2298
- <li>
2299
- <a class="menuitem flat-box faa-parent animated-hover"
2300
- href="/about/" title="关于"
2301
-
2302
-
2303
-
2304
- active-action="action-about"
2305
- >
2306
- <i class='fa-solid fa-info-circle fa-fw'></i>关于
2307
- </a>
2308
-
2309
- </li>
2310
-
2311
-
2312
-
2313
- </ul>
2314
- </li>
2315
- </ul>
2316
-
2317
- <!-- Custom Files header begin -->
2318
-
2319
- <!-- Custom Files header end -->
2320
- </div>
2321
- </div>
2322
- </div>
2323
- </header>
2324
-
2325
- <div id="l_body">
2326
- <div id="l_cover">
2327
-
2328
-
2329
- <!-- see: /layout/_partial/scripts/_ctrl/coverCtrl.ejs -->
2330
- <div id="half" class='cover-wrapper search' style="display: ;">
2331
-
2332
- <div class='cover-bg lazyload placeholder' data-bg="https://picst.sunbangyan.cn/2023/12/19/e1a85b7ffee8beef520ef52df5c296da.jpeg"></div>
2333
-
2334
- <div class='cover-body'>
2335
- <div class='top'>
2336
-
2337
-
2338
- <p class="title">Mlikiowa Home Village</p>
2339
-
2340
-
2341
- </div>
2342
- <div class='bottom'>
2343
-
2344
- <div class="m_search">
2345
- <form name="searchform" class="form u-search-form">
2346
- <input type="text" class="input u-search-input" placeholder="A Wonderful Theme for Hexo" />
2347
- <i class="icon fa-solid fa-search fa-fw"></i>
2348
- </form>
2349
- </div>
2350
-
2351
- <div class='menu navigation'>
2352
- <div class='list-h'>
2353
-
2354
-
2355
- <a href="/"
2356
-
2357
-
2358
- active-action="action-home">
2359
- <p>博客</p>
2360
- </a>
2361
-
2362
- <a href="/categories/"
2363
-
2364
-
2365
- target="_self"
2366
-
2367
- active-action="action-categories">
2368
- <p>分类</p>
2369
- </a>
2370
-
2371
- <a href="/tags/"
2372
-
2373
-
2374
- active-action="action-tags">
2375
- <p>标签</p>
2376
- </a>
2377
-
2378
- <a href="/archives/"
2379
-
2380
-
2381
- active-action="action-archives">
2382
- <p>归档</p>
2383
- </a>
2384
-
2385
- <a href="/friends/"
2386
-
2387
-
2388
- active-action="action-friends">
2389
- <p>友链</p>
2390
- </a>
2391
-
2392
- <a href="/about/"
2393
-
2394
-
2395
- active-action="action-about">
2396
- <p>关于</p>
2397
- </a>
2398
-
2399
-
2400
- </div>
2401
- </div>
2402
- </div>
2403
- </div>
2404
-
2405
- <div id="scroll-down" style="display: none;"><i class="fa fa-chevron-down scroll-down-effects"></i></div>
2406
- </div>
2407
-
2408
-
2409
- </div>
2410
-
2411
- <div id="safearea">
2412
- <div class="body-wrapper">
2413
-
2414
- <div id="l_main" class=''>
2415
-
2416
-
2417
- <section class="post-list">
2418
-
2419
-
2420
-
2421
-
2422
-
2423
-
2424
-
2425
-
2426
-
2427
-
2428
-
2429
-
2430
- <div class='post-wrapper'>
2431
- <div class="post post-v3 white-box reveal shadow floatable blur" itemscope itemtype="http://schema.org/Article" >
2432
- <link itemprop="mainEntityOfPage" href="https://nanaeo.cn/2022/08/13/GaussWave/">
2433
- <span hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
2434
- <meta itemprop="name" content="Village">
2435
- </span>
2436
- <span hidden itemprop="post" itemscope itemtype="http://schema.org/Post">
2437
- <meta itemprop="name" content="Village">
2438
- <meta itemprop="description" content="It is a little blog~">
2439
- </span>
2440
-
2441
-
2442
-
2443
- <span hidden>
2444
- <meta itemprop="image" content="https://fastly.jsdelivr.net/npm/volantis-static/media/org.volantis/blog/favicon/android-chrome-192x192.png">
2445
- </span>
2446
-
2447
-
2448
-
2449
- <h2 class="article-title" itemprop="name headline">
2450
- <a href="/2022/08/13/GaussWave/" itemprop="url">
2451
- 高斯滤波
2452
- </a>
2453
- </h2>
2454
-
2455
- <div class='md article-desc' itemprop="articleBody">
2456
-
2457
- <p>高斯滤波的实现</p>
2458
-
2459
- </div>
2460
-
2461
- <div class='meta-v3' line_style='solid'>
2462
- <div>
2463
-
2464
- <time itemprop="dateCreated datePublished" datetime="2022-08-14T00:00:00+08:00">2022-08-14</time>
2465
-
2466
- <span class="dot"></span>
2467
- <a class="category-link" href="/categories/DevLog/">DevLog</a>
2468
-
2469
- <span hidden itemprop="about" itemscope itemtype="http://schema.org/Thing">
2470
- <a href="/categories/DevLog/" itemprop="url"><span itemprop="name">DevLog</span></a>
2471
- </span>
2472
-
2473
-
2474
- </div>
2475
-
2476
- <div>
2477
- <a class='readmore' href='/2022/08/13/GaussWave/' itemprop="url">
2478
- 阅读全文
2479
- </a>
2480
- </div>
2481
-
2482
- </div>
2483
-
2484
-
2485
- </div>
2486
-
2487
- </div>
2488
-
2489
-
2490
-
2491
- <div class='post-wrapper'>
2492
- <div class="post post-v3 white-box reveal shadow floatable blur" itemscope itemtype="http://schema.org/Article" >
2493
- <link itemprop="mainEntityOfPage" href="https://nanaeo.cn/2022/08/04/NewBlog/">
2494
- <span hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
2495
- <meta itemprop="name" content="Village">
2496
- </span>
2497
- <span hidden itemprop="post" itemscope itemtype="http://schema.org/Post">
2498
- <meta itemprop="name" content="Village">
2499
- <meta itemprop="description" content="It is a little blog~">
2500
- </span>
2501
-
2502
-
2503
-
2504
- <span hidden>
2505
- <meta itemprop="image" content="https://fastly.jsdelivr.net/npm/volantis-static/media/org.volantis/blog/favicon/android-chrome-192x192.png">
2506
- </span>
2507
-
2508
-
2509
-
2510
- <h2 class="article-title" itemprop="name headline">
2511
- <a href="/2022/08/04/NewBlog/" itemprop="url">
2512
- 新博客建好啦
2513
- </a>
2514
- </h2>
2515
-
2516
- <div class='md article-desc' itemprop="articleBody">
2517
-
2518
- <p>Hi Hexo,I am Mlikiowa!<br>是全新的Hexo&#x2F;vlolantis博客,我又回来写博客了!</p>
2519
-
2520
- </div>
2521
-
2522
- <div class='meta-v3' line_style='solid'>
2523
- <div>
2524
-
2525
- <time itemprop="dateCreated datePublished" datetime="2022-08-05T00:00:00+08:00">2022-08-05</time>
2526
-
2527
- <span class="dot"></span>
2528
- <a class="category-link" href="/categories/SiteLog/">SiteLog</a>
2529
-
2530
- <span hidden itemprop="about" itemscope itemtype="http://schema.org/Thing">
2531
- <a href="/categories/SiteLog/" itemprop="url"><span itemprop="name">SiteLog</span></a>
2532
- </span>
2533
-
2534
-
2535
- </div>
2536
-
2537
- <div>
2538
- <a class='readmore' href='/2022/08/04/NewBlog/' itemprop="url">
2539
- 阅读全文
2540
- </a>
2541
- </div>
2542
-
2543
- </div>
2544
-
2545
-
2546
- </div>
2547
-
2548
- </div>
2549
-
2550
-
2551
-
2552
- </section>
2553
-
2554
-
2555
-
2556
-
2557
-
2558
-
2559
- </div>
2560
- <aside id='l_side' itemscope itemtype="http://schema.org/WPSideBar">
2561
-
2562
-
2563
-
2564
-
2565
-
2566
-
2567
- <section class="widget blogger desktop pjax">
2568
- <div class='content'>
2569
-
2570
-
2571
- <a class='avatar flat-box circle' href='/about/'>
2572
- <img no-lazy src='https://q1.qlogo.cn/g?b=qq&nk=1627126029&s=100'/>
2573
- </a>
2574
-
2575
-
2576
-
2577
- <div class='text'>
2578
-
2579
-
2580
-
2581
- <p><span id="jinrishici-sentence">Village</span></p>
2582
- <script src="https://sdk.jinrishici.com/v2/browser/jinrishici.js" charset="utf-8"></script>
2583
-
2584
- </div>
2585
-
2586
-
2587
- <div class="social-wrapper">
2588
-
2589
-
2590
- <a href="/atom.xml"
2591
- class="social fa-solid fa-rss flat-btn"
2592
- target="_blank"
2593
- rel="external nofollow noopener noreferrer">
2594
-
2595
- </a>
2596
-
2597
-
2598
-
2599
- <a href="mailto:me@xxx.com"
2600
- class="social fa-solid fa-envelope flat-btn"
2601
- target="_blank"
2602
- rel="external nofollow noopener noreferrer">
2603
-
2604
- </a>
2605
-
2606
-
2607
-
2608
- <a href="https://github.com/volantis-x/"
2609
- class="social fab fa-github flat-btn"
2610
- target="_blank"
2611
- rel="external nofollow noopener noreferrer">
2612
-
2613
- </a>
2614
-
2615
-
2616
-
2617
- <a href="/"
2618
- class="social fa-solid fa-headphones-alt flat-btn"
2619
- target="_blank"
2620
- rel="external nofollow noopener noreferrer">
2621
-
2622
- </a>
2623
-
2624
-
2625
- </div>
2626
-
2627
- </div>
2628
- </section>
2629
-
2630
-
2631
-
2632
-
2633
-
2634
-
2635
-
2636
-
2637
-
2638
- <section class="widget category desktop pjax">
2639
-
2640
- <header>
2641
-
2642
- <a href='/blog/categories/'><i class="fa-solid fa-folder-open fa-fw" aria-hidden="true"></i><span class='name'>文章分类</span></a>
2643
-
2644
- </header>
2645
-
2646
-
2647
- <div class='content'>
2648
- <ul class="entry navigation">
2649
-
2650
- <li><a class="flat-box"
2651
- title="/categories/DevLog/" href="/categories/DevLog/"
2652
- active-action="action-categoriesDevLog"
2653
- ><div class='name'>DevLog</div><div class='badge'>(1)</div></a></li>
2654
-
2655
- <li><a class="flat-box"
2656
- title="/categories/SiteLog/" href="/categories/SiteLog/"
2657
- active-action="action-categoriesSiteLog"
2658
- ><div class='name'>SiteLog</div><div class='badge'>(1)</div></a></li>
2659
-
2660
- </ul>
2661
- </div>
2662
- </section>
2663
-
2664
-
2665
-
2666
-
2667
-
2668
-
2669
-
2670
-
2671
-
2672
- <section class="widget desktop pjax">
2673
-
2674
- <header>
2675
-
2676
- <i class="fa-solid fa-award fa-fw" aria-hidden="true"></i><span class='name'>站点信息</span>
2677
-
2678
- </header>
2679
-
2680
-
2681
- <div class='content'>
2682
- <div class="webinfo">
2683
-
2684
- <div class="webinfo-item">
2685
- <div>文章数目:</div>
2686
- <div>2 篇</div>
2687
- </div>
2688
-
2689
-
2690
-
2691
-
2692
-
2693
-
2694
- <div class="webinfo-item">
2695
- <div>本站总字数:</div>
2696
- <div>3.4k 字</div>
2697
- </div>
2698
-
2699
-
2700
-
2701
-
2702
-
2703
-
2704
-
2705
- <div class="webinfo-item">
2706
- <div>最后活动时间:</div>
2707
- <div id="last-update-show">2023-12-19 日</div>
2708
- </div>
2709
-
2710
- </div>
2711
- </div>
2712
- </section>
2713
-
2714
-
2715
-
2716
-
2717
-
2718
- <div class="widget-sticky pjax">
2719
-
2720
- </div>
2721
-
2722
-
2723
- <!-- 没有 pjax 占位会报错 万恶的 pjax -->
2724
-
2725
- <div class="pjax">
2726
- <!-- pjax占位 -->
2727
- </div>
2728
-
2729
- <div class="pjax">
2730
- <!-- pjax占位 -->
2731
- </div>
2732
-
2733
- <div class="pjax">
2734
- <!-- pjax占位 -->
2735
- </div>
2736
-
2737
- <div class="pjax">
2738
- <!-- pjax占位 -->
2739
- </div>
2740
-
2741
- <div class="pjax">
2742
- <!-- pjax占位 -->
2743
- </div>
2744
-
2745
- <!-- Custom Files side begin -->
2746
-
2747
- <!-- Custom Files side end -->
2748
- </aside>
2749
-
2750
-
2751
- <!--此文件用来存放一些不方便取值的变量-->
2752
- <!--思路大概是将值藏到重加载的区域内-->
2753
-
2754
- <pjax>
2755
- <script>
2756
- window.pdata={}
2757
- pdata.ispage=false;
2758
- pdata.commentPath="";
2759
- pdata.commentPlaceholder="";
2760
- pdata.commentConfig={};
2761
- // see: /layout/_partial/scripts/_ctrl/coverCtrl.ejs
2762
-
2763
- // header
2764
- var l_header=document.getElementById("l_header");
2765
-
2766
- l_header.classList.remove("show");
2767
-
2768
-
2769
- // cover
2770
- var cover_wrapper=document.querySelector('#l_cover .cover-wrapper');
2771
- var scroll_down=document.getElementById('scroll-down');
2772
- cover_wrapper.id="half";
2773
- cover_wrapper.style.display="";
2774
- scroll_down.style.display="none";
2775
-
2776
-
2777
- </script>
2778
- </pjax>
2779
- </div>
2780
-
2781
-
2782
- <footer class="footer clearfix" itemscope itemtype="http://schema.org/WPFooter">
2783
- <br><br>
2784
-
2785
-
2786
- <div class='copyright'>
2787
- <p>⌘ Hexo With Volantis</p>
2788
-
2789
- </div>
2790
-
2791
-
2792
- <!-- Custom Files footer begin-->
2793
-
2794
- <!-- Custom Files footer end-->
2795
- </footer>
2796
-
2797
-
2798
- <a id="s-top" class="fa-solid fa-arrow-up fa-fw" href="/" onclick="return false;" title="top"></a>
2799
- </div>
2800
- </div>
2801
- <div>
2802
- <script>
2803
- /******************** volantis.dom ********************************/
2804
- // 页面选择器 将dom对象缓存起来 see: /source/js/app.js etc.
2805
- volantis.dom.bodyAnchor = volantis.dom.$(document.getElementById("safearea")); // 页面主体
2806
- volantis.dom.topBtn = volantis.dom.$(document.getElementById('s-top')); // 向上
2807
- volantis.dom.wrapper = volantis.dom.$(document.getElementById('wrapper')); // 整个导航栏
2808
- volantis.dom.coverAnchor = volantis.dom.$(document.querySelector('#l_cover .cover-wrapper')); // 1个
2809
- volantis.dom.switcher = volantis.dom.$(document.querySelector('#l_header .switcher .s-search')); // 搜索按钮 移动端 1个
2810
- volantis.dom.header = volantis.dom.$(document.getElementById('l_header')); // 移动端导航栏
2811
- volantis.dom.search = volantis.dom.$(document.querySelector('#l_header .m_search')); // 搜索框 桌面端 移动端 1个
2812
- volantis.dom.mPhoneList = volantis.dom.$(document.querySelectorAll('#l_header .m-phone .list-v')); // 手机端 子菜单 多个
2813
- </script>
2814
-
2815
- <script>
2816
-
2817
- volantis.css("https://fastly.jsdelivr.net/npm/volantis-static/libs/@fortawesome/fontawesome-free/css/all.min.css");
2818
-
2819
-
2820
-
2821
- </script>
2822
-
2823
- <!-- required -->
2824
-
2825
-
2826
- <!-- internal -->
2827
-
2828
- <script src="/js/app.js"></script>
2829
-
2830
-
2831
-
2832
-
2833
-
2834
-
2835
- <!-- rightmenu要在darkmode之前(ToggleButton) darkmode要在comments之前(volantis.dark.push)-->
2836
-
2837
-
2838
-
2839
- <script>
2840
- function loadIssuesJS() {
2841
-
2842
- const sites_api = document.getElementById('sites-api');
2843
- if (sites_api != undefined && typeof SitesJS === 'undefined') {
2844
- volantis.js("/js/plugins/tags/sites.js")
2845
- }
2846
-
2847
-
2848
- const friends_api = document.getElementById('friends-api');
2849
- if (friends_api != undefined && typeof FriendsJS === 'undefined') {
2850
- volantis.js("/js/plugins/tags/friends.js")
2851
- }
2852
-
2853
-
2854
- const contributors_api = document.getElementById('contributors-api');
2855
- if (contributors_api != undefined && typeof ContributorsJS === 'undefined') {
2856
- volantis.js("/js/plugins/tags/contributors.js")
2857
- }
2858
-
2859
- };
2860
- loadIssuesJS()
2861
- volantis.pjax.push(()=>{
2862
- loadIssuesJS();
2863
- })
2864
-
2865
- </script>
2866
-
2867
-
2868
-
2869
-
2870
- <script defer src="https://fastly.jsdelivr.net/npm/volantis-static/libs/vanilla-lazyload/dist/lazyload.min.js"></script>
2871
- <script>
2872
- // https://www.npmjs.com/package/vanilla-lazyload
2873
- // Set the options globally
2874
- // to make LazyLoad self-initialize
2875
- window.lazyLoadOptions = {
2876
- elements_selector: ".lazyload",
2877
- threshold: 0
2878
- };
2879
- // Listen to the initialization event
2880
- // and get the instance of LazyLoad
2881
- window.addEventListener(
2882
- "LazyLoad::Initialized",
2883
- function (event) {
2884
- window.lazyLoadInstance = event.detail.instance;
2885
- },
2886
- false
2887
- );
2888
- document.addEventListener('DOMContentLoaded', function () {
2889
- lazyLoadInstance.update();
2890
- });
2891
- document.addEventListener('pjax:complete', function () {
2892
- lazyLoadInstance.update();
2893
- });
2894
- </script>
2895
-
2896
-
2897
-
2898
-
2899
-
2900
-
2901
- <script>
2902
- window.FPConfig = {
2903
- delay: 0,
2904
- ignoreKeywords: ["#"],
2905
- maxRPS: 6,
2906
- hoverDelay: 0
2907
- };
2908
- </script>
2909
- <script defer src="https://fastly.jsdelivr.net/npm/volantis-static/libs/flying-pages/flying-pages.min.js"></script>
2910
-
2911
-
2912
-
2913
-
2914
-
2915
-
2916
-
2917
-
2918
-
2919
- <script>
2920
- volantis.layoutHelper("comments",`<div id="giscus_container"></div>`)
2921
-
2922
- volantis.giscus = {};
2923
-
2924
- function check_giscus() {
2925
- if (volantis.dark.mode === "dark") {
2926
- volantis.giscus.Theme = 'dark';
2927
- } else {
2928
- volantis.giscus.Theme = 'light';
2929
- }
2930
-
2931
- return document.getElementById("giscus_container");
2932
- }
2933
-
2934
- function pjax_giscus() {
2935
- const HEAD = check_giscus();
2936
- if (!HEAD) return;
2937
- let cfg = Object.assign({"theme":{"light":"light","dark":"dark"},"repo":"Mlikiowa/MliKiowa.github.io","repo-id":"R_kgDOHxvLiA","category":"General","category-id":"DIC_kwDOHxvLiM4CQr9N","mapping":"url","reactions-enabled":"1","emit-metadata":"0","lang":"zh-CN"},pdata.commentConfig)
2938
- const script = document.createElement('script');
2939
- script.setAttribute('src', 'https://giscus.app/client.js');
2940
- Object.keys(cfg).forEach(k=>{
2941
- if (k != "theme") {
2942
- script.setAttribute('data-'+k, cfg[k]);
2943
- }
2944
- })
2945
- script.setAttribute('data-theme', volantis.giscus.Theme);
2946
- script.setAttribute('crossorigin', "anonymous");
2947
- HEAD.appendChild(script);
2948
- }
2949
-
2950
- function dark_giscus() {
2951
- const HEAD = check_giscus();
2952
- if (!HEAD) return;
2953
-
2954
- const message = {
2955
- setConfig: {
2956
- theme: volantis.giscus.Theme
2957
- }
2958
- };
2959
- const giscusIframe = document.querySelector('iframe.giscus-frame');
2960
- giscusIframe.contentWindow.postMessage({ giscus: message }, 'https://giscus.app');
2961
- }
2962
- pjax_giscus();
2963
- volantis.pjax.push(pjax_giscus);
2964
- volantis.dark.push(dark_giscus);
2965
- </script>
2966
-
2967
-
2968
-
2969
-
2970
-
2971
-
2972
-
2973
- <!-- optional -->
2974
-
2975
- <script>
2976
- const SearchServiceDataPathRoot = ("/" || "/").endsWith("/") ?
2977
- "/" || "/" :
2978
- "//" || "/";
2979
- const SearchServiceDataPath = SearchServiceDataPathRoot + "content.json";
2980
-
2981
- function loadSearchScript() {
2982
- // see: layout/_partial/scripts/_ctrl/cdnCtrl.ejs
2983
- return volantis.js("/js/search/hexo.js");
2984
- }
2985
-
2986
- function loadSearchService() {
2987
- loadSearchScript();
2988
- document.querySelectorAll(".input.u-search-input").forEach((e) => {
2989
- e.removeEventListener("focus", loadSearchService, false);
2990
- });
2991
-
2992
- document.querySelectorAll(".u-search-form").forEach((e) => {
2993
- e.addEventListener("submit", (event) => {
2994
- event.preventDefault();
2995
- }, false);
2996
- });
2997
- }
2998
-
2999
- // 打开并搜索 字符串 s
3000
- function OpenSearch(s) {
3001
- if (typeof SearchService === 'undefined')
3002
- loadSearchScript().then(() => {
3003
- SearchService.setQueryText(s);
3004
- SearchService.search();
3005
- });
3006
- else {
3007
- SearchService.setQueryText(s);
3008
- SearchService.search();
3009
- }
3010
- }
3011
-
3012
- // 访问含有 ?s=xxx 的链接时打开搜索 // 与搜索引擎 structured data 相关: /scripts/helpers/structured-data/lib/config.js
3013
- if (window.location.search && /^\?s=/g.test(window.location.search)) {
3014
- let queryText = decodeURI(window.location.search)
3015
- .replace(/\ /g, "-")
3016
- .replace(/^\?s=/g, "");
3017
- OpenSearch(queryText);
3018
- }
3019
-
3020
- // 搜索输入框获取焦点时加载搜索
3021
- document.querySelectorAll(".input.u-search-input").forEach((e) => {
3022
- e.addEventListener("focus", loadSearchService, false);
3023
- });
3024
- </script>
3025
-
3026
-
3027
-
3028
-
3029
-
3030
-
3031
-
3032
- <script>
3033
-
3034
-
3035
-
3036
- function pjax_highlightjs_copyCode(){
3037
- if (!(document.querySelector(".highlight .code pre") ||
3038
- document.querySelector(".article pre code"))) {
3039
- return;
3040
- }
3041
- VolantisApp.utilCopyCode(".highlight .code pre, .article pre code")
3042
- }
3043
- volantis.requestAnimationFrame(pjax_highlightjs_copyCode)
3044
- volantis.pjax.push(pjax_highlightjs_copyCode)
3045
-
3046
- </script>
3047
-
3048
-
3049
-
3050
-
3051
-
3052
-
3053
-
3054
-
3055
-
3056
-
3057
-
3058
-
3059
- <script>
3060
- function load_swiper() {
3061
- if (!document.querySelectorAll(".swiper-container")[0]) return;
3062
- volantis.css("https://fastly.jsdelivr.net/npm/volantis-static/libs/swiper/swiper-bundle.min.css");
3063
- volantis.js("https://fastly.jsdelivr.net/npm/volantis-static/libs/swiper/swiper-bundle.min.js").then(() => {
3064
- pjax_swiper();
3065
- });
3066
- }
3067
-
3068
- load_swiper();
3069
-
3070
- function pjax_swiper() {
3071
- volantis.swiper = new Swiper('.swiper-container', {
3072
- slidesPerView: 'auto',
3073
- spaceBetween: 8,
3074
- centeredSlides: true,
3075
- loop: true,
3076
- pagination: {
3077
- el: '.swiper-pagination',
3078
- clickable: true,
3079
- },
3080
- navigation: {
3081
- nextEl: '.swiper-button-next',
3082
- prevEl: '.swiper-button-prev',
3083
- },
3084
- });
3085
- }
3086
-
3087
- volantis.pjax.push(() => {
3088
- if (!document.querySelectorAll(".swiper-container")[0]) return;
3089
- if (typeof volantis.swiper === "undefined") {
3090
- load_swiper();
3091
- } else {
3092
- pjax_swiper();
3093
- }
3094
- });
3095
- </script>
3096
-
3097
-
3098
- <!-- pjax 标签必须存在于所有页面 否则 pjax error -->
3099
- <pjax>
3100
-
3101
- </pjax>
3102
-
3103
- <script>
3104
- function listennSidebarTOC() {
3105
- const navItems = document.querySelectorAll(".toc li");
3106
- if (!navItems.length) return;
3107
- let targets = []
3108
- const sections = [...navItems].map((element) => {
3109
- const link = element.querySelector(".toc-link");
3110
- const target = document.getElementById(
3111
- decodeURI(link.getAttribute("href")).replace("#", "")
3112
- );
3113
- targets.push(target)
3114
- // 解除 a 标签 href 的 锚点定位, a 标签 href 的 锚点定位 会随机启用?? 产生错位???
3115
- link.setAttribute("onclick","return false;")
3116
- link.setAttribute("toc-action","toc-"+decodeURI(link.getAttribute("href")).replace("#", ""))
3117
- link.setAttribute("href","/")
3118
- // 配置 点击 触发新的锚点定位
3119
- link.addEventListener("click", (event) => {
3120
- event.preventDefault();
3121
- // 这里的 addTop 是通过错位使得 toc 自动展开.
3122
- volantis.scroll.to(target,{addTop: 5, observer:true})
3123
- // Anchor id
3124
- history.pushState(null, document.title, "#" + target.id);
3125
- });
3126
- return target;
3127
- });
3128
-
3129
- function activateNavByIndex(target) {
3130
- if (target.classList.contains("active-current")) return;
3131
-
3132
- document.querySelectorAll(".toc .active").forEach((element) => {
3133
- element.classList.remove("active", "active-current");
3134
- });
3135
- target.classList.add("active", "active-current");
3136
- let parent = target.parentNode;
3137
- while (!parent.matches(".toc")) {
3138
- if (parent.matches("li")) parent.classList.add("active");
3139
- parent = parent.parentNode;
3140
- }
3141
- }
3142
-
3143
- // 方案一:
3144
- volantis.activateNavIndex=0
3145
- activateNavByIndex(navItems[volantis.activateNavIndex])
3146
- volantis.scroll.push(()=>{
3147
- if (targets[0].getBoundingClientRect().top >= 0) {
3148
- volantis.activateNavIndex = 0
3149
- }else if (targets[targets.length-1].getBoundingClientRect().top < 0) {
3150
- volantis.activateNavIndex = targets.length-1
3151
- } else {
3152
- for (let index = 0; index < targets.length; index++) {
3153
- const target0 = targets[index];
3154
- const target1 = targets[(index+1)%targets.length];
3155
- if (target0.getBoundingClientRect().top < 0&&target1.getBoundingClientRect().top >= 0) {
3156
- volantis.activateNavIndex=index
3157
- break;
3158
- }
3159
- }
3160
- }
3161
- activateNavByIndex(navItems[volantis.activateNavIndex])
3162
- })
3163
-
3164
- // 方案二:
3165
- // IntersectionObserver 不是完美精确到像素级别 也不是低延时性的
3166
- // function findIndex(entries) {
3167
- // let index = 0;
3168
- // let entry = entries[index];
3169
- // if (entry.boundingClientRect.top > 0) {
3170
- // index = sections.indexOf(entry.target);
3171
- // return index === 0 ? 0 : index - 1;
3172
- // }
3173
- // for (; index < entries.length; index++) {
3174
- // if (entries[index].boundingClientRect.top <= 0) {
3175
- // entry = entries[index];
3176
- // } else {
3177
- // return sections.indexOf(entry.target);
3178
- // }
3179
- // }
3180
- // return sections.indexOf(entry.target);
3181
- // }
3182
- // function createIntersectionObserver(marginTop) {
3183
- // marginTop = Math.floor(marginTop + 10000);
3184
- // let intersectionObserver = new IntersectionObserver(
3185
- // (entries, observe) => {
3186
- // let scrollHeight = document.documentElement.scrollHeight;
3187
- // if (scrollHeight > marginTop) {
3188
- // observe.disconnect();
3189
- // createIntersectionObserver(scrollHeight);
3190
- // return;
3191
- // }
3192
- // let index = findIndex(entries);
3193
- // activateNavByIndex(navItems[index]);
3194
- // }, {
3195
- // rootMargin: marginTop + "px 0px -100% 0px",
3196
- // threshold: 0,
3197
- // }
3198
- // );
3199
- // sections.forEach((element) => {
3200
- // element && intersectionObserver.observe(element);
3201
- // });
3202
- // }
3203
- // createIntersectionObserver(document.documentElement.scrollHeight);
3204
- }
3205
-
3206
- document.addEventListener("DOMContentLoaded", ()=>{
3207
- volantis.requestAnimationFrame(listennSidebarTOC)
3208
- });
3209
- document.addEventListener("pjax:success", ()=>{
3210
- volantis.requestAnimationFrame(listennSidebarTOC)
3211
- });
3212
- </script>
3213
-
3214
-
3215
- <script>
3216
- try {
3217
- // https://web.dev/content-visibility/
3218
- // https://www.caniuse.com/?search=content-visibility
3219
- // https://infrequently.org/2020/12/content-visibility-scroll-fix/
3220
- // https://infrequently.org/2020/12/resize-resilient-deferred-rendering/
3221
-
3222
- // 备注 目前已知的问题:
3223
- // 动态修改导致的内容高度变化(例如评论框异步渲染的外部盒子高度变化) 无法提前获知, 进而导致的首次滚动条跳动无法去除 (wontfix) 事实上不使用 content-visibility 也会有跳动, 不过是比使用 content-visibility 跳动提前
3224
- // scrollreveal 插件潜在问题 目前尚不明确
3225
-
3226
- let eqIsh = (a, b, fuzz = 2) => {
3227
- return Math.abs(a - b) <= fuzz;
3228
- };
3229
-
3230
- let rectNotEQ = (a, b) => {
3231
- return !eqIsh(a.width, b.width) || !eqIsh(a.height, b.height);
3232
- };
3233
-
3234
- // Keep a map of elements and the dimensions of
3235
- // their place-holders, re-setting the element's
3236
- // intrinsic size when we get updated measurements
3237
- // from observers.
3238
- let spaced = new WeakMap();
3239
-
3240
- // Only call this when known cheap, post layout
3241
- let reserveSpace = (el, rect = el.getClientBoundingRect()) => {
3242
- let old = spaced.get(el);
3243
- // Set intrinsic size to prevent jumping on un-painting:
3244
- // https://drafts.csswg.org/css-sizing-4/#intrinsic-size-override
3245
- if (!old || rectNotEQ(old, rect)) {
3246
- spaced.set(el, rect);
3247
- el.style["contain-intrinsic-size"] = `${rect.width}px ${rect.height}px`;
3248
- }
3249
- };
3250
-
3251
- let iObs = new IntersectionObserver(
3252
- (entries, o) => {
3253
- entries.forEach((entry) => {
3254
- // We don't care if the element is intersecting or
3255
- // has been laid out as our page structure ensures
3256
- // they'll get the right width.
3257
- reserveSpace(entry.target, entry.boundingClientRect);
3258
- });
3259
- },
3260
- { rootMargin: "500px 0px 500px 0px" }
3261
- );
3262
-
3263
- let rObs = new ResizeObserver((entries, o) => {
3264
- entries.forEach((entry) => {
3265
- reserveSpace(entry.target, entry.contentRect);
3266
- });
3267
- });
3268
-
3269
- let resizeResilientDeferredRendering = (Selector) => {
3270
- let articles = document.querySelectorAll(Selector);
3271
-
3272
- if (articles.length) {
3273
- articles.forEach((el) => {
3274
- iObs.observe(el);
3275
- rObs.observe(el);
3276
- });
3277
-
3278
- // Workaround for Chrome bug, part 2.
3279
- //
3280
- // Re-enable browser management of rendering for the
3281
- // first article after the first paint. Double-rAF
3282
- // to ensure we get called after a layout.
3283
- requestAnimationFrame(() => {
3284
- requestAnimationFrame(() => {
3285
- articles[0].style["content-visibility"] = "auto";
3286
- });
3287
- });
3288
- }
3289
- };
3290
-
3291
- let contentVisibilityScrollFix = () => {
3292
- if (!("content-visibility" in document.documentElement.style)) {
3293
- return;
3294
- }
3295
- resizeResilientDeferredRendering(".post-story");
3296
- };
3297
- contentVisibilityScrollFix();
3298
- volantis.pjax.push(contentVisibilityScrollFix);
3299
- } catch (error) {
3300
- console.log(error);
3301
- }
3302
- </script>
3303
-
3304
-
3305
-
3306
- <script>
3307
- document.onreadystatechange = function () {
3308
- if (document.readyState == 'complete') {
3309
- // 页面加载完毕 样式加载失败,或是当前网速慢,或是开启了省流模式
3310
- const { saveData, effectiveType } = navigator.connection || navigator.mozConnection || navigator.webkitConnection || {}
3311
- if (getComputedStyle(document.querySelector("#safearea"), null)["display"] == "none" || saveData || /2g/.test(effectiveType)) {
3312
- document.querySelectorAll(".reveal").forEach(function (e) {
3313
- e.style["opacity"] = "1";
3314
- });
3315
- document.querySelector("#safearea").style["display"] = "block";
3316
- }
3317
- }
3318
- }
3319
- </script>
3320
-
3321
-
3322
- <script type="application/ld+json">[{"@context":"http://schema.org","@type":"Organization","name":"Village","url":"https://nanaeo.cn/","logo":{"@type":"ImageObject","url":"https://fastly.jsdelivr.net/npm/volantis-static/media/org.volantis/blog/favicon/android-chrome-192x192.png","width":192,"height":192}},{"@context":"http://schema.org","@type":"Person","name":"Mlikiowa","image":{"@type":"ImageObject","url":"https://fastly.jsdelivr.net/npm/volantis-static/media/org.volantis/blog/favicon/android-chrome-192x192.png"},"url":"https://nanaeo.cn/","sameAs":["https://github.com/volantis-x"],"description":"It is a little blog~"},{"@context":"http://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"item":{"@id":"https://nanaeo.cn/","name":"Village"}},{"@type":"ListItem","position":2,"item":{"@id":"https://nanaeo.cn/archives/","name":"Archive"}},{"@type":"ListItem","position":3,"item":{"@id":"https://nanaeo.cn/archives/2022/","name":"2022年"}}]},{"@context":"http://schema.org","@type":"WebSite","name":"Village","url":"https://nanaeo.cn/","keywords":null,"description":"It is a little blog~","author":{"@type":"Person","name":"Mlikiowa","image":{"@type":"ImageObject","url":"https://fastly.jsdelivr.net/npm/volantis-static/media/org.volantis/blog/favicon/android-chrome-192x192.png"},"url":"https://nanaeo.cn/","description":"It is a little blog~"},"publisher":{"@type":"Organization","name":"Village","url":"https://nanaeo.cn/","logo":{"@type":"ImageObject","url":"https://fastly.jsdelivr.net/npm/volantis-static/media/org.volantis/blog/favicon/android-chrome-192x192.png","width":192,"height":192}},"potentialAction":{"@type":"SearchAction","name":"Site Search","target":{"@type":"EntryPoint","urlTemplate":"https://nanaeo.cn?s={search_term_string}"},"query-input":"required name=search_term_string"}},{"@context":"http://schema.org","@type":"BlogPosting","description":"It is a little blog~","inLanguage":["zh-CN","en","default"],"mainEntityOfPage":{"@type":"WebPage"},"author":{"@type":"Person","name":"Mlikiowa","image":{"@type":"ImageObject","url":"https://fastly.jsdelivr.net/npm/volantis-static/media/org.volantis/blog/favicon/android-chrome-192x192.png"},"url":"https://nanaeo.cn/"},"publisher":{"@type":"Organization","name":"Village","logo":{"@type":"ImageObject","url":"https://fastly.jsdelivr.net/npm/volantis-static/media/org.volantis/blog/favicon/android-chrome-192x192.png","width":192,"height":192}},"wordCount":0,"image":{"@type":"ImageObject","url":"https://fastly.jsdelivr.net/npm/volantis-static/media/org.volantis/blog/favicon/android-chrome-192x192.png","width":192,"height":192}}]</script>
3323
-
3324
-
3325
-
3326
-
3327
- <!--
3328
- pjax重载区域接口:
3329
- 1. <pjax></pjax> 标签 pjax 标签必须存在于所有页面 否则 pjax error
3330
- 2. script[data-pjax]
3331
- 3. .pjax-reload script
3332
- 4. .pjax
3333
- -->
3334
-
3335
-
3336
-
3337
- <script src="https://fastly.jsdelivr.net/npm/volantis-static/libs/pjax/pjax.min.js"></script>
3338
-
3339
-
3340
- <script>
3341
- var pjax;
3342
- document.addEventListener('DOMContentLoaded', function () {
3343
- pjax = new Pjax({
3344
- elements: 'a[href]:not([href^="#"]):not([href="javascript:void(0)"]):not([pjax-fancybox]):not([onclick="return false;"]):not([onclick="return!1"]):not([target="_blank"]):not([target="view_window"]):not([href$=".xml"])',
3345
- selectors: [
3346
- "head title",
3347
- "head meta[name=keywords]",
3348
- "head meta[name=description]",
3349
-
3350
- "#l_main",
3351
- "#pjax-header-nav-list",
3352
- ".pjax",
3353
- "pjax", // <pjax></pjax> 标签
3354
- "script[data-pjax], .pjax-reload script" // script标签添加data-pjax 或 script标签外层添加.pjax-reload 的script代码段重载
3355
- ],
3356
- cacheBust: false, // url 地址追加时间戳,用以避免浏览器缓存
3357
- timeout: 5000,
3358
-
3359
- });
3360
- });
3361
-
3362
- document.addEventListener('pjax:send', function (e) {
3363
- //window.stop(); // 相当于点击了浏览器的停止按钮
3364
-
3365
- try {
3366
- var currentUrl = window.location.pathname;
3367
- var targetUrl = e.triggerElement.href;
3368
- var banUrl = [""];
3369
- if (banUrl[0] != "") {
3370
- banUrl.forEach(item => {
3371
- if(currentUrl.indexOf(item) != -1 || targetUrl.indexOf(item) != -1) {
3372
- window.location.href = targetUrl;
3373
- }
3374
- });
3375
- }
3376
- } catch (error) {}
3377
-
3378
- // 使用 volantis.pjax.send 方法传入pjax:send回调函数 参见layout/_partial/scripts/global.ejs
3379
- volantis.pjax.method.send.start();
3380
- });
3381
-
3382
- document.addEventListener('pjax:complete', function () {
3383
- // 使用 volantis.pjax.push 方法传入重载函数 参见layout/_partial/scripts/global.ejs
3384
- volantis.pjax.method.complete.start();
3385
- });
3386
-
3387
- document.addEventListener('pjax:error', function (e) {
3388
- if(volantis.debug) {
3389
- console.error(e);
3390
- console.log('pjax error: \n' + JSON.stringify(e));
3391
- }else{
3392
- // 使用 volantis.pjax.error 方法传入pjax:error回调函数 参见layout/_partial/scripts/global.ejs
3393
- volantis.pjax.method.error.start();
3394
- window.location.href = e.triggerElement.href;
3395
- }
3396
- });
3397
- </script>
3398
-
3399
-
3400
- </div>
3401
- <!-- import body_end begin-->
3402
- <script data-pjax async src="https://ackee.nanaeo.cn/tracker.js" data-ackee-server="https://ackee.nanaeo.cn" data-ackee-domain-id="3e94aa30-5cea-4f2b-9ec6-c0178d3beb0c"></script>
3403
- <script>"serviceWorker"in navigator&&navigator.serviceWorker.register("/volantis-sw.js").then(function(n){n.onupdatefound=function(){var e=n.installing;e.onstatechange=function(){switch(e.state){case"installed":navigator.serviceWorker.controller?console.log("Updated serviceWorker."):console.log("serviceWorker Sucess!");break;case"redundant":console.log("The installing service worker became redundant.")}}}}).catch(function(e){console.log("Error during service worker registration:",e)}); </script>
3404
- <!-- import body_end end-->
3405
- <!-- Custom Files bodyEnd begin-->
3406
-
3407
- <!-- Custom Files bodyEnd end-->
3408
- <!-- front-matter body_end begin -->
3409
- <!-- front-matter body_end end -->
3410
- </body>
3411
- </html>
1
+ <!DOCTYPE html><html lang="zh-CN,en,default"><head hexo-theme="https://github.com/volantis-x/hexo-theme-volantis/#5.8.0"><meta name="generator" content="Hexo 6.3.0"><meta name="Volantis" content="5.8.0"><meta charset="utf-8"><meta name="robots" content="noindex,follow"><link rel="canonical" href="https://nanaeo.cn/archives/2022/"><meta http-equiv="x-dns-prefetch-control" content="on"><link rel="dns-prefetch" href="https://unpkg.com"><link rel="preconnect" href="https://unpkg.com" crossorigin><meta name="renderer" content="webkit"><meta name="force-rendering" content="webkit"><meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1"><meta http-equiv="Content-Security-Policy" content=" default-src 'self' https:; block-all-mixed-content; base-uri 'self' https:; form-action 'self' https:; worker-src 'self' https:; connect-src 'self' https: *; img-src 'self' data: https: *; media-src 'self' https: *; font-src 'self' data: https: *; frame-src 'self' https: *; manifest-src 'self' https: *; child-src https:; script-src 'self' https: 'unsafe-inline' *; style-src 'self' https: 'unsafe-inline' *; "><meta name="HandheldFriendly" content="True"><meta name="apple-mobile-web-app-capable" content="yes"><meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=5"><meta content="black-translucent" name="apple-mobile-web-app-status-bar-style"><meta content="telephone=no" name="format-detection"><link rel="preload" href="/css/style.css" as="style"><link rel="preload" href="https://nanaeo.cn/asset/Sotheby.ttf" as="font" type="font/ttf" crossorigin="anonymous"><link rel="preload" href="https://fastly.jsdelivr.net/gh/moieo/moieo@main/moieo.woff2" as="font" type="font/woff2" crossorigin="anonymous"><title>归档:2022 - Village</title><meta name="keywords" content="null"><meta desc name="description" content="It is a little blog~ - Mlikiowa - Village"><meta property="og:type" content="website"><meta property="og:title" content="Village"><meta property="og:url" content="https://nanaeo.cn/archives/2022/index.html"><meta property="og:site_name" content="Village"><meta property="og:description" content="It is a little blog~"><meta property="og:locale" content="zh_CN"><meta property="og:image" content="https://fastly.jsdelivr.net/npm/volantis-static/media/org.volantis/blog/favicon/android-chrome-192x192.png"><meta property="article:author" content="Mlikiowa"><meta name="twitter:card" content="summary"><meta name="twitter:image" content="https://fastly.jsdelivr.net/npm/volantis-static/media/org.volantis/blog/favicon/android-chrome-192x192.png"><style>#safearea{display:none}.post-story+.post-story{content-visibility:auto;contain-intrinsic-size:10px 500px}:root{--color-site-body:#e0eeee;--color-site-bg:#e0eeee;--color-site-inner:#fff;--color-site-footer:#666;--color-card:#fff0f5;--color-text:#eea9b8;--color-block:#f6f6f6;--color-inlinecode:#ec7bb6;--color-codeblock:#e0eeee;--color-h1:#3a3a3a;--color-h2:#3a3a3a;--color-h3:#23464f;--color-h4:#23464f;--color-h5:#23464f;--color-h6:#23464f;--color-p:#23464f;--color-list:#eea9b8;--color-list-hl:#f7cdd4;--color-meta:#888;--color-read-bkg:#e0d8c8;--color-read-post:#f8f1e2;--color-copyright-bkg:#f5f5f5}*{box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;outline:0;margin:0;padding:0}::-webkit-scrollbar{height:4px;width:4px}::-webkit-scrollbar-track-piece{background:0 0}::-webkit-scrollbar-thumb{background:#fcc;cursor:pointer;border-radius:2px;-webkit-border-radius:2px}::-webkit-scrollbar-thumb:hover{background:#ff5722}html{color:var(--color-text);width:100%;height:100%;font-family:Dosis,"PingFang SC","Microsoft YaHei",Helvetica,Arial,Menlo,Monaco,monospace,sans-serif;font-size:16px}html>::-webkit-scrollbar{height:4px;width:4px}html>::-webkit-scrollbar-track-piece{background:0 0}html>::-webkit-scrollbar-thumb{background:#54b5a0 linear-gradient(45deg,rgba(255,255,255,.4) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.4) 50%,rgba(255,255,255,.4) 75%,transparent 75%,transparent);cursor:pointer;border-radius:2px;-webkit-border-radius:2px}html>::-webkit-scrollbar-thumb:hover{background:#54b5a0 linear-gradient(45deg,rgba(255,255,255,.4) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.4) 50%,rgba(255,255,255,.4) 75%,transparent 75%,transparent)}body{background-color:var(--color-site-body);text-rendering:optimizelegibility;-webkit-tap-highlight-color:transparent;line-height:1.6;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body.modal-active{overflow:hidden}@media screen and (max-width:680px){body.modal-active{position:fixed;top:0;right:0;bottom:0;left:0}}a{color:#ec7bb6;cursor:pointer;text-decoration:none;transition:all .28s ease;-webkit-transition:all .28s ease;-khtml-transition:all .28s ease;-moz-transition:all .28s ease;-o-transition:all .28s ease;-ms-transition:all .28s ease}a:hover{color:#ff5722}a:active,a:hover{outline:0}ol,ul{padding-left:0}ol li,ul li{list-style:none}header{display:-webkit-box;display:-moz-box;display:block}img{border:0;background:0 0;max-width:100%}svg:not(:root){overflow:hidden}hr{-moz-box-sizing:content-box;box-sizing:content-box;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;height:0;border:0;border-radius:1px;-webkit-border-radius:1px;border-bottom:1px solid rgba(238,169,184,.1)}button,input{color:inherit;font:inherit;margin:0}button{overflow:visible;text-transform:none;-webkit-appearance:button;cursor:pointer}@supports (backdrop-filter:blur(20px)){.blur{background:rgba(255,240,245,.9)!important;backdrop-filter:saturate(200%) blur(20px)}}.shadow{box-shadow:0 1px 2px 0 rgba(0,0,0,.1);-webkit-box-shadow:0 1px 2px 0 rgba(0,0,0,.1)}.shadow.floatable{transition:all .28s ease;-webkit-transition:all .28s ease;-khtml-transition:all .28s ease;-moz-transition:all .28s ease;-o-transition:all .28s ease;-ms-transition:all .28s ease}.shadow.floatable:hover{box-shadow:0 2px 4px 0 rgba(0,0,0,.1),0 4px 8px 0 rgba(0,0,0,.1),0 8px 16px 0 rgba(0,0,0,.1);-webkit-box-shadow:0 2px 4px 0 rgba(0,0,0,.1),0 4px 8px 0 rgba(0,0,0,.1),0 8px 16px 0 rgba(0,0,0,.1)}#l_cover{min-height:64px}.cover-wrapper{top:0;left:0;max-width:100%;height:100vh;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;display:flex;flex-wrap:nowrap;-webkit-flex-wrap:nowrap;-khtml-flex-wrap:nowrap;-moz-flex-wrap:nowrap;-o-flex-wrap:nowrap;-ms-flex-wrap:nowrap;-webkit-box-direction:normal;-moz-box-direction:normal;-webkit-box-orient:vertical;-moz-box-orient:vertical;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;align-items:center;align-self:center;align-content:center;color:var(--color-site-inner);padding:0 16px;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;position:relative;overflow:hidden;margin-bottom:-100px}.cover-wrapper .cover-bg{position:absolute;width:100%;height:100%;background-position:center;background-size:cover;-webkit-background-size:cover;-moz-background-size:cover}.cover-wrapper .cover-bg.lazyload:not(.loaded){opacity:0;-webkit-opacity:0;-moz-opacity:0}.cover-wrapper .cover-bg.lazyload.loaded{animation-delay:0s;animation-duration:.5s;animation-fill-mode:forwards;animation-timing-function:ease-out;animation-name:fadeIn}@-moz-keyframes fadeIn{0%{opacity:0;-webkit-opacity:0;-moz-opacity:0;filter:blur(12px);transform:scale(1.02);-webkit-transform:scale(1.02);-khtml-transform:scale(1.02);-moz-transform:scale(1.02);-o-transform:scale(1.02);-ms-transform:scale(1.02)}100%{opacity:1;-webkit-opacity:1;-moz-opacity:1}}@-webkit-keyframes fadeIn{0%{opacity:0;-webkit-opacity:0;-moz-opacity:0;filter:blur(12px);transform:scale(1.02);-webkit-transform:scale(1.02);-khtml-transform:scale(1.02);-moz-transform:scale(1.02);-o-transform:scale(1.02);-ms-transform:scale(1.02)}100%{opacity:1;-webkit-opacity:1;-moz-opacity:1}}@-o-keyframes fadeIn{0%{opacity:0;-webkit-opacity:0;-moz-opacity:0;filter:blur(12px);transform:scale(1.02);-webkit-transform:scale(1.02);-khtml-transform:scale(1.02);-moz-transform:scale(1.02);-o-transform:scale(1.02);-ms-transform:scale(1.02)}100%{opacity:1;-webkit-opacity:1;-moz-opacity:1}}@keyframes fadeIn{0%{opacity:0;-webkit-opacity:0;-moz-opacity:0;filter:blur(12px);transform:scale(1.02);-webkit-transform:scale(1.02);-khtml-transform:scale(1.02);-moz-transform:scale(1.02);-o-transform:scale(1.02);-ms-transform:scale(1.02)}100%{opacity:1;-webkit-opacity:1;-moz-opacity:1}}.cover-wrapper .cover-body{z-index:1;position:relative;width:100%;height:100%}.cover-wrapper#full{height:calc(100vh + 100px);padding-bottom:100px}.cover-wrapper#half{max-height:640px;min-height:400px;height:calc(36vh - 64px + 200px)}.cover-wrapper #scroll-down{width:100%;height:64px;position:absolute;bottom:100px;text-align:center;cursor:pointer}.cover-wrapper #scroll-down .scroll-down-effects{color:#fff;font-size:24px;line-height:64px;position:absolute;width:24px;left:calc(50% - 12px);text-shadow:0 1px 2px rgba(0,0,0,.1);animation:scroll-down-effect 1.5s infinite;-webkit-animation:scroll-down-effect 1.5s infinite;-khtml-animation:scroll-down-effect 1.5s infinite;-moz-animation:scroll-down-effect 1.5s infinite;-o-animation:scroll-down-effect 1.5s infinite;-ms-animation:scroll-down-effect 1.5s infinite}@-moz-keyframes scroll-down-effect{0%{top:0;opacity:1;-webkit-opacity:1;-moz-opacity:1}50%{top:-16px;opacity:.4;-webkit-opacity:.4;-moz-opacity:.4}100%{top:0;opacity:1;-webkit-opacity:1;-moz-opacity:1}}@-webkit-keyframes scroll-down-effect{0%{top:0;opacity:1;-webkit-opacity:1;-moz-opacity:1}50%{top:-16px;opacity:.4;-webkit-opacity:.4;-moz-opacity:.4}100%{top:0;opacity:1;-webkit-opacity:1;-moz-opacity:1}}@-o-keyframes scroll-down-effect{0%{top:0;opacity:1;-webkit-opacity:1;-moz-opacity:1}50%{top:-16px;opacity:.4;-webkit-opacity:.4;-moz-opacity:.4}100%{top:0;opacity:1;-webkit-opacity:1;-moz-opacity:1}}@keyframes scroll-down-effect{0%{top:0;opacity:1;-webkit-opacity:1;-moz-opacity:1}50%{top:-16px;opacity:.4;-webkit-opacity:.4;-moz-opacity:.4}100%{top:0;opacity:1;-webkit-opacity:1;-moz-opacity:1}}.cover-wrapper .cover-body{margin-top:64px;margin-bottom:100px}.cover-wrapper .cover-body,.cover-wrapper .cover-body .bottom,.cover-wrapper .cover-body .top{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;display:flex;-webkit-box-direction:normal;-moz-box-direction:normal;-webkit-box-orient:vertical;-moz-box-orient:vertical;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;align-items:center;justify-content:center;-webkit-justify-content:center;-khtml-justify-content:center;-moz-justify-content:center;-o-justify-content:center;-ms-justify-content:center;max-width:100%}.cover-wrapper .cover-body .bottom{margin-top:32px}.cover-wrapper .cover-body .title{font-family:Sotheby,Helvetica,monospace;font-size:3.125rem;line-height:1.2;text-shadow:0 1px 2px rgba(0,0,0,.1)}.cover-wrapper .cover-body .subtitle{font-size:20px}.cover-wrapper .cover-body .logo{max-height:120px;max-width:calc(100% - 4 * 16px)}@media screen and (min-height:1024px){.cover-wrapper .cover-body .title{font-size:3rem}.cover-wrapper .cover-body .subtitle{font-size:1.05rem}.cover-wrapper .cover-body .logo{max-height:150px}}.cover-wrapper .cover-body .m_search{position:relative;max-width:calc(100% - 16px);width:320px;vertical-align:middle}.cover-wrapper .cover-body .m_search .form{position:relative;display:-webkit-box;display:-moz-box;display:block;width:100%}.cover-wrapper .cover-body .m_search .icon,.cover-wrapper .cover-body .m_search .input{transition:all .28s ease;-webkit-transition:all .28s ease;-khtml-transition:all .28s ease;-moz-transition:all .28s ease;-o-transition:all .28s ease;-ms-transition:all .28s ease}.cover-wrapper .cover-body .m_search .icon{position:absolute;display:-webkit-box;display:-moz-box;display:block;line-height:2.5rem;width:32px;top:0;left:5px;color:rgba(35,70,79,.75)}.cover-wrapper .cover-body .m_search .input{display:-webkit-box;display:-moz-box;display:block;height:2.5rem;width:100%;box-shadow:none;-webkit-box-shadow:none;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;font-size:.875rem;-webkit-appearance:none;padding-left:36px;border-radius:1.4rem;-webkit-border-radius:1.4rem;background:rgba(255,240,245,.6);backdrop-filter:blur(10px);border:none;color:var(--color-text)}@media screen and (max-width:500px){.cover-wrapper .cover-body .m_search .input{padding-left:36px}}.cover-wrapper .cover-body .m_search .input:hover{background:rgba(255,240,245,.8)}.cover-wrapper .cover-body .m_search .input:focus{background:#fff0f5}.cover-wrapper .list-h{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;display:flex;-webkit-box-direction:normal;-moz-box-direction:normal;-webkit-box-orient:horizontal;-moz-box-orient:horizontal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;flex-wrap:wrap;-webkit-flex-wrap:wrap;-khtml-flex-wrap:wrap;-moz-flex-wrap:wrap;-o-flex-wrap:wrap;-ms-flex-wrap:wrap;align-items:stretch;border-radius:4px;-webkit-border-radius:4px;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.cover-wrapper .list-h a{-webkit-box-flex:1;-moz-box-flex:1;-webkit-flex:1 0;-ms-flex:1 0;flex:1 0;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;display:flex;font-weight:600}.cover-wrapper .list-h a img{display:-webkit-box;display:-moz-box;display:block;border-radius:2px;-webkit-border-radius:2px;margin:4px;min-width:40px;max-width:44px}@media screen and (max-width:768px){.cover-wrapper .list-h a img{min-width:36px;max-width:40px}}@media screen and (max-width:500px){.cover-wrapper .list-h a img{margin:2px 4px;min-width:32px;max-width:36px}}@media screen and (max-width:375px){.cover-wrapper .list-h a img{min-width:28px;max-width:32px}}.cover-wrapper{max-width:100%}.cover-wrapper.search .bottom .menu{margin-top:16px}.cover-wrapper.search .bottom .menu .list-h a{white-space:nowrap;-webkit-box-direction:normal;-moz-box-direction:normal;-webkit-box-orient:horizontal;-moz-box-orient:horizontal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;align-items:baseline;padding:2px;margin:4px;color:var(--color-site-inner);opacity:.75;-webkit-opacity:.75;-moz-opacity:.75;text-shadow:0 1px 2px rgba(0,0,0,.05);border-bottom:2px solid transparent}.cover-wrapper.search .bottom .menu .list-h a i{margin-right:4px}.cover-wrapper.search .bottom .menu .list-h a p{font-size:.9375rem}.cover-wrapper.search .bottom .menu .list-h a.active,.cover-wrapper.search .bottom .menu .list-h a:active,.cover-wrapper.search .bottom .menu .list-h a:hover{opacity:1;-webkit-opacity:1;-moz-opacity:1;border-bottom:2px solid var(--color-site-inner)}@font-face{font-family:Dosis;src:url(https://fastly.jsdelivr.net/gh/moieo/moieo@main/moieo.woff2);font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Sotheby;src:url(https://nanaeo.cn/asset/Sotheby.ttf);font-weight:400;font-style:normal;font-display:swap}.l_header{position:fixed;z-index:1000;top:0;width:100%;height:64px;background:var(--color-card);box-shadow:0 1px 2px 0 rgba(0,0,0,.1);-webkit-box-shadow:0 1px 2px 0 rgba(0,0,0,.1)}.l_header.auto{transition:opacity .4s ease;-webkit-transition:opacity .4s ease;-khtml-transition:opacity .4s ease;-moz-transition:opacity .4s ease;-o-transition:opacity .4s ease;-ms-transition:opacity .4s ease;visibility:hidden}.l_header.auto.show{opacity:1!important;-webkit-opacity:1!important;-moz-opacity:1!important;visibility:visible}.l_header .container{margin-left:16px;margin-right:16px}.l_header #wrapper{height:100%;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.l_header #wrapper .nav-main,.l_header #wrapper .nav-sub{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;display:flex;flex-wrap:nowrap;-webkit-flex-wrap:nowrap;-khtml-flex-wrap:nowrap;-moz-flex-wrap:nowrap;-o-flex-wrap:nowrap;-ms-flex-wrap:nowrap;justify-content:space-between;-webkit-justify-content:space-between;-khtml-justify-content:space-between;-moz-justify-content:space-between;-o-justify-content:space-between;-ms-justify-content:space-between;align-items:center}.l_header #wrapper .nav-main{transition:all .28s ease;-webkit-transition:all .28s ease;-khtml-transition:all .28s ease;-moz-transition:all .28s ease;-o-transition:all .28s ease;-ms-transition:all .28s ease}.l_header #wrapper.sub .nav-main{transform:translateY(-64px);-webkit-transform:translateY(-64px);-khtml-transform:translateY(-64px);-moz-transform:translateY(-64px);-o-transform:translateY(-64px);-ms-transform:translateY(-64px)}.l_header #wrapper .nav-sub{transition:all .28s ease;-webkit-transition:all .28s ease;-khtml-transition:all .28s ease;-moz-transition:all .28s ease;-o-transition:all .28s ease;-ms-transition:all .28s ease;opacity:0;-webkit-opacity:0;-moz-opacity:0;height:64px;width:calc(100% - 2 * 16px);position:absolute}.l_header #wrapper .nav-sub ::-webkit-scrollbar{display:-webkit-box;display:-moz-box;display:none}@media screen and (min-width:2048px){.l_header #wrapper .nav-sub{max-width:55vw;margin:auto}}.l_header #wrapper.sub .nav-sub{opacity:1;-webkit-opacity:1;-moz-opacity:1}.l_header #wrapper .title{position:relative;color:var(--color-text);padding-left:24px;max-height:64px}.l_header #wrapper .nav-main .title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:0;line-height:64px;padding:0 24px;font-size:1.25rem;font-family:Sotheby,Helvetica,monospace}.l_header #wrapper .nav-main .title img{height:64px}.l_header .nav-sub{max-width:1080px;margin:auto}.l_header .nav-sub .title{font-weight:700;font-family:Dosis,"PingFang SC","Microsoft YaHei",Helvetica,Arial,Menlo,Monaco,monospace,sans-serif;line-height:1.2;max-height:64px;white-space:normal;flex-shrink:1}.l_header .switcher{display:-webkit-box;display:-moz-box;display:none;line-height:64px;align-items:center}.l_header .switcher .s-toc{display:-webkit-box;display:-moz-box;display:none}@media screen and (max-width:768px){.l_header .switcher .s-toc{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;display:flex}}.l_header .switcher>li{height:48px;transition:all .28s ease;-webkit-transition:all .28s ease;-khtml-transition:all .28s ease;-moz-transition:all .28s ease;-o-transition:all .28s ease;-ms-transition:all .28s ease;margin:2px}@media screen and (max-width:500px){.l_header .switcher>li{margin:0 1px;height:48px}}.l_header .switcher>li>a{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;display:flex;justify-content:center;-webkit-justify-content:center;-khtml-justify-content:center;-moz-justify-content:center;-o-justify-content:center;-ms-justify-content:center;align-items:center;width:48px;height:48px;padding:.85em 1.1em;border-radius:100px;-webkit-border-radius:100px;border:none;transition:all .28s ease;-webkit-transition:all .28s ease;-khtml-transition:all .28s ease;-moz-transition:all .28s ease;-o-transition:all .28s ease;-ms-transition:all .28s ease;color:#fcc}.l_header .switcher>li>a:hover{border:none}.l_header .switcher>li>a.active,.l_header .switcher>li>a:active{border:none;background:var(--color-site-bg)}@media screen and (max-width:500px){.l_header .switcher>li>a{width:36px;height:48px}}.l_header .nav-sub .switcher{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;display:flex}.l_header .m_search{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;display:flex;height:64px;width:240px;transition:all .28s ease;-webkit-transition:all .28s ease;-khtml-transition:all .28s ease;-moz-transition:all .28s ease;-o-transition:all .28s ease;-ms-transition:all .28s ease}@media screen and (max-width:1024px){.l_header .m_search{width:44px;min-width:44px}.l_header .m_search input::placeholder{opacity:0;-webkit-opacity:0;-moz-opacity:0}.l_header .m_search:hover{width:240px}.l_header .m_search:hover input::placeholder{opacity:1;-webkit-opacity:1;-moz-opacity:1}}@media screen and (min-width:500px){.l_header .m_search:hover .input{width:100%}.l_header .m_search:hover .input::placeholder{opacity:1;-webkit-opacity:1;-moz-opacity:1}}@media screen and (max-width:500px){.l_header .m_search{min-width:0}.l_header .m_search input::placeholder{opacity:1;-webkit-opacity:1;-moz-opacity:1}}.l_header .m_search .form{position:relative;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;display:flex;width:100%;align-items:center}.l_header .m_search .icon{position:absolute;width:36px;left:5px;color:var(--color-meta)}@media screen and (max-width:500px){.l_header .m_search .icon{display:-webkit-box;display:-moz-box;display:none}}.l_header .m_search .input{display:-webkit-box;display:-moz-box;display:block;padding-top:8px;padding-bottom:8px;line-height:1.3;width:100%;color:var(--color-text);background:#ffe6ee;box-shadow:none;-webkit-box-shadow:none;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;padding-left:40px;font-size:.875rem;border-radius:8px;-webkit-border-radius:8px;border:none;transition:all .28s ease;-webkit-transition:all .28s ease;-khtml-transition:all .28s ease;-moz-transition:all .28s ease;-o-transition:all .28s ease;-ms-transition:all .28s ease}@media screen and (min-width:500px){.l_header .m_search .input:focus{box-shadow:0 4px 8px 0 rgba(0,0,0,.1);-webkit-box-shadow:0 4px 8px 0 rgba(0,0,0,.1)}}@media screen and (max-width:500px){.l_header .m_search .input{background:var(--color-block);padding-left:8px;border:none}.l_header .m_search .input:focus,.l_header .m_search .input:hover{border:none}}@media (max-width:500px){.l_header .m_search{left:0;width:0;overflow:hidden;position:absolute;background:#fff;transition:all .28s ease;-webkit-transition:all .28s ease;-khtml-transition:all .28s ease;-moz-transition:all .28s ease;-o-transition:all .28s ease;-ms-transition:all .28s ease}.l_header .m_search .input{border-radius:32px;-webkit-border-radius:32px;margin-left:16px;padding-left:16px}.l_header.z_search-open .m_search{width:100%}.l_header.z_search-open .m_search .input{width:calc(100% - 120px)}}ul.m-pc>li>a{color:inherit;border-bottom:2px solid transparent}ul.m-pc>li>a.active,ul.m-pc>li>a:active{border-bottom:2px solid #fcc}ul.list-v li:hover>ul.list-v,ul.m-pc li:hover>ul.list-v{display:-webkit-box;display:-moz-box;display:block}ul.nav-list-h{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;display:flex;align-items:stretch}ul.nav-list-h>li{position:relative;justify-content:center;-webkit-justify-content:center;-khtml-justify-content:center;-moz-justify-content:center;-o-justify-content:center;-ms-justify-content:center;height:100%;line-height:2.4;border-radius:4px;-webkit-border-radius:4px}ul.nav-list-h>li>a{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:600}ul.list-v{z-index:1;display:-webkit-box;display:-moz-box;display:none;position:absolute;background:var(--color-card);box-shadow:0 2px 4px 0 rgba(0,0,0,.08),0 4px 8px 0 rgba(0,0,0,.08),0 8px 16px 0 rgba(0,0,0,.08);-webkit-box-shadow:0 2px 4px 0 rgba(0,0,0,.08),0 4px 8px 0 rgba(0,0,0,.08),0 8px 16px 0 rgba(0,0,0,.08);margin-top:-6px;border-radius:4px;-webkit-border-radius:4px;padding:8px 0}ul.list-v.show{display:-webkit-box;display:-moz-box;display:block}ul.list-v hr{margin-top:8px;margin-bottom:8px}ul.list-v>li{white-space:nowrap;word-break:keep-all}ul.list-v>li.header{font-size:.78125rem;font-weight:700;line-height:2em;color:var(--color-meta);margin:8px 16px 4px}ul.list-v>li.header i{margin-right:8px}ul.list-v>li ul{margin-left:0;display:-webkit-box;display:-moz-box;display:none;margin-top:-40px}ul.list-v .aplayer-container{min-height:64px;padding:6px 16px}ul.list-v>li>a{transition:all .28s ease;-webkit-transition:all .28s ease;-khtml-transition:all .28s ease;-moz-transition:all .28s ease;-o-transition:all .28s ease;-ms-transition:all .28s ease;display:-webkit-box;display:-moz-box;display:block;color:var(--color-list);font-size:.875rem;font-weight:700;line-height:36px;padding:0 20px 0 16px;text-overflow:ellipsis;margin:0 4px;border-radius:4px;-webkit-border-radius:4px}@media screen and (max-width:1024px){ul.list-v>li>a{line-height:40px}}ul.list-v>li>a>i{margin-right:8px}ul.list-v>li>a.active,ul.list-v>li>a:active{color:var(--color-list-hl)}ul.list-v>li>a:hover{color:var(--color-list-hl);background:var(--color-site-bg)}.l_header .menu>ul>li>a{display:-webkit-box;display:-moz-box;display:block;padding:0 8px}.l_header .menu>ul>li>a>i{margin-right:4px}.l_header ul.nav-list-h>li{color:var(--color-list);line-height:64px}.l_header ul.nav-list-h>li>a{max-height:64px;overflow:hidden;color:inherit}.l_header ul.nav-list-h>li>a.active,.l_header ul.nav-list-h>li>a:active{color:#fcc}.l_header ul.nav-list-h>li:hover>a{color:var(--color-list-hl)}.l_header ul.nav-list-h>li i.music{animation:rotate-effect 1.5s linear infinite;-webkit-animation:rotate-effect 1.5s linear infinite;-khtml-animation:rotate-effect 1.5s linear infinite;-moz-animation:rotate-effect 1.5s linear infinite;-o-animation:rotate-effect 1.5s linear infinite;-ms-animation:rotate-effect 1.5s linear infinite}@-moz-keyframes rotate-effect{0%{transform:rotate(0);-webkit-transform:rotate(0);-khtml-transform:rotate(0);-moz-transform:rotate(0);-o-transform:rotate(0);-ms-transform:rotate(0)}25%{transform:rotate(90deg);-webkit-transform:rotate(90deg);-khtml-transform:rotate(90deg);-moz-transform:rotate(90deg);-o-transform:rotate(90deg);-ms-transform:rotate(90deg)}50%{transform:rotate(180deg);-webkit-transform:rotate(180deg);-khtml-transform:rotate(180deg);-moz-transform:rotate(180deg);-o-transform:rotate(180deg);-ms-transform:rotate(180deg)}75%{transform:rotate(270deg);-webkit-transform:rotate(270deg);-khtml-transform:rotate(270deg);-moz-transform:rotate(270deg);-o-transform:rotate(270deg);-ms-transform:rotate(270deg)}100%{transform:rotate(360deg);-webkit-transform:rotate(360deg);-khtml-transform:rotate(360deg);-moz-transform:rotate(360deg);-o-transform:rotate(360deg);-ms-transform:rotate(360deg)}}@-webkit-keyframes rotate-effect{0%{transform:rotate(0);-webkit-transform:rotate(0);-khtml-transform:rotate(0);-moz-transform:rotate(0);-o-transform:rotate(0);-ms-transform:rotate(0)}25%{transform:rotate(90deg);-webkit-transform:rotate(90deg);-khtml-transform:rotate(90deg);-moz-transform:rotate(90deg);-o-transform:rotate(90deg);-ms-transform:rotate(90deg)}50%{transform:rotate(180deg);-webkit-transform:rotate(180deg);-khtml-transform:rotate(180deg);-moz-transform:rotate(180deg);-o-transform:rotate(180deg);-ms-transform:rotate(180deg)}75%{transform:rotate(270deg);-webkit-transform:rotate(270deg);-khtml-transform:rotate(270deg);-moz-transform:rotate(270deg);-o-transform:rotate(270deg);-ms-transform:rotate(270deg)}100%{transform:rotate(360deg);-webkit-transform:rotate(360deg);-khtml-transform:rotate(360deg);-moz-transform:rotate(360deg);-o-transform:rotate(360deg);-ms-transform:rotate(360deg)}}@-o-keyframes rotate-effect{0%{transform:rotate(0);-webkit-transform:rotate(0);-khtml-transform:rotate(0);-moz-transform:rotate(0);-o-transform:rotate(0);-ms-transform:rotate(0)}25%{transform:rotate(90deg);-webkit-transform:rotate(90deg);-khtml-transform:rotate(90deg);-moz-transform:rotate(90deg);-o-transform:rotate(90deg);-ms-transform:rotate(90deg)}50%{transform:rotate(180deg);-webkit-transform:rotate(180deg);-khtml-transform:rotate(180deg);-moz-transform:rotate(180deg);-o-transform:rotate(180deg);-ms-transform:rotate(180deg)}75%{transform:rotate(270deg);-webkit-transform:rotate(270deg);-khtml-transform:rotate(270deg);-moz-transform:rotate(270deg);-o-transform:rotate(270deg);-ms-transform:rotate(270deg)}100%{transform:rotate(360deg);-webkit-transform:rotate(360deg);-khtml-transform:rotate(360deg);-moz-transform:rotate(360deg);-o-transform:rotate(360deg);-ms-transform:rotate(360deg)}}@keyframes rotate-effect{0%{transform:rotate(0);-webkit-transform:rotate(0);-khtml-transform:rotate(0);-moz-transform:rotate(0);-o-transform:rotate(0);-ms-transform:rotate(0)}25%{transform:rotate(90deg);-webkit-transform:rotate(90deg);-khtml-transform:rotate(90deg);-moz-transform:rotate(90deg);-o-transform:rotate(90deg);-ms-transform:rotate(90deg)}50%{transform:rotate(180deg);-webkit-transform:rotate(180deg);-khtml-transform:rotate(180deg);-moz-transform:rotate(180deg);-o-transform:rotate(180deg);-ms-transform:rotate(180deg)}75%{transform:rotate(270deg);-webkit-transform:rotate(270deg);-khtml-transform:rotate(270deg);-moz-transform:rotate(270deg);-o-transform:rotate(270deg);-ms-transform:rotate(270deg)}100%{transform:rotate(360deg);-webkit-transform:rotate(360deg);-khtml-transform:rotate(360deg);-moz-transform:rotate(360deg);-o-transform:rotate(360deg);-ms-transform:rotate(360deg)}}.menu-phone li ul.list-v{right:calc(100% - .5 * 16px)}.menu-phone li ul.list-v ul{right:calc(100% - .5 * 16px)}#wrapper{max-width:1080px;margin:auto}@media screen and (min-width:2048px){#wrapper{max-width:55vw}}#wrapper .menu{-webkit-box-flex:1;-moz-box-flex:1;-webkit-flex:1 1;-ms-flex:1 1;flex:1 1;margin:0 16px 0 0}#wrapper .menu .list-v ul{left:calc(100% - .5 * 16px)}.menu-phone{display:-webkit-box;display:-moz-box;display:none;margin-top:16px;right:8px;transition:all .28s ease;-webkit-transition:all .28s ease;-khtml-transition:all .28s ease;-moz-transition:all .28s ease;-o-transition:all .28s ease;-ms-transition:all .28s ease}.menu-phone ul{right:calc(100% - .5 * 16px)}@media screen and (max-width:500px){.menu-phone{display:-webkit-box;display:-moz-box;display:block}}.l_header{max-width:65vw;left:calc((100% - 65vw) * .5);border-bottom-left-radius:8px;border-bottom-right-radius:8px}@media screen and (max-width:2048px){.l_header{max-width:1112px;left:calc((100% - 1112px) * .5)}}@media screen and (max-width:1112px){.l_header{left:0;border-radius:0;-webkit-border-radius:0;max-width:100%}}@media screen and (max-width:500px){.l_header .container{margin-left:0;margin-right:0}.l_header #wrapper .nav-main .title{padding-left:16px;padding-right:16px}.l_header #wrapper .nav-sub{width:100%}.l_header #wrapper .nav-sub .title{overflow-y:scroll;margin-top:2px;padding:8px 16px}.l_header #wrapper .switcher{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;display:flex;margin-right:8px}.l_header .menu{display:-webkit-box;display:-moz-box;display:none}}@media screen and (max-width:500px){.list-v li{max-width:270px}}#u-search{display:-webkit-box;display:-moz-box;display:none;position:fixed;top:0;left:0;width:100%;height:100%;padding:60px 20px;z-index:1001}@media screen and (max-width:680px){#u-search{padding:0}}</style><link rel="stylesheet" href="/css/style.css" media="print" onload='this.media="all",this.onload=null'><noscript><link rel="stylesheet" href="/css/style.css"></noscript><script>window.MSInputMethodContext&&document.documentMode&&document.write('<style>html{overflow-x: hidden !important;overflow-y: hidden !important;}.kill-ie{text-align:center;height: 100%;margin-top: 15%;margin-bottom: 5500%;}.kill-t{font-size: 2rem;}.kill-c{font-size: 1.2rem;}#l_header,#l_body{display: none;}</style><div class="kill-ie"><span class="kill-t"><b>抱歉,您的浏览器无法访问本站</b></span><br/><span class="kill-c">微软已经于2016年终止了对 Internet Explorer (IE) 10 及更早版本的支持,<br/>继续使用存在极大的安全隐患,请使用当代主流的浏览器进行访问。</span><br/><a target="_blank" rel="noopener" href="https://blogs.windows.com/windowsexperience/2021/05/19/the-future-of-internet-explorer-on-windows-10-is-in-microsoft-edge/"><strong>了解详情 ></strong></a></div>')</script><noscript><style>html{overflow-x:hidden!important;overflow-y:hidden!important}.kill-noscript{text-align:center;height:100%;margin-top:15%;margin-bottom:5500%}.kill-t{font-size:2rem}.kill-c{font-size:1.2rem}#l_body,#l_header{display:none}</style><div class="kill-noscript"> <span class="kill-t"><b>抱歉,您的浏览器无法访问本站</b></span><br> <span class="kill-c">本页面需要浏览器支持(启用)JavaScript</span><br> <a target="_blank" rel="noopener" href="https://www.baidu.com/s?wd=启用JavaScript"><strong>了解详情 ></strong></a></div></noscript><script>function volantisEventListener(e,t,s){this.type=e,this.f=t,this.ele=s}function volantisDom(e){return e||(e=document.createElement("div")),this.ele=e,this.ele.find=e=>{let t=this.ele.querySelector(e);if(t)return new volantisDom(t)},this.ele.hasClass=e=>this.ele.className.match(new RegExp("(\\s|^)"+e+"(\\s|$)")),this.ele.addClass=e=>(this.ele.classList.add(e),this.ele),this.ele.removeClass=e=>(this.ele.classList.remove(e),this.ele),this.ele.toggleClass=e=>(this.ele.hasClass(e)?this.ele.removeClass(e):this.ele.addClass(e),this.ele),this.ele.on=(e,t,s=1)=>(this.ele.addEventListener(e,t,!1),s&&volantis.EventListener.list.push(new volantisEventListener(e,t,this.ele)),this.ele),this.ele.click=(e,t)=>(this.ele.on("click",e,t),this.ele),this.ele.scroll=(e,t)=>(this.ele.on("scroll",e,t),this.ele),this.ele.html=e=>(this.ele.innerHTML=e,this.ele),this.ele.hide=e=>(this.ele.style.display="none",this.ele),this.ele.show=e=>(this.ele.style.display="block",this.ele),this.ele}function RunItem(){function e(e,t){this.name=t||e.name,this.run=()=>{try{e()}catch(e){console.log(e)}}}this.list=[],this.start=()=>{for(var e=0;e<this.list.length;e++)this.list[e].run()},this.push=(t,s,l=!0)=>{let n=t;l&&(n=()=>{volantis.requestAnimationFrame(t)});var i=new e(n,s);this.list.push(i)},this.remove=e=>{for(let t=0;t<this.list.length;t++){this.list[t].name==e&&this.list.splice(t,1)}}}function errorImgAvatar(e){e.src="https://fastly.jsdelivr.net/npm/volantis-static/media/placeholder/avatar/round/3442075.svg",e.onerror=null}function errorImgCover(e){e.src="https://fastly.jsdelivr.net/npm/volantis-static/media/placeholder/cover/76b86c0226ffd.svg",e.onerror=null}window.volantis={},volantis.debug="env",volantis.dom={},volantis.GLOBAL_CONFIG={debug:"env",cdn:{js:{app:"/js/app.js",parallax:"/js/plugins/parallax.js",rightMenu:"/js/plugins/rightMenu.js",rightMenus:"/js/plugins/rightMenus.js",sites:"/js/plugins/tags/sites.js",friends:"/js/plugins/tags/friends.js",contributors:"/js/plugins/tags/contributors.js",search:"/js/search/hexo.js"},css:{style:"/css/style.css"}},default:{avatar:"https://fastly.jsdelivr.net/npm/volantis-static/media/placeholder/avatar/round/3442075.svg",link:"https://fastly.jsdelivr.net/npm/volantis-static/media/placeholder/link/8f277b4ee0ecd.svg",cover:"https://fastly.jsdelivr.net/npm/volantis-static/media/placeholder/cover/76b86c0226ffd.svg",image:"https://fastly.jsdelivr.net/npm/volantis-static/media/placeholder/image/2659360.svg"},lastupdate:new Date(1702969108313),sidebar:{for_page:["blogger","category","webinfo"],for_post:["toc"],webinfo:{lastupd:{enable:!0,friendlyShow:!0},runtime:{data:"2022/08/05",unit:"天"}}},plugins:{message:{enable:!0,css:"https://fastly.jsdelivr.net/npm/volantis-static/libs/izitoast/dist/css/iziToast.min.css",js:"https://fastly.jsdelivr.net/npm/volantis-static/libs/izitoast/dist/js/iziToast.min.js",icon:{default:"fa-solid fa-info-circle light-blue",quection:"fa-solid fa-question-circle light-blue"},time:{default:5e3,quection:2e4},position:"topRight",transitionIn:"bounceInLeft",transitionOut:"fadeOutRight",titleColor:"var(--color-text)",messageColor:"var(--color-text)",backgroundColor:"var(--color-card)",zindex:2147483647,copyright:{enable:!0,title:"知识共享许可协议",message:"请遵守 CC BY-NC-SA 4.0 协议。",icon:"far fa-copyright light-blue"},aplayer:{enable:!0,play:"fa-solid fa-play",pause:"fa-solid fa-pause"},rightmenu:{enable:!0,notice:!0}},fancybox:{css:"https://fastly.jsdelivr.net/npm/volantis-static/libs/@fancyapps/ui/dist/fancybox.css",js:"https://fastly.jsdelivr.net/npm/volantis-static/libs/@fancyapps/ui/dist/fancybox.umd.js"}}},volantis.EventListener={},volantis.EventListener.list=[],volantis.EventListener.remove=()=>{volantis.EventListener.list.forEach((function(e){e.ele.removeEventListener(e.type,e.f,!1)})),volantis.EventListener.list=[]},volantis.dom.$=e=>e?new volantisDom(e):null,volantis.pjax={},volantis.pjax.method={complete:new RunItem,error:new RunItem,send:new RunItem},volantis.pjax=Object.assign(volantis.pjax,{push:volantis.pjax.method.complete.push,error:volantis.pjax.method.error.push,send:volantis.pjax.method.send.push}),volantis.rightmenu={},volantis.rightmenu.method={handle:new RunItem},volantis.rightmenu=Object.assign(volantis.rightmenu,{handle:volantis.rightmenu.method.handle.push}),volantis.dark={},volantis.dark.method={toggle:new RunItem},volantis.dark=Object.assign(volantis.dark,{push:volantis.dark.method.toggle.push}),volantis.js=(e,t)=>new Promise(s=>{setTimeout((function(){var l=document.getElementsByTagName("head")[0]||document.documentElement,n=document.createElement("script");if(n.setAttribute("type","text/javascript"),t)if(JSON.stringify(t))for(let e in t)"onload"==e?n[e]=()=>{t[e](),s()}:(n[e]=t[e],n.onload=s);else n.onload=()=>{t(),s()};else n.onload=s;n.setAttribute("src",e),l.appendChild(n)}))}),volantis.css=e=>new Promise(t=>{setTimeout((function(){var s=document.createElement("link");s.rel="stylesheet",s.href=e,s.onload=t,document.getElementsByTagName("head")[0].appendChild(s)}))}),volantis.import={jQuery:()=>"undefined"==typeof jQuery?volantis.js("https://fastly.jsdelivr.net/npm/volantis-static/libs/jquery/dist/jquery.min.js"):new Promise(e=>{e()})},volantis.requestAnimationFrame=e=>{window.requestAnimationFrame||(window.requestAnimationFrame=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame),window.requestAnimationFrame(e)},volantis.layoutHelper=(e,t,s)=>{function l(e,t,s){volantis.tempDiv=document.createElement("div"),volantis.tempDiv.innerHTML=t;let l=document.querySelector("#layoutHelper-"+e);l&&(s&&(l.innerHTML=""),l.append(volantis.tempDiv))}s=Object.assign({clean:!1,pjax:!0},s),l(e,t,s.clean),s.pjax&&volantis.pjax.push(()=>{l(e,t,s.clean)},"layoutHelper-"+e)},volantis.scroll={engine:new RunItem,unengine:new RunItem},volantis.scroll=Object.assign(volantis.scroll,{push:volantis.scroll.engine.push}),volantis.scroll.getScrollTop=()=>{let e;return window.pageYOffset?e=window.pageYOffset:document.compatMode&&"BackCompat"!=document.compatMode?e=document.documentElement.scrollTop:document.body&&(e=document.body.scrollTop),e},volantis.scroll.handleScrollEvents=()=>{volantis.scroll.lastScrollTop=volantis.scroll.getScrollTop(),volantis.requestAnimationFrame((function e(){const t=volantis.scroll.getScrollTop();volantis.scroll.lastScrollTop!==t?(volantis.scroll.del=t-volantis.scroll.lastScrollTop,volantis.scroll.lastScrollTop=t,volantis.scroll.unengine.list=[],volantis.scroll.engine.start()):volantis.scroll.unengine.start(),volantis.requestAnimationFrame(e)}))},volantis.scroll.handleScrollEvents(),volantis.scroll.ele=null,volantis.scroll.to=(e,t={})=>{e&&(volantis.scroll.ele=e,opt={top:e.getBoundingClientRect().top+document.documentElement.scrollTop,behavior:"smooth"},"top"in t&&(opt.top=t.top),"behavior"in t&&(opt.behavior=t.behavior),"addTop"in t&&(opt.top+=t.addTop),"observerDic"in t||(t.observerDic=100),window.scrollTo(opt),t.observer&&setTimeout(()=>{volantis.scroll.ele==e&&volantis.scroll.unengine.push(()=>{let s=e.getBoundingClientRect().top;s>=-t.observerDic&&s<=t.observerDic||volantis.scroll.to(e,t),volantis.scroll.unengine.remove("unengineObserver")},"unengineObserver")},1e3))},volantis.cleanContentVisibility=()=>{document.querySelector(".post-story")&&(console.log("cleanContentVisibility"),document.querySelectorAll(".post-story").forEach(e=>{e.classList.remove("post-story")}))}</script></head><body itemscope itemtype="http://schema.org/WebPage"><header itemscope itemtype="http://schema.org/WPHeader" id="l_header" class="l_header auto shadow floatable blur" style="opacity:0"><div class="container"><div id="wrapper"><div class="nav-sub"><p class="title"></p><ul class="switcher nav-list-h m-phone" id="pjax-header-nav-list"><li><a id="s-comment" class="fa-solid fa-comments fa-fw" target="_self" href="/" onclick="return!1" title="comment"></a></li><li><a id="s-toc" class="s-toc fa-solid fa-list fa-fw" target="_self" href="/" onclick="return!1" title="toc"></a></li></ul></div><div class="nav-main"> <a class="title flat-box" target="_self" href="/">Mlikiowa</a><div class="menu navigation"><ul class="nav-list-h m-pc"><li><a class="menuitem flat-box faa-parent animated-hover" href="/" title="博客" active-action="action-home"><i class="fa-solid fa-rss fa-fw"></i> 博客</a></li><li><a class="menuitem flat-box faa-parent animated-hover" href="/categories/" title="分类" active-action="action-categories"><i class="fa-solid fa-folder-open fa-fw"></i> 分类</a></li><li><a class="menuitem flat-box faa-parent animated-hover" href="/tags/" title="标签" active-action="action-tags"><i class="fa-solid fa-tags fa-fw"></i> 标签</a></li><li><a class="menuitem flat-box faa-parent animated-hover" href="/archives/" title="归档" active-action="action-archives"><i class="fa-solid fa-archive fa-fw"></i> 归档</a></li><li><a class="menuitem flat-box faa-parent animated-hover" href="/friends/" title="友链" active-action="action-friends"><i class="fa-solid fa-link fa-fw"></i> 友链</a></li><li><a class="menuitem flat-box faa-parent animated-hover" href="/about/" title="关于" active-action="action-about"><i class="fa-solid fa-info-circle fa-fw"></i> 关于</a></li></ul></div><div class="m_search"><form name="searchform" class="form u-search-form"><i class="icon fa-solid fa-search fa-fw"></i> <input type="text" class="input u-search-input" placeholder="Search..."></form></div><ul class="switcher nav-list-h m-phone"><li><a class="s-search fa-solid fa-search fa-fw" target="_self" href="/" onclick="return!1" title="search"></a></li><li><a class="s-menu fa-solid fa-bars fa-fw" target="_self" href="/" onclick="return!1" title="menu"></a><ul class="menu-phone list-v navigation white-box"><li><a class="menuitem flat-box faa-parent animated-hover" href="/" title="博客" active-action="action-home"><i class="fa-solid fa-rss fa-fw"></i> 博客</a></li><li><a class="menuitem flat-box faa-parent animated-hover" href="/categories/" title="分类" active-action="action-categories"><i class="fa-solid fa-folder-open fa-fw"></i> 分类</a></li><li><a class="menuitem flat-box faa-parent animated-hover" href="/tags/" title="标签" active-action="action-tags"><i class="fa-solid fa-tags fa-fw"></i> 标签</a></li><li><a class="menuitem flat-box faa-parent animated-hover" href="/archives/" title="归档" active-action="action-archives"><i class="fa-solid fa-archive fa-fw"></i> 归档</a></li><li><a class="menuitem flat-box faa-parent animated-hover" href="/friends/" title="友链" active-action="action-friends"><i class="fa-solid fa-link fa-fw"></i> 友链</a></li><li><a class="menuitem flat-box faa-parent animated-hover" href="/about/" title="关于" active-action="action-about"><i class="fa-solid fa-info-circle fa-fw"></i> 关于</a></li></ul></li></ul></div></div></div></header><div id="l_body"><div id="l_cover"><div id="half" class="cover-wrapper search" style=""><div class="cover-bg lazyload placeholder" data-bg="https://picst.sunbangyan.cn/2023/12/19/e1a85b7ffee8beef520ef52df5c296da.jpeg"></div><div class="cover-body"><div class="top"><p class="title">Mlikiowa Home Village</p></div><div class="bottom"><div class="m_search"><form name="searchform" class="form u-search-form"> <input type="text" class="input u-search-input" placeholder="A Wonderful Theme for Hexo"><i class="icon fa-solid fa-search fa-fw"></i></form></div><div class="menu navigation"><div class="list-h"><a href="/" active-action="action-home"><p>博客</p></a><a href="/categories/" target="_self" active-action="action-categories"><p>分类</p></a><a href="/tags/" active-action="action-tags"><p>标签</p></a><a href="/archives/" active-action="action-archives"><p>归档</p></a><a href="/friends/" active-action="action-friends"><p>友链</p></a><a href="/about/" active-action="action-about"><p>关于</p></a></div></div></div></div><div id="scroll-down" style="display:none"><i class="fa fa-chevron-down scroll-down-effects"></i></div></div></div><div id="safearea"><div class="body-wrapper"><div id="l_main" class=""><section class="post-list"><div class="post-wrapper"><div class="post post-v3 white-box reveal shadow floatable blur" itemscope itemtype="http://schema.org/Article"><link itemprop="mainEntityOfPage" href="https://nanaeo.cn/2022/08/13/GaussWave/"><span hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization"><meta itemprop="name" content="Village"></span><span hidden itemprop="post" itemscope itemtype="http://schema.org/Post"><meta itemprop="name" content="Village"><meta itemprop="description" content="It is a little blog~"></span><span hidden><meta itemprop="image" content="https://fastly.jsdelivr.net/npm/volantis-static/media/org.volantis/blog/favicon/android-chrome-192x192.png"></span><h2 class="article-title" itemprop="name headline"> <a href="/2022/08/13/GaussWave/" itemprop="url">高斯滤波</a></h2><div class="md article-desc" itemprop="articleBody"><p>高斯滤波的实现</p></div><div class="meta-v3" line_style="solid"><div> <time itemprop="dateCreated datePublished" datetime="2022-08-14T00:00:00+08:00">2022-08-14</time><span class="dot"></span> <a class="category-link" href="/categories/DevLog/">DevLog</a> <span hidden itemprop="about" itemscope itemtype="http://schema.org/Thing"><a href="/categories/DevLog/" itemprop="url"><span itemprop="name">DevLog</span></a></span></div><div> <a class="readmore" href="/2022/08/13/GaussWave/" itemprop="url">阅读全文</a></div></div></div></div><div class="post-wrapper"><div class="post post-v3 white-box reveal shadow floatable blur" itemscope itemtype="http://schema.org/Article"><link itemprop="mainEntityOfPage" href="https://nanaeo.cn/2022/08/04/NewBlog/"><span hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization"><meta itemprop="name" content="Village"></span><span hidden itemprop="post" itemscope itemtype="http://schema.org/Post"><meta itemprop="name" content="Village"><meta itemprop="description" content="It is a little blog~"></span><span hidden><meta itemprop="image" content="https://fastly.jsdelivr.net/npm/volantis-static/media/org.volantis/blog/favicon/android-chrome-192x192.png"></span><h2 class="article-title" itemprop="name headline"> <a href="/2022/08/04/NewBlog/" itemprop="url">新博客建好啦</a></h2><div class="md article-desc" itemprop="articleBody"><p>Hi Hexo,I am Mlikiowa!<br>是全新的Hexo&#x2F;vlolantis博客,我又回来写博客了!</p></div><div class="meta-v3" line_style="solid"><div> <time itemprop="dateCreated datePublished" datetime="2022-08-05T00:00:00+08:00">2022-08-05</time><span class="dot"></span> <a class="category-link" href="/categories/SiteLog/">SiteLog</a> <span hidden itemprop="about" itemscope itemtype="http://schema.org/Thing"><a href="/categories/SiteLog/" itemprop="url"><span itemprop="name">SiteLog</span></a></span></div><div> <a class="readmore" href="/2022/08/04/NewBlog/" itemprop="url">阅读全文</a></div></div></div></div></section></div><aside id="l_side" itemscope itemtype="http://schema.org/WPSideBar"><section class="widget blogger desktop pjax"><div class="content"> <a class="avatar flat-box circle" href="/about/"><img no-lazy src="https://q1.qlogo.cn/g?b=qq&nk=1627126029&s=100"></a><div class="text"><p><span id="jinrishici-sentence">Village</span></p><script src="https://sdk.jinrishici.com/v2/browser/jinrishici.js" charset="utf-8"></script></div><div class="social-wrapper"><a href="/atom.xml" class="social fa-solid fa-rss flat-btn" target="_blank" rel="external nofollow noopener noreferrer"></a><a href="mailto:me@xxx.com" class="social fa-solid fa-envelope flat-btn" target="_blank" rel="external nofollow noopener noreferrer"></a><a href="https://github.com/volantis-x/" class="social fab fa-github flat-btn" target="_blank" rel="external nofollow noopener noreferrer"></a><a href="/" class="social fa-solid fa-headphones-alt flat-btn" target="_blank" rel="external nofollow noopener noreferrer"></a></div></div></section><section class="widget category desktop pjax"><header><a href="/blog/categories/"><i class="fa-solid fa-folder-open fa-fw" aria-hidden="true"></i> <span class="name">文章分类</span></a></header><div class="content"><ul class="entry navigation"><li><a class="flat-box" title="/categories/DevLog/" href="/categories/DevLog/" active-action="action-categoriesDevLog"><div class="name">DevLog</div><div class="badge">(1)</div></a></li><li><a class="flat-box" title="/categories/SiteLog/" href="/categories/SiteLog/" active-action="action-categoriesSiteLog"><div class="name">SiteLog</div><div class="badge">(1)</div></a></li></ul></div></section><section class="widget desktop pjax"><header><i class="fa-solid fa-award fa-fw" aria-hidden="true"></i> <span class="name">站点信息</span></header><div class="content"><div class="webinfo"><div class="webinfo-item"><div>文章数目:</div><div>2 篇</div></div><div class="webinfo-item"><div>本站总字数:</div><div>3.4k 字</div></div><div class="webinfo-item"><div>最后活动时间:</div><div id="last-update-show">2023-12-19 日</div></div></div></div></section><div class="widget-sticky pjax"></div><div class="pjax"></div><div class="pjax"></div><div class="pjax"></div><div class="pjax"></div><div class="pjax"></div></aside><pjax><script>window.pdata={},pdata.ispage=!1,pdata.commentPath="",pdata.commentPlaceholder="",pdata.commentConfig={};var l_header=document.getElementById("l_header");l_header.classList.remove("show");var cover_wrapper=document.querySelector("#l_cover .cover-wrapper"),scroll_down=document.getElementById("scroll-down");cover_wrapper.id="half",cover_wrapper.style.display="",scroll_down.style.display="none"</script></pjax></div><footer class="footer clearfix" itemscope itemtype="http://schema.org/WPFooter"><br><br><div class="copyright"><p>⌘ Hexo With Volantis</p></div></footer><a id="s-top" class="fa-solid fa-arrow-up fa-fw" href="/" onclick="return!1" title="top"></a></div></div><div><script>volantis.dom.bodyAnchor=volantis.dom.$(document.getElementById("safearea")),volantis.dom.topBtn=volantis.dom.$(document.getElementById("s-top")),volantis.dom.wrapper=volantis.dom.$(document.getElementById("wrapper")),volantis.dom.coverAnchor=volantis.dom.$(document.querySelector("#l_cover .cover-wrapper")),volantis.dom.switcher=volantis.dom.$(document.querySelector("#l_header .switcher .s-search")),volantis.dom.header=volantis.dom.$(document.getElementById("l_header")),volantis.dom.search=volantis.dom.$(document.querySelector("#l_header .m_search")),volantis.dom.mPhoneList=volantis.dom.$(document.querySelectorAll("#l_header .m-phone .list-v"))</script><script>volantis.css("https://fastly.jsdelivr.net/npm/volantis-static/libs/@fortawesome/fontawesome-free/css/all.min.css")</script><script src="/js/app.js"></script><script>function loadIssuesJS(){null!=document.getElementById("sites-api")&&"undefined"==typeof SitesJS&&volantis.js("/js/plugins/tags/sites.js");null!=document.getElementById("friends-api")&&"undefined"==typeof FriendsJS&&volantis.js("/js/plugins/tags/friends.js");null!=document.getElementById("contributors-api")&&"undefined"==typeof ContributorsJS&&volantis.js("/js/plugins/tags/contributors.js")}loadIssuesJS(),volantis.pjax.push(()=>{loadIssuesJS()})</script><script defer="defer" src="https://fastly.jsdelivr.net/npm/volantis-static/libs/vanilla-lazyload/dist/lazyload.min.js"></script><script>window.lazyLoadOptions={elements_selector:".lazyload",threshold:0},window.addEventListener("LazyLoad::Initialized",(function(n){window.lazyLoadInstance=n.detail.instance}),!1),document.addEventListener("DOMContentLoaded",(function(){lazyLoadInstance.update()})),document.addEventListener("pjax:complete",(function(){lazyLoadInstance.update()}))</script><script>window.FPConfig={delay:0,ignoreKeywords:["#"],maxRPS:6,hoverDelay:0}</script><script defer="defer" src="https://fastly.jsdelivr.net/npm/volantis-static/libs/flying-pages/flying-pages.min.js"></script><script>function check_giscus(){return"dark"===volantis.dark.mode?volantis.giscus.Theme="dark":volantis.giscus.Theme="light",document.getElementById("giscus_container")}function pjax_giscus(){const t=check_giscus();if(!t)return;let e=Object.assign({theme:{light:"light",dark:"dark"},repo:"Mlikiowa/MliKiowa.github.io","repo-id":"R_kgDOHxvLiA",category:"General","category-id":"DIC_kwDOHxvLiM4CQr9N",mapping:"url","reactions-enabled":"1","emit-metadata":"0",lang:"zh-CN"},pdata.commentConfig);const s=document.createElement("script");s.setAttribute("src","https://giscus.app/client.js"),Object.keys(e).forEach(t=>{"theme"!=t&&s.setAttribute("data-"+t,e[t])}),s.setAttribute("data-theme",volantis.giscus.Theme),s.setAttribute("crossorigin","anonymous"),t.appendChild(s)}function dark_giscus(){if(!check_giscus())return;const t={setConfig:{theme:volantis.giscus.Theme}};document.querySelector("iframe.giscus-frame").contentWindow.postMessage({giscus:t},"https://giscus.app")}volantis.layoutHelper("comments",'<div id="giscus_container"></div>'),volantis.giscus={},pjax_giscus(),volantis.pjax.push(pjax_giscus),volantis.dark.push(dark_giscus)</script><script>const SearchServiceDataPathRoot="/".endsWith("/")?"/":"//",SearchServiceDataPath=SearchServiceDataPathRoot+"content.json";function loadSearchScript(){return volantis.js("/js/search/hexo.js")}function loadSearchService(){loadSearchScript(),document.querySelectorAll(".input.u-search-input").forEach(e=>{e.removeEventListener("focus",loadSearchService,!1)}),document.querySelectorAll(".u-search-form").forEach(e=>{e.addEventListener("submit",e=>{e.preventDefault()},!1)})}function OpenSearch(e){"undefined"==typeof SearchService?loadSearchScript().then(()=>{SearchService.setQueryText(e),SearchService.search()}):(SearchService.setQueryText(e),SearchService.search())}if(window.location.search&&/^\?s=/g.test(window.location.search)){OpenSearch(decodeURI(window.location.search).replace(/\ /g,"-").replace(/^\?s=/g,""))}document.querySelectorAll(".input.u-search-input").forEach(e=>{e.addEventListener("focus",loadSearchService,!1)})</script><script>function pjax_highlightjs_copyCode(){(document.querySelector(".highlight .code pre")||document.querySelector(".article pre code"))&&VolantisApp.utilCopyCode(".highlight .code pre, .article pre code")}volantis.requestAnimationFrame(pjax_highlightjs_copyCode),volantis.pjax.push(pjax_highlightjs_copyCode)</script><script>function load_swiper(){document.querySelectorAll(".swiper-container")[0]&&(volantis.css("https://fastly.jsdelivr.net/npm/volantis-static/libs/swiper/swiper-bundle.min.css"),volantis.js("https://fastly.jsdelivr.net/npm/volantis-static/libs/swiper/swiper-bundle.min.js").then(()=>{pjax_swiper()}))}function pjax_swiper(){volantis.swiper=new Swiper(".swiper-container",{slidesPerView:"auto",spaceBetween:8,centeredSlides:!0,loop:!0,pagination:{el:".swiper-pagination",clickable:!0},navigation:{nextEl:".swiper-button-next",prevEl:".swiper-button-prev"}})}load_swiper(),volantis.pjax.push(()=>{document.querySelectorAll(".swiper-container")[0]&&(void 0===volantis.swiper?load_swiper():pjax_swiper())})</script><pjax></pjax><script>function listennSidebarTOC(){const t=document.querySelectorAll(".toc li");if(!t.length)return;let e=[];[...t].map(t=>{const n=t.querySelector(".toc-link"),i=document.getElementById(decodeURI(n.getAttribute("href")).replace("#",""));return e.push(i),n.setAttribute("onclick","return false;"),n.setAttribute("toc-action","toc-"+decodeURI(n.getAttribute("href")).replace("#","")),n.setAttribute("href","/"),n.addEventListener("click",t=>{t.preventDefault(),volantis.scroll.to(i,{addTop:5,observer:!0}),history.pushState(null,document.title,"#"+i.id)}),i});function n(t){if(t.classList.contains("active-current"))return;document.querySelectorAll(".toc .active").forEach(t=>{t.classList.remove("active","active-current")}),t.classList.add("active","active-current");let e=t.parentNode;for(;!e.matches(".toc");)e.matches("li")&&e.classList.add("active"),e=e.parentNode}volantis.activateNavIndex=0,n(t[volantis.activateNavIndex]),volantis.scroll.push(()=>{if(e[0].getBoundingClientRect().top>=0)volantis.activateNavIndex=0;else if(e[e.length-1].getBoundingClientRect().top<0)volantis.activateNavIndex=e.length-1;else for(let t=0;t<e.length;t++){const n=e[t],i=e[(t+1)%e.length];if(n.getBoundingClientRect().top<0&&i.getBoundingClientRect().top>=0){volantis.activateNavIndex=t;break}}n(t[volantis.activateNavIndex])})}document.addEventListener("DOMContentLoaded",()=>{volantis.requestAnimationFrame(listennSidebarTOC)}),document.addEventListener("pjax:success",()=>{volantis.requestAnimationFrame(listennSidebarTOC)})</script><script>try{let e=(e,t,n=2)=>Math.abs(e-t)<=n,t=(t,n)=>!e(t.width,n.width)||!e(t.height,n.height),n=new WeakMap,i=(e,i=e.getClientBoundingRect())=>{let o=n.get(e);o&&!t(o,i)||(n.set(e,i),e.style["contain-intrinsic-size"]=`${i.width}px ${i.height}px`)},o=new IntersectionObserver((e,t)=>{e.forEach(e=>{i(e.target,e.boundingClientRect)})},{rootMargin:"500px 0px 500px 0px"}),r=new ResizeObserver((e,t)=>{e.forEach(e=>{i(e.target,e.contentRect)})}),s=e=>{let t=document.querySelectorAll(e);t.length&&(t.forEach(e=>{o.observe(e),r.observe(e)}),requestAnimationFrame(()=>{requestAnimationFrame(()=>{t[0].style["content-visibility"]="auto"})}))},a=()=>{"content-visibility"in document.documentElement.style&&s(".post-story")};a(),volantis.pjax.push(a)}catch(e){console.log(e)}</script><script>document.onreadystatechange=function(){if("complete"==document.readyState){const{saveData:e,effectiveType:t}=navigator.connection||navigator.mozConnection||navigator.webkitConnection||{};("none"==getComputedStyle(document.querySelector("#safearea"),null).display||e||/2g/.test(t))&&(document.querySelectorAll(".reveal").forEach((function(e){e.style.opacity="1"})),document.querySelector("#safearea").style.display="block")}}</script><script type="application/ld+json">[{"@context":"http://schema.org","@type":"Organization","name":"Village","url":"https://nanaeo.cn/","logo":{"@type":"ImageObject","url":"https://fastly.jsdelivr.net/npm/volantis-static/media/org.volantis/blog/favicon/android-chrome-192x192.png","width":192,"height":192}},{"@context":"http://schema.org","@type":"Person","name":"Mlikiowa","image":{"@type":"ImageObject","url":"https://fastly.jsdelivr.net/npm/volantis-static/media/org.volantis/blog/favicon/android-chrome-192x192.png"},"url":"https://nanaeo.cn/","sameAs":["https://github.com/volantis-x"],"description":"It is a little blog~"},{"@context":"http://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"item":{"@id":"https://nanaeo.cn/","name":"Village"}},{"@type":"ListItem","position":2,"item":{"@id":"https://nanaeo.cn/archives/","name":"Archive"}},{"@type":"ListItem","position":3,"item":{"@id":"https://nanaeo.cn/archives/2022/","name":"2022年"}}]},{"@context":"http://schema.org","@type":"WebSite","name":"Village","url":"https://nanaeo.cn/","keywords":null,"description":"It is a little blog~","author":{"@type":"Person","name":"Mlikiowa","image":{"@type":"ImageObject","url":"https://fastly.jsdelivr.net/npm/volantis-static/media/org.volantis/blog/favicon/android-chrome-192x192.png"},"url":"https://nanaeo.cn/","description":"It is a little blog~"},"publisher":{"@type":"Organization","name":"Village","url":"https://nanaeo.cn/","logo":{"@type":"ImageObject","url":"https://fastly.jsdelivr.net/npm/volantis-static/media/org.volantis/blog/favicon/android-chrome-192x192.png","width":192,"height":192}},"potentialAction":{"@type":"SearchAction","name":"Site Search","target":{"@type":"EntryPoint","urlTemplate":"https://nanaeo.cn?s={search_term_string}"},"query-input":"required name=search_term_string"}},{"@context":"http://schema.org","@type":"BlogPosting","description":"It is a little blog~","inLanguage":["zh-CN","en","default"],"mainEntityOfPage":{"@type":"WebPage"},"author":{"@type":"Person","name":"Mlikiowa","image":{"@type":"ImageObject","url":"https://fastly.jsdelivr.net/npm/volantis-static/media/org.volantis/blog/favicon/android-chrome-192x192.png"},"url":"https://nanaeo.cn/"},"publisher":{"@type":"Organization","name":"Village","logo":{"@type":"ImageObject","url":"https://fastly.jsdelivr.net/npm/volantis-static/media/org.volantis/blog/favicon/android-chrome-192x192.png","width":192,"height":192}},"wordCount":0,"image":{"@type":"ImageObject","url":"https://fastly.jsdelivr.net/npm/volantis-static/media/org.volantis/blog/favicon/android-chrome-192x192.png","width":192,"height":192}}]</script><script src="https://fastly.jsdelivr.net/npm/volantis-static/libs/pjax/pjax.min.js"></script><script>var pjax;document.addEventListener("DOMContentLoaded",(function(){pjax=new Pjax({elements:'a[href]:not([href^="#"]):not([href="javascript:void(0)"]):not([pjax-fancybox]):not([onclick="return false;"]):not([onclick="return!1"]):not([target="_blank"]):not([target="view_window"]):not([href$=".xml"])',selectors:["head title","head meta[name=keywords]","head meta[name=description]","#l_main","#pjax-header-nav-list",".pjax","pjax","script[data-pjax], .pjax-reload script"],cacheBust:!1,timeout:5e3})})),document.addEventListener("pjax:send",(function(e){try{var t=window.location.pathname,n=e.triggerElement.href,a=[""];""!=a[0]&&a.forEach(e=>{-1==t.indexOf(e)&&-1==n.indexOf(e)||(window.location.href=n)})}catch(e){}volantis.pjax.method.send.start()})),document.addEventListener("pjax:complete",(function(){volantis.pjax.method.complete.start()})),document.addEventListener("pjax:error",(function(e){volantis.debug?(console.error(e),console.log("pjax error: \n"+JSON.stringify(e))):(volantis.pjax.method.error.start(),window.location.href=e.triggerElement.href)}))</script></div><script data-pjax async src="https://ackee.nanaeo.cn/tracker.js" data-ackee-server="https://ackee.nanaeo.cn" data-ackee-domain-id="3e94aa30-5cea-4f2b-9ec6-c0178d3beb0c"></script><script>"serviceWorker"in navigator&&navigator.serviceWorker.register("/volantis-sw.js").then((function(e){e.onupdatefound=function(){var r=e.installing;r.onstatechange=function(){switch(r.state){case"installed":navigator.serviceWorker.controller?console.log("Updated serviceWorker."):console.log("serviceWorker Sucess!");break;case"redundant":console.log("The installing service worker became redundant.")}}}})).catch((function(e){console.log("Error during service worker registration:",e)}))</script></body></html>