├── img ├── 知乎.png ├── 简书.png ├── 豆瓣.png ├── CSDN.png ├── V2EX.png ├── 博客园.png ├── 新浪微博.png ├── 虾米音乐.png ├── Plunker.png ├── avatar.jpg ├── avatar.png ├── 网易云音乐.png ├── SegmentFault.png ├── TiddlyWiki.png ├── avatar - 副本.png └── scrollbar_arrow.png ├── images ├── NodeJS.gif └── node1.png ├── apple-touch-icon.png ├── background ├── bg-1.jpg ├── bg-10.jpg ├── bg-2.jpg ├── bg-3.jpg ├── bg-4.jpg ├── bg-5.jpg ├── bg-6.jpg ├── bg-7.jpg ├── bg-8.jpg └── bg-9.jpg ├── js ├── toc.js ├── instagram.js ├── search.js ├── mobile.js ├── GithubRepoWidget.js ├── pc.js └── main.js ├── tags ├── 设计模式 │ └── index.html ├── github │ └── index.html ├── hexo │ └── index.html ├── Node-js │ └── index.html ├── markdown │ └── index.html ├── nginx │ └── index.html ├── 排序 │ └── index.html ├── 栈 │ └── index.html └── 查找 │ └── index.html └── archives └── 2016 └── 06 └── index.html /img/知乎.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jocelynthink/jocelynthink.github.io/master/img/知乎.png -------------------------------------------------------------------------------- /img/简书.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jocelynthink/jocelynthink.github.io/master/img/简书.png -------------------------------------------------------------------------------- /img/豆瓣.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jocelynthink/jocelynthink.github.io/master/img/豆瓣.png -------------------------------------------------------------------------------- /img/CSDN.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jocelynthink/jocelynthink.github.io/master/img/CSDN.png -------------------------------------------------------------------------------- /img/V2EX.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jocelynthink/jocelynthink.github.io/master/img/V2EX.png -------------------------------------------------------------------------------- /img/博客园.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jocelynthink/jocelynthink.github.io/master/img/博客园.png -------------------------------------------------------------------------------- /img/新浪微博.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jocelynthink/jocelynthink.github.io/master/img/新浪微博.png -------------------------------------------------------------------------------- /img/虾米音乐.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jocelynthink/jocelynthink.github.io/master/img/虾米音乐.png -------------------------------------------------------------------------------- /img/Plunker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jocelynthink/jocelynthink.github.io/master/img/Plunker.png -------------------------------------------------------------------------------- /img/avatar.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jocelynthink/jocelynthink.github.io/master/img/avatar.jpg -------------------------------------------------------------------------------- /img/avatar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jocelynthink/jocelynthink.github.io/master/img/avatar.png -------------------------------------------------------------------------------- /img/网易云音乐.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jocelynthink/jocelynthink.github.io/master/img/网易云音乐.png -------------------------------------------------------------------------------- /images/NodeJS.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jocelynthink/jocelynthink.github.io/master/images/NodeJS.gif -------------------------------------------------------------------------------- /images/node1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jocelynthink/jocelynthink.github.io/master/images/node1.png -------------------------------------------------------------------------------- /apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jocelynthink/jocelynthink.github.io/master/apple-touch-icon.png -------------------------------------------------------------------------------- /background/bg-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jocelynthink/jocelynthink.github.io/master/background/bg-1.jpg -------------------------------------------------------------------------------- /background/bg-10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jocelynthink/jocelynthink.github.io/master/background/bg-10.jpg -------------------------------------------------------------------------------- /background/bg-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jocelynthink/jocelynthink.github.io/master/background/bg-2.jpg -------------------------------------------------------------------------------- /background/bg-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jocelynthink/jocelynthink.github.io/master/background/bg-3.jpg -------------------------------------------------------------------------------- /background/bg-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jocelynthink/jocelynthink.github.io/master/background/bg-4.jpg -------------------------------------------------------------------------------- /background/bg-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jocelynthink/jocelynthink.github.io/master/background/bg-5.jpg -------------------------------------------------------------------------------- /background/bg-6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jocelynthink/jocelynthink.github.io/master/background/bg-6.jpg -------------------------------------------------------------------------------- /background/bg-7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jocelynthink/jocelynthink.github.io/master/background/bg-7.jpg -------------------------------------------------------------------------------- /background/bg-8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jocelynthink/jocelynthink.github.io/master/background/bg-8.jpg -------------------------------------------------------------------------------- /background/bg-9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jocelynthink/jocelynthink.github.io/master/background/bg-9.jpg -------------------------------------------------------------------------------- /img/SegmentFault.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jocelynthink/jocelynthink.github.io/master/img/SegmentFault.png -------------------------------------------------------------------------------- /img/TiddlyWiki.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jocelynthink/jocelynthink.github.io/master/img/TiddlyWiki.png -------------------------------------------------------------------------------- /img/avatar - 副本.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jocelynthink/jocelynthink.github.io/master/img/avatar - 副本.png -------------------------------------------------------------------------------- /img/scrollbar_arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jocelynthink/jocelynthink.github.io/master/img/scrollbar_arrow.png -------------------------------------------------------------------------------- /js/toc.js: -------------------------------------------------------------------------------- 1 | define(function (){ 2 | 3 | var toggleTocArea = function(){ 4 | var valueHide = yiliaConfig.toc[0]; 5 | var valueShow = yiliaConfig.toc[1]; 6 | if ($(".left-col").is(":hidden")) { 7 | $("#tocButton").attr("value", valueShow); 8 | } 9 | $("#tocButton").click(function() { 10 | if ($("#toc").is(":hidden")) { 11 | $("#tocButton").attr("value", valueHide); 12 | $("#toc").slideDown(320); 13 | $(".switch-btn, .switch-area").fadeOut(300); 14 | } 15 | else { 16 | $("#tocButton").attr("value", valueShow); 17 | $("#toc").slideUp(350); 18 | $(".switch-btn, .switch-area").fadeIn(500); 19 | } 20 | }) 21 | }() 22 | 23 | var HideTOCifNoHeader = function(){ 24 | if (!$(".toc").length) { 25 | $("#toc, #tocButton").hide(); 26 | $(".switch-btn, .switch-area").show(); 27 | } 28 | }() 29 | 30 | var $itemHasChild = $("#toc .toc-item:has(> .toc-child)"); 31 | var $titleHasChild = $itemHasChild.children(".toc-link"); 32 | $itemHasChild.prepend(""); 33 | 34 | var clickIcon = function(){ 35 | $("#toc .toc-item > i").click(function(){ 36 | $(this).siblings(".toc-child").slideToggle(100); 37 | $(this).toggleClass("hide"); 38 | $(this).siblings("i").toggleClass("hide"); 39 | }) 40 | }() 41 | 42 | var clickTitle = function(){ 43 | $titleHasChild.dblclick(function(){ 44 | $(this).siblings(".toc-child").hide(100); 45 | $(this).siblings("i").toggleClass("hide"); 46 | }) 47 | // After dblclick enent 48 | $titleHasChild.click(function(){ 49 | var $curentTocChild = $(this).siblings(".toc-child"); 50 | if ($curentTocChild.is(":hidden")) { 51 | $curentTocChild.show(100); 52 | $(this).siblings("i").toggleClass("hide"); 53 | } 54 | }) 55 | }() 56 | 57 | var clickTocTitle = function(){ 58 | var $iconToExpand = $(".toc-item > .fa-caret-right"); 59 | var $iconToFold = $(".toc-item > .fa-caret-down"); 60 | var $subToc = $titleHasChild.next(".toc-child"); 61 | $iconToExpand.addClass("hide"); 62 | 63 | var $tocTitle = $("#toc .toc-title"); 64 | if ($titleHasChild.length) { 65 | $tocTitle.addClass("clickable"); 66 | $tocTitle.click(function(){ 67 | if ($subToc.is(":hidden")) { 68 | $subToc.show(150); 69 | $iconToExpand.removeClass("hide"); 70 | $iconToFold.addClass("hide"); 71 | } else { 72 | $subToc.hide(100); 73 | $iconToExpand.addClass("hide"); 74 | $iconToFold.removeClass("hide"); 75 | } 76 | }) 77 | // TOC on mobile 78 | if ($(".left-col").is(":hidden")) { 79 | $("#container .toc-article .toc").css("padding-left", "1.4em"); 80 | $("#container .toc-article .toc-title").css("display", "initial"); 81 | } 82 | } 83 | }() 84 | 85 | var TocNoWarp = function(cond){ 86 | if (cond) { 87 | var $tocLink = $(".toc li a"); 88 | $tocLink.each(function(){ 89 | var title = $(this).find('.toc-text').text(); 90 | // Find elements with ellipsis 91 | if (this.offsetWidth < this.scrollWidth) { 92 | $(this).attr("title", title); 93 | if (!!$().tooltip) { $(this).tooltip() } 94 | } 95 | }) 96 | } 97 | } 98 | TocNoWarp(yiliaConfig.toc[2]); 99 | 100 | }) 101 | -------------------------------------------------------------------------------- /js/instagram.js: -------------------------------------------------------------------------------- 1 | var Instagram = (function(){ 2 | 3 | var _collection = []; 4 | 5 | var preLoad = function(data){ 6 | for(var em in data){ 7 | for(var i=0,len=data[em].srclist.length;i\ 22 | \ 23 | \ 24 | '; 25 | } 26 | $('

'+data[em].year+''+data[em].month+'月

\ 27 | \ 28 |
').appendTo($(".instagram")); 29 | } 30 | 31 | $(".instagram").lazyload(); 32 | changeSize(); 33 | 34 | setTimeout(function(){ 35 | preLoad(data); 36 | },3000); 37 | 38 | $("a[rel=example_group]").fancybox(); 39 | } 40 | 41 | var replacer = function(str){ 42 | if(str.indexOf("outbound-distilleryimage") >= 0 ){ 43 | var cdnNum = str.match(/outbound-distilleryimage([\s\S]*?)\//)[1]; 44 | var arr = str.split("/"); 45 | return "http://distilleryimage"+cdnNum+".ak.instagram.com/"+arr[arr.length-1]; 46 | }else{ 47 | var url = "http://photos-g.ak.instagram.com/hphotos-ak-xpf1/"; 48 | var arr = str.split("/"); 49 | return url+arr[arr.length-1]; 50 | } 51 | } 52 | 53 | var ctrler = function(data){ 54 | var imgObj = {}; 55 | for(var i=0,len=data.length;i 4 | // Shuhao Mao 5 | // Edited by MOxFIVE 6 | 7 | var searchFunc = function(path, search_id, content_id) { 8 | 'use strict'; 9 | $.ajax({ 10 | url: path, 11 | dataType: "xml", 12 | success: function( xmlResponse ) { 13 | // get the contents from search data 14 | var datas = $( "entry", xmlResponse ).map(function() { 15 | return { 16 | title: $( "title", this ).text(), 17 | content: $("content",this).text(), 18 | url: $( "url" , this).text() 19 | }; 20 | }).get(); 21 | var $input = document.getElementById(search_id); 22 | var $resultContent = document.getElementById(content_id); 23 | $input.addEventListener('input', function(){ 24 | var str='
    '; 25 | var keywords = this.value.trim().toLowerCase().split(/[\s\-]+/); 26 | $resultContent.innerHTML = ""; 27 | if (this.value.trim().length <= 0) { 28 | return; 29 | } 30 | // perform local searching 31 | datas.forEach(function(data) { 32 | var isMatch = true; 33 | var content_index = []; 34 | var data_title = data.title.trim().toLowerCase(); 35 | var data_content = data.content.trim().replace(/<[^>]+>/g,"").toLowerCase(); 36 | var data_url = data.url; 37 | var index_title = -1; 38 | var index_content = -1; 39 | var first_occur = -1; 40 | // only match artiles with not empty titles and contents 41 | if(data_title != '' && data_content != '') { 42 | keywords.forEach(function(keyword, i) { 43 | index_title = data_title.indexOf(keyword); 44 | index_content = data_content.indexOf(keyword); 45 | if( index_title < 0 && index_content < 0 ){ 46 | isMatch = false; 47 | } else { 48 | if (index_content < 0) { 49 | index_content = 0; 50 | } 51 | if (i == 0) { 52 | first_occur = index_content; 53 | } 54 | } 55 | }); 56 | } 57 | // show search results 58 | if (isMatch) { 59 | str += "
  • "+ "> " + data_title +""; 60 | var content = data.content.trim().replace(/<[^>]+>/g,""); 61 | if (first_occur >= 0) { 62 | // cut out characters 63 | var start = first_occur - 6; 64 | var end = first_occur + 6; 65 | if(start < 0){ 66 | start = 0; 67 | } 68 | if(start == 0){ 69 | end = 10; 70 | } 71 | if(end > content.length){ 72 | end = content.length; 73 | } 74 | var match_content = content.substr(start, end); 75 | // highlight all keywords 76 | keywords.forEach(function(keyword){ 77 | var regS = new RegExp(keyword, "gi"); 78 | match_content = match_content.replace(regS, ""+keyword+""); 79 | }); 80 | 81 | str += "

    " + match_content +"...

    " 82 | } 83 | } 84 | }); 85 | $resultContent.innerHTML = str; 86 | }); 87 | } 88 | }); 89 | } 90 | -------------------------------------------------------------------------------- /js/mobile.js: -------------------------------------------------------------------------------- 1 | define([], function(){ 2 | var _isShow = false; 3 | var $tag, $aboutme, $friends; 4 | 5 | var ctn,radio,scaleW,idx,basicwrap; 6 | 7 | //第一步 -- 初始化 8 | var reset = function() { 9 | //设定窗口比率 10 | radio = document.body.scrollHeight/document.body.scrollWidth; 11 | //设定一页的宽度 12 | scaleW = document.body.scrollWidth; 13 | //设定初始的索引值 14 | idx = 0; 15 | }; 16 | //第一步 -- 组合 17 | var combine = function(){ 18 | if($tag){ 19 | document.getElementById("js-mobile-tagcloud").innerHTML = $tag.innerHTML; 20 | } 21 | if($aboutme){ 22 | document.getElementById("js-mobile-aboutme").innerHTML = $aboutme.innerHTML; 23 | } 24 | if($friends){ 25 | document.getElementById("js-mobile-friends").innerHTML = $friends.innerHTML; 26 | } 27 | } 28 | //第三步 -- 根据数据渲染DOM 29 | var renderDOM = function(){ 30 | //生成节点 31 | var $viewer = document.createElement("div"); 32 | $viewer.id = "viewer"; 33 | $viewer.className = "hide"; 34 | $tag = document.getElementById("js-tagcloud"); 35 | $aboutme = document.getElementById("js-aboutme"); 36 | $friends = document.getElementById("js-friends"); 37 | function menuList(name) { 38 | return $("link.menu-list").attr(name); 39 | }; 40 | var tagStr = $tag?''+ menuList("tags") + '
    ':""; 41 | var friendsStr = $friends?''+ menuList("friends") + '
    ':""; 42 | var aboutmeStr = $aboutme?''+ menuList("about") + '
    ':""; 43 | 44 | $viewer.innerHTML = '
    \ 45 |
    \ 46 |
    '+aboutmeStr+friendsStr+tagStr+'
    \ 47 |
    \ 48 |
    \ 49 |
    '; 50 | 51 | //主要图片节点 52 | document.getElementsByTagName("body")[0].appendChild($viewer); 53 | var wrap = document.getElementById("viewer-box"); 54 | basicwrap = wrap; 55 | wrap.style.height = document.body.scrollHeight + 'px'; 56 | }; 57 | 58 | var show = function(target, idx){ 59 | document.getElementById("viewer").className = ""; 60 | setTimeout(function(){ 61 | basicwrap.className = "anm-swipe"; 62 | },0); 63 | _isShow = true; 64 | document.ontouchstart=function(e){ 65 | if(e.target.tagName != "A"){ 66 | return false; 67 | } 68 | } 69 | } 70 | 71 | var hide = function(){ 72 | document.getElementById("viewer-box").className = ""; 73 | _isShow = false; 74 | document.ontouchstart=function(){ 75 | return true; 76 | } 77 | } 78 | 79 | //第四步 -- 绑定 DOM 事件 80 | var bindDOM = function(){ 81 | var scaleW = scaleW; 82 | 83 | //滑动隐藏 84 | document.getElementById("viewer-box").addEventListener("webkitTransitionEnd", function(){ 85 | 86 | if(_isShow == false){ 87 | document.getElementById("viewer").className = "hide"; 88 | _isShow = true; 89 | }else{ 90 | } 91 | 92 | }, false); 93 | 94 | //点击展示和隐藏 95 | ctn.addEventListener("touchend", function(){ 96 | show(); 97 | }, false); 98 | 99 | var $right = document.getElementsByClassName("viewer-box-r")[0]; 100 | var touchStartTime; 101 | var touchEndTime; 102 | $right.addEventListener("touchstart", function(){ 103 | touchStartTime = + new Date(); 104 | }, false); 105 | $right.addEventListener("touchend", function(){ 106 | touchEndTime = + new Date(); 107 | if(touchEndTime - touchStartTime < 300){ 108 | hide(); 109 | } 110 | touchStartTime = 0; 111 | touchEndTime = 0; 112 | }, false); 113 | 114 | $(".slider-trigger").click(function(){ 115 | show(); 116 | }) 117 | $(".viewer-box-r").click(function(){ 118 | hide(); 119 | }) 120 | 121 | //滚动样式 122 | var $overlay = $("#mobile-nav .overlay"); 123 | var $header = $(".js-mobile-header"); 124 | window.onscroll = function(){ 125 | var scrollTop = document.documentElement.scrollTop + document.body.scrollTop; 126 | if(scrollTop >= 69){ 127 | $overlay.addClass("fixed"); 128 | }else{ 129 | $overlay.removeClass("fixed"); 130 | } 131 | if(scrollTop >= 160){ 132 | $header.removeClass("hide").addClass("fixed"); 133 | }else{ 134 | $header.addClass("hide").removeClass("fixed"); 135 | } 136 | }; 137 | $header[0].addEventListener("touchstart", function(){ 138 | $('html, body').animate({scrollTop:0}, 'slow'); 139 | }, false); 140 | }; 141 | 142 | return{ 143 | init: function(){ 144 | //构造函数需要的参数 145 | ctn = document.getElementsByClassName("slider-trigger")[0]; 146 | //构造四步 147 | reset(); 148 | renderDOM(); 149 | combine(); 150 | bindDOM(); 151 | resetTags(); 152 | } 153 | } 154 | }) -------------------------------------------------------------------------------- /js/GithubRepoWidget.js: -------------------------------------------------------------------------------- 1 | /*! 2 | GitHub-Repo-Widget.js - Not depend on jQuery or Other Framework. 3 | License: MIT 4 | */ 5 | (function() { 6 | var rendered = 'github-widget-rendered', 7 | cssStr = '.path-divider{margin:0 .25em}.github-box *{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;}.github-box{font-family:helvetica,arial,sans-serif;font-size:13px;line-height:18px;background:#fafafa;border:1px solid #ddd;color:#666;border-radius:3px}.github-box a{color:#4183c4;border:0;text-decoration:none}.github-box .github-box-title{position:relative;border-bottom:1px solid #ddd;border-radius:3px 3px 0 0;background:#fcfcfc;background:-moz-linear-gradient(#fcfcfc,#ebebeb);background:-webkit-linear-gradient(#fcfcfc,#ebebeb);}.github-box .github-box-title h3{word-wrap:break-word;font-family:helvetica,arial,sans-serif;font-weight:normal;font-size:16px;color:gray;margin:0;padding:10px 10px 10px 30px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAAXBAMAAAD0LQLXAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAASUExURQAAAL29vc3NzcLCwsjIyNbW1pvTNOEAAAABdFJOUwBA5thmAAAATElEQVQI12MIFoQAEQZFYwcGEGBkUDRUQLCcsYjRXhbqKkEGZQYGqJgSnKXCwGgsAGYpqyobG4WGhioyhBhDgClI3EQAqpaZwQBEAQARmA4G2o55nQAAAABJRU5ErkJggg==) 7px center no-repeat; width: auto;}.github-box .github-box-title h3 .repo{font-weight:bold}.github-box .github-box-title .github-stats{float:right;position:absolute;top:8px;right:10px;font-size:11px;font-weight:bold;line-height:21px;height:auto;min-height:21px}.github-box .github-box-title .github-stats a{display:inline-block;height:21px;color:#666;border:1px solid #ddd;border-radius:3px;padding:0 5px 0 18px;background: white url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAqBAMAAABB12bjAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAYUExURf///5mZmdbW1u/v7/r6+rGxscXFxaSkpHLccIMAAABsSURBVBjTY2CgBmBODTOAsFgSi9TFHMBMc1Fmk8BiEItJUMhQWFFQAZXJoC7q7FJYhNBmgG7YQAIWMYTvEExXIbh8oAJWQQe4IGsIlKmowAZVwaKowgxlMgkKmwtCjRAUYBSEqnVkYBAm39EALMwNXwql3eYAAAAASUVORK5CYII=) no-repeat}.github-box .github-box-title .github-stats .watchers{border-right:1px solid #ddd}.github-box .github-box-title .github-stats .forks{background-position:-4px -21px;padding-left:15px}.github-box .github-box-content{padding:10px;font-weight:300}.github-box .github-box-content p{margin:0}.github-box .github-box-content .link{font-weight:bold}.github-box .github-box-download{position:relative;border-top:1px solid #ddd;background:white;border-radius:0 0 3px 3px;padding:10px;height:auto;min-height:24px;}.github-box .github-box-download .updated{word-wrap:break-word;margin:0;font-size:11px;color:#666;line-height:24px;font-weight:300;width:auto}.github-box .github-box-download .updated strong{font-weight:bold;color:#000}.github-box .github-box-download .download{float:right;position:absolute;top:10px;right:10px;height:24px;line-height:24px;font-size:12px;color:#666;font-weight:bold;text-shadow:0 1px 0 rgba(255,255,255,0.9);padding:0 10px;border:1px solid #ddd;border-bottom-color:#bbb;border-radius:3px;background:#f5f5f5;background:-moz-linear-gradient(#f5f5f5,#e5e5e5);background:-webkit-linear-gradient(#f5f5f5,#e5e5e5);}.github-box .github-box-download .download:hover{color:#527894;border-color:#cfe3ed;border-bottom-color:#9fc7db;background:#f1f7fa;background:-moz-linear-gradient(#f1f7fa,#dbeaf1);background:-webkit-linear-gradient(#f1f7fa,#dbeaf1);}@media (max-width: 767px) {.github-box .github-box-title{height:auto;min-height:60px}.github-box .github-box-title h3 .repo{display:block}.github-box .github-box-title .github-stats a{display:block;clear:right;float:right;}.github-box .github-box-download{height:auto;min-height:46px;}.github-box .github-box-download .download{top:32px;}}'; 8 | function _getAttribute(node, name, defaultValue) { 9 | return node.getAttribute(name) || defaultValue; 10 | } 11 | function _querySelector(dom, sel) { 12 | return dom.querySelector(sel); 13 | } 14 | function _setHtml(dom, h) { 15 | dom.innerHTML = h; 16 | } 17 | function _appendCss() { 18 | var x = document.createElement('div'); 19 | x.innerHTML = 'x'; 20 | document.getElementsByTagName('head')[0].appendChild(x.lastChild); 21 | } 22 | function _renderGitHubWidget(repoEle, repo) { 23 | repo = JSON.parse(repo); 24 | _setHtml(_querySelector(repoEle, '.watchers'), repo.watchers); 25 | _setHtml(_querySelector(repoEle, '.forks'), repo.forks); 26 | _setHtml(_querySelector(repoEle, '.description span'), repo.description); 27 | _setHtml(_querySelector(repoEle, '.updated'), 'Latest commit to the ' + repo.default_branch+ ' branch on ' + repo.pushed_at.substring(0, 10) + ''); 28 | 29 | if(repo.homepage !== null) { 30 | _setHtml(_querySelector(repoEle, '.link'), ''+ repo.homepage +''); 31 | } 32 | repoEle.setAttribute(rendered, '1'); 33 | } 34 | function _ajaxReq(repoEle, repo) { 35 | var xmlhttp; 36 | if (window.XMLHttpRequest) { 37 | //code for IE7,firefox chrome and above 38 | xmlhttp = new XMLHttpRequest(); 39 | } else { 40 | //code for Internet Explorer 41 | xmlhttp = new ActiveXObject('Microsoft.XMLHTTP'); 42 | } 43 | xmlhttp.onreadystatechange = function() { 44 | if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { 45 | _renderGitHubWidget(repoEle, xmlhttp.responseText); 46 | } else { 47 | } 48 | }; 49 | xmlhttp.open('GET', 'https://api.github.com/repos/' + repo, true); 50 | xmlhttp.send(); 51 | } 52 | function _init() { 53 | var github_eles = document.querySelectorAll('.github-widget'), repoEle, repo, vendorName, repoName, vendorUrl, repoUrl, widget; 54 | for (var i = 0; i < github_eles.length; i++) { 55 | repoEle = github_eles[i]; 56 | if (! _getAttribute(repoEle, rendered, '')) { 57 | repo = _getAttribute(repoEle, 'data-repo', ''), 58 | vendorName = repo.split('/')[0], 59 | repoName = repo.split('/')[1], 60 | vendorUrl = 'http://github.com/' + vendorName, 61 | repoUrl = 'http://github.com/' + vendorName + '/' + repoName; 62 | 63 | widget = '
    '+ 64 | '
    '+ 65 | '

    '+ 66 | '' + vendorName + ''+ 67 | '/'+ 68 | '' + repoName + ''+ 69 | '

    '+ 70 | '
    '+ 71 | 'Star '+ 72 | '?'+ 73 | ' Fork '+ 74 | '?'+ 75 | '
    '+ 76 | '
    '+ 77 | '
    '+ 78 | '

    Read More

    '+ 79 | ''+ 80 | '
    '+ 81 | '
    '+ 82 | '
    '+ 83 | 'Download as zip'+ 84 | '
    '+ 85 | '
    '; 86 | _setHtml(repoEle, widget); 87 | _ajaxReq(repoEle, repo); 88 | } 89 | } 90 | } 91 | _appendCss(); 92 | _init(); 93 | window.GithubRepoWidget = { 94 | init: _init 95 | }; 96 | })(); -------------------------------------------------------------------------------- /js/pc.js: -------------------------------------------------------------------------------- 1 | define([], function(){ 2 | 3 | var Tips = (function(){ 4 | 5 | var $tipBox = $(".tips-box"); 6 | 7 | return { 8 | show: function(){ 9 | $tipBox.removeClass("hide"); 10 | }, 11 | hide: function(){ 12 | $tipBox.addClass("hide"); 13 | }, 14 | init: function(){ 15 | 16 | } 17 | } 18 | })(); 19 | 20 | var slide = function(idx){ 21 | // 修复IE10+切换无效的bug 22 | var $wrap = $(".switch-wrap"), 23 | transform = [ 24 | '-webkit-transform: translate(-' + idx * 100 + '%, 0);', 25 | '-moz-transform: translate(-' + idx * 100 + '%, 0);', 26 | '-o-transform: translate(-' + idx * 100 + '%, 0);', 27 | '-ms-transform: translate(-' + idx * 100 + '%, 0);', 28 | 'transform: translate(-' + idx * 100 + '%, 0);' 29 | ]; 30 | //$wrap.css({ 31 | // "transform": "translate(-"+idx*100+"%, 0 )" 32 | //}); 33 | $wrap[0].style.cssText = transform.join(''); 34 | $(".icon-wrap").addClass("hide"); 35 | $(".icon-wrap").eq(idx).removeClass("hide"); 36 | } 37 | 38 | var bind = function(){ 39 | var switchBtn = $("#myonoffswitch"); 40 | var tagcloud = $(".second-part"); 41 | var navDiv = $(".first-part"); 42 | switchBtn.click(function(){ 43 | if(switchBtn.hasClass("clicked")){ 44 | switchBtn.removeClass("clicked"); 45 | tagcloud.removeClass("turn-left"); 46 | navDiv.removeClass("turn-left"); 47 | }else{ 48 | switchBtn.addClass("clicked"); 49 | tagcloud.addClass("turn-left"); 50 | navDiv.addClass("turn-left"); 51 | resetTags(); 52 | } 53 | }); 54 | 55 | var timeout; 56 | var isEnterBtn = false; 57 | var isEnterTips = false; 58 | 59 | $(".icon").bind("mouseenter", function(){ 60 | isEnterBtn = true; 61 | Tips.show(); 62 | }).bind("mouseleave", function(){ 63 | isEnterBtn = false; 64 | setTimeout(function(){ 65 | if(!isEnterTips){ 66 | Tips.hide(); 67 | } 68 | }, 100); 69 | }); 70 | 71 | $(".tips-box").bind("mouseenter", function(){ 72 | isEnterTips = true; 73 | Tips.show(); 74 | }).bind("mouseleave", function(){ 75 | isEnterTips = false; 76 | setTimeout(function(){ 77 | if(!isEnterBtn){ 78 | Tips.hide(); 79 | } 80 | }, 100); 81 | }); 82 | 83 | $(".tips-inner li").bind("click", function(){ 84 | var idx = $(this).index(); 85 | slide(idx); 86 | Tips.hide(); 87 | }); 88 | } 89 | 90 | var miniArchives = function(){ 91 | if(yiliaConfig.isPost) { 92 | $(".post-list").addClass("toc-article"); 93 | $(".post-list-item a").attr("target","_blank"); 94 | $("#post-nav-button > a:nth-child(2)").click(function() { 95 | $("#post-nav-button .fa-bars,#post-nav-button .fa-times").toggle(); 96 | $(".post-list").toggle(300); 97 | if ($(".toc").length > 0) { 98 | $("#toc, #tocButton").toggle(200, function() { 99 | if ($(".switch-area").is(":visible")) { 100 | $("#toc, .switch-btn, .switch-area").toggle(); 101 | $("#tocButton").attr("value", yiliaConfig.toc[0]); 102 | } 103 | }); 104 | } 105 | else { 106 | $(".switch-btn, .switch-area").fadeToggle(300); 107 | } 108 | }); 109 | } 110 | }() 111 | 112 | if (yiliaConfig.jquery_ui[0]) { 113 | var tooltip = function(){ 114 | require([yiliaConfig.jquery_ui[1]], function(){ 115 | var loadCSS = function (url, num) { 116 | var link = document.createElement("link"); 117 | link.rel = "stylesheet"; 118 | link.href = url; 119 | var head = document.querySelector("head"); 120 | head.insertBefore(link, head.childNodes[num]); 121 | } 122 | loadCSS(yiliaConfig.jquery_ui[2], 25); 123 | if (!$().tooltip) return; 124 | if (navigator.userAgent.match(/(iPhone|iPad|Android|ios|PlayBook|Touch)/i)) return; 125 | $("[title]").tooltip({ 126 | show: { 127 | effect: 'blind', 128 | delay: 250, 129 | duration: 55, 130 | } 131 | }) 132 | $("#scroll").tooltip({ 133 | show: { 134 | effect: 'clip', 135 | delay: 600, 136 | duration: 50, 137 | } 138 | }) 139 | $("#tocButton, #comments").tooltip({ 140 | show: { 141 | delay: 1200, 142 | } 143 | }) 144 | $(".ds-replybox form").off("tooltip") 145 | $("#post-nav-button").tooltip({ 146 | show: { 147 | effect: 'clip', 148 | delay: 280, 149 | duration: 65, 150 | } 151 | }) 152 | $("#post-nav-button > a:nth-child(2)").tooltip({ 153 | show: { 154 | delay: 1500, 155 | } 156 | }) 157 | $(".social").tooltip({ 158 | show: { 159 | effect: 'scale', 160 | delay: 350, 161 | duration: 70, 162 | } 163 | }) 164 | }) 165 | }() 166 | } 167 | 168 | if (yiliaConfig.search) { 169 | var search = function(){ 170 | require([yiliaConfig.rootUrl + 'js/search.js'], function(){ 171 | var inputArea = document.querySelector("#local-search-input"); 172 | var $HideWhenSearch = $("#toc, #tocButton, .post-list, #post-nav-button a:nth-child(2)"); 173 | var $resetButton = $("#search-form .fa-times"); 174 | var $resultArea = $("#local-search-result"); 175 | 176 | var getSearchFile = function(){ 177 | var search_path = "search.xml"; 178 | var path = yiliaConfig.rootUrl + search_path; 179 | searchFunc(path, 'local-search-input', 'local-search-result'); 180 | } 181 | 182 | var getFileOnload = inputArea.getAttribute('searchonload'); 183 | if (yiliaConfig.search && getFileOnload === "true") { 184 | getSearchFile(); 185 | } else { 186 | inputArea.onfocus = function(){ getSearchFile() } 187 | } 188 | 189 | var HideTocArea = function(){ 190 | $HideWhenSearch.css("visibility","hidden"); 191 | $resetButton.show(); 192 | } 193 | inputArea.oninput = function(){ HideTocArea() } 194 | inputArea.onkeydown = function(){ if(event.keyCode==13) return false} 195 | 196 | resetSearch = function(){ 197 | $HideWhenSearch.css("visibility","initial"); 198 | $resultArea.html(""); 199 | document.querySelector("#search-form").reset(); 200 | $resetButton.hide(); 201 | $(".no-result").hide(); 202 | } 203 | 204 | $resultArea.bind("DOMNodeRemoved DOMNodeInserted", function(e) { 205 | if (!$(e.target).text()) { 206 | $(".no-result").show(200); 207 | } else { 208 | $(".no-result").hide(); 209 | } 210 | }) 211 | }) 212 | }() 213 | } 214 | 215 | return { 216 | init: function(){ 217 | resetTags(); 218 | bind(); 219 | Tips.init(); 220 | } 221 | } 222 | }); 223 | -------------------------------------------------------------------------------- /js/main.js: -------------------------------------------------------------------------------- 1 | require([], function (){ 2 | 3 | var isMobileInit = false; 4 | var loadMobile = function(){ 5 | require([yiliaConfig.rootUrl + 'js/mobile.js'], function(mobile){ 6 | mobile.init(); 7 | isMobileInit = true; 8 | }); 9 | } 10 | var isPCInit = false; 11 | var loadPC = function(){ 12 | require([yiliaConfig.rootUrl + 'js/pc.js'], function(pc){ 13 | pc.init(); 14 | isPCInit = true; 15 | }); 16 | } 17 | 18 | var browser={ 19 | versions:function(){ 20 | var u = window.navigator.userAgent; 21 | return { 22 | trident: u.indexOf('Trident') > -1, //IE内核 23 | presto: u.indexOf('Presto') > -1, //opera内核 24 | webKit: u.indexOf('AppleWebKit') > -1, //苹果、谷歌内核 25 | gecko: u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1, //火狐内核 26 | mobile: !!u.match(/AppleWebKit.*Mobile.*/), //是否为移动终端 27 | ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), //ios终端 28 | android: u.indexOf('Android') > -1 || u.indexOf('Linux') > -1, //android终端或者uc浏览器 29 | iPhone: u.indexOf('iPhone') > -1 || u.indexOf('Mac') > -1, //是否为iPhone或者安卓QQ浏览器 30 | iPad: u.indexOf('iPad') > -1, //是否为iPad 31 | webApp: u.indexOf('Safari') == -1 ,//是否为web应用程序,没有头部与底部 32 | weixin: u.indexOf('MicroMessenger') == -1 //是否为微信浏览器 33 | }; 34 | }() 35 | } 36 | 37 | $(window).bind("resize", function(){ 38 | if(isMobileInit && isPCInit){ 39 | $(window).unbind("resize"); 40 | return; 41 | } 42 | var w = $(window).width(); 43 | if(w >= 700){ 44 | loadPC(); 45 | }else{ 46 | loadMobile(); 47 | } 48 | }); 49 | 50 | if(browser.versions.mobile === true || $(window).width() < 800){ 51 | loadMobile(); 52 | }else{ 53 | loadPC(); 54 | } 55 | 56 | resetTags = function(){ 57 | var tags = $(".tagcloud a"); 58 | for(var i = 0; i < tags.length; i++){ 59 | var num = Math.floor(Math.random()*7); 60 | tags.eq(i).addClass("color" + num); 61 | }; 62 | $(".article-category a:nth-child(-n+2)").attr("class", "color0"); 63 | } 64 | 65 | //是否使用fancybox 66 | if(yiliaConfig.fancybox === true){ 67 | require([yiliaConfig.fancybox_js], function(pc){ 68 | var isFancy = $(".isFancy"); 69 | if(isFancy.length != 0){ 70 | var imgArr = $(".article-inner img"); 71 | for(var i=0,len=imgArr.length;i"+title+""); 80 | } 81 | $(".article-inner .fancy-ctn").fancybox(); 82 | } 83 | }); 84 | 85 | } 86 | //是否开启动画 87 | if(yiliaConfig.animate === true){ 88 | 89 | if(yiliaConfig.isHome === true) { 90 | // 滚动条监听使用scrollreveal.js 91 | // https://github.com/jlmakes/scrollreveal.js 92 | require([yiliaConfig.scrollreveal], function (ScrollReveal) { 93 | // 更多animation: 94 | // http://daneden.github.io/animate.css/ 95 | var animationNames = [ 96 | "pulse", "fadeIn","fadeInRight", "flipInX", "lightSpeedIn","rotateInUpLeft", "slideInUp","zoomIn", 97 | ], 98 | len = animationNames.length, 99 | randomAnimationName = animationNames[Math.ceil(Math.random() * len) - 1]; 100 | 101 | // ie9 不支持css3 keyframe动画, safari不支持requestAnimationFrame, 不使用随机动画,切回原来的动画 102 | if (!window.requestAnimationFrame) { 103 | $('.body-wrap > article').css({opacity: 1}); 104 | 105 | if (navigator.userAgent.match(/Safari/i)) { 106 | function showArticle(){ 107 | $(".article").each(function(){ 108 | if( $(this).offset().top <= $(window).scrollTop()+$(window).height() && !($(this).hasClass('show')) ) { 109 | $(this).removeClass("hidden").addClass("show"); 110 | $(this).addClass("is-hiddened"); 111 | }else{ 112 | if(!$(this).hasClass("is-hiddened")){ 113 | $(this).addClass("hidden"); 114 | } 115 | } 116 | }); 117 | } 118 | $(window).on('scroll', function(){ 119 | showArticle(); 120 | }); 121 | showArticle(); 122 | } 123 | return; 124 | } 125 | var animateScope = ".body-wrap > article"; 126 | var $firstArticle = $(".body-wrap > article:first-child"); 127 | if ($firstArticle.height() > $(window).height()) { 128 | var animateScope = ".body-wrap > article:not(:first-child)"; 129 | $firstArticle.css({opacity: 1}); 130 | } 131 | // document.body有些浏览器不支持监听scroll,所以使用默认的document.documentElement 132 | ScrollReveal({ 133 | duration: 0, 134 | afterReveal: function (domEl) { 135 | // safari不支持requestAnimationFrame不支持document.documentElement的onscroll所以这里不会执行 136 | // 初始状态设为opacity: 0, 动画效果更平滑一些(由于脚本加载是异步,页面元素渲染后在执行动画,感觉像是延时) 137 | $(domEl).addClass('animated ' + randomAnimationName).css({opacity: 1}); 138 | } 139 | }).reveal(animateScope); 140 | 141 | }); 142 | } else { 143 | $('.body-wrap > article').css({opacity: 1}); 144 | } 145 | 146 | } 147 | 148 | // TOC 149 | if (yiliaConfig.toc) { 150 | require(['toc'], function(){ }) 151 | } 152 | 153 | //是否新窗口打开链接 154 | if(yiliaConfig.open_in_new == true){ 155 | $(".article a[href]").attr("target", "_blank") 156 | } 157 | $(".archive-article-title, .github-widget a").attr("target", "_blank"); 158 | 159 | //随机颜色 160 | var colorList = ["#6da336", "#ff945c", "#66CC66", "#99CC99", "#CC6666", "#76becc", "#c99979", "#918597", "#4d4d4d"]; 161 | var id = Math.ceil(Math.random()*(colorList.length-1)); 162 | //PC 163 | $("#container .left-col .overlay").css({"background-color": colorList[id],"opacity": .3}); 164 | //移动端 165 | $("#container #mobile-nav .overlay").css({"background-color": colorList[id],"opacity": .7}); 166 | 167 | $("table").wrap("
    "); 168 | 169 | // Hide Comment Button 170 | $(document).ready(function() { 171 | if ($("#comments").length < 1) { 172 | $("#scroll > a:nth-child(2)").hide(); 173 | }; 174 | }) 175 | 176 | // Hide Labels 177 | if(yiliaConfig.isArchive || yiliaConfig.isTag || yiliaConfig.isCategory) { 178 | $(document).ready(function() { 179 | $("#footer").after(""); 180 | $(".hide-labels").click(function() { 181 | $(".article-info").toggle(200); 182 | }); 183 | }); 184 | } 185 | 186 | // Task lists in markdown 187 | $('ul > li').each(function() { 188 | var taskList = { 189 | field: this.textContent.substring(0, 2), 190 | check: function(str) { 191 | var re = new RegExp(str); 192 | return this.field.match(re); 193 | } 194 | } 195 | 196 | var string = ["[ ]", ["[x]", "checked"]]; 197 | var checked = taskList.check(string[1][0]); 198 | var unchecked = taskList.check(string[0]); 199 | 200 | var $current = $(this); 201 | function update(str, check) { 202 | var click = ["disabled", ""]; 203 | $current.html($current.html().replace( 204 | str, "") 205 | ) 206 | } 207 | 208 | if (checked || unchecked) { 209 | this.classList.add("task-list"); 210 | if (checked) { 211 | update(string[1][0], string[1][1]); 212 | this.classList.add("check"); 213 | } else { 214 | update(string[0], ""); 215 | } 216 | } 217 | }) 218 | }); -------------------------------------------------------------------------------- /tags/设计模式/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | Tag: 设计模式 | make everyday conut--Jocelyn Blag 59 | 60 | 61 | 62 | 63 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 |
    94 |
    95 |
    96 |
    97 | 219 |
    220 |
    221 |
    222 | 271 |
    272 | 273 | 274 | 275 | 276 | 277 | 278 |
    279 |
    280 | 2015 281 |
    282 |
    283 | 284 | 316 | 317 | 318 |
    319 | 320 | 321 | 322 | 323 |
    324 |
    325 |
    326 | 335 | 336 |
    337 | 338 | 343 | 344 | 345 | , 346 | 347 | 348 | 353 | 354 |
    355 | 356 |
    357 |
    358 |
    359 | 360 | 361 | 362 | 377 | 378 | 379 | 380 | 381 |
    382 | 383 | 384 | 385 |
    386 | 388 |
    389 | 390 | -------------------------------------------------------------------------------- /tags/github/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | Tag: github | make everyday conut--Jocelyn Blag 59 | 60 | 61 | 62 | 63 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 |
    94 |
    95 |
    96 |
    97 | 219 |
    220 |
    221 |
    222 | 271 |
    272 | 273 | 274 | 275 | 276 | 277 | 278 |
    279 |
    280 | 2015 281 |
    282 |
    283 | 284 |
    285 |
    286 |
    287 | 292 | 293 | 294 |

    295 | github 296 |

    297 | 298 | 299 | 312 |
    313 |
    314 |
    315 |
    316 | 317 | 318 |
    319 | 320 | 321 | 322 | 323 |
    324 |
    325 |
    326 | 335 | 336 |
    337 | 338 | 343 | 344 | 345 | , 346 | 347 | 348 | 353 | 354 |
    355 | 356 |
    357 |
    358 |
    359 | 360 | 361 | 362 | 377 | 378 | 379 | 380 | 381 |
    382 | 383 | 384 | 385 |
    386 | 388 |
    389 | 390 | -------------------------------------------------------------------------------- /tags/hexo/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | Tag: hexo | make everyday conut--Jocelyn Blag 59 | 60 | 61 | 62 | 63 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 |
    94 |
    95 |
    96 |
    97 | 219 |
    220 |
    221 |
    222 | 271 |
    272 | 273 | 274 | 275 | 276 | 277 | 278 |
    279 |
    280 | 2015 281 |
    282 |
    283 | 284 |
    285 |
    286 |
    287 | 292 | 293 | 294 |

    295 | hexo 296 |

    297 | 298 | 299 | 312 |
    313 |
    314 |
    315 |
    316 | 317 | 318 |
    319 | 320 | 321 | 322 | 323 |
    324 |
    325 |
    326 | 335 | 336 |
    337 | 338 | 343 | 344 | 345 | , 346 | 347 | 348 | 353 | 354 |
    355 | 356 |
    357 |
    358 |
    359 | 360 | 361 | 362 | 377 | 378 | 379 | 380 | 381 |
    382 | 383 | 384 | 385 |
    386 | 388 |
    389 | 390 | -------------------------------------------------------------------------------- /tags/Node-js/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | Tag: Node.js | make everyday conut--Jocelyn Blag 59 | 60 | 61 | 62 | 63 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 |
    94 |
    95 |
    96 |
    97 | 219 |
    220 |
    221 |
    222 | 271 |
    272 | 273 | 274 | 275 | 276 | 277 | 278 |
    279 |
    280 | 2016 281 |
    282 |
    283 | 284 |
    285 |
    286 |
    287 | 292 | 293 | 294 |

    295 | nodejs 296 |

    297 | 298 | 299 | 312 |
    313 |
    314 |
    315 |
    316 | 317 | 318 |
    319 | 320 | 321 | 322 | 323 |
    324 |
    325 |
    326 | 335 | 336 |
    337 | 338 | 343 | 344 | 345 | , 346 | 347 | 348 | 353 | 354 |
    355 | 356 |
    357 |
    358 |
    359 | 360 | 361 | 362 | 377 | 378 | 379 | 380 | 381 |
    382 | 383 | 384 | 385 |
    386 | 388 |
    389 | 390 | -------------------------------------------------------------------------------- /archives/2016/06/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | Archives: 2016/6 | make everyday conut--Jocelyn Blag 59 | 60 | 61 | 62 | 63 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 |
    94 |
    95 |
    96 |
    97 | 219 |
    220 |
    221 |
    222 | 271 |
    272 | 273 | 274 | 275 | 276 | 277 | 278 |
    279 |
    280 | 2016 281 |
    282 |
    283 | 284 |
    285 |
    286 |
    287 | 292 | 293 | 294 |

    295 | nodejs 296 |

    297 | 298 | 299 | 312 |
    313 |
    314 |
    315 |
    316 | 317 | 318 |
    319 | 320 | 321 | 322 | 323 |
    324 |
    325 |
    326 | 335 | 336 |
    337 | 338 | 343 | 344 | 345 | , 346 | 347 | 348 | 353 | 354 |
    355 | 356 |
    357 |
    358 |
    359 | 360 | 361 | 362 | 377 | 378 | 379 | 380 | 381 |
    382 | 383 | 384 | 385 |
    386 | 388 |
    389 | 390 | -------------------------------------------------------------------------------- /tags/markdown/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | Tag: markdown | make everyday conut--Jocelyn Blag 59 | 60 | 61 | 62 | 63 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 |
    94 |
    95 |
    96 |
    97 | 219 |
    220 |
    221 |
    222 | 271 |
    272 | 273 | 274 | 275 | 276 | 277 | 278 |
    279 |
    280 | 2015 281 |
    282 |
    283 | 284 | 316 | 317 | 318 |
    319 | 320 | 321 | 322 | 323 |
    324 |
    325 |
    326 | 335 | 336 |
    337 | 338 | 343 | 344 | 345 | , 346 | 347 | 348 | 353 | 354 |
    355 | 356 |
    357 |
    358 |
    359 | 360 | 361 | 362 | 377 | 378 | 379 | 380 | 381 |
    382 | 383 | 384 | 385 |
    386 | 388 |
    389 | 390 | -------------------------------------------------------------------------------- /tags/nginx/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | Tag: nginx | make everyday conut--Jocelyn Blag 59 | 60 | 61 | 62 | 63 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 |
    94 |
    95 |
    96 |
    97 | 219 |
    220 |
    221 |
    222 | 271 |
    272 | 273 | 274 | 275 | 276 | 277 | 278 |
    279 |
    280 | 2016 281 |
    282 |
    283 | 284 | 316 | 317 | 318 |
    319 | 320 | 321 | 322 | 323 |
    324 |
    325 |
    326 | 335 | 336 |
    337 | 338 | 343 | 344 | 345 | , 346 | 347 | 348 | 353 | 354 |
    355 | 356 |
    357 |
    358 |
    359 | 360 | 361 | 362 | 377 | 378 | 379 | 380 | 381 |
    382 | 383 | 384 | 385 |
    386 | 388 |
    389 | 390 | -------------------------------------------------------------------------------- /tags/排序/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | Tag: 排序 | make everyday conut--Jocelyn Blag 59 | 60 | 61 | 62 | 63 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 |
    94 |
    95 |
    96 |
    97 | 219 |
    220 |
    221 |
    222 | 271 |
    272 | 273 | 274 | 275 | 276 | 277 | 278 |
    279 |
    280 | 2015 281 |
    282 |
    283 | 284 | 316 | 317 | 318 |
    319 | 320 | 321 | 322 | 323 |
    324 |
    325 |
    326 | 335 | 336 |
    337 | 338 | 343 | 344 | 345 | , 346 | 347 | 348 | 353 | 354 |
    355 | 356 |
    357 |
    358 |
    359 | 360 | 361 | 362 | 377 | 378 | 379 | 380 | 381 |
    382 | 383 | 384 | 385 |
    386 | 388 |
    389 | 390 | -------------------------------------------------------------------------------- /tags/栈/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | Tag: 栈 | make everyday conut--Jocelyn Blag 59 | 60 | 61 | 62 | 63 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 |
    94 |
    95 |
    96 |
    97 | 219 |
    220 |
    221 |
    222 | 271 |
    272 | 273 | 274 | 275 | 276 | 277 | 278 |
    279 |
    280 | 2015 281 |
    282 |
    283 | 284 | 316 | 317 | 318 |
    319 | 320 | 321 | 322 | 323 |
    324 |
    325 |
    326 | 335 | 336 |
    337 | 338 | 343 | 344 | 345 | , 346 | 347 | 348 | 353 | 354 |
    355 | 356 |
    357 |
    358 |
    359 | 360 | 361 | 362 | 377 | 378 | 379 | 380 | 381 |
    382 | 383 | 384 | 385 |
    386 | 388 |
    389 | 390 | -------------------------------------------------------------------------------- /tags/查找/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | Tag: 查找 | make everyday conut--Jocelyn Blag 59 | 60 | 61 | 62 | 63 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 |
    94 |
    95 |
    96 |
    97 | 219 |
    220 |
    221 |
    222 | 271 |
    272 | 273 | 274 | 275 | 276 | 277 | 278 |
    279 |
    280 | 2015 281 |
    282 |
    283 | 284 | 316 | 317 | 318 |
    319 | 320 | 321 | 322 | 323 |
    324 |
    325 |
    326 | 335 | 336 |
    337 | 338 | 343 | 344 | 345 | , 346 | 347 | 348 | 353 | 354 |
    355 | 356 |
    357 |
    358 |
    359 | 360 | 361 | 362 | 377 | 378 | 379 | 380 | 381 |
    382 | 383 | 384 | 385 |
    386 | 388 |
    389 | 390 | --------------------------------------------------------------------------------