1<!DOCTYPE html> 2<html lang="en"> 3 4<head> 5 <meta charset="utf-8"> 6 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 7 <meta name="google-site-verification" content="xBT4GhYoi5qRD5tr338pgPM5OWHHIDR6mNg1a3euekI" /> 8 <meta name="viewport" content="width=device-width, initial-scale=1"> 9 <meta name="description" content="@wblearn,ä¸è¦è®©ä»»ä½äºæ æä¸ºä½ ä¸å»å¦ä¹ ççç±ï¼"> 10 <meta name="keywords" content="wblearn, @wblearn, wblearnçå客,wblearn Blog, å客, 个人ç½ç«, äºèç½"> 11 <meta name="theme-color" content="#000000"> 12 <meta name="referrer" content="no-referrer"/> 13 14 <title>Wblearnçå客 | Wblearn Blog</title> 15 16 <!-- Web App Manifest --> 17 <link rel="manifest" href="/pwa/manifest.json"> 18 19 <!-- Favicon --> 20 <link rel="shortcut icon" href="/img/avatar-wb.jpg"> 21 22 <!-- Canonical URL --> 23 <link rel="canonical" href="http://wblearn.github.io//"> 24 25 <!-- Bootstrap Core CSS --> 26 <link rel="stylesheet" href="/css/bootstrap.min.css"> 27 28 <!-- Custom CSS --> 29 <link rel="stylesheet" href="/css/hux-blog.min.css"> 30 31 <!-- Pygments Github CSS --> 32 <link rel="stylesheet" href="/css/syntax.css"> 33 34 <!-- videos CSS --> 35 <link rel="stylesheet" href="/css/videos.css"> 36 37 <!-- Custom Fonts --> 38 <!-- <link href="http://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css" rel="stylesheet" type="text/css"> --> 39 <!-- Hux change font-awesome CDN to qiniu --> 40 <link href="//cdnjs.cloudflare.com/ajax/libs/font-awesome/4.6.3/css/font-awesome.min.css" rel="stylesheet" type="text/css"> 41 42 43 <!-- Hux Delete, sad but pending in China 44 <link href='http://fonts.googleapis.com/css?family=Lora:400,700,400italic,700italic' rel='stylesheet' type='text/css'> 45 <link href='http://fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,700italic,800italic,400,300,600,700,800' rel='stylesheet' type='text/ 46 css'> 47 --> 48 49 50 <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries --> 51 <!-- WARNING: Respond.js doesn't work if you view the page via file:// --> 52 <!--[if lt IE 9]> 53
53<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
53 54
54<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
54 55 <![endif]--> 56 57 <!-- ga & ba script hoook --> 58
58<script></script>
58 59</head> 60 61 62<!-- hack iOS CSS :active style --> 63<body ontouchstart=""> 64 65 <!-- Navigation --> 66<nav class="navbar navbar-default navbar-custom navbar-fixed-top"> 67 <div class="container-fluid"> 68 <!-- Brand and toggle get grouped for better mobile display --> 69 <div class="navbar-header page-scroll"> 70 <button type="button" class="navbar-toggle"> 71 <span class="sr-only">Toggle navigation</span> 72 <span class="icon-bar"></span> 73 <span class="icon-bar"></span> 74 <span class="icon-bar"></span> 75 </button> 76 <a class="navbar-brand" href="/">Wblearn Blog</a> 77 </div> 78 79 <!-- Collect the nav links, forms, and other content for toggling --> 80 <div id="huxblog_navbar"> 81 <div class="navbar-collapse"> 82 <ul class="nav navbar-nav navbar-right"> 83 <li> 84 <a href="/">Home</a> 85 </li> 86 87 <li> 88 <a href="/about/">About</a> 89 </li> 90 91 <li> 92 <a href="/videos/">Videos</a> 93 </li> 94 95 <li> 96 <a href="/tags/">Tags</a> 97 </li> 98 99 </ul> 100 </div> 101 </div> 102 <!-- /.navbar-collapse --> 103 </div> 104 <!-- /.container --> 105</nav>
106<script> 107 // Drop Bootstarp low-performance Navbar 108 // Use customize navbar with high-quality material design animation 109 // in high-perf jank-free CSS3 implementation 110 var $body = document.body; 111 var $toggle = document.querySelector('.navbar-toggle'); 112 var $navbar = document.querySelector('#huxblog_navbar'); 113 var $collapse = document.querySelector('.navbar-collapse'); 114 115 var __HuxNav__ = { 116 close: function(){ 117 $navbar.className = " "; 118 // wait until animation end. 119 setTimeout(function(){ 120 // prevent frequently toggle 121 if($navbar.className.indexOf('in') < 0) { 122 $collapse.style.height = "0px" 123 } 124 },400) 125 }, 126 open: function(){ 127 $collapse.style.height = "auto" 128 $navbar.className += " in"; 129 } 130 } 131 132 // Bind Event 133 $toggle.addEventListener('click', function(e){ 134 if ($navbar.className.indexOf('in') > 0) { 135 __HuxNav__.close() 136 }else{ 137 __HuxNav__.open() 138 } 139 }) 140 141 /** 142 * Since Fastclick is used to delegate 'touchstart' globally 143 * to hack 300ms delay in iOS by performing a fake 'click', 144 * Using 'e.stopPropagation' to stop 'touchstart' event from 145 * $toggle/$collapse will break global delegation. 146 * 147 * Instead, we use a 'e.target' filter to prevent handler 148 * added to document close HuxNav. 149 * 150 * Also, we use 'click' instead of 'touchstart' as compromise 151 */ 152 document.addEventListener('click', function(e){ 153 if(e.target == $toggle) return; 154 if(e.target.className == 'icon-bar') return; 155 __HuxNav__.close(); 156 }) 157</script>
157 158 159 160 <!-- Page Header --> 161<header class="intro-header" style="background-image: url('/img/home-bg-art.jpg')"> 162 <div class="container"> 163 <div class="row"> 164 <div class="col-lg-8 col-lg-offset-2 col-md-10 col-md-offset-1 "> 165 <div class="site-heading"> 166 <h1>Wblearn Blog</h1> 167 <!--<hr class="small">--> 168 <span class="subheading">ãæ¶é´çå¾è§ã</span> 169 </div> 170 </div> 171 </div> 172 </div> 173</header> 174 175<!-- Main Content --> 176<div class="container"> 177 <div class="row"> 178 179 180<!-- USE SIDEBAR --> 181 <!-- PostList Container --> 182 <div class=" 183 col-lg-8 col-lg-offset-1 184 col-md-8 col-md-offset-1 185 col-sm-12 186 col-xs-12 187 postlist-container 188 "> 189 190<div class="post-preview"> 191 <a href="/2020/09/20/aws-lambda-dynamodb/"> 192 <h2 class="post-title"> 193 AWS lambda and dynamodb with Java 194 </h2> 195 196 <div class="post-content-preview"> 197 198 åå¨åé¢ 199使ç¨aws lambdaå·²ç»ä¸å¹´å¤äºï¼ä¸é¢ä½¿ç¨javaæå»ºä¸ä¸ªç®åçlambdaæå¡ï¼å¤§å®¶å¯ä»¥èªå·±æ©å±æ³è¦çåè½ï¼åºè¯ä¸å¤è¯´ï¼å¼å§å§ã 200AWS ä¸ Java Lambda åºç¨è®°è¦ 201public class LambdaFunctionHandler implements RequestHandler<Object,Object > { 202 203 ... 204 </div> 205 </a> 206 <p class="post-meta"> 207 Posted by wblearn on September 20, 2020 208 </p> 209</div> 210<hr> 211 212<div class="post-preview"> 213 <a href="/2018/08/09/study-video/"> 214 <h2 class="post-title"> 215 å¦ä¹ è§é¢å客æºç å享 216 </h2> 217 218 <div class="post-content-preview"> 219 åå¨åé¢ 220 221好æ©ä¹åæå°±å¨æç个人主页ä¸å äºvideosé¡µï¼æ³çç¨æ¥è®°å½èªå·±æçä¸äºè§é¢ç¢çã忥æ³åä¸ä¸ªç®æ´çå¦ä¹ è§é¢ç½ç«ï¼äºæ¯å¨æä¸ªjekyll theme主é¢ä¸èªå·±å®å¶äºä¸ä¸ªè§é¢æºäºbilibiliçstudy videoç½ç«ã 222 223详æ é¡µé¢ 224 2251.ç½ç«é¦é¡µ 226 227 2282.è§é¢é¦é¡µ 229 230 2313.å个è§é¢é¡µ 232 233 2344.ææºç«¯ 235 236 237å卿å 238 239è§é¢ç½ç«æºç æ³è¿éï¼æ¬¢è¿forkï¼starå¹¶çä¸åºå¤ã 240 241 242 </div> 243 </a> 244 <p class="post-meta"> 245 Posted by wblearn on August 9, 2018 246 </p> 247</div> 248<hr> 249 250<div class="post-preview"> 251 <a href="/2017/07/11/life/"> 252 <h2 class="post-title"> 253 çæ´»çæºæ § 254 </h2> 255 256 <div class="post-content-preview"> 257 258 æ¬ç¯æ¥æºäºå ç¥ççæ´»çæºæ §ï¼è§å¾å¯¹çæ´»æå¯è¿ªè½¬è½½äºæ¤ 259 260 261ææ¾ç»åè¿ä¸ç¯æç« ï¼å«ãç¼ç¨çæºæ §ããåå 䏿æ»åä¸äºææ¯æ§çæç« ï¼ä¸è®¤è¯æç人å¯è½è¿ä»¥ä¸ºææ¯ä¸ªææ¯ç人ï¼åªç¥éè°è®ºææ¯ï¼ä¸ä¼çæ´»ãå ¶å®è·ææ¥è§¦ç´§å¯ç人é½ç¥éï¼ææ¯ä¸ä¸ªå¾ä¼çæ´»ç人ã 262 263ç¡®å®ï¼æè±äºå¾å¤å¿ææ¥ç ç©¶åç§ç©åï¼å®ä»¬çç¨æ³åç»ç»æ¹å¼ãæç¨ä¸ç§çæ§èæºæ §çæ¹å¼å¯¹å¾ çæ´»ä¸çæ¹æ¹é¢é¢ï¼æçâçæ´»æºæ §âå¹¶ä¸äºäºæçâç¼ç¨æºæ §â... 264 </div> 265 </a> 266 <p class="post-meta"> 267 Posted by wblearn on July 11, 2017 268 </p> 269</div> 270<hr> 271 272<div class="post-preview"> 273 <a href="/2017/04/06/sso/"> 274 <h2 class="post-title"> 275 åç¹ç»å½åçä¸ç®åå®ç° 276 </h2> 277 278 <div class="post-content-preview"> 279 ä¸ãåç³»ç»ç»å½æºå¶ 2801ãhttpæ ç¶æåè®® 281webåºç¨éç¨browser/serveræ¶æï¼httpä½ä¸ºéä¿¡åè®®ãhttpæ¯æ ç¶æåè®®ï¼æµè§å¨çæ¯ä¸æ¬¡è¯·æ±ï¼æå¡å¨ä¼ç¬ç«å¤çï¼ä¸ä¸ä¹åæä¹åç请æ±äº§çå ³èï¼è¿ä¸ªè¿ç¨ç¨ä¸å¾è¯´æï¼ä¸æ¬¡è¯·æ±/ååºå¯¹ä¹é´æ²¡æä»»ä½èç³» 282 283ä½è¿ä¹åæ¶æå³çï¼ä»»ä½ç¨æ·é½è½éè¿æµè§å¨è®¿é®æå¡å¨èµæºï¼å¦ææ³ä¿æ¤æå¡å¨çæäºèµæºï¼å¿ é¡»éå¶æµè§å¨è¯·æ±ï¼è¦éå¶æµè§å¨è¯·æ±ï¼å¿ é¡»é´å«æµè§... 284 </div> 285 </a> 286 <p class="post-meta"> 287 Posted by wblearn on April 6, 2017 288 </p> 289</div> 290<hr> 291 292<div class="post-preview"> 293 <a href="/2017/02/26/web-develop(2)/"> 294 <h2 class="post-title"> 295 æçWebå¼å宿æ»ç»(äº) 296 </h2> 297 298 <div class="post-content-preview"> 299 300 åå¨åé¢ 301è¿ç¯æ¯ç»§æçWebå¼å宿æ»ç»(ä¸)ç第äºç¯æç« ï¼å¨æ¤ç¯éï¼æä¸»è¦æ»ç»ä¸ä¸å¦ä½æWeb页é¢ä¸çæ¥è¡¨æåè¡¨æ°æ®è½¬æ¢æpdfæä»¶ä¸è½½å°æ¬å°ãå ¶ä¸æ¶åå°çç¥è¯æä¹ä¼æåºæ¥ä¾å¤§å®¶äº¤æµå¦ä¹ ãokï¼å¼å§å§~ 302å æ¥ççææ 303 304Web页é¢ä¸çåè¡¨æ°æ® 305 306ä¸å¾å°±æ¯Web页é¢ä¸çåè¡¨æ°æ®ï¼å°å ¶å³ä¾§çæpdfä¹åçææå¦ä¸ï¼ 307 308çæçpdfæä»¶ 309 310å®ç°æè·¯ 311è¿éææåºä¸¤ç§å®ç°æè·¯ï¼... 312 </div> 313 </a> 314 <p class="post-meta"> 315 Posted by wblearn on February 26, 2017 316 </p> 317</div> 318<hr> 319 320<div class="post-preview"> 321 <a href="/2017/01/01/git-push/"> 322 <h2 class="post-title"> 323 pushæ¬å°ä»£ç å°githubåºé 324 </h2> 325 326 <div class="post-content-preview"> 327 328 329ææ¶åå¾GitHubä¸æäº¤ä¸è¥¿çæ¶åä¼å 为remote repository䏿ä¸è¥¿æ´æ°äºä½æ¯local repository æ²¡ææ´æ°èé ææäº¤å¤±è´¥ 330 331æå¦ä¸å ç§è§£å³æ¹æ³ï¼ 332 3331.使ç¨å¼ºå¶pushçæ¹æ³ï¼ 334 335 336$ git push -u origin master -f 337 338 339è¿æ ·ä¼ä½¿è¿ç¨ä¿®æ¹ä¸¢å¤±ï¼ä¸è¬æ¯ä¸å¯åçï¼å°¤å ¶æ¯å¤äººåä½å¼åçæ¶åã 340 3412.pushåå å°è¿ç¨repository... 342 </div> 343 </a> 344 <p class="post-meta"> 345 Posted by wblearn on January 1, 2017 346 </p> 347</div> 348<hr> 349 350<div class="post-preview"> 351 <a href="/2016/12/31/my2016/"> 352 <h2 class="post-title"> 353 æç2016 354 </h2> 355 356 <div class="post-content-preview"> 357 358 359åå¨åé¢ 360 361ä»å¤©æ¯2016å¹´çæåä¸å¤©äºï¼ä¹åæå¨å ¥è两个æçä¸äºæåä¸è¯´å°ï¼ 以åå³å®æ¯å¹´åä¸ç¯å¹´ç»æ»ç»ï¼é£ä¹ï¼ä»å¤©å°±æ¯å ç°æ¿è¯ºçæ¶åäºï¼æ¬ç¯å°±æ¯æç2016å¹´ç»æ»ç»ï¼ä¹æ¯ç¬¬ä¸ç¯å¹´ç»æ»ç»(ææ§å~ä¹å齿²¡æåæ»ç»çä¹ æ¯)ããã 362 363使¯å顾è¿ä¸å¹´ï¼æ²¡æä»¤å°æç¹å«èªè±ªçäºï¼åè对èªå·±ä¸æ»¡æçå°æ¹è¿æ¯æºå¤ãä½éé¿æ»ä¸è½è§£å³é®é¢ï¼é£ä¹å°±éä¸å¿æ¥å¥½å¥½å个æ»ç»ï¼ç»2017å¹´æ²ä¸ªè¦éå§~ 364 365çæ®µ1 366... 367 </div> 368 </a> 369 <p class="post-meta"> 370 Posted by wblearn on December 31, 2016 371 </p> 372</div> 373<hr> 374 375<div class="post-preview"> 376 <a href="/2016/12/23/one/"> 377 <h2 class="post-title"> 378 æçç¬ç«å客(第ä¸ç¯) 379 </h2> 380 381 <div class="post-content-preview"> 382 383åå¨åé¢ 384 ç°å¨æ¯åæ¨1ç¹å¤äºï¼æçgithubå客ç»äºè±äºä¸ä¸ªæä¸æå»ºå¥½äºã卿¤ä¹åï¼ä¸ç´ä½¿ç¨CSDNåç®ä¹¦ï¼ä½å¬å¾å¤äººè¯´ä½ä¸ºä¸åç¨åºåï¼æ¥æèªå·±ç个人å客æ¯å¾å¥½çäºæ (æä¸ªå±äºèªå·±çå°çªæ¾ç®åã项ç®èµæâ¦)ãä¹å¸¸å¸¸å¬äººè¯´ï¼ç¬¬ä¸æ¹çå客å±éæ§å¤ªå¤ï¼ 385 èèªå·±å¦æå䏿³ç®¡çèªå·±çç§æç½ç«ï¼githubæ¯ä¸ªå¾ä¸éçéæ©ãæè¿åæ¥äºå ´è¶£ï¼æå¹¸è±ä¸ä¸ªæä¸æèµ·æ¥ãæçgithubç¬ç«å客å¼å¼ å¦^-... 386 </div> 387 </a> 388 <p class="post-meta"> 389 Posted by wblearn on December 23, 2016 390 </p> 391</div> 392<hr> 393 394<div class="post-preview"> 395 <a href="/2016/12/15/mygit/"> 396 <h2 class="post-title"> 397 æçå客æå»ºä¹gitçä½¿ç¨ 398 </h2> 399 400 <div class="post-content-preview"> 401 402 403 404 åå¨åé¢ 405å天æçgithubå客æå»ºå¥½å¦ï¼å¹¶å¨æ¬å°åäºä¸ç¯æç« æçç¬ç«å客(第ä¸ç¯)å©ç¨gitå°å ¶pushå°githubä¸ï¼é£ä¹ï¼ä»å¤©å°±ç®åè®°å½ä¸gitç使ç¨ãæ´ä¸ªè¿ç¨æ¯å¨windows䏿ä½çã 406gitå°æ¬å°é¡¹ç®pushå°github 4071.Gitä¸è½½å°ågitå®ç½æ¯éè¦ç¿»å¢æè½ä¸è½½çï¼è¿éç»åºGit-2.9.2-64-bitä¸è½½å°å(æçæ¯64ä½ç³»ç»)ï¼ Git... 408 </div> 409 </a> 410 <p class="post-meta"> 411 Posted by wblearn on December 15, 2016 412 </p> 413</div> 414<hr> 415 416<div class="post-preview"> 417 <a href="/2016/11/27/UML/"> 418 <h2 class="post-title"> 419 UMLå¦ä¹ å½çº³æ´ç 420 </h2> 421 422 <div class="post-content-preview"> 423 424 åå¨åé¢ 425ä¹åå¨å¦æ ¡æ¯è¾ç³»ç»çå¦ä¹ è¿ç»ä¸å»ºæ¨¡è¯è¨UMLï¼ä½é¿æ¶é´æ²¡ä½¿ç¨éå¿äºè®¸å¤ï¼æè¿å å·¥ä½é
425è¦ï¼æä»¥å¯¹UMLéæ°å¦ä¹ 忢³çä¸ä¸ãUMLå¯å¸®å©æä»¬åè½¯ä»¶éæ±åæå软件设计çå·¥ä½ï¼ä¼è®©ä½ ç鿱忿è è½¯ä»¶è®¾è®¡å·¥ä½æ´ä¸ä¸å±æ¥¼ã 426UMLçåç±» 427主è¦å为两类ï¼ç»æåçUMLåè¡ä¸ºåçUML 428 429ä» ä½åèï¼ä¸ååºç¨ç¯å¢å¯è½ç¥æä¸å 430 431å ¶ä¸åºæ¬ä¸ä½¿ç¨åå¾å°ä¼ä½¿ç¨çæä»¬ä¸å¿ 深究ï¼ä¸»è¦ç... 432 </div> 433 </a> 434 <p class="post-meta"> 435 Posted by wblearn on November 27, 2016 436 </p> 437</div> 438<hr> 439 440 441<!-- Pager --> 442 443<ul class="pager"> 444 445 446 <li class="next"> 447 <a href="/page2">Older Posts →</a> 448 </li> 449 450</ul> 451 452 453 </div> 454 <!-- Sidebar Container --> 455 <div class=" 456 col-lg-3 col-lg-offset-0 457 col-md-3 col-md-offset-0 458 col-sm-12 459 col-xs-12 460 sidebar-container 461 "> 462 <!-- Featured Tags --> 463 464 <section> 465 <hr class="hidden-sm hidden-xs"> 466 <h5><a href="/tags/">FEATURED TAGS</a></h5> 467 <div class="tags"> 468 469 470 <a href="/tags/#redis" title="redis" rel="4"> 471 redis 472 </a> 473 474 475 476 <a href="/tags/#é群" title="é群" rel="3"> 477 é群 478 </a> 479 480 481 482 483 484 <a href="/tags/#ç¨åºå" title="ç¨åºå" rel="3"> 485 ç¨åºå 486 </a> 487 488 489 490 491 492 <a href="/tags/#é²è°" title="é²è°" rel="5"> 493 é²è° 494 </a> 495 496 497 498 499 500 501 502 503 504 <a href="/tags/#Web" title="Web" rel="3"> 505 Web 506 </a> 507 508 509 510 511 512 <a href="/tags/#git" title="git" rel="2"> 513 git 514 </a> 515 516 517 518 <a href="/tags/#å客" title="å客" rel="2"> 519 å客 520 </a> 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 </div> 538 </section> 539 540 541 <!-- Short About --> 542 <section class="visible-md visible-lg"> 543 <hr><h5><a href="/about/">ABOUT ME</a></h5> 544 <div class="short-about"> 545 546 <img src="/img/avatar-wb.jpg" /> 547 548 549 <p>ä¸è¦è®©ä»»ä½äºæ æä¸ºä½ ä¸å»å¦ä¹ ççç± @wblearn</p> 550 551 <!-- SNS Link --> 552 <ul class="list-inline"> 553 554 555 556 <li> 557 <a target="_blank" href="https://blog.csdn.net/wudalang_gd">
558 <span class="fa-stack fa-lg"> 559 <i class="fa fa-circle fa-stack-2x"></i> 560 <i class="fa fa-stack-1x fa-inverse">C</i> 561 </span> 562 </a> 563 </li> 564 565 566 <li> 567 <a target="_blank" href="http://weibo.com/wudalanggd"> 568 <span class="fa-stack fa-lg"> 569 <i class="fa fa-circle fa-stack-2x"></i> 570 <i class="fa fa-weibo fa-stack-1x fa-inverse"></i> 571 </span> 572 </a> 573 </li> 574 575 576 577 <li> 578 <a target="_blank" href="http://www.jianshu.com/u/48599dc7ef1b"> 579 <span class="fa-stack fa-lg"> 580 <i class="fa fa-circle fa-stack-2x"></i> 581 <i class="fa fa-stack-1x fa-inverse">ç®</i> 582 </span> 583 </a> 584 </li> 585 586 <!-- 587 588 <li> 589 <a target="_blank" href="https://github.com/wblearn"> 590 <span class="fa-stack fa-lg"> 591 <i class="fa fa-circle fa-stack-2x"></i> 592 <i class="fa fa-github fa-stack-1x fa-inverse"></i> 593 </span> 594 </a> 595 </li> 596 597 --> 598 599 600 <li> 601 <a target="_blank" href="http://www.wblearn.top/study-video"> 602 <span class="fa-stack fa-lg"> 603 <i class="fa fa-circle fa-stack-2x"></i> 604 <i class="fa fa-stack-1x fa-inverse">S</i> 605 </span> 606 </a> 607 </li> 608 609 </ul> 610 </div> 611 </section> 612 <!-- Friends Blog --> 613 614 <hr> 615 <h5>FRIENDS</h5> 616 <ul class="list-inline"> 617 618 <li><a href="http://weibo.com/wudalanggd">wblearnçå¾®å</a></li> 619 620 <li><a href="https://wblearn.github.io/study-video">study video</a></li> 621 622 <li><a href="http://www.yinwang.org/">å ç¥çå客</a></li> 623 624 <li><a href="https://www.ruanyifeng.com/blog/">é®ä¸å³°çç½ç»æ¥å¿</a></li> 625 626 <li><a href="http://blog.devtang.com/">åå·§çå客</a></li> 627 628 </ul> 629 630 </div> 631 632 </div> 633</div> 634 635 636 <!-- Footer --> 637<footer> 638 <div class="container"> 639 <div class="row"> 640 <div class="col-lg-8 col-lg-offset-2 col-md-10 col-md-offset-1"> 641 <ul class="list-inline text-center"> 642 643 644 645 <!-- add Weibo, Zhihu by wblearn, add target = "_blank" to <a> by wblearn --> 646 647 648 <li> 649 <a target="_blank" href="http://weibo.com/wudalanggd"> 650 <span class="fa-stack fa-lg"> 651 <i class="fa fa-circle fa-stack-2x"></i> 652 <i class="fa fa-weibo fa-stack-1x fa-inverse"></i> 653 </span> 654 </a> 655 </li> 656 657 658 659 660 661 662 <li> 663 <a target="_blank" href="http://www.jianshu.com/u/48599dc7ef1b"> 664 <span class="fa-stack fa-lg"> 665 <i class="fa fa-circle fa-stack-2x"></i> 666 <i class="fa fa-stack-1x fa-inverse">ç®</i> 667 </span> 668 </a> 669 </li> 670 671 672 673 <li> 674 <a target="_blank" href="https://github.com/wblearn">
675 <span class="fa-stack fa-lg"> 676 <i class="fa fa-circle fa-stack-2x"></i> 677 <i class="fa fa-github fa-stack-1x fa-inverse"></i> 678 </span> 679 </a> 680 </li> 681 682 683 </ul> 684 <p class="copyright text-muted"> 685 Copyright © Wblearn Blog 2024 686 <br> 687 powered by <a href="http://wblearn.github.io/">wblearn</a> 688 <!--<iframe 689 style="margin-left: 2px; margin-bottom:-5px;" 690 frameborder="0" scrolling="0" width="100px" height="20px" 691 src="https://ghbtns.com/github-btn.html?user=wblearn&repo=wblearn.github.io&type=star&count=true" > 692 </iframe>--> 693 </p> 694 </div> 695 </div> 696 </div> 697</footer> 698 699<!-- jQuery -->
700<script src="/js/jquery.min.js "></script>
700 701 702<!-- Bootstrap Core JavaScript -->
703<script src="/js/bootstrap.min.js "></script>
703 704 705<!-- Custom Theme JavaScript -->
706<script src="/js/wblearn-blog.min.js "></script>
706 707 708<!-- Service Worker --> 709
710<script type="text/javascript"> 711 if(navigator.serviceWorker){ 712 // For security reasons, a service worker can only control the pages that are in the same directory level or below it. That's why we put sw.js at ROOT level. 713 navigator.serviceWorker 714 .register('/sw.js') 715 .then((registration) => {console.log('Service Worker Registered. ', registration)}) 716 .catch((error) => {console.log('ServiceWorker registration failed: ', error)}) 717 } 718</script>
718 719 720 721 722<!-- async load function -->
723<script> 724 function async(u, c) { 725 var d = document, t = 'script', 726 o = d.createElement(t), 727 s = d.getElementsByTagName(t)[0]; 728 o.src = u; 729 if (c) { o.addEventListener('load', function (e) { c(null, e); }, false); } 730 s.parentNode.insertBefore(o, s); 731 } 732</script>
732 733 734<!-- 735 Because of the native support for backtick-style fenced code blocks 736 right within the Markdown is landed in Github Pages, 737 From V1.6, There is no need for Highlight.js, 738 so wblearnblog drops it officially. 739 740 - https://github.com/blog/2100-github-pages-now-faster-and-simpler-with-jekyll-3-0 741 - https://help.github.com/articles/creating-and-highlighting-code-blocks/ 742 - https://github.com/jneen/rouge/wiki/list-of-supported-languages-and-lexers 743--> 744<!-- 745
745<script> 746 async("http://cdn.bootcss.com/highlight.js/8.6/highlight.min.js", function(){ 747 hljs.initHighlightingOnLoad(); 748 }) 749 </script>
749 750 <link href="http://cdn.bootcss.com/highlight.js/8.6/styles/github.min.css" rel="stylesheet"> 751--> 752 753 754<!-- jquery.tagcloud.js -->
755<script> 756 // only load tagcloud.js in tag.html 757 if($('#tag_cloud').length !== 0){ 758 async('/js/jquery.tagcloud.js',function(){ 759 $.fn.tagcloud.defaults = { 760 //size: {start: 1, end: 1, unit: 'em'}, 761 color: {start: '#bbbbee', end: '#0085a1'}, 762 }; 763 $('#tag_cloud a').tagcloud(); 764 }) 765 } 766</script>
766 767 768<!--fastClick.js -->
769<script> 770 async("//cdnjs.cloudflare.com/ajax/libs/fastclick/1.0.6/fastclick.min.js", function(){ 771 var $nav = document.querySelector("nav"); 772 if($nav) FastClick.attach($nav); 773 }) 774</script>
774 775 776 777<!-- Google Analytics --> 778
779<script> 780 // dynamic User by wblearn 781 var _gaId = 'UA-49627206-1'; 782 var _gaDomain = 'wblearn.github.io'; 783 784 // Originial 785 (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ 786 (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), 787 m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) 788 })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); 789 790 ga('create', _gaId, _gaDomain); 791 ga('send', 'pageview'); 792</script>
792 793 794 795 796<!-- Baidu Tongji --> 797 798 799 800 801<!-- Side Catalog --> 802
803<script type="text/javascript"> 804 function generateCatalog(selector) { 805 806 // interop with multilangual 807 if ('' == 'true') { 808 _containerSelector = 'div.post-container.active' 809 } else { 810 _containerSelector = 'div.post-container' 811 } 812 813 // init 814 var P = $(_containerSelector), a, n, t, l, i, c; 815 a = P.find('h1,h2,h3,h4,h5,h6'); 816 817 // clean 818 $(selector).html('') 819 820 // appending 821 a.each(function () { 822 n = $(this).prop('tagName').toLowerCase(); 823 i = "#" + $(this).prop('id'); 824 t = $(this).text(); 825 c = $('<a href="' + i + '" rel="nofollow">' + t + '</a>'); 826 l = $('<li class="' + n + '_nav"></li>').append(c); 827 $(selector).append(l); 828 }); 829 return true; 830 } 831 832 generateCatalog(".catalog-body"); 833 834 // toggle side catalog 835 $(".catalog-toggle").click((function (e) { 836 e.preventDefault(); 837 $('.side-catalog').toggleClass("fold") 838 })) 839 840 /* 841 * Doc: https://github.com/davist11/jQuery-One-Page-Nav 842 * Fork by Hux to support padding 843 */ 844 async("/js/jquery.nav.js", function () { 845 $('.catalog-body').onePageNav({ 846 currentClass: "active", 847 changeHash: !1, 848 easing: "swing", 849 filter: "", 850 scrollSpeed: 700, 851 scrollOffset: 0, 852 scrollThreshold: .2, 853 begin: null, 854 end: null, 855 scrollChange: null, 856 padding: 80 857 }); 858 }); 859</script>
859 860 861 862<!-- Multi-Lingual --> 863 864 865<!-- Simple Jekyll Search -->
866<script> 867 // https://stackoverflow.com/questions/1912501/unescape-html-entities-in-javascript 868 function htmlDecode(input) { 869 var e = document.createElement('textarea'); 870 e.innerHTML = input; 871 // handle case of empty input 872 return e.childNodes.length === 0 ? "" : e.childNodes[0].nodeValue; 873 } 874 875 SimpleJekyllSearch({ 876 searchInput: document.getElementById('search-input'), 877 resultsContainer: document.getElementById('search-results'), 878 json: '/search.json', 879 searchResultTemplate: '<div class="post-preview item"><a href="{url}"><h2 class="post-title">{title}</h2><h3 class="post-subtitle">{subtitle}</h3><hr></a></div>', 880 noResultsText: 'No results', 881 limit: 50, 882 fuzzy: false, 883 // a hack to get escaped subtitle unescaped. for some reason, 884 // post.subtitle w/o escape filter nuke entire search. 885 templateMiddleware: function (prop, value, template) { 886 if (prop === 'subtitle' || prop === 'title') { 887 if (value.indexOf("code")) { 888 return htmlDecode(value); 889 } else { 890 return value; 891 } 892 } 893 } 894 }); 895 896 $(document).ready(function () { 897 var $searchPage = $('.search-page'); 898 var $searchOpen = $('.search-icon'); 899 var $searchClose = $('.search-icon-close'); 900 var $searchInput = $('#search-input'); 901 var $body = $('body'); 902 903 $searchOpen.on('click', function (e) { 904 e.preventDefault(); 905 $searchPage.toggleClass('search-active'); 906 var prevClasses = $body.attr('class') || ''; 907 setTimeout(function () { 908 $body.addClass('no-scroll'); 909 }, 400) 910 911 if ($searchPage.hasClass('search-active')) { 912 $searchClose.on('click', function (e) { 913 e.preventDefault(); 914 $searchPage.removeClass('search-active'); 915 $body.attr('class', prevClasses); // from closure 916 }); 917 $searchInput.focus(); 918 } 919 }); 920 }); 921</script>
921 922 923 924 925 926<!-- Image to hack wechat --> 927<img src="/img/icon_wechat.png" width="0" height="0" /> 928<!-- Migrate from head to bottom, no longer block render and still work --> 929 930</body> 931 932</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.