PageSourceSearch

https://candycat1992.github.io/archive/

html candycat1992.github.io collected 2026-10-03 08:45:08 UTC 26,695 bytes, 893 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="">
11    <meta name="theme-color" content="#000000">
12
13    <!-- Open Graph -->
14    <meta property="og:title"
15        content="Archive - Candycat的博客 | Candycat Blog">
16    
17    <meta property="og:type" content="website">
18    <meta property="og:description"
19        content="「好记性不如烂笔头」">
20    
21    <meta property="og:image" content="candycat1992.github.io/img/avatar-girl.jpg">
22    <meta property="og:url" content="candycat1992.github.io/archive/">
23    <meta property="og:site_name" content="Candycat的博客 | Candycat Blog">
24
25    <title>Archive - Candycat的博客 | Candycat Blog</title>
26
27    <!-- Web App Manifest -->
28    <link rel="manifest" href="/pwa/manifest.json">
29
30    <!-- Favicon -->
31    <link rel="shortcut icon" href="/img/favicon.ico">
32
33    <!-- Canonical URL -->
34    <link rel="canonical" href="candycat1992.github.io/archive/">
35
36    <!-- Bootstrap Core CSS -->
37    <link rel="stylesheet" href=" /css/bootstrap.min.css">
38
39    <!-- Custom CSS -->
40    <link rel="stylesheet" href=" /css/hux-blog.min.css">
41
42    <!-- Custom Fonts -->
43    <!-- <link href="http://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css" rel="stylesheet" type="text/css"> -->
44    <!-- Hux change font-awesome CDN to qiniu -->
45    <link href="//cdnjs.cloudflare.com/ajax/libs/font-awesome/4.6.3/css/font-awesome.min.css" rel="stylesheet"
46        type="text/css">
47
48
49    <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
50    <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
51    <!--[if lt IE 9]>
52        
52<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
52
53        
53<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
53
54    <![endif]-->
55
56    <!-- ga & ba script hoook -->
57    
57<script></script>
57
58
59    <!-- Google AdSense -->
60    
60<script data-ad-client="ca-pub-6487568398225121" async
61        src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
61
62</head>
63
64
65<!-- hack iOS CSS :active style -->
66<body ontouchstart="">
67
68    <!-- Navigation -->
69
70    <nav class="navbar navbar-default navbar-custom navbar-fixed-top">
71        
72        <div class="container-fluid">
73            <!-- Brand and toggle get grouped for better mobile display -->
74            <div class="navbar-header page-scroll">
75                <button type="button" class="navbar-toggle">
76                    <span class="sr-only">Toggle navigation</span>
77                    <span class="icon-bar"></span>
78                    <span class="icon-bar"></span>
79                    <span class="icon-bar"></span>
80                </button>
81                <a class="navbar-brand" href="/">Candycat Blog</a>
82            </div>
83
84            <!-- Collect the nav links, forms, and other content for toggling -->
85            <div id="huxblog_navbar">
86                <div class="navbar-collapse">
87                    <ul class="nav navbar-nav navbar-right">
88                        <li>
89                            <a href="/">Home</a>
90                        </li>
91                        
92                        
93                        
94                        
95                        <li>
96                            <a href="/about/">About</a>
97                        </li>
98                        
99                        
100                        
101                        <li>
102                            <a href="/archive/">Archive</a>
103                        </li>
104                        
105                        
106                        
107                        
108                        
109                        <li>
110                            <a href="/portfolio/">Portfolio</a>
111                        </li>
112                        
113                        
114                        
115                        
116                        
117                        
118                        
119                        
120                        
121                        
122                        
123                        
124                        
125                        
126                        <li class="search-icon">
127                            <a href="javascript:void(0)">
128                                <i class="fa fa-search"></i>
129                            </a>
130                        </li>
131                    </ul>
132                </div>
133            </div>
134            <!-- /.navbar-collapse -->
135        </div>
136        <!-- /.container -->
137    </nav>
138
139    
139<script>
140        // Drop Bootstarp low-performance Navbar
141        // Use customize navbar with high-quality material design animation
142        // in high-perf jank-free CSS3 implementation
143        var $body = document.body;
144        var $toggle = document.querySelector('.navbar-toggle');
145        var $navbar = document.querySelector('#huxblog_navbar');
146        var $collapse = document.querySelector('.navbar-collapse');
147
148        var __HuxNav__ = {
149            close: function () {
150                $navbar.className = " ";
151                // wait until animation end.
152                setTimeout(function () {
153                    // prevent frequently toggle
154                    if ($navbar.className.indexOf('in') < 0) {
155                        $collapse.style.height = "0px"
156                    }
157                }, 400)
158            },
159            open: function () {
160                $collapse.style.height = "auto"
161                $navbar.className += " in";
162            }
163        }
164
165        // Bind Event
166        $toggle.addEventListener('click', function (e) {
167            if ($navbar.className.indexOf('in') > 0) {
168                __HuxNav__.close()
169            } else {
170                __HuxNav__.open()
171            }
172        })
173
174        /**
175         * Since Fastclick is used to delegate 'touchstart' globally
176         * to hack 300ms delay in iOS by performing a fake 'click',
177         * Using 'e.stopPropagation' to stop 'touchstart' event from 
178         * $toggle/$collapse will break global delegation.
179         * 
180         * Instead, we use a 'e.target' filter to prevent handler
181         * added to document close HuxNav.  
182         *
183         * Also, we use 'click' instead of 'touchstart' as compromise
184         */
185        document.addEventListener('click', function (e) {
186            if (e.target == $toggle) return;
187            if (e.target.className == 'icon-bar') return;
188            __HuxNav__.close();
189        })
190    </script>
190
191    <!-- Search -->
192<div class="search-page">
193  <div class="search-icon-close-container">
194    <span class="search-icon-close">
195      <i class="fa fa-chevron-down"></i>
196    </span>
197  </div>
198  <div class="search-main container">
199    <div class="row">
200      <div class="col-lg-8 col-lg-offset-2 col-md-10 col-md-offset-1">
201        <form></form>
202        <input type="text" id="search-input" placeholder="$ grep...">
203        </form>
204        <div id="search-results" class="mini-post-list"></div>
205      </div>
206    </div>
207  </div>
208</div>
209
210    <!-- 
211Credits: this page shamelessly borrowed a lot from:
212https://github.com/kitian616/jekyll-TeXt-theme
213-->
214<!-- Page Header -->
215
216
217
218
219
220
221
222<header class="intro-header" style="background-image: url('/img/tag-bg.jpg')">
223  <div class="container">
224    <div class="row">
225      <div class="col-lg-10 col-lg-offset-0 col-md-10 col-md-offset-1">
226        
227        <div class="site-heading" id="tag-heading">
228        
229          <h1>Archive</h1>
230          <span class="subheading">「好记性不如烂笔头」</span>
231        </div>
232      </div>
233    </div>
234  </div>
235</header>
236
237
238<!-- Main Content -->
239<div class="container">
240	<div class="row">
241		<div class="col-lg-10 col-lg-offset-0 col-md-10 col-md-offset-1">
242			<!-- Tags (as filter) -->
243			<div id='tag_cloud' class="tags tags-sup js-tags">
244				<a class="tag-button--all" data-encode="">
245					Show All
246					<sup>21</sup>
247				</a>
248
249				
250        
251				
252				
253				
254				<a data-sort="0016"
255					data-encode="Game+Tricks"
256					class="tag-button"
257					title="Game Tricks" rel="5">
258					Game Tricks
259					<sup>5</sup>
260				</a>
261				
262				<a data-sort="0018"
263					data-encode="%E5%8D%9A%E5%AE%A2%E6%9B%B4%E6%96%B0"
264					class="tag-button"
265					title="博客更新" rel="3">
266					博客更新
267					<sup>3</sup>
268				</a>
269				
270				<a data-sort="0018"
271					data-encode="%E7%AC%94%E8%AE%B0"
272					class="tag-button"
273					title="笔记" rel="3">
274					笔记
275					<sup>3</sup>
276				</a>
277				
278				<a data-sort="0018"
279					data-encode="%E9%97%B2%E8%B0%88"
280					class="tag-button"
281					title="闲谈" rel="3">
282					闲谈
283					<sup>3</sup>
284				</a>
285				
286				<a data-sort="0018"
287					data-encode="Graphics+Hardware"
288					class="tag-button"
289					title="Graphics Hardware" rel="3">
290					Graphics Hardware
291					<sup>3</sup>
292				</a>
293				
294				<a data-sort="0019"
295					data-encode="%E6%80%BB%E7%BB%93"
296					class="tag-button"
297					title="总结" rel="2">
298					总结
299					<sup>2</sup>
300				</a>
301				
302				<a data-sort="0019"
303					data-encode="Graphics+Study"
304					class="tag-button"
305					title="Graphics Study" rel="2">
306					Graphics Study
307					<sup>2</sup>
308				</a>
309				
310				<a data-sort="0019"
311					data-encode="Project"
312					class="tag-button"
313					title="Project" rel="2">
314					Project
315					<sup>2</sup>
316				</a>
317			</div>
318
319            <!-- Article List -->
320			<div class="mini-post-list js-result d-none"><section>
321				<span class="fa listing-seperator">
322					<span class="tag-text">2022</span>
323				</span><div class="post-preview item" data-tags="%E6%80%BB%E7%BB%93">
324				    <a href="/2022/06/11/graphics-talks/">
325				        <h2 class="post-title">
326                            「总结」历年图形渲染相关的演讲
327				        </h2>
328				        
329				        <h3 class="post-subtitle">
330				            
331				        </h3>
332				        
333				    </a>
334					<hr>
335				</div><div class="post-preview item" data-tags="%E9%97%B2%E8%B0%88">
336				    <a href="/2022/01/05/blender-to-ue5/">
337				        <h2 class="post-title">
338                            「闲谈」UE5真好玩
339				        </h2>
340				        
341				        <h3 class="post-subtitle">
342				            
343				        </h3>
344				        
345				    </a>
346					<hr>
347				</div></section><section>
348				<span class="fa listing-seperator">
349					<span class="tag-text">2021</span>
350				</span><div class="post-preview item" data-tags="Graphics+Study">
351				    <a href="/2021/12/12/rdr2-shadows/">
352				        <h2 class="post-title">
353                            「Graphics Study」RDR2渲染分析 — 阴影篇
354				        </h2>
355				        
356				        <h3 class="post-subtitle">
357				            
358				        </h3>
359				        
360				    </a>
361					<hr>
362				</div><div class="post-preview item" data-tags="Graphics+Study">
363				    <a href="/2021/12/09/rdr2-study/">
364				        <h2 class="post-title">
365                            「Graphics Study」RDR2渲染分析 — 总篇
366				        </h2>
367				        
368				        <h3 class="post-subtitle">
369				            
370				        </h3>
371				        
372				    </a>
373					<hr>
374				</div><div class="post-preview item" data-tags="%E5%8D%9A%E5%AE%A2%E6%9B%B4%E6%96%B0">
375				    <a href="/2021/12/05/im-back/">
376				        <h2 class="post-title">
377                            「博客更新」I'm Back!
378				        </h2>
379				        
380				        <h3 class="post-subtitle">
381				            世界就是个轮回
382				        </h3>
383				        
384				    </a>
385					<hr>
386				</div></section><section>
387				<span class="fa listing-seperator">
388					<span class="tag-text">2017</span>
389				</span><div class="post-preview item" data-tags="Game+Tricks">
390				    <a href="/2017/07/14/particle-material/">
391				        <h2 class="post-title">
392                            「Game Tricks」Smoke材质的二三事
393				        </h2>
394				        
395				        <h3 class="post-subtitle">
396				            
397				        </h3>
398				        
399				    </a>
400					<hr>
401				</div><div class="post-preview item" data-tags="%E5%8D%9A%E5%AE%A2%E6%9B%B4%E6%96%B0">
402				    <a href="/2017/05/29/update-blog/">
403				        <h2 class="post-title">
404                            「博客更新」博客评论系统更新记录
405				        </h2>
406				        
407				        <h3 class="post-subtitle">
408				            
409				        </h3>
410				        
411				    </a>
412					<hr>
413				</div><div class="post-preview item" data-tags="%E6%80%BB%E7%BB%93">
414				    <a href="/2017/05/29/bake-to-texture/">
415				        <h2 class="post-title">
416                            「总结」Bake Shading to Texture踩坑记录
417				        </h2>
418				        
419				        <h3 class="post-subtitle">
420				            
421				        </h3>
422				        
423				    </a>
424					<hr>
425				</div><div class="post-preview item" data-tags="%E9%97%B2%E8%B0%88">
426				    <a href="/2017/02/22/book-second-edition/">
427				        <h2 class="post-title">
428                            「闲谈」一本技术书籍是如何出版的……
429				        </h2>
430				        
431				        <h3 class="post-subtitle">
432				            我的书
433				        </h3>
434				        
435				    </a>
436					<hr>
437				</div><div class="post-preview item" data-tags="Project">
438				    <a href="/2017/01/18/magictoon/">
439				        <h2 class="post-title">
440                            「Project」MagicToon: A 2D-to-3D Creative 
440Cartoon Modeling System with Mobile AR
441				        </h2>
442				        
443				    </a>
444					<hr>
445				</div><div class="post-preview item" data-tags="Project">
446				    <a href="/2017/01/02/cartoonmodeling/">
447				        <h2 class="post-title">
448                            「Project」An Interactive 2D-to-3D Cartoon Modeling System
449				        </h2>
450				        
451				    </a>
452					<hr>
453				</div></section><section>
454				<span class="fa listing-seperator">
455					<span class="tag-text">2016</span>
456				</span><div class="post-preview item" data-tags="Game+Tricks">
457				    <a href="/2016/11/29/texture-repetition/">
458				        <h2 class="post-title">
459                            「Game Tricks」消除纹理重复感的两种方法
460				        </h2>
461				        
462				        <h3 class="post-subtitle">
463				            「Unity Shader」
464				        </h3>
465				        
466				    </a>
467					<hr>
468				</div><div class="post-preview item" data-tags="Game+Tricks">
469				    <a href="/2016/11/28/blend-terrain-textures/">
470				        <h2 class="post-title">
471                            「Game Tricks」地形纹理合并
472				        </h2>
473				        
474				        <h3 class="post-subtitle">
475				            Unity Shader
476				        </h3>
477				        
478				    </a>
479					<hr>
480				</div><div class="post-preview item" data-tags="%E7%AC%94%E8%AE%B0">
481				    <a href="/2016/11/09/unite2016-keynote/">
482				        <h2 class="post-title">
483                            「笔记」Unite 2016 Keynote笔记
484				        </h2>
485				        
486				        <h3 class="post-subtitle">
487				            
488				        </h3>
489				        
490				    </a>
491					<hr>
492				</div><div class="post-preview item" data-tags="Game+Tricks">
493				    <a href="/2016/06/25/diablo/">
494				        <h2 class="post-title">
495                            「Game Tricks」Diablo的特效实现
496				        </h2>
497				        
498				        <h3 class="post-subtitle">
499				            
500				        </h3>
501				        
502				    </a>
503					<hr>
504				</div><div class="post-preview item" data-tags="Game+Tricks">
505				    <a href="/2016/06/24/firewatch/">
506				        <h2 class="post-title">
507                            「Game Tricks」Firewatch中的一些技术
508				        </h2>
509				        
510				        <h3 class="post-subtitle">
511				            
512				        </h3>
513				        
514				    </a>
515					<hr>
516				</div><div class="post-preview item" data-tags="Graphics+Hardware,%E7%AC%94%E8%AE%B0">
517				    <a href="/2016/05/05/graphic-hardware-1/">
518				        <h2 class="post-title">
519                            「Graphics Hardware」Perspective-Correct Interpolation
520				        </h2>
521				        
522				        <h3 class="post-subtitle">
523				            Real-Time Rendering
524				        </h3>
525				        
526				    </a>
527					<hr>
528				</div><div class="post-preview item" data-tags="Graphics+Hardware,%E7%AC%94%E8%AE%B0">
529				    <a href="/2016/04/28/graphic-hardware-0/">
530				        <h2 class="post-title">
531                            「Graphics Hardware」Buffers and Buffering
532				        </h2>
533				        
534				        <h3 class="post-subtitle">
535				            Real-Time Rendering
536				        </h3>
537				        
538				    </a>
539					<hr>
540				</div><div class="post-preview item" data-tags="Graphics+Hardware">
541				    <a href="/2016/04/28/graphic-hardware-index/">
542				        <h2 class="post-title">
543                            「Graphics Hardware」相关资料
544				        </h2>
545				        
546				        <h3 class="post-subtitle">
547				            
548				        </h3>
549				        
550				    </a>
551					<hr>
552				</div><div class="post-preview item" data-tags="%E9%97%B2%E8%B0%88">
553				    <a href="/2016/04/27/idol/">
554				        <h2 class="post-title">
555                            「闲谈」你和世界上的任何一个人之间只隔着五个人
556				        </h2>
557				        
558				        <h3 class="post-subtitle">
559				            
560				        </h3>
561				        
562				    </a>
563					<hr>
564				</div><div class="post-preview item" data-tags="%E5%8D%9A%E5%AE%A2%E6%9B%B4%E6%96%B0">
565				    <a href="/2016/03/02/hello-blog/">
566				        <h2 class="post-title">
567                            「博客更新」我的独立博客
568				        </h2>
569				        
570				        <h3 class="post-subtitle">
571				            第一篇
572				        </h3>
573				        
574				    </a>
575					<hr>
576				</div></section>
577			</div>
578		</div>
579	</div>
580</div>
581
582
583    <!-- Footer -->
584<footer>
585    <div class="container">
586        <div class="row">
587            <div class="col-lg-10 col-lg-offset-0 col-md-10 col-md-offset-1">
588                <!-- SNS Link -->
589                
590
591
592<ul class="list-inline text-center">
593
594
595  
596  <li>
597    <a href="/feed.xml">
598      <span class="fa-stack fa-lg">
599        <i class="fa fa-circle fa-stack-2x"></i>
600        <i class="fa fa-rss fa-stack-1x fa-inverse"></i>
601      </span>
602    </a>
603  </li>
604  
605  
606  <li>
607    <a target="_blank" href="https://twitter.com/candycat1992">
608      <span class="fa-stack fa-lg">
609        <i class="fa fa-circle fa-stack-2x"></i>
610        <i class="fa fa-twitter fa-stack-1x fa-inverse"></i>
611      </span>
612    </a>
613  </li>
614  
615  
616  <li>
617    <a target="_blank" href="https://www.zhihu.com/people/lele-feng-15">
618      <span class="fa-stack fa-lg">
619        <i class="fa fa-circle fa-stack-2x"></i>
620        <i class="fa  fa-stack-1x fa-inverse">知</i>
621      </span>
622    </a>
623  </li>
624  
625  
626  
627  
628  <li>
629    <a target="_blank" href="https://github.com/candycat1992">
630      <span class="fa-stack fa-lg">
631        <i class="fa fa-circle fa-stack-2x"></i>
632        <i class="fa fa-github fa-stack-1x fa-inverse"></i>
633      </span>
634    </a>
635  </li>
636  
637  
638  
639  <li>
640      <a target="_blank" href="https://www.douban.com/people/69635011">
641          <span class="fa-stack fa-lg">
642              <i class="fa fa-circle fa-stack-2x"></i>
643              <i class="fa  fa-stack-1x fa-inverse">豆</i>
644          </span>
645      </a>
646  </li>
647  
648</ul>
649
650                <p class="copyright text-muted">
651                    Copyright &copy; Candycat Blog 2022
652                    <br>
653                    Powered by <a href="http://huangxuan.me">Hux Blog</a> |
654                    <iframe style="margin-left: 2px; margin-bottom:-5px;" frameborder="0" scrolling="0" width="100px"
655                        height="20px"
656                        src="https://ghbtns.com/github-btn.html?user=huxpro&repo=huxpro.github.io&type=star&count=true">
657                    </iframe>
658                </p>
659            </div>
660        </div>
661    </div>
662</footer>
663
664<!-- jQuery -->
665<script src="/js/jquery.min.js "></script>
665
666
667<!-- Bootstrap Core JavaScript -->
668<!-- Currently, only navbar scroll-down effect at desktop still depends on this -->
669<script src="/js/bootstrap.min.js "></script>
669
670
671<!-- Custom Theme JavaScript -->
672<script src="/js/hux-blog.min.js "></script>
672
673
674<!-- Simple Jekyll Search -->
675<script src="/js/simple-jekyll-search.min.js"></script>
675
676
677<!-- Service Worker -->
678
679<script src="/js/snackbar.js "></script>
vendor: 1 bytes, line 679
679
680<script src="/js/sw-registration.js "></script>
680
681
682
683<!-- async load function -->
684<script>
685    function async(u, c) {
686        var d = document, t = 'script',
687            o = d.createElement(t),
688            s = d.getElementsByTagName(t)[0];
689        o.src = u;
690        if (c) { o.addEventListener('load', function (e) { c(null, e); }, false); }
691        s.parentNode.insertBefore(o, s);
692    }
693</script>
693
694
695<!--
696     Because of the native support for backtick-style fenced code blocks
697     right within the Markdown is landed in Github Pages,
698     From V1.6, There is no need for Highlight.js,
699     so Huxblog drops it officially.
700
701     - https://github.com/blog/2100-github-pages-now-faster-and-simpler-with-jekyll-3-0
702     - https://help.github.com/articles/creating-and-highlighting-code-blocks/
703     - https://github.com/jneen/rouge/wiki/list-of-supported-languages-and-lexers
704-->
705<!--
706    
706<script>
707        async("http://cdn.bootcss.com/highlight.js/8.6/highlight.min.js", function(){
708            hljs.initHighlightingOnLoad();
709        })
710    </script>
710
711    <link href="http://cdn.bootcss.com/highlight.js/8.6/styles/github.min.css" rel="stylesheet">
712-->
713
714
715
716
717
718
719<!-- jquery.tagcloud.js -->
720<script>
721    async('/js/jquery.tagcloud.js', function () {
722        $.fn.tagcloud.defaults = {
723            //size: {start: 1, end: 1, unit: 'em'},
724            color: { start: '#bbbbee', end: '#2f93b4' },
725        };
726        $('#tag_cloud a').tagcloud();
727    })
728</script>
vendor: 1 bytes, line 728
728
729<script src='/js/archive.js '></script>
729
730
731
732<!--fastClick.js -->
733<script>
734    async("//cdnjs.cloudflare.com/ajax/libs/fastclick/1.0.6/fastclick.min.js", function () {
735        var $nav = document.querySelector("nav");
736        if ($nav) FastClick.attach($nav);
737    })
738</script>
738
739
740
741<!-- Google Analytics -->
742
743
744
745<!-- Baidu Tongji -->
746
747<script>
748    // dynamic User by Hux
749    var _baId = '207a182a0a79e8a76bfd02381045166f';
750
751    // Originial
752    var _hmt = _hmt || [];
753    (function () {
754        var hm = document.createElement("script");
755        hm.src = "//hm.baidu.com/hm.js?" + _baId;
756        var s = document.getElementsByTagName("script")[0];
757        s.parentNode.insertBefore(hm, s);
758    })();
759</script>
759
760
761
762
763<!-- Side Catalog -->
764
765<script type="text/javascript">
766    function generateCatalog(selector) {
767
768        // interop with multilangual 
769        if ('' == 'true') {
770            _containerSelector = 'div.post-container.active'
771        } else {
772            _containerSelector = 'div.post-container'
773        }
774
775        // init
776        var P = $(_containerSelector), a, n, t, l, i, c;
777        a = P.find('h1,h2,h3,h4,h5,h6');
778
779        // clean
780        $(selector).html('')
781
782        // appending
783        a.each(function () {
784            n = $(this).prop('tagName').toLowerCase();
785            i = "#" + $(this).prop('id');
786            t = $(this).text();
787            c = $('<a href="' + i + '" rel="nofollow">' + t + '</a>');
788            l = $('<li class="' + n + '_nav"></li>').append(c);
789            $(selector).append(l);
790        });
791        return true;
792    }
793
794    generateCatalog(".catalog-body");
795
796    // toggle side catalog
797    $(".catalog-toggle").click((function (e) {
798        e.preventDefault();
799        $('.side-catalog').toggleClass("fold")
800    }))
801
802    /*
803     * Doc: https://github.com/davist11/jQuery-One-Page-Nav
804     * Fork by Hux to support padding
805     */
806    async("/js/jquery.nav.js", function () {
807        $('.catalog-body').onePageNav({
808            currentClass: "active",
809            changeHash: !1,
810            easing: "swing",
811            filter: "",
812            scrollSpeed: 700,
813            scrollOffset: 0,
814            scrollThreshold: .2,
815            begin: null,
816            end: null,
817            scrollChange: null,
818            padding: 80
819        });
820    });
821</script>
821
822
823
824
825<!-- Multi-Lingual -->
826
827
828<!-- Simple Jekyll Search -->
829<script>
830    // https://stackoverflow.com/questions/1912501/unescape-html-entities-in-javascript
831    function htmlDecode(input) {
832        var e = document.createElement('textarea');
833        e.innerHTML = input;
834        // handle case of empty input
835        return e.childNodes.length === 0 ? "" : e.childNodes[0].nodeValue;
836    }
837
838    SimpleJekyllSearch({
839        searchInput: document.getElementById('search-input'),
840        resultsContainer: document.getElementById('search-results'),
841        json: '/search.json',
842        searchResultTemplate: '<div class="post-preview item"><a href="{url}"><h2 class="post-title">{title}</h2><h3 class="post-subtitle">{subtitle}</h3><hr></a></div>',
843        noResultsText: 'No results',
844        limit: 50,
845        fuzzy: false,
846        // a hack to get escaped subtitle unescaped. for some reason, 
847        // post.subtitle w/o escape filter nuke entire search.
848        templateMiddleware: function (prop, value, template) {
849            if (prop === 'subtitle' || prop === 'title') {
850                if (value.indexOf("code")) {
851                    return htmlDecode(value);
852                } else {
853                    return value;
854                }
855            }
856        }
857    });
858
859    $(document).ready(function () {
860        var $searchPage = $('.search-page');
861        var $searchOpen = $('.search-icon');
862        var $searchClose = $('.search-icon-close');
863        var $searchInput = $('#search-input');
864        var $body = $('body');
865
866        $searchOpen.on('click', function (e) {
867            e.preventDefault();
868            $searchPage.toggleClass('search-active');
869            var prevClasses = $body.attr('class') || '';
870            setTimeout(function () {
871                $body.addClass('no-scroll');
872            }, 400)
873
874            if ($searchPage.hasClass('search-active')) {
875                $searchClose.on('click', function (e) {
876                    e.preventDefault();
877                    $searchPage.removeClass('search-active');
878                    $body.attr('class', prevClasses);  // from closure 
879                });
880                $searchInput.focus();
881            }
882        });
883    });
884</script>
884
885
886
887<!-- Image to hack wechat -->
888<img src="/img/icon_wechat.png" width="0" height="0" />
889<!-- Migrate from head to bottom, no longer block render and still work -->
890
891</body>
892
893</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.