PageSourceSearch

https://www.wblearn.top/

html wblearn.top collected 2026-10-03 23:19:07 UTC 30,957 bytes, 932 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">
9    <meta name="description" content="@wblearn,不要让任何事情成为你不去学习的理由!">
10    <meta name="keywords"  content="wblearn, @wblearn, wblearn的博客,wblearn Blog, 博客, 个人网站, 互联网">
11    <meta name="theme-color" content="#000000">
12	<meta name="referrer" content="no-referrer"/>
13    
14    <title>Wblearn的博客 | Wblearn Blog</title>
15
16    <!-- Web App Manifest -->
17    <link rel="manifest" href="/pwa/manifest.json">
18
19    <!-- Favicon -->
20    <link rel="shortcut icon" href="/img/avatar-wb.jpg">
21    
22    <!-- Canonical URL -->
23    <link rel="canonical" href="http://wblearn.github.io//">
24
25    <!-- Bootstrap Core CSS -->
26    <link rel="stylesheet" href="/css/bootstrap.min.css">
27
28    <!-- Custom CSS -->
29    <link rel="stylesheet" href="/css/hux-blog.min.css">
30
31    <!-- Pygments Github CSS -->
32    <link rel="stylesheet" href="/css/syntax.css">
33	
34	<!-- videos CSS -->
35    <link rel="stylesheet" href="/css/videos.css">
36
37    <!-- Custom Fonts -->
38    <!-- <link href="http://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css" rel="stylesheet" type="text/css"> -->
39    <!-- Hux change font-awesome CDN to qiniu -->
40    <link href="//cdnjs.cloudflare.com/ajax/libs/font-awesome/4.6.3/css/font-awesome.min.css" rel="stylesheet" type="text/css">
41
42
43    <!-- Hux Delete, sad but pending in China
44    <link href='http://fonts.googleapis.com/css?family=Lora:400,700,400italic,700italic' rel='stylesheet' type='text/css'>
45    <link href='http://fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,700italic,800italic,400,300,600,700,800' rel='stylesheet' type='text/
46    css'>
47    -->
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<nav class="navbar navbar-default navbar-custom navbar-fixed-top">
67    <div class="container-fluid">
68        <!-- Brand and toggle get grouped for better mobile display -->
69        <div class="navbar-header page-scroll">
70            <button type="button" class="navbar-toggle">
71                <span class="sr-only">Toggle navigation</span>
72                <span class="icon-bar"></span>
73                <span class="icon-bar"></span>
74                <span class="icon-bar"></span>
75            </button>
76            <a class="navbar-brand" href="/">Wblearn Blog</a>
77        </div>
78
79        <!-- Collect the nav links, forms, and other content for toggling -->
80        <div id="huxblog_navbar">
81            <div class="navbar-collapse">
82                <ul class="nav navbar-nav navbar-right">
83                    <li>
84                        <a href="/">Home</a>
85                    </li>
86                    
87                    <li>
88                        <a href="/about/">About</a>
89                    </li>
90                    
91                    <li>
92                        <a href="/videos/">Videos</a>
93                    </li>
94                    
95                    <li>
96                        <a href="/tags/">Tags</a>
97                    </li>
98                    
99                </ul>
100            </div>
101        </div>
102        <!-- /.navbar-collapse -->
103    </div>
104    <!-- /.container -->
105</nav>
106<script>
107    // Drop Bootstarp low-performance Navbar
108    // Use customize navbar with high-quality material design animation
109    // in high-perf jank-free CSS3 implementation
110    var $body   = document.body;
111    var $toggle = document.querySelector('.navbar-toggle');
112    var $navbar = document.querySelector('#huxblog_navbar');
113    var $collapse = document.querySelector('.navbar-collapse');
114
115    var __HuxNav__ = {
116        close: function(){
117            $navbar.className = " ";
118            // wait until animation end.
119            setTimeout(function(){
120                // prevent frequently toggle
121                if($navbar.className.indexOf('in') < 0) {
122                    $collapse.style.height = "0px"
123                }
124            },400)
125        },
126        open: function(){
127            $collapse.style.height = "auto"
128            $navbar.className += " in";
129        }
130    }
131
132    // Bind Event
133    $toggle.addEventListener('click', function(e){
134        if ($navbar.className.indexOf('in') > 0) {
135            __HuxNav__.close()
136        }else{
137            __HuxNav__.open()
138        }
139    })
140
141    /**
142     * Since Fastclick is used to delegate 'touchstart' globally
143     * to hack 300ms delay in iOS by performing a fake 'click',
144     * Using 'e.stopPropagation' to stop 'touchstart' event from 
145     * $toggle/$collapse will break global delegation.
146     * 
147     * Instead, we use a 'e.target' filter to prevent handler
148     * added to document close HuxNav.  
149     *
150     * Also, we use 'click' instead of 'touchstart' as compromise
151     */
152    document.addEventListener('click', function(e){
153        if(e.target == $toggle) return;
154        if(e.target.className == 'icon-bar') return;
155        __HuxNav__.close();
156    })
157</script>
157
158
159
160    <!-- Page Header -->
161<header class="intro-header" style="background-image: url('/img/home-bg-art.jpg')">
162    <div class="container">
163        <div class="row">
164            <div class="col-lg-8 col-lg-offset-2 col-md-10 col-md-offset-1 ">
165                <div class="site-heading">
166                    <h1>Wblearn Blog</h1>
167                    <!--<hr class="small">-->
168                    <span class="subheading">「时间看得见」</span>
169                </div>
170            </div>
171        </div>
172    </div>
173</header>
174
175<!-- Main Content -->
176<div class="container">
177	<div class="row">
178        
179
180<!-- USE SIDEBAR -->
181    <!-- PostList Container -->
182    		<div class="
183                col-lg-8 col-lg-offset-1
184                col-md-8 col-md-offset-1
185                col-sm-12
186                col-xs-12
187                postlist-container
188            ">
189    			
190<div class="post-preview">
191    <a href="/2020/09/20/aws-lambda-dynamodb/">
192        <h2 class="post-title">
193            AWS lambda and dynamodb with Java
194        </h2>
195        
196        <div class="post-content-preview">
197            
198          写在前面
199使用aws lambda已经一年多了,下面使用java构建一个简单的lambda服务,大家可以自己扩展想要的功能,废话不多说,开始吧。
200AWS 上 Java Lambda 应用记要
201public class LambdaFunctionHandler implements RequestHandler&lt;Object,Object &gt; {
202
203    ...
204        </div>
205    </a>
206    <p class="post-meta">
207        Posted by wblearn on September 20, 2020
208    </p>
209</div>
210<hr>
211
212<div class="post-preview">
213    <a href="/2018/08/09/study-video/">
214        <h2 class="post-title">
215            学习视频博客源码分享
216        </h2>
217        
218        <div class="post-content-preview">
219            写在前面
220
221好早之前我就在我的个人主页上加了videos页,想着用来记录自己拍的一些视频碎片。后来想做一个简洁的学习视频网站,于是在某个jekyll theme主题上自己定制了一个视频源于bilibili的study video网站。
222
223详情页面
224
2251.网站首页
226
227
2282.视频首页
229
230
2313.单个视频页
232
233
2344.手机端
235
236
237写在最后
238
239视频网站源码戳这里,欢迎fork,star并留下出处。
240
241
242        </div>
243    </a>
244    <p class="post-meta">
245        Posted by wblearn on August 9, 2018
246    </p>
247</div>
248<hr>
249
250<div class="post-preview">
251    <a href="/2017/07/11/life/">
252        <h2 class="post-title">
253            生活的智慧
254        </h2>
255        
256        <div class="post-content-preview">
257            
258  本篇来源于垠神的生活的智慧,觉得对生活有启迪转载于此
259
260
261我曾经写过一篇文章,叫『编程的智慧』。再加上我总写一些技术性的文章,不认识我的人可能还以为我是个技术狂人,只知道谈论技术,不会生活。其实跟我接触紧密的人都知道,我是一个很会生活的人。
262
263确实,我花了很多心思来研究各种物品,它们的用法和组织方式。我用一种理性而智慧的方式对待生活中的方方面面,我的“生活智慧”并不亚于我的“编程智慧”...
264        </div>
265    </a>
266    <p class="post-meta">
267        Posted by wblearn on July 11, 2017
268    </p>
269</div>
270<hr>
271
272<div class="post-preview">
273    <a href="/2017/04/06/sso/">
274        <h2 class="post-title">
275            单点登录原理与简单实现
276        </h2>
277        
278        <div class="post-content-preview">
279            一、单系统登录机制
2801、http无状态协议
281web应用采用browser/server架构,http作为通信协议。http是无状态协议,浏览器的每一次请求,服务器会独立处理,不与之前或之后的请求产生关联,这个过程用下图说明,三次请求/响应对之间没有任何联系
282
283但这也同时意味着,任何用户都能通过浏览器访问服务器资源,如果想保护服务器的某些资源,必须限制浏览器请求;要限制浏览器请求,必须鉴别浏览...
284        </div>
285    </a>
286    <p class="post-meta">
287        Posted by wblearn on April 6, 2017
288    </p>
289</div>
290<hr>
291
292<div class="post-preview">
293    <a href="/2017/02/26/web-develop(2)/">
294        <h2 class="post-title">
295            我的Web开发实战总结(二)
296        </h2>
297        
298        <div class="post-content-preview">
299            
300          写在前面
301这篇是继我的Web开发实战总结(一)的第二篇文章,在此篇里,我主要总结一下如何把Web页面上的报表或列表数据转换成pdf文件下载到本地。其中涉及到的知识我也会提出来供大家交流学习。ok,开始吧~
302先来看看效果
303
304Web页面上的列表数据
305
306上图就是Web页面上的列表数据,将其右侧生成pdf之后的效果如下:
307
308生成的pdf文件
309
310实现思路
311这里我提出两种实现思路:...
312        </div>
313    </a>
314    <p class="post-meta">
315        Posted by wblearn on February 26, 2017
316    </p>
317</div>
318<hr>
319
320<div class="post-preview">
321    <a href="/2017/01/01/git-push/">
322        <h2 class="post-title">
323            push本地代码到github出错
324        </h2>
325        
326        <div class="post-content-preview">
327            
328
329有时候往GitHub上提交东西的时候会因为remote repository上有东西更新了但是local repository 没有更新而造成提交失败
330
331有如下几种解决方法:
332
3331.使用强制push的方法:
334
335
336$ git push -u origin master -f 
337
338
339这样会使远程修改丢失,一般是不可取的,尤其是多人协作开发的时候。
340
3412.push前先将远程repository...
342        </div>
343    </a>
344    <p class="post-meta">
345        Posted by wblearn on January 1, 2017
346    </p>
347</div>
348<hr>
349
350<div class="post-preview">
351    <a href="/2016/12/31/my2016/">
352        <h2 class="post-title">
353            我的2016
354        </h2>
355        
356        <div class="post-content-preview">
357            
358
359写在前面
360
361今天是2016年的最后一天了,之前有在入职两个月的一些感受中说到: 以后决定每年写一篇年终总结,那么,今天就是兑现承诺的时候了,本篇就是我的2016年终总结,也是第一篇年终总结(惭愧啊~之前都没有写总结的习惯)。。。
362
363但是回顾这一年,没有令到我特别自豪的事,反而对自己不满意的地方还是挺多。但逃避总不能解决问题,那么就静下心来好好做个总结,给2017年敲个警钟吧~
364
365片段1
366...
367        </div>
368    </a>
369    <p class="post-meta">
370        Posted by wblearn on December 31, 2016
371    </p>
372</div>
373<hr>
374
375<div class="post-preview">
376    <a href="/2016/12/23/one/">
377        <h2 class="post-title">
378            我的独立博客(第一篇)
379        </h2>
380        
381        <div class="post-content-preview">
382            
383写在前面
384	现在是凌晨1点多了,我的github博客终于花了一个晚上搭建好了。在此之前,一直使用CSDN和简书,但听很多人说作为一名程序员,拥有自己的个人博客是很好的事情(有个属于自己的小窝放简历、项目资料…)。也常常听人说,第三方的博客局限性太多,
385	而自己如果又不想管理自己的私有网站,github是个很不错的选择。最近又来了兴趣,所幸花一个晚上搞起来。我的github独立博客开张啦^-...
386        </div>
387    </a>
388    <p class="post-meta">
389        Posted by wblearn on December 23, 2016
390    </p>
391</div>
392<hr>
393
394<div class="post-preview">
395    <a href="/2016/12/15/mygit/">
396        <h2 class="post-title">
397            我的博客搭建之git的使用
398        </h2>
399        
400        <div class="post-content-preview">
401            
402
403
404          写在前面
405前天我的github博客搭建好啦,并在本地写了一篇文章我的独立博客(第一篇)利用git将其push到github上,那么,今天就简单记录下git的使用。整个过程是在windows下操作的。
406git将本地项目push到github
4071.Git下载地址git官网是需要翻墙才能下载的,这里给出Git-2.9.2-64-bit下载地址(我的是64位系统): Git...
408        </div>
409    </a>
410    <p class="post-meta">
411        Posted by wblearn on December 15, 2016
412    </p>
413</div>
414<hr>
415
416<div class="post-preview">
417    <a href="/2016/11/27/UML/">
418        <h2 class="post-title">
419            UML学习归纳整理
420        </h2>
421        
422        <div class="post-content-preview">
423            
424          写在前面
425之前在学校比较系统的学习过统一建模语言UML,但长时间没使用遗忘了许多,最近因工作需
425要,所以对UML重新学习和梳理一下。UML可帮助我们做软件需求分析和软件设计的工作,会让你的需求分析或者软件设计工作更上一层楼。
426UML的分类
427主要分为两类:结构型的UML和行为型的UML
428
429仅作参考,不同应用环境可能略有不同
430
431其中基本不使用和很少会使用的我们不必深究,主要看...
432        </div>
433    </a>
434    <p class="post-meta">
435        Posted by wblearn on November 27, 2016
436    </p>
437</div>
438<hr>
439
440
441<!-- Pager -->
442
443<ul class="pager">
444    
445    
446    <li class="next">
447        <a href="/page2">Older Posts &rarr;</a>
448    </li>
449    
450</ul>
451
452
453    		</div>
454    <!-- Sidebar Container -->
455            <div class="
456                col-lg-3 col-lg-offset-0
457                col-md-3 col-md-offset-0
458                col-sm-12
459                col-xs-12
460                sidebar-container
461            ">
462                <!-- Featured Tags -->
463                
464                <section>
465                    <hr class="hidden-sm hidden-xs">
466                    <h5><a href="/tags/">FEATURED TAGS</a></h5>
467                    <div class="tags">
468                        
469                            
470                                <a href="/tags/#redis" title="redis" rel="4">
471                                    redis
472                                </a>
473                            
474                        
475                            
476                                <a href="/tags/#集群" title="集群" rel="3">
477                                    集群
478                                </a>
479                            
480                        
481                            
482                        
483                            
484                                <a href="/tags/#程序员" title="程序员" rel="3">
485                                    程序员
486                                </a>
487                            
488                        
489                            
490                        
491                            
492                                <a href="/tags/#闲谈" title="闲谈" rel="5">
493                                    闲谈
494                                </a>
495                            
496                        
497                            
498                        
499                            
500                        
501                            
502                        
503                            
504                                <a href="/tags/#Web" title="Web" rel="3">
505                                    Web
506                                </a>
507                            
508                        
509                            
510                        
511                            
512                                <a href="/tags/#git" title="git" rel="2">
513                                    git
514                                </a>
515                            
516                        
517                            
518                                <a href="/tags/#博客" title="博客" rel="2">
519                                    博客
520                                </a>
521                            
522                        
523                            
524                        
525                            
526                        
527                            
528                        
529                            
530                        
531                            
532                        
533                            
534                        
535                            
536                        
537                    </div>
538                </section>
539                
540
541                <!-- Short About -->
542                <section class="visible-md visible-lg">
543                    <hr><h5><a href="/about/">ABOUT ME</a></h5>
544                    <div class="short-about">
545                        
546                            <img src="/img/avatar-wb.jpg" />
547                        
548                        
549                            <p>不要让任何事情成为你不去学习的理由 @wblearn</p>
550                        
551                        <!-- SNS Link -->
552                        <ul class="list-inline">
553                            
554                            
555                            
556                            <li>
557                                <a target="_blank" href="https://blog.csdn.net/wudalang_gd">
558                                    <span class="fa-stack fa-lg">
559                                        <i class="fa fa-circle fa-stack-2x"></i>
560                                        <i class="fa  fa-stack-1x fa-inverse">C</i>
561                                    </span>
562                                </a>
563                            </li>
564                            
565                            
566                            <li>
567                                <a target="_blank" href="http://weibo.com/wudalanggd">
568                                    <span class="fa-stack fa-lg">
569                                        <i class="fa fa-circle fa-stack-2x"></i>
570                                        <i class="fa fa-weibo fa-stack-1x fa-inverse"></i>
571                                    </span>
572                                </a>
573                            </li>
574                            
575                            
576							
577							<li>
578								<a target="_blank" href="http://www.jianshu.com/u/48599dc7ef1b">
579									<span class="fa-stack fa-lg">
580										<i class="fa fa-circle fa-stack-2x"></i>
581										<i class="fa fa-stack-1x fa-inverse">简</i>
582									</span>
583								</a>
584							</li>
585							
586							<!--
587                            
588                            <li>
589                                <a target="_blank" href="https://github.com/wblearn">
590                                    <span class="fa-stack fa-lg">
591                                        <i class="fa fa-circle fa-stack-2x"></i>
592                                        <i class="fa fa-github fa-stack-1x fa-inverse"></i>
593                                    </span>
594                                </a>
595                            </li>
596                            
597							-->
598                            
599							
600							<li>
601								<a target="_blank" href="http://www.wblearn.top/study-video">
602									<span class="fa-stack fa-lg">
603										<i class="fa fa-circle fa-stack-2x"></i>
604										<i class="fa fa-stack-1x fa-inverse">S</i>
605									</span>
606								</a>
607							</li>
608							
609                        </ul>
610                    </div>
611                </section>
612                <!-- Friends Blog -->
613                
614                <hr>
615                <h5>FRIENDS</h5>
616                <ul class="list-inline">
617                    
618                        <li><a href="http://weibo.com/wudalanggd">wblearn的微博</a></li>
619                    
620                        <li><a href="https://wblearn.github.io/study-video">study video</a></li>
621                    
622                        <li><a href="http://www.yinwang.org/">垠神的博客</a></li>
623                    
624                        <li><a href="https://www.ruanyifeng.com/blog/">阮一峰的网络日志</a></li>
625                    
626                        <li><a href="http://blog.devtang.com/">唐巧的博客</a></li>
627                    
628                </ul>
629                
630    		</div>
631        
632	</div>
633</div>
634
635
636    <!-- Footer -->
637<footer>
638    <div class="container">
639        <div class="row">
640            <div class="col-lg-8 col-lg-offset-2 col-md-10 col-md-offset-1">
641                <ul class="list-inline text-center">
642                    
643                    
644
645                    <!-- add Weibo, Zhihu by wblearn, add target = "_blank" to <a> by wblearn -->
646                    
647                    
648                    <li>
649                        <a target="_blank" href="http://weibo.com/wudalanggd">
650                            <span class="fa-stack fa-lg">
651                                <i class="fa fa-circle fa-stack-2x"></i>
652                                <i class="fa fa-weibo fa-stack-1x fa-inverse"></i>
653                            </span>
654                        </a>
655                    </li>
656                    
657
658
659                    
660					
661					
662                    <li>
663                        <a target="_blank" href="http://www.jianshu.com/u/48599dc7ef1b">
664                            <span class="fa-stack fa-lg">
665                                <i class="fa fa-circle fa-stack-2x"></i>
666                                <i class="fa fa-stack-1x fa-inverse">简</i>
667                            </span>
668                        </a>
669                    </li>
670                    
671					
672                    
673                    <li>
674                        <a target="_blank" href="https://github.com/wblearn">
675                            <span class="fa-stack fa-lg">
676                                <i class="fa fa-circle fa-stack-2x"></i>
677                                <i class="fa fa-github fa-stack-1x fa-inverse"></i>
678                            </span>
679                        </a>
680                    </li>
681                    
682                    
683                </ul>
684                <p class="copyright text-muted">
685                    Copyright &copy; Wblearn Blog 2024
686                    <br>
687                          powered by <a href="http://wblearn.github.io/">wblearn</a> 
688                    <!--<iframe
689                        style="margin-left: 2px; margin-bottom:-5px;"
690                        frameborder="0" scrolling="0" width="100px" height="20px"
691                        src="https://ghbtns.com/github-btn.html?user=wblearn&repo=wblearn.github.io&type=star&count=true" >
692                    </iframe>-->
693                </p>
694            </div>
695        </div>
696    </div>
697</footer>
698
699<!-- jQuery -->
700<script src="/js/jquery.min.js "></script>
700
701
702<!-- Bootstrap Core JavaScript -->
703<script src="/js/bootstrap.min.js "></script>
703
704
705<!-- Custom Theme JavaScript -->
706<script src="/js/wblearn-blog.min.js "></script>
706
707
708<!-- Service Worker -->
709
710<script type="text/javascript">
711    if(navigator.serviceWorker){
712        // For security reasons, a service worker can only control the pages that are in the same directory level or below it. That's why we put sw.js at ROOT level.
713        navigator.serviceWorker
714            .register('/sw.js')
715            .then((registration) => {console.log('Service Worker Registered. ', registration)})
716            .catch((error) => {console.log('ServiceWorker registration failed: ', error)})
717    }
718</script>
718
719
720
721
722<!-- async load function -->
723<script>
724    function async(u, c) {
725      var d = document, t = 'script',
726          o = d.createElement(t),
727          s = d.getElementsByTagName(t)[0];
728      o.src = u;
729      if (c) { o.addEventListener('load', function (e) { c(null, e); }, false); }
730      s.parentNode.insertBefore(o, s);
731    }
732</script>
732
733
734<!-- 
735     Because of the native support for backtick-style fenced code blocks 
736     right within the Markdown is landed in Github Pages, 
737     From V1.6, There is no need for Highlight.js, 
738     so wblearnblog drops it officially.
739
740     - https://github.com/blog/2100-github-pages-now-faster-and-simpler-with-jekyll-3-0  
741     - https://help.github.com/articles/creating-and-highlighting-code-blocks/ 
742     - https://github.com/jneen/rouge/wiki/list-of-supported-languages-and-lexers   
743-->
744<!--
745    
745<script>
746        async("http://cdn.bootcss.com/highlight.js/8.6/highlight.min.js", function(){
747            hljs.initHighlightingOnLoad();
748        })
749    </script>
749
750    <link href="http://cdn.bootcss.com/highlight.js/8.6/styles/github.min.css" rel="stylesheet">
751-->
752
753
754<!-- jquery.tagcloud.js -->
755<script>
756    // only load tagcloud.js in tag.html
757    if($('#tag_cloud').length !== 0){
758        async('/js/jquery.tagcloud.js',function(){
759            $.fn.tagcloud.defaults = {
760                //size: {start: 1, end: 1, unit: 'em'},
761                color: {start: '#bbbbee', end: '#0085a1'},
762            };
763            $('#tag_cloud a').tagcloud();
764        })
765    }
766</script>
766
767
768<!--fastClick.js -->
769<script>
770    async("//cdnjs.cloudflare.com/ajax/libs/fastclick/1.0.6/fastclick.min.js", function(){
771        var $nav = document.querySelector("nav");
772        if($nav) FastClick.attach($nav);
773    })
774</script>
774
775
776
777<!-- Google Analytics -->
778
779<script>
780    // dynamic User by wblearn
781    var _gaId = 'UA-49627206-1';
782    var _gaDomain = 'wblearn.github.io';
783
784    // Originial
785    (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
786    (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
787    m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
788    })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
789
790    ga('create', _gaId, _gaDomain);
791    ga('send', 'pageview');
792</script>
792
793
794
795
796<!-- Baidu Tongji -->
797
798
799
800
801<!-- Side Catalog -->
802
803<script type="text/javascript">
804    function generateCatalog(selector) {
805
806        // interop with multilangual 
807        if ('' == 'true') {
808            _containerSelector = 'div.post-container.active'
809        } else {
810            _containerSelector = 'div.post-container'
811        }
812
813        // init
814        var P = $(_containerSelector), a, n, t, l, i, c;
815        a = P.find('h1,h2,h3,h4,h5,h6');
816
817        // clean
818        $(selector).html('')
819
820        // appending
821        a.each(function () {
822            n = $(this).prop('tagName').toLowerCase();
823            i = "#" + $(this).prop('id');
824            t = $(this).text();
825            c = $('<a href="' + i + '" rel="nofollow">' + t + '</a>');
826            l = $('<li class="' + n + '_nav"></li>').append(c);
827            $(selector).append(l);
828        });
829        return true;
830    }
831
832    generateCatalog(".catalog-body");
833
834    // toggle side catalog
835    $(".catalog-toggle").click((function (e) {
836        e.preventDefault();
837        $('.side-catalog').toggleClass("fold")
838    }))
839
840    /*
841     * Doc: https://github.com/davist11/jQuery-One-Page-Nav
842     * Fork by Hux to support padding
843     */
844    async("/js/jquery.nav.js", function () {
845        $('.catalog-body').onePageNav({
846            currentClass: "active",
847            changeHash: !1,
848            easing: "swing",
849            filter: "",
850            scrollSpeed: 700,
851            scrollOffset: 0,
852            scrollThreshold: .2,
853            begin: null,
854            end: null,
855            scrollChange: null,
856            padding: 80
857        });
858    });
859</script>
859
860
861
862<!-- Multi-Lingual -->
863
864
865<!-- Simple Jekyll Search -->
866<script>
867    // https://stackoverflow.com/questions/1912501/unescape-html-entities-in-javascript
868    function htmlDecode(input) {
869        var e = document.createElement('textarea');
870        e.innerHTML = input;
871        // handle case of empty input
872        return e.childNodes.length === 0 ? "" : e.childNodes[0].nodeValue;
873    }
874
875    SimpleJekyllSearch({
876        searchInput: document.getElementById('search-input'),
877        resultsContainer: document.getElementById('search-results'),
878        json: '/search.json',
879        searchResultTemplate: '<div class="post-preview item"><a href="{url}"><h2 class="post-title">{title}</h2><h3 class="post-subtitle">{subtitle}</h3><hr></a></div>',
880        noResultsText: 'No results',
881        limit: 50,
882        fuzzy: false,
883        // a hack to get escaped subtitle unescaped. for some reason, 
884        // post.subtitle w/o escape filter nuke entire search.
885        templateMiddleware: function (prop, value, template) {
886            if (prop === 'subtitle' || prop === 'title') {
887                if (value.indexOf("code")) {
888                    return htmlDecode(value);
889                } else {
890                    return value;
891                }
892            }
893        }
894    });
895
896    $(document).ready(function () {
897        var $searchPage = $('.search-page');
898        var $searchOpen = $('.search-icon');
899        var $searchClose = $('.search-icon-close');
900        var $searchInput = $('#search-input');
901        var $body = $('body');
902
903        $searchOpen.on('click', function (e) {
904            e.preventDefault();
905            $searchPage.toggleClass('search-active');
906            var prevClasses = $body.attr('class') || '';
907            setTimeout(function () {
908                $body.addClass('no-scroll');
909            }, 400)
910
911            if ($searchPage.hasClass('search-active')) {
912                $searchClose.on('click', function (e) {
913                    e.preventDefault();
914                    $searchPage.removeClass('search-active');
915                    $body.attr('class', prevClasses);  // from closure 
916                });
917                $searchInput.focus();
918            }
919        });
920    });
921</script>
921
922
923
924
925
926<!-- Image to hack wechat -->
927<img src="/img/icon_wechat.png" width="0" height="0" />
928<!-- Migrate from head to bottom, no longer block render and still work -->
929
930</body>
931
932</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.