├── .gitignore ├── LICENSE ├── README.md ├── assets ├── css │ └── style.css ├── favicon.ico ├── favicon │ ├── apple-touch-icon-114x114.png │ ├── apple-touch-icon-120x120.png │ ├── apple-touch-icon-144x144.png │ ├── apple-touch-icon-152x152.png │ ├── apple-touch-icon-57x57.png │ ├── apple-touch-icon-60x60.png │ ├── apple-touch-icon-72x72.png │ ├── apple-touch-icon-76x76.png │ ├── code.txt │ ├── favicon-128.png │ ├── favicon-16x16.png │ ├── favicon-196x196.png │ ├── favicon-32x32.png │ ├── favicon-96x96.png │ ├── favicon.ico │ ├── mstile-144x144.png │ ├── mstile-150x150.png │ ├── mstile-310x150.png │ ├── mstile-310x310.png │ └── mstile-70x70.png ├── fonts │ ├── icomoon.eot │ ├── icomoon.svg │ ├── icomoon.ttf │ ├── icomoon.woff │ └── selection.json ├── img │ ├── algolia.svg │ ├── avatar.jpg │ ├── azure.svg │ ├── baidu.svg │ ├── classy_fabric_@2X.png │ ├── google.svg │ ├── logo.png │ └── logo.psd └── js │ ├── app.js │ └── vendor.js ├── author.hbs ├── default.hbs ├── gulpfile.js ├── index.hbs ├── package.json ├── page.hbs ├── partials ├── footer.hbs ├── header.hbs ├── loop.hbs ├── navigation.hbs ├── pagination.hbs └── search.hbs ├── post.hbs ├── src ├── assets │ ├── favicon.ico │ ├── favicon │ │ ├── apple-touch-icon-114x114.png │ │ ├── apple-touch-icon-120x120.png │ │ ├── apple-touch-icon-144x144.png │ │ ├── apple-touch-icon-152x152.png │ │ ├── apple-touch-icon-57x57.png │ │ ├── apple-touch-icon-60x60.png │ │ ├── apple-touch-icon-72x72.png │ │ ├── apple-touch-icon-76x76.png │ │ ├── code.txt │ │ ├── favicon-128.png │ │ ├── favicon-16x16.png │ │ ├── favicon-196x196.png │ │ ├── favicon-32x32.png │ │ ├── favicon-96x96.png │ │ ├── favicon.ico │ │ ├── mstile-144x144.png │ │ ├── mstile-150x150.png │ │ ├── mstile-310x150.png │ │ ├── mstile-310x310.png │ │ └── mstile-70x70.png │ ├── fonts │ │ ├── icomoon.eot │ │ ├── icomoon.svg │ │ ├── icomoon.ttf │ │ ├── icomoon.woff │ │ └── selection.json │ ├── img │ │ ├── algolia.svg │ │ ├── avatar.jpg │ │ ├── azure.svg │ │ ├── baidu.svg │ │ ├── google.svg │ │ ├── logo.png │ │ └── logo.psd │ ├── js │ │ ├── app.js │ │ └── search.js │ └── less │ │ ├── base.less │ │ ├── content.less │ │ ├── fonts.less │ │ ├── footer.less │ │ ├── header.less │ │ ├── loader.less │ │ ├── main.less │ │ ├── normalize.less │ │ ├── search.less │ │ └── style.less ├── author.hbs ├── default.hbs ├── index.hbs ├── page.hbs ├── partials │ ├── footer.hbs │ ├── header.hbs │ ├── loop.hbs │ ├── navigation.hbs │ └── pagination.hbs ├── post.hbs └── tag.hbs └── tag.hbs /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/* 2 | bower_components/* 3 | .DS_Store 4 | assets/img/works 5 | src/assets/img/works -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2016 Art Chen 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Ghost Theme Memory 2 | 3 | Update: this theme is no longer maintained. 4 | 5 | Memory is a minimal theme for [Ghost](https://ghost.org). 6 | 7 | This theme is also available on: 8 | 9 | Hexo version: [hexo-theme-memory](https://github.com/artchen/hexo-theme-memory) 10 | 11 | ## Production 12 | 13 | If you are going to use Memory directly (without customization). 14 | 15 | ``` 16 | cd /content/themes/ 17 | git clone https://github.com/artchen/ghost-theme-memory.git memory 18 | ``` 19 | 20 | Since Memory was a private theme used on [otakism.org](http://otakism.org), my blog, there are quite a lot of things hard-coded into the template that you'll need to change. Here is a checklist for (most of) them: 21 | 22 | * Site logo: `assets/img/logo.png` 23 | * Short text under the logo: `partials/header.hbs` 24 | * Social network: `partials/footer.hbs` 25 | * Search integration: support [Google Custom Search Engine](https://cse.google.com), please replace the api key and engine id in `assets/js/app.js` with yours. If you don't intend to use CSE, please set the corresponding option to false. 26 | * Excerpt generation: the theme generates supports `` excerpt with front-end regex. If you don't like this feature, please set the corresponding option to false in `assets/js/app.js`. 27 | * Fonts: the default English fonts are from [Typekit](https://typekit.com/). If you are using Typekit like me, please replace the embedded Javascript code in `default.hbs`, else you can delete the code. 28 | * Disqus integration: I no longer hardcode the integration code into `post.hbs` and `page.hbs`, please copy and paste the following code into Ghost code injection. 29 | 30 | ```html 31 | 42 | ``` 43 | 44 | ## Development 45 | 46 | Clone the repository. 47 | 48 | ``` 49 | cd /content/themes/ 50 | git clone https://github.com/artchen/ghost-theme-memory.git memory 51 | ``` 52 | 53 | Install [gulp](http://gulpjs.com/) and [npm](https://www.npmjs.com/) before proceed. 54 | 55 | Install and build the app: 56 | 57 | ``` 58 | cd ./memory 59 | npm install 60 | gulp 61 | ``` 62 | 63 | At this point the development environment should be good to go. 64 | 65 | ## Update 66 | 67 | ``` 68 | cd /content/themes/memory/ 69 | git pull 70 | ``` 71 | 72 | ## Demo 73 | 74 | Please visit my blog (in Chinese) for a demo of this theme. [https://otakism.com](https://otakism.com). 75 | 76 | Here is a screenshot for quick preview: 77 | 78 | ![Memory Demo](https://cdn.otakism.com/assets/hexo-theme-memory/demo/ghost-theme-memory-screenshot.jpg) 79 | 80 | ## Copyright 81 | 82 | Public resources used in this theme: 83 | 84 | * [icomoon](https://icomoon.io/) 85 | * [normalize.css](https://necolas.github.io/normalize.css/) 86 | 87 | Copyright © Art Chen 88 | 89 | Please do not remove the "Theme Memory designed by Art Chen" text and links. 90 | 91 | 请不要删除页面底部的作者信息和链接。 92 | 93 | -------------------------------------------------------------------------------- /assets/css/style.css: -------------------------------------------------------------------------------- 1 | @charset "utf-8";img,legend{border:0}pre,textarea{overflow:auto}*,legend,td,th{padding:0}*,body{margin:0}body,html{width:100%;height:100%}a,body{color:#414141}body,h1,h2,h3,h4,h5,h6{text-rendering:geometricPrecision}#header,.site-wrapper,a{transition:all .24s ease}a,a:hover{text-decoration:none}@font-face{font-family:icomoon;src:url(../fonts/icomoon.eot?7jyvbf);src:url(../fonts/icomoon.eot?7jyvbf#iefix) format('embedded-opentype'),url(../fonts/icomoon.ttf?7jyvbf) format('truetype'),url(../fonts/icomoon.woff?7jyvbf) format('woff'),url(../fonts/icomoon.svg?7jyvbf#icomoon) format('svg');font-weight:400;font-style:normal}[class*=" icon-"],[class^=icon-]{font-family:icomoon!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-close:before{content:"\e5cd"}.icon-search:before{content:"\e8b6"}.icon-chevron-down:before{content:"\e900"}.icon-chevron-left:before{content:"\e901"}.icon-chevron-right:before{content:"\e902"}.icon-chevron-thin-down:before{content:"\e903"}.icon-chevron-thin-left:before{content:"\e904"}.icon-chevron-thin-right:before{content:"\e905"}.icon-chevron-thin-up:before{content:"\e906"}.icon-chevron-up:before{content:"\e907"}.icon-mail:before{content:"\e90d"}.icon-menu:before{content:"\e908"}.icon-rss:before{content:"\e90a"}.icon-user:before{content:"\e90b"}.icon-vcard:before{content:"\e909"}.icon-sina-weibo:before{content:"\e90e"}.icon-facebook:before{content:"\e90f"}.icon-github:before{content:"\e910"}.icon-google:before{content:"\e911"}.icon-instagram:before{content:"\e912"}.icon-pinterest:before{content:"\e913"}.icon-tumblr:before{content:"\e914"}.icon-twitter:before{content:"\e915"}/*! normalize.css v3.0.2 | MIT License | git.io/normalize */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,optgroup,strong{font-weight:700}dfn{font-style:italic}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{tab-size:2;-moz-tab-size:2;-o-tab-size:2;-webkit-tab-size:2}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}.content h1,.content h2,.content h3,.content h4,.content h5,.content h6,.dark-btn,body{font-family:futura-pt,Helvetica,Arial,"Hiragino Sans GB","Hiragino Sans GB W3",Microsoft JhengHei,WenQuanYi Micro Hei,"Microsoft YaHei",sans-serif}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}table{border-collapse:collapse;border-spacing:0}*{box-sizing:inherit;outline:inherit}html{font-size:62.5%;box-sizing:border-box;outline:0;-webkit-tap-highlight-color:transparent}body{font-size:1.8rem;line-height:1.5em;background-color:#EBECEE}.dark-btn .icon,.dark-btn .text{line-height:44px;vertical-align:middle}body.modal-active{overflow:hidden}@media (max-width:680px){body.modal-active{position:fixed;top:0;right:0;bottom:0;left:0}}body.menu-open .site-menu{transform:translate3d(0,0,0);visibility:visible}::-moz-selection{background:rgba(255,183,77,.7);color:#414141}::selection{background:rgba(255,183,77,.7);color:#414141}h1,h2,h3,h4,h5,h6{-webkit-font-feature-settings:'dlig' 1,'liga' 1,'lnum' 1,'kern' 1;-moz-font-feature-settings:'dlig' 1,'liga' 1,'lnum' 1,'kern' 1;-o-font-feature-settings:'dlig' 1,'liga' 1,'lnum' 1,'kern' 1;margin:0 0 .4em}h1{font-size:1.8em}h2{font-size:1.6em}h3{font-size:1.4em}h4{font-size:1.2em}h5,h6{font-size:1em}::-webkit-input-placeholder{color:#b5b5b5;font-weight:300}:-moz-placeholder{color:#b5b5b5;font-weight:300}::-moz-placeholder{color:#b5b5b5;font-weight:300}:-ms-input-placeholder{color:#b5b5b5;font-weight:300}.clearfix{zoom:1}.clearfix:after,.clearfix:before{content:" ";display:table}.clearfix:after{clear:both}.hidden{text-indent:-9999px;visibility:hidden;display:none}.inner{position:relative;width:80%;max-width:710px;margin:0 auto}.vertical{display:table-cell;vertical-align:middle}.right{float:right}.left{float:left}.site-wrapper{position:relative;min-height:100%;background:#EBECEE;overflow-x:hidden;z-index:2}.dark-btn{display:inline-block;background:rgba(0,0,0,.3);border:1px solid #000;padding:0 15px;font-size:13px;text-align:center;color:#c2c2c2}.dark-btn:hover{color:#f5f5f5;background-color:#009688}.dark-btn .icon{margin-right:5px;font-size:16px}#loading-bar-wrapper{position:absolute;width:100%;top:0;left:0;overflow:visible;z-index:999}#loading-bar{position:relative;width:0;height:2px;background-color:#ff9c0a;transition:all .5s ease}.sk-folding-cube{margin:20px auto;width:20px;height:20px;position:relative;-webkit-transform:rotateZ(45deg);transform:rotateZ(45deg)}.sk-folding-cube .sk-cube{float:left;width:50%;height:50%;position:relative;-webkit-transform:scale(1.1);-ms-transform:scale(1.1);transform:scale(1.1)}.sk-folding-cube .sk-cube:before{content:'';position:absolute;top:0;left:0;width:100%;height:100%;background-color:#ffad33;-webkit-animation:sk-foldCubeAngle 2.4s infinite linear both;animation:sk-foldCubeAngle 2.4s infinite linear both;-webkit-transform-origin:100% 100%;-ms-transform-origin:100% 100%;transform-origin:100% 100%}#header,#header .header-wrapper{position:relative;width:100%;z-index:3}.sk-folding-cube .sk-cube2{-webkit-transform:scale(1.1) rotateZ(90deg);transform:scale(1.1) rotateZ(90deg)}.sk-folding-cube .sk-cube3{-webkit-transform:scale(1.1) rotateZ(180deg);transform:scale(1.1) rotateZ(180deg)}.sk-folding-cube .sk-cube4{-webkit-transform:scale(1.1) rotateZ(270deg);transform:scale(1.1) rotateZ(270deg)}.sk-folding-cube .sk-cube2:before{-webkit-animation-delay:.3s;animation-delay:.3s}.sk-folding-cube .sk-cube3:before{-webkit-animation-delay:.6s;animation-delay:.6s}.sk-folding-cube .sk-cube4:before{-webkit-animation-delay:.9s;animation-delay:.9s}@-webkit-keyframes sk-foldCubeAngle{0%,10%{-webkit-transform:perspective(140px) rotateX(-180deg);transform:perspective(140px) rotateX(-180deg);opacity:0}25%,75%{-webkit-transform:perspective(140px) rotateX(0);transform:perspective(140px) rotateX(0);opacity:1}100%,90%{-webkit-transform:perspective(140px) rotateY(180deg);transform:perspective(140px) rotateY(180deg);opacity:0}}@keyframes sk-foldCubeAngle{0%,10%{-webkit-transform:perspective(140px) rotateX(-180deg);transform:perspective(140px) rotateX(-180deg);opacity:0}25%,75%{-webkit-transform:perspective(140px) rotateX(0);transform:perspective(140px) rotateX(0);opacity:1}100%,90%{-webkit-transform:perspective(140px) rotateY(180deg);transform:perspective(140px) rotateY(180deg);opacity:0}}#header{color:#414141;padding-bottom:40px;border-top:2px solid #000}#header .logo,#header .logo .desc,#header .logo img{transition:all .24s;display:block}@media (max-width:820px){#header{padding-bottom:20px}}#header .header-wrapper{height:70px;background:#fff;box-shadow:0 0 3px rgba(0,0,0,.1);border-bottom:1px solid #e1e2e3;padding:0 20px}#header .logo{position:absolute;top:0;left:50%;margin-left:-80px;width:160px;height:82px;background:#000;padding:10px 0 12px}@media (max-width:820px){#header .logo{width:140px;height:70px;margin-left:-70px;padding:10px 0}}#header .logo img{width:70px;height:auto;margin:0 auto}#header .logo .desc{text-align:center;color:#fff;font-size:13px}#header .site-nav-switch,#main,.site-menu{transition:all .24s ease}@media (max-width:820px){#header .logo img{width:50px}#header .logo .desc{font-size:12px}}#header .site-nav-switch{position:relative;border:0;float:right;outline:0;background:0 0;font-size:30px;margin-top:20px}#header .site-nav-switch.active{transform:rotate(90deg)}.site-menu{position:absolute;top:69px;right:0;width:220px;padding:20px 0;background:#fff;border:1px solid #e6e7e6;border-right:0;box-shadow:0 0 1px rgba(0,0,0,.1);transform:translate3d(280px,0,0);visibility:hidden;z-index:2}.site-menu .menu .nav{position:relative;display:block;color:#414141;font-size:.8125em;padding:2px 20px;border-left:3px solid transparent}.site-menu .menu .nav:hover{background:rgba(233,234,234,.6);border-color:#ff9800}#main{position:relative;width:100%;max-width:820px;margin:0 auto;padding:0 30px 20px;opacity:0;transform:translate3d(0,-20px,0)}#main.loaded{transform:translate3d(0,0,0);opacity:1}#main .post-list{position:relative;width:760px;margin:0 auto}@media (max-width:820px){#main{padding:0 20px 20px}#main .post-list{width:100%}}#main .page-header{text-align:center;margin:0 auto 20px}#main .page-header h1{font-size:.875em;font-weight:400;color:#b5b5b5}#main .post-nav{position:relative;width:100%;padding:20px 0}#main .post-nav .nav{font-size:.8125em;font-weight:400;color:#a7a7a7;border-radius:2px}#main .post-nav .nav:hover{color:#fff;background:#414141}#main .comments,#main .post{background:#fff;position:relative;box-shadow:0 0 3px rgba(0,0,0,.15)}#main .post-nav .nav.next{padding:0 7px 2px 10px}#main .post-nav .nav.prev{padding:0 10px 2px 7px}#main .post-nav .nav span{line-height:20px;vertical-align:middle}#main .post-nav .nav span.icon{position:relative;top:1px}#main .comments{padding:30px}@media (max-width:820px){#main .comments{padding:20px}}#main .comments.page{margin-top:20px}#main .post{margin-bottom:50px;padding:40px 0}#main .post.single,#main .post:last-child{margin-bottom:0}#main .post.author-profile{position:relative;padding:30px 20px;height:auto;text-align:center;margin-bottom:30px;transition:all .24s ease}@media (max-width:820px){#main .post.author-profile{padding:20px}}#main .post.author-profile .author-bio,#main .post.author-profile .author-title{position:relative;font-size:1em;z-index:1}#main .post.author-profile .author-bio a,#main .post.author-profile .author-bio span,#main .post.author-profile .author-title a,#main .post.author-profile .author-title span{display:inline-block;background:rgba(0,0,0,.5);color:#fff;padding:5px 15px 7px;border-radius:5px;font-weight:500;letter-spacing:1px}#main .post.author-profile .author-bio a:hover,#main .post.author-profile .author-title a:hover{color:#ff9800;background:rgba(0,0,0,.75)}#main .post.author-profile .author-title a{font-size:1.25em}@media (max-width:820px){#main .post.author-profile .author-title a{font-size:1.25em;padding:7px 20px}}#main .post.author-profile .author-avatar{position:relative;margin:0 auto 20px;width:80px;height:80px;border-radius:50%;overflow:hidden;z-index:1}#main .post.author-profile .author-avatar img{display:block;width:100%;height:100%}#main .post.author-profile .author-cover{position:absolute;top:0;left:0;width:100%;height:100%;background:#414141;z-index:0}#main .post.author-profile .author-cover .img{display:block;width:100%;height:100%;background-size:cover}#main .post .title{display:block;text-align:center;font-size:1.25em;padding:0 20px}@media (max-width:820px){#main .post .title{font-size:1em}}#main .post .title a{display:inline;line-height:1.25;font-weight:400;color:#464646}#main .post .image a,#main .post time,.content-loading{display:block}#main .post .title a:hover{color:#55b559}#main .post time{text-align:center;color:#b5b5b5;font-size:.75em;margin-bottom:30px}#main .post .tags a,.content{font-size:14px;line-height:1.75em}#main .post .image{position:relative;width:100%;margin:20px 0}#main .post .image img{position:relative;display:block;width:104%;margin:0 -2%;box-shadow:0 0 3px rgba(0,0,0,.15)}#main .post .tags{margin-top:30px;padding:0 30px}@media (max-width:820px){#main .post .tags{padding:0 20px}}#main .post .tags a{position:relative;padding:4px 10px 4px 20px;margin-right:5px;background:#EBECEE;border-radius:2px;vertical-align:middle;color:#414141}#main .post .tags a:hover{background:#414141;color:#fff}#main .post .tags a::before{position:absolute;top:0;left:7px;content:"#"}.content,.content-loading.excerpt-ready{display:none}.content{color:#464646;padding:0 30px;transition:all ease .24s}.content img,.content pre,.content.excerpt-ready,.content.single-content,.hljs{display:block}@media (max-width:820px){.content{padding:0 20px}}.content #pixiv-artist-count,.content #pixiv-vol{color:#009688;font-weight:500}.content img{position:relative;width:114%;margin:0 -7%;box-shadow:0 0 3px rgba(0,0,0,.15);padding:5px;background:#fff;transition:all .24s ease}@media (max-width:820px){.content img{width:100%;margin:0;box-shadow:none}}.content div.small-img img,.content p.small-img img{width:auto;max-width:100%;margin:0;box-shadow:none}.content p{margin:20px 0}.content ol,.content ul{list-style:circle;margin:20px 0;padding-left:30px}.content a{color:#f59200}.content a:hover{color:#f08f00;background:rgba(255,152,0,.1)}.content a:active{background:rgba(255,152,0,.2);color:#fff}.content h1,.content h2,.content h3,.content h4,.content h5,.content h6{position:relative;font-weight:700;margin:40px auto 30px;left:20px}.content code,.content pre{font-family:inconsolata,Consolas,monospace,sans-serif}.content h1::before,.content h2::before,.content h3::before,.content h4::before,.content h5::before,.content h6::before{position:absolute;left:-20px;top:0;content:"#";color:#4caf50;font-weight:400}.content blockquote{position:relative;width:100%;margin:20px 0;padding:0 20px;border-left:4px solid #4caf50}#u-search,#u-search .modal{position:fixed;width:100%;top:0}.content pre{-moz-box-sizing:border-box;box-sizing:border-box;width:100%;font-size:13px;margin:20px 0;padding:10px 15px;background:#f9f9fa;white-space:pre;overflow:auto}.content pre code{color:#414141;margin:0;font-size:1em;background:0 0;border:0;white-space:inherit}.content pre figure{margin:0}.content code{color:#008c7f;padding:3px 5px;margin:0 2px;border-radius:2px;white-space:nowrap;font-size:1em;background:#f9f9fa}@media (max-width:820px){.content h1,.content h2,.content h3{margin:30px 0}.content h4,.content h5,.content h6{margin:20px 0}.content h1{font-size:1.5em}.content h2{font-size:1.4em}.content h3{font-size:1.3em}.content h4{font-size:1.2em}.content h5{font-size:1.1em}.content h6{font-size:1em}.content figure{font-size:13px;line-height:1.6em}}.hljs-comment,.hljs-quote{color:#8e908c}.hljs-deletion,.hljs-name,.hljs-regexp,.hljs-selector-class,.hljs-selector-id,.hljs-tag,.hljs-template-variable,.hljs-variable{color:#c82829}.hljs-built_in,.hljs-builtin-name,.hljs-link,.hljs-literal,.hljs-meta,.hljs-number,.hljs-params,.hljs-type{color:#f5871f}.hljs-attribute{color:#eab700}.hljs-addition,.hljs-bullet,.hljs-string,.hljs-symbol{color:#718c00}.hljs-section,.hljs-title{color:#4271ae}.hljs-keyword,.hljs-selector-tag{color:#8959a8}.hljs{overflow-x:auto;background:#fff;color:#4d4d4c;padding:.5em}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}#u-search{display:none;left:0;height:100%;padding:60px 20px;z-index:999999}#u-search .modal{height:80%;max-width:640px;left:50%;margin:64px 0 0 -320px;background:#fff;box-shadow:0 7px 8px -4px rgba(0,0,0,.2),0 13px 19px 2px rgba(0,0,0,.14),0 5px 24px 4px rgba(0,0,0,.12);z-index:3}@media (max-width:680px){#u-search{padding:0}#u-search .modal{box-shadow:none;max-width:none;top:0;left:0;margin:0;height:100%}}#u-search .modal .modal-ajax-content{opacity:0;visibility:hidden;transition:all .36s}#u-search .modal .modal-ajax-content.loaded{opacity:1;visibility:visible}#u-search .modal .modal-header{position:relative;width:100%;height:50px;background-color:#33475A;z-index:3}#u-search .modal .modal-header .btn-close{display:block;position:absolute;width:50px;height:50px;top:0;right:0;color:#fff;cursor:pointer;text-align:center;line-height:50px;vertical-align:middle;font-size:18px;transition:all .24s;z-index:2}#u-search .modal .modal-header .btn-close:hover{transform:rotate(90deg)}#u-search .modal .modal-header .modal-loading{position:absolute;bottom:-2px;left:0;width:100%;height:2px;background:0 0;z-index:1}#u-search .modal .modal-header .modal-loading .modal-loading-bar{display:block;position:relative;width:0;height:100%;background:#ffb74d;transition:width .24s}#u-search .modal .modal-header #u-search-modal-form{position:relative;width:100%;height:100%;z-index:2}#u-search .modal .modal-header #u-search-modal-form #u-search-modal-input{width:100%;padding:0 50px 0 40px;font-size:15px;line-height:50px;vertical-align:middle;color:#fff;border:none;background:0 0;transition:background-color .24s;font-weight:thin;appearance:none;box-shadow:none}#u-search .modal .modal-header #u-search-modal-form #u-search-modal-input:focus{background-color:#3c546a}#u-search .modal .modal-header #u-search-modal-btn-submit{position:absolute;top:0;left:0;padding-left:5px;padding-top:2px;background:0 0;border:none;width:40px;height:50px;vertical-align:middle;font-size:20px;color:#fff;z-index:2}#u-search .modal .modal-footer{position:absolute;bottom:0;left:0;width:100%;height:50px;padding:0 15px;background:#fff;border-top:1px solid #dadada}#u-search .modal .modal-footer .logo{position:absolute;top:0;left:0;width:100%;height:100%;text-align:center;z-index:0}#u-search .modal .modal-footer .logo a{display:inline-block}#u-search .modal .modal-footer .logo.google img{height:24px;margin-top:13px}#u-search .modal .modal-footer .logo.baidu img{height:22px;margin-top:14px}#u-search .modal .modal-footer .logo img{position:relative;display:inline-block;width:auto;height:18px;margin-top:16px}#u-search .modal .modal-footer .modal-error,#u-search .modal .modal-footer .modal-metadata{position:relative;float:left;vertical-align:middle;line-height:50px;font-size:13px;z-index:1}#u-search .modal .modal-footer .nav{position:relative;display:block;float:right;vertical-align:middle;font-size:13px;font-weight:500;line-height:50px;color:#828282;cursor:pointer;z-index:1}#u-search .modal .modal-body .modal-results .result:hover .digest,#u-search .modal .modal-body .modal-results .result:hover .icon,#u-search .modal .modal-footer .nav:hover{color:#414141}#u-search .modal .modal-footer .nav.btn-next{margin-left:10px}#u-search .modal .modal-footer .nav .icon{font-size:12px}#u-search .modal .modal-body{position:absolute;padding:64px 40px 80px;width:100%;height:100%;top:0;left:0;overflow-y:scroll;-webkit-overflow-scrolling:touch}@media (max-width:680px){#u-search .modal .modal-body{padding:60px 20px 80px}}#u-search .modal .modal-body .modal-results{list-style:none}#u-search .modal .modal-body .modal-results li{border-bottom:1px solid #e6e8ea}#u-search .modal .modal-body .modal-results li:last-child{border-bottom:none}#u-search .modal .modal-body .modal-results .result{position:relative;display:block;padding:15px 30px 15px 0;text-decoration:none}#u-search .modal .modal-body .modal-results .result .title{display:inline-block;max-width:100%;color:#2196f3;font-size:15px;font-weight:700;background:#f1f8fe;padding:1px;border-bottom:1px solid #e6e8ea;margin-bottom:2px;line-height:110%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#u-search .modal .modal-body .modal-results .result .digest{display:block;font-size:13px;line-height:140%;color:#8e8e8e;transition:color .24s}#u-search .modal .modal-body .modal-results .result .digest em{font-weight:700}#u-search .modal .modal-body .modal-results .result .icon{position:absolute;top:50%;right:0;margin-top:-4px;font-size:11px;color:#828282}#u-search .modal-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.8);z-index:1}#footer,#footer a.social,.search{position:relative}#footer{padding:20px;width:100%;max-width:820px;margin:0 auto;font-size:14px;overflow:hidden;text-align:center;opacity:0;transform:translate3d(0,-20px,0);transition:all .4s ease;z-index:3}#footer.loaded{transform:translate3d(0,0,0);opacity:1}#footer .codename{color:#ff9800}#footer .social-wrapper{padding-top:20px}#footer a{color:#828282}#footer a:hover{background:rgba(255,152,0,.1);color:#f08f00}#footer a.social{display:inline-block;text-align:center;font-size:18px;margin:0 3px}#footer a.social:hover{background:0 0;color:#ff9800}#footer a.social.github:hover{color:#467cc2}#footer a.social.google:hover{color:#db4437}#footer a.social.twitter:hover{color:#55acee}#footer a.social.weibo:hover{color:#f8712a}.search{width:100%;max-width:100%;margin:0 auto 20px;z-index:2}.search #searchform{position:relative;display:block;width:100%}.search #searchform #u-search-btn-submit{display:block;position:absolute;top:0;right:0;width:36px;height:36px;font-size:18px;background:0 0;color:#fff;border:0;text-align:center}.search #searchform #u-search-btn-submit span{line-height:36px}.search #searchinput{width:100%;padding:0 10px;line-height:36px;height:36px;font-size:14px;font-family:futura-pt,Helvetica,Arial,"Hiragino Sans GB","Hiragino Sans GB W3",Microsoft JhengHei,WenQuanYi Micro Hei,"Microsoft YaHei",sans-serif;border:none;border-radius:0!important;background:#414141;color:#fff;box-sizing:border-box;appearance:none;box-shadow:none;transition:all .24s ease}.search #searchinput:focus{background:#000;border-color:#000} -------------------------------------------------------------------------------- /assets/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artchen/ghost-theme-memory/847ce7e31087fe7e933845a6e93b7890e846e550/assets/favicon.ico -------------------------------------------------------------------------------- /assets/favicon/apple-touch-icon-114x114.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artchen/ghost-theme-memory/847ce7e31087fe7e933845a6e93b7890e846e550/assets/favicon/apple-touch-icon-114x114.png -------------------------------------------------------------------------------- /assets/favicon/apple-touch-icon-120x120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artchen/ghost-theme-memory/847ce7e31087fe7e933845a6e93b7890e846e550/assets/favicon/apple-touch-icon-120x120.png -------------------------------------------------------------------------------- /assets/favicon/apple-touch-icon-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artchen/ghost-theme-memory/847ce7e31087fe7e933845a6e93b7890e846e550/assets/favicon/apple-touch-icon-144x144.png -------------------------------------------------------------------------------- /assets/favicon/apple-touch-icon-152x152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artchen/ghost-theme-memory/847ce7e31087fe7e933845a6e93b7890e846e550/assets/favicon/apple-touch-icon-152x152.png -------------------------------------------------------------------------------- /assets/favicon/apple-touch-icon-57x57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artchen/ghost-theme-memory/847ce7e31087fe7e933845a6e93b7890e846e550/assets/favicon/apple-touch-icon-57x57.png -------------------------------------------------------------------------------- /assets/favicon/apple-touch-icon-60x60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artchen/ghost-theme-memory/847ce7e31087fe7e933845a6e93b7890e846e550/assets/favicon/apple-touch-icon-60x60.png -------------------------------------------------------------------------------- /assets/favicon/apple-touch-icon-72x72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artchen/ghost-theme-memory/847ce7e31087fe7e933845a6e93b7890e846e550/assets/favicon/apple-touch-icon-72x72.png -------------------------------------------------------------------------------- /assets/favicon/apple-touch-icon-76x76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artchen/ghost-theme-memory/847ce7e31087fe7e933845a6e93b7890e846e550/assets/favicon/apple-touch-icon-76x76.png -------------------------------------------------------------------------------- /assets/favicon/code.txt: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /assets/favicon/favicon-128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artchen/ghost-theme-memory/847ce7e31087fe7e933845a6e93b7890e846e550/assets/favicon/favicon-128.png -------------------------------------------------------------------------------- /assets/favicon/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artchen/ghost-theme-memory/847ce7e31087fe7e933845a6e93b7890e846e550/assets/favicon/favicon-16x16.png -------------------------------------------------------------------------------- /assets/favicon/favicon-196x196.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artchen/ghost-theme-memory/847ce7e31087fe7e933845a6e93b7890e846e550/assets/favicon/favicon-196x196.png -------------------------------------------------------------------------------- /assets/favicon/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artchen/ghost-theme-memory/847ce7e31087fe7e933845a6e93b7890e846e550/assets/favicon/favicon-32x32.png -------------------------------------------------------------------------------- /assets/favicon/favicon-96x96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artchen/ghost-theme-memory/847ce7e31087fe7e933845a6e93b7890e846e550/assets/favicon/favicon-96x96.png -------------------------------------------------------------------------------- /assets/favicon/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artchen/ghost-theme-memory/847ce7e31087fe7e933845a6e93b7890e846e550/assets/favicon/favicon.ico -------------------------------------------------------------------------------- /assets/favicon/mstile-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artchen/ghost-theme-memory/847ce7e31087fe7e933845a6e93b7890e846e550/assets/favicon/mstile-144x144.png -------------------------------------------------------------------------------- /assets/favicon/mstile-150x150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artchen/ghost-theme-memory/847ce7e31087fe7e933845a6e93b7890e846e550/assets/favicon/mstile-150x150.png -------------------------------------------------------------------------------- /assets/favicon/mstile-310x150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artchen/ghost-theme-memory/847ce7e31087fe7e933845a6e93b7890e846e550/assets/favicon/mstile-310x150.png -------------------------------------------------------------------------------- /assets/favicon/mstile-310x310.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artchen/ghost-theme-memory/847ce7e31087fe7e933845a6e93b7890e846e550/assets/favicon/mstile-310x310.png -------------------------------------------------------------------------------- /assets/favicon/mstile-70x70.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artchen/ghost-theme-memory/847ce7e31087fe7e933845a6e93b7890e846e550/assets/favicon/mstile-70x70.png -------------------------------------------------------------------------------- /assets/fonts/icomoon.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artchen/ghost-theme-memory/847ce7e31087fe7e933845a6e93b7890e846e550/assets/fonts/icomoon.eot -------------------------------------------------------------------------------- /assets/fonts/icomoon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Generated by IcoMoon 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /assets/fonts/icomoon.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artchen/ghost-theme-memory/847ce7e31087fe7e933845a6e93b7890e846e550/assets/fonts/icomoon.ttf -------------------------------------------------------------------------------- /assets/fonts/icomoon.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artchen/ghost-theme-memory/847ce7e31087fe7e933845a6e93b7890e846e550/assets/fonts/icomoon.woff -------------------------------------------------------------------------------- /assets/fonts/selection.json: -------------------------------------------------------------------------------- 1 | { 2 | "IcoMoonType": "selection", 3 | "icons": [ 4 | { 5 | "icon": { 6 | "paths": [ 7 | "M810 274l-238 238 238 238-60 60-238-238-238 238-60-60 238-238-238-238 60-60 238 238 238-238z" 8 | ], 9 | "attrs": [], 10 | "isMulticolor": false, 11 | "isMulticolor2": false, 12 | "tags": [ 13 | "close" 14 | ], 15 | "defaultCode": 58829, 16 | "grid": 24 17 | }, 18 | "attrs": [], 19 | "properties": { 20 | "order": 39, 21 | "ligatures": "clear, close", 22 | "id": 157, 23 | "prevSize": 24, 24 | "code": 58829, 25 | "name": "close" 26 | }, 27 | "setIdx": 1, 28 | "setId": 6, 29 | "iconIdx": 157 30 | }, 31 | { 32 | "icon": { 33 | "paths": [ 34 | "M406 598c106 0 192-86 192-192s-86-192-192-192-192 86-192 192 86 192 192 192zM662 598l212 212-64 64-212-212v-34l-12-12c-48 42-112 66-180 66-154 0-278-122-278-276s124-278 278-278 276 124 276 278c0 68-24 132-66 180l12 12h34z" 35 | ], 36 | "attrs": [], 37 | "isMulticolor": false, 38 | "isMulticolor2": false, 39 | "tags": [ 40 | "search" 41 | ], 42 | "defaultCode": 59574, 43 | "grid": 24 44 | }, 45 | "attrs": [], 46 | "properties": { 47 | "order": 41, 48 | "ligatures": "search", 49 | "id": 655, 50 | "prevSize": 24, 51 | "code": 59574, 52 | "name": "search2" 53 | }, 54 | "setIdx": 1, 55 | "setId": 6, 56 | "iconIdx": 655 57 | }, 58 | { 59 | "icon": { 60 | "paths": [ 61 | "M231.219 386.458c22.323-22.835 53.402-24.627 80.691 0l200.090 191.846 200.090-191.846c27.29-24.627 58.419-22.835 80.589 0 22.323 22.784 20.89 61.286 0 82.688-20.787 21.402-240.384 230.502-240.384 230.502-11.11 11.418-25.702 17.152-40.294 17.152s-29.184-5.734-40.397-17.152c0 0-219.494-209.101-240.384-230.502-20.941-21.402-22.323-59.904 0-82.688z" 62 | ], 63 | "attrs": [], 64 | "isMulticolor": false, 65 | "isMulticolor2": false, 66 | "tags": [ 67 | "chevron-down" 68 | ], 69 | "grid": 20 70 | }, 71 | "attrs": [], 72 | "properties": { 73 | "id": 34, 74 | "order": 17, 75 | "prevSize": 20, 76 | "code": 59648, 77 | "name": "chevron-down" 78 | }, 79 | "setIdx": 2, 80 | "setId": 5, 81 | "iconIdx": 33 82 | }, 83 | { 84 | "icon": { 85 | "paths": [ 86 | "M637.542 231.219c22.835 22.323 24.627 53.402 0 80.691l-191.846 200.090 191.846 200.090c24.627 27.29 22.835 58.419 0 80.589-22.784 22.323-61.286 20.89-82.688 0-21.402-20.787-230.502-240.384-230.502-240.384-11.418-11.11-17.152-25.702-17.152-40.294s5.734-29.184 17.152-40.397c0 0 209.101-219.494 230.502-240.384 21.402-20.941 59.904-22.323 82.688 0z" 87 | ], 88 | "attrs": [], 89 | "isMulticolor": false, 90 | "isMulticolor2": false, 91 | "tags": [ 92 | "chevron-left" 93 | ], 94 | "grid": 20 95 | }, 96 | "attrs": [], 97 | "properties": { 98 | "id": 35, 99 | "order": 16, 100 | "prevSize": 20, 101 | "code": 59649, 102 | "name": "chevron-left" 103 | }, 104 | "setIdx": 2, 105 | "setId": 5, 106 | "iconIdx": 34 107 | }, 108 | { 109 | "icon": { 110 | "paths": [ 111 | "M469.146 231.219c21.402 20.89 230.502 240.384 230.502 240.384 11.418 11.213 17.152 25.805 17.152 40.397s-5.734 29.184-17.152 40.294c0 0-209.101 219.597-230.502 240.384-21.402 20.89-59.904 22.323-82.688 0-22.835-22.221-24.627-53.299 0-80.589l191.846-200.090-191.846-200.090c-24.627-27.29-22.835-58.419 0-80.691 22.784-22.323 61.286-20.941 82.688 0z" 112 | ], 113 | "attrs": [], 114 | "isMulticolor": false, 115 | "isMulticolor2": false, 116 | "tags": [ 117 | "chevron-right" 118 | ], 119 | "grid": 20 120 | }, 121 | "attrs": [], 122 | "properties": { 123 | "id": 36, 124 | "order": 15, 125 | "prevSize": 20, 126 | "code": 59650, 127 | "name": "chevron-right" 128 | }, 129 | "setIdx": 2, 130 | "setId": 5, 131 | "iconIdx": 35 132 | }, 133 | { 134 | "icon": { 135 | "paths": [ 136 | "M891.802 312.781c13.926-13.722 36.301-13.722 50.125 0s13.875 35.891 0 49.613l-404.89 400.896c-13.824 13.722-36.198 13.722-50.125 0l-404.89-400.896c-13.824-13.722-13.824-35.891 0-49.613 13.875-13.722 36.301-13.722 50.125 0l379.853 365.619 379.802-365.619z" 137 | ], 138 | "attrs": [], 139 | "isMulticolor": false, 140 | "isMulticolor2": false, 141 | "tags": [ 142 | "chevron-thin-down" 143 | ], 144 | "grid": 20 145 | }, 146 | "attrs": [], 147 | "properties": { 148 | "id": 41, 149 | "order": 18, 150 | "prevSize": 20, 151 | "code": 59651, 152 | "name": "chevron-thin-down" 153 | }, 154 | "setIdx": 2, 155 | "setId": 5, 156 | "iconIdx": 40 157 | }, 158 | { 159 | "icon": { 160 | "paths": [ 161 | "M711.219 891.802c13.722 13.926 13.722 36.301 0 50.125s-35.891 13.875-49.613 0l-400.896-404.89c-13.722-13.824-13.722-36.198 0-50.125l400.896-404.89c13.722-13.824 35.891-13.824 49.613 0 13.722 13.875 13.722 36.301 0 50.125l-365.619 379.853 365.619 379.802z" 162 | ], 163 | "attrs": [], 164 | "isMulticolor": false, 165 | "isMulticolor2": false, 166 | "tags": [ 167 | "chevron-thin-left" 168 | ], 169 | "grid": 20 170 | }, 171 | "attrs": [], 172 | "properties": { 173 | "id": 42, 174 | "order": 19, 175 | "prevSize": 20, 176 | "code": 59652, 177 | "name": "chevron-thin-left" 178 | }, 179 | "setIdx": 2, 180 | "setId": 5, 181 | "iconIdx": 41 182 | }, 183 | { 184 | "icon": { 185 | "paths": [ 186 | "M678.4 512l-365.619-379.904c-13.722-13.824-13.722-36.198 0-50.125 13.722-13.824 35.891-13.824 49.613 0l400.896 404.89c13.722 13.875 13.722 36.301 0 50.125l-400.896 404.89c-13.722 13.875-35.891 13.824-49.613 0-13.722-13.773-13.722-36.198 0-50.125l365.619-379.75z" 187 | ], 188 | "attrs": [], 189 | "isMulticolor": false, 190 | "isMulticolor2": false, 191 | "tags": [ 192 | "chevron-thin-right" 193 | ], 194 | "grid": 20 195 | }, 196 | "attrs": [], 197 | "properties": { 198 | "id": 43, 199 | "order": 20, 200 | "prevSize": 20, 201 | "code": 59653, 202 | "name": "chevron-thin-right" 203 | }, 204 | "setIdx": 2, 205 | "setId": 5, 206 | "iconIdx": 42 207 | }, 208 | { 209 | "icon": { 210 | "paths": [ 211 | "M132.198 711.219c-13.926 13.722-36.301 13.722-50.125 0s-13.875-35.891 0-49.613l404.89-400.896c13.824-13.722 36.198-13.722 50.125 0l404.89 400.896c13.824 13.722 13.824 35.891 0 49.613-13.875 13.722-36.301 13.722-50.074 0l-379.904-365.619-379.802 365.619z" 212 | ], 213 | "attrs": [], 214 | "isMulticolor": false, 215 | "isMulticolor2": false, 216 | "tags": [ 217 | "chevron-thin-up" 218 | ], 219 | "grid": 20 220 | }, 221 | "attrs": [], 222 | "properties": { 223 | "id": 44, 224 | "order": 21, 225 | "prevSize": 20, 226 | "code": 59654, 227 | "name": "chevron-thin-up" 228 | }, 229 | "setIdx": 2, 230 | "setId": 5, 231 | "iconIdx": 43 232 | }, 233 | { 234 | "icon": { 235 | "paths": [ 236 | "M792.781 637.542c-22.323 22.835-53.402 24.627-80.691 0l-200.090-191.846-200.090 191.846c-27.29 24.627-58.419 22.835-80.589 0-22.323-22.784-20.89-61.286 0-82.688 20.787-21.402 240.384-230.502 240.384-230.502 11.11-11.418 25.702-17.152 40.294-17.152s29.184 5.734 40.397 17.152c0 0 219.494 209.101 240.384 230.502 20.941 21.402 22.323 59.904 0 82.688z" 237 | ], 238 | "attrs": [], 239 | "isMulticolor": false, 240 | "isMulticolor2": false, 241 | "tags": [ 242 | "chevron-up" 243 | ], 244 | "grid": 20 245 | }, 246 | "attrs": [], 247 | "properties": { 248 | "id": 45, 249 | "order": 22, 250 | "prevSize": 20, 251 | "code": 59655, 252 | "name": "chevron-up" 253 | }, 254 | "setIdx": 2, 255 | "setId": 5, 256 | "iconIdx": 44 257 | }, 258 | { 259 | "icon": { 260 | "paths": [ 261 | "M80.589 270.643c24.986 13.414 371.098 199.373 384 206.285s29.594 10.189 46.387 10.189c16.794 0 33.485-3.277 46.387-10.189s359.014-192.87 384-206.285c25.037-13.466 48.691-65.843 2.765-65.843h-866.253c-45.926 0-22.272 52.378 2.714 65.843zM952.986 383.437c-28.416 14.797-378.214 197.069-395.622 206.182s-29.594 10.189-46.387 10.189-28.979-1.075-46.387-10.189-365.21-191.437-393.626-206.234c-19.968-10.445-19.763 1.792-19.763 11.213s0 373.402 0 373.402c0 21.504 28.979 51.2 51.2 51.2h819.2c22.221 0 51.2-29.696 51.2-51.2 0 0 0-363.93 0-373.35s0.205-21.658-19.814-11.213z" 262 | ], 263 | "attrs": [], 264 | "isMulticolor": false, 265 | "isMulticolor2": false, 266 | "tags": [ 267 | "mail" 268 | ], 269 | "grid": 20 270 | }, 271 | "attrs": [], 272 | "properties": { 273 | "id": 219, 274 | "order": 36, 275 | "prevSize": 20, 276 | "code": 59661, 277 | "name": "mail" 278 | }, 279 | "setIdx": 2, 280 | "setId": 5, 281 | "iconIdx": 218 282 | }, 283 | { 284 | "icon": { 285 | "paths": [ 286 | "M839.68 460.8h-655.36c-28.262 0-30.72 22.886-30.72 51.2s2.458 51.2 30.72 51.2h655.36c28.262 0 30.72-22.886 30.72-51.2s-2.458-51.2-30.72-51.2zM839.68 665.6h-655.36c-28.262 0-30.72 22.886-30.72 51.2s2.458 51.2 30.72 51.2h655.36c28.262 0 30.72-22.886 30.72-51.2s-2.458-51.2-30.72-51.2zM184.32 358.4h655.36c28.262 0 30.72-22.886 30.72-51.2s-2.458-51.2-30.72-51.2h-655.36c-28.262 0-30.72 22.886-30.72 51.2s2.458 51.2 30.72 51.2z" 287 | ], 288 | "attrs": [], 289 | "isMulticolor": false, 290 | "isMulticolor2": false, 291 | "tags": [ 292 | "menu" 293 | ], 294 | "grid": 20 295 | }, 296 | "attrs": [], 297 | "properties": { 298 | "id": 225, 299 | "order": 23, 300 | "prevSize": 20, 301 | "code": 59656, 302 | "name": "menu" 303 | }, 304 | "setIdx": 2, 305 | "setId": 5, 306 | "iconIdx": 224 307 | }, 308 | { 309 | "icon": { 310 | "paths": [ 311 | "M122.88 122.88v121.19c362.803 0 656.896 294.195 656.896 656.998h121.293c0-429.773-348.416-778.189-778.189-778.189zM122.88 365.414v121.293c228.813 0 414.362 185.498 414.362 414.413h121.242c0-295.834-239.821-535.706-535.603-535.706zM239.053 668.621c-64.205 0-116.224 52.122-116.224 116.275s52.019 116.224 116.224 116.224 116.173-52.019 116.173-116.224-51.968-116.275-116.173-116.275z" 312 | ], 313 | "attrs": [], 314 | "isMulticolor": false, 315 | "isMulticolor2": false, 316 | "tags": [ 317 | "rss" 318 | ], 319 | "grid": 20 320 | }, 321 | "attrs": [], 322 | "properties": { 323 | "id": 266, 324 | "order": 25, 325 | "prevSize": 20, 326 | "code": 59658, 327 | "name": "rss" 328 | }, 329 | "setIdx": 2, 330 | "setId": 5, 331 | "iconIdx": 265 332 | }, 333 | { 334 | "icon": { 335 | "paths": [ 336 | "M395.52 109.875c-52.019 38.707-65.997 99.994-63.437 132.608 3.277 39.885 11.366 91.802 11.366 91.802s-16.026 8.704-16.026 43.725c5.581 87.91 34.97 49.971 41.011 88.525 14.541 92.877 47.77 76.339 47.77 127.027 0 84.429-34.816 123.904-143.514 170.701-109.056 47.002-221.491 106.138-221.491 208.538v51.2h921.6v-51.2c0-102.4-112.486-161.536-221.594-208.486-108.698-46.797-143.411-86.221-143.411-170.701 0-50.688 33.126-34.15 47.718-127.027 6.093-38.554 35.43-0.614 41.114-88.525 0-35.021-16.077-43.725-16.077-43.725s8.090-51.917 11.315-91.802c3.328-41.83-20.378-131.123-117.76-158.515-17.050-17.408-28.57-45.107 23.859-72.909-114.688-5.376-141.363 54.63-202.445 98.765z" 337 | ], 338 | "attrs": [], 339 | "isMulticolor": false, 340 | "isMulticolor2": false, 341 | "tags": [ 342 | "user" 343 | ], 344 | "grid": 20 345 | }, 346 | "attrs": [], 347 | "properties": { 348 | "id": 311, 349 | "order": 26, 350 | "prevSize": 20, 351 | "code": 59659, 352 | "name": "user" 353 | }, 354 | "setIdx": 2, 355 | "setId": 5, 356 | "iconIdx": 310 357 | }, 358 | { 359 | "icon": { 360 | "paths": [ 361 | "M972.8 153.6h-921.6c-28.314 0-51.2 22.886-51.2 51.2v614.4c0 28.262 22.886 51.2 51.2 51.2h921.6c28.314 0 51.2-22.938 51.2-51.2v-614.4c0-28.262-22.886-51.2-51.2-51.2zM665.6 358.4h204.8v51.2h-204.8v-51.2zM563.2 757.914c-6.605-5.222-15.002-10.291-27.085-15.514-60.416-26.010-151.603-64.512-151.603-111.411 0-28.211 18.381-18.995 26.522-70.605 3.379-21.402 19.712-0.358 22.784-49.203 0-19.456-8.909-24.32-8.909-24.32s4.506-28.774 6.298-50.995c1.843-23.194-11.315-92.16-65.382-107.366-9.523-9.626-15.923-5.683 13.21-21.094-63.693-3.021-78.541 30.31-112.435 54.835-28.877 21.504-36.71 55.552-35.277 73.677 1.894 22.17 6.4 50.995 6.4 50.995s-8.96 4.813-8.96 24.269c3.123 48.845 19.456 27.802 22.784 49.203 8.090 51.61 26.573 42.394 26.573 70.605 0 46.899-91.187 85.402-151.603 111.411-10.394 4.506-17.869 8.858-24.115 13.312v-499.712h460.8v501.914zM921.6 563.2h-256v-51.2h256v51.2z" 362 | ], 363 | "attrs": [], 364 | "isMulticolor": false, 365 | "isMulticolor2": false, 366 | "tags": [ 367 | "v-card" 368 | ], 369 | "grid": 20 370 | }, 371 | "attrs": [], 372 | "properties": { 373 | "id": 313, 374 | "order": 24, 375 | "prevSize": 20, 376 | "code": 59657, 377 | "name": "vcard" 378 | }, 379 | "setIdx": 2, 380 | "setId": 5, 381 | "iconIdx": 312 382 | }, 383 | { 384 | "icon": { 385 | "paths": [ 386 | "M752.026 515.482c-14.029-4.301-23.706-7.27-16.333-26.010 15.923-40.806 17.613-75.981 0.358-101.12-32.41-47.104-121.037-44.595-222.618-1.28 0-0.102-31.898 14.182-23.757-11.622 15.667-51.046 13.261-93.85-11.059-118.528-55.091-56.218-201.574 2.099-327.27 129.997-94.157 95.795-148.787 197.274-148.787 285.082 0 167.987 211.558 280.32 418.56 280.32 271.309 0 451.84-170.701 451.84-298.086 0-77.056-63.693-120.73-120.934-138.752zM421.683 877.005c-165.12 16.384-307.763-58.726-318.464-167.68-10.701-109.005 114.483-210.688 279.654-227.226 165.171-16.384 307.763 58.675 318.464 167.68 10.701 109.107-114.483 210.842-279.654 227.226zM1021.44 378.726c-0.051-169.574-137.523-306.995-307.2-306.995-19.814 0-35.789 15.974-35.789 35.789s15.974 35.789 35.789 35.789c130.099 0 235.571 105.523 235.571 235.622 0 19.814 16.026 35.789 35.84 35.789s35.789-16.026 35.789-35.84v-0.154zM879.053 373.504c-16.333-79.974-79.411-143.002-159.386-159.386-19.354-3.994-38.298 8.499-42.291 27.904-3.942 19.302 8.499 38.298 27.904 42.291 52.019 10.598 92.979 51.61 103.629 103.578 3.994 19.405 22.938 31.795 42.291 27.904 19.302-3.994 31.846-22.989 27.853-42.291zM336.998 588.902c-66.56 13.414-111.462 69.222-100.301 124.621 11.162 55.501 74.086 89.6 140.646 76.186 66.509-13.414 111.411-69.222 100.301-124.621-11.162-55.398-74.189-89.6-140.646-76.186z" 387 | ], 388 | "attrs": [], 389 | "isMulticolor": false, 390 | "isMulticolor2": false, 391 | "tags": [ 392 | "sina-weibo" 393 | ], 394 | "grid": 20 395 | }, 396 | "attrs": [], 397 | "properties": { 398 | "id": 340, 399 | "order": 27, 400 | "prevSize": 20, 401 | "code": 59662, 402 | "name": "sina-weibo" 403 | }, 404 | "setIdx": 2, 405 | "setId": 5, 406 | "iconIdx": 339 407 | }, 408 | { 409 | "icon": { 410 | "paths": [ 411 | "M870.4 51.2h-716.8c-56.32 0-102.4 46.080-102.4 102.4v716.8c0 56.371 46.080 102.4 102.4 102.4h358.4v-358.4h-102.4v-126.72h102.4v-104.96c0-110.797 62.054-188.621 192.819-188.621l92.314 0.102v133.376h-61.286c-50.893 0-70.246 38.195-70.246 73.626v86.528h131.482l-29.082 126.669h-102.4v358.4h204.8c56.32 0 102.4-46.029 102.4-102.4v-716.8c0-56.32-46.080-102.4-102.4-102.4z" 412 | ], 413 | "attrs": [], 414 | "isMulticolor": false, 415 | "isMulticolor2": false, 416 | "tags": [ 417 | "facebook" 418 | ], 419 | "grid": 20 420 | }, 421 | "attrs": [], 422 | "properties": { 423 | "id": 360, 424 | "order": 33, 425 | "prevSize": 20, 426 | "code": 59663, 427 | "name": "facebook" 428 | }, 429 | "setIdx": 2, 430 | "setId": 5, 431 | "iconIdx": 359 432 | }, 433 | { 434 | "icon": { 435 | "paths": [ 436 | "M674.816 579.021c-36.762 0-66.56 41.318-66.56 92.109 0 50.893 29.798 92.211 66.56 92.211s66.56-41.318 66.56-92.211c-0.051-50.79-29.798-92.109-66.56-92.109zM906.547 339.251c7.629-18.688 7.936-124.877-32.512-226.611 0 0-92.723 10.189-233.011 106.496-29.44-8.192-79.258-12.186-128.973-12.186-49.818 0-99.584 3.994-129.024 12.186-140.339-96.307-233.062-106.496-233.062-106.496-40.397 101.734-39.987 207.923-32.461 226.611-47.514 51.61-76.544 113.613-76.544 198.195 0 367.923 305.306 373.811 382.31 373.811 17.51 0 52.122 0.102 88.781 0.102 36.608 0 71.27-0.102 88.678-0.102 77.107 0 382.31-5.888 382.31-373.811 0-84.582-28.979-146.586-76.493-198.195zM513.434 866.048h-2.867c-193.075 0-343.501-22.989-343.501-210.688 0-45.005 15.872-86.682 53.606-121.293 62.822-57.702 169.216-27.187 289.894-27.187 0.512 0 1.024 0 1.485 0 0.512 0 0.922 0 1.382 0 120.678 0 227.123-30.515 289.997 27.187 37.632 34.611 53.504 76.288 53.504 121.293 0 187.699-150.374 210.688-343.501 210.688zM349.235 579.021c-36.762 0-66.56 41.318-66.56 92.109 0 50.893 29.798 92.211 66.56 92.211 36.813 0 66.611-41.318 66.611-92.211 0-50.79-29.798-92.109-66.611-92.109z" 437 | ], 438 | "attrs": [], 439 | "isMulticolor": false, 440 | "isMulticolor2": false, 441 | "tags": [ 442 | "github" 443 | ], 444 | "grid": 20 445 | }, 446 | "attrs": [], 447 | "properties": { 448 | "id": 364, 449 | "order": 32, 450 | "prevSize": 20, 451 | "code": 59664, 452 | "name": "github" 453 | }, 454 | "setIdx": 2, 455 | "setId": 5, 456 | "iconIdx": 363 457 | }, 458 | { 459 | "icon": { 460 | "paths": [ 461 | "M101.837 286.157c0 76.493 25.549 131.686 75.878 164.096 41.267 26.624 89.088 30.618 113.971 30.618 6.042 0 10.906-0.307 14.285-0.512 0 0-7.885 51.405 30.208 102.195h-1.741c-65.997 0-281.242 13.773-281.242 190.822 0 180.019 197.683 189.184 237.363 189.184 3.123 0 4.966-0.102 4.966-0.102 0.41 0 3.226 0.102 8.090 0.102 25.446 0 91.238-3.174 152.32-32.922 79.258-38.4 119.45-105.421 119.45-198.912 0-90.317-61.235-144.077-105.933-183.398-27.29-24.013-50.893-44.698-50.893-64.819 0-20.48 17.254-35.891 39.014-55.398 35.277-31.488 68.557-76.39 68.557-161.28 0-74.598-9.677-124.723-69.325-156.518 6.195-3.174 28.211-5.478 39.066-7.014 32.307-4.403 79.565-9.421 79.565-35.789v-5.069h-235.469c-2.355 0.102-238.131 8.806-238.131 224.717zM481.946 747.622c4.506 71.987-57.088 125.082-149.606 131.789-93.952 6.912-171.264-35.379-175.77-107.315-2.202-34.611 13.005-68.403 42.752-95.386 30.157-27.29 71.578-44.186 116.634-47.514 5.325-0.307 10.598-0.614 15.872-0.614 86.989 0.051 145.869 51.149 150.118 119.040zM420.454 236.851c23.091 81.306-11.776 166.195-67.379 181.914-6.4 1.792-12.954 2.662-19.661 2.662-50.893 0-101.325-51.507-120.064-122.522-10.445-39.731-9.574-74.65 2.406-108.134 11.725-33.024 32.922-55.194 59.546-62.72 6.4-1.792 13.005-2.714 19.712-2.714 61.44 0 100.966 25.498 125.44 111.514zM819.2 409.6v-153.6h-102.4v153.6h-153.6v102.4h153.6v153.6h102.4v-153.6h153.6v-102.4h-153.6z" 462 | ], 463 | "attrs": [], 464 | "isMulticolor": false, 465 | "isMulticolor2": false, 466 | "tags": [ 467 | "google+" 468 | ], 469 | "grid": 20 470 | }, 471 | "attrs": [], 472 | "properties": { 473 | "id": 366, 474 | "order": 28, 475 | "prevSize": 20, 476 | "code": 59665, 477 | "name": "google" 478 | }, 479 | "setIdx": 2, 480 | "setId": 5, 481 | "iconIdx": 365 482 | }, 483 | { 484 | "icon": { 485 | "paths": [ 486 | "M870.4 51.2h-716.8c-56.32 0-102.4 46.080-102.4 102.4v716.8c0 56.371 46.080 102.4 102.4 102.4h716.8c56.32 0 102.4-46.029 102.4-102.4v-716.8c0-56.32-46.080-102.4-102.4-102.4zM511.181 794.778c156.621 0 283.546-127.027 283.546-283.597 0-17.306-2.202-33.997-5.274-50.381h80.947v369.459c0 19.558-15.872 35.328-35.482 35.328h-645.837c-19.61-0-35.482-15.77-35.482-35.328v-369.459h79.309c-3.123 16.384-5.325 33.075-5.325 50.381 0 156.621 127.027 283.597 283.597 283.597zM333.978 511.181c0-97.894 79.36-177.203 177.254-177.203 97.843 0 177.254 79.309 177.254 177.203s-79.411 177.254-177.254 177.254c-97.946 0-177.254-79.36-177.254-177.254zM834.918 307.2h-82.688c-19.558 0-35.43-15.974-35.43-35.43v-82.79c0-19.558 15.872-35.379 35.379-35.379h82.688c19.661 0 35.533 15.821 35.533 35.379v82.739c0 19.507-15.872 35.482-35.482 35.482z" 487 | ], 488 | "attrs": [], 489 | "isMulticolor": false, 490 | "isMulticolor2": false, 491 | "tags": [ 492 | "instagram" 493 | ], 494 | "grid": 20 495 | }, 496 | "attrs": [], 497 | "properties": { 498 | "id": 368, 499 | "order": 29, 500 | "prevSize": 20, 501 | "code": 59666, 502 | "name": "instagram" 503 | }, 504 | "setIdx": 2, 505 | "setId": 5, 506 | "iconIdx": 367 507 | }, 508 | { 509 | "icon": { 510 | "paths": [ 511 | "M441.19 677.222c-26.931 141.005-59.75 276.173-157.082 346.778-30.003-213.094 44.083-373.094 78.541-542.976-58.726-98.816 7.066-297.574 130.816-248.576 152.32 60.211-131.891 367.206 58.88 405.606 199.219 39.987 280.525-345.6 156.979-470.989-178.432-181.146-519.475-4.25-477.491 255.078 10.189 63.386 75.674 82.586 26.163 170.086-114.227-25.293-148.326-115.405-143.923-235.52 7.066-196.608 176.589-334.182 346.675-353.28 215.091-24.115 416.973 79.002 444.877 281.293 31.386 228.403-97.075 475.802-327.117 457.984-62.362-4.864-88.474-35.789-137.318-65.485z" 512 | ], 513 | "attrs": [], 514 | "isMulticolor": false, 515 | "isMulticolor2": false, 516 | "tags": [ 517 | "pinterest" 518 | ], 519 | "grid": 20 520 | }, 521 | "attrs": [], 522 | "properties": { 523 | "id": 374, 524 | "order": 31, 525 | "prevSize": 20, 526 | "code": 59667, 527 | "name": "pinterest" 528 | }, 529 | "setIdx": 2, 530 | "setId": 5, 531 | "iconIdx": 373 532 | }, 533 | { 534 | "icon": { 535 | "paths": [ 536 | "M798.72 931.635c-39.782 18.995-75.776 32.307-107.981 39.987-32.256 7.578-67.123 11.418-104.602 11.418-42.547 0-80.179-5.478-112.896-16.282-32.717-10.906-60.57-26.419-83.712-46.49-23.091-20.224-39.117-41.574-48.026-64.205-8.909-22.682-13.363-55.603-13.363-98.611v-330.496h-102.861v-133.325c36.557-11.981 67.891-29.184 93.952-51.712 26.112-22.426 47.002-49.408 62.822-80.896 15.77-31.386 26.573-71.475 32.563-120.064h132.352v238.182h220.877v147.814h-220.877v241.613c0 54.579 2.867 89.702 8.602 105.216 5.683 15.514 16.333 27.904 31.846 37.12 20.634 12.493 44.186 18.79 70.707 18.79 47.104 0 94.003-15.514 140.595-46.49v148.429z" 537 | ], 538 | "attrs": [], 539 | "isMulticolor": false, 540 | "isMulticolor2": false, 541 | "tags": [ 542 | "tumblr" 543 | ], 544 | "grid": 20 545 | }, 546 | "attrs": [], 547 | "properties": { 548 | "id": 379, 549 | "order": 34, 550 | "prevSize": 20, 551 | "code": 59668, 552 | "name": "tumblr" 553 | }, 554 | "setIdx": 2, 555 | "setId": 5, 556 | "iconIdx": 378 557 | }, 558 | { 559 | "icon": { 560 | "paths": [ 561 | "M886.579 319.795c0.41 8.294 0.563 16.691 0.563 24.986 0 255.488-194.406 549.99-549.888 549.99-109.21 0-210.739-32-296.294-86.886 15.155 1.792 30.515 2.714 46.080 2.714 90.624 0 173.926-30.925 240.026-82.688-84.531-1.587-155.955-57.395-180.531-134.195 11.776 2.202 23.91 3.379 36.352 3.379 17.664 0 34.765-2.304 50.944-6.707-88.422-17.818-155.034-95.898-155.034-189.594 0-0.819 0-1.587 0-2.406 26.061 14.49 55.91 23.194 87.552 24.218-51.866-34.714-86.016-93.798-86.016-160.922 0-35.379 9.523-68.608 26.214-97.178 95.283 116.992 237.773 193.894 398.387 201.984-3.277-14.182-4.966-28.877-4.966-44.083 0-106.701 86.477-193.178 193.229-193.178 55.603 0 105.83 23.398 141.107 60.979 43.981-8.704 85.35-24.781 122.726-46.899-14.438 45.107-45.107 82.995-84.992 106.906 39.117-4.71 76.288-15.002 111.002-30.413-25.907 38.81-58.675 72.806-96.461 99.994z" 562 | ], 563 | "attrs": [], 564 | "isMulticolor": false, 565 | "isMulticolor2": false, 566 | "tags": [ 567 | "twitter" 568 | ], 569 | "grid": 20 570 | }, 571 | "attrs": [], 572 | "properties": { 573 | "id": 381, 574 | "order": 30, 575 | "prevSize": 20, 576 | "code": 59669, 577 | "name": "twitter" 578 | }, 579 | "setIdx": 2, 580 | "setId": 5, 581 | "iconIdx": 380 582 | } 583 | ], 584 | "height": 1024, 585 | "metadata": { 586 | "name": "icomoon" 587 | }, 588 | "preferences": { 589 | "showGlyphs": true, 590 | "showQuickUse": true, 591 | "showQuickUse2": true, 592 | "showSVGs": true, 593 | "fontPref": { 594 | "prefix": "icon-", 595 | "metadata": { 596 | "fontFamily": "icomoon" 597 | }, 598 | "metrics": { 599 | "emSize": 1024, 600 | "baseline": 6.25, 601 | "whitespace": 50 602 | }, 603 | "embed": false 604 | }, 605 | "imagePref": { 606 | "prefix": "icon-", 607 | "png": true, 608 | "useClassSelector": true, 609 | "color": 0, 610 | "bgColor": 16777215, 611 | "classSelector": ".icon" 612 | }, 613 | "historySize": 100, 614 | "showCodes": true, 615 | "gridSize": 16 616 | } 617 | } -------------------------------------------------------------------------------- /assets/img/algolia.svg: -------------------------------------------------------------------------------- 1 | Algolia_logo_bg-white -------------------------------------------------------------------------------- /assets/img/avatar.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artchen/ghost-theme-memory/847ce7e31087fe7e933845a6e93b7890e846e550/assets/img/avatar.jpg -------------------------------------------------------------------------------- /assets/img/azure.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/img/baidu.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/img/classy_fabric_@2X.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artchen/ghost-theme-memory/847ce7e31087fe7e933845a6e93b7890e846e550/assets/img/classy_fabric_@2X.png -------------------------------------------------------------------------------- /assets/img/google.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/img/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artchen/ghost-theme-memory/847ce7e31087fe7e933845a6e93b7890e846e550/assets/img/logo.png -------------------------------------------------------------------------------- /assets/img/logo.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artchen/ghost-theme-memory/847ce7e31087fe7e933845a6e93b7890e846e550/assets/img/logo.psd -------------------------------------------------------------------------------- /author.hbs: -------------------------------------------------------------------------------- 1 | {{!< default}} 2 | 3 |
4 | {{#author}} 5 |
6 | {{#if cover}} 7 |
8 |
9 |
10 | {{/if}} 11 | {{#if image}} 12 |
13 | 14 |
15 | {{/if}} 16 |

17 | {{name}} 18 |

19 |
20 | {{/author}} 21 | {{> "loop"}} 22 | {{pagination}} 23 |
24 | -------------------------------------------------------------------------------- /default.hbs: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | {{meta_title}} 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 51 | 52 | {{ghost_head}} 53 | 54 | 55 | 56 |
57 |
58 |
59 | 60 | 61 |
62 | {{> header}} 63 | 64 | 65 | 66 | {{{body}}} 67 | 68 | 69 | {{> footer}} 70 | 71 |
72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | {{ghost_foot}} 86 | 87 | 88 | -------------------------------------------------------------------------------- /gulpfile.js: -------------------------------------------------------------------------------- 1 | /* gulp dependencies */ 2 | var gulp = require('gulp'); 3 | var less = require('gulp-less'); 4 | var watch = require('gulp-watch'); 5 | var imagemin = require('gulp-imagemin'); 6 | var concat = require('gulp-concat'); 7 | var sourcemaps = require('gulp-sourcemaps'); 8 | var uglify = require('gulp-uglify'); 9 | var cleanCSS = require('gulp-clean-css'); 10 | var jshint = require('gulp-jshint'); 11 | 12 | /* path def */ 13 | var path = { 14 | MARKUP: [ 15 | 'src/*.hbs', 16 | 'src/partials/*.hbs' 17 | ], 18 | JS: [ 19 | 'src/assets/js/search.js', 20 | 'src/assets/js/app.js' 21 | ], 22 | LESS: [ 23 | 'src/assets/less/style.less' 24 | ], 25 | LESS_ALL: [ 26 | 'src/assets/less/*.less', 27 | 'src/assets/less/**/*.less' 28 | ], 29 | FONTS: [ 30 | 'src/assets/fonts/**' 31 | ], 32 | IMG: [ 33 | 'src/assets/img/**' 34 | ], 35 | VENDOR: [ 36 | 'node_modules/jquery/dist/jquery.js' 37 | ], 38 | DIST: './' 39 | }; 40 | 41 | var all_tasks = ['lint', 'less', 'js', 'vendor', 'markup', 'img', 'misc']; 42 | 43 | gulp.task('lint', function() { 44 | return gulp.src(path.JS) 45 | .pipe(jshint()) 46 | .pipe(jshint.reporter('default')) 47 | .pipe(jshint.reporter('fail')); 48 | }); 49 | 50 | /* compile less */ 51 | gulp.task('less', function () { 52 | gulp.src(path.LESS) 53 | .pipe(less()) 54 | .pipe(cleanCSS()) 55 | .pipe(gulp.dest(path.DIST + '/assets/css')); 56 | }); 57 | 58 | /* concat and compress app scripts */ 59 | gulp.task('js', function () { 60 | gulp.src(path.JS) 61 | .pipe(sourcemaps.init()) 62 | .pipe(concat('app.js')) 63 | .pipe(uglify()) 64 | .pipe(sourcemaps.write()) 65 | .pipe(gulp.dest(path.DIST + '/assets/js')); 66 | }); 67 | 68 | /* copy over markups */ 69 | gulp.task('markup', function(){ 70 | gulp.src(path.MARKUP, {base: 'src'}) 71 | .pipe(gulp.dest(path.DIST)); 72 | }); 73 | 74 | /* compress images */ 75 | gulp.task('img', function(){ 76 | gulp.src(path.IMG) 77 | .pipe(imagemin()) 78 | .pipe(gulp.dest(path.DIST + '/assets/img')); 79 | }); 80 | 81 | /* vendor js */ 82 | gulp.task('vendor', function() { 83 | gulp.src(path.VENDOR) 84 | .pipe(concat('vendor.js')) 85 | .pipe(uglify()) 86 | .pipe(gulp.dest(path.DIST + '/assets/js')); 87 | }); 88 | 89 | /* misc */ 90 | gulp.task('misc', function(){ 91 | // favicon 92 | gulp.src('src/assets/favicon/*') 93 | .pipe(gulp.dest(path.DIST + '/assets/favicon')); 94 | // fonts 95 | gulp.src('src/assets/fonts/**') 96 | .pipe(gulp.dest(path.DIST + '/assets/fonts')); 97 | }); 98 | 99 | /* watch all changes */ 100 | gulp.task('watch', function () { 101 | gulp.watch(path.LESS_ALL, ['less']); 102 | gulp.watch(path.JS, ['lint', 'js']); 103 | gulp.watch(path.VENDOR, ['vendor']); 104 | gulp.watch(path.MARKUP, ['markup','misc']); 105 | gulp.watch(path.IMG, ['img']); 106 | }); 107 | 108 | 109 | /* defualt */ 110 | gulp.task('default', all_tasks); 111 | -------------------------------------------------------------------------------- /index.hbs: -------------------------------------------------------------------------------- 1 | {{!< default}} 2 | 3 |
4 | {{> "loop"}} 5 | {{pagination}} 6 |
7 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ghost-theme-memory", 3 | "version": "1.1.0", 4 | "description": "A minimal ghost theme", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "test" 8 | }, 9 | "keywords": [ 10 | "ghost", 11 | "theme" 12 | ], 13 | "author": "Art Chen", 14 | "license": "MIT", 15 | "dependencies": { 16 | "gulp": "^3.9.1", 17 | "gulp-clean": "^0.3.2", 18 | "gulp-clean-css": "^2.0.6", 19 | "gulp-concat": "^2.6.0", 20 | "gulp-imagemin": "^3.1.1", 21 | "gulp-jshint": "^2.0.1", 22 | "gulp-less": "^3.1.0", 23 | "gulp-sourcemaps": "^2.0.0-alpha", 24 | "gulp-uglify": "^2.0.1", 25 | "gulp-watch": "^4.3.5", 26 | "jquery": "^3.1.0", 27 | "jshint": "^2.9.3" 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /page.hbs: -------------------------------------------------------------------------------- 1 | {{!< default}} 2 | 3 | {{#post}} 4 | 5 |
6 |
7 |

{{{title}}}

8 | 9 |
10 | {{content}} 11 |
12 |
13 |
14 |
15 |
16 |
17 | {{/post}} 18 | 19 | -------------------------------------------------------------------------------- /partials/footer.hbs: -------------------------------------------------------------------------------- 1 | 2 | 33 | 34 | -------------------------------------------------------------------------------- /partials/header.hbs: -------------------------------------------------------------------------------- 1 | 15 | -------------------------------------------------------------------------------- /partials/loop.hbs: -------------------------------------------------------------------------------- 1 |
2 | {{#foreach posts}} 3 |
4 |

{{{title}}}

5 | 6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 | {{content}} 16 |
17 |
18 | {{tags separator=""}} 19 |
20 |
21 | {{/foreach}} 22 |
23 | -------------------------------------------------------------------------------- /partials/navigation.hbs: -------------------------------------------------------------------------------- 1 | 8 | -------------------------------------------------------------------------------- /partials/pagination.hbs: -------------------------------------------------------------------------------- 1 |
2 | {{#if prev}} 3 | 7 | {{/if}} 8 | {{#if next}} 9 | 13 | {{/if}} 14 |
-------------------------------------------------------------------------------- /partials/search.hbs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /post.hbs: -------------------------------------------------------------------------------- 1 | {{!< default}} 2 | 3 | {{#post}} 4 | 5 |
6 |
7 |

{{{title}}}

8 | 9 |
10 | {{content}} 11 |
12 |
13 | {{tags separator=""}} 14 |
15 |
16 | 17 |
18 | {{#prev_post}} 19 | 23 | {{/prev_post}} 24 | {{#next_post}} 25 | 29 | {{/next_post}} 30 |
31 | 32 |
33 |
34 |
35 | 36 |
37 | 38 | {{/post}} -------------------------------------------------------------------------------- /src/assets/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artchen/ghost-theme-memory/847ce7e31087fe7e933845a6e93b7890e846e550/src/assets/favicon.ico -------------------------------------------------------------------------------- /src/assets/favicon/apple-touch-icon-114x114.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artchen/ghost-theme-memory/847ce7e31087fe7e933845a6e93b7890e846e550/src/assets/favicon/apple-touch-icon-114x114.png -------------------------------------------------------------------------------- /src/assets/favicon/apple-touch-icon-120x120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artchen/ghost-theme-memory/847ce7e31087fe7e933845a6e93b7890e846e550/src/assets/favicon/apple-touch-icon-120x120.png -------------------------------------------------------------------------------- /src/assets/favicon/apple-touch-icon-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artchen/ghost-theme-memory/847ce7e31087fe7e933845a6e93b7890e846e550/src/assets/favicon/apple-touch-icon-144x144.png -------------------------------------------------------------------------------- /src/assets/favicon/apple-touch-icon-152x152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artchen/ghost-theme-memory/847ce7e31087fe7e933845a6e93b7890e846e550/src/assets/favicon/apple-touch-icon-152x152.png -------------------------------------------------------------------------------- /src/assets/favicon/apple-touch-icon-57x57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artchen/ghost-theme-memory/847ce7e31087fe7e933845a6e93b7890e846e550/src/assets/favicon/apple-touch-icon-57x57.png -------------------------------------------------------------------------------- /src/assets/favicon/apple-touch-icon-60x60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artchen/ghost-theme-memory/847ce7e31087fe7e933845a6e93b7890e846e550/src/assets/favicon/apple-touch-icon-60x60.png -------------------------------------------------------------------------------- /src/assets/favicon/apple-touch-icon-72x72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artchen/ghost-theme-memory/847ce7e31087fe7e933845a6e93b7890e846e550/src/assets/favicon/apple-touch-icon-72x72.png -------------------------------------------------------------------------------- /src/assets/favicon/apple-touch-icon-76x76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artchen/ghost-theme-memory/847ce7e31087fe7e933845a6e93b7890e846e550/src/assets/favicon/apple-touch-icon-76x76.png -------------------------------------------------------------------------------- /src/assets/favicon/code.txt: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /src/assets/favicon/favicon-128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artchen/ghost-theme-memory/847ce7e31087fe7e933845a6e93b7890e846e550/src/assets/favicon/favicon-128.png -------------------------------------------------------------------------------- /src/assets/favicon/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artchen/ghost-theme-memory/847ce7e31087fe7e933845a6e93b7890e846e550/src/assets/favicon/favicon-16x16.png -------------------------------------------------------------------------------- /src/assets/favicon/favicon-196x196.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artchen/ghost-theme-memory/847ce7e31087fe7e933845a6e93b7890e846e550/src/assets/favicon/favicon-196x196.png -------------------------------------------------------------------------------- /src/assets/favicon/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artchen/ghost-theme-memory/847ce7e31087fe7e933845a6e93b7890e846e550/src/assets/favicon/favicon-32x32.png -------------------------------------------------------------------------------- /src/assets/favicon/favicon-96x96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artchen/ghost-theme-memory/847ce7e31087fe7e933845a6e93b7890e846e550/src/assets/favicon/favicon-96x96.png -------------------------------------------------------------------------------- /src/assets/favicon/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artchen/ghost-theme-memory/847ce7e31087fe7e933845a6e93b7890e846e550/src/assets/favicon/favicon.ico -------------------------------------------------------------------------------- /src/assets/favicon/mstile-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artchen/ghost-theme-memory/847ce7e31087fe7e933845a6e93b7890e846e550/src/assets/favicon/mstile-144x144.png -------------------------------------------------------------------------------- /src/assets/favicon/mstile-150x150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artchen/ghost-theme-memory/847ce7e31087fe7e933845a6e93b7890e846e550/src/assets/favicon/mstile-150x150.png -------------------------------------------------------------------------------- /src/assets/favicon/mstile-310x150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artchen/ghost-theme-memory/847ce7e31087fe7e933845a6e93b7890e846e550/src/assets/favicon/mstile-310x150.png -------------------------------------------------------------------------------- /src/assets/favicon/mstile-310x310.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artchen/ghost-theme-memory/847ce7e31087fe7e933845a6e93b7890e846e550/src/assets/favicon/mstile-310x310.png -------------------------------------------------------------------------------- /src/assets/favicon/mstile-70x70.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artchen/ghost-theme-memory/847ce7e31087fe7e933845a6e93b7890e846e550/src/assets/favicon/mstile-70x70.png -------------------------------------------------------------------------------- /src/assets/fonts/icomoon.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artchen/ghost-theme-memory/847ce7e31087fe7e933845a6e93b7890e846e550/src/assets/fonts/icomoon.eot -------------------------------------------------------------------------------- /src/assets/fonts/icomoon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Generated by IcoMoon 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /src/assets/fonts/icomoon.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artchen/ghost-theme-memory/847ce7e31087fe7e933845a6e93b7890e846e550/src/assets/fonts/icomoon.ttf -------------------------------------------------------------------------------- /src/assets/fonts/icomoon.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artchen/ghost-theme-memory/847ce7e31087fe7e933845a6e93b7890e846e550/src/assets/fonts/icomoon.woff -------------------------------------------------------------------------------- /src/assets/img/algolia.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Algolia_logo_bg-white 5 | Created with Sketch. 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /src/assets/img/avatar.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artchen/ghost-theme-memory/847ce7e31087fe7e933845a6e93b7890e846e550/src/assets/img/avatar.jpg -------------------------------------------------------------------------------- /src/assets/img/azure.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/img/baidu.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/img/google.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /src/assets/img/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artchen/ghost-theme-memory/847ce7e31087fe7e933845a6e93b7890e846e550/src/assets/img/logo.png -------------------------------------------------------------------------------- /src/assets/img/logo.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artchen/ghost-theme-memory/847ce7e31087fe7e933845a6e93b7890e846e550/src/assets/img/logo.psd -------------------------------------------------------------------------------- /src/assets/js/app.js: -------------------------------------------------------------------------------- 1 | var customSearch; 2 | 3 | (function($) { 4 | 5 | "use strict"; 6 | 7 | // options 8 | var SEARCH_SERVICE = 'google'; 9 | var EXCERPT_GENERATOR_ENABLE = true; 10 | 11 | var GOOGLE_CUSTOM_SEARCH_API_KEY = 'AIzaSyDGd5JJH7rR3sgS-JPYblwJ72GOsqzighc'; 12 | var GOOGLE_CUSTOM_SEARCH_ENGINE_ID = '017821029378163458527:msqkochcsj0'; 13 | var ALGOLIA_API_KEY = ''; 14 | var ALGOLIA_APP_ID = ''; 15 | var ALGOLIA_INDEX_NAME = ''; 16 | var AZURE_SERVICE_NAME = ''; 17 | var AZURE_INDEX_NAME = ''; 18 | var AZURE_QUERY_KEY = ''; 19 | var BAIDU_API_KEY = ''; 20 | 21 | var excerptGenerator = {}; 22 | 23 | var scrolltoElement = function(e) { 24 | e.preventDefault(); 25 | var self = $(this), 26 | correction = e.data ? e.data.correction ? e.data.correction : 0 : 0; 27 | $('html, body').animate({'scrollTop': $(self.attr('href')).offset().top - correction }, 400); 28 | }; 29 | 30 | var closeMenu = function(e) { 31 | e.stopPropagation(); 32 | $('body').removeClass('menu-open'); 33 | $('.site-nav-switch').removeClass('active'); 34 | }; 35 | 36 | var toggleMenu = function(e) { 37 | e.stopPropagation(); 38 | $('body').toggleClass('menu-open'); 39 | $('.site-nav-switch').toggleClass('active'); 40 | }; 41 | 42 | var pixivArchiveStat = function() { 43 | var vol = $(".single .content ul").length; 44 | var artistCount = $(".single .content ul li").length; 45 | $("#pixiv-vol").text(vol); 46 | $("#pixiv-artist-count").text(artistCount); 47 | }; 48 | 49 | var ExcerptGenerator = function(selector) { 50 | var self = this; 51 | self.init = function() { 52 | $(selector).each(function() { 53 | var post = $(this); 54 | var permalink = post.find('h2.title > a').attr('href'); 55 | var contentTag = post.find('section.content'); 56 | var contentLoadingTag = post.find('.content-loading'); 57 | var content = contentTag.html(); 58 | var re = /(.|\n)*/i; 59 | var excerpt = content.replace(re,""); 60 | if (content.length !== excerpt.length) { 61 | excerpt += "Read More..."; 62 | } 63 | contentTag.html(excerpt); 64 | contentTag.addClass('excerpt-ready'); 65 | contentLoadingTag.addClass('excerpt-ready'); 66 | }); 67 | }; 68 | self.init(); 69 | }; 70 | 71 | $(function() { 72 | $('#footer, #main').addClass('loaded'); 73 | $('.site-nav-switch').on('click', toggleMenu); 74 | $(document).on('click', closeMenu); 75 | $('.site-menu').on('click', function(e) { 76 | e.stopPropagation(); 77 | }); 78 | $('.window-nav, .go-comment').on('click', scrolltoElement); 79 | 80 | setTimeout(function() { 81 | $('#loading-bar-wrapper').fadeOut(500); 82 | }, 300); 83 | 84 | if ($('body').hasClass('tag-pixiv') && $("body").hasClass('page')) { 85 | pixivArchiveStat(); 86 | } 87 | if (EXCERPT_GENERATOR_ENABLE) { 88 | excerptGenerator = new ExcerptGenerator('.post-list .post'); 89 | } 90 | if (SEARCH_SERVICE === 'google') { 91 | customSearch = new GoogleCustomSearch({ 92 | apiKey: GOOGLE_CUSTOM_SEARCH_API_KEY, 93 | engineId: GOOGLE_CUSTOM_SEARCH_ENGINE_ID, 94 | imagePath: "/assets/img/" 95 | }); 96 | } 97 | else if (SEARCH_SERVICE === 'algolia') { 98 | customSearch = new AlgoliaSearch({ 99 | apiKey: ALGOLIA_API_KEY, 100 | appId: ALGOLIA_APP_ID, 101 | indexName: ALGOLIA_INDEX_NAME, 102 | imagePath: "/assets/img/" 103 | }); 104 | } 105 | else if (SEARCH_SERVICE === 'hexo') { 106 | customSearch = new HexoSearch({ 107 | imagePath: "/assets/img/" 108 | }); 109 | } 110 | else if (SEARCH_SERVICE === 'azure') { 111 | customSearch = new AzureSearch({ 112 | serviceName: AZURE_SERVICE_NAME, 113 | indexName: AZURE_INDEX_NAME, 114 | queryKey: AZURE_QUERY_KEY, 115 | imagePath: "/assets/img/" 116 | }); 117 | } 118 | else if (SEARCH_SERVICE === 'baidu') { 119 | customSearch = new BaiduSearch({ 120 | apiId: BAIDU_API_KEY, 121 | imagePath: "/assets/img/" 122 | }); 123 | } 124 | }); 125 | 126 | })(jQuery); -------------------------------------------------------------------------------- /src/assets/less/base.less: -------------------------------------------------------------------------------- 1 | /* Basic Settings */ 2 | 3 | * { 4 | box-sizing: inherit; 5 | outline: inherit; 6 | margin: 0; 7 | padding: 0; 8 | } 9 | 10 | /* My Base */ 11 | 12 | html { 13 | width: 100%; 14 | height: 100%; 15 | font-size: 62.5%; 16 | box-sizing: border-box; 17 | outline: none; 18 | -webkit-tap-highlight-color: rgba(0, 0, 0, 0); 19 | } 20 | 21 | body { 22 | width: 100%; 23 | height: 100%; 24 | font-family: @base-font-family; 25 | font-size: 1.8rem; 26 | line-height: 1.5em; 27 | color: @text-color; 28 | text-rendering: geometricPrecision; 29 | background-color: @background-color; 30 | 31 | &.modal-active { 32 | overflow: hidden; 33 | 34 | @media (max-width: @modal-threshold) { 35 | position: fixed; 36 | top: 0; 37 | right: 0; 38 | bottom: 0; 39 | left: 0; 40 | } 41 | } 42 | &.menu-open { 43 | 44 | .site-menu { 45 | transform: translate3d(0, 0, 0); 46 | visibility: visible; 47 | } 48 | } 49 | } 50 | 51 | ::-moz-selection { 52 | background: fade(lighten(@material-orange, 15%), 70%); 53 | color: @black; 54 | } 55 | 56 | ::selection { 57 | background: fade(lighten(@material-orange, 15%), 70%); 58 | color: @black; 59 | } 60 | 61 | h1, h2, h3, 62 | h4, h5, h6 { 63 | -webkit-font-feature-settings: 'dlig' 1, 'liga' 1, 'lnum' 1, 'kern' 1; 64 | -moz-font-feature-settings: 'dlig' 1, 'liga' 1, 'lnum' 1, 'kern' 1; 65 | -o-font-feature-settings: 'dlig' 1, 'liga' 1, 'lnum' 1, 'kern' 1; 66 | text-rendering: geometricPrecision; 67 | margin: 0 0 0.4em 0; 68 | } 69 | 70 | h1 { 71 | font-size: 1.8em; 72 | } 73 | 74 | h2 { 75 | font-size: 1.6em; 76 | } 77 | 78 | h3 { 79 | font-size: 1.4em; 80 | } 81 | 82 | h4 { 83 | font-size: 1.2em; 84 | } 85 | 86 | h5 { 87 | font-size: 1em; 88 | } 89 | 90 | h6 { 91 | font-size: 1em; 92 | } 93 | 94 | a { 95 | color: @black; 96 | text-decoration: none; 97 | transition: all 0.24s ease; 98 | 99 | &:hover { 100 | text-decoration: none; 101 | } 102 | } 103 | 104 | pre { 105 | tab-size: 2; 106 | -moz-tab-size: 2; 107 | -o-tab-size: 2; 108 | -webkit-tab-size: 2; 109 | } 110 | 111 | ::-webkit-input-placeholder { 112 | color: lighten(@grey-color, 20%); 113 | font-weight: 300; 114 | } 115 | 116 | :-moz-placeholder { /* Firefox 18- */ 117 | color: lighten(@grey-color, 20%); 118 | font-weight: 300; 119 | } 120 | 121 | ::-moz-placeholder { /* Firefox 19+ */ 122 | color: lighten(@grey-color, 20%); 123 | font-weight: 300; 124 | } 125 | 126 | :-ms-input-placeholder { 127 | color: lighten(@grey-color, 20%); 128 | font-weight: 300; 129 | } 130 | 131 | /** 132 | * Util 133 | */ 134 | .clearfix { 135 | zoom: 1; 136 | 137 | &:before, 138 | &:after { 139 | content: " "; // 1 140 | display: table; // 2 141 | } 142 | &:after { 143 | clear: both; 144 | } 145 | } 146 | 147 | .hidden { 148 | text-indent: -9999px; 149 | visibility: hidden; 150 | display: none; 151 | } 152 | 153 | .inner { 154 | position: relative; 155 | width: 80%; 156 | max-width: 710px; 157 | margin: 0 auto; 158 | } 159 | 160 | .vertical { 161 | display: table-cell; 162 | vertical-align: middle; 163 | } 164 | 165 | .right { 166 | float: right; 167 | } 168 | .left { 169 | float: left; 170 | } 171 | 172 | /** 173 | * Universal Wrapper 174 | */ 175 | .site-wrapper { 176 | position: relative; 177 | min-height: 100%; 178 | background: @background-color; 179 | overflow-x: hidden; 180 | transition: all 0.24s ease; 181 | z-index: 2; 182 | } 183 | 184 | .dark-btn { 185 | display: inline-block; 186 | background: rgba(0,0,0,0.3); 187 | border: 1px solid black; 188 | padding: 0px 15px; 189 | font-size: 13px; 190 | font-family: @base-font-family; 191 | text-align: center; 192 | color: lighten(#8f8f8f, 20%); 193 | 194 | &:hover { 195 | color: lighten(#8f8f8f, 40%); 196 | background-color: @brand-color; 197 | } 198 | .icon { 199 | margin-right: 5px; 200 | font-size: 16px; 201 | vertical-align: middle; 202 | line-height: 44px; 203 | } 204 | .text { 205 | vertical-align: middle; 206 | line-height: 44px; 207 | } 208 | } 209 | 210 | /** 211 | * Loading bar 212 | */ 213 | #loading-bar-wrapper { 214 | position: absolute; 215 | width: 100%; 216 | top: 0; 217 | left: 0; 218 | overflow: visible; 219 | z-index: 999; 220 | } 221 | #loading-bar { 222 | position: relative; 223 | width: 0; 224 | height: 2px; 225 | background-color: fade(lighten(@accent-color, 2%), 100%); 226 | transition: all 0.5s ease; 227 | } -------------------------------------------------------------------------------- /src/assets/less/content.less: -------------------------------------------------------------------------------- 1 | .content-loading { 2 | display: block; 3 | 4 | &.excerpt-ready { 5 | display: none; 6 | } 7 | } 8 | .content { 9 | display: none; 10 | color: lighten(@black, 2%); 11 | font-size: 14px; 12 | line-height: 1.75em; 13 | padding: 0px 30px; 14 | transition: all ease 0.24s; 15 | 16 | &.excerpt-ready { 17 | display: block; 18 | } 19 | &.single-content { 20 | display: block; 21 | } 22 | @media (max-width: @on-phone) { 23 | padding: 0px 20px; 24 | } 25 | #pixiv-vol, 26 | #pixiv-artist-count { 27 | color: @brand-color; 28 | font-weight: 500; 29 | } 30 | img { 31 | position: relative; 32 | display: block; 33 | width: 114%; 34 | margin: 0 -7%; 35 | box-shadow: 0px 0px 3px rgba(0, 0, 0, 0.15); 36 | padding: 5px; 37 | background: white; 38 | transition: all 0.24s ease; 39 | 40 | @media (max-width: @on-phone) { 41 | width: 100%; 42 | margin: 0; 43 | box-shadow: none; 44 | } 45 | } 46 | p.small-img, 47 | div.small-img { 48 | img { 49 | width: auto; 50 | max-width: 100%; 51 | margin: 0; 52 | box-shadow: none; 53 | } 54 | } 55 | p { 56 | margin: 20px 0px; 57 | } 58 | ul, 59 | ol { 60 | list-style: circle; 61 | margin: 20px 0px; 62 | padding-left: 30px; 63 | } 64 | a { 65 | color: darken(@accent-color, 2%); 66 | 67 | &:hover { 68 | color: darken(@accent-color, 3%); 69 | background: fade(@accent-color, 10%); 70 | } 71 | &:active { 72 | background: fade(@accent-color, 20%); 73 | color: @white; 74 | } 75 | } 76 | h1, h2, h3, h4, h5, h6 { 77 | position: relative; 78 | font-family: @base-font-family; 79 | font-weight: bold; 80 | margin: 40px auto 30px auto; 81 | left: 20px; 82 | 83 | &::before { 84 | position: absolute; 85 | left: -20px; 86 | top: 0px; 87 | content: "#"; 88 | color: @material-green; 89 | font-weight: normal; 90 | } 91 | } 92 | blockquote { 93 | position: relative; 94 | width: 100%; 95 | margin: 20px 0px; 96 | padding: 0px 20px; 97 | border-left: 4px solid @material-green; 98 | } 99 | pre { 100 | display: block; 101 | -moz-box-sizing: border-box; 102 | box-sizing: border-box; 103 | font-family: @code-font-family; 104 | width: 100%; 105 | font-size: 13px; 106 | margin: 20px 0px; 107 | padding: 10px 15px; 108 | background: lighten(@background-color,5%); 109 | white-space: pre; 110 | overflow: auto; 111 | 112 | code { 113 | color: @black; 114 | margin: 0; 115 | font-size: 1em; 116 | background: transparent; 117 | border: 0; 118 | white-space: inherit; 119 | } 120 | figure { 121 | margin: 0px; 122 | } 123 | } 124 | code { 125 | font-family: @code-font-family; 126 | color: darken(@brand-color, 2%); 127 | padding: 3px 5px; 128 | margin: 0px 2px; 129 | border-radius: 2px; 130 | white-space: nowrap; 131 | font-size: 1em; 132 | background: lighten(@background-color,5%); 133 | } 134 | 135 | @media (max-width: @on-phone) { 136 | 137 | h1, h2, h3 { 138 | margin: 30px 0px; 139 | } 140 | h4, h5, h6 { 141 | margin: 20px 0px; 142 | } 143 | h1 { 144 | font-size: 1.5em; 145 | } 146 | h2 { 147 | font-size: 1.4em; 148 | } 149 | h3 { 150 | font-size: 1.3em; 151 | } 152 | h4{ 153 | font-size: 1.2em; 154 | } 155 | h5 { 156 | font-size: 1.1em; 157 | } 158 | h6 { 159 | font-size: 1em; 160 | } 161 | figure { 162 | font-size: 13px; 163 | line-height: 1.6em; 164 | } 165 | } 166 | } 167 | 168 | /* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ 169 | 170 | /* Tomorrow Comment */ 171 | .hljs-comment, 172 | .hljs-quote { 173 | color: #8e908c; 174 | } 175 | 176 | /* Tomorrow Red */ 177 | .hljs-variable, 178 | .hljs-template-variable, 179 | .hljs-tag, 180 | .hljs-name, 181 | .hljs-selector-id, 182 | .hljs-selector-class, 183 | .hljs-regexp, 184 | .hljs-deletion { 185 | color: #c82829; 186 | } 187 | 188 | /* Tomorrow Orange */ 189 | .hljs-number, 190 | .hljs-built_in, 191 | .hljs-builtin-name, 192 | .hljs-literal, 193 | .hljs-type, 194 | .hljs-params, 195 | .hljs-meta, 196 | .hljs-link { 197 | color: #f5871f; 198 | } 199 | 200 | /* Tomorrow Yellow */ 201 | .hljs-attribute { 202 | color: #eab700; 203 | } 204 | 205 | /* Tomorrow Green */ 206 | .hljs-string, 207 | .hljs-symbol, 208 | .hljs-bullet, 209 | .hljs-addition { 210 | color: #718c00; 211 | } 212 | 213 | /* Tomorrow Blue */ 214 | .hljs-title, 215 | .hljs-section { 216 | color: #4271ae; 217 | } 218 | 219 | /* Tomorrow Purple */ 220 | .hljs-keyword, 221 | .hljs-selector-tag { 222 | color: #8959a8; 223 | } 224 | 225 | .hljs { 226 | display: block; 227 | overflow-x: auto; 228 | background: white; 229 | color: #4d4d4c; 230 | padding: 0.5em; 231 | } 232 | 233 | .hljs-emphasis { 234 | font-style: italic; 235 | } 236 | 237 | .hljs-strong { 238 | font-weight: bold; 239 | } -------------------------------------------------------------------------------- /src/assets/less/fonts.less: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: 'icomoon'; 3 | src: url('../fonts/icomoon.eot?7jyvbf'); 4 | src: url('../fonts/icomoon.eot?7jyvbf#iefix') format('embedded-opentype'), 5 | url('../fonts/icomoon.ttf?7jyvbf') format('truetype'), 6 | url('../fonts/icomoon.woff?7jyvbf') format('woff'), 7 | url('../fonts/icomoon.svg?7jyvbf#icomoon') format('svg'); 8 | font-weight: normal; 9 | font-style: normal; 10 | } 11 | 12 | [class^="icon-"], [class*=" icon-"] { 13 | /* use !important to prevent issues with browser extensions that change fonts */ 14 | font-family: 'icomoon' !important; 15 | speak: none; 16 | font-style: normal; 17 | font-weight: normal; 18 | font-variant: normal; 19 | text-transform: none; 20 | line-height: 1; 21 | 22 | /* Better Font Rendering =========== */ 23 | -webkit-font-smoothing: antialiased; 24 | -moz-osx-font-smoothing: grayscale; 25 | } 26 | 27 | .icon-close:before { 28 | content: "\e5cd"; 29 | } 30 | .icon-search:before { 31 | content: "\e8b6"; 32 | } 33 | .icon-chevron-down:before { 34 | content: "\e900"; 35 | } 36 | .icon-chevron-left:before { 37 | content: "\e901"; 38 | } 39 | .icon-chevron-right:before { 40 | content: "\e902"; 41 | } 42 | .icon-chevron-thin-down:before { 43 | content: "\e903"; 44 | } 45 | .icon-chevron-thin-left:before { 46 | content: "\e904"; 47 | } 48 | .icon-chevron-thin-right:before { 49 | content: "\e905"; 50 | } 51 | .icon-chevron-thin-up:before { 52 | content: "\e906"; 53 | } 54 | .icon-chevron-up:before { 55 | content: "\e907"; 56 | } 57 | .icon-mail:before { 58 | content: "\e90d"; 59 | } 60 | .icon-menu:before { 61 | content: "\e908"; 62 | } 63 | .icon-rss:before { 64 | content: "\e90a"; 65 | } 66 | .icon-user:before { 67 | content: "\e90b"; 68 | } 69 | .icon-vcard:before { 70 | content: "\e909"; 71 | } 72 | .icon-sina-weibo:before { 73 | content: "\e90e"; 74 | } 75 | .icon-facebook:before { 76 | content: "\e90f"; 77 | } 78 | .icon-github:before { 79 | content: "\e910"; 80 | } 81 | .icon-google:before { 82 | content: "\e911"; 83 | } 84 | .icon-instagram:before { 85 | content: "\e912"; 86 | } 87 | .icon-pinterest:before { 88 | content: "\e913"; 89 | } 90 | .icon-tumblr:before { 91 | content: "\e914"; 92 | } 93 | .icon-twitter:before { 94 | content: "\e915"; 95 | } 96 | 97 | -------------------------------------------------------------------------------- /src/assets/less/footer.less: -------------------------------------------------------------------------------- 1 | #footer { 2 | position: relative; 3 | padding: 20px; 4 | width: 100%; 5 | max-width: @on-phone; 6 | margin: 0px auto; 7 | font-size: 14px; 8 | overflow: hidden; 9 | text-align: center; 10 | opacity: 0; 11 | transform: translate3d(0px, -20px, 0px); 12 | transition: all 0.4s ease; 13 | z-index: 3; 14 | 15 | &.loaded { 16 | transform: translate3d(0px, 0px, 0px); 17 | opacity: 1; 18 | } 19 | .codename { 20 | color: @material-orange; 21 | } 22 | .social-wrapper { 23 | padding-top: 20px; 24 | } 25 | a { 26 | color: @grey-color; 27 | 28 | &:hover { 29 | background: fade(@accent-color, 10%); 30 | color: darken(@accent-color, 3%); 31 | } 32 | &.social { 33 | position: relative; 34 | display: inline-block; 35 | text-align: center; 36 | font-size: 18px; 37 | margin: 0px 3px; 38 | 39 | &:hover { 40 | background: transparent; 41 | color: @accent-color; 42 | } 43 | &.github:hover { 44 | color: @github-color; 45 | } 46 | &.google:hover { 47 | color: @google-color; 48 | } 49 | &.twitter:hover { 50 | color: @twitter-color; 51 | } 52 | &.weibo:hover { 53 | color: @weibo-color; 54 | } 55 | } 56 | } 57 | } 58 | 59 | .search { 60 | position: relative; 61 | width: 100%; 62 | max-width: 100%; 63 | margin: 0px auto 20px auto; 64 | z-index: 2; 65 | 66 | #searchform { 67 | position: relative; 68 | display: block; 69 | width: 100%; 70 | 71 | #u-search-btn-submit { 72 | display: block; 73 | position: absolute; 74 | top: 0; 75 | right: 0px; 76 | width: 36px; 77 | height: 36px; 78 | font-size: 18px; 79 | background: transparent; 80 | color: white; 81 | border: 0; 82 | text-align: center; 83 | 84 | span { 85 | line-height: 36px; 86 | } 87 | } 88 | } 89 | #searchinput { 90 | width: 100%; 91 | padding: 0px 10px; 92 | line-height: 36px; 93 | height: 36px; 94 | font-size: 14px; 95 | font-family: @base-font-family; 96 | border: none; 97 | border-radius: 0 !important; 98 | background: @black; 99 | color: white; 100 | box-sizing: border-box; 101 | appearance: none; 102 | box-shadow: none; 103 | transition: all 0.24s ease; 104 | 105 | &:focus { 106 | background: black; 107 | border-color: black; 108 | } 109 | } 110 | } -------------------------------------------------------------------------------- /src/assets/less/header.less: -------------------------------------------------------------------------------- 1 | #header { 2 | position: relative; 3 | width: 100%; 4 | color: @black; 5 | padding-bottom: 40px; 6 | border-top: 2px solid black; 7 | transition: all 0.24s ease; 8 | z-index: 3; 9 | 10 | @media (max-width: @on-phone) { 11 | padding-bottom: 20px; 12 | } 13 | .header-wrapper { 14 | position: relative; 15 | width: 100%; 16 | height: 70px; 17 | background: white; 18 | box-shadow: 0px 0px 3px rgba(0, 0, 0, 0.1); 19 | border-bottom: 1px solid lighten(#DEDFE1,1%); 20 | padding: 0px 20px; 21 | z-index: 3; 22 | } 23 | 24 | .logo { 25 | position: absolute; 26 | display: block; 27 | top: 0; 28 | left: 50%; 29 | margin-left: -80px; 30 | width: 160px; 31 | height: 82px; 32 | background: #000; 33 | padding: 10px 0px 12px 0px; 34 | transition: all 0.24s; 35 | 36 | @media (max-width: @on-phone) { 37 | width: 140px; 38 | height: 70px; 39 | margin-left: -70px; 40 | padding: 10px 0px; 41 | } 42 | 43 | img { 44 | display: block; 45 | width: 70px; 46 | height: auto; 47 | margin: 0px auto; 48 | transition: all 0.24s; 49 | 50 | @media (max-width: @on-phone) { 51 | width: 50px; 52 | } 53 | } 54 | .desc { 55 | display: block; 56 | text-align: center; 57 | color: white; 58 | font-size: 13px; 59 | transition: all 0.24s; 60 | 61 | @media (max-width: @on-phone) { 62 | font-size: 12px; 63 | } 64 | } 65 | } 66 | .site-nav-switch { 67 | position: relative; 68 | border: 0; 69 | float: right; 70 | outline: none; 71 | background: transparent; 72 | font-size: 30px; 73 | margin-top: 20px; 74 | transition: all 0.24s ease; 75 | 76 | &.active { 77 | transform: rotate(90deg); 78 | } 79 | } 80 | } 81 | 82 | .site-menu { 83 | position: absolute; 84 | top: 69px; 85 | right: 0; 86 | width: 220px; 87 | padding: 20px 0px; 88 | background: white; 89 | border: 1px solid #e6e7e6; 90 | border-right: 0; 91 | box-shadow: 0px 0px 1px rgba(0, 0, 0, 0.1); 92 | transform: translate3d(280px, 0, 0); 93 | transition: all 0.24s ease; 94 | visibility: hidden; 95 | z-index: 2; 96 | 97 | .menu { 98 | .nav { 99 | position: relative; 100 | display: block; 101 | color: @black; 102 | font-size: 0.8125em; 103 | padding: 2px 20px; 104 | border-left: 3px solid transparent; 105 | 106 | &:hover { 107 | background: fade(lighten(#e1e2e3, 3%), 60%); 108 | border-color: @accent-color; 109 | } 110 | } 111 | } 112 | } 113 | -------------------------------------------------------------------------------- /src/assets/less/loader.less: -------------------------------------------------------------------------------- 1 | .sk-folding-cube { 2 | margin: 20px auto; 3 | width: 20px; 4 | height: 20px; 5 | position: relative; 6 | -webkit-transform: rotateZ(45deg); 7 | transform: rotateZ(45deg); 8 | } 9 | 10 | .sk-folding-cube .sk-cube { 11 | float: left; 12 | width: 50%; 13 | height: 50%; 14 | position: relative; 15 | -webkit-transform: scale(1.1); 16 | -ms-transform: scale(1.1); 17 | transform: scale(1.1); 18 | } 19 | .sk-folding-cube .sk-cube:before { 20 | content: ''; 21 | position: absolute; 22 | top: 0; 23 | left: 0; 24 | width: 100%; 25 | height: 100%; 26 | background-color: lighten(@material-orange,10%); 27 | -webkit-animation: sk-foldCubeAngle 2.4s infinite linear both; 28 | animation: sk-foldCubeAngle 2.4s infinite linear both; 29 | -webkit-transform-origin: 100% 100%; 30 | -ms-transform-origin: 100% 100%; 31 | transform-origin: 100% 100%; 32 | } 33 | .sk-folding-cube .sk-cube2 { 34 | -webkit-transform: scale(1.1) rotateZ(90deg); 35 | transform: scale(1.1) rotateZ(90deg); 36 | } 37 | .sk-folding-cube .sk-cube3 { 38 | -webkit-transform: scale(1.1) rotateZ(180deg); 39 | transform: scale(1.1) rotateZ(180deg); 40 | } 41 | .sk-folding-cube .sk-cube4 { 42 | -webkit-transform: scale(1.1) rotateZ(270deg); 43 | transform: scale(1.1) rotateZ(270deg); 44 | } 45 | .sk-folding-cube .sk-cube2:before { 46 | -webkit-animation-delay: 0.3s; 47 | animation-delay: 0.3s; 48 | } 49 | .sk-folding-cube .sk-cube3:before { 50 | -webkit-animation-delay: 0.6s; 51 | animation-delay: 0.6s; 52 | } 53 | .sk-folding-cube .sk-cube4:before { 54 | -webkit-animation-delay: 0.9s; 55 | animation-delay: 0.9s; 56 | } 57 | @-webkit-keyframes sk-foldCubeAngle { 58 | 0%, 10% { 59 | -webkit-transform: perspective(140px) rotateX(-180deg); 60 | transform: perspective(140px) rotateX(-180deg); 61 | opacity: 0; 62 | } 25%, 75% { 63 | -webkit-transform: perspective(140px) rotateX(0deg); 64 | transform: perspective(140px) rotateX(0deg); 65 | opacity: 1; 66 | } 90%, 100% { 67 | -webkit-transform: perspective(140px) rotateY(180deg); 68 | transform: perspective(140px) rotateY(180deg); 69 | opacity: 0; 70 | } 71 | } 72 | 73 | @keyframes sk-foldCubeAngle { 74 | 0%, 10% { 75 | -webkit-transform: perspective(140px) rotateX(-180deg); 76 | transform: perspective(140px) rotateX(-180deg); 77 | opacity: 0; 78 | } 25%, 75% { 79 | -webkit-transform: perspective(140px) rotateX(0deg); 80 | transform: perspective(140px) rotateX(0deg); 81 | opacity: 1; 82 | } 90%, 100% { 83 | -webkit-transform: perspective(140px) rotateY(180deg); 84 | transform: perspective(140px) rotateY(180deg); 85 | opacity: 0; 86 | } 87 | } -------------------------------------------------------------------------------- /src/assets/less/main.less: -------------------------------------------------------------------------------- 1 | #main { 2 | position: relative; 3 | width: 100%; 4 | max-width: @on-phone; 5 | margin: 0px auto; 6 | padding: 0px 30px 20px 30px; 7 | opacity: 0; 8 | transform: translate3d(0px,-20px,0px); 9 | transition: all 0.24s ease; 10 | 11 | &.loaded { 12 | transform: translate3d(0px,0px,0px); 13 | opacity: 1; 14 | } 15 | @media (max-width: @on-phone) { 16 | padding: 0px 20px 20px 20px; 17 | } 18 | .post-list { 19 | position: relative; 20 | width: 760px; 21 | margin: 0px auto; 22 | 23 | @media (max-width: @on-phone) { 24 | width: 100%; 25 | } 26 | } 27 | .page-header { 28 | text-align: center; 29 | margin: 0px auto 20px auto; 30 | 31 | h1 { 32 | font-size: 0.875em; 33 | font-weight: normal; 34 | color: lighten(@grey-color, 20%); 35 | } 36 | } 37 | .post-nav { 38 | position: relative; 39 | width: 100%; 40 | padding: 20px 0px; 41 | 42 | .nav { 43 | font-size: 0.8125em; 44 | font-weight: normal; 45 | color: lighten(@black, 40%); 46 | border-radius: 2px; 47 | 48 | &:hover { 49 | color: white; 50 | background: @black; 51 | } 52 | &.next { 53 | padding: 0 7px 2px 10px; 54 | } 55 | &.prev { 56 | padding: 0 10px 2px 7px; 57 | } 58 | span { 59 | line-height: 20px; 60 | vertical-align: middle; 61 | 62 | &.icon { 63 | position: relative; 64 | top: 1px; 65 | } 66 | } 67 | } 68 | } 69 | .comments { 70 | position: relative; 71 | padding: 30px; 72 | background: white; 73 | box-shadow: 0px 0px 3px rgba(0, 0, 0, 0.15); 74 | 75 | @media (max-width: @on-phone) { 76 | padding: 20px; 77 | } 78 | &.page { 79 | margin-top: 20px; 80 | } 81 | } 82 | .post { 83 | position: relative; 84 | margin-bottom: 50px; 85 | position: relative; 86 | padding: 40px 0px; 87 | background: white; 88 | box-shadow: 0px 0px 3px rgba(0, 0, 0, 0.15); 89 | 90 | &:last-child, 91 | &.single { 92 | margin-bottom: 0px; 93 | } 94 | &.author-profile { 95 | position: relative; 96 | padding: 30px 20px; 97 | height: auto; 98 | text-align: center; 99 | margin-bottom: 30px; 100 | transition: all 0.24s ease; 101 | 102 | @media (max-width: @on-phone) { 103 | padding: 20px; 104 | } 105 | .author-title, 106 | .author-bio { 107 | position: relative; 108 | font-size: 1em; 109 | z-index: 1; 110 | 111 | span, 112 | a { 113 | display: inline-block; 114 | background: rgba(0,0,0,0.5); 115 | color: white; 116 | padding: 5px 15px 7px 15px; 117 | border-radius: 5px; 118 | font-weight: 500; 119 | letter-spacing: 1px; 120 | } 121 | a:hover { 122 | color: @accent-color; 123 | background: rgba(0,0,0,0.75); 124 | } 125 | } 126 | .author-title { 127 | 128 | a { 129 | font-size: 1.25em; 130 | 131 | @media (max-width: @on-phone) { 132 | font-size: 1.25em; 133 | padding: 7px 20px; 134 | } 135 | } 136 | } 137 | .author-avatar { 138 | position: relative; 139 | margin: 0px auto; 140 | width: 80px; 141 | height: 80px; 142 | border-radius: 50%; 143 | overflow: hidden; 144 | margin-bottom: 20px; 145 | z-index: 1; 146 | 147 | img { 148 | display: block; 149 | width: 100%; 150 | height: 100%; 151 | } 152 | } 153 | .author-cover { 154 | position: absolute; 155 | top: 0; 156 | left: 0; 157 | width: 100%; 158 | height: 100%; 159 | background: @black; 160 | z-index: 0; 161 | 162 | .img { 163 | display: block; 164 | width: 100%; 165 | height: 100%; 166 | background-size: cover; 167 | } 168 | } 169 | } 170 | .title { 171 | display: block; 172 | text-align: center; 173 | font-size: 1.25em; 174 | padding: 0px 20px; 175 | 176 | @media (max-width: @on-phone) { 177 | font-size: 1em; 178 | } 179 | a { 180 | display: inline; 181 | line-height: 1.25; 182 | font-weight: normal; 183 | color: lighten(@black, 2%); 184 | 185 | &:hover { 186 | color: lighten(@material-green, 3%); 187 | } 188 | } 189 | } 190 | time { 191 | display: block; 192 | text-align: center; 193 | color: lighten(@grey-color, 20%); 194 | font-size: 0.75em; 195 | margin-bottom: 30px; 196 | } 197 | .image { 198 | position: relative; 199 | width: 100%; 200 | margin: 20px 0px; 201 | 202 | a { 203 | display: block; 204 | } 205 | img { 206 | position: relative; 207 | display: block; 208 | width: 104%; 209 | margin: 0 -2%; 210 | box-shadow: 0px 0px 3px rgba(0, 0, 0, 0.15); 211 | } 212 | } 213 | 214 | .tags { 215 | margin-top: 30px; 216 | padding: 0px 30px; 217 | 218 | @media (max-width: @on-phone) { 219 | padding: 0px 20px; 220 | } 221 | 222 | a { 223 | position: relative; 224 | padding: 4px 10px 4px 20px; 225 | margin-right: 5px; 226 | font-size: 14px; 227 | background: @background-color; 228 | border-radius: 2px; 229 | vertical-align: middle; 230 | line-height: 1.75em; 231 | color: @black; 232 | 233 | &:hover { 234 | background: @black; 235 | color: white; 236 | } 237 | &::before { 238 | position: absolute; 239 | top: 0; 240 | left: 7px; 241 | content: "#"; 242 | } 243 | } 244 | } 245 | } 246 | } 247 | -------------------------------------------------------------------------------- /src/assets/less/normalize.less: -------------------------------------------------------------------------------- 1 | /*! normalize.css v3.0.2 | MIT License | git.io/normalize */ 2 | 3 | /** 4 | * 1. Set default font family to sans-serif. 5 | * 2. Prevent iOS text size adjust after orientation change, without disabling 6 | * user zoom. 7 | */ 8 | 9 | html { 10 | font-family: sans-serif; /* 1 */ 11 | -ms-text-size-adjust: 100%; /* 2 */ 12 | -webkit-text-size-adjust: 100%; /* 2 */ 13 | } 14 | 15 | /** 16 | * Remove default margin. 17 | */ 18 | 19 | body { 20 | margin: 0; 21 | } 22 | 23 | /* HTML5 display definitions 24 | ========================================================================== */ 25 | 26 | /** 27 | * Correct `block` display not defined for any HTML5 element in IE 8/9. 28 | * Correct `block` display not defined for `details` or `summary` in IE 10/11 29 | * and Firefox. 30 | * Correct `block` display not defined for `main` in IE 11. 31 | */ 32 | 33 | article, 34 | aside, 35 | details, 36 | figcaption, 37 | figure, 38 | footer, 39 | header, 40 | hgroup, 41 | main, 42 | menu, 43 | nav, 44 | section, 45 | summary { 46 | display: block; 47 | } 48 | 49 | /** 50 | * 1. Correct `inline-block` display not defined in IE 8/9. 51 | * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. 52 | */ 53 | 54 | audio, 55 | canvas, 56 | progress, 57 | video { 58 | display: inline-block; /* 1 */ 59 | vertical-align: baseline; /* 2 */ 60 | } 61 | 62 | /** 63 | * Prevent modern browsers from displaying `audio` without controls. 64 | * Remove excess height in iOS 5 devices. 65 | */ 66 | 67 | audio:not([controls]) { 68 | display: none; 69 | height: 0; 70 | } 71 | 72 | /** 73 | * Address `[hidden]` styling not present in IE 8/9/10. 74 | * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22. 75 | */ 76 | 77 | [hidden], 78 | template { 79 | display: none; 80 | } 81 | 82 | /* Links 83 | ========================================================================== */ 84 | 85 | /** 86 | * Remove the gray background color from active links in IE 10. 87 | */ 88 | 89 | a { 90 | background-color: transparent; 91 | } 92 | 93 | /** 94 | * Improve readability when focused and also mouse hovered in all browsers. 95 | */ 96 | 97 | a:active, 98 | a:hover { 99 | outline: 0; 100 | } 101 | 102 | /* Text-level semantics 103 | ========================================================================== */ 104 | 105 | /** 106 | * Address styling not present in IE 8/9/10/11, Safari, and Chrome. 107 | */ 108 | 109 | abbr[title] { 110 | border-bottom: 1px dotted; 111 | } 112 | 113 | /** 114 | * Address style set to `bolder` in Firefox 4+, Safari, and Chrome. 115 | */ 116 | 117 | b, 118 | strong { 119 | font-weight: bold; 120 | } 121 | 122 | /** 123 | * Address styling not present in Safari and Chrome. 124 | */ 125 | 126 | dfn { 127 | font-style: italic; 128 | } 129 | 130 | /** 131 | * Address variable `h1` font-size and margin within `section` and `article` 132 | * contexts in Firefox 4+, Safari, and Chrome. 133 | */ 134 | 135 | h1 { 136 | font-size: 2em; 137 | margin: 0.67em 0; 138 | } 139 | 140 | /** 141 | * Address styling not present in IE 8/9. 142 | */ 143 | 144 | mark { 145 | background: #ff0; 146 | color: #000; 147 | } 148 | 149 | /** 150 | * Address inconsistent and variable font size in all browsers. 151 | */ 152 | 153 | small { 154 | font-size: 80%; 155 | } 156 | 157 | /** 158 | * Prevent `sub` and `sup` affecting `line-height` in all browsers. 159 | */ 160 | 161 | sub, 162 | sup { 163 | font-size: 75%; 164 | line-height: 0; 165 | position: relative; 166 | vertical-align: baseline; 167 | } 168 | 169 | sup { 170 | top: -0.5em; 171 | } 172 | 173 | sub { 174 | bottom: -0.25em; 175 | } 176 | 177 | /* Embedded content 178 | ========================================================================== */ 179 | 180 | /** 181 | * Remove border when inside `a` element in IE 8/9/10. 182 | */ 183 | 184 | img { 185 | border: 0; 186 | } 187 | 188 | /** 189 | * Correct overflow not hidden in IE 9/10/11. 190 | */ 191 | 192 | svg:not(:root) { 193 | overflow: hidden; 194 | } 195 | 196 | /* Grouping content 197 | ========================================================================== */ 198 | 199 | /** 200 | * Address margin not present in IE 8/9 and Safari. 201 | */ 202 | 203 | figure { 204 | margin: 1em 40px; 205 | } 206 | 207 | /** 208 | * Address differences between Firefox and other browsers. 209 | */ 210 | 211 | hr { 212 | -moz-box-sizing: content-box; 213 | box-sizing: content-box; 214 | height: 0; 215 | } 216 | 217 | /** 218 | * Contain overflow in all browsers. 219 | */ 220 | 221 | pre { 222 | overflow: auto; 223 | } 224 | 225 | /** 226 | * Address odd `em`-unit font size rendering in all browsers. 227 | */ 228 | 229 | code, 230 | kbd, 231 | pre, 232 | samp { 233 | font-family: monospace, monospace; 234 | font-size: 1em; 235 | } 236 | 237 | /* Forms 238 | ========================================================================== */ 239 | 240 | /** 241 | * Known limitation: by default, Chrome and Safari on OS X allow very limited 242 | * styling of `select`, unless a `border` property is set. 243 | */ 244 | 245 | /** 246 | * 1. Correct color not being inherited. 247 | * Known issue: affects color of disabled elements. 248 | * 2. Correct font properties not being inherited. 249 | * 3. Address margins set differently in Firefox 4+, Safari, and Chrome. 250 | */ 251 | 252 | button, 253 | input, 254 | optgroup, 255 | select, 256 | textarea { 257 | color: inherit; /* 1 */ 258 | font: inherit; /* 2 */ 259 | margin: 0; /* 3 */ 260 | } 261 | 262 | /** 263 | * Address `overflow` set to `hidden` in IE 8/9/10/11. 264 | */ 265 | 266 | button { 267 | overflow: visible; 268 | } 269 | 270 | /** 271 | * Address inconsistent `text-transform` inheritance for `button` and `select`. 272 | * All other form control elements do not inherit `text-transform` values. 273 | * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. 274 | * Correct `select` style inheritance in Firefox. 275 | */ 276 | 277 | button, 278 | select { 279 | text-transform: none; 280 | } 281 | 282 | /** 283 | * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` 284 | * and `video` controls. 285 | * 2. Correct inability to style clickable `input` types in iOS. 286 | * 3. Improve usability and consistency of cursor style between image-type 287 | * `input` and others. 288 | */ 289 | 290 | button, 291 | html input[type="button"], /* 1 */ 292 | input[type="reset"], 293 | input[type="submit"] { 294 | -webkit-appearance: button; /* 2 */ 295 | cursor: pointer; /* 3 */ 296 | } 297 | 298 | /** 299 | * Re-set default cursor for disabled elements. 300 | */ 301 | 302 | button[disabled], 303 | html input[disabled] { 304 | cursor: default; 305 | } 306 | 307 | /** 308 | * Remove inner padding and border in Firefox 4+. 309 | */ 310 | 311 | button::-moz-focus-inner, 312 | input::-moz-focus-inner { 313 | border: 0; 314 | padding: 0; 315 | } 316 | 317 | /** 318 | * Address Firefox 4+ setting `line-height` on `input` using `!important` in 319 | * the UA stylesheet. 320 | */ 321 | 322 | input { 323 | line-height: normal; 324 | } 325 | 326 | /** 327 | * It's recommended that you don't attempt to style these elements. 328 | * Firefox's implementation doesn't respect box-sizing, padding, or width. 329 | * 330 | * 1. Address box sizing set to `content-box` in IE 8/9/10. 331 | * 2. Remove excess padding in IE 8/9/10. 332 | */ 333 | 334 | input[type="checkbox"], 335 | input[type="radio"] { 336 | box-sizing: border-box; /* 1 */ 337 | padding: 0; /* 2 */ 338 | } 339 | 340 | /** 341 | * Fix the cursor style for Chrome's increment/decrement buttons. For certain 342 | * `font-size` values of the `input`, it causes the cursor style of the 343 | * decrement button to change from `default` to `text`. 344 | */ 345 | 346 | input[type="number"]::-webkit-inner-spin-button, 347 | input[type="number"]::-webkit-outer-spin-button { 348 | height: auto; 349 | } 350 | 351 | /** 352 | * 1. Address `appearance` set to `searchfield` in Safari and Chrome. 353 | * 2. Address `box-sizing` set to `border-box` in Safari and Chrome 354 | * (include `-moz` to future-proof). 355 | */ 356 | 357 | input[type="search"] { 358 | -webkit-appearance: textfield; /* 1 */ 359 | -moz-box-sizing: content-box; 360 | -webkit-box-sizing: content-box; /* 2 */ 361 | box-sizing: content-box; 362 | } 363 | 364 | /** 365 | * Remove inner padding and search cancel button in Safari and Chrome on OS X. 366 | * Safari (but not Chrome) clips the cancel button when the search input has 367 | * padding (and `textfield` appearance). 368 | */ 369 | 370 | input[type="search"]::-webkit-search-cancel-button, 371 | input[type="search"]::-webkit-search-decoration { 372 | -webkit-appearance: none; 373 | } 374 | 375 | /** 376 | * Define consistent border, margin, and padding. 377 | */ 378 | 379 | fieldset { 380 | border: 1px solid #c0c0c0; 381 | margin: 0 2px; 382 | padding: 0.35em 0.625em 0.75em; 383 | } 384 | 385 | /** 386 | * 1. Correct `color` not being inherited in IE 8/9/10/11. 387 | * 2. Remove padding so people aren't caught out if they zero out fieldsets. 388 | */ 389 | 390 | legend { 391 | border: 0; /* 1 */ 392 | padding: 0; /* 2 */ 393 | } 394 | 395 | /** 396 | * Remove default vertical scrollbar in IE 8/9/10/11. 397 | */ 398 | 399 | textarea { 400 | overflow: auto; 401 | } 402 | 403 | /** 404 | * Don't inherit the `font-weight` (applied by a rule above). 405 | * NOTE: the default cannot safely be changed in Chrome and Safari on OS X. 406 | */ 407 | 408 | optgroup { 409 | font-weight: bold; 410 | } 411 | 412 | /* Tables 413 | ========================================================================== */ 414 | 415 | /** 416 | * Remove most spacing between table cells. 417 | */ 418 | 419 | table { 420 | border-collapse: collapse; 421 | border-spacing: 0; 422 | } 423 | 424 | td, 425 | th { 426 | padding: 0; 427 | } 428 | -------------------------------------------------------------------------------- /src/assets/less/search.less: -------------------------------------------------------------------------------- 1 | #u-search { 2 | display: none; 3 | position: fixed; 4 | top: 0; 5 | left: 0; 6 | width: 100%; 7 | height: 100%; 8 | padding: 60px 20px; 9 | z-index: 999999; 10 | 11 | @media (max-width: @modal-threshold) { 12 | padding: 0px; 13 | } 14 | .modal { 15 | position: fixed; 16 | height: 80%; 17 | width: 100%; 18 | max-width: 640px; 19 | left: 50%; 20 | top: 0; 21 | margin: 64px 0px 0px -320px; 22 | background: #fff; 23 | box-shadow: 0 7px 8px -4px rgba(0,0,0,.2),0 13px 19px 2px rgba(0,0,0,.14),0 5px 24px 4px rgba(0,0,0,.12); 24 | z-index: 3; 25 | 26 | @media (max-width: @modal-threshold) { 27 | box-shadow: none; 28 | max-width: none; 29 | top: 0; 30 | left: 0; 31 | margin: 0; 32 | height: 100%; 33 | } 34 | .modal-ajax-content { 35 | opacity: 0; 36 | visibility: hidden; 37 | transition: all 0.36s; 38 | 39 | &.loaded { 40 | opacity: 1; 41 | visibility: visible; 42 | } 43 | } 44 | .modal-header { 45 | position: relative; 46 | width: 100%; 47 | height: 50px; 48 | background-color: @tixora-color; 49 | z-index: 3; 50 | 51 | .btn-close { 52 | display: block; 53 | position: absolute; 54 | width: 50px; 55 | height: 50px; 56 | top: 0; 57 | right: 0; 58 | color: white; 59 | cursor: pointer; 60 | text-align: center; 61 | line-height: 50px; 62 | vertical-align: middle; 63 | font-size: 18px; 64 | transition: all 0.24s; 65 | z-index: 2; 66 | 67 | &:hover { 68 | transform: rotate(90deg); 69 | } 70 | } 71 | .modal-loading { 72 | position: absolute; 73 | bottom: -2px; 74 | left: 0px; 75 | width: 100%; 76 | height: 2px; 77 | background: transparent; 78 | z-index: 1; 79 | 80 | .modal-loading-bar { 81 | display: block; 82 | position: relative; 83 | width: 0%; 84 | height: 100%; 85 | background: lighten(@accent-color,15%); 86 | transition: width 0.24s; 87 | } 88 | } 89 | #u-search-modal-form { 90 | position: relative; 91 | width: 100%; 92 | height: 100%; 93 | z-index: 2; 94 | 95 | #u-search-modal-input { 96 | width: 100%; 97 | padding: 0px 50px 0px 40px; 98 | font-size: 15px; 99 | line-height: 50px; 100 | vertical-align: middle; 101 | color: #fff; 102 | border: none; 103 | background: transparent; 104 | transition: background-color 0.24s; 105 | font-weight: thin; 106 | appearance: none; 107 | box-shadow: none; 108 | 109 | &:focus { 110 | background-color: lighten(@tixora-color,5%); 111 | } 112 | } 113 | } 114 | #u-search-modal-btn-submit { 115 | position: absolute; 116 | top: 0; 117 | left: 0; 118 | padding-left: 5px; 119 | padding-top: 2px; 120 | background: transparent; 121 | border: none; 122 | width: 40px; 123 | height: 50px; 124 | vertical-align: middle; 125 | font-size: 20px; 126 | color: white; 127 | z-index: 2; 128 | } 129 | } 130 | .modal-footer { 131 | position: absolute; 132 | bottom: 0; 133 | left: 0; 134 | width: 100%; 135 | height: 50px; 136 | padding: 0px 15px; 137 | background: #fff; 138 | border-top: 1px solid lighten(@black,60%); 139 | 140 | .logo { 141 | position: absolute; 142 | top: 0; 143 | left: 0; 144 | width: 100%; 145 | height: 100%; 146 | text-align: center; 147 | z-index: 0; 148 | 149 | a { 150 | display: inline-block; 151 | } 152 | &.google img { 153 | height: 24px; 154 | margin-top: 13px; 155 | } 156 | &.baidu img { 157 | height: 22px; 158 | margin-top: 14px; 159 | } 160 | img { 161 | position: relative; 162 | display: inline-block; 163 | width: auto; 164 | height: 18px; 165 | margin-top: 16px; 166 | } 167 | } 168 | .modal-error { 169 | position: relative; 170 | float: left; 171 | vertical-align: middle; 172 | line-height: 50px; 173 | font-size: 13px; 174 | z-index: 1; 175 | } 176 | .modal-metadata { 177 | position: relative; 178 | float: left; 179 | vertical-align: middle; 180 | line-height: 50px; 181 | font-size: 13px; 182 | z-index: 1; 183 | } 184 | .nav { 185 | position: relative; 186 | display: block; 187 | float: right; 188 | vertical-align: middle; 189 | font-size: 13px; 190 | font-weight: 500; 191 | line-height: 50px; 192 | color: @grey-color; 193 | cursor: pointer; 194 | z-index: 1; 195 | 196 | &:hover { 197 | color: @black; 198 | } 199 | &.btn-next { 200 | margin-left: 10px; 201 | } 202 | .icon { 203 | font-size: 12px; 204 | } 205 | } 206 | } 207 | .modal-body { 208 | position: absolute; 209 | padding: 64px 40px 80px 40px; 210 | width: 100%; 211 | height: 100%; 212 | top: 0; 213 | left: 0; 214 | overflow-y: scroll; 215 | -webkit-overflow-scrolling: touch; 216 | 217 | @media (max-width: @modal-threshold) { 218 | padding: 60px 20px 80px 20px; 219 | } 220 | .modal-results { 221 | list-style: none; 222 | 223 | li { 224 | border-bottom: 1px solid #e6e8ea; 225 | 226 | &:last-child { 227 | border-bottom: none; 228 | } 229 | } 230 | .result { 231 | position: relative; 232 | display: block; 233 | padding: 15px 30px 15px 0px; 234 | text-decoration: none; 235 | 236 | &:hover { 237 | .digest, .icon { 238 | color: @black; 239 | } 240 | } 241 | .title { 242 | display: inline-block; 243 | max-width: 100%; 244 | color: @material-blue; 245 | font-size: 15px; 246 | font-weight: bold; 247 | background: lighten(@material-blue,43%); 248 | padding: 1px; 249 | border-bottom: 1px solid #e6e8ea; 250 | margin-bottom: 2px; 251 | line-height: 110%; 252 | white-space: nowrap; 253 | overflow: hidden; 254 | text-overflow: ellipsis; 255 | } 256 | .digest { 257 | display: block; 258 | font-size: 13px; 259 | line-height: 140%; 260 | color: lighten(@black, 30%); 261 | transition: color 0.24s; 262 | 263 | em { 264 | font-weight: bold; 265 | } 266 | } 267 | .icon { 268 | position: absolute; 269 | top: 50%; 270 | right: 0; 271 | margin-top: -4px; 272 | font-size: 11px; 273 | color: @grey-color; 274 | } 275 | } 276 | } 277 | } 278 | } 279 | .modal-overlay { 280 | position: absolute; 281 | top: 0; 282 | left: 0; 283 | width: 100%; 284 | height: 100%; 285 | background: rgba(0,0,0,0.8); 286 | z-index: 1; 287 | } 288 | } -------------------------------------------------------------------------------- /src/assets/less/style.less: -------------------------------------------------------------------------------- 1 | @charset "utf-8"; 2 | 3 | // Font families 4 | @fallback-font-family: Helvetica, Arial, "Hiragino Sans GB", "Hiragino Sans GB W3", Microsoft JhengHei, WenQuanYi Micro Hei, "Microsoft YaHei", sans-serif; 5 | @base-font-family: "futura-pt", @fallback-font-family; 6 | @code-font-family: "inconsolata", Consolas, monospace, sans-serif; 7 | 8 | // Font configuration 9 | @base-font-size: 16px; 10 | @small-font-size: @base-font-size * 0.875; 11 | @base-line-height: 1.5; 12 | 13 | // Spacing 14 | @spacing-unit: 30px; 15 | 16 | // Material color scheme 17 | @material-red: #f44336; 18 | @material-pink: #E91E63; 19 | @material-purple: #9c27b0; 20 | @material-deep-purple: #673ab7; 21 | @material-indigo: #3f51b5; 22 | @material-blue: #2196f3; 23 | @material-teal: #009688; 24 | @material-green: #4caf50; 25 | @material-light-green: #8bc34a; 26 | @material-orange: #ff9800; 27 | @material-deep-orange: #ff5722; 28 | @material-brown: #795548; 29 | @material-blue-grey: #607d8b; 30 | @material-grey: #9e9e9e; 31 | @material-yellow: #FFEB3B; 32 | 33 | // Social Networks Brand color 34 | @github-color: #467cc2; 35 | @twitter-color: #55acee; 36 | @facebook-color: #3765a3; 37 | @google-color: #db4437; 38 | @pinterest-color: #bc1725; 39 | @dribbble-color: #ed699c; 40 | @weibo-color: #f8712a; 41 | @tumblr-color: #35465c; 42 | @instagram-color: #3f729b; 43 | @linkedin-color: #0077B5; 44 | @behance-color: #1769FF; 45 | @tixora-color: #33475A; 46 | 47 | // Colors 48 | @black: #414141; 49 | @white: #ffffff; 50 | @text-color: @black; 51 | @background-color: #EBECEE; 52 | @brand-color: @material-teal; 53 | @accent-color: @material-orange; 54 | @grey-color: #828282; 55 | 56 | // Responsive limits 57 | @modal-threshold: 680px; 58 | @on-phone: 820px; 59 | @on-laptop: 990px; 60 | @on-desktop: 1200px; 61 | 62 | 63 | @import "fonts.less"; 64 | @import "normalize.less"; 65 | @import "base.less"; 66 | @import "loader.less"; 67 | 68 | @import "header.less"; 69 | @import "main.less"; 70 | @import "content.less"; 71 | @import "search.less"; 72 | @import "footer.less"; 73 | -------------------------------------------------------------------------------- /src/author.hbs: -------------------------------------------------------------------------------- 1 | {{!< default}} 2 | 3 |
4 | {{#author}} 5 |
6 | {{#if cover}} 7 |
8 |
9 |
10 | {{/if}} 11 | {{#if image}} 12 |
13 | 14 |
15 | {{/if}} 16 |

17 | {{name}} 18 |

19 |
20 | {{/author}} 21 | {{> "loop"}} 22 | {{pagination}} 23 |
24 | -------------------------------------------------------------------------------- /src/default.hbs: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | {{meta_title}} 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 51 | 52 | {{ghost_head}} 53 | 54 | 55 | 56 |
57 |
58 |
59 | 60 | 61 |
62 | {{> header}} 63 | 64 | 65 | 66 | {{{body}}} 67 | 68 | 69 | {{> footer}} 70 | 71 |
72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | {{ghost_foot}} 86 | 87 | 88 | -------------------------------------------------------------------------------- /src/index.hbs: -------------------------------------------------------------------------------- 1 | {{!< default}} 2 | 3 |
4 | {{> "loop"}} 5 | {{pagination}} 6 |
7 | -------------------------------------------------------------------------------- /src/page.hbs: -------------------------------------------------------------------------------- 1 | {{!< default}} 2 | 3 | {{#post}} 4 | 5 |
6 |
7 |

{{{title}}}

8 | 9 |
10 | {{content}} 11 |
12 |
13 |
14 |
15 |
16 |
17 | {{/post}} 18 | 19 | -------------------------------------------------------------------------------- /src/partials/footer.hbs: -------------------------------------------------------------------------------- 1 | 2 | 33 | 34 | -------------------------------------------------------------------------------- /src/partials/header.hbs: -------------------------------------------------------------------------------- 1 | 15 | -------------------------------------------------------------------------------- /src/partials/loop.hbs: -------------------------------------------------------------------------------- 1 |
2 | {{#foreach posts}} 3 |
4 |

{{{title}}}

5 | 6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 | {{content}} 16 |
17 |
18 | {{tags separator=""}} 19 |
20 |
21 | {{/foreach}} 22 |
23 | -------------------------------------------------------------------------------- /src/partials/navigation.hbs: -------------------------------------------------------------------------------- 1 | 8 | -------------------------------------------------------------------------------- /src/partials/pagination.hbs: -------------------------------------------------------------------------------- 1 |
2 | {{#if prev}} 3 | 7 | {{/if}} 8 | {{#if next}} 9 | 13 | {{/if}} 14 |
-------------------------------------------------------------------------------- /src/post.hbs: -------------------------------------------------------------------------------- 1 | {{!< default}} 2 | 3 | {{#post}} 4 | 5 |
6 |
7 |

{{{title}}}

8 | 9 |
10 | {{content}} 11 |
12 |
13 | {{tags separator=""}} 14 |
15 |
16 | 17 |
18 | {{#prev_post}} 19 | 23 | {{/prev_post}} 24 | {{#next_post}} 25 | 29 | {{/next_post}} 30 |
31 | 32 |
33 |
34 |
35 | 36 |
37 | 38 | {{/post}} -------------------------------------------------------------------------------- /src/tag.hbs: -------------------------------------------------------------------------------- 1 | {{!< default}} 2 | 3 |
4 | 7 | {{> "loop"}} 8 |
9 | -------------------------------------------------------------------------------- /tag.hbs: -------------------------------------------------------------------------------- 1 | {{!< default}} 2 | 3 |
4 | 7 | {{> "loop"}} 8 |
9 | --------------------------------------------------------------------------------