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