PageSourceSearch

https://shisaq.github.io/2026/07/12/LogicPro%E6%99%BA%E8%83%BD%E9%…%9A%84%E5%BD%95%E5%88%B6%E7%B4%A0%E6%9D%90/

html shisaq.github.io collected 2026-10-03 09:56:38 UTC 29,327 bytes, 889 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="LogicPro智能速度自动匹配不标准的录制素材 - 优客李李的博客 | Uulili's Blog">
15    
16    <meta property="og:type" content="article">
17    <meta property="og:description" content="在 Logic Pro 中,要让软件的网格和节拍完全跟随你录制的那首非标准节奏(自由节奏/没有打节拍器)的歌,最核心的思路是让软件去适应你的音频(让网格变轨跟随音频),而不是把你的音频强行拉直。
18
19">
20    
21    <meta property="article:published_time" content="2026-07-12T00:00:00Z">
22    
23    
24    <meta property="article:author" content="shisaq">
25    
26    
27    <meta property="article:tag" content="技术分享">
28    
29    <meta property="article:tag" content="howto">
30    
31    <meta property="article:tag" content="音视频制作">
32    
33    
34    <meta property="og:image" content="https://shisaq.github.io/img/avatar-shisaq.jpg">
35    <meta property="og:url" content="https://shisaq.github.io/2026/07/12/LogicPro%E6%99%BA%E8%83%BD%E9%80%9F%E5%BA%A6%E8%87%AA%E5%8A%A8%E5%8C%B9%E9%85%8D%E4%B8%8D%E6%A0%87%E5%87%86%E7%9A%84%E5%BD%95%E5%88%B6%E7%B4%A0%E6%9D%90/">
36    <meta property="og:site_name" content="优客李李的博客 | Uulili's Blog">
37    
38    <title>LogicPro智能速度自动匹配不标准的录制素材 - 优客李李的博客 | Uulili's Blog</title>
39
40    <!-- Web App Manifest -->
41    <link rel="manifest" href="/pwa/manifest.json">
42
43    <!-- Favicon -->
44    <link rel="shortcut icon" href="/img/favicon.ico">
45    
46    <!-- Canonical URL -->
47    <link rel="canonical" href="https://shisaq.github.io/2026/07/12/LogicPro%E6%99%BA%E8%83%BD%E9%80%9F%E5%BA%A6%E8%87%AA%E5%8A%A8%E5%8C%B9%E9%85%8D%E4%B8%8D%E6%A0%87%E5%87%86%E7%9A%84%E5%BD%95%E5%88%B6%E7%B4%A0%E6%9D%90/">
48
49    <!-- Bootstrap Core CSS -->
50    <link rel="stylesheet" href="/css/bootstrap.min.css">
51
52    <!-- Custom CSS -->
53    <link rel="stylesheet" href="/css/hux-blog.min.css">
54
55    <!-- Custom Fonts -->
56    <!-- <link href="https://cdn.jsdelivr.net/npm/@fortawesome/[email protected]/css/fontawesome.min.css" rel="stylesheet" type="text/css"> -->
57    <!-- Hux change font-awesome CDN to qiniu -->
58    <!-- <link href="//cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta2/css/fontawesome.min.css" rel="stylesheet" type="text/css"> -->
59    <link href="//cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta2/css/all.min.css" rel="stylesheet" type="text/css">
60
61    <!-- adwords -->
62    
62<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-1085659005199651"
63     crossorigin="anonymous"></script>
63
64    
65    <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
66    <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
67    <!--[if lt IE 9]>
68        
68<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
68
69        
69<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
69
70    <![endif]-->
71
72    <!-- ga & ba script hoook -->
73    
73<script></script>
73
74</head>
75
76
77<!-- hack iOS CSS :active style -->
78<body ontouchstart="">
79
80    <!-- Navigation -->
81
82    <nav class="navbar navbar-default navbar-custom navbar-fixed-top">
83        
84        <div class="container-fluid">
85            <!-- Brand and toggle get grouped for better mobile display -->
86            <div class="navbar-header page-scroll">
87                <button type="button" class="navbar-toggle">
88                    <span class="sr-only">Toggle navigation</span>
89                    <span class="icon-bar"></span>
90                    <span class="icon-bar"></span>
91                    <span class="icon-bar"></span>
92                </button>
93                <a class="navbar-brand" href="/">优客李李</a>
94            </div>
95
96            <!-- Collect the nav links, forms, and other content for toggling -->
97            <div id="huxblog_navbar">
98                <div class="navbar-collapse">
99                    <ul class="nav navbar-nav navbar-right">
100                        <li>
101                            <a href="/">首页</a>
102                        </li>
103                        
104                        
105                        
106                        
107                        <li>
108                            <a href="/about/">我</a>
109                        </li>
110                        
111                        
112                        
113                        <li>
114                            <a href="/archive/">文章分类</a>
115                        </li>
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                        
156                        
157                        
158                        
159                        
160                        
161                        
162                        
163                        
164                        
165                        
166                        
167                        
168                        
169                        
170                        <li class="search-icon">
171                            <a href="javascript:void(0)">
172                                <i class="fa fa-search"></i>
173                            </a>
174                        </li>
175                    </ul>
176                </div>
177            </div>
178            <!-- /.navbar-collapse -->
179        </div>
180        <!-- /.container -->
181    </nav>
182
183    
183<script>
184        // Drop Bootstarp low-performance Navbar
185        // Use customize navbar with high-quality material design animation
186        // in high-perf jank-free CSS3 implementation
187        var $body = document.body;
188        var $toggle = document.querySelector('.navbar-toggle');
189        var $navbar = document.querySelector('#huxblog_navbar');
190        var $collapse = document.querySelector('.navbar-collapse');
191
192        var __HuxNav__ = {
193            close: function () {
194                $navbar.className = " ";
195                // wait until animation end.
196                setTimeout(function () {
197                    // prevent frequently toggle
198                    if ($navbar.className.indexOf('in') < 0) {
199                        $collapse.style.height = "0px"
200                    }
201                }, 400)
202            },
203            open: function () {
204                $collapse.style.height = "auto"
205                $navbar.className += " in";
206            }
207        }
208
209        // Bind Event
210        $toggle.addEventListener('click', function (e) {
211            if ($navbar.className.indexOf('in') > 0) {
212                __HuxNav__.close()
213            } else {
214                __HuxNav__.open()
215            }
216        })
217
218        /**
219         * Since Fastclick is used to delegate 'touchstart' globally
220         * to hack 300ms delay in iOS by performing a fake 'click',
221         * Using 'e.stopPropagation' to stop 'touchstart' event from 
222         * $toggle/$collapse will break global delegation.
223         * 
224         * Instead, we use a 'e.target' filter to prevent handler
225         * added to document close HuxNav.  
226         *
227         * Also, we use 'click' instead of 'touchstart' as compromise
228         */
229        document.addEventListener('click', function (e) {
230            if (e.target == $toggle) return;
231            if (e.target.className == 'icon-bar') return;
232            __HuxNav__.close();
233        })
234    </script>
234
235    <!-- Search -->
236<div class="search-page">
237  <div class="search-icon-close-container">
238    <span class="search-icon-close">
239      <i class="fa fa-chevron-down"></i>
240    </span>
241  </div>
242  <div class="search-main container">
243    <div class="row">
244      <div class="col-lg-8 col-lg-offset-2 col-md-10 col-md-offset-1">
245        <form></form>
246        <input type="text" id="search-input" placeholder="你要找什么呢?">
247        </form>
248        <div id="search-results" class="mini-post-list"></div>
249      </div>
250    </div>
251  </div>
252</div>
253
254    <!-- Image to hack wechat -->
255<!-- <img src="/img/icon_wechat.png" width="0" height="0"> -->
256<!-- <img src="/img/about-bg-walle.jpg" width="0" height="0"> -->
257
258<!-- Post Header -->
259
260
261
262<style type="text/css">
263    header.intro-header{
264        position: relative;
265        background-image: url('/img/about-bg-walle.jpg');
266        background: ;
267    }
268
269    
270</style>
271
272<header class="intro-header" >
273
274    <div class="header-mask"></div>
275    
276    <div class="container">
277        <div class="row">
278            <div class="col-lg-8 col-lg-offset-2 col-md-10 col-md-offset-1">
279                <div class="post-heading">
280                    <div class="tags">
281                        
282                        <a class="tag" href="/archive/?tag=%E6%8A%80%E6%9C%AF%E5%88%86%E4%BA%AB" title="技术分享">技术分享</a>
283                        
284                        <a class="tag" href="/archive/?tag=howto" title="howto">howto</a>
285                        
286                        <a class="tag" href="/archive/?tag=%E9%9F%B3%E8%A7%86%E9%A2%91%E5%88%B6%E4%BD%9C" title="音视频制作">音视频制作</a>
287                        
288                    </div>
289                    <h1>LogicPro智能速度自动匹配不标准的录制素材</h1>
290                    
291                    <h2 class="subheading">LogicPro智能速度自动匹配不标准的录制素材</h2>
292                    <span class="meta">作者: shisaq 日期: July 12, 2026</span>
293                </div>
294            </div>
295        </div>
296    </div>
297</header>
298
299
300
301
302
303
304<!-- Post Content -->
305<article>
306    <div class="container">
307        <div class="row">
308
309    <!-- Post Container -->
310            <div class="
311                col-lg-8 col-lg-offset-2
312                col-md-10 col-md-offset-1
313                post-container">
314
315                <!-- Multi-Lingual -->
316                
317
318				<p>在 Logic Pro 中,要让软件的网格和节拍完全跟随你录制的那首非标准节奏(自由节奏/没有打节拍器)的歌,最核心的思路是让软件去适应你的音频(让网格变轨跟随音频),而不是把你的音频强行拉直。</p>
319
320<p>最快捷、最智能的解决方法是使用 Logic Pro 的 智能速度(Smart Tempo) 功能,它可以可以自动分析音频中的重拍,并自动生成一条起伏的速度轨道来匹配你的录音。如果需要更精准的手动微调,可以使用 节拍映射(Beat Mapping)。以下是具体的操作步骤:</p>
321
322<ol>
323  <li>
324    <p>导入音频:将您录好的音频文件拖入 Logic Pro 的空白音轨中。</p>
325  </li>
326  <li>
327    <p>修剪开头:将音频前段多余的空白部分剪掉,并把音频的起始点对齐到网格的起始位置(例如小节 1 的第 1 拍)。</p>
328  </li>
329  <li>
330    <p>设置跟随模式:双击该音频区域打开编辑器,点击 Smart Tempo 选项卡,点击 Analyze(分析)。</p>
331  </li>
332</ol>
333
334<p><img src="/img/logic-smartTempo.png" alt="smart tempo" /></p>
335
336<ol>
337  <li>适应速度:在顶部 LCD 速度显示区域(或 Smart Tempo 项目设置中),将项目速度模式(Project Tempo Mode)从“Keep”更改为 Adapt(适应)。</li>
338</ol>
339
340<p><img src="/img/logic-adapt.png" alt="adapt模式" /></p>
341
342<ol>
343  <li>应用至项目:右键点击音频区域,选择 Tempo -&gt; Apply Region Tempo to Project Tempo(应用区域速度至项目速度)。Logic 将自动分析您的录音,建立专属的的速度轨道(Tempo Map)。</li>
344</ol>
345
346<p><img src="/img/logic-regionToProject.png" alt="匹配至项目" /></p>
347
348<ol>
349  <li>打开节拍器听一下,此时节拍器的速度会随着您的录音忽快忽慢,完美贴合。</li>
350</ol>
351
352
353                <hr style="visibility: hidden;">
354                <ul class="pager">
355                    
356                    <li class="previous">
357                        <a href="/2026/06/03/%E7%BB%99%E7%A9%BA%E8%B0%83%E5%81%9A%E4%B8%80%E4%B8%AA%E4%BC%9A%E7%9D%A1%E8%A7%89%E7%9A%84%E5%AE%9A%E6%97%B6%E5%99%A8/" data-toggle="tooltip" data-placement="top" title="给ç©
357ºè°ƒåšä¸€ä¸ªâ€œä¼šç¡è§‰â€çš„定时器:Home Assistant + HomeKit 实战与踩坑全记录">
358                        上一篇<br>
359                        <span>给空调做一个“会睡觉”的定时器:Home Assistant + HomeKit 实战与踩坑全记录</span>
360                        </a>
361                    </li>
362                    
363                    
364                </ul>
365                <hr style="visibility: hidden;">
366
367                
368                <!-- disqus 评论框 start -->
369                <div class="comment">
370                    <div id="disqus_thread" class="disqus-thread"></div>
371                </div>
372                <!-- disqus 评论框 end -->
373                
374
375                
376            </div>  
377
378    <!-- Side Catalog Container -->
379        
380            <div class="
381                col-lg-2 col-lg-offset-0
382                visible-lg-block
383                sidebar-container
384                catalog-container">
385                <div class="side-catalog">
386                    <hr class="hidden-sm hidden-xs">
387                    <h5>
388                        <a class="catalog-toggle" href="#">目录</a>
389                    </h5>
390                    <ul class="catalog-body"></ul>
391                </div>
392            </div>
393        
394
395    <!-- Sidebar Container -->
396            <div class="
397                col-lg-8 col-lg-offset-2
398                col-md-10 col-md-offset-1
399                sidebar-container">
400
401                <!-- Featured Tags -->
402                
403
404
405<section>
406    
407        <hr class="hidden-sm hidden-xs">
408    
409    <h5><a href="/archive/">文章分类</a></h5>
410    <div class="tags">
411        
412        
413        
414        
415        
416        
417                <a data-sort="0208" 
418                    href="/archive/?tag=others"
419                    title="others"
420                    rel="4">others</a>
421        
422                <a data-sort="0142" 
423                    href="/archive/?tag=%E6%8A%95%E8%B5%84%E7%90%86%E8%B4%A2"
424                    title="投资理财"
425                    rel="70">投资理财</a>
426        
427                <a data-sort="0164" 
428                    href="/archive/?tag=%E5%89%8D%E7%AB%AF%E5%BC%80%E5%8F%91"
429                    title="前端开发"
430                    rel="48">前端开发</a>
431        
432                <a data-sort="0178" 
433                    href="/archive/?tag=%E4%B8%AA%E4%BA%BA%E6%88%90%E9%95%BF"
434                    title="个人成长"
435                    rel="34">个人成长</a>
436        
437                <a data-sort="0197" 
438                    href="/archive/?tag=%E5%85%A8%E6%A0%88%E5%BC%80%E5%8F%91"
439                    title="全栈开发"
440                    rel="15">全栈开发</a>
441        
442                <a data-sort="0200" 
443                    href="/archive/?tag=%E9%9F%B3%E8%A7%86%E9%A2%91%E5%88%B6%E4%BD%9C"
444                    title="音视频制作"
445                    rel="12">音视频制作</a>
446        
447                <a data-sort="0202" 
448                    href="/archive/?tag=%E6%8A%80%E6%9C%AF%E5%88%86%E4%BA%AB"
449                    title="技术分享"
450                    rel="10">技术分享</a>
451        
452                <a data-sort="0203" 
453                    href="/archive/?tag=%E7%BD%91%E7%BB%9C%E8%B5%84%E6%BA%90%E6%91%98%E5%BD%95"
454                    title="网络资源摘录"
455                    rel="9">网络资源摘录</a>
456        
457                <a data-sort="0205" 
458                    href="/archive/?tag=howto"
459                    title="howto"
460                    rel="7">howto</a>
461        
462                <a data-sort="0208" 
463                    href="/archive/?tag=%E7%94%9F%E4%BA%A7%E5%8A%9B"
464                    title="生产力"
465                    rel="4">生产力</a>
466        
467                <a data-sort="0209" 
468                    href="/archive/?tag=%E6%99%BA%E8%83%BD%E5%AE%B6%E5%B1%85"
469                    title="智能家居"
470                    rel="3">智能家居</a>
471        
472                <a data-sort="0209" 
473                    href="/archive/?tag=%E7%BB%88%E7%AB%AF"
474                    title="终端"
475                    rel="3">终端</a>
476        
477                <a data-sort="0210" 
478                    href="/archive/?tag=%E5%A8%B1%E4%B9%90"
479                    title="娱乐"
480                    rel="2">娱乐</a>
481        
482                <a data-sort="0210" 
483                    href="/archive/?tag=Home+Assistant"
484                    title="Home Assistant"
485                    rel="2">Home Assistant</a>
486        
487                <a data-sort="0210" 
488                    href="/archive/?tag=journal"
489                    title="journal"
490                    rel="2">journal</a>
491    </div>
492</section>
493
494
495                <!-- Friends Blog -->
496                
497<hr>
498<h5>友情链接</h5>
499<ul class="list-inline">
500  
501  <li><a href="http://huangxuan.me">Hux Blog</a></li>
502  
503  <li><a href="#">
503Foo</a></li>
504  
505  <li><a href="#">Bar</a></li>
506  
507</ul>
508
509            </div>
510        </div>
511    </div>
512</article>
513
514<!-- add support for mathjax by voleking-->
515
516
517
518
519
520
521<!-- disqus 公共JS代码 start (一个网页只需插入一次) -->
522<script type="text/javascript">
523    /* * * CONFIGURATION VARIABLES * * */
524    var disqus_shortname = "shisaq";
525    var disqus_identifier = "/2026/07/12/LogicPro智能速度自动匹配不标准的录制素材";
526    var disqus_url = "https://shisaq.github.io/2026/07/12/LogicPro%E6%99%BA%E8%83%BD%E9%80%9F%E5%BA%A6%E8%87%AA%E5%8A%A8%E5%8C%B9%E9%85%8D%E4%B8%8D%E6%A0%87%E5%87%86%E7%9A%84%E5%BD%95%E5%88%B6%E7%B4%A0%E6%9D%90/";
527
528    (function() {
529        var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
530        dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
531        (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
532    })();
533</script>
533
534<!-- disqus 公共JS代码 end -->
535
536
537
538
539<!-- async load function -->
540<script>
541    function async(u, c) {
542      var d = document, t = 'script',
543          o = d.createElement(t),
544          s = d.getElementsByTagName(t)[0];
545      o.src = u;
546      if (c) { o.addEventListener('load', function (e) { c(null, e); }, false); }
547      s.parentNode.insertBefore(o, s);
548    }
549</script>
549
550<!-- anchor-js, Doc:http://bryanbraun.github.io/anchorjs/ -->
551<script>
552    async("//cdnjs.cloudflare.com/ajax/libs/anchor-js/1.1.1/anchor.min.js",function(){
553        anchors.options = {
554          visible: 'hover',
555          placement: 'right',
556          // icon: '#'
557        };
558        anchors.add().remove('.intro-header h1').remove('.subheading').remove('.sidebar-container h5');
559    })
560</script>
560
561<style>
562    /* place left on bigger screen */
563    @media all and (min-width: 800px) {
564        .anchorjs-link{
565            position: absolute;
566            left: -0.75em;
567            font-size: 1.1em;
568            margin-top : -0.1em;
569        }
570    }
571</style>
572
573
574    <!-- Footer -->
575<footer>
576    <div class="container">
577        <div class="row">
578            <div class="col-lg-8 col-lg-offset-2 col-md-10 col-md-offset-1">
579                <!-- SNS Link -->
580                
581
582
583<ul class="list-inline text-center">
584
585
586  
587  
588  <li>
589    <a href="https://space.bilibili.com/35566393">
590      <span class="fa-stack fa-lg">
591        <i class="fa fa-circle fa-stack-2x"></i>
592        <i class="fa-brands fa-bilibili fa-stack-1x fa-inverse"></i>
593      </span>
594    </a>
595  </li>
596  
597  
598  <li>
599    <a href="https://twitter.com/shisaq">
600      <span class="fa-stack fa-lg">
601        <i class="fa fa-circle fa-stack-2x"></i>
602        <i class="fa-brands fa-twitter fa-stack-1x fa-inverse"></i>
603      </span>
604    </a>
605  </li>
606  
607  
608  <li>
609    <a target="_blank" href="https://www.zhihu.com/people/shisaq">
610      <span class="fa-stack fa-lg">
611        <i class="fa fa-circle fa-stack-2x"></i>
612        <i class="fa-brands fa-stack-1x fa-inverse">知</i>
613      </span>
614    </a>
615  </li>
616  
617  
618  <li>
619    <a target="_blank" href="http://weibo.com/shisaq">
620      <span class="fa-stack fa-lg">
621        <i class="fa fa-circle fa-stack-2x"></i>
622        <i class="fa-brands fa-weibo fa-stack-1x fa-inverse"></i>
623      </span>
624    </a>
625  </li>
626  
627  
628  
629  <li>
630    <a target="_blank" href="https://github.com/shisaq">
631      <span class="fa-stack fa-lg">
632        <i class="fa fa-circle fa-stack-2x"></i>
633        <i class="fa-brands fa-github fa-stack-1x fa-inverse"></i>
634      </span>
635    </a>
636  </li>
637  
638  
639</ul>
640
641                <p class="copyright text-muted">
642                    Copyright &copy; 优客李李 2026
643                    <br>
644                    Powered by <a href="http://huangxuan.me">Hux Blog</a> |
645                    <iframe style="margin-left: 2px; margin-bottom:-5px;" frameborder="0" scrolling="0" width="100px"
646                        height="20px"
647                        src="https://ghbtns.com/github-btn.html?user=huxpro&repo=huxpro.github.io&type=star&count=true">
648                    </iframe>
649                </p>
650            </div>
651        </div>
652    </div>
653</footer>
654
655<!-- jQuery -->
656<script src="/js/jquery.min.js "></script>
656
657
658<!-- Bootstrap Core JavaScript -->
659<!-- Currently, only navbar scroll-down effect at desktop still depends on this -->
660<script src="/js/bootstrap.min.js "></script>
660
661
662<!-- Custom Theme JavaScript -->
663<script src="/js/hux-blog.min.js "></script>
663
664
665<!-- Simple Jekyll Search -->
666<script src="/js/simple-jekyll-search.min.js"></script>
666
667
668<!-- Service Worker -->
669
670<script src="/js/snackbar.js "></script>
vendor: 1 bytes, line 670
670
671<script src="/js/sw-registration.js "></script>
671
672
673
674<!-- async load function -->
675<script>
676    function async(u, c) {
677        var d = document, t = 'script',
678            o = d.createElement(t),
679            s = d.getElementsByTagName(t)[0];
680        o.src = u;
681        if (c) { o.addEventListener('load', function (e) { c(null, e); }, false); }
682        s.parentNode.insertBefore(o, s);
683    }
684</script>
684
685
686<!--
687     Because of the native support for backtick-style fenced code blocks
688     right within the Markdown is landed in Github Pages,
689     From V1.6, There is no need for Highlight.js,
690     so Huxblog drops it officially.
691
692     - https://github.com/blog/2100-github-pages-now-faster-and-simpler-with-jekyll-3-0
693     - https://help.github.com/articles/creating-and-highlighting-code-blocks/
694     - https://github.com/jneen/rouge/wiki/list-of-supported-languages-and-lexers
695-->
696<!--
697    
697<script>
698        async("http://cdn.bootcss.com/highlight.js/8.6/highlight.min.js", function(){
699            hljs.initHighlightingOnLoad();
700        })
701    </script>
701
702    <link href="http://cdn.bootcss.com/highlight.js/8.6/styles/github.min.css" rel="stylesheet">
703-->
704
705
706
707
708
709
710
711<!--fastClick.js -->
712<script>
713    async("//cdnjs.cloudflare.com/ajax/libs/fastclick/1.0.6/fastclick.min.js", function () {
714        var $nav = document.querySelector("nav");
715        if ($nav) FastClick.attach($nav);
716    })
717</script>
717
718
719
720<!-- Google Analytics -->
721
722<script>
723    // dynamic User by Hux
724    var _gaId = 'UA-49627206-1';
725    var _gaDomain = 'shisaq.github.io';
726
727    // Originial
728    (function (i, s, o, g, r, a, m) {
729        i['GoogleAnalyticsObject'] = r; i[r] = i[r] || function () {
730            (i[r].q = i[r].q || []).push(arguments)
731        }, i[r].l = 1 * new Date(); a = s.createElement(o),
732            m = s.getElementsByTagName(o)[0]; a.async = 1; a.src = g; m.parentNode.insertBefore(a, m)
733    })(window, document, 'script', '//www.google-analytics.com/analytics.js', 'ga');
734
735    ga('create', _gaId, _gaDomain);
736    ga('send', 'pageview');
737</script>
737
738
739
740
741<!-- Baidu Tongji -->
742
743<script>
744    // dynamic User by Hux
745    var _baId = '4cc1f2d8f3067386cc5cdb626a202900';
746
747    // Originial
748    var _hmt = _hmt || [];
749    (function () {
750        var hm = document.createElement("script");
751        hm.src = "//hm.baidu.com/hm.js?" + _baId;
752        var s = document.getElementsByTagName("script")[0];
753        s.parentNode.insertBefore(hm, s);
754    })();
755</script>
755
756
757
758
759<!-- Side Catalog -->
760
761<script type="text/javascript">
762    function generateCatalog(selector) {
763
764        // interop with multilangual 
765        if ('' == 'true') {
766            _containerSelector = 'div.post-container.active'
767        } else {
768            _containerSelector = 'div.post-container'
769        }
770
771        // init
772        var P = $(_containerSelector), a, n, t, l, i, c;
773        a = P.find('h1,h2,h3,h4,h5,h6');
774
775        // clean
776        $(selector).html('')
777
778        // appending
779        a.each(function () {
780            n = $(this).prop('tagName').toLowerCase();
781            i = "#" + $(this).prop('id');
782            t = $(this).text();
783            c = $('<a href="' + i + '" rel="nofollow">' + t + '</a>');
784            l = $('<li class="' + n + '_nav"></li>').append(c);
785            $(selector).append(l);
786        });
787        return true;
788    }
789
790    generateCatalog(".catalog-body");
791
792    // toggle side catalog
793    $(".catalog-toggle").click((function (e) {
794        e.preventDefault();
795        $('.side-catalog').toggleClass("fold")
796    }))
797
798    /*
799     * Doc: https://github.com/davist11/jQuery-One-Page-Nav
800     * Fork by Hux to support padding
801     */
802    async("/js/jquery.nav.js", function () {
803        $('.catalog-body').onePageNav({
804            currentClass: "active",
805            changeHash: !1,
806            easing: "swing",
807            filter: "",
808            scrollSpeed: 700,
809            scrollOffset: 0,
810            scrollThreshold: .2,
811            begin: null,
812            end: null,
813            scrollChange: null,
814            padding: 80
815        });
816    });
817</script>
817
818
819
820
821<!-- Multi-Lingual -->
822
823
824<!-- Simple Jekyll Search -->
825<script>
826    // https://stackoverflow.com/questions/1912501/unescape-html-entities-in-javascript
827    function htmlDecode(input) {
828        var e = document.createElement('textarea');
829        e.innerHTML = input;
830        // handle case of empty input
831        return e.childNodes.length === 0 ? "" : e.childNodes[0].nodeValue;
832    }
833
834    SimpleJekyllSearch({
835        searchInput: document.getElementById('search-input'),
836        resultsContainer: document.getElementById('search-results'),
837        json: '/search.json',
838        searchResultTemplate: '<div class="post-preview item"><a href="{url}"><h2 class="post-title">{title}</h2><h3 class="post-subtitle">{subtitle}</h3><hr></a></div>',
839        noResultsText: 'No results',
840        limit: 50,
841        fuzzy: false,
842        // a hack to get escaped subtitle unescaped. for some reason, 
843        // post.subtitle w/o escape filter nuke entire search.
844        templateMiddleware: function (prop, value, template) {
845            if (prop === 'subtitle' || prop === 'title') {
846                if (value.indexOf("code")) {
847                    return htmlDecode(value);
848                } else {
849                    return value;
850                }
851            }
852        }
853    });
854
855    $(document).ready(function () {
856        var $searchPage = $('.search-page');
857        var $searchOpen = $('.search-icon');
858        var $searchClose = $('.search-icon-close');
859        var $searchInput = $('#search-input');
860        var $body = $('body');
861
862        $searchOpen.on('click', function (e) {
863            e.preventDefault();
864            $searchPage.toggleClass('search-active');
865            var prevClasses = $body.attr('class') || '';
866            setTimeout(function () {
867                $body.addClass('no-scroll');
868            }, 400)
869
870            if ($searchPage.hasClass('search-active')) {
871                $searchClose.on('click', function (e) {
872                    e.preventDefault();
873                    $searchPage.removeClass('search-active');
874                    $body.attr('class', prevClasses);  // from closure 
875                });
876                $searchInput.focus();
877            }
878        });
879    });
880</script>
880
881
882
883<!-- Image to hack wechat -->
884<img src="/img/icon_wechat.png" width="0" height="0" />
885<!-- Migrate from head to bottom, no longer block render and still work -->
886
887</body>
888
889</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.