@mlikiowa/nanaeo 1.0.1702968347635 → 1.0.1702969131476

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