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 -> 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 © ä¼å®¢ææ 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.