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 © 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.