PageSourceSearch

https://shisaq.github.io/about/

html shisaq.github.io collected 2026-10-03 09:56:36 UTC 29,904 bytes, 970 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en">
3
4<head>
5    <meta charset="utf-8">
6    <meta http-equiv="X-UA-Compatible" content="IE=edge">
7    <meta name="google-site-verification" content="xBT4GhYoi5qRD5tr338pgPM5OWHHIDR6mNg1a3euekI" />
8    <meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">
9    <meta name="description" content="要当闲云野鹤,要食人间烟火">
10    <meta name="keywords"  content="优客李李, 尤克里里, ukulele, uke, 乌克丽丽, 程序猿, 视频剪辑">
11    <meta name="theme-color" content="#000000">
12    
13    <!-- Open Graph -->
14    <meta property="og:title" content="我 - 优客李李的博客 | Uulili's Blog">
15    
16    <meta property="og:type" content="website">
17    <meta property="og:description" content="我是优客李李">
18    
19    <meta property="og:image" content="https://shisaq.github.io/img/avatar-shisaq.jpg">
20    <meta property="og:url" content="https://shisaq.github.io/about/">
21    <meta property="og:site_name" content="优客李李的博客 | Uulili's Blog">
22    
23    <title>我 - 优客李李的博客 | Uulili's Blog</title>
24
25    <!-- Web App Manifest -->
26    <link rel="manifest" href="/pwa/manifest.json">
27
28    <!-- Favicon -->
29    <link rel="shortcut icon" href="/img/favicon.ico">
30    
31    <!-- Canonical URL -->
32    <link rel="canonical" href="https://shisaq.github.io/about/">
33
34    <!-- Bootstrap Core CSS -->
35    <link rel="stylesheet" href="/css/bootstrap.min.css">
36
37    <!-- Custom CSS -->
38    <link rel="stylesheet" href="/css/hux-blog.min.css">
39
40    <!-- Custom Fonts -->
41    <!-- <link href="https://cdn.jsdelivr.net/npm/@fortawesome/[email protected]/css/fontawesome.min.css" rel="stylesheet" type="text/css"> -->
42    <!-- Hux change font-awesome CDN to qiniu -->
43    <!-- <link href="//cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta2/css/fontawesome.min.css" rel="stylesheet" type="text/css"> -->
44    <link href="//cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta2/css/all.min.css" rel="stylesheet" type="text/css">
45
46    <!-- adwords -->
47    
47<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-1085659005199651"
48     crossorigin="anonymous"></script>
48
49    
50    <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
51    <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
52    <!--[if lt IE 9]>
53        
53<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
53
54        
54<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
54
55    <![endif]-->
56
57    <!-- ga & ba script hoook -->
58    
58<script></script>
58
59</head>
60
61
62<!-- hack iOS CSS :active style -->
63<body ontouchstart="">
64
65    <!-- Navigation -->
66
67    <nav class="navbar navbar-default navbar-custom navbar-fixed-top">
68        
69        <div class="container-fluid">
70            <!-- Brand and toggle get grouped for better mobile display -->
71            <div class="navbar-header page-scroll">
72                <button type="button" class="navbar-toggle">
73                    <span class="sr-only">Toggle navigation</span>
74                    <span class="icon-bar"></span>
75                    <span class="icon-bar"></span>
76                    <span class="icon-bar"></span>
77                </button>
78                <a class="navbar-brand" href="/">优客李李</a>
79            </div>
80
81            <!-- Collect the nav links, forms, and other content for toggling -->
82            <div id="huxblog_navbar">
83                <div class="navbar-collapse">
84                    <ul class="nav navbar-nav navbar-right">
85                        <li>
86                            <a href="/">首页</a>
87                        </li>
88                        
89                        
90                        
91                        
92                        <li>
93                            <a href="/about/">我</a>
94                        </li>
95                        
96                        
97                        
98                        <li>
99                            <a href="/archive/">文章分类</a>
100                        </li>
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                        
136                        
137                        
138                        
139                        
140                        
141                        
142                        
143                        
144                        
145                        
146                        
147                        
148                        
149                        
150                        
151                        
152                        
153                        
154                        
155                        <li class="search-icon">
156                            <a href="javascript:void(0)">
157                                <i class="fa fa-search"></i>
158                            </a>
159                        </li>
160                    </ul>
161                </div>
162            </div>
163            <!-- /.navbar-collapse -->
164        </div>
165        <!-- /.container -->
166    </nav>
167
168    
168<script>
169        // Drop Bootstarp low-performance Navbar
170        // Use customize navbar with high-quality material design animation
171        // in high-perf jank-free CSS3 implementation
172        var $body = document.body;
173        var $toggle = document.querySelector('.navbar-toggle');
174        var $navbar = document.querySelector('#huxblog_navbar');
175        var $collapse = document.querySelector('.navbar-collapse');
176
177        var __HuxNav__ = {
178            close: function () {
179                $navbar.className = " ";
180                // wait until animation end.
181                setTimeout(function () {
182                    // prevent frequently toggle
183                    if ($navbar.className.indexOf('in') < 0) {
184                        $collapse.style.height = "0px"
185                    }
186                }, 400)
187            },
188            open: function () {
189                $collapse.style.height = "auto"
190                $navbar.className += " in";
191            }
192        }
193
194        // Bind Event
195        $toggle.addEventListener('click', function (e) {
196            if ($navbar.className.indexOf('in') > 0) {
197                __HuxNav__.close()
198            } else {
199                __HuxNav__.open()
200            }
201        })
202
203        /**
204         * Since Fastclick is used to delegate 'touchstart' globally
205         * to hack 300ms delay in iOS by performing a fake 'click',
206         * Using 'e.stopPropagation' to stop 'touchstart' event from 
207         * $toggle/$collapse will break global delegation.
208         * 
209         * Instead, we use a 'e.target' filter to prevent handler
210         * added to document close HuxNav.  
211         *
212         * Also, we use 'click' instead of 'touchstart' as compromise
213         */
214        document.addEventListener('click', function (e) {
215            if (e.target == $toggle) return;
216            if (e.target.className == 'icon-bar') return;
217            __HuxNav__.close();
218        })
219    </script>
219
220    <!-- Search -->
221<div class="search-page">
222  <div class="search-icon-close-container">
223    <span class="search-icon-close">
224      <i class="fa fa-chevron-down"></i>
225    </span>
226  </div>
227  <div class="search-main container">
228    <div class="row">
229      <div class="col-lg-8 col-lg-offset-2 col-md-10 col-md-offset-1">
230        <form></form>
231        <input type="text" id="search-input" placeholder="你要找什么呢?">
232        </form>
233        <div id="search-results" class="mini-post-list"></div>
234      </div>
235    </div>
236  </div>
237</div>
238
239    <!-- Page Header -->
240
241
242
243
244
245
246
247<header class="intro-header" style="background-image: url('/img/about-bg.jpg')">
248  <div class="container">
249    <div class="row">
250      <div class="col-lg-8 col-lg-offset-2 col-md-10 col-md-offset-1">
251        
252        <div class="site-heading">
253        
254          <h1>我</h1>
255          <span class="subheading">我是优客李李</span>
256        </div>
257      </div>
258    </div>
259  </div>
260</header>
261
262
263<!-- Main Content -->
264<div class="container">
265	<div class="row">
266        
267
268<!-- USE SIDEBAR -->
269    <!-- PostList Container -->
270    		<div class="
271                col-lg-8 col-lg-offset-1
272                col-md-8 col-md-offset-1
273                col-sm-12
274                col-xs-12
275                postlist-container
276            ">
277    			                <!-- Language Selector -->
278                <select class="sel-lang" onchange= "onLanChange(this.options[this.options.selectedIndex].value)">
279                    <option value="0" selected> 中文 | Chinese </option>
280                    <option value="1"> 英文 | English </option>
281                </select>
282
283
284
285<!-- Chinese Version -->
286<div class="zh post-container">
287    
288    <p>Hi,我是优客李李,给你的生活加点阳光~</p>
289
290<p>本博客主要分享我在学习各种东西时的收获。包括但不限于:编程、剪辑、音乐、尤克里里、投资。</p>
291
292<p>快速找到我在尤克里里领域提供的知识:</p>
293
294<h3 id="youtube频道">YouTube频道</h3>
295
296<p><a href="https://bit.ly/3hwep3x">https://bit.ly/3hwep3x</a></p>
297
298<h3 id="b站">b站</h3>
299
300<p><a href="https://space.bilibili.com/35566393">https://space.bilibili.com/35566393</a></p>
301
302<h3 id="微博">微博</h3>
303
304<p><a href="http://weibo.com/shisaq">http://weibo.com/shisaq</a></p>
305
306<h3 id="尤克里里问题汇总">尤克里里问题汇总</h3>
307
308<p><a href="https://support.qq.com/products/107004/">https://support.qq.com/products/107004/</a></p>
309
310<h3 id="知乎">知乎</h3>
311
312<p><a href="https://www.zhihu.com/people/shisaq">https://www.zhihu.com/people/shisaq</a></p>
313
314<h3 id="公众号-ukleelee">公众号: ukleelee</h3>
315
316<p><img src="https://markdown-img.s3.ap-northeast-1.amazonaws.com/shisaq/2021-03-10-11-32-39-微信二维码.jpg" alt="优客李李公众号" /></p>
317
318<h3 id="视频号">视频号</h3>
319
320<p>优客李李 <img src="https://markdown-img.s3.ap-northeast-1.amazonaws.com/shisaq/2021-03-10-11-30-02-视频号.jpg" alt="优客李李视频号" /></p>
321
322<h3 id="微信">微信</h3>
323
324<p><img src="https://markdown-img.s3.ap-northeast-1.amazonaws.com/shisaq/2021-03-10-12-43-11-优客李李企业微信二维码.png" alt="优客李李企业微信" /></p>
325
326</div>
327
328<!-- English Version -->
329<div class="en post-container">
330    
331    <p>Hi, I am <em>@uulili</em>, it’s time to shine out!</p>
332
333<p>This blog is about to share my achievements during the lifelong learning process, including programming, filmmaking, music, ukulele, investment, etc.</p>
334
335<p>Here are the links to rapidly find out the ukulele knowledge at different platforms:</p>
336
337<h3 id="youtube-channel">YouTube Channel</h3>
338
339<p><a href="https://bit.ly/3hwep3x">https://bit.ly/3hwep3x</a></p>
340
341<h3 id="bilibili">Bilibili</h3>
342
343<p><a href="https://space.bilibili.com/35566393">https://space.bilibili.com/35566393</a></p>
344
345<h3 id="weibo">Weibo</h3>
346
347<p><a href="http://weibo.com/shisaq">http://weibo.com/shisaq</a></p>
348
349<h3 id="ukulele-qa">Ukulele Q&amp;A</h3>
350
351<p><a href="https://support.qq.com/products/107004/">https://support.qq.com/products/107004/</a></p>
352
353<h3 id="zhihu">Zhihu</h3>
354
355<p><a href="https://www.zhihu.com/people/shisaq">https://www.zhihu.com/people/shisaq</a></p>
356
357<h3 id="wechat-official-account-ukleelee">Wechat Official Account: ukleelee</h3>
358
359<p><img src="https://markdown-img.s3.ap-northeast-1.amazonaws.com/shisaq/2021-03-10-11-32-39-微信二维码.jpg" alt="优客李李公众号" /></p>
360
361<h3 id="wechat-channel">Wechat Channel</h3>
362
363<p>优客李李 <img src="https://markdown-img.s3.ap-northeast-1.amazonaws.com/shisaq/2021-03-10-11-30-02-视频号.jpg" alt="优客李李视频号" /></p>
364
365<h3 id="personal-wechat">Personal Wechat</h3>
366
367<p><img src="https://markdown-img.s3.ap-northeast-1.amazonaws.com/shisaq/2021-03-10-12-43-11-优客李李企业微信二维码.png" alt="优客李李企业微信" /></p>
368
369</div>
370
371
372
373<!-- disqus 评论框 start -->
374<div class="comment">
375    <div id="disqus_thread" class="disqus-thread">
376
377    </div>
378</div>
379<!-- disqus 评论框 end -->
380
381<!-- disqus 公共JS代码 start (一个网页只需插入一次) -->
382<script>
383    /**
384    *  RECOMMENDED CONFIGURATION VARIABLES: EDIT AND UNCOMMENT THE SECTION BELOW TO INSERT DYNAMIC VALUES FROM YOUR PLATFORM OR CMS.
385    *  LEARN WHY DEFINING THESE VARIABLES IS IMPORTANT: https://disqus.com/admin/universalcode/#configuration-variables    */
386    /*
387    var disqus_config = function () {
388    this.page.url = PAGE_URL;  // Replace PAGE_URL with your page's canonical URL variable
389    this.page.identifier = PAGE_IDENTIFIER; // Replace PAGE_IDENTIFIER with your page's unique identifier variable
390    };
391    */
392    (function() { // DON'T EDIT BELOW THIS LINE
393    var disqus_shortname = "shisaq";
394    var disqus_identifier = "shisaq//about/";
395    var disqus_url = "https://shisaq.github.io/about/";
396
397    var d = document, s = d.createElement('script');
398    s.src = '//' + disqus_shortname + '.disqus.com/embed.js';
399    s.setAttribute('data-timestamp', +new Date());
400    (d.head || d.body).appendChild(s);
401    })();
402</script>
402
403<noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
404<!-- disqus 公共JS代码 end -->
405
406    		</div>
407    <!-- Sidebar Container -->
408            <div class="
409                col-lg-3 col-lg-offset-0
410                col-md-3 col-md-offset-0
411                col-sm-12
412                col-xs-12
413                sidebar-container
414            ">
415                <!-- Featured Tags -->
416                
417
418
419<section>
420    
421    <h5><a href="/archive/">文章分类</a></h5>
422    <div class="tags">
423        
424        
425        
426        
427        
428        
429                <a data-sort="0208" 
430                    href="/archive/?tag=others"
431                    title="others"
432                    rel="4">others</a>
433        
434                <a data-sort="0142" 
435                    href="/archive/?tag=%E6%8A%95%E8%B5%84%E7%90%86%E8%B4%A2"
436                    title="投资理财"
437                    rel="70">投资理财</a>
438        
439                <a data-sort="0164" 
440                    href="/archive/?tag=%E5%89%8D%E7%AB%AF%E5%BC%80%E5%8F%91"
441                    title="前端开发"
442                    rel="48">前端开发</a>
443        
444                <a data-sort="0178" 
445                    href="/archive/?tag=%E4%B8%AA%E4%BA%BA%E6%88%90%E9%95%BF"
446                    title="个人成长"
447                    rel="34">个人成长</a>
448        
449                <a data-sort="0197" 
450                    href="/archive/?tag=%E5%85%A8%E6%A0%88%E5%BC%80%E5%8F%91"
451                    title="全栈开发"
452                    rel="15">全栈开发</a>
453        
454                <a data-sort="0200" 
455                    href="/archive/?tag=%E9%9F%B3%E8%A7%86%E9%A2%91%E5%88%B6%E4%BD%9C"
456                    title="音视频制作"
457                    rel="12">音视频制作</a>
458        
459                <a data-sort="0202" 
460                    href="/archive/?tag=%E6%8A%80%E6%9C%AF%E5%88%86%E4%BA%AB"
461                    title="技术分享"
462                    rel="10">技术分享</a>
463        
464                <a data-sort="0203" 
465                    href="/archive/?tag=%E7%BD%91%E7%BB%9C%E8%B5%84%E6%BA%90%E6%91%98%E5%BD%95"
466                    title="网络资源摘录"
467                    rel="9">网络资源摘录</a>
468        
469                <a data-sort="0205" 
470                    href="/archive/?tag=howto"
471                    title="howto"
472                    rel="7">howto</a>
473        
474                <a data-sort="0208" 
475                    href="/archive/?tag=%E7%94%9F%E4%BA%A7%E5%8A%9B"
476                    title="生产力"
477                    rel="4">生产力</a>
478        
479                <a data-sort="0209" 
480                    href="/archive/?tag=%E6%99%BA%E8%83%BD%E5%AE%B6%E5%B1%85"
481                    title="智能家居"
482                    rel="3">智能家居</a>
483        
484                <a data-sort="0209" 
485                    href="/archive/?tag=%E7%BB%88%E7%AB%AF"
486                    title="终端"
487                    rel="3">终端</a>
488        
489                <a data-sort="0210" 
490                    href="/archive/?tag=%E5%A8%B1%E4%B9%90"
491                    title="娱乐"
492                    rel="2">娱乐</a>
493        
494                <a data-sort="0210" 
495                    href="/archive/?tag=Home+Assistant"
496                    title="Home Assistant"
497                    rel="2">Home Assistant</a>
498        
499                <a data-sort="0210" 
500                    href="/archive/?tag=journal"
501                    title="journal"
502                    rel="2">journal</a>
503    </div>
504</section>
505
506
507                <!-- Short About -->
508                <section class="visible-md visible-lg">
509  <hr>
510  <h5><a href="/about/">我是谁</a></h5>
511  <div class="short-about">
512    
513    <img src="/img/avatar-shisaq.jpg" />
514    
515    
516    <p>要当闲云野鹤,要食人间烟火。</p>
517    
518    <!-- SNS Link -->
519    
520
521
522<ul class="list-inline">
523
524
525  
526  
527  <li>
528    <a href="https://space.bilibili.com/35566393">
529      <span class="fa-stack fa-lg">
530        <i class="fa fa-circle fa-stack-2x"></i>
531        <i class="fa-brands fa-bilibili fa-stack-1x fa-inverse"></i>
532      </span>
533    </a>
534  </li>
535  
536  
537  <li>
538    <a href="https://twitter.com/shisaq">
539      <span class="fa-stack fa-lg">
540        <i class="fa fa-circle fa-stack-2x"></i>
541        <i class="fa-brands fa-twitter fa-stack-1x fa-inverse"></i>
542      </span>
543    </a>
544  </li>
545  
546  
547  <li>
548    <a target="_blank" href="https://www.zhihu.com/people/shisaq">
549      <span class="fa-stack fa-lg">
550        <i class="fa fa-circle fa-stack-2x"></i>
551        <i class="fa-brands fa-stack-1x fa-inverse">知</i>
552      </span>
553    </a>
554  </li>
555  
556  
557  <li>
558    <a target="_blank" href="http://weibo.com/shisaq">
559      <span class="fa-stack fa-lg">
560        <i class="fa fa-circle fa-stack-2x"></i>
561        <i class="fa-brands fa-weibo fa-stack-1x fa-inverse"></i>
562      </span>
563    </a>
564  </li>
565  
566  
567  
568  <li>
569    <a target="_blank" href="https://github.com/shisaq">
570      <span class="fa-stack fa-lg">
571        <i class="fa fa-circle fa-stack-2x"></i>
572        <i class="fa-brands fa-github fa-stack-1x fa-inverse"></i>
573      </span>
574    </a>
575  </li>
576  
577  
578</ul>
579  </div>
580</section>
581
582                <!-- Friends Blog -->
583                
584<hr>
585<h5>友情链接</h5>
586<ul class="list-inline">
587  
588  <li><a href="http://huangxuan.me">Hux Blog</a></li>
589  
590  <li><a href="#">Foo</a></li>
591  
592  <li><a href="#">Bar</a></li>
593  
594</ul>
595
596    		</div>
597        
598	</div>
599</div>
600
601
602
603    <!-- Footer -->
604<footer>
605    <div class="container">
606        <div class="row">
607            <div class="col-lg-8 col-lg-offset-2 col-md-10 col-md-offset-1">
608                <!-- SNS Link -->
609                
610
611
612<ul class="list-inline text-center">
613
614
615  
616  
617  <li>
618    <a href="https://space.bilibili.com/35566393">
619      <span class="fa-stack fa-lg">
620        <i class="fa fa-circle fa-stack-2x"></i>
621        <i class="fa-brands fa-bilibili fa-stack-1x fa-inverse"></i>
622      </span>
623    </a>
624  </li>
625  
626  
627  <li>
628    <a href="https://twitter.com/shisaq">
629      <span class="fa-stack fa-lg">
630        <i class="fa fa-circle fa-stack-2x"></i>
631        <i class="fa-brands fa-twitter fa-stack-1x fa-inverse"></i>
632      </span>
633    </a>
634  </li>
635  
636  
637  <li>
638    <a target="_blank" href="https://www.zhihu.com/people/shisaq">
639      <span class="fa-stack fa-lg">
640        <i class="fa fa-circle fa-stack-2x"></i>
641        <i class="fa-brands fa-stack-1x fa-inverse">知</i>
642      </span>
643    </a>
644  </li>
645  
646  
647  <li>
648    <a target="_blank" href="http://weibo.com/shisaq">
649      <span class="fa-stack fa-lg">
650        <i class="fa fa-circle fa-stack-2x"></i>
651        <i class="fa-brands fa-weibo fa-stack-1x fa-inverse"></i>
652      </span>
653    </a>
654  </li>
655  
656  
657  
658  <li>
659    <a target="_blank" href="https://github.com/shisaq">
660      <span class="fa-stack fa-lg">
661        <i class="fa fa-circle fa-stack-2x"></i>
662        <i class="fa-brands fa-github fa-stack-1x fa-inverse"></i>
663      </span>
664    </a>
665  </li>
666  
667  
668</ul>
669
670                <p class="copyright text-muted">
671                    Copyright &copy; 优客李李 2026
672                    <br>
673                    Powered by <a href="http://huangxuan.me">Hux Blog</a> |
674                    <iframe style="margin-left: 2px; margin-bottom:-5px;" frameborder="0" scrolling="0" width="100px"
675                        height="20px"
676                        src="https://ghbtns.com/github-btn.html?user=huxpro&repo=huxpro.github.io&type=star&count=true">
677                    </iframe>
678                </p>
679            </div>
680        </div>
681    </div>
682</footer>
683
684<!-- jQuery -->
685<script src="/js/jquery.min.js "></script>
685
686
687<!-- Bootstrap Core JavaScript -->
688<!-- Currently, only navbar scroll-down effect at desktop still depends on this -->
689<script src="/js/bootstrap.min.js "></script>
689
690
691<!-- Custom Theme JavaScript -->
692<script src="/js/hux-blog.min.js "></script>
692
693
694<!-- Simple Jekyll Search -->
695<script src="/js/simple-jekyll-search.min.js"></script>
695
696
697<!-- Service Worker -->
698
699<script src="/js/snackbar.js "></script>
vendor: 1 bytes, line 699
699
700<script src="/js/sw-registration.js "></script>
700
701
702
703<!-- async load function -->
704<script>
705    function async(u, c) {
706        var d = document, t = 'script',
707            o = d.createElement(t),
708            s = d.getElementsByTagName(t)[0];
709        o.src = u;
710        if (c) { o.addEventListener('load', function (e) { c(null, e); }, false); }
711        s.parentNode.insertBefore(o, s);
712    }
713</script>
713
714
715<!--
716     Because of the native support for backtick-style fenced code blocks
717     right within the Markdown is landed in Github Pages,
718     From V1.6, There is no need for Highlight.js,
719     so Huxblog drops it officially.
720
721     - https://github.com/blog/2100-github-pages-now-faster-and-simpler-with-jekyll-3-0
722     - https://help.github.com/articles/creating-and-highlighting-code-blocks/
723     - https://github.com/jneen/rouge/wiki/list-of-supported-languages-and-lexers
724-->
725<!--
726    
726<script>
727        async("http://cdn.bootcss.com/highlight.js/8.6/highlight.min.js", function(){
728            hljs.initHighlightingOnLoad();
729        })
730    </script>
730
731    <link href="http://cdn.bootcss.com/highlight.js/8.6/styles/github.min.css" rel="stylesheet">
732-->
733
734
735
736
737
738
739
740<!--fastClick.js -->
741<script>
742    async("//cdnjs.cloudflare.com/ajax/libs/fastclick/1.0.6/fastclick.min.js", function () {
743        var $nav = document.querySelector("nav");
744        if ($nav) FastClick.attach($nav);
745    })
746</script>
746
747
748
749<!-- Google Analytics -->
750
751<script>
752    // dynamic User by Hux
753    var _gaId = 'UA-49627206-1';
754    var _gaDomain = 'shisaq.github.io';
755
756    // Originial
757    (function (i, s, o, g, r, a, m) {
758        i['GoogleAnalyticsObject'] = r; i[r] = i[r] || function () {
759            (i[r].q = i[r].q || []).push(arguments)
760        }, i[r].l = 1 * new Date(); a = s.createElement(o),
761            m = s.getElementsByTagName(o)[0]; a.async = 1; a.src = g; m.parentNode.insertBefore(a, m)
762    })(window, document, 'script', '//www.google-analytics.com/analytics.js', 'ga');
763
764    ga('create', _gaId, _gaDomain);
765    ga('send', 'pageview');
766</script>
766
767
768
769
770<!-- Baidu Tongji -->
771
772<script>
773    // dynamic User by Hux
774    var _baId = '4cc1f2d8f3067386cc5cdb626a202900';
775
776    // Originial
777    var _hmt = _hmt || [];
778    (function () {
779        var hm = document.createElement("script");
780        hm.src = "//hm.baidu.com/hm.js?" + _baId;
781        var s = document.getElementsByTagName("script")[0];
782        s.parentNode.insertBefore(hm, s);
783    })();
784</script>
784
785
786
787
788<!-- Side Catalog -->
789
790<script type="text/javascript">
791    function generateCatalog(selector) {
792
793        // interop with multilangual 
794        if ('true' == 'true') {
795            _containerSelector = 'div.post-container.active'
796        } else {
797            _containerSelector = 'div.post-container'
798        }
799
800        // init
801        var P = $(_containerSelector), a, n, t, l, i, c;
802        a = P.find('h1,h2,h3,h4,h5,h6');
803
804        // clean
805        $(selector).html('')
806
807        // appending
808        a.each(function () {
809            n = $(this).prop('tagName').toLowerCase();
810            i = "#" + $(this).prop('id');
811            t = $(this).text();
812            c = $('<a href="' + i + '" rel="nofollow">' + t + '</a>');
813            l = $('<li class="' + n + '_nav"></li>').append(c);
814            $(selector).append(l);
815        });
816        return true;
817    }
818
819    generateCatalog(".catalog-body");
820
821    // toggle side catalog
822    $(".catalog-toggle").click((function (e) {
823        e.preventDefault();
824        $('.side-catalog').toggleClass("fold")
825    }))
826
827    /*
828     * Doc: https://github.com/davist11/jQuery-One-Page-Nav
829     * Fork by Hux to support padding
830     */
831    async("/js/jquery.nav.js", function () {
832        $('.catalog-body').onePageNav({
833            currentClass: "active",
834            changeHash: !1,
835            easing: "swing",
836            filter: "",
837            scrollSpeed: 700,
838            scrollOffset: 0,
839            scrollThreshold: .2,
840            begin: null,
841            end: null,
842            scrollChange: null,
843            padding: 80
844        });
845    });
846</script>
846
847
848
849
850<!-- Multi-Lingual -->
851
852<!-- Handle Language Change -->
853<script type="text/javascript">
854    // get nodes
855    var $zh = document.querySelector(".zh");
856    var $en = document.querySelector(".en");
857    var $select = document.querySelector("select");
858
859    // Changes at v1.8.1: include lang flag as a url query. This interop well with catalog hash anchors.
860    function getLang() { return new URLSearchParams(document.location.search).get("lang") }
861
862    function setLang(newLang) {
863        var params = new URLSearchParams(document.location.search)
864        params.set("lang", newLang)
865        document.location.search = params.toString()  // refresh.
866    }
867
868    // handle render
869    function _render() {
870        var lang = getLang()
871        // en
872        if (lang == "en") {
873            $select.selectedIndex = 1;
874            $en.style.display = "block";
875            $en.classList.add("active");
876            $zh.style.display = "none";
877            $zh.classList.remove("active");
878            // default to zh-cn
879        } else {
880            $select.selectedIndex = 0;
881            $zh.style.display = "block";
882            $zh.classList.add("active");
883            $en.style.display = "none";
884            $en.classList.remove("active");
885        }
886        // interop with catalog 
887        generateCatalog(".catalog-body");
888    }
889
890    // handle select change
891    function onLanChange(index) {
892        if (index == 0) {
893            lang = "zh"
894        } else {
895            lang = "en"
896        }
897        setLang(lang)
898    }
899
900    // init
901    _render();
902</script>
902
903
904
905<!-- Simple Jekyll Search -->
906<script>
907    // https://stackoverflow.com/questions/1912501/unescape-html-entities-in-javascript
908    function htmlDecode(input) {
909        var e = document.createElement('textarea');
910        e.innerHTML = input;
911        // handle case of empty input
912        return e.childNodes.length === 0 ? "" : e.childNodes[0].nodeValue;
913    }
914
915    SimpleJekyllSearch({
916        searchInput: document.getElementById('search-input'),
917        resultsContainer: document.getElementById('search-results'),
918        json: '/search.json',
919        searchResultTemplate: '<div class="post-preview item"><a href="{url}"><h2 class="post-title">{title}</h2><h3 class="post-subtitle">{subtitle}</h3><hr></a></div>',
920        noResultsText: 'No results',
921        limit: 50,
922        fuzzy: false,
923        // a hack to get escaped subtitle unescaped. for some reason, 
924        // post.subtitle w/o escape filter nuke entire search.
925        templateMiddleware: function (prop, value, template) {
926            if (prop === 'subtitle' || prop === 'title') {
927                if (value.indexOf("code")) {
928                    return htmlDecode(value);
929                } else {
930                    return value;
931                }
932            }
933        }
934    });
935
936    $(document).ready(function () {
937        var $searchPage = $('.search-page');
938        var $searchOpen = $('.search-icon');
939        var $searchClose = $('.search-icon-close');
940        var $searchInput = $('#search-input');
941        var $body = $('body');
942
943        $searchOpen.on('click', function (e) {
944            e.preventDefault();
945            $searchPage.toggleClass('search-active');
946            var prevClasses = $body.attr('class') || '';
947            setTimeout(function () {
948                $body.addClass('no-scroll');
949            }, 400)
950
951            if ($searchPage.hasClass('search-active')) {
952                $searchClose.on('click', function (e) {
953                    e.preventDefault();
954                    $searchPage.removeClass('search-active');
955                    $body.attr('class', prevClasses);  // from closure 
956                });
957                $searchInput.focus();
958            }
959        });
960    });
961</script>
961
962
963
964<!-- Image to hack wechat -->
965<img src="/img/icon_wechat.png" width="0" height="0" />
966<!-- Migrate from head to bottom, no longer block render and still work -->
967
968</body>
969
970</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.