PageSourceSearch

https://yangshaoxiang.github.io/about/

html yangshaoxiang.github.io collected 2026-10-03 10:12:18 UTC 28,782 bytes, 1,071 lines download raw bytes

1<!DOCTYPE html>
2
3
4
5  
6
7
8<html class="theme-next mist use-motion" lang="zh-Hans">
9<head>
10  <meta charset="UTF-8"/>
11<meta http-equiv="X-UA-Compatible" content="IE=edge" />
12<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"/>
13<meta name="theme-color" content="#222">
14
15
16
17
18
19
20
21
22
23<meta http-equiv="Cache-Control" content="no-transform" />
24<meta http-equiv="Cache-Control" content="no-siteapp" />
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41  
42  
43  <link href="/lib/fancybox/source/jquery.fancybox.css?v=2.1.5" rel="stylesheet" type="text/css" />
44
45
46
47
48
49
50
51<link href="/lib/font-awesome/css/font-awesome.min.css?v=4.6.2" rel="stylesheet" type="text/css" />
52
53<link href="/css/main.css?v=5.1.3" rel="stylesheet" type="text/css" />
54
55
56  <link rel="apple-touch-icon" sizes="180x180" href="/images/apple-touch-icon-next.png?v=5.1.3">
57
58
59  <link rel="icon" type="image/png" sizes="32x32" href="/images/favicon-32x32-next.png?v=5.1.3">
60
61
62  <link rel="icon" type="image/png" sizes="16x16" href="/images/favicon-16x16-next.png?v=5.1.3">
63
64
65  <link rel="mask-icon" href="/images/logo.svg?v=5.1.3" color="#222">
66
67
68
69
70
71  <meta name="keywords" content="Hexo, NexT" />
72
73
74
75
76
77  <link rel="alternate" href="/atom.xml" title="shaoxiang博客" type="application/atom+xml" />
78
79
80
81
82
83
84<meta name="description" content="个人简介java后端相关开发 博客搭建托管:github框架:hexo主题:next 联系方式[email protected]">
85<meta property="og:type" content="website">
86<meta property="og:title" content="关于">
87<meta property="og:url" content="https://yangshaoxiang.github.io/about/index.html">
88<meta property="og:site_name" content="shaoxiang博客">
89<meta property="og:description" content="个人简介java后端相关开发 博客搭建托管:github框架:hexo主题:next 联系方式[email protected]">
90<meta property="og:locale" content="zh-Hans">
91<meta property="og:updated_time" content="2017-12-10T04:03:02.313Z">
92<meta name="twitter:card" content="summary">
93<meta name="twitter:title" content="关于">
94<meta name="twitter:description" content="个人简介java后端相关开发 博客搭建托管:github框架:hexo主题:next 联系方式[email protected]">
95
96
97
98<script type="text/javascript" id="hexo.configurations">
99  var NexT = window.NexT || {};
100  var CONFIG = {
101    root: '/',
102    scheme: 'Mist',
103    version: '5.1.3',
104    sidebar: {"position":"left","display":"hide","offset":12,"b2t":false,"scrollpercent":false,"onmobile":false},
105    fancybox: true,
106    tabs: true,
107    motion: {"enable":true,"async":false,"transition":{"post_block":"fadeIn","post_header":"slideDownIn","post_body":"slideDownIn","coll_header":"slideLeftIn","sidebar":"slideUpIn"}},
108    duoshuo: {
109      userId: '0',
110      author: '博主'
111    },
112    algolia: {
113      applicationID: '',
114      apiKey: '',
115      indexName: '',
116      hits: {"per_page":10},
117      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"}
118    }
119  };
120</script>
120
121
122
123
124  <link rel="canonical" href="https://yangshaoxiang.github.io/about/"/>
125
126
127
128
129
130  <title>关于 | shaoxiang博客</title>
131  
132
133
134
135
136
137
138
139
140</head>
141
142<body itemscope itemtype="http://schema.org/WebPage" lang="zh-Hans">
143
144  
145  
146    
147  
148
149  <div class="container sidebar-position-left page-post-detail">
150    <div class="headband"></div>
151
152    <header id="header" class="header" itemscope itemtype="http://schema.org/WPHeader">
153      <div class="header-inner"><div class="site-brand-wrapper">
154  <div class="site-meta ">
155    
156
157    <div class="custom-logo-site-title">
158      <a href="/"  class="brand" rel="start">
159        <span class="logo-line-before"><i></i></span>
160        <span class="site-title">shaoxiang博客</span>
161        <span class="logo-line-after"><i></i></span>
162      </a>
163    </div>
164      
165        <p class="site-subtitle">我的博客</p>
166      
167  </div>
168
169  <div class="site-nav-toggle">
170    <button>
171      <span class="btn-bar"></span>
172      <span class="btn-bar"></span>
173      <span class="btn-bar"></span>
174    </button>
175  </div>
176</div>
177
178<nav class="site-nav">
179  
180
181  
182    <ul id="menu" class="menu">
183      
184        
185        <li class="menu-item menu-item-home">
186          <a href="/" rel="section">
187            
188              <i class="menu-item-icon fa fa-fw fa-home"></i> <br />
189            
190            首页
191          </a>
192        </li>
193      
194        
195        <li class="menu-item menu-item-categories">
196          <a href="/categories/" rel="section">
197            
198              <i class="menu-item-icon fa fa-fw fa-th"></i> <br />
199            
200            分类
201          </a>
202        </li>
203      
204        
205        <li class="menu-item menu-item-tags">
206          <a href="/tags/" rel="section">
207            
208              <i class="menu-item-icon fa fa-fw fa-tags"></i> <br />
209            
210            标签
211          </a>
212        </li>
213      
214        
215        <li class="menu-item menu-item-archives">
216          <a href="/archives/" rel="section">
217            
218              <i class="menu-item-icon fa fa-fw fa-archive"></i> <br />
219            
220            归档
221          </a>
222        </li>
223      
224        
225        <li class="menu-item menu-item-about">
226          <a href="/about/" rel="section">
227            
228              <i class="menu-item-icon fa fa-fw fa-user"></i> <br />
229            
230            关于
231          </a>
232        </li>
233      
234
235      
236        <li class="menu-item menu-item-search">
237          
238            <a href="javascript:;" class="popup-trigger">
239          
240            
241              <i class="menu-item-icon fa fa-search fa-fw"></i> <br />
242            
243            搜索
244          </a>
245        </li>
246      
247    </ul>
248  
249
250  
251    <div class="site-search">
252      
253  <div class="popup search-popup local-search-popup">
254  <div class="local-search-header clearfix">
255    <span class="search-icon">
256      <i class="fa fa-search"></i>
257    </span>
258    <span class="popup-btn-close">
259      <i class="fa fa-times-circle"></i>
260    </span>
261    <div class="local-search-input-wrapper">
262      <input autocomplete="off"
263             placeholder="搜索..." spellcheck="false"
264             type="text" id="local-search-input">
265    </div>
266  </div>
267  <div id="local-search-result"></div>
268</div>
269
270
271
272    </div>
273  
274</nav>
275
276
277
278 </div>
279    </header>
280
281    <main id="main" class="main">
282      <div class="main-inner">
283        <div class="content-wrap">
284          <div id="content" class="content">
285            
286
287  <div id="posts" class="posts-expand">
288    
289    
290    
291    <div class="post-block page">
292      <header class="post-header">
293
294	<h1 class="post-title" itemprop="name headline">关于</h1>
295
296
297
298</header>
299
300      
301      
302      
303      <div class="post-body">
304        
305        
306          <h2 id="个人简介"><a href="#个人简介" class="headerlink" title="个人简介"></a>个人简介</h2><p>java后端相关开发</p>
307<h2 id="博客搭建"><a href="#博客搭建" class="headerlink" title="博客搭建"></a>博客搭建</h2><p>托管:github<br>框架:hexo<br>主题:next</p>
308<h2 id="联系方式"><a href="#联系方式" class="headerlink" title="联系方式"></a>联系方式</h2><p>[email protected]</p>
309
310        
311      </div>
312      
313      
314      
315    </div>
316    
317    
318    
319  </div>
320
321
322          </div>
323          
324
325
326          
327
328  
329    <div class="comments" id="comments">
330      
331        <div id="gitment-container"></div>
332      
333    </div>
334
335  
336
337
338
339        </div>
340        
341          
342  
343  <div class="sidebar-toggle">
344    <div class="sidebar-toggle-line-wrap">
345      <span class="sidebar-toggle-line sidebar-toggle-line-first"></span>
346      <span class="sidebar-toggle-line sidebar-toggle-line-middle"></span>
347      <span class="sidebar-toggle-line sidebar-toggle-line-last"></span>
348    </div>
349  </div>
350
351  <aside id="sidebar" class="sidebar">
352    
353    <div class="sidebar-inner">
354
355      
356
357      
358        <ul class="sidebar-nav motion-element">
359          <li class="sidebar-nav-toc sidebar-nav-active" data-target="post-toc-wrap">
360            文章目录
361          </li>
362          <li class="sidebar-nav-overview" data-target="site-overview-wrap">
363            站点概览
364          </li>
365        </ul>
366      
367
368      <section class="site-overview-wrap sidebar-panel">
369        <div class="site-overview">
370          <div class="site-author motion-element" itemprop="author" itemscope itemtype="http://schema.org/Person">
371            
372              <img class="site-author-image" itemprop="image"
373                src="http://s1.wailian.download/2017/12/10/xun.jpg"
374                alt="yangshaoxiang" />
375            
376              <p class="site-author-name" itemprop="name">yangshaoxiang</p>
377              <p class="site-description motion-element" itemprop="description">欢迎来到我的博客</p>
378          </div>
379
380          <nav class="site-state motion-element">
381
382            
383              <div class="site-state-item site-state-posts">
384              
385                <a href="/archives/">
386              
387                  <span class="site-state-item-count">14</span>
388                  <span class="site-state-item-name">日志</span>
389                </a>
390              </div>
391            
392
393            
394              
395              
396              <div class="site-state-item site-state-categories">
397                <a href="/categories/index.html">
398                  <span class="site-state-item-count">4</span>
399                  <span class="site-state-item-name">分类</span>
400                </a>
401              </div>
402            
403
404            
405              
406              
407              <div class="site-state-item site-state-tags">
408                <a href="/tags/index.html">
409                  <span class="site-state-item-count">16</span>
410                  <span class="site-state-item-name">标签</span>
411                </a>
412              </div>
413            
414
415          </nav>
416
417          
418            <div class="feed-link motion-element">
419              <a href="/atom.xml" rel="alternate">
420                <i class="fa fa-rss"></i>
421                RSS
422              </a>
423            </div>
424          
425
426          <div class="links-of-author motion-element">
427            
428          </div>
429
430          
431          
432
433          
434          
435
436          
437
438        </div>
439      </section>
440
441      
442      <!--noindex-->
443        <section class="post-toc-wrap motion-element sidebar-panel sidebar-panel-active">
444          <div class="post-toc">
445
446            
447              
448            
449
450            
451              <div class="post-toc-content"><ol class="nav"><li class="nav-item nav-level-2"><a class="nav-link" href="#个人简介"><span class="nav-number">1.</span> <span class="nav-text">个人简介</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#博客搭建"><span class="nav-number">2.</span> <span class="nav-text">博客搭建</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#联系方式"><span class="nav-number">3.</span> <span class="nav-text">联系方式</span></a></li></ol></div>
452            
453
454          </div>
455        </section>
456      <!--/noindex-->
457      
458
459      
460
461    </div>
462  </aside>
463
464
465        
466      </div>
467    </main>
468
469    <footer id="footer" class="footer">
470      <div class="footer-inner">
471        
471<script async src="https://dn-lbstatics.qbox.me/busuanzi/2.3/busuanzi.pure.mini.js"></script>
471
472<div class="copyright">&copy; <span itemprop="copyrightYear">2019</span>
473  <span class="with-love">
474    <i class="fa fa-user"></i>
475  </span>
476  <span class="author" itemprop="copyrightHolder">yangshaoxiang</span>
477
478  
479</div>
480
481
482	<div class="powered-by">
483	<i class="fa fa-user-md"></i><span id="busuanzi_container_site_uv">
484	  访问用户:<span id="busuanzi_value_site_uv"></span>
485	</span>
486	</div>
487
488	<span class="post-meta-divider">|</span>
489	
490	<div class="powered-by">
491	<i class="fa fa-eye"></i> 
492	<span id="busuanzi_container_site_pv">
493    总访问量:<span id="busuanzi_value_site_pv"></span>次
494  </span>
495	</div>
496	
497
498 <!-- <div class="powered-by">由 <a class="theme-link" target="_blank" href="https://hexo.io">Hexo</a> 强力驱动</div>
499
500-->
501
502  <span class="post-meta-divider">|</span>
503
504 <!--
505
506  <div class="theme-info">主题 &mdash; <a class="theme-link" target="_blank" href="https://github.com/iissnan/hexo-theme-next">NexT.Mist</a> v5.1.3</div>
507-->
508
509
510
511
512<div class="theme-info">
513  <div class="powered-by"></div>
514  <i class="fa fa-pencil"></i>
515  <span class="post-count">博客全站共24.5k字</span>
516</div>
517
518        
519
520
521
522
523
524
525
526        
527      </div>
528    </footer>
529
530    
531      <div class="back-to-top">
532        <i class="fa fa-arrow-up"></i>
533        
534      </div>
535    
536
537    
538
539  </div>
540
541  
542
543<script type="text/javascript">
544  if (Object.prototype.toString.call(window.Promise) !== '[object Function]') {
545    window.Promise = null;
546  }
547</script>
547
548
549
550
551
552
553
554
555
556
557  
558
559
560  
561
562
563
564
565
566
567
568
569
570
571
572  
573  
574    
574<script type="text/javascript" src="/lib/jquery/index.js?v=2.1.3"></script>
574
575  
576
577  
578  
579    
579<script type="text/javascript" src="/lib/fastclick/lib/fastclick.min.js?v=1.0.6"></script>
579
580  
581
582  
583  
584    
584<script type="text/javascript" src="/lib/jquery_lazyload/jquery.lazyload.js?v=1.9.7"></script>
584
585  
586
587  
588  
589    
589<script type="text/javascript" src="/lib/velocity/velocity.min.js?v=1.2.1"></script>
589
590  
591
592  
593  
594    
594<script type="text/javascript" src="/lib/velocity/velocity.ui.min.js?v=1.2.1"></script>
594
595  
596
597  
598  
599    
599<script type="text/javascript" src="/lib/fancybox/source/jquery.fancybox.pack.js?v=2.1.5"></script>
599
600  
601
602  
603  
604    
604<script type="text/javascript" src="/lib/canvas-nest/canvas-nest.min.js"></script>
604
605  
606
607
608  
609
610
611  
611<script type="text/javascript" src="/js/src/utils.js?v=5.1.3"></script>
611
612
613  
613<script type="text/javascript" src="/js/src/motion.js?v=5.1.3"></script>
613
614
615
616
617  
618  
619
620  
621  
621<script type="text/javascript" src="/js/src/scrollspy.js?v=5.1.3"></script>
vendor: 1 bytes, line 621
621
622<script type="text/javascript" src="/js/src/post-details.js?v=5.1.3"></script>
622
623
624
625
626  
627
628
629  
629<script type="text/javascript" src="/js/src/bootstrap.js?v=5.1.3"></script>
629
630
631
632
633  
634
635
636  
637
638
639
640
641	
642
643
644
645
646
647  
648
649
650
651
652
653  
654
655
656
657
658
659
660
661<!-- LOCAL: You can save these files to your site and update links -->
662    
663        
664        <link rel="stylesheet" href="https://aimingoo.github.io/gitmint/style/default.css">
665        
665<script src="https://aimingoo.github.io/gitmint/dist/gitmint.browser.js"></script>
665
666    
667<!-- END LOCAL -->
668
669    
670
671    
672      
672<script type="text/javascript">
673      function renderGitment(){
674        var gitment = new Gitmint({
675            id: window.location.pathname, 
676            owner: 'yangshaoxiang',
677            repo: 'bolgIssues',
678            
679            lang: "zh-Hans" || navigator.language || navigator.systemLanguage || navigator.userLanguage,
680            
681            oauth: {
682            
683            
684                client_secret: '4c22edbe03d5d36279e24db40a3e04c7376cba72',
685            
686                client_id: '5d18dd5dd5c7420967d9'
687            }});
688        gitment.render('gitment-container');
689      }
690
691      
692      renderGitment();
693      
694      </script>
694
695    
696
697
698
699
700
701
702
703  
704
705  
705<script type="text/javascript">
706    // Popup Window;
707    var isfetched = false;
708    var isXml = true;
709    // Search DB path;
710    var search_path = "search.xml";
711    if (search_path.length === 0) {
712      search_path = "search.xml";
713    } else if (/json$/i.test(search_path)) {
714      isXml = false;
715    }
716    var path = "/" + search_path;
717    // monitor main search box;
718
719    var onPopupClose = function (e) {
720      $('.popup').hide();
721      $('#local-search-input').val('');
722      $('.search-result-list').remove();
723      $('#no-result').remove();
724      $(".local-search-pop-overlay").remove();
725      $('body').css('overflow', '');
726    }
727
728    function proceedsearch() {
729      $("body")
730        .append('<div class="search-popup-overlay local-search-pop-overlay"></div>')
731        .css('overflow', 'hidden');
732      $('.search-popup-overlay').click(onPopupClose);
733      $('.popup').toggle();
734      var $localSearchInput = $('#local-search-input');
735      $localSearchInput.attr("autocapitalize", "none");
736      $localSearchInput.attr("autocorrect", "off");
737      $localSearchInput.focus();
738    }
739
740    // search function;
741    var searchFunc = function(path, search_id, content_id) {
742      'use strict';
743
744      // start loading animation
745      $("body")
746        .append('<div class="search-popup-overlay local-search-pop-overlay">' +
747          '<div id="search-loading-icon">' +
748          '<i class="fa fa-spinner fa-pulse fa-5x fa-fw"></i>' +
749          '</div>' +
750          '</div>')
751        .css('overflow', 'hidden');
752      $("#search-loading-icon").css('margin', '20% auto 0 auto').css('text-align', 'center');
753
754      $.ajax({
755        url: path,
756        dataType: isXml ? "xml" : "json",
757        async: true,
758        success: function(res) {
759          // get the contents from search data
760          isfetched = true;
761          $('.popup').detach().appendTo('.header-inner');
762          var datas = isXml ? $("entry", res).map(function() {
763            return {
764              title: $("title", this).text(),
765              content: $("content",this).text(),
766              url: $("url" , this).text()
767            };
768          }).get() : res;
769          var input = document.getElementById(search_id);
770          var resultContent = document.getElementById(content_id);
771          var inputEventFunction = function() {
772            var searchText = input.value.trim().toLowerCase();
773            var keywords = searchText.split(/[\s\-]+/);
774            if (keywords.length > 1) {
775              keywords.push(searchText);
776            }
777            var resultItems = [];
778            if (searchText.length > 0) {
779              // perform local searching
780              datas.forEach(function(data) {
781                var isMatch = false;
782                var hitCount = 0;
783                var searchTextCount = 0;
784                var title = data.title.trim();
785                var titleInLowerCase = title.toLowerCase();
786                var content = data.content.trim().replace(/<[^>]+>/g,"");
787                var contentInLowerCase = content.toLowerCase();
788                var articleUrl = decodeURIComponent(data.url);
789                var indexOfTitle = [];
790                var indexOfContent = [];
791                // only match articles with not empty titles
792                if(title != '') {
793                  keywords.forEach(function(keyword) {
794                    function getIndexByWord(word, text, caseSensitive) {
795                      var wordLen = word.length;
796                      if (wordLen === 0) {
797                        return [];
798                      }
799                      var startPosition = 0, position = [], index = [];
800                      if (!caseSensitive) {
801                        text = text.toLowerCase();
802                        word = word.toLowerCase();
803                      }
804                      while ((position = text.indexOf(word, startPosition)) > -1) {
805                        index.push({position: position, word: word});
806                        startPosition = position + wordLen;
807                      }
808                      return index;
809                    }
810
811                    indexOfTitle = indexOfTitle.concat(getIndexByWord(keyword, titleInLowerCase, false));
812                    indexOfContent = indexOfContent.concat(getIndexByWord(keyword, contentInLowerCase, false));
813                  });
814                  if (indexOfTitle.length > 0 || indexOfContent.length > 0) {
815                    isMatch = true;
816                    hitCount = indexOfTitle.length + indexOfContent.length;
817                  }
818                }
819
820                // show search results
821
822                if (isMatch) {
823                  // sort index by position of keyword
824
825                  [indexOfTitle, indexOfContent].forEach(function (index) {
826                    index.sort(function (itemLeft, itemRight) {
827                      if (itemRight.position !== itemLeft.position) {
828                        return itemRight.position - itemLeft.position;
829                      } else {
830                        return itemLeft.word.length - itemRight.word.length;
831                      }
832                    });
833                  });
834
835                  // merge hits into slices
836
837                  function mergeIntoSlice(text, start, end, index) {
838                    var item = index[index.length - 1];
839                    var position = item.position;
840                    var word = item.word;
841                    var hits = [];
842                    var searchTextCountInSlice = 0;
843                    while (position + word.length <= end && index.length != 0) {
844                      if (word === searchText) {
845                        searchTextCountInSlice++;
846                      }
847                      hits.push({position: position, length: word.length});
848                      var wordEnd = position + word.length;
849
850                      // move to next position of hit
851
852                      index.pop();
853                      while (index.length != 0) {
854                        item = index[index.length - 1];
855                        position = item.position;
856                        word = item.word;
857                        if (wordEnd > position) {
858                          index.pop();
859                        } else {
860                          break;
861                        }
862                      }
863                    }
864                    searchTextCount += searchTextCountInSlice;
865                    return {
866                      hits: hits,
867                      start: start,
868                      end: end,
869                      searchTextCount: searchTextCountInSlice
870                    };
871                  }
872
873                  var slicesOfTitle = [];
874                  if (indexOfTitle.length != 0) {
875                    slicesOfTitle.push(mergeIntoSlice(title, 0, title.length, indexOfTitle));
876                  }
877
878                  var slicesOfContent = [];
879                  while (indexOfContent.length != 0) {
880                    var item = indexOfContent[indexOfContent.length - 1];
881                    var position = item.position;
882                    var word = item.word;
883                    // cut out 100 characters
884                    var start = position - 20;
885                    var end = position + 80;
886                    if(start < 0){
887                      start = 0;
888                    }
889                    if (end < position + word.length) {
890                      end = position + word.length;
891                    }
892                    if(end > content.length){
893                      end = content.length;
894                    }
895                    slicesOfContent.push(mergeIntoSlice(content, start, end, indexOfContent));
896                  }
897
898                  // sort slices in content by search text's count and hits' count
899
900                  slicesOfContent.sort(function (sliceLeft, sliceRight) {
901                    if (sliceLeft.searchTextCount !== sliceRight.searchTextCount) {
902                      return sliceRight.searchTextCount - sliceLeft.searchTextCount;
903                    } else if (sliceLeft.hits.length !== sliceRight.hits.length) {
904                      return sliceRight.hits.length - sliceLeft.hits.length;
905                    } else {
906                      return sliceLeft.start - sliceRight.start;
907                    }
908                  });
909
910                  // select top N slices in content
911
912                  var upperBound = parseInt('1');
913                  if (upperBound >= 0) {
914                    slicesOfContent = slicesOfContent.slice(0, upperBound);
915                  }
916
917                  // highlight title and content
918
919                  function highlightKeyword(text, slice) {
920                    var result = '';
921                    var prevEnd = slice.start;
922                    slice.hits.forEach(function (hit) {
923                      result += text.substring(prevEnd, hit.position);
924                      var end = hit.position + hit.length;
925                      result += '<b class="search-keyword">' + text.substring(hit.position, end) + '</b>';
926                      prevEnd = end;
927                    });
928                    result += text.substring(prevEnd, slice.end);
929                    return result;
930                  }
931
932                  var resultItem = '';
933
934                  if (slicesOfTitle.length != 0) {
935                    resultItem += "<li><a href='" + articleUrl + "' class='search-result-title'>" + highlightKeyword(title, slicesOfTitle[0]) + "</a>";
936                  } else {
937                    resultItem += "<li><a href='" + articleUrl + "' class='search-result-title'>" + title + "</a>";
938                  }
939
940                  slicesOfContent.forEach(function (slice) {
941                    resultItem += "<a href='" + articleUrl + "'>" +
942                      "<p class=\"search-result\">" + highlightKeyword(content, slice) +
943                      "...</p>" + "</a>";
944                  });
945
946                  resultItem += "</li>";
947                  resultItems.push({
948                    item: resultItem,
949                    searchTextCount: searchTextCount,
950                    hitCount: hitCount,
951                    id: resultItems.length
952                  });
953                }
954              })
955            };
956            if (keywords.length === 1 && keywords[0] === "") {
957              resultContent.innerHTML = '<div id="no-result"><i class="fa fa-search fa-5x" /></div>'
958            } else if (resultItems.length === 0) {
959              resultContent.innerHTML = '<div id="no-result"><i class="fa fa-frown-o fa-5x" /></div>'
960            } else {
961              resultItems.sort(function (resultLeft, resultRight) {
962                if (resultLeft.searchTextCount !== resultRight.searchTextCount) {
963                  return resultRight.searchTextCount - resultLeft.searchTextCount;
964                } else if (resultLeft.hitCount !== resultRight.hitCount) {
965                  return resultRight.hitCount - resultLeft.hitCount;
966                } else {
967                  return resultRight.id - resultLeft.id;
968                }
969              });
970              var searchResultList = '<ul class=\"search-result-list\">';
971              resultItems.forEach(function (result) {
972                searchResultList += result.item;
973              })
974              searchResultList += "</ul>";
975              resultContent.innerHTML = searchResultList;
976            }
977          }
978
979          if ('auto' === 'auto') {
980            input.addEventListener('input', inputEventFunction);
981          } else {
982            $('.search-icon').click(inputEventFunction);
983            input.addEventListener('keypress', function (event) {
984              if (event.keyCode === 13) {
985                inputEventFunction();
986              }
987            });
988          }
989
990          // remove loading animation
991          $(".local-search-pop-overlay").remove();
992          $('body').css('overflow', '');
993
994          proceedsearch();
995        }
996      });
997    }
998
999    // handle and trigger popup window;
1000    $('.popup-trigger').click(function(e) {
1001      e.stopPropagation();
1002      if (isfetched === false) {
1003        searchFunc(path, 'local-search-input', 'local-search-result');
1004      } else {
1005        proceedsearch();
1006      };
1007    });
1008
1009    $('.popup-btn-close').click(onPopupClose);
1010    $('.popup').click(function(e){
1011      e.stopPropagation();
1012    });
1013    $(document).on('keyup', function (event) {
1014      var shouldDismissSearchPopup = event.which === 27 &&
1015        $('.search-popup').is(':visible');
1016      if (shouldDismissSearchPopup) {
1017        onPopupClose();
1018      }
1019    });
1020  </script>
1020
1021
1022
1023
1024
1025
1026  
1027
1028  
1029
1030  
1031
1032  
1033  
1034
1035  
1036
1037  
1038
1039  
1040
1041  
1042<div id="hexo-helper-live2d">
1043  <canvas id="live2dcanvas" width="150" height="300"></canvas>
1044</div>
1045<style>
1046  #live2dcanvas{
1047    position: fixed;
1048    width: 150px;
1049    height: 300px;
1050    opacity:0.7;
1051    right: 0px;
1052    z-index: 999;
1053    pointer-events: none;
1054    bottom: -20px;
1055  }
1056</style>
1057<script type="text/javascript" src="/live2d/device.min.js"></script>
vendor: 1 bytes, line 1057
1057
1058<script type="text/javascript">
1059const loadScript = function loadScript(c,b){var a=document.createElement("script");a.type="text/javascript";"undefined"!=typeof b&&(a.readyState?a.onreadystatechange=function(){if("loaded"==a.readyState||"complete"==a.readyState)a.onreadystatechange=null,b()}:a.onload=function(){b()});a.src=c;document.body.appendChild(a)};
1060(function(){
1061  if((typeof(device) != 'undefined') && (device.mobile())){
1062    document.getElementById("live2dcanvas").style.width = '75px';
1063    document.getElementById("live2dcanvas").style.height = '150px';
1064  }else
1065    if (typeof(device) === 'undefined') console.error('Cannot find current-device script.');
1066  loadScript("/live2d/script.js", function(){loadlive2d("live2dcanvas", "/live2d/assets/wanko.model.json", 0.5);});
1067})();
1068</script>
1068
1069
1070</body>
1071</html>

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.