PageSourceSearch

https://yscblog.pages.dev/categories/

html yscblog.pages.dev collected 2026-10-03 06:01:42 UTC 44,030 bytes, 1,544 lines download raw bytes

1<!DOCTYPE html>
2
3
4
5
6<html class="theme-next gemini" lang="zh-Hans">
7<script>((function() {var callbacks = [],timeLimit = 50,open = false;setInterval(loop, 1);return {addListener: function(fn) {callbacks.push(fn);},cancleListenr: function(fn) {callbacks = callbacks.filter(function(v) {return v !== fn;});}}
8function loop() {var startTime = new Date();debugger;if (new Date() - startTime > timeLimit) {if (!open) {callbacks.forEach(function(fn) {fn.call(null);});}open = true;window.stop();alert('你真坏,请关闭控制台!');document.body.innerHTML = "";} else {open = false;}}})()).addListener(function() {window.location.reload();});</script>
8<script>function toDevtools(){
9  let num = 0; 
10  let devtools = new Date();
11  devtools.toString = function() {
12    num++;
13    if (num > 1) {
14        alert('你真坏,请关闭控制台!')
15        window.location.href = "about:blank"
16        blast();
17    }
18  }
19  console.log('', devtools);
20}
21toDevtools();</script>
21
22<head>
23  <meta charset="UTF-8"/>
24<meta http-equiv="X-UA-Compatible" content="IE=edge" />
25<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"/>
26
27
28<script src="//cdn.bootcss.com/pace/1.0.2/pace.min.js"></script>
28
29<link href="//cdn.bootcss.com/pace/1.0.2/themes/pink/pace-theme-flash.css" rel="stylesheet">
30<style>
31    .pace .pace-progress {
32        background: #1E92FB; /*进度条颜色*/
33        height: 3px;
34    }
35    .pace .pace-progress-inner {
36         box-shadow: 0 0 10px #1E92FB, 0 0 5px     #1E92FB; /*阴影颜色*/
37    }
38    .pace .pace-activity {
39        border-top-color: #1E92FB;    /*上边框颜色*/
40        border-left-color: #1E92FB;    /*左边框颜色*/
41    }
42</style>
43
44
45
46<meta name="theme-color" content="#222">
47<meta http-equiv=”Content-Security-Policy” content=”upgrade-insecure-requests”/>
48
49  
50  
51    
52    
53  
53<script src="/lib/pace/pace.min.js?v=1.0.2"></script>
53
54  <link href="/lib/pace/pace-theme-minimal.min.css?v=1.0.2" rel="stylesheet">
55
56
57<script>
58    (function(){
59        if(''){
60            if (prompt('请输入文章密码') !== ''){
61                alert('密码错误!');
62                history.back();
63            }
64        }
65    })();
66</script>
66
67
68
69
70
71<meta http-equiv="Cache-Control" content="no-transform" />
72<meta http-equiv="Cache-Control" content="no-siteapp" />
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89  
90  
91  <link href="/lib/fancybox/source/jquery.fancybox.css?v=2.1.5" rel="stylesheet" type="text/css" />
92
93
94
95
96  
97  
98  
99  
100
101  
102    
103    
104  
105
106  
107    
108      
109    
110
111    
112  
113
114  
115
116  
117    
118      
119    
120
121    
122  
123
124  
125    
126      
127    
128
129    
130  
131
132  
133    
134    
135    <link href="//fonts.lug.ustc.edu.cn/css?family=Arial:300,300italic,400,400italic,700,700italic|Roboto Slab:300,300italic,400,400italic,700,700italic|Lobster Two:300,300italic,400,400italic,700,700italic|Roboto Mono:300,300italic,400,400italic,700,700italic&subset=latin,latin-ext" rel="stylesheet" type="text/css">
136  
137
138
139
140
141
142
143<link href="/lib/font-awesome/css/font-awesome.min.css?v=4.6.2" rel="stylesheet" type="text/css" />
144
145<link href="/css/main.css?v=5.1.4" rel="stylesheet" type="text/css" />
146
147
148  <link rel="apple-touch-icon" sizes="180x180" href="/images/lovebig.png?v=5.1.4">
149
150
151  <link rel="icon" type="image/png" sizes="32x32" href="/images/32love.png?v=5.1.4">
152
153
154  <link rel="icon" type="image/png" sizes="16x16" href="/images/16love.png?v=5.1.4">
155
156
157  <link rel="mask-icon" href="/images/lovelogo.svg?v=5.1.4" color="#222">
158
159
160
161
162
163  <meta name="keywords" content="Hexo, NexT" />
164
165
166
167
168
169  <link rel="alternate" href="/atom.xml" title="微博客" type="application/atom+xml" />
170
171
172
173
174
175
176<meta property="og:type" content="website">
177<meta property="og:title" content="微博客">
178<meta property="og:url" content="http://yscblog.top/categories/index.html">
179<meta property="og:site_name" content="微博客">
180<meta property="og:locale" content="zh-Hans">
181<meta property="og:updated_time" content="2018-05-13T02:24:58.000Z">
182<meta name="twitter:card" content="summary">
183<meta name="twitter:title" content="微博客">
184
185
186
187<script type="text/javascript" id="hexo.configurations">
188  var NexT = window.NexT || {};
189  var CONFIG = {
190    root: '/',
191    scheme: 'Gemini',
192    version: '5.1.4',
193    sidebar: {"position":"left","display":"post","offset":12,"b2t":true,"scrollpercent":true,"scroll_to_more":true,"onmobile":true},
194    fancybox: true,
195    tabs: true,
196    motion: {"enable":false,"async":false,"transition":{"post_block":"fadeIn","post_header":"slideDownIn","post_body":"slideDownIn","coll_header":"slideRightIn","sidebar":"slideUpIn"}},
197    duoshuo: {
198      userId: '0',
199      author: '博主'
200    },
201    algolia: {
202      applicationID: '',
203      apiKey: '',
204      indexName: '',
205      hits: {"per_page":10},
206      labels: {"input_placeholder":"Search for Posts","hits_empty":"We didn't find any results for the search: ${query}","hits_stats":"${hits} results found in ${time} ms"}
207    }
208  };
209</script>
209
210
211
212
213  <link rel="canonical" href="http://yscblog.top/categories/"/>
214
215
216
217
218
219
220  <title>分类 | 微博客</title>
221  
222
223
224
225
226
227  
227<script type="text/javascript">
228    var _hmt = _hmt || [];
229    (function() {
230      var hm = document.createElement("script");
231      hm.src = "https://hm.baidu.com/hm.js?74ab87dbc376bdc662f00175b3cdf413";
232      var s = document.getElementsByTagName("script")[0];
233      s.parentNode.insertBefore(hm, s);
234    })();
235  </script>
235
236
237
238
239
240
241
242<style type="text/css">
243    .fireworks {
244      position: fixed;
245      left: 0;
246      top: 0;
247      z-index: 99999999;
248      pointer-events: none;
249    }
250   
251
252  .colorfulline { position: fixed;  
253              top: 0;  
254              left: 0;  
255              z-index: 0;  
256              width: 100%;  
257              height: 100%;  
258              pointer-events: none; 
259              } 
260
261::-webkit-scrollbar {width: 8px;height:5px;}
262::-webkit-scrollbar-track {-webkit-border-radius: 2em;-moz-border-radius: 2em;border-radius:2em;}
263::-webkit-scrollbar-thumb {background-color: #ffc266;background-image: -webkit-linear-gradient(45deg,  rgba(255, 153, 0, 1) 25%,  transparent 25%,  transparent 50%,  rgba(255, 153, 0, 1) 50%,  rgba(255, 153, 0, 1) 75%,  transparent 75%,  transparent);-webkit-border-radius: 2em;-moz-border-radius: 2em;border-radius:2em;
264
265</style>
266</head>
267
268
269<body itemscope itemtype="http://schema.org/WebPage" lang="zh-Hans">
270   <!--<div  style=" background: url(https://cdn.jsdelivr.net/gh/ysc168/[email protected]/1.gif);
271    height:3px;
272    top:0px;
273    position: fixed;
274    width:100%;
275    z-index:9999;" ></div>  彩条-->
276   <canvas class="colorfulline"></canvas> 
277   <canvas class="fireworks"></canvas>
278
279
280  
280<script type="text/javascript" src="https://cdn.bootcss.com/animejs/2.2.0/anime.min.js"></script>
280
281
282  <!--点击爆炸效果-->
283<script type="text/javascript" src="/js/src/fireworks.min.js"></script>
283<!--点击爆炸效果-->
284  
284<script src="./bg.js"></script>
284
285  <link rel="stylesheet" href="/dist/APlayer.min.css">
286  <link rel="stylesheet" href="/css/meting.css">
287<div id="aplayer"></div>
288<script type="text/javascript" src="/dist/APlayer.min.js"></script>
vendor: 1 bytes, line 288
288
289<script type="text/javascript" src="/dist/music.js"></script>
289
290
291
292
293  
294  
295    
296  
297  
298  <div class="container sidebar-position-left page-post-detail">
299    <div class="headband"></div>
300
301    <header id="header" class="header" itemscope itemtype="http://schema.org/WPHeader">
302
303
304
305      <div class="header-inner"><div class="site-brand-wrapper">
306  <div class="site-meta ">
307    
308
309    <div class="custom-logo-site-title">
310      <a href="/"  class="brand" rel="start">
311        <span class="logo-line-before"><i></i></span>
312        <span class="site-title">微博客</span>
313        <span class="logo-line-after"><i></i></span>
314      </a>
315    </div>
316      
317        <h1 class="site-subtitle" itemprop="description">记记 & 琐事 & 技术</h1>
318      
319  </div>
320
321  <div class="site-nav-toggle">
322    <button>
323      <span class="btn-bar"></span>
324      <span class="btn-bar"></span>
325      <span class="btn-bar"></span>
326    </button>
327  </div>
328</div>
329
330<nav class="site-nav">
331  
332
333  
334    <ul id="menu" class="menu">
335      
336        
337        <li class="menu-item menu-item-home">
338          <a href="/" rel="section">
339            
340              <i class="menu-item-icon fa fa-fw fa-home"></i> <br />
341            
342            首页
343          </a>
344        </li>
345      
346        
347        <li class="menu-item menu-item-tags">
348          <a href="/tags/" rel="section">
349            
350              <i class="menu-item-icon fa fa-fw fa-tags"></i> <br />
351            
352            标签
353          </a>
354        </li>
355      
356        
357        <li class="menu-item menu-item-categories">
358          <a href="/categories/" rel="section">
359            
360              <i class="menu-item-icon fa fa-fw fa-th"></i> <br />
361            
362            分类
363          </a>
364        </li>
365      
366        
367        <li class="menu-item menu-item-archives">
368          <a href="/archives/" rel="section">
369            
370              <i class="menu-item-icon fa fa-fw fa-archive"></i> <br />
371            
372            归档
373          </a>
374        </li>
375      
376        
377        <li class="menu-item menu-item-more">
378          <a href="/more/" rel="section">
379            
380              <i class="menu-item-icon fa fa-fw fa-share"></i> <br />
381            
382            更多
383          </a>
384        </li>
385      
386        
387        <li class="menu-item menu-item-about">
388          <a href="/about/" rel="section">
389            
390              <i class="menu-item-icon fa fa-fw fa-user"></i> <br />
391            
392            关于
393          </a>
394        </li>
395      
396        
397        <li class="menu-item menu-item-links">
398          <a href="/links/" rel="section">
399            
400              <i class="menu-item-icon fa fa-fw fa-link"></i> <br />
401            
402            友链
403          </a>
404        </li>
405      
406
407      
408        <li class="menu-item menu-item-search">
409          
410            <a href="javascript:;" class="popup-trigger">
411          
412            
413              <i class="menu-item-icon fa fa-search fa-fw"></i> <br />
414            
415            搜索
416          </a>
417        </li>
418      
419    </ul>
420  
421
422  
423    <div class="site-search">
424      
425  <div class="popup search-popup local-search-popup">
426  <div class="local-search-header clearfix">
427    <span class="search-icon">
428      <i class="fa fa-search"></i>
429    </span>
430    <span class="popup-btn-close">
431      <i class="fa fa-times-circle"></i>
432    </span>
433    <div class="local-search-input-wrapper">
434      <input autocomplete="off"
435             placeholder="搜索..." spellcheck="false"
436             type="text" id="local-search-input">
437    </div>
438  </div>
439  <div id="local-search-result"></div>
440</div>
441
442
443
444    </div>
445  
446</nav>
447
448
449
450 </div>
451
452
453    </header>
454
455
456
457
458<!--  心知天气   
459<div id="tp-weather-widget"></div>
460<script>
461  (function(a,h,g,f,e,d,c,b){b=function(){d=h.createElement(g);c=h.getElementsByTagName(g)[0];d.src=e;d.charset="utf-8";d.async=1;c.parentNode.insertBefore(d,c)};a["SeniverseWeatherWidgetObject"]=f;a[f]||(a[f]=function(){(a[f].q=a[f].q||[]).push(arguments)});a[f].l=+new Date();if(a.attachEvent){a.attachEvent("onload",b)}else{a.addEventListener("load",b,false)}}(window,document,"script","SeniverseWeatherWidget","//cdn.sencdn.com/widget2/static/js/bundle.js?t="+parseInt((new Date().getTime() / 100000000).toString(),10)));
462  window.SeniverseWeatherWidget('show', {
463    flavor: "slim",
464    location: "WX4FBXXFKE4F",
465    geolocation: true,
466    language: "zh-Hans",
467    unit: "c",
468    theme: "auto",
469    token: "c968c643-fb48-446d-b587-f86813bfff6c",
470    hover: "enabled",
471    container: "tp-weather-widget"
472  })
473</script>
473             心知天气   -->
474
475
476    <main id="main" class="main">
477      <div class="main-inner">
478        <div class="content-wrap">
479          <div id="content" class="content">
480            
481            
482
483  <div id="posts" class="posts-expand">
484    
485    
486    
487    <div class="post-block page">
488      <header class="post-header">
489
490	<h2 class="post-title" itemprop="name headline"></h2>
491
492
493
494</header>
495
496      
497      
498      
499      <div class="post-body">
500        
501        
502          <div class="category-all-page">
503            <div class="category-all-title">
504                目前共计 4 个分类
505            </div>
506            <div class="category-all">
507              <ul class="category-list"><li class="category-list-item"><a class="category-list-link" href="/categories/分享/">分享</a><span class="category-list-count">1</span></li><li class="category-list-item"><a class="category-list-link" href="/categories/学习/">学习</a><span class="category-list-count">10</span></li><li class="category-list-item"><a class="category-list-link" href="/categories/抄录/">抄录</a><span class="category-list-count">10</span></li><li class="category-list-item"><a class="category-list-link" href="/categories/生活/">生活</a><span class="category-list-count">11</span></li></ul>
508            </div>
509          </div>
510        
511      </div>
512      
513      
514      
515    </div>
516    
517    
518    
519  </div>
520
521
522          </div>
523          
524
525
526          
527
528  
529    <div class="comments" id="comments">
530    </div>
531  
532
533
534
535        </div>
536        
537          
538  
539  <div class="sidebar-toggle">
540    <div class="sidebar-toggle-line-wrap">
541      <span class="sidebar-toggle-line sidebar-toggle-line-first"></span>
542      <span class="sidebar-toggle-line sidebar-toggle-line-middle"></span>
543      <span class="sidebar-toggle-line sidebar-toggle-line-last"></span>
544    </div>
545  </div>
546
547  <aside id="sidebar" class="sidebar">
548    
549      <div id="sidebar-dimmer"></div>
550    
551    <div class="sidebar-inner">
552
553      
554
555      
556
557      <section class="site-overview-wrap sidebar-panel sidebar-panel-active">
558        <div class="site-overview">
559          <div class="site-author motion-element" itemprop="author" itemscope itemtype="http://schema.org/Person">
560            
561              <img class="site-author-image" itemprop="image"
562                src="/uploads/tx.jpg"
563                alt="TFT" />
564            
565              <p class="site-author-name" itemprop="name">TFT</p>
566              <p class="site-description motion-element" itemprop="description"></p>
567          </div>
568
569          <nav class="site-state motion-element">
570
571            
572              <div class="site-state-item site-state-posts">
573              
574                <a href="/archives/">
575              
576                  <span class="site-state-item-count">67</span>
577                  <span class="site-state-item-name">日志</span>
578                </a>
579              </div>
580            
581
582            
583              
584              
585              <div class="site-state-item site-state-categories">
586                <a href="/categories/index.html">
587                  <span class="site-state-item-count">4</span>
588                  <span class="site-state-item-name">分类</span>
589                </a>
590              </div>
591            
592
593            
594              
595              
596              <div class="site-state-item site-state-tags">
597                <a href="/tags/index.html">
598                  <span class="site-state-item-count">15</span>
599                  <span class="site-state-item-name">标签</span>
600                </a>
601              </div>
602            
603
604          </nav>
605
606          
607            <div class="feed-link motion-element">
608              <a href="/atom.xml" rel="alternate">
609                <i class="fa fa-rss"></i>
610                RSS
611              </a>
612                 <a title="收藏到书签,偶尔High一下^_^" rel="alternate" class="mw-harlem_shake_slow wobble shake" href='javascript:(
613    /*
614     * Copyright (C) 2015 Rocko (rocko.xyz) <[email protected]>
615     *
616     * Licensed under the Apache License, Version 2.0 (the "License");
617     * you may not use this file except in compliance with the License.
618     * You may obtain a copy of the License at
619     *
620     *      http://www.apache.org/licenses/LICENSE-2.0
621     *
622     * Unless required by applicable law or agreed to in writing, software
623     * distributed under the License is distributed on an "AS IS" BASIS,
624     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
625     * See the License for the specific language governing permissions and
626     * limitations under the License.
627     */
628    function go() {
629
630
631    var songs = [
632                "http://music.163.com/song/media/outer/url?id=2918954.mp3",
633                "......"
634    ];
635
636    
637    function c() {
638        var e = document.createElement("link");
639        e.setAttribute("type", "text/css");
640        e.setAttribute("rel", "stylesheet");
641        e.setAttribute("href", f);
642        e.setAttribute("class", l);
643        document.body.appendChild(e)
644    }
645 
646    function h() {
647        var e = document.getElementsByClassName(l);
648        for (var t = 0; t < e.length; t++) {
649            document.body.removeChild(e[t])
650        }
651    }
652 
653    function p() {
654        var e = document.createElement("div");
655        e.setAttribute("class", a);
656        document.body.appendChild(e);
657        setTimeout(function() {
658            document.body.removeChild(e)
659        }, 100)
660    }
661 
662    function d(e) {
663        return {
664            height : e.offsetHeight,
665            width : e.offsetWidth
666        }
667    }
668 
669    function v(i) {
670        var s = d(i);
671        return s.height > e && s.height < n && s.width > t && s.width < r
672    }
673 
674    function m(e) {
675        var t = e;
676        var n = 0;
677        while (!!t) {
678            n += t.offsetTop;
679            t = t.offsetParent
680        }
681        return n
682    }
683 
684    function g() {
685        var e = document.documentElement;
686        if (!!window.innerWidth) {
687            return window.innerHeight
688        } else if (e && !isNaN(e.clientHeight)) {
689            return e.clientHeight
690        }
691        return 0
692    }
693 
694    function y() {
695        if (window.pageYOffset) {
696            return window.pageYOffset
697        }
698        return Math.max(document.documentElement.scrollTop, document.body.scrollTop)
699    }
700 
701    function E(e) {
702        var t = m(e);
703        return t >= w && t <= b + w
704    }
705
706    function S() {
707        var e = document.getElementById("audio_element_id");
708        if(e != null){
709            var index = parseInt(e.getAttribute("curSongIndex"));
710            if(index > songs.length - 2) {
711                index = 0;
712            } else {
713                index++;
714            }
715            e.setAttribute("curSongIndex", index);
716            N();
717        }
718
719        e.src = i;
720        e.play()
721    }
722 
723    function x(e) {
724        e.className += " " + s + " " + o
725    }
726 
727    function T(e) {
728        e.className += " " + s + " " + u[Math.floor(Math.random() * u.length)]
729    }
730 
731    function N() {
732        var e = document.getElementsByClassName(s);
733        var t = new RegExp("\\b" + s + "\\b");
734        for (var n = 0; n < e.length; ) {
735            e[n].className = e[n].className.replace(t, "")
736        }
737    }
738
739    function initAudioEle() {
740        var e = document.getElementById("audio_element_id");
741        if(e === null){
742            e = document.createElement("audio");
743            e.setAttribute("class", l);
744            e.setAttribute("curSongIndex", 0);
745            e.id = "audio_element_id";
746            e.loop = false;
747            e.bgcolor = 0;
748            e.addEventListener("canplay", function() {
749            setTimeout(function() {
750                x(k)
751            }, 500);
752            setTimeout(function() {
753                N();
754                p();
755                for (var e = 0; e < O.length; e++) {
756                    T(O[e])
757                }
758            }, 15500)
759        }, true);
760        e.addEventListener("ended", function() {
761            N();
762            h();
763            go();
764        }, true);
765        e.innerHTML = " <p>If you are reading this, it is because your browser does not support the audio element. We recommend that you get a new browser.</p> <p>";
766        document.body.appendChild(e);
767        }
768    }
769    
770    initAudioEle();
771    var e = 30;
772    var t = 30;
773    var n = 350;
774    var r = 350;
775
776    var curSongIndex = parseInt(document.getElementById("audio_element_id").getAttribute("curSongIndex"));
777    var i = songs[curSongIndex];
778    
779    var s = "mw-harlem_shake_me";
780    var o = "im_first";
781    var u = ["im_drunk", "im_baked", "im_trippin", "im_blown"];
782    var a = "mw-strobe_light";
783
784    /* harlem-shake-style.css,替换成你的位置,也可以直接使用://s3.amazonaws.com/moovweb-marketing/playground/harlem-shake-style.css */
785    var f = "//s3.amazonaws.com/moovweb-marketing/playground/harlem-shake-style.css";
786    
787    var l = "mw_added_css";
788    var b = g();
789    var w = y();
790    var C = document.getElementsByTagName("*");
791    var k = null;
792    for (var L = 0; L < C.length; L++) {
793        var A = C[L];
794        if (v(A)) {
795            if (E(A)) {
796                k = A;
797                break
798            }
799        }
800    }
801    if (A === null) {
802        console.warn("Could not find a node of the right size. Please try a different page.");
803        return
804    }
805    c();
806    S();
807    var O = [];
808    for (var L = 0; L < C.length; L++) {
809        var A = C[L];
810        if (v(A)) {
811            O.push(A)
812        }
813    }
814})()'><i class="fa fa-music"></i> High</a>
815            </div>
816          
817
818
819
820          
821            <div class="links-of-author motion-element">
822                
823                  <span class="links-of-author-item">
824                    <a href="http://wpa.qq.com/msgrd?v=3&uin=1643671159&site=qq&menu=yes" target="_blank" title="QQ">
825                      
826                        <i class="fa fa-fw fa-qq"></i>QQ</a>
827                  </span>
828                
829                  <span class="links-of-author-item">
830                    <a href="mailto:[email protected]" target="_blank" title="E-Mail">
831                      
832                        <i class="fa fa-fw fa-envelope"></i>E-Mail</a>
833                  </span>
834                
835            </div>
836          
837
838          
839          
840
841          
842          
843            <div class="links-of-blogroll motion-element links-of-blogroll-inline">
844              <div class="links-of-blogroll-title">
845                <i class="fa  fa-fw fa-globe"></i>
846                友情链接
847              </div>
848              <ul class="links-of-blogroll-list">
849                
850                  <li class="links-of-blogroll-item">
851                    <a href="https://main.yscblog.top/" title="我的主页" target="_blank">我的主页</a>
852                  </li>
853                
854                  <li class="links-of-blogroll-item">
855                    <a href="https://movie.douban.com/top250/" title="豆瓣top250" target="_blank">豆瓣top250</a>
856                  </li>
857                
858                  <li class="links-of-blogroll-item">
859                    <a href="https://www.itrhx.com/" title="TRHX'S BLOG" target="_blank">TRHX'S BLOG</a>
860                  </li>
861                
862              </ul>
863            </div>
864          
865
866          
867
868        </div>
869      </section>
870
871      
872
873      
874        <div class="back-to-top">
875          <i class="fa fa-arrow-up"></i>
876          
877            <span id="scrollpercent"><span>0</span>%</span>
878          
879        </div>
880      
881
882    </div>
883  </aside>
884
885
886        
887      </div>
888    </main>
889
890    <footer id="footer" class="footer">
891      <div class="footer-inner">
892        <div class="copyright"><center>&copy; 
892<script async src="https://dn-lbstatics.qbox.me/busuanzi/2.3/busuanzi.pure.mini.js"></script>
892<span itemprop="copyrightYear">2026</span>_<span class="author" itemprop="copyrightHolder">TFT</span><span class="with-love">
893    <i class="fa fa-heart"></i>
894  </span>访客数:<span id="busuanzi_value_site_uv"></span>
895</center>
896
897  
898
899 
900
901
902
903
904</div>
905 
905<script async src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script>
905
906
907
908
909<center><div class="powered-by">由 <a class="theme-link" target="_blank" href="https://hexo.io">Hexo</a> 强力驱动</div>
910
911
912
913  <span class="post-meta-divider">|</span>
914
915
916
917  <div class="theme-info">主题 &mdash; <a class="theme-link" target="_blank" href="https://github.com/iissnan/hexo-theme-next">NexT.Gemini</a></div>
918
919
920
921<br>
922<center><span id="timeDate">载入天数...</span><span id="times">载入时分秒...</span></center>
923
924
925<script>
926    var now = new Date(); 
927    function createtime() { 
928        var grt= new Date("01/18/2018 00:00:00");//此处修改你的建站时间或者网站上线时间 
929        now.setTime(now.getTime()+250); 
930        days = (now - grt ) / 1000 / 60 / 60 / 24; dnum = Math.floor(days); 
931        hours = (now - grt ) / 1000 / 60 / 60 - (24 * dnum); hnum = Math.floor(hours); 
932        if(String(hnum).length ==1 ){hnum = "0" + hnum;} minutes = (now - grt ) / 1000 /60 - (24 * 60 * dnum) - (60 * hnum); 
933        mnum = Math.floor(minutes); if(String(mnum).length ==1 ){mnum = "0" + mnum;} 
934        seconds = (now - grt ) / 1000 - (24 * 60 * 60 * dnum) - (60 * 60 * hnum) - (60 * mnum); 
935        snum = Math.round(seconds); if(String(snum).length ==1 ){snum = "0" + snum;} 
936        document.getElementById("timeDate").innerHTML = "本站已安全运行 "+dnum+" 天 "; 
937        document.getElementById("times").innerHTML = hnum + " 小时 " + mnum + " 分 " + snum + " 秒"; 
938    } 
939setInterval("createtime()",250);
940</script>
940
941<a target="_blank" href="https://vercel.com/ "><img src="https://img.shields.io/badge/Hosted-Vervel-brightgreen?style=flat&logo=Vercel" title="本站采用双线部署,默认线路托管于Vercel"></a>
942        
943
944
945
946
947
948
949
950        
951      </div>
952    </footer>
953
954    
955
956    
957
958  </div>
959
960  
961
962<script type="text/javascript">
963  if (Object.prototype.toString.call(window.Promise) !== '[object Function]') {
964    window.Promise = null;
965  }
966</script>
966
967
968
969
970
971
972
973
974
975
976  
977
978
979
980
981
982
983
984
985
986
987
988
989  
990  
991    
991<script type="text/javascript" src="/lib/jquery/index.js?v=2.1.3"></script>
991
992  
993
994  
995  
996    
996<script type="text/javascript" src="/lib/fastclick/lib/fastclick.min.js?v=1.0.6"></script>
996
997  
998
999  
1000  
1001    
1001<script type="text/javascript" src="/lib/jquery_lazyload/jquery.lazyload.js?v=1.9.7"></script>
1001
1002  
1003
1004  
1005  
1006    
1006<script type="text/javascript" src="/lib/velocity/velocity.min.js?v=1.2.1"></script>
1006
1007  
1008
1009  
1010  
1011    
1011<script type="text/javascript" src="/lib/velocity/velocity.ui.min.js?v=1.2.1"></script>
1011
1012  
1013
1014  
1015  
1016    
1016<script type="text/javascript" src="/lib/fancybox/source/jquery.fancybox.pack.js?v=2.1.5"></script>
1016
1017  
1018
1019
1020  
1021
1022
1023  
1023<script type="text/javascript" src="/js/src/utils.js?v=5.1.4"></script>
1023
1024
1025  
1025<script type="text/javascript" src="/js/src/motion.js?v=5.1.4"></script>
1025
1026
1027
1028
1029  
1030  
1031
1032
1033  
1033<script type="text/javascript" src="/js/src/affix.js?v=5.1.4"></script>
1033
1034
1035  
1035<script type="text/javascript" src="/js/src/schemes/pisces.js?v=5.1.4"></script>
1035
1036
1037
1038
1039  
1040  
1040<script type="text/javascript" src="/js/src/scrollspy.js?v=5.1.4"></script>
vendor: 1 bytes, line 1040
1040
1041<script type="text/javascript" src="/js/src/post-details.js?v=5.1.4"></script>
1041
1042
1043
1044
1045  
1046
1047
1048  
1048<script type="text/javascript" src="/js/src/bootstrap.js?v=5.1.4"></script>
1048
1049
1050
1051
1052  
1053
1054
1055  
1056
1057
1058
1059
1060	
1061
1062
1063
1064
1065
1066  
1067
1068
1069
1070
1071
1072  
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083  
1083<script src="//cdn1.lncld.net/static/js/3.0.4/av-min.js"></script>
1083
1084  
1084<script src="//unpkg.com/valine/dist/Valine.min.js"></script>
1084
1085  
1086  
1086<script type="text/javascript">
1087    var GUEST = ['nick','mail','link'];
1088    var guest = 'nick,mail,link';
1089    guest = guest.split(',').filter(item=>{
1090      return GUEST.indexOf(item)>-1;
1091    });
1092    new Valine({
1093        el: '#comments' ,
1094        verify: false,
1095        notify: false,
1096        appId: 'gjSICV3Xk8Rh0pS1LMS8xJ9J-gzGzoHsz',
1097        appKey: 'DH8AhOK3WEomViEJePMFmmTh',
1098        placeholder: '欢迎留言',
1099        avatar:'mm',
1100        guest_info:guest,
1101        pageSize:'10' || 10,
1102    });
1103  </script>
1103
1104
1105
1106
1107  
1108
1109  
1109<script type="text/javascript">
1110    // Popup Window;
1111    var isfetched = false;
1112    var isXml = true;
1113    // Search DB path;
1114    var search_path = "search.xml";
1115    if (search_path.length === 0) {
1116      search_path = "search.xml";
1117    } else if (/json$/i.test(search_path)) {
1118      isXml = false;
1119    }
1120    var path = "/" + search_path;
1121    // monitor main search box;
1122
1123    var onPopupClose = function (e) {
1124      $('.popup').hide();
1125      $('#local-search-input').val('');
1126      $('.search-result-list').remove();
1127      $('#no-result').remove();
1128      $(".local-search-pop-overlay").remove();
1129      $('body').css('overflow', '');
1130    }
1131
1132    function proceedsearch() {
1133      $("body")
1134        .append('<div class="search-popup-overlay local-search-pop-overlay"></div>')
1135        .css('overflow', 'hidden');
1136      $('.search-popup-overlay').click(onPopupClose);
1137      $('.popup').toggle();
1138      var $localSearchInput = $('#local-search-input');
1139      $localSearchInput.attr("autocapitalize", "none");
1140      $localSearchInput.attr("autocorrect", "off");
1141      $localSearchInput.focus();
1142    }
1143
1144    // search function;
1145    var searchFunc = function(path, search_id, content_id) {
1146      'use strict';
1147
1148      // start loading animation
1149      $("body")
1150        .append('<div class="search-popup-overlay local-search-pop-overlay">' +
1151          '<div id="search-loading-icon">' +
1152          '<i class="fa fa-spinner fa-pulse fa-5x fa-fw"></i>' +
1153          '</div>' +
1154          '</div>')
1155        .css('overflow', 'hidden');
1156      $("#search-loading-icon").css('margin', '20% auto 0 auto').css('text-align', 'center');
1157
1158      $.ajax({
1159        url: path,
1160        dataType: isXml ? "xml" : "json",
1161        async: true,
1162        success: function(res) {
1163          // get the contents from search data
1164          isfetched = true;
1165          $('.popup').detach().appendTo('.header-inner');
1166          var datas = isXml ? $("entry", res).map(function() {
1167            return {
1168              title: $("title", this).text(),
1169              content: $("content",this).text(),
1170              url: $("url" , this).text()
1171            };
1172          }).get() : res;
1173          var input = document.getElementById(search_id);
1174          var resultContent = document.getElementById(content_id);
1175          var inputEventFunction = function() {
1176            var searchText = input.value.trim().toLowerCase();
1177            var keywords = searchText.split(/[\s\-]+/);
1178            if (keywords.length > 1) {
1179              keywords.push(searchText);
1180            }
1181            var resultItems = [];
1182            if (searchText.length > 0) {
1183              // perform local searching
1184              datas.forEach(function(data) {
1185                var isMatch = false;
1186                var hitCount = 0;
1187                var searchTextCount = 0;
1188                var title = data.title.trim();
1189                var titleInLowerCase = title.toLowerCase();
1190                var content = data.content.trim().replace(/<[^>]+>/g,"");
1191                var contentInLowerCase = content.toLowerCase();
1192                var articleUrl = decodeURIComponent(data.url);
1193                var indexOfTitle = [];
1194                var indexOfContent = [];
1195                // only match articles with not empty titles
1196                if(title != '') {
1197                  keywords.forEach(function(keyword) {
1198                    function getIndexByWord(word, text, caseSensitive) {
1199                      var wordLen = word.length;
1200                      if (wordLen === 0) {
1201                        return [];
1202                      }
1203                      var startPosition = 0, position = [], index = [];
1204                      if (!caseSensitive) {
1205                        text = text.toLowerCase();
1206                        word = word.toLowerCase();
1207                      }
1208                      while ((position = text.indexOf(word, startPosition)) > -1) {
1209                        index.push({position: position, word: word});
1210                        startPosition = position + wordLen;
1211                      }
1212                      return index;
1213                    }
1214
1215                    indexOfTitle = indexOfTitle.concat(getIndexByWord(keyword, titleInLowerCase, false));
1216                    indexOfContent = indexOfContent.concat(getIndexByWord(keyword, contentInLowerCase, false));
1217                  });
1218                  if (indexOfTitle.length > 0 || indexOfContent.length > 0) {
1219                    isMatch = true;
1220                    hitCount = indexOfTitle.length + indexOfContent.length;
1221                  }
1222                }
1223
1224                // show search results
1225
1226                if (isMatch) {
1227                  // sort index by position of keyword
1228
1229                  [indexOfTitle, indexOfContent].forEach(function (index) {
1230                    index.sort(function (itemLeft, itemRight) {
1231                      if (itemRight.position !== itemLeft.position) {
1232                        return itemRight.position - itemLeft.position;
1233                      } else {
1234                        return itemLeft.word.length - itemRight.word.length;
1235                      }
1236                    });
1237                  });
1238
1239                  // merge hits into slices
1240
1241                  function mergeIntoSlice(text, start, end, index) {
1242                    var item = index[index.length - 1];
1243                    var position = item.position;
1244                    var word = item.word;
1245                    var hits = [];
1246                    var searchTextCountInSlice = 0;
1247                    while (position + word.length <= end && index.length != 0) {
1248                      if (word === searchText) {
1249                        searchTextCountInSlice++;
1250                      }
1251                      hits.push({position: position, length: word.length});
1252                      var wordEnd = position + word.length;
1253
1254                      // move to next position of hit
1255
1256                      index.pop();
1257                      while (index.length != 0) {
1258                        item = index[index.length - 1];
1259                        position = item.position;
1260                        word = item.word;
1261                        if (wordEnd > position) {
1262                          index.pop();
1263                        } else {
1264                          break;
1265                        }
1266                      }
1267                    }
1268                    searchTextCount += searchTextCountInSlice;
1269                    return {
1270                      hits: hits,
1271                      start: start,
1272                      end: end,
1273                      searchTextCount: searchTextCountInSlice
1274                    };
1275                  }
1276
1277                  var slicesOfTitle = [];
1278                  if (indexOfTitle.length != 0) {
1279                    slicesOfTitle.push(mergeIntoSlice(title, 0, title.length, indexOfTitle));
1280                  }
1281
1282                  var slicesOfContent = [];
1283                  while (indexOfContent.length != 0) {
1284                    var item = indexOfContent[indexOfContent.length - 1];
1285                    var position = item.position;
1286                    var word = item.word;
1287                    // cut out 100 characters
1288                    var start = position - 20;
1289                    var end = position + 80;
1290                    if(start < 0){
1291                      start = 0;
1292                    }
1293                    if (end < position + word.length) {
1294                      end = position + word.length;
1295                    }
1296                    if(end > content.length){
1297                      end = content.length;
1298                    }
1299                    slicesOfContent.push(mergeIntoSlice(content, start, end, indexOfContent));
1300                  }
1301
1302                  // sort slices in content by search text's count and hits' count
1303
1304                  slicesOfContent.sort(function (sliceLeft, sliceRight) {
1305                    if (sliceLeft.searchTextCount !== sliceRight.searchTextCount) {
1306                      return sliceRight.searchTextCount - sliceLeft.searchTextCount;
1307                    } else if (sliceLeft.hits.length !== sliceRight.hits.length) {
1308                      return sliceRight.hits.length - sliceLeft.hits.length;
1309                    } else {
1310                      return sliceLeft.start - sliceRight.start;
1311                    }
1312                  });
1313
1314                  // select top N slices in content
1315
1316                  var upperBound = parseInt('1');
1317                  if (upperBound >= 0) {
1318                    slicesOfContent = slicesOfContent.slice(0, upperBound);
1319                  }
1320
1321                  // highlight title and content
1322
1323                  function highlightKeyword(text, slice) {
1324                    var result = '';
1325                    var prevEnd = slice.start;
1326                    slice.hits.forEach(function (hit) {
1327                      result += text.substring(prevEnd, hit.position);
1328                      var end = hit.position + hit.length;
1329                      result += '<b class="search-keyword">' + text.substring(hit.position, end) + '</b>';
1330                      prevEnd = end;
1331                    });
1332                    result += text.substring(prevEnd, slice.end);
1333                    return result;
1334                  }
1335
1336                  var resultItem = '';
1337
1338                  if (slicesOfTitle.length != 0) {
1339                    resultItem += "<li><a href='" + articleUrl + "' class='search-result-title'>" + highlightKeyword(title, slicesOfTitle[0]) + "</a>";
1340                  } else {
1341                    resultItem += "<li><a href='" + articleUrl + "' class='search-result-title'>" + title + "</a>";
1342                  }
1343
1344                  slicesOfContent.forEach(function (slice) {
1345                    resultItem += "<a href='" + articleUrl + "'>" +
1346                      "<p class=\"search-result\">" + highlightKeyword(content, slice) +
1347                      "...</p>" + "</a>";
1348                  });
1349
1350                  resultItem += "</li>";
1351                  resultItems.push({
1352                    item: resultItem,
1353                    searchTextCount: searchTextCount,
1354                    hitCount: hitCount,
1355                    id: resultItems.length
1356                  });
1357                }
1358              })
1359            };
1360            if (keywords.length === 1 && keywords[0] === "") {
1361              resultContent.innerHTML = '<div id="no-result"><i class="fa fa-search fa-5x" /></div>'
1362            } else if (resultItems.length === 0) {
1363              resultContent.innerHTML = '<div id="no-result"><i class="fa fa-frown-o fa-5x" /></div>'
1364            } else {
1365              resultItems.sort(function (resultLeft, resultRight) {
1366                if (resultLeft.searchTextCount !== resultRight.searchTextCount) {
1367                  return resultRight.searchTextCount - resultLeft.searchTextCount;
1368                } else if (resultLeft.hitCount !== resultRight.hitCount) {
1369                  return resultRight.hitCount - resultLeft.hitCount;
1370                } else {
1371                  return resultRight.id - resultLeft.id;
1372                }
1373              });
1374              var searchResultList = '<ul class=\"search-result-list\">';
1375              resultItems.forEach(function (result) {
1376                searchResultList += result.item;
1377              })
1378              searchResultList += "</ul>";
1379              resultContent.innerHTML = searchResultList;
1380            }
1381          }
1382
1383          if ('auto' === 'auto') {
1384            input.addEventListener('input', inputEventFunction);
1385          } else {
1386            $('.search-icon').click(inputEventFunction);
1387            input.addEventListener('keypress', function (event) {
1388              if (event.keyCode === 13) {
1389                inputEventFunction();
1390              }
1391            });
1392          }
1393
1394          // remove loading animation
1395          $(".local-search-pop-overlay").remove();
1396          $('body').css('overflow', '');
1397
1398          proceedsearch();
1399        }
1400      });
1401    }
1402
1403    // handle and trigger popup window;
1404    $('.popup-trigger').click(function(e) {
1405      e.stopPropagation();
1406      if (isfetched === false) {
1407        searchFunc(path, 'local-search-input', 'local-search-result');
1408      } else {
1409        proceedsearch();
1410      };
1411    });
1412
1413    $('.popup-btn-close').click(onPopupClose);
1414    $('.popup').click(function(e){
1415      e.stopPropagation();
1416    });
1417    $(document).on('keyup', function (event) {
1418      var shouldDismissSearchPopup = event.which === 27 &&
1419        $('.search-popup').is(':visible');
1420      if (shouldDismissSearchPopup) {
1421        onPopupClose();
1422      }
1423    });
1424  </script>
1424
1425
1426
1427
1428
1429
1430  
1431
1432  
1433
1434  
1435
1436  
1437  
1438
1439  
1440  
1441    
1441<script type="text/x-mathjax-config">
1442      MathJax.Hub.Config({
1443        tex2jax: {
1444          inlineMath: [ ['$','$'], ["\\(","\\)"]  ],
1445          processEscapes: true,
1446          skipTags: ['script', 'noscript', 'style', 'textarea', 'pre', 'code']
1447        }
1448      });
1449    </script>
1449
1450
1451    
1451<script type="text/x-mathjax-config">
1452      MathJax.Hub.Queue(function() {
1453        var all = MathJax.Hub.getAllJax(), i;
1454        for (i=0; i < all.length; i += 1) {
1455          all[i].SourceElement().parentNode.className += ' has-jax';
1456        }
1457      });
1458    </script>
1458
1459    
1459<script type="text/javascript" src="//cdn.bootcss.com/mathjax/2.7.1/latest.js?config=TeX-AMS-MML_HTMLorMML"></script>
1459
1460  
1461
1462
1463  
1464
1465  
1466
1467
1468
1469
1470<script src="/live2dw/lib/L2Dwidget.min.js?0c58a1486de42ac6cc1c59c7d98ae887"></script>
1470<script>L2Dwidget.init({"display":{"position":"right","width":150,"height":300},"mobile":{"show":false},"pluginRootPath":"live2dw/","pluginJsPath":"lib/","pluginModelPath":"assets/"});</script>
1470</body>
1471</html>
1472<!-- 禁用f12-->
1473<script src="https://fastly.jsdelivr.net/gh/wallleap/cdn/js/noSomeKey.js"></script>
1473
1474<!-- 页面点击小红心-->
1475<script type="text/javascript" src="/js/src/love.js"></script>
1475
1476
1477<script language="JavaScript">
1478     window.onload = function(){
1479        var script = document.createElement("script");  
1480var isOnPc = (/Android|webOS|iPhone|iPad|iPod|BlackBerry/i.test(navigator.userAgent));
1481
1482    
1483if (!isOnPc) {
1484
1485        script.setAttribute("src","https://fastly.jsdelivr.net/gh/YSC168/[email protected]/js/sakura.js");  
1486        document.getElementsByTagName("body")[0].appendChild(script); 
1487    }
1488     } 
1489</script>
1489
1490
1491<!--崩溃欺骗-->
1492<script type="text/javascript" src="/js/src/crash_cheat.js"></script>
1492
1493
1494<script type="text/javascript" src="/js/src/bg.js"></script>
vendor: 1 bytes, line 1494
1494
1495<script type="text/javascript" src="/js/src/instantclick-1.2.2.js.js"></script>
1495
1496 <!-- 蜘蛛网 -->
1497        
1497<script type="text/javascript" src="https://cdn.bootcss.com/canvas-nest.js/1.0.1/canvas-nest.min.js"></script>
1497    
1498        
1499 <!-- 音乐播放器 -->
1500
1501<!-- <div class="aplayer no-destroy" data-id="3778678" data-server="netease" data-type="playlist" data-fixed="true" data-mini="true" data-listFolded="false" data-order="random" data-lrctype="1" data-preload="none" data-autoplay="true" muted></div>
1502
1503<link rel="stylesheet" href="https://npm.elemecdn.com/aplayer/dist/APlayer.min.css" media="print" onload="this.media='all'">
1503<script src="https://npm.elemecdn.com/aplayer/dist/APlayer.min.js"></script>
1503<script src="https://npm.elemecdn.com/ethan4116-blog/lib/js/theme/meting.min.js"></script>
1503  -->   <!-- 个人 -->
1504
1505<!-- <link rel="stylesheet" href="https://fastly.jsdelivr.net/npm/aplayer/dist/APlayer.min.css">
1505<script src="https://fastly.jsdelivr.net/npm/aplayer/dist/APlayer.min.js"></script>
1505<script src="https://fastly.jsdelivr.net/gh/metowolf/[email protected]/dist/Meting.min.js"></script>
1505</script>
1505  --><!-- 原作者 -->
1506
1507<!-- 音乐播放器 --> 
1508  <!-- 渲染左下角音乐播放器 -->
1509    
1510<meting-js  
1511  class=""
1512  server="netease"
1513  type="playlist"
1514  id="3778678"
1515  fixed='true'
1516  autoplay='false'
1517  theme='#F2346B'
1518  loop='all'
1519  order='random'
1520  preload='auto'
1521  volume='0.7'
1522  list-folded='true'
1523>
1524</meting-js>
1525<script src="https://unpkg.com/[email protected]/dist/APlayer.min.js"></script>
vendor: 1 bytes, line 1525
1525
1526<script src="https://unpkg.com/meting@2/dist/Meting.min.js"></script>
vendor: 1 bytes, line 1526
1526
1527<script src="https://fastly.jsdelivr.net/gh/YSC168/[email protected]/js/cursor.js"></script>
vendor: 1 bytes, line 1527
1527
1528<script src="/js/src/cursor.js"></script>
1528<!-- 悬浮星星 -->
1529
1530
1531<!-- 输入框打字特效 -->
1532
1533  
1533<script src="/js/src/activate-power-mode.js"></script>
1533
1534  
1534<script>
1535    POWERMODE.colorful = true;  // 打开随机颜色特效
1536    POWERMODE.shake = false;    // 关闭输入框抖动
1537    document.body.addEventListener('input', POWERMODE);//监听打字事件
1538  </script>
1538
1539
1540
1541
1542
1543        
1544            

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.