1<!DOCTYPE html> 2<html lang=zh> 3<head> 4 <meta charset="utf-8"> 5 <link rel='stylesheet' href='/assets/css/andy-style.css'> 6 7 <title>Projecs | FTAndy</title> 8 <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" /> 9 <meta property="og:type" content="website"> 10<meta property="og:title" content="Projecs"> 11<meta property="og:url" content="http://ftandy.com/project/index.html"> 12<meta property="og:site_name" content="FTAndy"> 13<meta property="og:locale" content="zh_CN"> 14<meta property="article:published_time" content="2023-10-22T14:38:03.764Z"> 15<meta property="article:modified_time" content="2023-10-22T14:38:03.764Z"> 16<meta property="article:author" content="FTAndy"> 17<meta name="twitter:card" content="summary"> 18 19 20 21 22 23 <link rel="icon" href="/assets/css/avatar.png" /> 24 25 26 27<link rel="stylesheet" href="/vendor/font-awesome/css/font-awesome.min.css"> 28 29 30<link rel="stylesheet" href="/vendor/open-sans/styles.css"> 31 32 33<link rel="stylesheet" href="/vendor/source-code-pro/styles.css"> 34 35 36 37<link rel="stylesheet" href="/css/style.css"> 38 39 40
41<script src="/vendor/jquery/2.1.3/jquery.min.js"></script>
41 42 43 44 45 46<link rel="stylesheet" href="/vendor/lightgallery/css/lightgallery.min.css"> 47 48 49 50 51 52 53 54 55<meta name="generator" content="Hexo 5.4.2"></head> 56 57<body> 58 <div id="container"> 59 <header id="header"> 60 <div id="header-main" class="header-inner"> 61 <div class="outer"> 62 <a href="/" id="logo"> 63 <i class="logo"></i> 64 <!-- <span class="site-title">FTAndy</span> --> 65 </a> 66 <nav id="main-nav"> 67 68 <a class="main-nav-link" href="/.">Home</a> 69 70 <a class="main-nav-link" href="/archives">Archives</a> 71 72 <a class="main-nav-link" href="/categories">Categories</a> 73 74 <a class="main-nav-link" href="/project">Projects</a> 75 76 <a class="main-nav-link" href="/about">About</a> 77 78 </nav> 79 80 81 <nav id="sub-nav"> 82 <div class="profile" id="profile-nav"> 83 <a id="profile-anchor" href="javascript:;"> 84 <img class="avatar" src="/assets/css/avatar.png" /> 85 <i class="fa fa-caret-down"></i> 86 </a> 87 </div> 88 </nav> 89 90 <div id="search-form-wrap"> 91 92 <form class="search-form"> 93 <input type="text" class="ins-search-input search-form-input" placeholder="æç´¢" /> 94 <button type="submit" class="search-form-submit"></button> 95 </form> 96 <div class="ins-search"> 97 <div class="ins-search-mask"></div> 98 <div class="ins-search-container"> 99 <div class="ins-input-wrapper"> 100 <input type="text" class="ins-search-input" placeholder="æ³è¦æ¥æ¾ä»ä¹..." /> 101 <span class="ins-close ins-selectable"><i class="fa fa-times-circle"></i></span> 102 </div> 103 <div class="ins-section-wrapper"> 104 <div class="ins-section-container"></div> 105 </div> 106 </div> 107</div>
108<script> 109(function (window) { 110 var INSIGHT_CONFIG = { 111 TRANSLATION: { 112 POSTS: 'æç« ', 113 PAGES: '页é¢', 114 CATEGORIES: 'åç±»', 115 TAGS: 'æ ç¾', 116 UNTITLED: '(æªå½å)', 117 }, 118 ROOT_URL: '/', 119 CONTENT_URL: '/content.json', 120 }; 121 window.INSIGHT_CONFIG = INSIGHT_CONFIG; 122})(window); 123</script>
123 124
125<script src="/js/insight.js"></script>
125 126 127 128</div> 129 </div> 130 </div> 131 <div id="main-nav-mobile" class="header-sub header-inner"> 132 <table class="menu outer"> 133 <tr> 134 135 <td><a class="main-nav-link" href="/.">Home</a></td> 136 137 <td><a class="main-nav-link" href="/archives">Archives</a></td> 138 139 <td><a class="main-nav-link" href="/categories">Categories</a></td> 140 141 <td><a class="main-nav-link" href="/project">Projects</a></td> 142 143 <td><a class="main-nav-link" href="/about">About</a></td> 144 145 <td> 146 147 <div class="search-form"> 148 <input type="text" class="ins-search-input search-form-input" placeholder="æç´¢" /> 149 </div> 150 151 </td> 152 </tr> 153 </table> 154 </div> 155</header> 156 157 <div class="outer"> 158 159 160 161<aside id="profile"> 162 <div class="inner profile-inner"> 163 <div class="base-info profile-block"> 164 <img id="avatar" src="/assets/css/avatar.png" /> 165 <h2 id="name">FTAndy</h2> 166 <h3 id="title">A Web Developer</h3> 167 <span id="location"><i class="fa fa-map-marker"></i>ShangHai, China</span> 168 <a id="follow" target="_blank" href="https://github.com/ftandy/">å ³æ³¨æ</a> 169 </div> 170 <div class="article-info profile-block"> 171 <div class="article-info-block"> 172 30 173 <span>æç« </span> 174 </div> 175 <div class="article-info-block"> 176 0 177 <span>æ ç¾</span> 178 </div> 179 </div> 180 181 <div class="profile-block social-links"> 182 <table> 183 <tr> 184 185 186 <td> 187 <a href="http://github.com/ftandy" target="_blank" title="github" class=tooltip> 188 <i class="fa fa-github"></i> 189 </a> 190 </td> 191 192 <td> 193 <a href="https://twitter.com/fortheandy" target="_blank" title="twitter" class=tooltip> 194 <i class="fa fa-twitter"></i> 195 </a> 196 </td> 197 198 <td> 199 <a href="http://www.weibo.com/2150908851" target="_blank" title="weibo" class=tooltip> 200 <i class="fa fa-weibo"></i> 201 </a> 202 </td> 203 204 </tr> 205 </table> 206 </div> 207 208 </div> 209</aside> 210 211 212 <section id="main"><article id="about-" class="article article-type-about" itemscope itemprop="blogPost"> 213 <div class="article-inner"> 214 215 216 <header class="article-header"> 217 218 219 <h1 class="article-title" itemprop="name"> 220 Projecs 221 </h1> 222 223 224 225 <div class="article-meta"> 226 227 <div class="article-date"> 228 <i class="fa fa-calendar"></i> 229 <a href="/project/index.html"> 230 <time datetime="2023-10-22T14:38:03.764Z" itemprop="datePublished">2023-10-22</time> 231 </a> 232 </div> 233 234 235 236 237 </div> 238 239 </header> 240 241 242 <div class="article-entry" itemprop="articleBody"> 243 244 245 246 247 </div> 248 <!-- <footer class="article-footer"> 249 <div class="share-container"> 250 251 252 253</div> 254 255 <a data-url="http://ftandy.com/project/index.html" data-id="clo1o65xd0008xfsn7ti0700f" class="article-share-link"><i class="fa fa-share"></i>å享å°</a>
256<script> 257 (function ($) { 258 // Prevent duplicate binding 259 if (typeof(__SHARE_BUTTON_BINDED__) === 'undefined' || !__SHARE_BUTTON_BINDED__) { 260 __SHARE_BUTTON_BINDED__ = true; 261 } else { 262 return; 263 } 264 $('body').on('click', function() { 265 $('.article-share-box.on').removeClass('on'); 266 }).on('click', '.article-share-link', function(e) { 267 e.stopPropagation(); 268 269 var $this = $(this), 270 url = $this.attr('data-url'), 271 encodedUrl = encodeURIComponent(url), 272 id = 'article-share-box-' + $this.attr('data-id'), 273 offset = $this.offset(), 274 box; 275 276 if ($('#' + id).length) { 277 box = $('#' + id); 278 279 if (box.hasClass('on')){ 280 box.removeClass('on'); 281 return; 282 } 283 } else { 284 var html = [ 285 '<div id="' + id + '" class="article-share-box">', 286 '<input class="article-share-input" value="' + url + '">', 287 '<div class="article-share-links">', 288 '<a href="https://twitter.com/intent/tweet?url=' + encodedUrl + '" class="fa fa-twitter article-share-twitter" target="_blank" title="Twitter"></a>', 289 '<a href="https://www.facebook.com/sharer.php?u=' + encodedUrl + '" class="fa fa-facebook article-share-facebook" target="_blank" title="Facebook"></a>', 290 '<a href="http://pinterest.com/pin/create/button/?url=' + encodedUrl + '" class="fa fa-pinterest article-share-pinterest" target="_blank" title="Pinterest"></a>', 291 '<a href="https://plus.google.com/share?url=' + encodedUrl + '" class="fa fa-google article-share-google" target="_blank" title="Google+"></a>', 292 '</div>', 293 '</div>' 294 ].join(''); 295 296 box = $(html); 297 298 $('body').append(box); 299 } 300 301 $('.article-share-box.on').hide(); 302 303 box.css({ 304 top: offset.top + 25, 305 left: offset.left 306 }).addClass('on'); 307 308 }).on('click', '.article-share-box', function (e) { 309 e.stopPropagation(); 310 }).on('click', '.article-share-box-input', function () { 311 $(this).select(); 312 }).on('click', '.article-share-box-link', function (e) { 313 e.preventDefault(); 314 e.stopPropagation(); 315 316 window.open(this.href, 'article-share-box-window-' + Date.now(), 'width=500,height=450'); 317 }); 318 })(jQuery); 319</script>
319 320 321 322 323 <a href="http://ftandy.com/project/index.html#comments" class="article-comment-link ds-thread-count" data-thread-key="http://ftandy.com/project/index.html">è¯è®º</a> 324 325 326 </footer> --> 327 </div> 328 329 330 331 332</article> 333 334 335 336 <section id="comments"> 337 338 339 <div class="ds-thread" data-thread-key="project/index.html" data-title="Projecs" data-url="http://ftandy.com/project/index.html"></div> 340 <style> 341 #ds-thread #ds-reset .ds-textarea-wrapper { 342 background: none; 343 } 344 #ds-reset .ds-avatar img { 345 box-shadow: none; 346 } 347 #ds-reset .ds-gradient-bg { 348 background: #f7f7f7; 349 } 350 #ds-thread #ds-reset li.ds-tab a { 351 border-radius: 3px; 352 } 353 #ds-thread #ds-reset .ds-post-button { 354 color: white; 355 border: none; 356 box-shadow: none; 357 background: #d32; 358 text-shadow: none; 359 font-weight: normal; 360 font-family: 'Microsoft Yahei'; 361 } 362 #ds-thread #ds-reset .ds-post-button:hover { 363 color: white; 364 background: #DE594C; 365 } 366 #ds-thread #ds-reset .ds-post-button:active { 367 background: #d32; 368 } 369 #ds-smilies-tooltip ul.ds-smilies-tabs li a.ds-current { 370 color: white; 371 background: #d32; 372 box-shadow: none; 373 text-shadow: none; 374 font-weight: normal; 375 } 376 </style> 377 378 379 </section> 380 381 382</section> 383 384 <aside id="sidebar"> 385 386 387 <div class="widget-wrap"> 388 <h3 class="widget-title">ææ°æç« </h3> 389 <div class="widget"> 390 <ul id="recent-post" class=""> 391 392 <li> 393 394 <div class="item-thumbnail"> 395 <a href="/2017/07/07/NAT%20%E7%A9%BF%E9%80%8F/" class="thumbnail"> 396 397 398 <span class="thumbnail-image thumbnail-none"></span> 399 400</a> 401 402 </div> 403 404 <div class="item-inner"> 405 <p class="item-category"><a class="article-category-link" href="/categories/socket/">socket</a><i class="fa fa-angle-right"></i><a class="article-category-link" href="/categories/socket/network/">network</a></p> 406 <p class="item-title"><a href="/2017/07/07/NAT%20%E7%A9%BF%E9%80%8F/" class="title">å¦ä½æ´æ¹ä¾¿å°è®¿é® NAT åé¢ç HTTP Serverï¼</a></p> 407 <p class="item-date"><time datetime="2017-07-07T06:49:31.000Z" itemprop="datePublished">2017-07-07</time></p> 408 </div> 409 </li> 410 411 <li> 412 413 <div class="item-thumbnail"> 414 <a href="/2017/05/09/%E6%93%8D%E8%9B%8B%E7%9A%84%E7%BC%93%E5%AD%98/" class="thumbnail"> 415 416 417 <span class="thumbnail-image thumbnail-none"></span> 418 419</a> 420 421 </div> 422 423 <div class="item-inner"> 424 <p class="item-category"><a class="article-category-link" href="/categories/browser/">browser</a></p> 425 <p class="item-title"><a href="/2017/05/09/%E6%93%8D%E8%9B%8B%E7%9A%84%E7%BC%93%E5%AD%98/" class="title">æèçæµè§å¨ç¼å</a></p> 426 <p class="item-date"><time datetime="2017-05-09T04:58:21.000Z" itemprop="datePublished">2017-05-09</time></p> 427 </div> 428 </li> 429 430 <li> 431 432 <div class="item-thumbnail"> 433 <a href="/2017/05/05/%E8%81%8A%E4%B8%80%E8%81%8A-Stand-Up-Comedy/" class="thumbnail"> 434 435 436 <span style="background-image:url(/assets/images/louis-ck-oh-my-god.jpg)" alt="èä¸è Stand Up Comedy" class="thumbnail-image"></span> 437 438</a> 439 440 </div> 441 442 <div class="item-inner"> 443 <p class="item-category"><a class="article-category-link" href="/categories/comedy/">comedy</a></p> 444 <p class="item-title"><a href="/2017/05/05/%E8%81%8A%E4%B8%80%E8%81%8A-Stand-Up-Comedy/" class="title">èä¸è Stand Up Comedy</a></p> 445 <p class="item-date"><time datetime="2017-05-05T10:00:00.000Z" itemprop="datePublished">2017-05-05</time></p> 446 </div> 447 </li> 448 449 <li> 450 451 <div class="item-thumbnail"> 452 <a href="/2017/01/17/Node-%E6%A0%B9%E6%9C%AC%E5%B0%B1%E4%B8%8D%E6%98%AF%E4%BB%80%E4%B9%88%E6%96%B0%E4%B8%9C%E8%A5%BF/" class="thumbnail"> 453 454
455 <span class="thumbnail-image thumbnail-none"></span> 456 457</a> 458 459 </div> 460 461 <div class="item-inner"> 462 <p class="item-category"><a class="article-category-link" href="/categories/javascript/">javascript</a></p> 463 <p class="item-title"><a href="/2017/01/17/Node-%E6%A0%B9%E6%9C%AC%E5%B0%B1%E4%B8%8D%E6%98%AF%E4%BB%80%E4%B9%88%E6%96%B0%E4%B8%9C%E8%A5%BF/" class="title">Node æ ¹æ¬å°±ä¸æ¯ä»ä¹æ°ä¸è¥¿</a></p> 464 <p class="item-date"><time datetime="2017-01-17T14:44:15.000Z" itemprop="datePublished">2017-01-17</time></p> 465 </div> 466 </li> 467 468 <li> 469 470 <div class="item-thumbnail"> 471 <a href="/2016/10/30/mimi-promise/" class="thumbnail"> 472 473 474 <span style="background-image:url(/assets/images/promisesa-was-born.jpg)" alt="åä¸ä¸ªç¬¦å Promises/A+ è§èå¹¶å¯é å ES7 async/await 使ç¨ç Promise" class="thumbnail-image"></span> 475 476</a> 477 478 </div> 479 480 <div class="item-inner"> 481 <p class="item-category"><a class="article-category-link" href="/categories/javascript/">javascript</a></p> 482 <p class="item-title"><a href="/2016/10/30/mimi-promise/" class="title">åä¸ä¸ªç¬¦å Promises/A+ è§èå¹¶å¯é å ES7 async/await 使ç¨ç Promise</a></p> 483 <p class="item-date"><time datetime="2016-10-30T14:11:46.000Z" itemprop="datePublished">2016-10-30</time></p> 484 </div> 485 </li> 486 487 </ul> 488 </div> 489 </div> 490 491 492 493 <div class="widget-wrap"> 494 <h3 class="widget-title">åç±»</h3> 495 <div class="widget"> 496 <ul class="category-list"><li class="category-list-item"><a class="category-list-link" href="/categories/bitcoin/">bitcoin</a><span class="category-list-count">1</span></li><li class="category-list-item"><a class="category-list-link" href="/categories/browser/">browser</a><span class="category-list-count">1</span></li><li class="category-list-item"><a class="category-list-link" href="/categories/comedy/">comedy</a><span class="category-list-count">1</span></li><li class="category-list-item"><a class="category-list-link" href="/categories/dota/">dota</a><span class="category-list-count">1</span></li><li class="category-list-item"><a class="category-list-link" href="/categories/game/">game</a><span class="category-list-count">1</span></li><li class="category-list-item"><a class="category-list-link" href="/categories/https/">https</a><span class="category-list-count">1</span></li><li class="category-list-item"><a class="category-list-link" href="/categories/javascript/">javascript</a><span class="category-list-count">5</span></li><li class="category-list-item"><a class="category-list-link" href="/categories/leetcode/">leetcode</a><span class="category-list-count">3</span></li><li class="category-list-item"><a class="category-list-link" href="/categories/life/">life</a><span class="category-list-count">5</span></li><li class="category-list-item"><a class="category-list-link" href="/categories/poem/">poem</a><span class="category-list-count">1</span></li><li class="category-list-item"><a class="category-list-link" href="/categories/programming-language/">programming_language</a><span class="category-list-count">3</span></li><li class="category-list-item"><a class="category-list-link" href="/categories/rick-and-morty/">rick and morty</a><span class="category-list-count">1</span></li><li class="category-list-item"><a class="category-list-link" href="/categories/ruby/">ruby</a><span class="category-list-count">3</span></li><li class="category-list-item"><a class="category-list-link" href="/categories/socket/">socket</a><span class="category-list-count">1</span><ul class="category-list-child"><li class="category-list-item"><a class="category-list-link" href="/categories/socket/network/">network</a><span class="category-list-count">1</span></li></ul></li><li class="category-list-item"><a class="category-list-link" href="/categories/vagrant-docker/">vagrant_docker</a><span class="category-list-count">2</span></li></ul> 497 </div> 498 </div> 499 500 501 502 <div class="widget-wrap"> 503 <h3 class="widget-title">
503彿¡£</h3> 504 <div class="widget"> 505 <ul class="archive-list"><li class="archive-list-item"><a class="archive-list-link" href="/archives/2017/07/">䏿 2017</a><span class="archive-list-count">1</span></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2017/05/">äºæ 2017</a><span class="archive-list-count">2</span></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2017/01/">䏿 2017</a><span class="archive-list-count">1</span></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2016/10/">åæ 2016</a><span class="archive-list-count">1</span></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2016/09/">乿 2016</a><span class="archive-list-count">2</span></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2016/05/">äºæ 2016</a><span class="archive-list-count">2</span></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2016/03/">䏿 2016</a><span class="archive-list-count">2</span></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2016/02/">äºæ 2016</a><span class="archive-list-count">1</span></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2015/09/">乿 2015</a><span class="archive-list-count">3</span></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2015/08/">å «æ 2015</a><span class="archive-list-count">1</span></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2015/07/">䏿 2015</a><span class="archive-list-count">1</span></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2015/06/">å æ 2015</a><span class="archive-list-count">6</span></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2015/05/">äºæ 2015</a><span class="archive-list-count">4</span></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2015/04/">åæ 2015</a><span class="archive-list-count">2</span></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2015/03/">䏿 2015</a><span class="archive-list-count">1</span></li></ul> 506 </div> 507 </div> 508 509 510 511 512 <div id="toTop" class="fa fa-angle-up"></div> 513</aside> 514 515 </div> 516 <footer id="footer"> 517 <div class="outer"> 518 <div id="footer-info" class="inner"> 519 © 2023 FTAndy<br> 520 Powered by <a href="http://hexo.io/" target="_blank">Hexo</a>. Theme by <a target="_blank" rel="noopener" href="http://github.com/ppoffice">PPOffice</a> 521 </div> 522 </div> 523</footer> 524 525 526 527
527<script type="text/javascript"> 528 var duoshuoQuery = {short_name:'ftandy'}; 529 (function() { 530 var ds = document.createElement('script'); 531 ds.type = 'text/javascript';ds.async = true; 532 ds.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') + '//static.duoshuo.com/embed.js'; 533 ds.charset = 'UTF-8'; 534 (document.getElementsByTagName('head')[0] 535 || document.getElementsByTagName('body')[0]).appendChild(ds); 536 })(); 537 </script>
537 538 539 540 541 542
543<script src="/vendor/lightgallery/js/lightgallery.min.js"></script>
543 544 545
546<script src="/vendor/lightgallery/js/lg-thumbnail.min.js"></script>
546 547 548
549<script src="/vendor/lightgallery/js/lg-pager.min.js"></script>
549 550 551
552<script src="/vendor/lightgallery/js/lg-autoplay.min.js"></script>
552 553 554
555<script src="/vendor/lightgallery/js/lg-fullscreen.min.js"></script>
555 556 557
558<script src="/vendor/lightgallery/js/lg-zoom.min.js"></script>
558 559 560
561<script src="/vendor/lightgallery/js/lg-hash.min.js"></script>
561 562 563
564<script src="/vendor/lightgallery/js/lg-share.min.js"></script>
564 565 566
567<script src="/vendor/lightgallery/js/lg-video.min.js"></script>
567 568 569 570 571 572 573 574<!-- Custom Scripts --> 575
576<script src="/js/main.js"></script>
576 577 578 579 </div> 580 <div class="backgroung-image"> 581 <img src="/assets/images/rick_and_morty/3.jpg"> 582 </div> 583 <div class="comments"></div> 584 <link rel="stylesheet" href="https://imsun.github.io/gitment/style/default.css"> 585
585<script src="https://imsun.github.io/gitment/dist/gitment.browser.js"></script>
585 586
586<script> 587 var gitment = new Gitment({ 588 id: location.href, // å¯éãé»è®¤ä¸º location.href 589 owner: 'FTAndy', 590 repo: 'gitment', 591 oauth: { 592 client_id: '1a275643c8d99980f66c', 593 client_secret: 'eb4b7ae0bc575a09ec5a259f24b20fba2a15bee9', 594 }, 595 }) 596 gitment.render('comments') 597 </script>
597 598</body> 599</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.