@mlikiowa/nanaeo 1.0.1702968347635 → 1.0.1702969131476

Sign up to get free protection for your applications and to get access to all the features.
Files changed (44) hide show
  1. package/2022/08/04/NewBlog/index.html +1 -3473
  2. package/2022/08/13/GaussWave/index.html +1 -3407
  3. package/about/index.html +1 -3236
  4. package/archives/2022/08/index.html +1 -3411
  5. package/archives/2022/index.html +1 -3411
  6. package/archives/index.html +1 -3308
  7. package/categories/DevLog/index.html +1 -3351
  8. package/categories/SiteLog/index.html +1 -3351
  9. package/categories/index.html +1 -3174
  10. package/content.json +1 -1
  11. package/css/Readme.html +1 -9
  12. package/css/first.css +2 -1504
  13. package/css/style.css +2 -7106
  14. package/friends/index.html +1 -3661
  15. package/index.html +1 -3421
  16. package/js/app.js +2 -1223
  17. package/js/plugins/aplayer.js +2 -186
  18. package/js/plugins/parallax.js +2 -191
  19. package/js/plugins/rightMenu.js +2 -577
  20. package/js/plugins/rightMenus.js +2 -618
  21. package/js/plugins/tags/contributors.js +2 -92
  22. package/js/plugins/tags/friends.js +2 -93
  23. package/js/plugins/tags/sites.js +2 -96
  24. package/js/search/hexo.js +2 -192
  25. package/maps/css/first.css.map +1 -0
  26. package/maps/css/style.css.map +1 -0
  27. package/maps/js/app.js.map +1 -0
  28. package/maps/js/plugins/aplayer.js.map +1 -0
  29. package/maps/js/plugins/parallax.js.map +1 -0
  30. package/maps/js/plugins/rightMenu.js.map +1 -0
  31. package/maps/js/plugins/rightMenus.js.map +1 -0
  32. package/maps/js/plugins/tags/contributors.js.map +1 -0
  33. package/maps/js/plugins/tags/friends.js.map +1 -0
  34. package/maps/js/plugins/tags/sites.js.map +1 -0
  35. package/maps/js/search/hexo.js.map +1 -0
  36. package/maps/volantis-sw.js.map +1 -0
  37. package/package.json +1 -1
  38. package/tags/DevLog/index.html +1 -3351
  39. package/tags/Gauss/index.html +1 -3351
  40. package/tags/Hexo/index.html +1 -3351
  41. package/tags/HexoThemes/index.html +1 -3351
  42. package/tags/SiteLog/index.html +1 -3351
  43. package/tags/index.html +1 -3159
  44. package/volantis-sw.js +2 -797
@@ -1,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>