├── screenshot.png ├── raw_html.php ├── css ├── zoom.css ├── base.css ├── waves.css ├── duoshuo.css └── theme.css ├── page.php ├── .gitignore ├── archive.php ├── README.md ├── post.php ├── index.php ├── side_menu.php ├── 404.php ├── js ├── skin.js ├── zoom.min.js ├── waves.min.js ├── jquery.githubRepoWidget.min.js ├── waves.min.js.map └── sscr.js ├── archives.php ├── header.php ├── comments.php ├── footer.php ├── head.php ├── functions.php └── headfix.php /screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ccjuse/Mirages-For-Typecho/HEAD/screenshot.png -------------------------------------------------------------------------------- /raw_html.php: -------------------------------------------------------------------------------- 1 | 8 | row['text']; 13 | if(startsWith($html, "")){ 14 | $html = substr($html, 15); 15 | } 16 | echo $html; -------------------------------------------------------------------------------- /css/zoom.css: -------------------------------------------------------------------------------- 1 | img[data-action="zoom"] { 2 | cursor: pointer; 3 | cursor: -webkit-zoom-in; 4 | cursor: -moz-zoom-in; 5 | } 6 | .zoom-img, 7 | .zoom-img-wrap { 8 | position: relative; 9 | z-index: 666; 10 | -webkit-transition: all 300ms; 11 | -o-transition: all 300ms; 12 | transition: all 300ms; 13 | } 14 | img.zoom-img { 15 | cursor: pointer; 16 | cursor: -webkit-zoom-out; 17 | cursor: -moz-zoom-out; 18 | } 19 | .zoom-overlay { 20 | z-index: 420; 21 | background: #fff; 22 | position: fixed; 23 | top: 0; 24 | left: 0; 25 | right: 0; 26 | bottom: 0; 27 | pointer-events: none; 28 | filter: "alpha(opacity=0)"; 29 | opacity: 0; 30 | -webkit-transition: opacity 300ms; 31 | -o-transition: opacity 300ms; 32 | transition: opacity 300ms; 33 | } 34 | .zoom-overlay-open .zoom-overlay { 35 | filter: "alpha(opacity=100)"; 36 | opacity: 1; 37 | } 38 | -------------------------------------------------------------------------------- /page.php: -------------------------------------------------------------------------------- 1 | 2 | need('header.php'); ?> 3 |
4 |
5 | fields->hideTitle) && !$this->is('page','about') && !$this->is('page','links')): ?> 6 |

title() ?> 7 | user->hasLogin()):?> 8 | /write-page.php?cid=cid?>" target="_blank"> 9 | 10 |

11 | 12 |
13 | content) ?> 14 |
15 |
16 |
17 | need('footer.php'); ?> 18 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Created by .ignore support plugin (hsz.mobi) 2 | ### JetBrains template 3 | # Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio 4 | 5 | *.iml 6 | 7 | ## Directory-based project format: 8 | .idea/ 9 | # if you remove the above rule, at least ignore the following: 10 | 11 | # User-specific stuff: 12 | # .idea/workspace.xml 13 | # .idea/tasks.xml 14 | # .idea/dictionaries 15 | 16 | # Sensitive or high-churn files: 17 | # .idea/dataSources.ids 18 | # .idea/dataSources.xml 19 | # .idea/sqlDataSources.xml 20 | # .idea/dynamic.xml 21 | # .idea/uiDesigner.xml 22 | 23 | # Gradle: 24 | # .idea/gradle.xml 25 | # .idea/libraries 26 | 27 | # Mongo Explorer plugin: 28 | # .idea/mongoSettings.xml 29 | 30 | ## File-based project format: 31 | *.ipr 32 | *.iws 33 | 34 | ## Plugin-specific files: 35 | 36 | # IntelliJ 37 | /out/ 38 | 39 | # mpeltonen/sbt-idea plugin 40 | .idea_modules/ 41 | 42 | # JIRA plugin 43 | atlassian-ide-plugin.xml 44 | 45 | # Crashlytics plugin (for Android Studio and IntelliJ) 46 | com_crashlytics_export_strings.xml 47 | crashlytics.properties 48 | crashlytics-build.properties 49 | 50 | 404.php 51 | DeleteList.md 52 | UncommitedChangeList.md 53 | music.php -------------------------------------------------------------------------------- /archive.php: -------------------------------------------------------------------------------- 1 | 3 | need('header.php'); ?> 4 | 5 |
6 |

archiveTitle(array( 7 | 'category' => _t('分类 %s 下的文章'), 8 | 'search' => _t('包含关键字 %s 的文章'), 9 | 'tag' => _t('标签 %s 下的文章'), 10 | 'author' => _t('%s 发布的文章') 11 | ), '', ''); ?>

12 | have()): ?> 13 | next()): ?> 14 |
15 |
16 |

title() ?>

17 | 21 |
22 |

content("Continue Reading..."); ?>

23 |
24 |
25 |
26 | 27 | 28 |
29 |

30 |
31 | 32 | 33 | pageNav('«', '»'); ?> 34 |
35 | 36 | need('footer.php'); ?> 37 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | > # Mirages 2 | 3 | 示例:[Mirages](https://hran.me/mirages.html) 4 | 5 | 大概,这是一款简洁的单栏的适合阅读的主题,适合放大段大段的文字、代码,没有炫酷的特效,字体设置上属于个人喜好,但大致上也不是很难看。。说到文字,因为考虑到一些阅读的舒适性的问题,所以栏宽设置的比较窄,因而很难想象类似 iMac 5K 这样的设备上到底有多么糟糕的界面。。。 6 | 7 | 主题为自适应,移动设备上体验尚可(至少 iPhone 和 iPad 上的阅读体验还可以) 8 | 9 | 主题内置了夜间模式,根据当地时间自动切换(22 点到第二天凌晨 6 点前为夜间模式) 10 | 11 | 图: 12 | 13 | ![首页](https://o4uhjo7cq.qnssl.com/hran/2016/05/27/146434006570435_%E5%B1%8F%E5%B9%95%E5%BF%AB%E7%85%A7%202016-05-27%20%E4%B8%8B%E5%8D%884.47.54.png?imageView2/2/h/720/q/75) 14 | 15 | ![侧边栏](https://o4uhjo7cq.qnssl.com/hran/2016/05/27/146434008596701_%E5%B1%8F%E5%B9%95%E5%BF%AB%E7%85%A7%202016-05-27%20%E4%B8%8B%E5%8D%884.48.19.png?imageView2/2/h/720/q/75) 16 | 17 | 没有头图的样子: 18 | 19 | ![无头图首页预览](https://o4uhjo7cq.qnssl.com/hran/2016/05/29/146448528656032_%E5%B1%8F%E5%B9%95%E5%BF%AB%E7%85%A7%202016-05-29%20%E4%B8%8A%E5%8D%889.27.54.png?imageView2/2/h/720/q/75) 20 | 21 | ## 主题安装及使用帮助 22 | 23 | [主题安装及使用帮助](https://github.com/Dalodd/Mirages-For-Typecho/wiki) 24 | 25 | ## 更新 26 | 27 | ### 2016-06-11 日更新 28 | 29 | - 更新版本号至: 1.2.0 30 | 31 | - 新增浅色模板 32 | 33 | - 新增夜间模式开关 34 | 35 | 本次更新有部分设置项变动,请查看[升级向导](https://github.com/Dalodd/Mirages-For-Typecho/wiki/升级向导)以获取更多信息。 36 | 37 | ### 2016-06-05 日更新 38 | 39 | - 修复了部分样式问题 40 | 41 | - 更新duoshuo.css, 添加博主标识 42 | 43 | 你需要到duoshuo.css文件里,修改第一行中的`[data-user-id='0']:after` 中的`user-id`为你自己的User ID。 44 | 45 | ### 2016-05-28 日更新 46 | 47 | - 添加了多说评论的支持 48 | 49 | 到设置外观,填入`duoshuoShortName`即可。当然,你也可以直接使用插件,而不用理会这个。 50 | 51 | 主题内置了多说的自定义外观,需要的请将`css/duoshuo.css`中的内容拷贝到**多说后台(http://yourdomain.duoshuo.com/admin/settings/)**的自定义CSS处,然后保存。**该自定义外观基于多说官方的暗色线框主题,**因此请在后台(http://yourdomain.duoshuo.com/admin/settings/themes/)启用暗色线框主题。 52 | 53 | -------------------------------------------------------------------------------- /post.php: -------------------------------------------------------------------------------- 1 | 2 | need('header.php'); ?> 3 |
4 |
5 | fields->hideTitle) && intval($this->fields->hideTitle) > 0)): ?> 6 |

title() ?>

7 | 18 | 19 |
20 | content) ?> 21 |
22 |
23 |
24 |
tags(', ', true, 'none'); ?>
25 |
26 |
27 |
28 |
29 | need('footer.php'); ?> 30 | -------------------------------------------------------------------------------- /index.php: -------------------------------------------------------------------------------- 1 | need('header.php'); 13 | ?> 14 |
15 | next()): ?> 16 |
17 |
18 |

title() ?>

19 | 31 |
32 |

content("Continue Reading..."); ?>

33 |
34 |
35 |
36 | 37 | 38 | pageNav('«', '»'); ?> 39 |
40 | need('footer.php'); ?> 41 | 42 | -------------------------------------------------------------------------------- /side_menu.php: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 33 |
-------------------------------------------------------------------------------- /404.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 45 | PAGE NOT FOUND 46 | 49 | 50 | 51 | 52 |
53 |
54 |

PAGE NOT FOUND

55 |
56 |
57 | 58 | -------------------------------------------------------------------------------- /js/skin.js: -------------------------------------------------------------------------------- 1 | (function($){ 2 | "use strict"; 3 | $('#feedback').click(function(){ 4 | $('html, body').animate( 5 | {scrollTop: $("#comments").offset().top} 6 | ); 7 | }); 8 | 9 | // 返回顶部 10 | var backtop = $("span#backtop"); 11 | backtop.click(function(){ 12 | $('html, body').animate( 13 | {scrollTop: 0},600 14 | ); 15 | }); 16 | 17 | // 显示返回顶部按钮 18 | if($(window).scrollTop() > 100){ 19 | backtop.addClass('show') 20 | } 21 | $(window).scroll(function(){ 22 | if($(window).scrollTop() > 100){ 23 | backtop.addClass('show') 24 | }else{ 25 | backtop.removeClass('show') 26 | } 27 | }); 28 | 29 | var mouseAtX = 0; 30 | $(document).ready(function(){ 31 | if('undefined' == typeof (IS_MOBILE)){ 32 | return false; 33 | } 34 | if(window.innerWidth < 888){ 35 | makeMenuHeadroom(); 36 | } 37 | 38 | $('#toggle-nav').click(function(e){ 39 | $("#wrap").removeClass("scale-up"); 40 | $('#wrap').toggleClass('display-nav'); 41 | $('#footer').toggleClass('display-nav'); 42 | $('#toggle-nav').removeClass('hide'); 43 | $('#wrap #body').off('click'); 44 | var body = $('#wrap.display-nav #body'); 45 | body.off('click'); 46 | body.on('click', function(e){ 47 | body.off('click'); 48 | $('#wrap').removeClass('display-nav'); 49 | $('#footer').removeClass('display-nav'); 50 | e.preventDefault(); 51 | }); 52 | $('#body').off('touchmove').on('touchmove', function(e){ 53 | body.off('click'); 54 | $('#wrap').removeClass('display-nav'); 55 | $('#footer').removeClass('display-nav'); 56 | }); 57 | }); 58 | $(window).bind("scroll", function(e){ 59 | scalePage(e); 60 | }); 61 | $(window).bind("mousemove", function(e){ 62 | mouseAtX = e.clientX; 63 | }); 64 | $('.slide-toggle').click(function(e){ 65 | $('.category-list').each(function(){ 66 | $(this).toggleClass('hide'); 67 | }); 68 | }); 69 | 70 | }); 71 | var hasTouchMove = false; 72 | if ("touchmove" in document.createElement("div")){ 73 | hasTouchMove = true; 74 | } 75 | 76 | var makeMenuHeadroom = function(){ 77 | var header = new Headroom(document.querySelector("#toggle-nav"), { 78 | tolerance: 5, 79 | offset : 5, 80 | classes: { 81 | initial: "show", 82 | pinned: "show", 83 | unpinned: "hide" 84 | } 85 | }); 86 | header.init(); 87 | }; 88 | 89 | var scalePage = function(e){ 90 | var wrap = $("#wrap"); 91 | var nav = $("#wrap #nav"); 92 | if (nav.width() < mouseAtX) { 93 | if ((IS_MOBILE && hasTouchMove) || !IS_MOBILE){ 94 | $('#wrap.display-nav #body').unbind('click'); 95 | wrap.removeClass('display-nav'); 96 | $('#footer').removeClass('display-nav'); 97 | } 98 | } 99 | }; 100 | })(jQuery); -------------------------------------------------------------------------------- /js/zoom.min.js: -------------------------------------------------------------------------------- 1 | /** 2 | * zoom.js - It's the best way to zoom an image 3 | * @version v0.0.1 4 | * @link https://github.com/fat/zoom.js 5 | * @license MIT 6 | */ 7 | +function(t){"use strict";function o(){this._activeZoom=this._initialScrollPosition=this._initialTouchPosition=this._touchMoveListener=null,this._$document=t(document),this._$window=t(window),this._$body=t(document.body)}function i(o){this._fullHeight=this._fullWidth=this._overlay=this._targetImageWrap=null,this._targetImage=o,this._$body=t(document.body)}o.prototype.listen=function(){this._$body.on("click",'[data-action="zoom"]',t.proxy(this._zoom,this))},o.prototype._zoom=function(o){var e=o.target;!e||"IMG"!=e.tagName||e.width>=window.innerWidth-i.OFFSET||(this._activeZoomClose(!0),this._activeZoom=new i(e),this._activeZoom.zoomImage(),this._$window.on("scroll.zoom",t.proxy(this._scrollHandler,this)),this._$document.on("click.zoom",t.proxy(this._clickHandler,this)),this._$document.on("keyup.zoom",t.proxy(this._keyHandler,this)),this._$document.on("touchstart.zoom",t.proxy(this._touchStart,this)),o.stopPropagation())},o.prototype._activeZoomClose=function(t){this._activeZoom&&(t?this._activeZoom.dispose():this._activeZoom.close(),this._$window.off(".zoom"),this._$document.off(".zoom"),this._activeZoom=null)},o.prototype._scrollHandler=function(t){null===this._initialScrollPosition&&(this._initialScrollPosition=window.scrollY);var o=this._initialScrollPosition-window.scrollY;Math.abs(o)>=40&&this._activeZoomClose()},o.prototype._keyHandler=function(t){27==t.keyCode&&this._activeZoomClose()},o.prototype._clickHandler=function(t){t.stopPropagation(),t.preventDefault(),this._activeZoomClose()},o.prototype._touchStart=function(o){this._initialTouchPosition=o.touches[0].pageY,t(o.target).on("touchmove.zoom",t.proxy(this._touchMove,this))},o.prototype._touchMove=function(o){Math.abs(o.touches[0].pageY-this._initialTouchPosition)>10&&(this._activeZoomClose(),t(o.target).off("touchmove.zoom"))},i.OFFSET=80,i._MAX_WIDTH=2560,i._MAX_HEIGHT=4096,i.prototype.zoomImage=function(){var o=document.createElement("img");o.onload=t.proxy(function(){this._fullHeight=Number(o.height),this._fullWidth=Number(o.width),this._zoomOriginal()},this),o.src=this._targetImage.src},i.prototype._zoomOriginal=function(){this._targetImageWrap=document.createElement("div"),this._targetImageWrap.className="zoom-img-wrap",this._targetImage.parentNode.insertBefore(this._targetImageWrap,this._targetImage),this._targetImageWrap.appendChild(this._targetImage),t(this._targetImage).addClass("zoom-img").attr("data-action","zoom-out"),this._overlay=document.createElement("div"),this._overlay.className="zoom-overlay",document.body.appendChild(this._overlay),this._calculateZoom(),this._triggerAnimation()},i.prototype._calculateZoom=function(){this._targetImage.offsetWidth;var t=this._fullWidth,o=this._fullHeight,e=(window.scrollY,t/this._targetImage.width),a=window.innerHeight-i.OFFSET,s=window.innerWidth-i.OFFSET,r=t/o,n=s/a;this._imgScaleFactor=s>t&&a>o?e:n>r?a/o*e:s/t*e},i.prototype._triggerAnimation=function(){this._targetImage.offsetWidth;var o=t(this._targetImage).offset(),i=window.scrollY,e=i+window.innerHeight/2,a=window.innerWidth/2,s=o.top+this._targetImage.height/2,r=o.left+this._targetImage.width/2;this._translateY=e-s,this._translateX=a-r,t(this._targetImage).css("transform","scale("+this._imgScaleFactor+")"),t(this._targetImageWrap).css("transform","translate("+this._translateX+"px, "+this._translateY+"px) translateZ(0)"),this._$body.addClass("zoom-overlay-open")},i.prototype.close=function(){this._$body.removeClass("zoom-overlay-open").addClass("zoom-overlay-transitioning"),t(this._targetImage).css("transform",""),t(this._targetImageWrap).css("transform",""),t(this._targetImage).one(t.support.transition.end,t.proxy(this.dispose,this)).emulateTransitionEnd(300)},i.prototype.dispose=function(){this._targetImageWrap&&this._targetImageWrap.parentNode&&(t(this._targetImage).removeClass("zoom-img").attr("data-action","zoom"),this._targetImageWrap.parentNode.replaceChild(this._targetImage,this._targetImageWrap),this._overlay.parentNode.removeChild(this._overlay),this._$body.removeClass("zoom-overlay-transitioning"))},(new o).listen()}(jQuery); -------------------------------------------------------------------------------- /js/waves.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Waves v0.6.5 3 | * http://fian.my.id/Waves 4 | * 5 | * Copyright 2014 Alfiana E. Sibuea and other contributors 6 | * Released under the MIT license 7 | * https://github.com/fians/Waves/blob/master/LICENSE 8 | */ 9 | !function(a,b){"use strict";"function"==typeof define&&define.amd?define([],function(){return b.apply(a)}):"object"==typeof exports?module.exports=b.call(a):a.Waves=b.call(a)}("object"==typeof global?global:this,function(){"use strict";function a(a){return null!==a&&a===a.window}function b(b){return a(b)?b:9===b.nodeType&&b.defaultView}function c(a){var c,d,e={top:0,left:0},f=a&&a.ownerDocument;return c=f.documentElement,"undefined"!=typeof a.getBoundingClientRect&&(e=a.getBoundingClientRect()),d=b(f),{top:e.top+d.pageYOffset-c.clientTop,left:e.left+d.pageXOffset-c.clientLeft}}function d(a){var b="";for(var c in a)a.hasOwnProperty(c)&&(b+=c+":"+a[c]+";");return b}function e(a){if(j.allowEvent(a)===!1)return null;for(var b=null,c=a.target||a.srcElement;null!==c.parentElement;){if(!(c instanceof SVGElement||-1===c.className.indexOf("waves-effect"))){b=c;break}if(c.classList.contains("waves-effect")){b=c;break}c=c.parentElement}return b}function f(a){var b=e(a);null!==b&&(i.show(a,b),"ontouchstart"in window&&(b.addEventListener("touchend",i.hide,!1),b.addEventListener("touchcancel",i.hide,!1)),b.addEventListener("mouseup",i.hide,!1),b.addEventListener("mouseleave",i.hide,!1))}var g=g||{},h=document.querySelectorAll.bind(document),i={duration:750,show:function(a,b){if(2===a.button)return!1;var e=b||this,f=document.createElement("div");f.className="waves-ripple",e.appendChild(f);var g=c(e),h=a.pageY-g.top,j=a.pageX-g.left,k="scale("+e.clientWidth/100*3+")";"touches"in a&&(h=a.touches[0].pageY-g.top,j=a.touches[0].pageX-g.left),f.setAttribute("data-hold",Date.now()),f.setAttribute("data-scale",k),f.setAttribute("data-x",j),f.setAttribute("data-y",h);var l={top:h+"px",left:j+"px"};f.className=f.className+" waves-notransition",f.setAttribute("style",d(l)),f.className=f.className.replace("waves-notransition",""),l["-webkit-transform"]=k,l["-moz-transform"]=k,l["-ms-transform"]=k,l["-o-transform"]=k,l.transform=k,l.opacity="1",l["-webkit-transition-duration"]=i.duration+"ms",l["-moz-transition-duration"]=i.duration+"ms",l["-o-transition-duration"]=i.duration+"ms",l["transition-duration"]=i.duration+"ms",f.setAttribute("style",d(l))},hide:function(a){j.touchup(a);var b=this,c=(1.4*b.clientWidth,null),e=b.getElementsByClassName("waves-ripple");if(!(e.length>0))return!1;c=e[e.length-1];var f=c.getAttribute("data-x"),g=c.getAttribute("data-y"),h=c.getAttribute("data-scale"),k=Date.now()-Number(c.getAttribute("data-hold")),l=350-k;0>l&&(l=0),setTimeout(function(){var a={top:g+"px",left:f+"px",opacity:"0","-webkit-transition-duration":i.duration+"ms","-moz-transition-duration":i.duration+"ms","-o-transition-duration":i.duration+"ms","transition-duration":i.duration+"ms","-webkit-transform":h,"-moz-transform":h,"-ms-transform":h,"-o-transform":h,transform:h};c.setAttribute("style",d(a)),setTimeout(function(){try{b.removeChild(c)}catch(a){return!1}},i.duration)},l)},wrapInput:function(a){for(var b=0;b0&&(j.touches-=1)},500):"mousedown"===a.type&&j.touches>0&&(b=!1),b},touchup:function(a){j.allowEvent(a)}};return g.displayEffect=function(a){a=a||{},"duration"in a&&(i.duration=a.duration),i.wrapInput(h(".waves-effect")),"ontouchstart"in window&&document.body.addEventListener("touchstart",f,!1),document.body.addEventListener("mousedown",f,!1)},g.attach=function(a){"input"===a.tagName.toLowerCase()&&(i.wrapInput([a]),a=a.parentElement),"ontouchstart"in window&&a.addEventListener("touchstart",f,!1),a.addEventListener("mousedown",f,!1)},g}); 10 | //# sourceMappingURL=waves.min.js.map -------------------------------------------------------------------------------- /css/base.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Waves v0.6.5 3 | * http://fian.my.id/Waves 4 | * 5 | * Copyright 2014 Alfiana E. Sibuea and other contributors 6 | * Released under the MIT license 7 | * https://github.com/fians/Waves/blob/master/LICENSE 8 | */.waves-effect{position:relative;cursor:pointer;display:inline-block;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;-webkit-transition:all .3s ease-out;-moz-transition:all .3s ease-out;-o-transition:all .3s ease-out;transition:all .3s ease-out}.waves-effect .waves-ripple{position:absolute;border-radius:50%;width:100px;height:100px;margin-top:-50px;margin-left:-50px;opacity:0;background:rgba(0,0,0,.2);background:-webkit-radial-gradient(rgba(0,0,0,.2) 0,rgba(0,0,0,.3) 40%,rgba(0,0,0,.4) 50%,rgba(0,0,0,.5) 60%,rgba(255,255,255,0) 70%);background:-o-radial-gradient(rgba(0,0,0,.2) 0,rgba(0,0,0,.3) 40%,rgba(0,0,0,.4) 50%,rgba(0,0,0,.5) 60%,rgba(255,255,255,0) 70%);background:-moz-radial-gradient(rgba(0,0,0,.2) 0,rgba(0,0,0,.3) 40%,rgba(0,0,0,.4) 50%,rgba(0,0,0,.5) 60%,rgba(255,255,255,0) 70%);background:radial-gradient(rgba(0,0,0,.2) 0,rgba(0,0,0,.3) 40%,rgba(0,0,0,.4) 50%,rgba(0,0,0,.5) 60%,rgba(255,255,255,0) 70%);-webkit-transition:all .5s ease-out;-moz-transition:all .5s ease-out;-o-transition:all .5s ease-out;transition:all .5s ease-out;-webkit-transition-property:-webkit-transform,opacity;-moz-transition-property:-moz-transform,opacity;-o-transition-property:-o-transform,opacity;transition-property:transform,opacity;-webkit-transform:scale(0);-moz-transform:scale(0);-ms-transform:scale(0);-o-transform:scale(0);transform:scale(0);pointer-events:none}.waves-effect.waves-light .waves-ripple{background:rgba(255,255,255,.4);background:-webkit-radial-gradient(rgba(255,255,255,.2) 0,rgba(255,255,255,.3) 40%,rgba(255,255,255,.4) 50%,rgba(255,255,255,.5) 60%,rgba(255,255,255,0) 70%);background:-o-radial-gradient(rgba(255,255,255,.2) 0,rgba(255,255,255,.3) 40%,rgba(255,255,255,.4) 50%,rgba(255,255,255,.5) 60%,rgba(255,255,255,0) 70%);background:-moz-radial-gradient(rgba(255,255,255,.2) 0,rgba(255,255,255,.3) 40%,rgba(255,255,255,.4) 50%,rgba(255,255,255,.5) 60%,rgba(255,255,255,0) 70%);background:radial-gradient(rgba(255,255,255,.2) 0,rgba(255,255,255,.3) 40%,rgba(255,255,255,.4) 50%,rgba(255,255,255,.5) 60%,rgba(255,255,255,0) 70%)}.waves-effect.waves-classic .waves-ripple{background:rgba(0,0,0,.2)}.waves-effect.waves-classic.waves-light .waves-ripple{background:rgba(255,255,255,.4)}.waves-notransition{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;transition:none!important}.waves-button,.waves-circle{-webkit-transform:translateZ(0);-moz-transform:translateZ(0);-ms-transform:translateZ(0);-o-transform:translateZ(0);transform:translateZ(0);-webkit-mask-image:-webkit-radial-gradient(circle,#fff 100%,#000 100%)}.waves-button,.waves-button:hover,.waves-button:visited,.waves-button-input{white-space:nowrap;vertical-align:middle;cursor:pointer;border:none;outline:0;color:inherit;background-color:transparent;font-size:1em;line-height:1em;text-align:center;text-decoration:none;z-index:1}.waves-button{padding:.85em 1.1em;border-radius:.2em}.waves-button-input{margin:0;padding:.85em 1.1em}.waves-input-wrapper{border-radius:.2em;vertical-align:bottom}.waves-input-wrapper.waves-button{padding:0}.waves-input-wrapper .waves-button-input{position:relative;top:0;left:0;z-index:1}.waves-circle{text-align:center;width:2.5em;height:2.5em;line-height:2.5em;border-radius:50%}.waves-float{-webkit-mask-image:none;-webkit-box-shadow:0 1px 1.5px 1px rgba(0,0,0,.12);box-shadow:0 1px 1.5px 1px rgba(0,0,0,.12)}.waves-float:active{-webkit-box-shadow:0 8px 20px 1px rgba(0,0,0,.3);box-shadow:0 8px 20px 1px rgba(0,0,0,.3)}.waves-block{display:block}a.waves-effect .waves-ripple{z-index:-1} 9 | 10 | 11 | /* 12 | * Zoom.js 13 | */ 14 | img[data-action="zoom"] { 15 | cursor: pointer; 16 | cursor: -webkit-zoom-in; 17 | cursor: -moz-zoom-in; 18 | } 19 | .zoom-img, 20 | .zoom-img-wrap { 21 | position: relative; 22 | z-index: 666; 23 | -webkit-transition: all 300ms; 24 | -o-transition: all 300ms; 25 | transition: all 300ms; 26 | } 27 | img.zoom-img { 28 | cursor: pointer; 29 | cursor: -webkit-zoom-out; 30 | cursor: -moz-zoom-out; 31 | } 32 | .zoom-overlay { 33 | z-index: 420; 34 | background: #fff; 35 | position: fixed; 36 | top: 0; 37 | left: 0; 38 | right: 0; 39 | bottom: 0; 40 | pointer-events: none; 41 | filter: "alpha(opacity=0)"; 42 | opacity: 0; 43 | -webkit-transition: opacity 300ms; 44 | -o-transition: opacity 300ms; 45 | transition: opacity 300ms; 46 | } 47 | .zoom-overlay-open .zoom-overlay { 48 | filter: "alpha(opacity=100)"; 49 | opacity: 1; 50 | } 51 | 52 | -------------------------------------------------------------------------------- /archives.php: -------------------------------------------------------------------------------- 1 | 2 | need('header.php'); ?> 10 | 123 |
124 |

Archives

125 |
126 |
127 | "Jan", 129 | 2 => "Feb", 130 | 3 => "Mar", 131 | 4 => "Apr", 132 | 5 => "May", 133 | 6 => "Jun", 134 | 7 => "Jul", 135 | 8 => "Aug", 136 | 9 => "Sep", 137 | 10 => "Oct", 138 | 11 => "Nov", 139 | 12 => "Dec"); 140 | $this->widget('Widget_Contents_Post_Recent', 'pageSize=10000')->to($archives); 141 | $year = 0; 142 | $mon = 0; 143 | $i = 0; 144 | $j = 0; 145 | $all = array(); 146 | $output = ''; 147 | while ($archives->next()): 148 | $year_tmp = date('Y', $archives->created); 149 | $mon_tmp = date('n', $archives->created); 150 | 151 | $y = $year; 152 | $m = $mon; 153 | if ($mon != $mon_tmp && $mon > 0) $output .= '
'; 154 | if ($year != $year_tmp) { 155 | $year = $year_tmp; 156 | $all[$year] = array(); 157 | } 158 | 159 | if ($mon != $mon_tmp) { 160 | $mon = $mon_tmp; 161 | array_push($all[$year], $mon); 162 | $output .= "

$year-$Month_E[$mon]

"; 163 | } 164 | $output .= ''; 165 | endwhile; 166 | $output .= '
'; 167 | echo $output; 168 | 169 | $html = ""; 170 | $year_now = date("Y"); 171 | foreach ($all as $key => $value) { 172 | $html .= "
  • $key
  • "; 178 | } 179 | ?> 180 | 181 | 182 | need('footer.php'); ?> -------------------------------------------------------------------------------- /css/waves.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Waves v0.6.5 3 | * http://fian.my.id/Waves 4 | * 5 | * Copyright 2014 Alfiana E. Sibuea and other contributors 6 | * Released under the MIT license 7 | * https://github.com/fians/Waves/blob/master/LICENSE 8 | */ 9 | .waves-effect { 10 | position: relative; 11 | cursor: pointer; 12 | display: inline-block; 13 | overflow: hidden; 14 | -webkit-user-select: none; 15 | -moz-user-select: none; 16 | -ms-user-select: none; 17 | user-select: none; 18 | -webkit-tap-highlight-color: transparent; 19 | -webkit-transition: all 0.3s ease-out; 20 | -moz-transition: all 0.3s ease-out; 21 | -o-transition: all 0.3s ease-out; 22 | transition: all 0.3s ease-out; 23 | } 24 | .waves-effect .waves-ripple { 25 | position: absolute; 26 | border-radius: 50%; 27 | width: 100px; 28 | height: 100px; 29 | margin-top: -50px; 30 | margin-left: -50px; 31 | opacity: 0; 32 | background: rgba(0, 0, 0, 0.05); 33 | background: -webkit-radial-gradient(rgba(0, 0, 0, 0.1) 0, rgba(0, 0, 0, 0.1) 40%, rgba(0, 0, 0, 0.12) 50%, rgba(0, 0, 0, 0.1) 60%, rgba(255, 255, 255, 0) 70%); 34 | background: -o-radial-gradient(rgba(0, 0, 0, 0.1) 0, rgba(0, 0, 0, 0.1) 40%, rgba(0, 0, 0, 0.12) 50%, rgba(0, 0, 0, 0.1) 60%, rgba(255, 255, 255, 0) 70%); 35 | background: -moz-radial-gradient(rgba(0, 0, 0, 0.1) 0, rgba(0, 0, 0, 0.1) 40%, rgba(0, 0, 0, 0.12) 50%, rgba(0, 0, 0, 0.1) 60%, rgba(255, 255, 255, 0) 70%); 36 | background: radial-gradient(rgba(0, 0, 0, 0.1) 0, rgba(0, 0, 0, 0.1) 40%, rgba(0, 0, 0, 0.12) 50%, rgba(0, 0, 0, 0.1) 60%, rgba(255, 255, 255, 0) 70%); 37 | -webkit-transition: all 0.5s ease-out; 38 | -moz-transition: all 0.5s ease-out; 39 | -o-transition: all 0.5s ease-out; 40 | transition: all 0.5s ease-out; 41 | -webkit-transition-property: -webkit-transform, opacity; 42 | -moz-transition-property: -moz-transform, opacity; 43 | -o-transition-property: -o-transform, opacity; 44 | transition-property: transform, opacity; 45 | -webkit-transform: scale(0); 46 | -moz-transform: scale(0); 47 | -ms-transform: scale(0); 48 | -o-transform: scale(0); 49 | transform: scale(0); 50 | pointer-events: none; 51 | } 52 | .waves-effect.waves-light .waves-ripple { 53 | background: rgba(255, 255, 255, 0.4); 54 | background: -webkit-radial-gradient(rgba(255, 255, 255, 0.2) 0, rgba(255, 255, 255, 0.3) 40%, rgba(255, 255, 255, 0.4) 50%, rgba(255, 255, 255, 0.5) 60%, rgba(255, 255, 255, 0) 70%); 55 | background: -o-radial-gradient(rgba(255, 255, 255, 0.2) 0, rgba(255, 255, 255, 0.3) 40%, rgba(255, 255, 255, 0.4) 50%, rgba(255, 255, 255, 0.5) 60%, rgba(255, 255, 255, 0) 70%); 56 | background: -moz-radial-gradient(rgba(255, 255, 255, 0.2) 0, rgba(255, 255, 255, 0.3) 40%, rgba(255, 255, 255, 0.4) 50%, rgba(255, 255, 255, 0.5) 60%, rgba(255, 255, 255, 0) 70%); 57 | background: radial-gradient(rgba(255, 255, 255, 0.2) 0, rgba(255, 255, 255, 0.3) 40%, rgba(255, 255, 255, 0.4) 50%, rgba(255, 255, 255, 0.5) 60%, rgba(255, 255, 255, 0) 70%); 58 | } 59 | .waves-effect.waves-classic .waves-ripple { 60 | background: rgba(0, 0, 0, 0.2); 61 | } 62 | .waves-effect.waves-classic.waves-light .waves-ripple { 63 | background: rgba(255, 255, 255, 0.4); 64 | } 65 | .waves-notransition { 66 | -webkit-transition: none !important; 67 | -moz-transition: none !important; 68 | -o-transition: none !important; 69 | transition: none !important; 70 | } 71 | .waves-button, 72 | .waves-circle { 73 | -webkit-transform: translateZ(0); 74 | -moz-transform: translateZ(0); 75 | -ms-transform: translateZ(0); 76 | -o-transform: translateZ(0); 77 | transform: translateZ(0); 78 | /*-webkit-mask-image: -webkit-radial-gradient(circle, #ffffff 100%, #000000 100%);*/ 79 | } 80 | .waves-button, 81 | .waves-button:hover, 82 | .waves-button:visited, 83 | .waves-button-input { 84 | white-space: nowrap; 85 | vertical-align: middle; 86 | cursor: pointer; 87 | border: none; 88 | outline: none; 89 | color: inherit; 90 | background-color: rgba(0, 0, 0, 0); 91 | font-size: 1em; 92 | line-height: 1em; 93 | text-align: center; 94 | text-decoration: none; 95 | z-index: 1; 96 | } 97 | .waves-button { 98 | /*padding: 0.85em 1.1em;*/ 99 | /*border-radius: 0.2em;*/ 100 | } 101 | .waves-button-input { 102 | margin: 0; 103 | padding: 0.85em 1.1em; 104 | } 105 | .waves-input-wrapper { 106 | border-radius: 0.2em; 107 | vertical-align: bottom; 108 | } 109 | .waves-input-wrapper.waves-button { 110 | padding: 0; 111 | } 112 | .waves-input-wrapper .waves-button-input { 113 | position: relative; 114 | top: 0; 115 | left: 0; 116 | z-index: 1; 117 | } 118 | .waves-circle { 119 | text-align: center; 120 | width: 2.5em; 121 | height: 2.5em; 122 | line-height: 2.5em; 123 | border-radius: 50%; 124 | } 125 | .waves-float { 126 | -webkit-mask-image: none; 127 | -webkit-box-shadow: 0px 1px 1.5px 1px rgba(0, 0, 0, 0.12); 128 | box-shadow: 0px 1px 1.5px 1px rgba(0, 0, 0, 0.12); 129 | } 130 | .waves-float:active { 131 | -webkit-box-shadow: 0px 8px 20px 1px rgba(0, 0, 0, 0.3); 132 | box-shadow: 0px 8px 20px 1px rgba(0, 0, 0, 0.3); 133 | } 134 | .waves-block { 135 | display: block; 136 | } 137 | /* Firefox Bug: link not triggered */ 138 | a.waves-effect .waves-ripple { 139 | z-index: -1; 140 | } 141 | -------------------------------------------------------------------------------- /header.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | options->staticPath) > 0){ 13 | define("STATIC_PATH", rtrim($this->options->staticPath,'/').'/'); 14 | }else { 15 | define("STATIC_PATH", $this->options->rootUrl."/usr/themes/Mirages/"); 16 | } 17 | 18 | if ($this->options->baseTheme == THEME_MIRAGES) { 19 | define("THEME_CLASS", ""); 20 | } elseif ($this->options->baseTheme == THEME_MIRAGES_WHITE) { 21 | define("THEME_CLASS", "theme-white"); 22 | } elseif ($this->options->baseTheme == THEME_MIRAGES_DARK) { 23 | define("THEME_CLASS", "theme-dark"); 24 | } 25 | $this->need('head.php'); 26 | $this->need('headfix.php'); 27 | $showBanner = (strlen($this->banner) > 5); 28 | ?> 29 | 30 | 31 | options->disableAutoNightTheme <= 0 && !hasValue($this->options->disqusShortName) && THEME_CLASS != "theme-dark"):?> 32 | 37 | 38 | 41 | 42 | 43 |
    44 | need('side_menu.php');?> 45 | 46 | 47 |
    48 | 49 |
    51 | background-color: #2a2b2c; 52 | 53 | height: 54 | options->defaultBgHeight();?>;" itemscope="" itemtype="http://schema.org/Organization"> 55 | 61 |
    62 |
    63 | is('page','about')):?> 64 |
    65 | Avatar 66 |
    67 |

    author(); ?> 68 | user->hasLogin()):?> 69 | /write-page.php?cid=cid?>" target="_blank"> 70 | 71 |

    72 |

    fields->description?>

    73 | is('page','links')):?> 74 |

    title() ?> 75 | user->hasLogin()):?> 76 | /write-page.php?cid=cid?>" target="_blank"> 77 | 78 |

    79 | 80 | is('index')):?> 81 | 82 |

    fields->mastheadTitleColor.";" ?>" itemprop="name">fields->mastheadTitle)) echo $this->fields->mastheadTitle ?>

    83 |

    fields->mastheadTitleColor.";" ?>" itemprop="description">fields->mastheadSubtitle)) echo $this->fields->mastheadSubtitle ?>

    84 | 85 |
    86 |
    87 |
    88 | 89 | 90 |
    91 |
    92 | 93 | 94 | 95 | -------------------------------------------------------------------------------- /comments.php: -------------------------------------------------------------------------------- 1 | 2 | allow('comment')):?> 3 | permalink);?> 4 | options->disqusShortName)):?> 5 |
    6 | 评论列表 7 | is('post') || $this->is('page')):?> 8 | 11 | 12 |
    13 | 24 | 25 |
    26 | options->duoshuoShortName)):?> 27 |
    28 | allow('comment')): ?> 29 | options->duoshuoCustomAuthorId) > 0) { 31 | $dsAuthorId = $this->options->duoshuoCustomAuthorId; 32 | } else { 33 | $dsAuthorId = $this->authorId; 34 | } 35 | ?> 36 | 评论列表 37 | 38 |
    39 | 40 | 41 | 56 | 57 | 58 | 59 |

    60 | 61 |
    62 | 63 |
    64 | comments()->to($comments); ?> 65 | have()): ?> 66 | 评论列表 67 | listComments(); ?> 68 | pageNav('«', '»'); ?> 69 | 70 | allow('comment')): ?> 71 |
    72 |
    73 | cancelReply(); ?> 74 |
    75 | 76 |
    77 | user->hasLogin()): ?> 78 |

    登录为 user->screenName(); ?>. »

    79 | 80 | 81 | 82 | 83 | 84 |

    85 | 86 | 87 |

    88 |

    89 |
    90 |
    91 | 92 | 93 |
    94 | 95 | 96 | 97 | 98 | 99 | -------------------------------------------------------------------------------- /footer.php: -------------------------------------------------------------------------------- 1 | 2 | 3 |
    4 |
    5 | 6 |
    7 | is('post') || ($this->is('page') && $this->allow('comment')) || $this->is('attachment')):?> 8 |
    9 | is('post')):?> 10 |
    11 | 15 |
    16 | 17 | need('comments.php'); ?> 18 |
    19 | 20 |
    21 |
    22 |
    23 | 29 | footer(); ?> 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 45 | 46 | 47 | options->otherOptions) && in_array('enableSSCROnWindows', $this->options->otherOptions)) && !isMobile() && isWindowsAboveVista() && deviceIs('Chrome', 'Edge')):?> 48 | 49 | 50 | 51 | 52 | is('index') || $this->is('category') || $this->is('tag')):?> 53 | options->disqusShortName) > 0):?> 54 | 66 | options->duoshuoShortName) > 0):?> 67 | 68 | 82 | 83 | 84 | 85 | 137 | fields->js)) { 139 | echo "\n"; 142 | } 143 | ?> 144 | 145 | 146 | -------------------------------------------------------------------------------- /js/jquery.githubRepoWidget.min.js: -------------------------------------------------------------------------------- 1 | jQuery(document).ready(function(e){var t=0;var n="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAAXCAMAAAAx3e/WAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYxIDY0LjE0MDk0OSwgMjAxMC8xMi8wNy0xMDo1NzowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNS4xIE1hY2ludG9zaCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpEQjIyNkJERkM0NjYxMUUxOEFDQzk3ODcxRDkzRjhCRSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpEQjIyNkJFMEM0NjYxMUUxOEFDQzk3ODcxRDkzRjhCRSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkRCMjI2QkREQzQ2NjExRTE4QUNDOTc4NzFEOTNGOEJFIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkRCMjI2QkRFQzQ2NjExRTE4QUNDOTc4NzFEOTNGOEJFIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+dka2KgAAAEVQTFRFxMTEyMjI0tLSvb29vr6+zc3Ny8vLxcXFz8/P6enp3t7ex8fH0dHR1NTUw8PDwMDAzs7OvLy8wcHBu7u7v7+/zMzM////budQFwAAABd0Uk5T/////////////////////////////wDmQOZeAAAAcklEQVR42tSQSQ7DMAwD6chOukWs5eX/Ty2coo0T9wOdEzEgdRBuzNmnDofgja52JDyz5TCqUp0O6kfrb4bzSXkRiTviEZZ6JKLMJ5VQ2v8iGbtbfEwXmjFMG0VwdQo10hQNxYqtLMv9O6xvpZ/QeAkwAKjwHiJLaJc3AAAAAElFTkSuQmCC";var r="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAqCAMAAACEJ4viAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYxIDY0LjE0MDk0OSwgMjAxMC8xMi8wNy0xMDo1NzowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNS4xIE1hY2ludG9zaCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpEQjIyNkJEQkM0NjYxMUUxOEFDQzk3ODcxRDkzRjhCRSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpEQjIyNkJEQ0M0NjYxMUUxOEFDQzk3ODcxRDkzRjhCRSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkRCMjI2QkQ5QzQ2NjExRTE4QUNDOTc4NzFEOTNGOEJFIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkRCMjI2QkRBQzQ2NjExRTE4QUNDOTc4NzFEOTNGOEJFIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+h1kA9gAAAK5QTFRF+fn5sbGx8fHx09PTmpqa2dnZ/f3919fX9PT00NDQ1dXVpKSk+vr6+/v7vb298vLyycnJ8/PztLS0zc3N6enp/v7+q6ur2NjY9/f3srKy/Pz8p6en7u7uoaGhnJyc4eHhtbW1pqam6Ojo9fX17e3toqKirKys1NTUzs7Ox8fHwcHBwMDA5eXlnZ2dpaWl0dHR9vb25ubm4uLi3d3dqqqqwsLCv7+/oKCgmZmZ////8yEsbwAAAMBJREFUeNrE0tcOgjAUBuDSliUoMhTEvfdef9//xUQjgaLX0Ium/ZLT/+SkRPxZpGykvuf5VMJogy5jY9yjDHcWFhqlcRuHc4o6B1QK0BDg+hcZgNDh3NWTwzItH/bRrhvT+g3zSxZkNGCZpoWGIbU0a3Y6zV5VA6keyeDxiw62P0gUqEW0FbDim4nVikFJbU2zZXybUEaxhCqOQqyh5/G0wpWICUwthyqwD4InOMuXJ7/gs7WkoPdVg1vykF8CDACEFanKO3aSYwAAAABJRU5ErkJggg==";e(".github-widget").each(function(){if(t==0)e("head").append('");t++;var s=e(this),o,u=s.data("repo"),a=u.split("/")[0],f=u.split("/")[1],l="http://github.com/"+a,c="http://github.com/"+a+"/"+f;o=e('
    '+'
    '+"

    "+''+a+""+"/"+''+f+""+"

    "+'
    '+'?'+'?'+"
    "+"
    "+'
    '+'

    Read More

    '+''+"
    "+'"+"
    ");o.appendTo(s);e.ajax({url:"https://api.github.com/repos/"+u,dataType:"jsonp",success:function(t){var n=t.data,r,i="unknown";if(n.pushed_at){r=new Date(n.pushed_at);i=r.getMonth()+1+"-"+r.getDate()+"-"+r.getFullYear()}o.find(".watchers").text(n.watchers);o.find(".forks").text(n.forks);o.find(".description span").text(n.description);o.find(".updated").html("Latest commit to the "+n.default_branch+" branch on "+i);if(n.homepage!=null)o.find(".link").append(e("").attr("href",n.homepage).text(n.homepage))}})})}); -------------------------------------------------------------------------------- /head.php: -------------------------------------------------------------------------------- 1 | 2 | ddb = $this->db; 4 | @$if_https = $_SERVER['HTTPS']; //这样就不会有错误提示 5 | if ($if_https) { //如果是使用 https 访问的话就添加 https 6 | define('IS_HTTPS', true); 7 | } else { 8 | define('IS_HTTPS', false); 9 | } 10 | 11 | if (IS_HTTPS) { 12 | $highlightJSPath = "//cdn.bootcss.com/highlight.js/9.2.0/"; 13 | } else { 14 | $highlightJSPath = "http://apps.bdimg.com/libs/highlight.js/9.1.0/"; 15 | } 16 | 17 | //Add-on highlight language 18 | $addOnHighlightLang = array(); 19 | $highlightLanguages = array( 20 | "swift" => "languages/swift.min.js", 21 | ); 22 | $rawContentText = $this->text; 23 | $rawContentText = strtolower($rawContentText); 24 | foreach ($highlightLanguages as $lang=>$url) { 25 | $lang = '```'.strtolower($lang); 26 | if(strpos($rawContentText,$lang) >= 0){ 27 | $addOnHighlightLang[] = $url; 28 | } 29 | } 30 | 31 | $addOnHighlightLangHtml = ""; 32 | foreach ($addOnHighlightLang as $url) { 33 | $addOnHighlightLangHtml .=''."\n"; 34 | } 35 | ?> 36 | 37 | 38 | 39 | 40 | <?php $this->archiveTitle(array( 41 | 'category' => _t('分类 %s 下的文章'), 42 | 'search' => _t('包含关键字 %s 的文章'), 43 | 'tag' => _t('标签 %s 下的文章'), 44 | 'author' => _t('%s 发布的文章') 45 | ), '', ' - '); ?><?php $this->options->title(); ?> 46 | options->bowserInsight()?> 47 | options->customMeta()?> 48 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | options->disableAutoNightTheme <= 0 && !hasValue($this->options->disqusShortName) && THEME_CLASS != "theme-dark"):?> 147 | 155 | 156 | 157 | options->shortcutIcon) > 5): ?> 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | options->otherOptions) && in_array('showJax', $this->options->otherOptions))):?> 174 | 175 | 176 | 177 | 180 | 184 | 185 | 186 | header("generator=&");echo "\n"; ?> 187 | user->hasLogin()):?> 188 | 191 | 192 | -------------------------------------------------------------------------------- /js/waves.min.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"waves.min.js","sources":["../src/js/waves.js"],"names":["window","factory","define","amd","apply","exports","module","call","Waves","global","this","isWindow","obj","getWindow","elem","nodeType","defaultView","isObject","value","type","isDOMNode","getWavesElements","nodes","stringRepr","toString","$$","test","hasOwnProperty","offset","docElem","win","box","top","left","doc","ownerDocument","documentElement","getBoundingClientRect","pageYOffset","clientTop","pageXOffset","clientLeft","convertStyle","styleObj","style","prop","removeRipple","e","el","ripple","classList","remove","relativeX","getAttribute","relativeY","scale","translate","diff","Date","now","Number","delay","duration","Effect","setTimeout","opacity","-webkit-transition-duration","-moz-transition-duration","-o-transition-duration","transition-duration","-webkit-transform","-moz-transform","-ms-transform","-o-transform","transform","setAttribute","removeChild","getWavesEffectElement","TouchHandler","allowEvent","element","target","srcElement","parentElement","contains","SVGElement","showEffect","registerEvent","hidden","timer","show","hideEffect","hideEvent","clearTimeout","hide","touchMove","moveEvent","addEventListener","isTouchAvailable","document","querySelectorAll","bind","Object","prototype","velocity","button","createElement","className","appendChild","pos","pageY","pageX","clientWidth","touches","length","rippleStyle","add","ripples","getElementsByClassName","i","len","TagWrapper","input","parent","parentNode","tagName","toLowerCase","wrapper","replaceChild","elementStyle","getComputedStyle","color","backgroundColor","img","allow","eType","init","options","body","attach","elements","classes","join","indexOf","elementsLen","wait","position","off","centre","mousedown","hideRipple","mouseup","x","y","clientHeight","calm","displayEffect","console","error"],"mappings":"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"} -------------------------------------------------------------------------------- /functions.php: -------------------------------------------------------------------------------- 1 | _t('Mirages'), '1'=>_t('Mirages White'),'2'=>_t('Mirages Dark')), '0', _t('主题主色调'),_t('默认为 Mirages')); 6 | $form->addInput($baseTheme); 7 | $disableAutoNightTheme = new Typecho_Widget_Helper_Form_Element_Radio('disableAutoNightTheme', array('0'=>_t('开启'), '1'=>_t('关闭')), '0', _t('自动夜间模式'),_t('默认为开启')); 8 | $form->addInput($disableAutoNightTheme); 9 | $staticPath = new Typecho_Widget_Helper_Form_Element_Text('staticPath', NULL, NULL, _t('静态文件路径'), _t('除非你需要引用其它域名下的静态文件并且你知道这个设置是什么,否则请留空')); 10 | $form->addInput($staticPath); 11 | $defaultBg = new Typecho_Widget_Helper_Form_Element_Text('defaultBg', NULL, NULL, _t('站点背景大图地址'), _t('在这里填入一个图片URL地址, 以在网站显示一个背景大图')); 12 | $form->addInput($defaultBg); 13 | $defaultBgHeight = new Typecho_Widget_Helper_Form_Element_Text('defaultBgHeight', NULL, '60', _t('站点背景大图高度(%)'), _t('站点背景大图高度')); 14 | $form->addInput($defaultBgHeight); 15 | $sideMenuAvatar = new Typecho_Widget_Helper_Form_Element_Text('sideMenuAvatar', NULL, '', _t('侧边栏头像Email'), NULL); 16 | $form->addInput($sideMenuAvatar); 17 | 18 | $disqusShortName = new Typecho_Widget_Helper_Form_Element_Text('disqusShortName', NULL, NULL, _t('Disqus Short Name'), _t('Disqus评论')); 19 | $form->addInput($disqusShortName); 20 | 21 | $duoshuoShortName = new Typecho_Widget_Helper_Form_Element_Text('duoshuoShortName', NULL, NULL, _t('多说 Short Name'), _t('多说评论')); 22 | $form->addInput($duoshuoShortName); 23 | $duoshuoUserId = new Typecho_Widget_Helper_Form_Element_Text('duoshuoUserId', NULL, NULL, _t('多说User Id'), _t('多说 User Id, 用于显示「博主」标签, 不同于「自定义多说Author Id」')); 24 | $form->addInput($duoshuoUserId); 25 | $duoshuoCustomEmbedJs = new Typecho_Widget_Helper_Form_Element_Text('duoshuoCustomEmbedJs', NULL, NULL, _t('自定义多说Embed.js'), _t('自定义多说Embed.js的地址')); 26 | $form->addInput($duoshuoCustomEmbedJs); 27 | $duoshuoCustomAuthorId = new Typecho_Widget_Helper_Form_Element_Text('duoshuoCustomAuthorId', NULL, NULL, _t('自定义多说Author Id'), _t('自定义多说Author Id')); 28 | $form->addInput($duoshuoCustomAuthorId); 29 | 30 | 31 | $adminDir = new Typecho_Widget_Helper_Form_Element_Text('adminDir', NULL, NULL, _t('后台路径'), _t('如果你修改了「__TYPECHO_ADMIN_DIR__」,请在这里填写,否则请留空,默认为「admin」')); 32 | $form->addInput($adminDir); 33 | 34 | $shortcutIcon = new Typecho_Widget_Helper_Form_Element_Text('shortcutIcon', NULL, NULL, _t('Shortcut Icon'), _t('留空则使用根目录下的「favicon.ico」文件')); 35 | $form->addInput($shortcutIcon); 36 | $customMeta = new Typecho_Widget_Helper_Form_Element_Textarea('customMeta', NULL, NULL, _t('Custom Meta'), _t('')); 37 | $form->addInput($customMeta); 38 | 39 | $tongJi = new Typecho_Widget_Helper_Form_Element_Text('tongJi', NULL, '', _t('站点统计代码'), NULL); 40 | $form->addInput($tongJi); 41 | $bowserInsight = new Typecho_Widget_Helper_Form_Element_Text('bowserInsight', NULL, NULL, _t('Browser Insight'), _t('')); 42 | $form->addInput($bowserInsight); 43 | 44 | $otherOptionsBlock = new Typecho_Widget_Helper_Form_Element_Checkbox('otherOptions', 45 | array( 46 | 'showJax' => _t('显示数学公式 (MathJax)'), 47 | 'enableSSCROnWindows' => _t('为 Windows 平台的 Chrome 浏览器启用平滑滚动'), 48 | 'useQiniuImageResize' => _t('为文章中的图片自动转换合适的大小和格式 (需要使用七牛云存储,配置见 readme.md)'), 49 | 'enableWebP' => _t('启用 WebP 图像格式 (需要使用七牛云存储)'), 50 | ), 51 | array(), _t('其他选项')); 52 | $form->addInput($otherOptionsBlock->multiMode()); 53 | } 54 | 55 | function hasValue($field) { 56 | if (is_numeric($field)) { 57 | return true; 58 | } 59 | return strlen($field) > 0; 60 | } 61 | 62 | function isTrue($field) { 63 | return $field > 0 || strtolower($field) == 'true'; 64 | } 65 | 66 | /** Device Check */ 67 | function isMobile(){ 68 | return deviceIs('Mobile'); 69 | } 70 | function isPhone(){ 71 | if(isTablet()){ 72 | return false; 73 | } 74 | return deviceIs(array("Android", 'iPhone', 'iPod', 'Phone')); 75 | } 76 | function isTablet(){ 77 | return deviceIs(array("iPad", 'Tablet')); 78 | } 79 | function isWindowsAboveVista(){ 80 | return __check(array("Windows", "NT"), true) && !isWindowsBlowXp(); 81 | } 82 | function isWindowsBlowXp(){ 83 | return __check(array("Windows", "NT 5"), true) || deviceIs("Windows", "NT"); 84 | } 85 | function isWindows(){ 86 | return deviceIs("Windows"); 87 | } 88 | function isMacOSX(){ 89 | return deviceIs("Macintosh"); 90 | } 91 | function isELCapitanOrAbove(){ 92 | $ua = strtolower($_SERVER["HTTP_USER_AGENT"]);//Mac OS X 10_11_4 93 | if (preg_match('/^.+Mac\s+OS\s+X\s+\d+[^a-zA-Z0-9]+(\d+).*$/i', $ua, $matches)) { 94 | $version = intval($matches[1]); 95 | if ($version >= 11) { 96 | return true; 97 | } 98 | } 99 | return false; 100 | } 101 | function isSafari() { 102 | return __check(array("Safari", "Version/"), true) && !__check(array("Chrome", "Opera", "QQ"), false); 103 | } 104 | function deviceIs($is, $not = array(), $needAllMatch = false){ 105 | if(empty($not)){ 106 | return __check($is, $needAllMatch); 107 | } 108 | return __check($is, $needAllMatch) && !__check($not, $needAllMatch); 109 | } 110 | function shouldEnableBlurFilter(){ 111 | if(__check(array("Firefox")) || (deviceIs(array("Chrome"), array("Edge")))){ 112 | return false; 113 | } 114 | if (isMobile()){ 115 | if(__check(array("Android"))){ 116 | return false; 117 | } 118 | } 119 | return true; 120 | } 121 | function shouldEnableWebP() { 122 | if (isMobile()) { 123 | return false; 124 | } 125 | if (deviceIs('Chrome', 'Edge')) { 126 | $ua = strtolower($_SERVER["HTTP_USER_AGENT"]); 127 | if (preg_match('/^.+Chrome\/(\d+).*$/i', $ua, $matches)) { 128 | $version = intval($matches[1]); 129 | if ($version >= 23 ) { 130 | return true; 131 | } 132 | } 133 | } 134 | if (deviceIs('OPR')) { 135 | $ua = strtolower($_SERVER["HTTP_USER_AGENT"]); 136 | if (preg_match('/^.+OPR\/(\d+).*$/i', $ua, $matches)) { 137 | $version = intval($matches[1]); 138 | if ($version >= 15 ) { 139 | return true; 140 | } 141 | } 142 | } 143 | return false; 144 | } 145 | function __check($items, $needAllMatch = false) { 146 | $ua = strtolower($_SERVER["HTTP_USER_AGENT"]); 147 | if(is_array($items)){ 148 | if($needAllMatch){ 149 | $res = true; 150 | foreach ($items as $item) { 151 | if(!strpos($ua,strtolower($item))){ 152 | $res = false; 153 | } 154 | } 155 | return $res; 156 | }else{ 157 | foreach ($items as $item) { 158 | if(strpos($ua,strtolower($item))){ 159 | return true; 160 | } 161 | } 162 | return false; 163 | } 164 | }else{ 165 | return strpos($ua, strtolower($items)); 166 | } 167 | } 168 | function startsWith($subject, $str) { 169 | if (strlen($subject) < strlen($str)) { 170 | return false; 171 | } else { 172 | return !substr_compare($subject, $str, 0, strlen($str)); 173 | } 174 | } 175 | function loadArchiveBanner($that) { 176 | 177 | if (count($that->stack) == 1) { 178 | if (isset($that->fields->banner)) { 179 | return $that->fields->banner; 180 | } else { 181 | return ""; 182 | } 183 | } else { 184 | $cids = array(); 185 | for($i = 0; $i < count($that->stack); $i++) { 186 | $cids[] = $that->stack[$i]["cid"]; 187 | } 188 | if (count($cids) < 1) { 189 | return ""; 190 | } 191 | $rows = $that->ddb->fetchAll($that->ddb->select()->from('table.fields') 192 | ->where('cid IN ?', $cids) 193 | ->where('name = ?', 'banner') 194 | ); 195 | $banners = array(); 196 | foreach ($rows as $row) { 197 | $banners[] = $row[$row['type'] . '_value']; 198 | } 199 | if (count($banners) == 1) { 200 | return $banners[0]; 201 | } elseif (count($banners) == 0) { 202 | return ""; 203 | } else { 204 | return $banners[count($banners) - 1]; 205 | } 206 | } 207 | } 208 | 209 | function renderCards($content) { 210 | $currentGroupId = 0; 211 | $lastFindIndex = 0; 212 | $lastFindLength = 0; 213 | $linkGroup = array(); 214 | $linkGroupStartIndex = array(); 215 | $linkGroupEndIndex = array(); 216 | $first = true; 217 | 218 | $totalCount = preg_match_all('/(

    )*]*>([^<>]+?)<\/a>\+\(([^<>]+?)<\/a>\)(<\/p>)*(<\s*br\s*\/\s*>)*(<\s*\/\s*br\s*>)*/ixs', $content, $matches); 219 | 220 | if ($totalCount <= 0) { 221 | $totalCount = preg_match_all('/(

    )*]*>([^<>]+?)<\/a>\+\(([^<>]+?)\)(<\/p>)*(<\s*br\s*\/\s*>)*(<\s*\/\s*br\s*>)*/ixs', $content, $matches); 222 | } 223 | 224 | for ($i = 0; $i < $totalCount; $i++) { 225 | if ($first) { 226 | $first = false; 227 | $useNewGroup = true; 228 | $currentFindIndex = strpos($content, $matches[0][$i]); 229 | $currentFindLength = mb_strlen($matches[0][$i]); 230 | } else { 231 | $lastEndIndex = $lastFindIndex + $lastFindLength; 232 | $currentFindIndex = strpos($content, $matches[0][$i], $lastEndIndex - 1); 233 | $currentFindLength = mb_strlen($matches[0][$i]); 234 | if ($currentFindIndex - $lastEndIndex >= 0) { 235 | $splitContent = substr($content, $lastEndIndex, $currentFindIndex - $lastEndIndex); 236 | if (strlen($splitContent) > 0 && preg_match('/\w+/xs', $splitContent)) { 237 | $trimSplitContent = preg_replace('//ixs', '', $splitContent); 238 | $trimSplitContent = preg_replace('/<\s*\/\s*br>/ixs', '', $trimSplitContent); 239 | if (strlen($trimSplitContent) > 0 && preg_match('/\w+/xs', $trimSplitContent)) { 240 | $useNewGroup = true; 241 | } else { 242 | $useNewGroup = false; 243 | } 244 | } else { 245 | $useNewGroup = false; 246 | } 247 | } else { 248 | $useNewGroup = false; 249 | } 250 | } 251 | 252 | if ($useNewGroup) { 253 | $currentGroupId ++; 254 | } 255 | if (!isset($linkGroup[$currentGroupId])) { 256 | $linkGroup[$currentGroupId] = array(); 257 | } 258 | if ($useNewGroup) { 259 | $linkGroupStartIndex[$currentGroupId] = $currentFindIndex; 260 | } 261 | $linkGroupEndIndex[$currentGroupId] = $currentFindIndex + $currentFindLength; 262 | $match = array(); 263 | $match[2] = $matches[2][$i]; 264 | $match[3] = $matches[3][$i]; 265 | $match[4] = $matches[4][$i]; 266 | $linkGroup[$currentGroupId][] = $match; 267 | $lastFindIndex = $currentFindIndex; 268 | $lastFindLength = $currentFindLength; 269 | } 270 | 271 | $output = ""; 272 | for ($i = 1; $i <= $currentGroupId; $i++) { 273 | $start = $linkGroupStartIndex[$i]; 274 | 275 | if ($i > 1){ 276 | $lastId = $i - 1; 277 | $lastEnd = $linkGroupEndIndex[$lastId]; 278 | $output .= substr($content, $lastEnd, $start - $lastEnd); 279 | } else { 280 | $output .= substr($content, 0, $start); 281 | } 282 | $matches = $linkGroup[$i]; 283 | $linkGroupHtml = "

    '; 294 | $output .= $linkGroupHtml; 295 | } 296 | 297 | if ($currentGroupId < 1) { 298 | return $content; 299 | } 300 | 301 | $output .= substr($content, $linkGroupEndIndex[$currentGroupId]); 302 | return $output; 303 | } -------------------------------------------------------------------------------- /headfix.php: -------------------------------------------------------------------------------- 1 | 2 | 134 | 382 | -------------------------------------------------------------------------------- /js/sscr.js: -------------------------------------------------------------------------------- 1 | (function(){ 2 | 3 | // SmoothScroll v1.2.1 4 | // Licensed under the terms of the MIT license. 5 | 6 | // People involved 7 | // - Balazs Galambosi (maintainer) 8 | // - Patrick Brunner (original idea) 9 | // - Michael Herf (Pulse Algorithm) 10 | 11 | // Scroll Variables (tweakable) 12 | var defaultOptions = { 13 | 14 | // Scrolling Core 15 | frameRate : 150, // [Hz] 16 | animationTime : 400, // [px] 17 | stepSize : 120, // [px] 18 | 19 | // Pulse (less tweakable) 20 | // ratio of 'tail' to 'acceleration' 21 | pulseAlgorithm : true, 22 | pulseScale : 8, 23 | pulseNormalize : 1, 24 | 25 | // Acceleration 26 | accelerationDelta : 20, // 20 27 | accelerationMax : 1, // 1 28 | 29 | // Keyboard Settings 30 | keyboardSupport : true, // option 31 | arrowScroll : 50, // [px] 32 | 33 | // Other 34 | touchpadSupport : true, 35 | fixedBackground : true, 36 | excluded : '' 37 | }; 38 | 39 | var options = defaultOptions; 40 | 41 | 42 | // Other Variables 43 | var isExcluded = false; 44 | var isFrame = false; 45 | var direction = { x: 0, y: 0 }; 46 | var initDone = false; 47 | var root = document.documentElement; 48 | var activeElement; 49 | var observer; 50 | var deltaBuffer = [ 120, 120, 120 ]; 51 | 52 | var key = { left: 37, up: 38, right: 39, down: 40, spacebar: 32, 53 | pageup: 33, pagedown: 34, end: 35, home: 36 }; 54 | 55 | 56 | /*********************************************** 57 | * INITIALIZE 58 | ***********************************************/ 59 | 60 | /** 61 | * Sets up scrolls array, determines if frames are involved. 62 | */ 63 | function init() { 64 | 65 | if (initDone || isExcluded || !document.body) { 66 | return; 67 | } 68 | var body = document.body; 69 | var html = document.documentElement; 70 | var windowHeight = window.innerHeight; 71 | var scrollHeight = body.scrollHeight; 72 | 73 | // check compat mode for root element 74 | root = (document.compatMode.indexOf('CSS') >= 0) ? html : body; 75 | activeElement = body; 76 | 77 | initDone = true; 78 | 79 | // Checks if this script is running in a frame 80 | if (top != self) { 81 | isFrame = true; 82 | } 83 | 84 | /** 85 | * This fixes a bug where the areas left and right to 86 | * the content does not trigger the onmousewheel event 87 | * on some pages. e.g.: html, body { height: 100% } 88 | */ 89 | else if (scrollHeight > windowHeight && 90 | (body.clientHeight <= windowHeight + 1 || 91 | html.clientHeight <= windowHeight + 1)) { 92 | 93 | var fullPageElem = document.createElement('div'); 94 | //fullPageElem.style.cssText = 'position:fixed;top:0;bottom:0;' + 95 | // 'left:0;right:0;z-index:-1'; 96 | fullPageElem.style.cssText = 'position:absolute;z-index:-1;' + 97 | 'top:0;left:0;right:0;height:' + 98 | root.scrollHeight + 'px'; 99 | document.body.appendChild(fullPageElem); 100 | 101 | // DOMChange (throttle): fix height 102 | var pending = false; 103 | var refresh = function () { 104 | if (!pending && root.scrollHeight != fullPageElem.scrollHeight) { 105 | pending = true; // add a new pending action 106 | setTimeout(function () { 107 | if (isExcluded) return; // could be running after cleanup 108 | fullPageElem.style.height = root.scrollHeight + 'px'; 109 | pending = false; 110 | }, 500); // act rarely to stay fast 111 | } 112 | }; 113 | setTimeout(refresh, 10); 114 | 115 | var config = { 116 | attributes: true, 117 | childList: true, 118 | characterData: false 119 | }; 120 | 121 | observer = new MutationObserver(refresh); 122 | observer.observe(body, config); 123 | 124 | // clearfix 125 | if (root.offsetHeight <= windowHeight) { 126 | var underlay = document.createElement('div'); 127 | underlay.style.clear = 'both'; 128 | body.appendChild(underlay); 129 | } 130 | } 131 | 132 | // gmail performance fix 133 | if (document.URL.indexOf('www.facebook.com') > -1) { 134 | var home_stream = document.getElementById('home_stream'); 135 | home_stream && (home_stream.style.webkitTransform = 'translateZ(0)'); 136 | } 137 | // disable fixed background 138 | if (!options.fixedBackground && !isExcluded) { 139 | body.style.backgroundAttachment = 'scroll'; 140 | html.style.backgroundAttachment = 'scroll'; 141 | } 142 | } 143 | 144 | /************************************************ 145 | * SCROLLING 146 | ************************************************/ 147 | 148 | var que = []; 149 | var pending = false; 150 | var lastScroll = Date.now(); 151 | 152 | /** 153 | * Pushes scroll actions to the scrolling queue. 154 | */ 155 | function scrollArray(elem, left, top, delay) { 156 | 157 | delay || (delay = 1000); 158 | directionCheck(left, top); 159 | 160 | if (options.accelerationMax != 1) { 161 | var now = Date.now(); 162 | var elapsed = now - lastScroll; 163 | if (elapsed < options.accelerationDelta) { 164 | var factor = (1 + (50 / elapsed)) / 2; 165 | if (factor > 1) { 166 | factor = Math.min(factor, options.accelerationMax); 167 | left *= factor; 168 | top *= factor; 169 | } 170 | } 171 | lastScroll = Date.now(); 172 | } 173 | 174 | // push a scroll command 175 | que.push({ 176 | x: left, 177 | y: top, 178 | lastX: (left < 0) ? 0.99 : -0.99, 179 | lastY: (top < 0) ? 0.99 : -0.99, 180 | start: Date.now() 181 | }); 182 | 183 | // don't act if there's a pending queue 184 | if (pending) { 185 | return; 186 | } 187 | 188 | var scrollWindow = (elem === document.body); 189 | 190 | var step = function (time) { 191 | 192 | var now = Date.now(); 193 | var scrollX = 0; 194 | var scrollY = 0; 195 | 196 | for (var i = 0; i < que.length; i++) { 197 | 198 | var item = que[i]; 199 | var elapsed = now - item.start; 200 | var finished = (elapsed >= options.animationTime); 201 | 202 | // scroll position: [0, 1] 203 | var position = (finished) ? 1 : elapsed / options.animationTime; 204 | 205 | // easing [optional] 206 | if (options.pulseAlgorithm) { 207 | position = pulse(position); 208 | } 209 | 210 | // only need the difference 211 | var x = (item.x * position - item.lastX) >> 0; 212 | var y = (item.y * position - item.lastY) >> 0; 213 | 214 | // add this to the total scrolling 215 | scrollX += x; 216 | scrollY += y; 217 | 218 | // update last values 219 | item.lastX += x; 220 | item.lastY += y; 221 | 222 | // delete and step back if it's over 223 | if (finished) { 224 | que.splice(i, 1); i--; 225 | } 226 | } 227 | 228 | // scroll left and top 229 | if (scrollWindow) { 230 | window.scrollBy(scrollX, scrollY); 231 | } 232 | else { 233 | if (scrollX) elem.scrollLeft += scrollX; 234 | if (scrollY) elem.scrollTop += scrollY; 235 | } 236 | 237 | // clean up if there's nothing left to do 238 | if (!left && !top) { 239 | que = []; 240 | } 241 | 242 | if (que.length) { 243 | requestFrame(step, elem, (delay / options.frameRate + 1)); 244 | } else { 245 | pending = false; 246 | } 247 | }; 248 | 249 | // start a new queue of actions 250 | requestFrame(step, elem, 0); 251 | pending = true; 252 | } 253 | 254 | 255 | /*********************************************** 256 | * EVENTS 257 | ***********************************************/ 258 | 259 | /** 260 | * Mouse wheel handler. 261 | * @param {Object} event 262 | */ 263 | function wheel(event) { 264 | 265 | if (!initDone) { 266 | init(); 267 | } 268 | 269 | var target = event.target; 270 | var overflowing = overflowingAncestor(target); 271 | 272 | // use default if there's no overflowing 273 | // element or default action is prevented 274 | // or it's a zooming event with CTRL 275 | if (!overflowing || event.defaultPrevented || event.ctrlKey) { 276 | return true; 277 | } 278 | 279 | // leave embedded content alone (flash & pdf) 280 | if (isNodeName(activeElement, 'embed') || 281 | (isNodeName(target, 'embed') && /\.pdf/i.test(target.src)) || 282 | isNodeName(activeElement, 'object')) { 283 | return true; 284 | } 285 | 286 | var deltaX = event.wheelDeltaX || 0; 287 | var deltaY = event.wheelDeltaY || 0; 288 | 289 | // use wheelDelta if deltaX/Y is not available 290 | if (!deltaX && !deltaY) { 291 | deltaY = event.wheelDelta || 0; 292 | } 293 | 294 | // check if it's a touchpad scroll that should be ignored 295 | if (!options.touchpadSupport && isTouchpad(deltaY)) { 296 | return true; 297 | } 298 | 299 | // scale by step size 300 | // delta is 120 most of the time 301 | // synaptics seems to send 1 sometimes 302 | if (Math.abs(deltaX) > 1.2) { 303 | deltaX *= options.stepSize / 120; 304 | } 305 | if (Math.abs(deltaY) > 1.2) { 306 | deltaY *= options.stepSize / 120; 307 | } 308 | 309 | scrollArray(overflowing, -deltaX, -deltaY); 310 | event.preventDefault(); 311 | } 312 | 313 | /** 314 | * Keydown event handler. 315 | * @param {Object} event 316 | */ 317 | function keydown(event) { 318 | 319 | var target = event.target; 320 | var modifier = event.ctrlKey || event.altKey || event.metaKey || 321 | (event.shiftKey && event.keyCode !== key.spacebar); 322 | 323 | // do nothing if user is editing text 324 | // or using a modifier key (except shift) 325 | // or in a dropdown 326 | // or inside interactive elements 327 | if ( /input|textarea|select|embed|object/i.test(target.nodeName) || 328 | isNodeName(activeElement, 'video') || 329 | isInsideYoutubeVideo(event) || 330 | target.isContentEditable || 331 | event.defaultPrevented || 332 | modifier ) { 333 | return true; 334 | } 335 | // spacebar should trigger button press 336 | if (isNodeName(target, 'button') && 337 | event.keyCode === key.spacebar) { 338 | return true; 339 | } 340 | 341 | var shift, x = 0, y = 0; 342 | var elem = overflowingAncestor(activeElement); 343 | var clientHeight = elem.clientHeight; 344 | 345 | if (elem == document.body) { 346 | clientHeight = window.innerHeight; 347 | } 348 | 349 | switch (event.keyCode) { 350 | case key.up: 351 | y = -options.arrowScroll; 352 | break; 353 | case key.down: 354 | y = options.arrowScroll; 355 | break; 356 | case key.spacebar: // (+ shift) 357 | shift = event.shiftKey ? 1 : -1; 358 | y = -shift * clientHeight * 0.9; 359 | break; 360 | case key.pageup: 361 | y = -clientHeight * 0.9; 362 | break; 363 | case key.pagedown: 364 | y = clientHeight * 0.9; 365 | break; 366 | case key.home: 367 | y = -elem.scrollTop; 368 | break; 369 | case key.end: 370 | var damt = elem.scrollHeight - elem.scrollTop - clientHeight; 371 | y = (damt > 0) ? damt+10 : 0; 372 | break; 373 | case key.left: 374 | x = -options.arrowScroll; 375 | break; 376 | case key.right: 377 | x = options.arrowScroll; 378 | break; 379 | default: 380 | return true; // a key we don't care about 381 | } 382 | 383 | scrollArray(elem, x, y); 384 | event.preventDefault(); 385 | } 386 | 387 | /** 388 | * Mousedown event only for updating activeElement 389 | */ 390 | function mousedown(event) { 391 | activeElement = event.target; 392 | } 393 | 394 | 395 | /*********************************************** 396 | * OVERFLOW 397 | ***********************************************/ 398 | 399 | var cache = {}; // cleared out every once in while 400 | setInterval(function () { cache = {}; }, 10 * 1000); 401 | 402 | var uniqueID = (function () { 403 | var i = 0; 404 | return function (el) { 405 | return el.uniqueID || (el.uniqueID = i++); 406 | }; 407 | })(); 408 | 409 | function setCache(elems, overflowing) { 410 | for (var i = elems.length; i--;) 411 | cache[uniqueID(elems[i])] = overflowing; 412 | return overflowing; 413 | } 414 | 415 | function overflowingAncestor(el) { 416 | var elems = []; 417 | var rootScrollHeight = root.scrollHeight; 418 | do { 419 | var cached = cache[uniqueID(el)]; 420 | if (cached) { 421 | return setCache(elems, cached); 422 | } 423 | elems.push(el); 424 | if (rootScrollHeight === el.scrollHeight) { 425 | if (!isFrame || root.clientHeight + 10 < rootScrollHeight) { 426 | return setCache(elems, document.body); // scrolling root in WebKit 427 | } 428 | } else if (el.clientHeight + 10 < el.scrollHeight) { 429 | overflow = getComputedStyle(el, '').getPropertyValue('overflow-y'); 430 | if (overflow === 'scroll' || overflow === 'auto') { 431 | return setCache(elems, el); 432 | } 433 | } 434 | } while (el = el.parentNode); 435 | } 436 | 437 | 438 | /*********************************************** 439 | * HELPERS 440 | ***********************************************/ 441 | 442 | function addEvent(type, fn, bubble) { 443 | window.addEventListener(type, fn, (bubble||false)); 444 | } 445 | 446 | function removeEvent(type, fn, bubble) { 447 | window.removeEventListener(type, fn, (bubble||false)); 448 | } 449 | 450 | function isNodeName(el, tag) { 451 | return (el.nodeName||'').toLowerCase() === tag.toLowerCase(); 452 | } 453 | 454 | function directionCheck(x, y) { 455 | x = (x > 0) ? 1 : -1; 456 | y = (y > 0) ? 1 : -1; 457 | if (direction.x !== x || direction.y !== y) { 458 | direction.x = x; 459 | direction.y = y; 460 | que = []; 461 | lastScroll = 0; 462 | } 463 | } 464 | 465 | var deltaBufferTimer; 466 | 467 | function isTouchpad(deltaY) { 468 | if (!deltaY) return; 469 | deltaY = Math.abs(deltaY) 470 | deltaBuffer.push(deltaY); 471 | deltaBuffer.shift(); 472 | clearTimeout(deltaBufferTimer); 473 | var allDivisable = (isDivisible(deltaBuffer[0], 120) && 474 | isDivisible(deltaBuffer[1], 120) && 475 | isDivisible(deltaBuffer[2], 120)); 476 | return !allDivisable; 477 | } 478 | 479 | function isDivisible(n, divisor) { 480 | return (Math.floor(n / divisor) == n / divisor); 481 | } 482 | 483 | 484 | 485 | function isInsideYoutubeVideo(event) { 486 | var elem = event.target; 487 | var isControl = false; 488 | if (document.URL.indexOf ('www.youtube.com/watch') != -1) { 489 | do { 490 | isControl = (elem.classList && 491 | elem.classList.contains('html5-video-controls')); 492 | if (isControl) break; 493 | } while (elem = elem.parentNode); 494 | } 495 | return isControl; 496 | } 497 | 498 | var requestFrame = (function () { 499 | return window.requestAnimationFrame || 500 | window.webkitRequestAnimationFrame || 501 | function (callback, element, delay) { 502 | window.setTimeout(callback, delay || (1000/60)); 503 | }; 504 | })(); 505 | 506 | var MutationObserver = window.MutationObserver || window.WebKitMutationObserver; 507 | 508 | 509 | /*********************************************** 510 | * PULSE 511 | ***********************************************/ 512 | 513 | /** 514 | * Viscous fluid with a pulse for part and decay for the rest. 515 | * - Applies a fixed force over an interval (a damped acceleration), and 516 | * - Lets the exponential bleed away the velocity over a longer interval 517 | * - Michael Herf, http://stereopsis.com/stopping/ 518 | */ 519 | function pulse_(x) { 520 | var val, start, expx; 521 | // test 522 | x = x * options.pulseScale; 523 | if (x < 1) { // acceleartion 524 | val = x - (1 - Math.exp(-x)); 525 | } else { // tail 526 | // the previous animation ended here: 527 | start = Math.exp(-1); 528 | // simple viscous drag 529 | x -= 1; 530 | expx = 1 - Math.exp(-x); 531 | val = start + (expx * (1 - start)); 532 | } 533 | return val * options.pulseNormalize; 534 | } 535 | 536 | function pulse(x) { 537 | if (x >= 1) return 1; 538 | if (x <= 0) return 0; 539 | 540 | if (options.pulseNormalize == 1) { 541 | options.pulseNormalize /= pulse_(1); 542 | } 543 | return pulse_(x); 544 | } 545 | 546 | var isChrome = /chrome/i.test(window.navigator.userAgent); 547 | var isEdge = /edge/i.test(window.navigator.userAgent); 548 | 549 | // new standard wheel event from Chrome 31+ 550 | var wheelEvent = 'onwheel' in document.createElement('div') ? 'wheel' : 'mousewheel'; 551 | if (wheelEvent && isChrome && !isEdge) { 552 | addEvent(wheelEvent, wheel); 553 | addEvent('mousedown', mousedown); 554 | if (options.keyboardSupport) { 555 | addEvent('keydown', keydown); 556 | } 557 | addEvent('load', init); 558 | } 559 | })(); -------------------------------------------------------------------------------- /css/duoshuo.css: -------------------------------------------------------------------------------- 1 | #ds-thread #ds-reset a.ds-like-thread-button { 2 | border: 1px solid #1abc9c; 3 | box-shadow: none; 4 | border-radius: 20px; 5 | text-shadow: none; 6 | background-color: #2C2A2A; 7 | background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#2C2A2A), color-stop(100%, #2C2A2A), to(#2C2A2A)); 8 | background-image: -webkit-linear-gradient(#2C2A2A, #2C2A2A 100%, #2C2A2A); 9 | background-image: -moz-linear-gradient(top, #2C2A2A, #2C2A2A 100%, #2C2A2A); 10 | background-image: -ms-linear-gradient(#2C2A2A, #2C2A2A 100%, #2C2A2A); 11 | background-image: linear-gradient(#2C2A2A, #2C2A2A 100%, #2C2A2A); 12 | transition: all 350ms; 13 | } 14 | #ds-thread #ds-reset a.ds-like-thread-button:hover { 15 | background-color: rgba(24, 188, 156, 0.5); 16 | } 17 | #ds-thread #ds-reset a.ds-like-thread-button span { 18 | color: #fff; 19 | padding: 0 10px; 20 | font-size: 14px; 21 | transition: all 350ms; 22 | } 23 | #ds-thread #ds-reset a.ds-like-thread-button span:hover { 24 | color: #fff; 25 | padding: 0 20px; 26 | } 27 | #ds-thread #ds-reset a.ds-like-thread-button .ds-icon-heart { 28 | display: none; 29 | } 30 | #ds-reset .ds-highlight { 31 | color: #1abc9c !important; 32 | } 33 | #ds-reset, #ds-related-reads { 34 | color: #fff; 35 | } 36 | #ds-thread #ds-reset .ds-meta { 37 | border-bottom: 2px solid rgba(255,255,255,0.08); 38 | } 39 | #ds-thread #ds-reset a { 40 | } 41 | #ds-thread #ds-reset a:hover { 42 | color: #1abc9c; 43 | } 44 | #ds-thread #ds-reset .ds-toolbar { 45 | font-size: 13px; 46 | } 47 | #ds-thread #ds-reset .ds-toolbar a.ds-visitor-name{ 48 | color: #fff; 49 | } 50 | 51 | #ds-thread #ds-reset .ds-account-control { 52 | font-size: 13px; 53 | font-weight: 700; 54 | } 55 | 56 | #ds-thread #ds-reset .ds-account-control span { 57 | color: #fff; 58 | } 59 | #ds-thread #ds-reset .ds-account-control.ds-active span { 60 | color: #1abc9c; 61 | } 62 | #ds-thread #ds-reset .ds-account-control span:hover { 63 | color: #1abc9c; 64 | } 65 | #ds-thread #ds-reset .ds-account-control ul { 66 | background: #fff; 67 | border: 0; 68 | } 69 | #ds-thread #ds-reset .ds-account-control ul li a { 70 | padding: 7px 10px; 71 | border-bottom-color: #efefef; 72 | color: #2C2A2A; 73 | } 74 | 75 | #ds-thread .ds-account-control ul, #ds-thread .ds-account-control ul li { 76 | width: 90px; 77 | } 78 | #ds-thread #ds-reset .ds-replybox { 79 | margin: 20px 0; 80 | } 81 | #ds-thread #ds-reset .ds-replybox .ds-avatar img { 82 | border-radius: 50px; 83 | } 84 | 85 | #ds-thread #ds-reset .ds-textarea-wrapper { 86 | border: none; 87 | background: #3f3e3d; 88 | border-top-left-radius: 5px; 89 | border-top-right-radius: 5px; 90 | } 91 | 92 | #ds-reset .ds-gradient-bg { 93 | background: #3f3e3d; 94 | } 95 | #ds-thread #ds-reset .ds-post-toolbar { 96 | box-shadow: none; 97 | } 98 | #ds-thread #ds-reset .ds-post-toolbar .ds-post-options { 99 | border-bottom-left-radius: 5px; 100 | border-bottom-right-radius: 5px; 101 | margin-right: 0; 102 | border: none; 103 | } 104 | 105 | #ds-thread #ds-reset .ds-post-toolbar .ds-post-options .ds-sync label { 106 | color: #fff; 107 | } 108 | #ds-thread #ds-reset .ds-post-toolbar .ds-post-options .ds-sync label:hover { 109 | color: #1abc9c; 110 | } 111 | 112 | #ds-thread #ds-reset .ds-post-button { 113 | box-shadow: none; 114 | text-shadow: none; 115 | position: inherit; 116 | font-family: inherit; 117 | margin-top: 10px; 118 | width: 100%; 119 | border-radius: 5px; 120 | border: 1px solid #c8c8c8; 121 | color: #fff; 122 | height: 35px; 123 | background: #2C2A2A; 124 | } 125 | #ds-thread.ds-narrow #ds-reset .ds-post-button { 126 | width: 100%; 127 | } 128 | #ds-thread #ds-reset .ds-post-button:hover { 129 | color: #1abc9c; 130 | border-color: #1abc9c; 131 | background-color: rgba(24, 188, 156, 0.5); 132 | transition: all 350ms; 133 | } 134 | #ds-thread #ds-reset .ds-icon-settings { 135 | display: inline-block; 136 | height: 14px; 137 | margin: 0 4px 0; 138 | background: 0; 139 | } 140 | #ds-thread #ds-reset .ds-icon-settings:before { 141 | font: normal normal normal 14px/1 FontAwesome; 142 | content: "\f013"; 143 | } 144 | 145 | #ds-thread #ds-reset .ds-weibo, #ds-thread #ds-reset .ds-qqt, #ds-thread #ds-reset .ds-qzone, 146 | #ds-thread #ds-reset .ds-weixin, #ds-thread #ds-reset .ds-qq, #ds-thread #ds-reset .ds-renren, 147 | #ds-thread #ds-reset .ds-douban, #ds-thread #ds-reset .ds-kaixin, #ds-thread #ds-reset .ds-baidu, 148 | #ds-thread #ds-reset .ds-google { 149 | display: inline-block; 150 | background: 0; 151 | } 152 | #ds-thread #ds-reset .ds-login-buttons .ds-service-link:before { 153 | font: normal normal normal 14px/1 FontAwesome; 154 | padding-right: 2px; 155 | } 156 | 157 | #ds-thread .ds-weibo:before { 158 | font: normal normal normal 14px/1 FontAwesome; 159 | content: "\f18a"; 160 | } 161 | #ds-thread .ds-qqt:before { 162 | font: normal normal normal 14px/1 FontAwesome; 163 | content: "\f1d5"; 164 | padding: 0 2px; 165 | } 166 | #ds-thread .ds-qzone:before { 167 | font: normal normal normal 14px/1 FontAwesome; 168 | content: "\f1d6"; 169 | } 170 | #ds-thread .ds-weixin:before { 171 | font: normal normal normal 14px/1 FontAwesome; 172 | content: "\f1d7"; 173 | } 174 | #ds-thread .ds-qq:before { 175 | font: normal normal normal 14px/1 FontAwesome; 176 | content: "\f1d6"; 177 | } 178 | #ds-thread .ds-renren:before { 179 | font: normal normal normal 14px/1 FontAwesome; 180 | content: "\f18b"; 181 | } 182 | #ds-thread .ds-douban:before { 183 | font: normal normal normal 14px/1 FontAwesome; 184 | content: " "; 185 | } 186 | #ds-thread .ds-kaixin:before { 187 | font: normal normal normal 14px/1 FontAwesome; 188 | content: " "; 189 | } 190 | #ds-thread .ds-baidu:before { 191 | font: normal normal normal 14px/1 FontAwesome; 192 | content: " "; 193 | } 194 | #ds-thread .ds-google:before { 195 | font: normal normal normal 14px/1 FontAwesome; 196 | content: "\f1a0"; 197 | } 198 | #ds-reset .ds-duoshuo { 199 | background: 0; 200 | line-height: 14px; 201 | } 202 | #ds-thread .ds-duoshuo:before { 203 | font: normal normal normal 15px/1 FontAwesome; 204 | content: "\f086"; 205 | } 206 | 207 | #ds-thread #ds-reset .ds-login-buttons { 208 | font-size: 14px; 209 | font-weight: 500; 210 | padding-bottom: 16px; 211 | text-align: center; 212 | } 213 | #ds-thread #ds-reset .ds-like-tooltip { 214 | color: #555; 215 | } 216 | #ds-thread #ds-reset .ds-like-tooltip li { 217 | width: 120px; 218 | } 219 | #ds-thread #ds-reset .ds-like-tooltip .ds-service-link:before { 220 | margin-right: 5px; 221 | } 222 | 223 | #ds-thread #ds-reset .ds-login-buttons .ds-service-link { 224 | padding-left: 0; 225 | } 226 | #ds-thread #ds-reset .ds-login-buttons a, #ds-thread #ds-reset .ds-login-buttons .ds-more-services { 227 | color: #fff !important; 228 | } 229 | #ds-thread #ds-reset .ds-login-buttons .ds-more-services:hover { 230 | color: #1abc9c !important; 231 | } 232 | 233 | input#ds-sync-checkbox { 234 | min-width: initial; 235 | } 236 | input#ds-sync-checkbox-inline { 237 | min-width: initial; 238 | } 239 | 240 | #ds-thread #ds-reset .ds-sync .ds-weibo { 241 | margin-top: 8px; 242 | padding-left: 8px; 243 | } 244 | #ds-thread #ds-reset .ds-sync .ds-qqt { 245 | margin-left: 4px !important; 246 | } 247 | 248 | #ds-thread #ds-reset .ds-sync a.ds-service-icon { 249 | line-height: 13px; 250 | color: #1abc9c; 251 | } 252 | #ds-thread #ds-reset .ds-sync a.ds-service-icon:before { 253 | } 254 | #ds-thread #ds-reset .ds-sync a.ds-service-icon-grey { 255 | color: #aaa; 256 | line-height: 13px; 257 | } 258 | #ds-thread #ds-reset .ds-sync a.ds-service-icon-grey:before { 259 | } 260 | 261 | #ds-thread #ds-reset .ds-toolbar-button.ds-add-emote, #ds-thread #ds-reset .ds-toolbar-button.ds-add-image { 262 | display: inline-block; 263 | background: 0; 264 | margin-top: 7px; 265 | } 266 | #ds-thread #ds-reset .ds-toolbar-button.ds-add-emote { 267 | padding-left: 5px; 268 | } 269 | #ds-thread #ds-reset .ds-toolbar-button.ds-add-emote:before { 270 | font: normal normal normal 14px/1 FontAwesome; 271 | content: "\f118"; 272 | } 273 | #ds-thread #ds-reset .ds-toolbar-button.ds-add-image:before { 274 | font: normal normal normal 14px/1 FontAwesome; 275 | content: "\f03e"; 276 | } 277 | #ds-reset .ds-icon { 278 | background: 0; 279 | } 280 | 281 | #ds-thread #ds-reset .ds-icon-reply, #ds-thread #ds-reset .ds-icon-like, 282 | #ds-thread #ds-reset .ds-icon-share, #ds-thread #ds-reset .ds-post-report, 283 | #ds-thread #ds-reset .ds-post-delete { 284 | background: 0; 285 | } 286 | #ds-thread #ds-reset a.ds-comment-context { 287 | color: #1abc9c; 288 | } 289 | #ds-thread #ds-reset .ds-comment-actions a .ds-icon { 290 | top: 0; 291 | line-height: 13px; 292 | } 293 | #ds-thread #ds-reset .ds-icon-reply:before { 294 | font: normal normal normal 12px/1 FontAwesome; 295 | content: "\f112"; 296 | } 297 | #ds-thread #ds-reset .ds-icon-like:before { 298 | font: normal normal normal 12px/1 FontAwesome; 299 | content: "\f004"; 300 | } 301 | #ds-thread #ds-reset .ds-icon-share:before { 302 | font: normal normal normal 12px/1 FontAwesome; 303 | content: "\f064"; 304 | } 305 | #ds-thread #ds-reset .ds-icon-report:before { 306 | font: normal normal normal 12px/1 FontAwesome; 307 | content: "\f024"; 308 | } 309 | #ds-thread #ds-reset .ds-icon-delete:before { 310 | font: normal normal normal 12px/1 FontAwesome; 311 | content: "\f1f8"; 312 | } 313 | 314 | #ds-thread #ds-reset .ds-textarea-wrapper textarea, #ds-thread #ds-reset .ds-textarea-wrapper .ds-hidden-text { 315 | color: #fff; 316 | font-size: 15px; 317 | } 318 | #ds-thread #ds-reset .ds-textarea-wrapper textarea:focus { 319 | color: #fff; 320 | } 321 | 322 | #ds-thread #ds-reset .ds-comments { 323 | background-color: #2C2A2A; 324 | border-bottom: 3px solid rgba(255,255,255,0.08); 325 | } 326 | #ds-thread #ds-reset .ds-comments-info { 327 | border-bottom: 2px solid rgba(255,255,255,0.08); 328 | font-size: 15px; 329 | font-weight: 500; 330 | padding: 8px 0 0 0; 331 | } 332 | #ds-thread #ds-reset .ds-comment-body p { 333 | font-size: 15px; 334 | } 335 | #ds-thread #ds-reset .ds-post-self { 336 | padding: 20px 0; 337 | border-top: none; 338 | } 339 | #ds-thread #ds-reset ul.ds-children { 340 | margin-left: 60px; 341 | } 342 | #ds-thread #ds-reset ul.ds-children .ds-comment-body { 343 | padding-left: 60px; 344 | } 345 | #ds-thread #ds-reset .ds-inline-replybox { 346 | padding-left: 60px; 347 | } 348 | #ds-thread #ds-reset ul.ds-children .ds-avatar { 349 | width: 60px; 350 | height: 60px; 351 | } 352 | #ds-thread #ds-reset ul.ds-children .ds-avatar img { 353 | width: 50px; 354 | height: 50px; 355 | } 356 | #ds-thread #ds-reset li.ds-tab { 357 | font-size: 15px; 358 | } 359 | 360 | #ds-thread #ds-reset #ds-hot-posts ul { 361 | border-bottom: 3px solid rgba(255,255,255,0.08); 362 | } 363 | 364 | #ds-thread #ds-reset ul.ds-comments-tabs .ds-highlight { 365 | color: #fff !important; 366 | } 367 | #ds-thread #ds-reset li.ds-post { 368 | border-top: 2px solid rgba(255,255,255,0.08); 369 | } 370 | #ds-thread #ds-reset li.ds-post-placeholder { 371 | color: #fff; 372 | font-size: 15px; 373 | font-weight: 500; 374 | padding: 70px 0; 375 | } 376 | 377 | #ds-thread #ds-reset li.ds-tab a.ds-current { 378 | color: #fff; 379 | border-bottom: 4px solid #1abc9c; 380 | border-radius: 0; 381 | border-top: none; 382 | border-left: none; 383 | border-right: none; 384 | } 385 | #ds-thread #ds-reset li.ds-tab a { 386 | padding-bottom: 3px; 387 | text-shadow: none; 388 | } 389 | #ds-thread #ds-reset .ds-sort a.ds-current, #ds-thread #ds-reset .ds-sort a:active { 390 | color: #fff; 391 | border-bottom: 4px solid #1abc9c; 392 | } 393 | 394 | 395 | #ds-thread #ds-reset .ds-user-name { 396 | color: #1abc9c; 397 | font-weight: 700; 398 | } 399 | #ds-thread #ds-reset .ds-sort a { 400 | color: #ccc; 401 | padding-bottom: 3px; 402 | } 403 | #ds-thread #ds-reset .ds-sort a:hover { 404 | color: #fff; 405 | border-bottom: 4px solid #1abc9c; 406 | } 407 | #ds-thread #ds-reset .ds-time { 408 | color: #909090; 409 | font-size: 13px; 410 | font-weight: 500; 411 | } 412 | #ds-thread #ds-reset .ds-comment-actions a { 413 | color: #909090; 414 | font-size: 13px; 415 | font-weight: 500; 416 | } 417 | #ds-thread #ds-reset #ds-hot-posts { 418 | border: none; 419 | margin: 0; 420 | border-radius: 0; 421 | } 422 | #ds-thread #ds-reset .ds-header { 423 | color: #fff; 424 | } 425 | 426 | #ds-thread #ds-reset .ds-post-liked a.ds-post-likes, #ds-thread #ds-reset .ds-reply-active .ds-post-reply { 427 | color: #1abc9c; 428 | } 429 | 430 | #ds-reset .ds-avatar { 431 | background-color: #2C2A2A; 432 | box-shadow: none; 433 | } 434 | #ds-reset .ds-avatar img { 435 | border-radius: 50px; 436 | } 437 | #ds-thread #ds-reset .ds-powered-by { 438 | display: none; 439 | } 440 | #ds-thread #ds-reset .ds-paginator { 441 | border-bottom: none; 442 | text-align: center; 443 | } 444 | #ds-thread #ds-reset .ds-paginator div.ds-border { 445 | border-top: none; 446 | } 447 | #ds-thread #ds-reset .ds-paginator a { 448 | border: 1px solid #aaa; 449 | border-radius: 50px; 450 | display: inline-block; 451 | height: 40px; 452 | width: 40px; 453 | line-height: 40px; 454 | padding: 0; 455 | color: #fff; 456 | } 457 | #ds-thread #ds-reset .ds-paginator a:hover, #ds-thread #ds-reset .ds-paginator a.ds-current { 458 | border: 1px solid #1abc9c; 459 | border-radius: 50px; 460 | background-color: #1abc9c; 461 | } 462 | #ds-thread #ds-reset .ds-paginator a.ds-current { 463 | color: #fff; 464 | } 465 | @-webkit-keyframes fa-spin { 466 | 0% { 467 | -webkit-transform: rotate(0deg); 468 | transform: rotate(0deg); 469 | } 470 | 100% { 471 | -webkit-transform: rotate(359deg); 472 | transform: rotate(359deg); 473 | } 474 | } 475 | @keyframes fa-spin { 476 | 0% { 477 | -webkit-transform: rotate(0deg); 478 | transform: rotate(0deg); 479 | } 480 | 100% { 481 | -webkit-transform: rotate(359deg); 482 | transform: rotate(359deg); 483 | } 484 | } 485 | #ds-indicator:before { 486 | font: normal normal normal 16px/1 FontAwesome; 487 | content: "\f021"; 488 | } 489 | #ds-indicator { 490 | margin-left: auto; 491 | margin-right: auto; 492 | right: 0; 493 | background: #fff none; 494 | text-align: center; 495 | border-radius: 50px; 496 | color: #2c2a2a; 497 | width: 30px; 498 | height: 30px; 499 | line-height: 30px; 500 | border: 1px solid #fff; 501 | -webkit-animation: fa-spin 2s infinite linear; 502 | animation: fa-spin 2s infinite linear; 503 | } 504 | #ds-thread #ds-reset a.ds-unread-comments-count { 505 | background-color: #1abc9c; 506 | } 507 | #ds-notify { 508 | border: none; 509 | box-shadow: 2px 11px 22px rgba(0, 0, 0, 0.27); 510 | -webkit-box-shadow: 2px 11px 22px rgba(0, 0, 0, 0.27); 511 | padding: 18px 22px; 512 | width: 200px; 513 | text-align: center; 514 | max-width: 250px; 515 | } 516 | #ds-notify #ds-reset { 517 | text-align: center; 518 | } 519 | #ds-notify #ds-reset a.ds-logo { 520 | vertical-align: middle; 521 | display: inline-block; 522 | position: relative; 523 | top: 0; 524 | left: 0; 525 | } 526 | #ds-notify #ds-reset ul.ds-notify-unread { 527 | margin: 0 0 0 6px; 528 | } 529 | #ds-notify #ds-reset ul.ds-notify-unread li a { 530 | color: #2e2e2e; 531 | } 532 | #ds-wrapper #ds-reset .ds-dialog-inner { 533 | border: none; 534 | -webkit-box-shadow: 0 16px 42px rgba(0, 0, 0, 0.42); 535 | 536 | box-shadow: 0 16px 42px rgba(0, 0, 0, 0.42); 537 | background: #fff; 538 | } 539 | #ds-reset .ds-rounded { 540 | border-radius: 5px; 541 | } 542 | #ds-wrapper #ds-reset .ds-dialog-body { 543 | padding: 40px 40px 15px; 544 | background: #fff; 545 | } 546 | #ds-wrapper #ds-reset h2 { 547 | font-size: 22px; 548 | } 549 | #ds-wrapper #ds-reset .ds-unread-list li { 550 | font-size: 14px; 551 | border-top: none; 552 | } 553 | #ds-wrapper #ds-reset .ds-unread-list li a { 554 | color: #1abc9c; 555 | } 556 | 557 | #ds-wrapper #ds-reset .ds-dialog-footer { 558 | border-top: none; 559 | padding: 15px 40px 10px; 560 | background-color: #fafafa; 561 | border-bottom-left-radius: 5px; 562 | border-bottom-right-radius: 5px; 563 | } 564 | #ds-wrapper #ds-reset .ds-dialog-close { 565 | bottom: 10px; 566 | right: 10px; 567 | background: none; 568 | text-align: center; 569 | width: 20px; 570 | height: 20px; 571 | } 572 | #ds-wrapper #ds-reset .ds-dialog-close:before { 573 | content: '\f00d'; 574 | font: normal normal normal 13px/1 FontAwesome; 575 | } 576 | 577 | @media screen and (min-device-pixel-ratio: 1.5){ 578 | #ds-wrapper #ds-reset h2 { 579 | font-weight: 300; 580 | } 581 | } 582 | @media screen and (-webkit-min-device-pixel-ratio: 1.5){ 583 | #ds-wrapper #ds-reset h2 { 584 | font-weight: 300; 585 | } 586 | } 587 | @media screen and (-o-min-device-pixel-ratio: 1.5/1.5){ 588 | #ds-wrapper #ds-reset h2 { 589 | font-weight: 300; 590 | } 591 | } 592 | @media screen and (min--moz-device-pixel-ratio: 1.5){ 593 | #ds-wrapper #ds-reset h2 { 594 | font-weight: 300; 595 | } 596 | } 597 | 598 | /* Theme White Start */ 599 | body.theme-white #ds-thread #ds-reset a.ds-like-thread-button { 600 | background-color: #fff; 601 | background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fff), color-stop(100%, #fff), to(#fff)); 602 | background-image: -webkit-linear-gradient(#fff, #fff 100%, #fff); 603 | background-image: -moz-linear-gradient(top, #fff, #fff 100%, #fff); 604 | background-image: -ms-linear-gradient(#fff, #fff 100%, #fff); 605 | background-image: linear-gradient(#fff, #fff 100%, #fff); 606 | } 607 | body.theme-white #ds-thread #ds-reset a.ds-like-thread-button span { 608 | color: #333; 609 | } 610 | body.theme-white #ds-reset, #ds-related-reads { 611 | color: #191919; 612 | } 613 | body.theme-white #ds-thread #ds-reset .ds-meta { 614 | border-bottom: 2px solid rgba(0,0,0,0.04); 615 | } 616 | body.theme-white #ds-thread #ds-reset .ds-toolbar a.ds-visitor-name{ 617 | color: #333; 618 | } 619 | body.theme-white #ds-thread #ds-reset .ds-account-control span { 620 | color: #333; 621 | } 622 | body.theme-white #ds-thread #ds-reset .ds-account-control ul li a { 623 | color: #333; 624 | } 625 | body.theme-white #ds-thread #ds-reset .ds-textarea-wrapper { 626 | background: rgba(0,0,0,0.04); 627 | } 628 | body.theme-white #ds-reset .ds-gradient-bg { 629 | background: rgba(0,0,0,0.04); 630 | } 631 | body.theme-white #ds-thread #ds-reset .ds-post-toolbar .ds-post-options .ds-sync label { 632 | color: #333; 633 | } 634 | body.theme-white #ds-thread #ds-reset .ds-post-button { 635 | border: 1px solid #777; 636 | color: #777; 637 | background: #fff; 638 | } 639 | body.theme-white #ds-thread #ds-reset .ds-post-button:hover { 640 | color: #1abc9c; 641 | border-color: #1abc9c; 642 | background-color: rgba(24, 188, 156, 0.5); 643 | } 644 | body.theme-white #ds-thread #ds-reset .ds-login-buttons a, #ds-thread #ds-reset .ds-login-buttons .ds-more-services { 645 | color: #333 !important; 646 | } 647 | body.theme-white #ds-thread #ds-reset .ds-textarea-wrapper textarea, #ds-thread #ds-reset .ds-textarea-wrapper .ds-hidden-text { 648 | color: #333; 649 | } 650 | body.theme-white #ds-thread #ds-reset .ds-textarea-wrapper textarea:focus { 651 | color: #333; 652 | } 653 | body.theme-white #ds-thread #ds-reset .ds-comments { 654 | background-color: #fff; 655 | border-bottom: 3px solid rgba(0,0,0,0.04); 656 | } 657 | body.theme-white #ds-thread #ds-reset .ds-comments-info { 658 | border-bottom: 2px solid rgba(0,0,0,0.04); 659 | } 660 | body.theme-white #ds-thread #ds-reset #ds-hot-posts ul { 661 | border-bottom: 3px solid rgba(0,0,0,0.04); 662 | } 663 | body.theme-white #ds-thread #ds-reset ul.ds-comments-tabs .ds-highlight { 664 | color: #333 !important; 665 | } 666 | body.theme-white #ds-thread #ds-reset li.ds-post { 667 | border-top: 2px solid rgba(0,0,0,0.04); 668 | } 669 | body.theme-white #ds-thread #ds-reset li.ds-post-placeholder { 670 | color: #333; 671 | } 672 | body.theme-white #ds-thread #ds-reset li.ds-tab a.ds-current { 673 | color: #333; 674 | background: none; 675 | } 676 | body.theme-white #ds-thread #ds-reset .ds-sort a.ds-current, #ds-thread #ds-reset .ds-sort a:active { 677 | color: #333; 678 | } 679 | body.theme-white #ds-thread #ds-reset .ds-sort a { 680 | color: #555; 681 | } 682 | body.theme-white #ds-thread #ds-reset .ds-sort a:hover { 683 | color: #333; 684 | } 685 | body.theme-white #ds-thread #ds-reset .ds-header { 686 | color: #333; 687 | } 688 | body.theme-white #ds-reset .ds-avatar { 689 | background-color: #fff; 690 | } 691 | body.theme-white #ds-thread #ds-reset .ds-paginator a { 692 | color: #333; 693 | } 694 | body.theme-white #ds-thread #ds-reset .ds-paginator a.ds-current { 695 | color: #fff; 696 | } 697 | body.theme-white #ds-indicator { 698 | background: #333 none; 699 | color: #fff; 700 | border: 1px solid #333; 701 | } 702 | body.theme-white #ds-wrapper #ds-reset .ds-dialog-inner { 703 | background: #333; 704 | } 705 | /* Theme White End */ -------------------------------------------------------------------------------- /css/theme.css: -------------------------------------------------------------------------------- 1 | * { 2 | -webkit-box-sizing: border-box; 3 | -moz-box-sizing: border-box; 4 | box-sizing: border-box; 5 | outline: 0; 6 | } 7 | html,body,div,p,ol,ul,li,dl,dt,dd,h1,h2,h3,h4,h5,h6,form,input,select,button,textarea,iframe,table,th,td,blockquote,img { 8 | margin: 0; 9 | padding: 0; 10 | -webkit-text-size-adjust: 100%; 11 | -webkit-font-smoothing: subpixel-antialiased 12 | } 13 | 14 | html,body { 15 | height: 100%; 16 | } 17 | 18 | body { 19 | background-color: #FFF; 20 | color: #777; 21 | font-size: 87.5%; 22 | font-family: 'Open Sans', "Helvetica Neue", 'Hiragino Sans GB','Microsoft Yahei', Helvetica, arial, sans-serif; 23 | overflow-x: hidden; 24 | } 25 | a { 26 | outline: none !important; 27 | text-decoration: none !important; 28 | color: #1abc9c; 29 | } 30 | .container { 31 | -webkit-box-sizing: border-box; 32 | -moz-box-sizing: border-box; 33 | box-sizing: border-box; 34 | margin-right: auto; 35 | margin-left: auto; 36 | padding-right: 10px; 37 | padding-left: 10px; 38 | max-width: 710px; 39 | } 40 | .row { 41 | margin-right: -10px; 42 | margin-left: -10px 43 | } 44 | 45 | @media(max-width:767px) { 46 | .container { 47 | padding-left: 25px; 48 | padding-right: 25px; 49 | } 50 | #post .post-title a { 51 | font-size: .71em; 52 | } 53 | } 54 | 55 | @media(min-width: 768px) and (max-width:991px) { 56 | .container { 57 | max-width: 710px; 58 | } 59 | .kit-hidden-tb { 60 | display: none 61 | } 62 | } 63 | 64 | @media(min-width: 992px) and (max-width:1301px) { 65 | .kit-hidden { 66 | display: none 67 | } 68 | .container { 69 | max-width: 654px; 70 | } 71 | #index .post a, #post .post-title a, #archive .post a { 72 | font-size: .9em; 73 | } 74 | } 75 | 76 | .clearfix,.row { 77 | zoom: 1 78 | } 79 | 80 | .clearfix:before,.row:before,.clearfix:after,.row:after { 81 | display: table; 82 | content: " " 83 | } 84 | 85 | .clearfix:after,.row:after { 86 | clear: both 87 | } 88 | 89 | .clearfix:after { 90 | clear: both; 91 | display: block; 92 | visibility: hidden; 93 | height: 0; 94 | content: "." 95 | } 96 | 97 | .clearfix { 98 | display: inline-block 99 | } 100 | 101 | .post-meta a,.post-content a,.widget a,.comment-content a { 102 | border-bottom: 1px solid #EEE 103 | } 104 | 105 | .post-meta a:hover,.post-content a:hover,.widget a:hover,.comment-content a:hover { 106 | border-bottom-color: transparent 107 | } 108 | .post-meta .edit { 109 | float: right; 110 | } 111 | 112 | h1> .superscript { 113 | font-size: 0.35em !important; 114 | position: absolute; 115 | padding-left: 7px; 116 | padding-top: 3px; 117 | color: inherit !important;; 118 | } 119 | 120 | h2> .superscript { 121 | font-size: 0.45em !important;; 122 | position: absolute; 123 | padding-left: 7px; 124 | padding-top: 3px; 125 | color: inherit !important;; 126 | } 127 | 128 | .browsehappy { 129 | padding: 8px 0; 130 | background: #fbe3e4; 131 | color: #8a1f11; 132 | text-align: center 133 | } 134 | 135 | .browsehappy a { 136 | color: #8a1f11; 137 | text-decoration: underline; 138 | font-weight: bold 139 | } 140 | 141 | #footer a,#header .nav li a,#post .post-meta a,#index .comments a,#index .post-content a, #post .post-content a, #archive .post-content a{ 142 | position: relative; 143 | white-space: normal; 144 | } 145 | 146 | #footer a:after,#header .nav li a:after,#post .post-meta a:after,#index .comments a:after,#index .post-content a:after,#post .post-content a:after,#archive .post-content a:after{ 147 | position: absolute; 148 | bottom: -2px; 149 | left: 100%; 150 | width: 0; 151 | border-bottom: 1px solid #1abc9c; 152 | content: ""; 153 | transition: width 350ms,left 350ms 154 | } 155 | 156 | #footer a:hover:after,#header .nav li a:hover:after,#post .post-meta a:hover:after,#index .comments a:hover:after,#index .post-content a:hover:after,#post .post-content a:hover:after,#archive .post-content a:hover:after{ 157 | left: 0; 158 | width: 100%; 159 | transition: width 350ms 160 | } 161 | 162 | #wrap { 163 | min-height: 100%; 164 | transition: .5s; 165 | -o-transition: .5s; 166 | -moz-transition: .5s; 167 | -webkit-transition: .5s; 168 | -webkit-transform-origin: bottom; 169 | transform-origin: bottom; 170 | background-color: #fff; 171 | } 172 | 173 | #body { 174 | overflow: hidden; 175 | } 176 | 177 | #post,#archive { 178 | padding: 16px 7px 6px 179 | } 180 | #post-f{ 181 | padding-bottom: 30px; 182 | } 183 | #index { 184 | padding: 36px 10px 6px 185 | } 186 | #index article,#archive article { 187 | padding: 15px 0 20px; 188 | border-bottom: 1px solid #DDD 189 | } 190 | 191 | #index article:last-child, #archive article:last-child { 192 | border-bottom: none; 193 | } 194 | 195 | #index a,#archive a { 196 | text-decoration: none 197 | } 198 | 199 | #index .post-info,#archive .post-info { 200 | margin-bottom: 20px; 201 | color: #999 202 | } 203 | 204 | #index .post-info a,#archive .post-info a { 205 | color: #999 !important; 206 | } 207 | 208 | #index .post-info .comments,#archive .post-info .comments { 209 | float: right 210 | } 211 | 212 | #index .post-content,#index .comment-content,#archive .post-content,#archive .comment-content { 213 | word-wrap: break-word; 214 | } 215 | #index .post-content h1,#index .comment-content h1,#archive .post-content h1,#archive .comment-content h1 { 216 | font-size: 1.75em 217 | } 218 | #index .post-content h2,#index .comment-content h2,#archive .post-content h2,#archive .comment-content h2 { 219 | font-size: 1.75em 220 | } 221 | 222 | #index .post-content hr,#index .comment-content hr,#archive .post-content hr,#archive .comment-content hr { 223 | margin: 2em auto; 224 | border: 1px solid #e9e9e9; 225 | border-width: 2px 0 0 0 226 | } 227 | 228 | #index .post,#archive .post { 229 | padding: 0; 230 | background-color: #fff 231 | } 232 | 233 | #index .post:hover .more,#archive .post:hover .more { 234 | opacity: 1 235 | } 236 | 237 | #index .more>a,#archive .more>a{ 238 | display: block; 239 | padding: 6px 24px; 240 | margin: 0 auto; 241 | font-size: 0.8em; 242 | font-weight: 400; 243 | color: #999; 244 | text-align: center; 245 | white-space: nowrap; 246 | vertical-align: middle; 247 | -ms-touch-action: manipulation; 248 | touch-action: manipulation; 249 | cursor: pointer; 250 | -webkit-user-select: none; 251 | -moz-user-select: none; 252 | -ms-user-select: none; 253 | user-select: none; 254 | background-color: transparent; 255 | border: 1px solid #d2d7d3; 256 | border-radius: 1000000px; 257 | opacity: 1; 258 | transition: all .5s; 259 | width: 180px; 260 | } 261 | #index .more>a:after,#archive .more>a:after, #footer a:after { 262 | border: none; 263 | } 264 | #index .post .post-title,#archive .post .post-title { 265 | margin-bottom: 10px; 266 | padding-bottom: 5px; 267 | color: #333; 268 | font-size: 2.857em; 269 | transition: all .5s; 270 | font-weight: 300; 271 | } 272 | @media all and (max-width: 767px) { 273 | #index .post .post-title,#archive .post .post-title { 274 | font-size: 2.2em; 275 | } 276 | } 277 | 278 | #index .post-content h4,h5 .subhead,#archive .post-content h4,h5 .subhead { 279 | margin: 10px 0; 280 | padding: .2em 0; 281 | font-weight: 500 282 | } 283 | 284 | #index .post-content h4,#archive .post-content h4 { 285 | font-size: 1.429em 286 | } 287 | 288 | #index .post-content,#archive .post-content { 289 | margin-bottom: 10px; 290 | line-height: 1.7em 291 | } 292 | 293 | #index .page-navigator,#archive .page-navigator { 294 | padding: 25px 0 20px; 295 | list-style: none; 296 | text-align: center; 297 | } 298 | 299 | #index .page-navigator li,#archive .page-navigator li { 300 | display: inline-block 301 | } 302 | 303 | #index .page-navigator li a,#archive .page-navigator li a { 304 | display: inline-block; 305 | height: 50px; 306 | width: 50px; 307 | border: 1px solid #DDD; 308 | margin-right: 4px; 309 | line-height: 50px; 310 | border-radius: 100%; 311 | font-size: 0.857em; 312 | color: #333; 313 | } 314 | #index .page-navigator li,#archive .page-navigator li { 315 | display: inline-block; 316 | margin: 0 5px 5px 0; 317 | } 318 | #index .page-navigator li a:before,#archive .page-navigator li a:before { 319 | position: absolute; 320 | top: 0; 321 | left: 0; 322 | width: 1px; 323 | height: 100%; 324 | background-image: -webkit-gradient(linear,left top,left bottom,from(rgba(0,0,0,0.05)),color-stop(50%,rgba(0,0,0,0.1)),to(rgba(0,0,0,0.05))); 325 | background-image: -webkit-linear-gradient(rgba(0,0,0,0.05) 0,rgba(0,0,0,0.1) 50%,rgba(0,0,0,0.05) 100%); 326 | background-image: -moz-linear-gradient(rgba(0,0,0,0.05) 0,rgba(0,0,0,0.1) 50%,rgba(0,0,0,0.05) 100%); 327 | background-image: linear-gradient(rgba(0,0,0,0.05) 0,rgba(0,0,0,0.1) 50%,rgba(0,0,0,0.05) 100%); 328 | content: '' 329 | } 330 | #comments .page-navigator a:hover { 331 | background: #f8f8f8; 332 | } 333 | #index .page-navigator li a:hover,#archive .page-navigator li a:hover { 334 | background: #f8f8f8; 335 | cursor: pointer 336 | } 337 | #index .page-navigator li.current a:hover,#archive .page-navigator li.current a:hover { 338 | background: #1abc9c; 339 | cursor: pointer 340 | } 341 | 342 | #index a, #index a:link, #index a:visited { 343 | text-decoration: none; 344 | cursor: pointer; 345 | } 346 | 347 | #index .page-navigator .current a,#archive .page-navigator .current a { 348 | background: #1abc9c; 349 | color: #fff; 350 | border-color: #1abc9c; 351 | } 352 | 353 | #archive .archive-title { 354 | margin-top: 15px; 355 | text-align: center; 356 | font-weight: 300; 357 | font-size: 3em; 358 | } 359 | @media screen and (max-width: 374px) { 360 | #archive .archive-title { 361 | font-size: 2.4em; 362 | } 363 | } 364 | 365 | #archive .no-content { 366 | text-align: center; 367 | margin-top: 20vh; 368 | } 369 | 370 | #index .subhead { 371 | padding: .2em 0; 372 | border-bottom: 1px solid #eee; 373 | color: #aaa; 374 | letter-spacing: .1em; 375 | font-weight: 500; 376 | font-size: 1.571em 377 | } 378 | 379 | #index .links { 380 | width: 100% 381 | } 382 | 383 | #index .links ul,.links ul li,.links ul li a { 384 | overflow: hidden; 385 | padding-left: 0; 386 | border: 0 387 | } 388 | 389 | #index .links ul li { 390 | float: left; 391 | display: block; 392 | margin: 5px; 393 | border-left: 3px solid #c48f33; 394 | white-space: nowrap; 395 | line-height: 25px; 396 | -webkit-transition: all .5s; 397 | -moz-transition: all .5s; 398 | transition: all .5s 399 | } 400 | 401 | #index .links ul li:nth-child(4n+1) { 402 | border-left-color: rgba(93,178,255,0.7) 403 | } 404 | 405 | #index .links ul li:nth-child(4n+2) { 406 | border-left-color: rgba(240,150,9,0.7) 407 | } 408 | 409 | #index .links ul li:nth-child(4n+3) { 410 | border-left-color: rgba(140,191,38,0.7) 411 | } 412 | 413 | #index .links ul li:hover { 414 | background-image: -webkit-linear-gradient(left,#fcfcfc,#f2f2f2); 415 | background-image: -moz-linear-gradient(left,#fcfcfc,#f2f2f2); 416 | background-image: -ms-linear-gradient(left,#fcfcfc,#f2f2f2); 417 | background-image: -o-linear-gradient(left,#fcfcfc,#f2f2f2); 418 | background-image: linear-gradient(left,#fcfcfc,#f2f2f2); 419 | background-position: 45px 0 420 | } 421 | 422 | #index .links ul li a { 423 | display: block; 424 | border-bottom: 0; 425 | color: #999!important; 426 | text-align: center 427 | } 428 | 429 | #post article { 430 | margin-top: 30px; 431 | margin-bottom: 60px; 432 | } 433 | 434 | #index article a,#post article a,#archive article a { 435 | color: #1abc9c; 436 | text-decoration: none 437 | } 438 | 439 | #post .post-title { 440 | margin-bottom: 15px; 441 | font-family: 'Open Sans', "Helvetica Neue", 'Hiragino Sans GB','Microsoft Yahei', Helvetica, arial, sans-serif; 442 | font-weight: 300; 443 | font-size: 2.857em; 444 | } 445 | 446 | #post .post-title a, #post h1.post-title, #post h2.post-title { 447 | color: #333; 448 | } 449 | 450 | 451 | #post .post-meta { 452 | padding: 0; 453 | list-style: none; 454 | color: #777; 455 | margin-bottom: 30px; 456 | } 457 | 458 | #post .post-meta li { 459 | display: inline-block; 460 | margin-bottom: 15px; 461 | padding: 0 462 | } 463 | 464 | #index .post-content,#post .post-content { 465 | line-height: 1.7em 466 | } 467 | 468 | #post .tags { 469 | clear: both; 470 | display: block; 471 | margin-top: 15px; 472 | padding-top: 10px; 473 | min-height: 32px; 474 | line-height: 23px 475 | } 476 | 477 | #post .keywords a { 478 | margin-right: 5px; 479 | padding: 4px 8px; 480 | border-radius: 3px; 481 | background: rgba(153,153,153,0.1); 482 | color: #999; 483 | text-decoration: none; 484 | font-size: 0.857em 485 | } 486 | 487 | div#comments{ 488 | margin-top: 40px; 489 | } 490 | 491 | #comments a,#comments a:link,#comments a:visited { 492 | color: #1abc9c; 493 | text-decoration: none; 494 | cursor: pointer; 495 | text-transform: capitalize; 496 | } 497 | 498 | #comments a:hover, a:active { 499 | } 500 | 501 | #comments .widget-title { 502 | display: block; 503 | padding-top: 60px; 504 | color: #1abc9c; 505 | font-size: 2.143em; 506 | font-weight: 300; 507 | } 508 | 509 | #comments .comment-meta a { 510 | color: #999; 511 | font-size: .92857em 512 | } 513 | 514 | #comments .comment-author { 515 | display: block; 516 | margin-bottom: 3px; 517 | color: #444 518 | } 519 | 520 | #comments .comment-author .avatar { 521 | float: left; 522 | margin: 1px 10px 0 0; 523 | border-radius: 50px; 524 | width: 50px; 525 | height: 50px; 526 | } 527 | 528 | #comments .comment-author cite { 529 | line-height: 1.2 530 | } 531 | 532 | #comments .comment-awaiting-moderation { 533 | float: right; 534 | margin-top: -20px; 535 | color: #777; 536 | font-style: normal 537 | } 538 | 539 | #comments .comment-list .respond { 540 | margin: 15px 0; 541 | border-top: 1px solid #ddd 542 | } 543 | 544 | #comments .comment-body .respond { 545 | margin: 0 0 25px; 546 | border: 0 547 | } 548 | 549 | #comments .respond .cancel-comment-reply { 550 | float: right; 551 | margin-top: 15px; 552 | font-size: .92857em 553 | } 554 | 555 | #comment-form { 556 | padding-top: 15px; 557 | } 558 | 559 | button,html input[type=button],input[type=reset],input[type=submit] { 560 | cursor: pointer; 561 | -webkit-appearance: button; 562 | overflow: visible 563 | } 564 | 565 | #comment-form .button { 566 | width: 100%; 567 | margin-top: 10px; 568 | } 569 | 570 | #comment-form input { 571 | -webkit-box-sizing: border-box; 572 | -moz-box-sizing: border-box; 573 | box-sizing: border-box; 574 | padding: 5px 6px; 575 | height: 32px; 576 | border: solid 1px #d4d4d4; 577 | background: #fdfdfd; 578 | line-height: 16px; 579 | -ms-box-sizing: border-box 580 | } 581 | 582 | #comment-form input,#comment-form textarea { 583 | display: inline-block; 584 | -webkit-box-sizing: border-box; 585 | -moz-box-sizing: border-box; 586 | box-sizing: border-box; 587 | padding: .5em .6em; 588 | border: 1px solid #ccc 589 | } 590 | 591 | #comment-form textarea { 592 | overflow-y: visible; 593 | margin-top: 10px; 594 | width: 100%; 595 | vertical-align: top 596 | } 597 | 598 | #comment-form input:focus,#comment-form textarea:focus { 599 | outline: 0; 600 | border-color: #129fea 601 | } 602 | 603 | #comment-form input,#comment-form textarea { 604 | display: inline-block; 605 | -webkit-box-sizing: border-box; 606 | -moz-box-sizing: border-box; 607 | box-sizing: border-box; 608 | padding: .5em .6em; 609 | border: 0; 610 | border-radius: 5px; 611 | background: #3f3e3d; 612 | color: #fff; 613 | } 614 | 615 | #comment-form input:focus,#comment-form textarea:focus { 616 | outline: 0; 617 | border-color: #129fea 618 | } 619 | 620 | p>input#submit { 621 | cursor: pointer; 622 | background: transparent; 623 | color: #9e9e9e; 624 | border: 1px solid #c8c8c8; 625 | margin: 0 auto; 626 | border-radius: 5px; 627 | display: block; 628 | padding: 0 16px; 629 | height: 40px; 630 | font-family: inherit; 631 | transition: all .5s ease-out; 632 | } 633 | p>input#submit:hover { 634 | color: #1abc9c; 635 | border: 1px solid #1abc9c; 636 | } 637 | ::selection { 638 | background: #1abc9c; 639 | color: #fff; 640 | text-shadow: none; 641 | } 642 | .comment-children { 643 | padding-left: 45px 644 | } 645 | 646 | .comment-children .comment-children { 647 | padding-left: 0 648 | } 649 | 650 | .comment-content { 651 | overflow: hidden; 652 | margin-right: 50px; 653 | color: #ddd; 654 | } 655 | 656 | #comments .page-navigator { 657 | padding: 25px 0 0; 658 | border-top: 1px solid #ddd; 659 | list-style: none; 660 | text-align: center; 661 | font-size: 1.143em 662 | } 663 | 664 | #comments .page-navigator li { 665 | display: inline-block; 666 | margin: 0 5px 5px 0 667 | } 668 | 669 | #comments .page-navigator a { 670 | display: inline-block; 671 | height: 40px; 672 | width: 40px; 673 | border: 1px solid #DDD; 674 | margin-right: 2px; 675 | line-height: 40px; 676 | border-radius: 100%; 677 | font-size: 0.75em; 678 | } 679 | 680 | #comments .page-navigator a:hover { 681 | background: #f8f8f8; 682 | } 683 | 684 | #comments .page-navigator .current a { 685 | background: #1abc9c; 686 | color: #fff; 687 | border-color: #1abc9c; 688 | } 689 | 690 | #comments .comment-list,.comment-list ol { 691 | margin: 0; 692 | padding: 0; 693 | list-style: none 694 | } 695 | 696 | #comments .comment-list { 697 | margin-top: 10px 698 | } 699 | 700 | #comments .comment-list li.comment-body { 701 | padding: 22px 0 0; 702 | border-top: 2px solid rgba(255, 255, 255, 0.08); 703 | } 704 | 705 | #comments .comment-list li.comment-level-even { 706 | background: #2C2A2A; 707 | } 708 | 709 | #comments .comment-list li .comment-reply { 710 | float: right; 711 | margin-top: -30px; 712 | font-size: .92857em 713 | } 714 | 715 | #comments .comment-content { 716 | padding: 10px 40px 10px 0; 717 | word-wrap: break-word; 718 | line-height: 1.5 719 | } 720 | 721 | #comments .avatar { 722 | position: relative 723 | } 724 | 725 | #footer { 726 | position: relative; 727 | clear: both; 728 | width: 100%; 729 | color: #ccc; 730 | text-align: center; 731 | padding: 10px 0; 732 | background-color: #2c2a2c; 733 | } 734 | 735 | #footer a { 736 | color: #1abc9c; 737 | text-decoration: none 738 | } 739 | 740 | footer#footer .container { 741 | margin-top: 5px 742 | } 743 | div#body-bottom { 744 | background: #2C2A2A; 745 | width: 100%; 746 | } 747 | @media(max-width:500px) { 748 | #post .tags { 749 | text-align: center 750 | } 751 | 752 | .links ul li { 753 | width: 15% 754 | } 755 | } 756 | 757 | @media(min-width:500px) { 758 | #post .tags .dkeywords { 759 | float: left 760 | } 761 | 762 | .links ul li { 763 | width: 22.15% 764 | } 765 | } 766 | 767 | @media(min-width:684px) { 768 | .links ul li { 769 | width: 30% 770 | } 771 | } 772 | 773 | @media (max-width: 1277px) { 774 | #comments #author,#comments #mail,#comments #url { 775 | width: 32.9%; 776 | } 777 | #comment-form { 778 | white-space: nowrap; 779 | } 780 | } 781 | @media(max-width:992px) { 782 | #comments input { 783 | margin-bottom: 5px; 784 | min-width: 32.5% 785 | } 786 | #comments #author,#comments #mail { 787 | width: 49.6% 788 | } 789 | #comment-form { 790 | white-space: normal; 791 | } 792 | #comments #url{ 793 | width: 100% 794 | } 795 | 796 | #index .post .more { 797 | opacity: 1 798 | } 799 | 800 | #header,.post-title,.post-meta { 801 | text-align: left 802 | } 803 | } 804 | 805 | .post-near{ 806 | padding-top: 60px; 807 | } 808 | #post-f .post-near .next { 809 | float: right; 810 | } 811 | #post-f .post-near a { 812 | color: #ccc; 813 | text-decoration: none; 814 | } 815 | #post-f .post-near { 816 | color: #1abc9c; 817 | font-size: 1.571em; 818 | font-weight: 300; 819 | font-style: italic; 820 | } 821 | @media(min-width:1278px) { 822 | #comments input { 823 | width: auto 824 | } 825 | #comment-form { 826 | white-space: nowrap; 827 | } 828 | #comments #author,#comments #mail,#comments #url { 829 | width: 32.89%; 830 | } 831 | 832 | .links ul li { 833 | width: 23.15% 834 | } 835 | } 836 | @media(max-width:610px) { 837 | #comments #author,#comments #mail,#comments #url { 838 | width: 100% 839 | } 840 | #comment-form { 841 | white-space: normal; 842 | } 843 | } 844 | .post-content { 845 | color: #333; 846 | word-wrap: break-word; 847 | font-size: 1.143em; 848 | line-height: 1.7em; 849 | -ms-text-size-adjust: 100%; 850 | -webkit-text-size-adjust: 100% 851 | } 852 | 853 | .post-content a { 854 | background: transparent 855 | } 856 | 857 | .post-content a:active,.post-content a:hover { 858 | outline: 0 859 | } 860 | 861 | .post-content strong { 862 | font-weight: bold; 863 | letter-spacing: 0; 864 | } 865 | 866 | .post-content h1 { 867 | margin: .67em 0; 868 | font-size: 2em 869 | } 870 | 871 | .post-content img { 872 | border: 0 873 | } 874 | 875 | .post-content hr { 876 | -moz-box-sizing: content-box; 877 | box-sizing: content-box; 878 | height: 0 879 | } 880 | 881 | .post-content pre { 882 | overflow: auto 883 | } 884 | 885 | .post-content code,.post-content kbd,.post-content pre { 886 | font-size: .85em; 887 | font-family: monospace,monospace 888 | } 889 | 890 | .post-content input { 891 | margin: 0; 892 | color: inherit; 893 | font: inherit 894 | } 895 | 896 | .post-content html input[disabled] { 897 | cursor: default 898 | } 899 | 900 | .post-content input { 901 | line-height: normal 902 | } 903 | 904 | .post-content input[type="checkbox"] { 905 | -moz-box-sizing: border-box; 906 | box-sizing: border-box; 907 | padding: 0 908 | } 909 | 910 | .post-content table { 911 | border-collapse: collapse; 912 | border-spacing: 0 913 | } 914 | 915 | .post-content td,.post-content th { 916 | padding: 0 917 | } 918 | 919 | .post-content * { 920 | -moz-box-sizing: border-box; 921 | box-sizing: border-box 922 | } 923 | 924 | .post-content input { 925 | font: 13px/1.4 Helvetica,arial,freesans,clean,sans-serif,"Segoe UI Emoji","Segoe UI Symbol" 926 | } 927 | 928 | .post-content a { 929 | color: #4183c4; 930 | text-decoration: none 931 | } 932 | 933 | .post-content a:hover,.post-content a:focus,.post-content a:active { 934 | text-decoration: underline 935 | } 936 | 937 | .post-content hr { 938 | overflow: hidden; 939 | margin: 15px 0; 940 | height: 0; 941 | border: 0; 942 | border-bottom: 1px solid #ddd; 943 | background: transparent 944 | } 945 | 946 | .post-content hr:before { 947 | display: table; 948 | content: "" 949 | } 950 | 951 | .post-content hr:after { 952 | clear: both; 953 | display: table; 954 | content: "" 955 | } 956 | 957 | .post-content h1,.post-content h2,.post-content h3,.post-content h4,.post-content h5,.post-content h6 { 958 | margin-top: 15px; 959 | margin-bottom: 15px; 960 | line-height: 1.1 961 | } 962 | 963 | .post-content h1 { 964 | font-size: 2.143em 965 | } 966 | 967 | .post-content h2 { 968 | font-size: 1.5em 969 | } 970 | 971 | .post-content h3 { 972 | font-size: 1.143em 973 | } 974 | 975 | .post-content h4 { 976 | font-size: 1em 977 | } 978 | 979 | .post-content h5 { 980 | font-size: 0.857em 981 | } 982 | 983 | .post-content h6 { 984 | font-size: 0.786em 985 | } 986 | 987 | .post-content blockquote { 988 | margin: 0 989 | } 990 | 991 | .post-content ul,.post-content ol { 992 | margin-top: 0; 993 | margin-bottom: 0; 994 | padding: 0 995 | } 996 | 997 | .post-content ol ol,.post-content ul ol { 998 | list-style-type: lower-roman 999 | } 1000 | 1001 | .post-content ul ul ol,.post-content ul ol ol,.post-content ol ul ol,.post-content ol ol ol { 1002 | list-style-type: lower-alpha 1003 | } 1004 | 1005 | .post-content ul, .page-content ul { 1006 | padding-left: 0; 1007 | } 1008 | 1009 | .post-content dd { 1010 | margin-left: 0 1011 | } 1012 | @font-face { 1013 | font-family: monospace; 1014 | unicode-range: U+0-2E7F; src: local(monospace); 1015 | unicode-range: U+2E80-FFFF; src: local(PingFang SC), local(Lantinghei SC), local(Hiragino Sans GB), local(Microsoft Yahei), local(WenQuanYi Micro Hei); 1016 | } 1017 | .post-content code { 1018 | font: 13px Consolas, Menlo, Monaco, "lucida console", "Liberation Mono", "Courier New", "andale mono", monospace; 1019 | letter-spacing: 0; 1020 | } 1021 | 1022 | .post-content pre { 1023 | margin-top: 0; 1024 | margin-bottom: 0; 1025 | font: 13px Consolas, Menlo, Monaco, "lucida console", "Liberation Mono", "Courier New", "andale mono", monospace; 1026 | -webkit-overflow-scrolling: touch; 1027 | } 1028 | 1029 | .post-content kbd { 1030 | display: inline-block; 1031 | padding: 3px 5px; 1032 | border: 1px solid #cfcfcf; 1033 | border-radius: 2px; 1034 | background-color: #e7e7e7; 1035 | background-image: -webkit-linear-gradient(#fefefe,#e7e7e7); 1036 | background-image: linear-gradient(#fefefe,#e7e7e7); 1037 | background-repeat: repeat-x; 1038 | color: #000; 1039 | font: 13px Consolas, Menlo, Monaco, "lucida console", "Liberation Mono", "Courier New", "andale mono", monospace; 1040 | line-height: 10px 1041 | } 1042 | 1043 | .post-content>*:first-child { 1044 | margin-top: 0!important 1045 | } 1046 | 1047 | .post-content>*:last-child { 1048 | margin-bottom: 0!important 1049 | } 1050 | 1051 | .post-content h1,.post-content h2,.post-content h3,.post-content h4,.post-content h5,.post-content h6 { 1052 | position: relative; 1053 | margin-top: 1.5em; 1054 | margin-bottom: 16px; 1055 | font-weight: bold; 1056 | line-height: 1.4; 1057 | } 1058 | 1059 | .post-content h3,.post-content h4,.post-content h5,.post-content h6 { 1060 | letter-spacing: 0; 1061 | } 1062 | 1063 | .post-content h1 { 1064 | padding-bottom: .3em; 1065 | border-bottom: 1px solid #eee; 1066 | font-size: 2em; 1067 | line-height: 1.2; 1068 | font-weight: 300; 1069 | } 1070 | 1071 | .post-content h2 { 1072 | padding-bottom: .3em; 1073 | border-bottom: 1px solid #eee; 1074 | font-size: 1.65em; 1075 | line-height: 1.225; 1076 | font-weight: 300; 1077 | } 1078 | 1079 | .post-content h3 { 1080 | font-size: 1.45em; 1081 | line-height: 1.43; 1082 | } 1083 | 1084 | .post-content h4 { 1085 | font-size: 1.25em 1086 | } 1087 | 1088 | .post-content h5 { 1089 | font-size: 1em 1090 | } 1091 | 1092 | .post-content h6 { 1093 | color: #777; 1094 | font-size: 1em 1095 | } 1096 | 1097 | .post-content p,.post-content blockquote,.post-content ul,.post-content ol,.post-content dl,.post-content table,.post-content pre { 1098 | margin-top: 0; 1099 | margin-bottom: 16px; 1100 | text-align: justify; 1101 | } 1102 | 1103 | .post-content hr { 1104 | margin: 16px 0; 1105 | padding: 0; 1106 | height: 4px; 1107 | border: 0 none; 1108 | background-color: #e7e7e7 1109 | } 1110 | 1111 | .post-content ul,.post-content ol { 1112 | padding-left: 2em 1113 | } 1114 | 1115 | .post-content ul ul,.post-content ul ol,.post-content ol ol,.post-content ol ul { 1116 | margin-top: 0; 1117 | margin-bottom: 0 1118 | } 1119 | 1120 | .post-content li>p { 1121 | margin-top: 16px; 1122 | } 1123 | 1124 | .post-content dl { 1125 | padding: 0 1126 | } 1127 | 1128 | .post-content dl dt { 1129 | margin-top: 16px; 1130 | padding: 0; 1131 | font-weight: bold; 1132 | font-style: italic; 1133 | font-size: 1em 1134 | } 1135 | 1136 | .post-content dl dd { 1137 | margin-bottom: 16px; 1138 | padding: 0 16px 1139 | } 1140 | 1141 | .post-content blockquote { 1142 | padding: 0 15px; 1143 | border-left: 4px solid #ddd; 1144 | color: #777 1145 | } 1146 | 1147 | .post-content blockquote>:first-child { 1148 | margin-top: 0 1149 | } 1150 | 1151 | .post-content blockquote>:last-child { 1152 | margin-bottom: 0 1153 | } 1154 | 1155 | .post-content table { 1156 | display: block; 1157 | overflow: auto; 1158 | width: 100%; 1159 | max-width: 100%; 1160 | word-break: normal; 1161 | -webkit-overflow-scrolling: touch; 1162 | } 1163 | 1164 | .post-content table th { 1165 | font-weight: bold 1166 | } 1167 | 1168 | .post-content table th,.post-content table td { 1169 | padding: 6px 13px; 1170 | border: 1px solid #ddd; 1171 | text-align: center; 1172 | } 1173 | 1174 | .post-content table tr { 1175 | border-top: 1px solid #ccc; 1176 | background-color: #fff 1177 | } 1178 | .post-content table tr:nth-child(2n) { 1179 | background-color: #f8f8f8 1180 | } 1181 | .post-content table thead>tr{ 1182 | background-color: #f8f8f8 1183 | } 1184 | 1185 | .post-content img { 1186 | -moz-box-sizing: border-box; 1187 | box-sizing: border-box; 1188 | max-width: 100%; 1189 | display: block; 1190 | margin: 20px auto; 1191 | } 1192 | 1193 | .post-content code { 1194 | margin: 0; 1195 | padding: .2em 0; 1196 | border-radius: 3px; 1197 | background-color: rgba(0,0,0,0.04); 1198 | font-size: .85em 1199 | } 1200 | 1201 | .post-content h1>code, .post-content h2>code, .post-content h3>code, .post-content h4>code { 1202 | padding: .1em 0; 1203 | font-size: .775em; 1204 | } 1205 | 1206 | .post-content code:before,.post-content code:after { 1207 | content: "\00a0"; 1208 | letter-spacing: -0.2em 1209 | } 1210 | 1211 | .post-content pre>code { 1212 | margin: 0; 1213 | padding: 0; 1214 | border: 0; 1215 | background: transparent; 1216 | white-space: pre; 1217 | font-size: 1em; 1218 | word-break: normal 1219 | } 1220 | 1221 | .post-content .highlight { 1222 | margin-bottom: 16px 1223 | } 1224 | 1225 | .post-content .highlight pre,.post-content pre { 1226 | overflow: auto; 1227 | padding: 16px; 1228 | border-radius: 3px; 1229 | background-color: #fafafa; 1230 | font-size: .85em; 1231 | line-height: 1.45 1232 | } 1233 | 1234 | .post-content .highlight pre { 1235 | margin-bottom: 0; 1236 | word-break: normal 1237 | } 1238 | 1239 | .post-content pre { 1240 | word-wrap: normal 1241 | } 1242 | 1243 | .post-content pre code { 1244 | display: inline; 1245 | overflow: initial; 1246 | margin: 0; 1247 | padding: 0; 1248 | max-width: initial; 1249 | border: 0; 1250 | background-color: transparent; 1251 | word-wrap: normal; 1252 | line-height: inherit 1253 | } 1254 | 1255 | .post-content pre code:before,.post-content pre code:after { 1256 | content: normal 1257 | } 1258 | 1259 | .post-content .task-list-item { 1260 | list-style-type: none 1261 | } 1262 | 1263 | .post-content .task-list-item+.task-list-item { 1264 | margin-top: 3px 1265 | } 1266 | 1267 | .post-content .task-list-item input { 1268 | float: left; 1269 | margin: .3em 0 .25em -1.6em; 1270 | vertical-align: middle 1271 | } 1272 | 1273 | .post-content .github-widget a:after { 1274 | border-bottom-width: 0!important 1275 | } 1276 | 1277 | #nprogress .bar { 1278 | background: #1abc9c 1279 | } 1280 | 1281 | #nprogress .peg { 1282 | box-shadow: 0 0 10px #1abc9c,0 0 5px #1abc9c; 1283 | } 1284 | 1285 | #nprogress .spinner-icon { 1286 | border-top-color: #1abc9c; 1287 | border-left-color: #1abc9c; 1288 | } 1289 | 1290 | img[src*="Smilies"] { 1291 | width: 30px; 1292 | } 1293 | .text-left{ 1294 | text-align: left !important; 1295 | } 1296 | .text-right{ 1297 | text-align: right !important; 1298 | } 1299 | .text-center{ 1300 | text-align: center !important; 1301 | } 1302 | #masthead { 1303 | position: relative; 1304 | display: table; 1305 | text-align: center; 1306 | width: 100%; 1307 | padding: 24px 0; 1308 | box-sizing: border-box; 1309 | overflow: hidden; 1310 | transition: all 1s; 1311 | } 1312 | #masthead { 1313 | color: #fff; 1314 | background-color: #1e1e1f; 1315 | } 1316 | 1317 | .blog-background { 1318 | display: table; 1319 | width: 100%; 1320 | background-repeat: no-repeat; 1321 | background-size: cover; 1322 | background-position: center; 1323 | } 1324 | 1325 | .align-middle .inner { 1326 | vertical-align: middle; 1327 | } 1328 | 1329 | .inner { 1330 | display: table-cell; 1331 | vertical-align: top; 1332 | position: relative; 1333 | z-index: 10; 1334 | } 1335 | 1336 | #footer h1, #masthead h1, #footer h2, #masthead h2, #footer p, #masthead p { 1337 | text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.75); 1338 | } 1339 | 1340 | 1341 | .light { 1342 | font-weight: 300 !important; 1343 | } 1344 | .blog-title { 1345 | font-size: 4em; 1346 | line-height: 1.5; 1347 | margin-bottom: 12px; 1348 | } 1349 | #site-title { 1350 | font-size: 1.5em; 1351 | line-height: 60px; 1352 | color: #999; 1353 | float: left; 1354 | } 1355 | 1356 | #site-title a { 1357 | color: #999; 1358 | text-decoration: none; 1359 | font-weight: 300; 1360 | line-height: 60px; 1361 | margin-top: -3px; 1362 | padding-top: 5px; 1363 | outline: 0; 1364 | } 1365 | 1366 | #buttons button { 1367 | display: inline-block; 1368 | padding: 0; 1369 | height: 60px; 1370 | width: 60px; 1371 | border-radius: 100%; 1372 | border: 0; 1373 | cursor: pointer; 1374 | background: transparent; 1375 | line-height: 60px; 1376 | font-size: 1.5em; 1377 | color: #999; 1378 | } 1379 | 1380 | .img-box{ 1381 | margin: 10px auto !important; 1382 | text-align: center !important; 1383 | transition: all 1s !important; 1384 | } 1385 | @media screen and (min-width: 768px){ 1386 | .img-box{ 1387 | background-color: #fafafa; 1388 | padding: 10px 10px 0 10px; 1389 | border-radius: 3px; 1390 | } 1391 | } 1392 | .img-box img { 1393 | display: inline !important; 1394 | margin: 0 0 !important; 1395 | max-width: 305px; 1396 | } 1397 | 1398 | 1399 | #backtop { 1400 | position: fixed; 1401 | bottom: 10px; 1402 | right: 10px; 1403 | height: 60px; 1404 | width: 60px; 1405 | cursor: pointer; 1406 | border-radius: 100%; 1407 | z-index: 10; 1408 | text-align: center; 1409 | font-size: 1.6em; 1410 | opacity: 0; 1411 | background: rgba(255, 255, 255, .1); 1412 | box-shadow: 0 2px 5px rgba(0, 0, 0, 0.117); 1413 | -webkit-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.117); 1414 | -webkit-mask-image: none !important; 1415 | -webkit-transition:.5s ease all; 1416 | -moz-transition:.5s ease all; 1417 | -o-transition:.5s ease all; 1418 | transition:.5s ease all; 1419 | } 1420 | #backtop.show { 1421 | opacity: 1; 1422 | } 1423 | #backtop:hover { 1424 | color: #1abc9c; 1425 | box-shadow: 0 6px 15px rgba(0, 0, 0, 0.2); 1426 | -webkit-box-shadow: 0 6px 15px rgba(0,0,0,0.2); 1427 | -webkit-transform: scale(1.1); 1428 | -moz-transform: scale(1.1); 1429 | -ms-transform: scale(1.1); 1430 | -o-transform: scale(1.1); 1431 | transform: scale(1.1); 1432 | } 1433 | #backtop i { 1434 | margin-right: 0; 1435 | } 1436 | 1437 | #body { 1438 | -webkit-transition:.5s ease all; 1439 | -moz-transition:.5s ease all; 1440 | -o-transition:.5s ease all; 1441 | transition:.5s ease all; 1442 | } 1443 | #canvas{ 1444 | position:fixed; 1445 | top: 0; 1446 | bottom: 0; 1447 | -webkit-transform:translateX(0); 1448 | -moz-transform:translateX(0); 1449 | -ms-transform:translateX(0); 1450 | -o-transform:translateX(0); 1451 | transform:translateX(0); 1452 | -webkit-transition:.5s ease all; 1453 | -moz-transition:.5s ease all; 1454 | -o-transition:.5s ease all; 1455 | transition:.5s ease all; 1456 | } 1457 | #nav { 1458 | width: 280px; 1459 | height: 100%; 1460 | background: #191919; 1461 | position: absolute; 1462 | left: -280px; 1463 | top: 0; 1464 | bottom: 0; 1465 | overflow-y: auto; 1466 | padding-bottom: 100px; 1467 | -webkit-overflow-scrolling : touch; 1468 | -webkit-transition:.5s ease all; 1469 | -moz-transition:.5s ease all; 1470 | -o-transition:.5s ease all; 1471 | transition:.5s ease all; 1472 | } 1473 | 1474 | #wrap.display-nav #canvas { 1475 | -webkit-transform:translateX(280px); 1476 | -moz-transform:translateX(280px); 1477 | -ms-transform:translateX(280px); 1478 | -o-transform:translateX(280px); 1479 | transform:translateX(280px); 1480 | z-index: 888; 1481 | } 1482 | #wrap.display-nav #body { 1483 | -webkit-transform:translateX(140px); 1484 | -moz-transform:translateX(140px); 1485 | -ms-transform:translateX(140px); 1486 | -o-transform:translateX(140px); 1487 | transform:translateX(140px); 1488 | cursor: pointer; 1489 | } 1490 | #wrap.display-nav #toggle-nav { 1491 | -webkit-transform:translateX(248px); 1492 | -moz-transform:translateX(248px); 1493 | -ms-transform:translateX(248px); 1494 | -o-transform:translateX(248px); 1495 | transform:translateX(248px); 1496 | background-color: #191919; 1497 | color: #ccc; 1498 | border: 1px #191919 solid; 1499 | padding: 4px 10px; 1500 | } 1501 | 1502 | /* transition the menu with perspective on "show-nav" */ 1503 | #wrap.display-nav #nav { 1504 | -webkit-transform-origin:100% 50%; 1505 | -moz-transform-origin:100% 50%; 1506 | -ms-transform-origin:100% 50%; 1507 | -o-transform-origin:100% 50%; 1508 | transform-origin:100% 50%; 1509 | } 1510 | 1511 | 1512 | /* UTILITIES 1513 | -------------------------------------------------*/ 1514 | 1515 | a#toggle-nav{ 1516 | top: 20px; 1517 | left: 0; 1518 | font-size: 1.6em; 1519 | position: fixed; 1520 | z-index: 999; 1521 | -webkit-transition: .5s ease all; 1522 | -moz-transition: .5s ease all; 1523 | -o-transition: .5s ease all; 1524 | transition: .5s ease all; 1525 | padding: 2px 20px; 1526 | color: #999; 1527 | background-color: rgba(255,255,255,.9); 1528 | cursor: pointer; 1529 | line-height: 30px; 1530 | border-radius: 40px; 1531 | margin-left: 10px; 1532 | box-shadow: 0 2px 5px rgba(0, 0, 0, 0.117); 1533 | -webkit-box-shadow: 0 2px 5px rgba(0,0,0,0.117); 1534 | } 1535 | @media screen and (max-width: 888px){ 1536 | a#toggle-nav{ 1537 | background-color: rgba(255,255,255,1); 1538 | } 1539 | } 1540 | a#toggle-nav:hover { 1541 | box-shadow: 0 6px 15px rgba(0, 0, 0, 0.2); 1542 | -webkit-box-shadow: 0 6px 15px rgba(0,0,0,0.2); 1543 | -webkit-transform: scale(1.1); 1544 | -moz-transform: scale(1.1); 1545 | -ms-transform: scale(1.1); 1546 | -o-transform: scale(1.1); 1547 | transform: scale(1.1); 1548 | } 1549 | a#toggle-nav.show{ 1550 | left: 0; 1551 | } 1552 | 1553 | a#toggle-nav.hide{ 1554 | left: -85px; 1555 | } 1556 | 1557 | /* TOGGLE NAV 1558 | -------------------------------------------------*/ 1559 | #nav { 1560 | overflow-x: hidden; 1561 | } 1562 | #nav .author { 1563 | text-align: center; 1564 | padding-top: 40px; 1565 | padding-bottom: 40px; 1566 | min-width: 200px; 1567 | } 1568 | #nav .author img { 1569 | border-radius: 100px; 1570 | } 1571 | 1572 | #nav .search-box{ 1573 | position: relative; 1574 | } 1575 | #nav .search-box .search{ 1576 | width: 100%; 1577 | padding: 14px 35px 14px 28px; 1578 | background: #131313 no-repeat 90%; 1579 | border: none; 1580 | color: #1abc9c; 1581 | font-size: 16px; 1582 | -webkit-transition: all 0.3s linear; 1583 | -moz-transition: all 0.3s linear; 1584 | transition: all 0.3s linear; 1585 | text-align: center; 1586 | } 1587 | #nav .search-box .search:focus{ 1588 | background: #2a2b2c no-repeat 90%; 1589 | } 1590 | #nav .search-box .search::-webkit-input-placeholder { 1591 | color: #555; 1592 | } 1593 | #nav .search-box .search-btn{ 1594 | position: absolute; 1595 | top: 10px; 1596 | right: 13px; 1597 | color: #666; 1598 | padding: 5px; 1599 | background-color: transparent; 1600 | border: 0; 1601 | } 1602 | #nav .menu{ 1603 | margin-top: 30px; 1604 | } 1605 | #nav .menu li { 1606 | list-style: none; 1607 | padding: 0; 1608 | } 1609 | #nav *::selection { 1610 | background: transparent; 1611 | } 1612 | #nav .menu li a { 1613 | padding: 6px 28px; 1614 | position: relative; 1615 | line-height: 36px; 1616 | color: #9ba3ad; 1617 | display: block; 1618 | font-size: 1.429em; 1619 | -webkit-transition: color 0.2s linear; 1620 | -moz-transition: color 0.2s linear; 1621 | transition: color 0.2s linear; 1622 | text-align: center; 1623 | font-family: 'Open Sans', "Helvetica Neue", 'Hiragino Sans GB','Microsoft Yahei','WenQuanYi Micro Hei', Helvetica, arial, sans-serif; 1624 | font-weight: 300; 1625 | } 1626 | #nav .menu li a:hover{ 1627 | background: #2a2b2c; 1628 | color: #fff; 1629 | } 1630 | #nav .menu li a i{ 1631 | margin-right: 10px; 1632 | } 1633 | 1634 | #nav::-webkit-scrollbar { 1635 | height:8px; 1636 | width:4px; 1637 | } 1638 | #nav::-webkit-scrollbar-button { 1639 | height:0; 1640 | width:0; 1641 | } 1642 | #nav::-webkit-scrollbar-button:start:decrement,#nav::-webkit-scrollbar-button:end:increment { 1643 | display:block; 1644 | } 1645 | #nav::-webkit-scrollbar-button:vertical:start:increment,#nav::-webkit-scrollbar-button:vertical:end:decrement { 1646 | display:none; 1647 | } 1648 | #nav::-webkit-scrollbar-track:vertical,#nav::-webkit-scrollbar-track:horizontal,#nav::-webkit-scrollbar-thumb:vertical,#nav::-webkit-scrollbar-thumb:horizontal,#nav::-webkit-scrollbar-track:vertical,#nav::-webkit-scrollbar-track:horizontal,#nav::-webkit-scrollbar-thumb:vertical,#nav::-webkit-scrollbar-thumb:horizontal { 1649 | border: solid transparent; 1650 | } 1651 | #nav::-webkit-scrollbar-track:vertical, #nav::-webkit-scrollbar-track:horizontal{ 1652 | background-clip:padding-box; 1653 | background-color:#191919; 1654 | } 1655 | #nav::-webkit-scrollbar-thumb { 1656 | -webkit-box-shadow:inset 1px 1px 0 rgba(0,0,0,.1),inset 0 -1px 0 rgba(0,0,0,.07); 1657 | background-clip:padding-box; 1658 | background-color:rgba(255,255,255,.3); 1659 | min-height:28px; 1660 | padding-top:100px; 1661 | } 1662 | #nav::-webkit-scrollbar-thumb:hover { 1663 | -webkit-box-shadow:inset 1px 1px 1px rgba(0,0,0,.25); 1664 | background-color:rgba(255,255,255,.4); 1665 | } 1666 | #nav::-webkit-scrollbar-thumb:active { 1667 | -webkit-box-shadow:inset 1px 1px 3px rgba(0,0,0,.35); 1668 | background-color:rgba(255,255,255,.5); 1669 | } 1670 | #nav::-webkit-scrollbar-track:vertical,#nav::-webkit-scrollbar-track:horizontal,#nav::-webkit-scrollbar-thumb:vertical,#nav::-webkit-scrollbar-thumb:horizontal { 1671 | border-width:0; 1672 | } 1673 | #nav::-webkit-scrollbar-track:hover { 1674 | -webkit-box-shadow:inset 1px 0 0 rgba(0,0,0,.1); 1675 | background-color:#191919; 1676 | } 1677 | #nav::-webkit-scrollbar-track:active { 1678 | -webkit-box-shadow:inset 1px 0 0 rgba(0,0,0,.14),inset -1px -1px 0 rgba(0,0,0,.07); 1679 | background-color:#191919; 1680 | } 1681 | 1682 | .slide-toggle{ 1683 | cursor: pointer; 1684 | } 1685 | .category-list{ 1686 | background-color: #131313; 1687 | -webkit-transition: all 0.3s linear; 1688 | -moz-transition: all 0.3s linear; 1689 | transition: all 0.3s linear; 1690 | } 1691 | .category-list.hide{ 1692 | display: none; 1693 | -webkit-transition: all 0.3s ease; 1694 | -moz-transition: all 0.3s ease; 1695 | transition: all 0.3s ease; 1696 | overflow: hidden; 1697 | } 1698 | #bottom-msg{ 1699 | margin-top: 30px; 1700 | padding: 100px 0; 1701 | text-align: center; 1702 | font-size: 2.143em; 1703 | color: #1abc9c; 1704 | font-weight: 300; 1705 | background-color: #fafafa; 1706 | } 1707 | #disqus_thread{ 1708 | min-height: 325px; 1709 | } 1710 | #disqus_thread a { 1711 | color: #1abc9c; 1712 | } 1713 | .ds-thread { 1714 | min-height: 325px; 1715 | } 1716 | .ds-thread a { 1717 | color: #1abc9c; 1718 | } 1719 | #about-avatar{ 1720 | text-align: center; 1721 | overflow: visible; 1722 | } 1723 | #about-avatar img{ 1724 | border-radius: 100px; 1725 | } 1726 | .link-box { 1727 | overflow: hidden; 1728 | padding: 70px 35px 35px; 1729 | margin: -50px; 1730 | } 1731 | .link-box a { 1732 | width: 540px; 1733 | background: #fff; 1734 | float: left; 1735 | margin: 0 0 70px; 1736 | color: #2E2E2E; 1737 | text-decoration: none; 1738 | box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1); 1739 | -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1); 1740 | transform: translate3d(0,0,0); 1741 | -webkit-transform: translate3d(0,0,0); 1742 | -webkit-transition: 0.3s; 1743 | transition: 0.3s; 1744 | -webkit-user-select: none; 1745 | -webkit-touch-callout: none; 1746 | -webkit-user-select: none; 1747 | -moz-user-select: none; 1748 | -ms-user-select: none; 1749 | user-select: none; 1750 | 1751 | } 1752 | .link-box a:after { 1753 | border-bottom: none !important; 1754 | } 1755 | .link-box a .thumb { 1756 | font-size: 0; 1757 | overflow: hidden; 1758 | background-color: #f0f0f0; 1759 | } 1760 | .link-box a .thumb img { 1761 | width: 100%; 1762 | height: auto; 1763 | position: relative; 1764 | -webkit-transition: 0.4s; 1765 | transition: 0.4s; 1766 | margin: 0; 1767 | padding: 0; 1768 | } 1769 | .link-box a .content .title h3 { 1770 | vertical-align: middle; 1771 | font-weight: 300; 1772 | font-size: 30px; 1773 | line-height: 53px; 1774 | letter-spacing: -1.5px; 1775 | margin: 0; 1776 | padding: 0; 1777 | color: #2E2E2E; 1778 | } 1779 | .link-box a .content { 1780 | text-align: center; 1781 | -webkit-box-sizing: border-box; 1782 | -moz-box-sizing: border-box; 1783 | box-sizing: border-box; 1784 | } 1785 | .link-box a .content .title { 1786 | padding: 10px 0; 1787 | width: 100%; 1788 | } 1789 | @media screen and (max-width: 319px) { 1790 | .link-box { 1791 | overflow: visible; 1792 | margin: 0; 1793 | padding-left: 10px; 1794 | padding-right: 10px; 1795 | } 1796 | .link-box a { 1797 | width: 100%; 1798 | margin: 0 auto 60px; 1799 | max-width: 400px; 1800 | float: none; 1801 | display: block; 1802 | } 1803 | .link-box a .content .title h3 { 1804 | font-size: 38px; 1805 | line-height: 90px; 1806 | letter-spacing: 0; 1807 | } 1808 | } 1809 | @media screen and (max-width: 710px) and (min-width: 320px) { 1810 | .link-box { 1811 | padding: 70px 50px 50px; 1812 | margin: -50px; 1813 | } 1814 | .link-box a { 1815 | width: calc(50% - 20px); 1816 | } 1817 | .link-box a:nth-of-type(even) { 1818 | float: right; 1819 | } 1820 | } 1821 | @media screen and (max-width: 1170px) and (min-width: 711px) { 1822 | .link-box a { 1823 | width: calc(100% / 3 - 30px); 1824 | margin: 0 15px 60px; 1825 | } 1826 | } 1827 | @media screen and (min-width: 1171px) { 1828 | .link-box a { 1829 | width: calc(100% / 3 - 30px); 1830 | margin: 0 15px 60px; 1831 | } 1832 | } 1833 | 1834 | .rotate{ 1835 | -webkit-transition: all 10s; 1836 | transition: all 10s; 1837 | } 1838 | .rotate:hover{ 1839 | -webkit-transform: rotate(36000deg); 1840 | transform: rotate(36000deg); 1841 | } 1842 | 1843 | .github-widget a { 1844 | padding-bottom: 0 !important; 1845 | } 1846 | .github-box .github-box-title{ 1847 | background: #FCFCFC !important; 1848 | } 1849 | .github-box .github-box-content { 1850 | background: #FFFFFF; 1851 | } 1852 | .github-stats a, .github-widget a.download{ 1853 | border: 1px solid #ddd !important; 1854 | } 1855 | .github-box .github-box-download .download{ 1856 | -webkit-transition: all 0.5s ease; 1857 | -moz-transition: all 0.5s ease; 1858 | transition: all 0.5s ease; 1859 | text-shadow: none !important; 1860 | background: #FFFFFF !important; 1861 | position: absolute !important; 1862 | font-weight: normal !important; 1863 | } 1864 | .github-box, .github-box .github-box-title h3 { 1865 | font-family: 'Open Sans', "Helvetica Neue", 'Hiragino Sans GB','Microsoft Yahei','WenQuanYi Micro Hei', Helvetica, arial, sans-serif; 1866 | } 1867 | .github-box .github-box-title h3 .repo{ 1868 | font-weight: normal !important; 1869 | } 1870 | 1871 | .github-box .github-box-download .updated{ 1872 | letter-spacing: .3px; 1873 | } 1874 | .github-box .github-box-download .download:hover{ 1875 | border-color: #1abc9c !important; 1876 | background-color: rgba(24,188,156,0.4) !important; 1877 | } 1878 | 1879 | @media print { 1880 | body { 1881 | font-size: 75%; 1882 | } 1883 | @page { 1884 | size: A4 portrait; 1885 | } 1886 | @page :left { 1887 | margin-left: 2cm; 1888 | margin-right: 2cm; 1889 | } 1890 | @page :right { 1891 | margin-left: 2cm; 1892 | margin-right: 2cm; 1893 | } 1894 | pre { 1895 | white-space: pre-wrap; /* CSS 3 */ 1896 | white-space: -moz-pre-wrap; /* Mozilla, since 1999 */ 1897 | white-space: -pre-wrap; /* Opera 4-6 */ 1898 | white-space: -o-pre-wrap; /* Opera 7 */ 1899 | word-wrap: break-word; /* Internet Explorer 5.5+ */ 1900 | font-size: 7pt !important; 1901 | } 1902 | .post-content pre code { 1903 | white-space: pre-wrap; /* CSS 3 */ 1904 | white-space: -moz-pre-wrap; /* Mozilla, since 1999 */ 1905 | white-space: -pre-wrap; /* Opera 4-6 */ 1906 | white-space: -o-pre-wrap; /* Opera 7 */ 1907 | word-wrap: break-word; /* Internet Explorer 5.5+ */ 1908 | } 1909 | .post-content>p { 1910 | font-size: 10pt !important; 1911 | } 1912 | #body-bottom, #backtop, #toggle-nav, #masthead { 1913 | display: none; 1914 | } 1915 | #post article { 1916 | margin-top: 0; 1917 | } 1918 | } 1919 | @media screen and (min-device-pixel-ratio: 1.5){ 1920 | body{ 1921 | font-family: 'Merriweather', "Helvetica Neue", 'Hiragino Sans GB','Microsoft Yahei','WenQuanYi Micro Hei', Helvetica, arial, sans-serif; 1922 | font-weight: 300; 1923 | } 1924 | code{ 1925 | -webkit-font-smoothing: antialiased !important; 1926 | } 1927 | #post .post-title { 1928 | font-family: 'Merriweather', "Helvetica Neue", 'Hiragino Sans GB','Microsoft Yahei','WenQuanYi Micro Hei', Helvetica, arial, sans-serif; 1929 | -webkit-font-smoothing: antialiased !important; 1930 | } 1931 | #nav .menu li a { 1932 | font-family: 'Merriweather', "Helvetica Neue", 'Hiragino Sans GB','Microsoft Yahei','WenQuanYi Micro Hei', Helvetica, arial, sans-serif; 1933 | } 1934 | .github-box, .github-box .github-box-title h3 { 1935 | font-family: 'Merriweather', "Helvetica Neue", 'Hiragino Sans GB','Microsoft Yahei','WenQuanYi Micro Hei', Helvetica, arial, sans-serif !important; 1936 | } 1937 | .post-content pre>code { 1938 | font-size: .925em; 1939 | } 1940 | .post-content code { 1941 | font-size: .8em 1942 | } 1943 | .post-content h1>code, .post-content h2>code, .post-content h3>code, .post-content h4>code { 1944 | padding: .1em 0; 1945 | font-size: .7em; 1946 | } 1947 | } 1948 | @media screen and (-webkit-min-device-pixel-ratio: 1.5){ 1949 | body{ 1950 | font-family: 'Merriweather', "Helvetica Neue", 'Hiragino Sans GB','Microsoft Yahei','WenQuanYi Micro Hei', Helvetica, arial, sans-serif; 1951 | font-weight: 300; 1952 | } 1953 | code{ 1954 | -webkit-font-smoothing: antialiased !important; 1955 | } 1956 | #post .post-title { 1957 | font-family: 'Merriweather', "Helvetica Neue", 'Hiragino Sans GB','Microsoft Yahei','WenQuanYi Micro Hei', Helvetica, arial, sans-serif; 1958 | -webkit-font-smoothing: antialiased !important; 1959 | } 1960 | #nav .menu li a { 1961 | font-family: 'Merriweather', "Helvetica Neue", 'Hiragino Sans GB','Microsoft Yahei','WenQuanYi Micro Hei', Helvetica, arial, sans-serif; 1962 | } 1963 | .github-box, .github-box .github-box-title h3 { 1964 | font-family: 'Merriweather', "Helvetica Neue", 'Hiragino Sans GB','Microsoft Yahei','WenQuanYi Micro Hei', Helvetica, arial, sans-serif !important; 1965 | } 1966 | .post-content pre>code { 1967 | font-size: .925em; 1968 | } 1969 | .post-content code { 1970 | font-size: .8em 1971 | } 1972 | .post-content h1>code, .post-content h2>code, .post-content h3>code, .post-content h4>code { 1973 | padding: .1em 0; 1974 | font-size: .7em; 1975 | } 1976 | } 1977 | @media screen and (-o-min-device-pixel-ratio: 1.5/1.5){ 1978 | body{ 1979 | font-family: 'Merriweather', "Helvetica Neue", 'Hiragino Sans GB','Microsoft Yahei','WenQuanYi Micro Hei', Helvetica, arial, sans-serif; 1980 | font-weight: 300; 1981 | } 1982 | code{ 1983 | -webkit-font-smoothing: antialiased !important; 1984 | } 1985 | #post .post-title { 1986 | font-family: 'Merriweather', "Helvetica Neue", 'Hiragino Sans GB','Microsoft Yahei','WenQuanYi Micro Hei', Helvetica, arial, sans-serif; 1987 | -webkit-font-smoothing: antialiased !important; 1988 | } 1989 | #nav .menu li a { 1990 | font-family: 'Merriweather', "Helvetica Neue", 'Hiragino Sans GB','Microsoft Yahei','WenQuanYi Micro Hei', Helvetica, arial, sans-serif; 1991 | } 1992 | .github-box, .github-box .github-box-title h3 { 1993 | font-family: 'Merriweather', "Helvetica Neue", 'Hiragino Sans GB','Microsoft Yahei','WenQuanYi Micro Hei', Helvetica, arial, sans-serif !important; 1994 | } 1995 | .post-content pre>code { 1996 | font-size: .925em; 1997 | } 1998 | .post-content code { 1999 | font-size: .8em 2000 | } 2001 | .post-content h1>code, .post-content h2>code, .post-content h3>code, .post-content h4>code { 2002 | padding: .1em 0; 2003 | font-size: .7em; 2004 | } 2005 | } 2006 | @media screen and (min--moz-device-pixel-ratio: 1.5){ 2007 | body{ 2008 | font-family: 'Merriweather', "Helvetica Neue", 'Hiragino Sans GB','Microsoft Yahei','WenQuanYi Micro Hei', Helvetica, arial, sans-serif; 2009 | font-weight: 300; 2010 | } 2011 | code{ 2012 | -webkit-font-smoothing: antialiased !important; 2013 | } 2014 | #post .post-title { 2015 | font-family: 'Merriweather', "Helvetica Neue", 'Hiragino Sans GB','Microsoft Yahei','WenQuanYi Micro Hei', Helvetica, arial, sans-serif; 2016 | -webkit-font-smoothing: antialiased !important; 2017 | } 2018 | #nav .menu li a { 2019 | font-family: 'Merriweather', "Helvetica Neue", 'Hiragino Sans GB','Microsoft Yahei','WenQuanYi Micro Hei', Helvetica, arial, sans-serif; 2020 | } 2021 | .github-box, .github-box .github-box-title h3 { 2022 | font-family: 'Merriweather', "Helvetica Neue", 'Hiragino Sans GB','Microsoft Yahei','WenQuanYi Micro Hei', Helvetica, arial, sans-serif !important; 2023 | } 2024 | .post-content pre>code { 2025 | font-size: .925em; 2026 | } 2027 | .post-content code { 2028 | font-size: .8em 2029 | } 2030 | .post-content h1>code, .post-content h2>code, .post-content h3>code, .post-content h4>code { 2031 | padding: .1em 0; 2032 | font-size: .7em; 2033 | } 2034 | } 2035 | /* Theme White Start */ 2036 | body.theme-white { 2037 | background: #fafafa; 2038 | } 2039 | body.theme-white #nav { 2040 | background: #fafafa; 2041 | border-right: 1px solid #efefef; 2042 | } 2043 | body.theme-white #nav .search-box .search { 2044 | background-color: #fff; 2045 | } 2046 | body.theme-white .category-list{ 2047 | background-color: #fff; 2048 | } 2049 | body.theme-white #nav .search-box .search:focus { 2050 | background-color: #efefef; 2051 | } 2052 | body.theme-white #nav .menu li a { 2053 | color: #333; 2054 | } 2055 | body.theme-white #nav .menu li a:hover { 2056 | background: #efefef; 2057 | color: #333; 2058 | } 2059 | body.theme-white #wrap.display-nav #toggle-nav { 2060 | background-color: #fafafa; 2061 | color: #333; 2062 | border: 1px solid #fafafa; 2063 | } 2064 | body.theme-white div#body-bottom { 2065 | background: #fff; 2066 | } 2067 | body.theme-white .post-near { 2068 | padding-top: 0; 2069 | } 2070 | body.theme-white #post-f .post-near a { 2071 | color: #333; 2072 | } 2073 | 2074 | body.theme-white #comment-form input, body.theme-white #comment-form textarea { 2075 | background: #fafafa; 2076 | color: #333; 2077 | } 2078 | body.theme-white .comment-content { 2079 | color: #333; 2080 | } 2081 | 2082 | body.theme-white p>input#submit { 2083 | color: #777; 2084 | border: 1px solid #777; 2085 | } 2086 | body.theme-white #footer { 2087 | background-color: #fafafa; 2088 | color: #777; 2089 | padding: 20px 0; 2090 | } 2091 | body.theme-white #footer h1, #footer h2, #footer p { 2092 | text-shadow: none; 2093 | } 2094 | 2095 | body.theme-white #nav::-webkit-scrollbar-track:vertical, body.theme-white #nav::-webkit-scrollbar-track:horizontal{ 2096 | background-color:#fafafa; 2097 | } 2098 | body.theme-white #nav::-webkit-scrollbar-thumb { 2099 | -webkit-box-shadow:inset 1px 1px 0 rgba(255,255,255,.1),inset 0 -1px 0 rgba(255,255,255,.07); 2100 | background-color:rgba(0,0,0,.3); 2101 | } 2102 | body.theme-white #nav::-webkit-scrollbar-thumb:hover { 2103 | -webkit-box-shadow:inset 1px 1px 1px rgba(255,255,255,.25); 2104 | background-color:rgba(0,0,0,.4); 2105 | } 2106 | body.theme-white #nav::-webkit-scrollbar-thumb:active { 2107 | -webkit-box-shadow:inset 1px 1px 3px rgba(255,255,255,.35); 2108 | background-color:rgba(0,0,0,.5); 2109 | } 2110 | body.theme-white #nav::-webkit-scrollbar-track:hover { 2111 | -webkit-box-shadow:inset 1px 0 0 rgba(255,255,255,.1); 2112 | background-color:#fafafa; 2113 | } 2114 | body.theme-white #nav::-webkit-scrollbar-track:active { 2115 | -webkit-box-shadow:inset 1px 0 0 rgba(255,255,255,.14),inset -1px -1px 0 rgba(255,255,255,.07); 2116 | background-color:#fafafa; 2117 | } 2118 | /* Theme White End */ 2119 | 2120 | /* Theme Dark Start */ 2121 | body.theme-dark{ 2122 | color: #CCC; 2123 | background: #2c2a2a; 2124 | } 2125 | body.theme-dark #body { 2126 | background-color: #3c3c3c !important; 2127 | } 2128 | body.theme-dark #masthead { 2129 | box-shadow: 0 2px 7px rgba(0, 0, 0, 0.7); 2130 | -webkit-box-shadow: 0 2px 7px rgba(0, 0, 0, 0.7); 2131 | } 2132 | body.theme-dark #wrap { 2133 | background-color: #3c3c3c; 2134 | } 2135 | body.theme-dark #index .post-content a:not(.no-icon), body.theme-dark #archive .post-content a:not(.no-icon),body.theme-dark #post .post-content a:not(.no-icon) { 2136 | color: #1abc9c; 2137 | } 2138 | body.theme-dark #index .post, body.theme-dark #archive .post { 2139 | background-color: #3c3c3c; 2140 | } 2141 | body.theme-dark #index .post .post-title,body.theme-dark #archive .post .post-title, body.theme-dark #post .post-title a, body.theme-dark #post h1.post-title, body.theme-dark #post h2.post-title { 2142 | color: #bcbcbc; 2143 | } 2144 | body.theme-dark #index article,body.theme-dark #archive article { 2145 | border-bottom-color: #5e5e5e; 2146 | } 2147 | body.theme-dark .post-content h1, body.theme-dark .post-content h2 { 2148 | border-bottom-color: #4d4d4d; 2149 | } 2150 | body.theme-dark .post-meta a,body.theme-dark .post-content a,.widget a,body.theme-dark .comment-content a { 2151 | border-bottom-color: #4d4d4d; 2152 | } 2153 | body.theme-dark #index .more>a,body.theme-dark #archive .more>a{ 2154 | border-color: #5f5f5f; 2155 | color: #999 !important; 2156 | } 2157 | body.theme-dark #index .page-navigator li a:hover,body.theme-dark #archive .page-navigator li a:hover { 2158 | background: #474747; 2159 | } 2160 | body.theme-dark #index .page-navigator li a,body.theme-dark #archive .page-navigator li a { 2161 | color: #bcbcbc; 2162 | } 2163 | body.theme-dark .post-content { 2164 | color: #bcbcbc; 2165 | } 2166 | body.theme-dark .post-content .highlight pre,body.theme-dark .post-content pre { 2167 | background-color: #474747; 2168 | } 2169 | @media screen and (min-width: 768px){ 2170 | body.theme-dark .img-box { 2171 | background-color: #474747; 2172 | } 2173 | } 2174 | body.theme-dark #post article a { 2175 | color: #bcbcbc; 2176 | } 2177 | body.theme-dark #bottom-msg { 2178 | background-color: #373737; 2179 | } 2180 | body.theme-dark a#toggle-nav{ 2181 | background-color: rgba(60,60,60,1); 2182 | } 2183 | body.theme-dark #links a { 2184 | background: #404040; 2185 | color: #aeaeae; 2186 | } 2187 | body.theme-dark #links a .thumb { 2188 | background-color: #404040; 2189 | } 2190 | body.theme-dark .archives a { 2191 | color: #bcbcbc !important; 2192 | } 2193 | body.theme-dark .archives a:hover { 2194 | background: #4d4d4d !important; 2195 | } 2196 | body.theme-dark .post-content table th,body.theme-dark .post-content table td { 2197 | border-color: #5f5f5f; 2198 | } 2199 | body.theme-dark .post-content table tr { 2200 | background-color: #3c3c3c; 2201 | } 2202 | body.theme-dark .post-content table tr:nth-child(2n) { 2203 | background-color: #4c4c4c 2204 | } 2205 | body.theme-dark .post-content table thead>tr{ 2206 | background-color: #4c4c4c 2207 | } 2208 | body.theme-dark .post-content hr { 2209 | background-color: #4f4f4f; 2210 | } 2211 | body.theme-dark .post-content blockquote { 2212 | border-left-color: #5f5f5f; 2213 | color: #888; 2214 | background-color: #404040; 2215 | } 2216 | body.theme-dark .github-box { 2217 | border-color: #5e5e5e !important; 2218 | background-color: #4d4d4d !important; 2219 | } 2220 | body.theme-dark .github-box .github-box-title{ 2221 | background: #4d4d4d !important; 2222 | border-color: #5e5e5e !important; 2223 | } 2224 | body.theme-dark .github-box .github-box-content{ 2225 | background: #3c3c3c; 2226 | } 2227 | body.theme-dark .github-box .github-box-download{ 2228 | border-color: #5e5e5e !important; 2229 | background: #3c3c3c !important; 2230 | } 2231 | body.theme-dark .github-box .github-box-download .updated strong{ 2232 | color: #bcbcbc !important; 2233 | } 2234 | body.theme-dark .github-stats a, body.theme-dark .github-widget a.download{ 2235 | border: 1px solid #5e5e5e !important; 2236 | } 2237 | body.theme-dark .github-box .github-box-download .download{ 2238 | background: #3c3c3c !important; 2239 | } 2240 | body.theme-dark .zoom-overlay { 2241 | background-color: #3c3c3c !important; 2242 | } 2243 | 2244 | /* Theme Dark End */ --------------------------------------------------------------------------------