Repository: BoizZ/hexo-theme-laughing Branch: master Commit: f866aab0c9e4 Files: 52 Total size: 73.5 KB Directory structure: gitextract_u16fx8n4/ ├── .bowerrc ├── .gitignore ├── LICENSE ├── README.md ├── _config.yml ├── gruntfile.js ├── layout/ │ ├── _partial/ │ │ ├── footer.pug │ │ ├── layout.pug │ │ ├── page_header.pug │ │ ├── pagination.pug │ │ └── post_header.pug │ ├── index.pug │ └── post.pug ├── package.json └── source/ ├── components/ │ └── reset-css/ │ ├── .bower.json │ ├── .gitignore │ ├── LICENSE │ ├── README.md │ ├── dist/ │ │ ├── mobile/ │ │ │ └── reset.css │ │ └── pc/ │ │ └── reset.css │ ├── gruntfile.js │ ├── package.json │ ├── public/ │ │ ├── main/ │ │ │ └── reset.css │ │ ├── mobile/ │ │ │ └── reset.css │ │ └── native/ │ │ └── reset.css │ └── sass/ │ ├── _common.scss │ ├── custom/ │ │ ├── _microsoft-yahei.scss │ │ └── imitation-native.scss │ ├── main.scss │ ├── mobile-native.scss │ ├── mobile-single.scss │ └── reset/ │ ├── basic.scss │ ├── ie.scss │ ├── macos.scss │ └── mobile.scss ├── css/ │ └── main_style.css └── sass/ ├── _partial/ │ ├── duoshuo.scss │ ├── footer.scss │ ├── layout.scss │ ├── list.scss │ ├── main_navi.scss │ ├── navication.scss │ ├── page_header.scss │ ├── pagination.scss │ ├── post.scss │ └── post_header.scss ├── _util/ │ ├── color.scss │ ├── hightlight.scss │ ├── icon.scss │ ├── media.scss │ └── mixin.scss └── main_style.scss ================================================ FILE CONTENTS ================================================ ================================================ FILE: .bowerrc ================================================ { "directory": "source/components" } ================================================ FILE: .gitignore ================================================ .Ds_Store .sass-cache node_modules yarn.lock ================================================ FILE: LICENSE ================================================ MIT License Copyright (c) 2016 Laughing Gor Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================ FILE: README.md ================================================ # Laughing theme for hexo [![Build Status](https://img.shields.io/badge/build-passing-brightgreen.svg)](https://github.com/BoizZ/hexo-theme-laughing) [![Hexo](https://img.shields.io/badge/hexo-3.2.0+-blue.svg)](https://github.com/hexojs/hexo) [![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://raw.githubusercontent.com/BoizZ/hexo-theme-laughing/master/LICENSE) 简单轻量的[hexo](https://hexo.io)主题。 Demo: [lalala.lol](http://lalala.lol) ## 外观 响应式布局,宽松设计,还原最佳阅读体验。 ![电脑界面](http://callfiles.ueibo.com/hexo-theme-laughing/pc_1200.jpg) ![手机界面](http://callfiles.ueibo.com/hexo-theme-laughing/phone_1200.jpg) ## 功能 - 10分钟快速配置 - 支持多说评论,自由开启评论,主题定制样式 - 简易二次开发 ## 安装 1. 安装[hexo-render-pug](https://github.com/maxknee/hexo-render-pug) Laughing主题使用`pug`模板引擎开发,所以首先需要在主程序中安装依赖组件。 ``` shell npm install hexo-renderer-pug --save ``` 2. 拷贝主题到`themes`目录 ``` cd themes git clone git@github.com:BoizZ/hexo-theme-laughing.git ``` 3. 修改主程序的`_config.yml`文件 ``` yaml theme: hexo-theme-laughing ``` ## 主题配置文档 主题的配置都放在了 `_config.yml` 文件里面。 ### 网站图标 ``` yaml favicon: /favicon.ico ``` ### SEO 站点标题、副标题、描述沿用站点的配置。 ``` yaml ## 关键字 keywords: Hexo, Gruntjs, Nodejs, Reactjs, Vuejs ``` ### 页头 菜单按钮风格目前支持两种:`dark`,`light`。 ``` yaml ## 页面背景 page_background: /default_images/page_background.jpg ## 页面菜单按钮风格 page_menu_button: dark ## 文章背景 post_background: /default_images/post_background.jpg ## 文章菜单按钮风格 post_menu_button: light ## 标题占位字:无标题类型文章的标题占位字 title_plancehold: '随笔' ## 自定义菜单 navication: - name: Lalala.lol link: http://lalala.lol ``` ### 作者信息 作者的名字沿用站点的配置。 ``` yaml ## head:作者头像 ## signature:作者签名 author: head: /default_images/author_head.gif signature: Only when you plant the flowers can you really smell their fragrance. ``` ### 内容宽度 可自定义内容的最大显示宽度。 ``` yaml content_width: 600 ``` ### 社交信息 主题内置的社交图标目前有:`facebook`, `twitter`, `weibo`, `wechat`, `github`, `stackoverflow`, `linkin`, `email`, `segmentfault`, `flickr`, `zhihu`, `disqus`, `douban`, `bilibili` 如需新增请在Issues里面提出 ``` yaml ## name:名称 ## icon:图标(请使用配置文件里面给出的图标) ## link:指向当前社交账号的链接 social: - name: GitHub icon: github link: http://github.com/BoizZ ``` ### 多说 多说是自由开启的,默认开启,如果不需要则在配置文件里面关闭即可。 需要注意的是,多说的`url`配置默认使用站点的配置。请更改站点配置中`url`为自己的域名。 ``` yaml ## enable:是否开启多说(true:开启,false:关闭) ## siteName:多说账号种填写的网站名称 duoshuo: enable: true siteName: ueibo ``` ### 版权 ``` yaml ## record: 备案名称(若无则填写 false) ## hexo: 是否显示“POWER BY HEXO” ## laughing:是否显示“THEME BY LAUGHING” copyright: record: false hexo: true laughing: true ``` ## 二次开发 [![Build Status](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/BoizZ/hexo-theme-laughing/pulls) Laughing主题遵循简易开发模式,以文件层级及命名细分模块,二次开发比较简单。 ### 模板引擎 Laughing主题使用`pug`作为模板引擎,在开发前请确保已经安装了[hexo-render-pug](https://github.com/maxknee/hexo-render-pug)插件,如未安装,请在`Hexo`程序根目录运行以下命令进行安装: ``` npm install hexo-renderer-pug --save ``` ### 安装Grunt Laughing主题使用`sass`作为预编译样式语言,使用`grunt`监听文件变化并编译成css。当然,`sass`是基于`ruby`的,需要在电脑上安装`ruby`; 进入主题目录,运行以下命令安装`grunt`以及其他依赖: ``` npm install ``` ### 参考 - [GRUNT](http://gruntjs.com/) - [PUG](https://pugjs.org/api/getting-started.html) - [SASS](http://sass-lang.com/guide) - [RUBY](https://www.ruby-lang.org) ================================================ FILE: _config.yml ================================================ # Icon favicon: /favicon.ico # SEO keywords: Hexo, Gruntjs, Nodejs, Reactjs, Vuejs # Header page_background: http://callfiles.ueibo.com/hexo-theme-laughing/page_background.jpg page_menu_button: dark post_background: http://callfiles.ueibo.com/hexo-theme-laughing/post_background.jpg post_menu_button: light title_plancehold: 随笔 author: head: http://callfiles.ueibo.com/hexo-theme-laughing/thumb.jpg signature: Only when you plant the flowers can you really smell their fragrance. navication: - name: Github link: https://github.com - name: V2EX link: https://www.v2ex.com/ # content content_width: 800 # Footer ## Social icon list: [facebook, twitter, weibo, wechat, github, stackoverflow, linkin, email, segmentfault, flickr, zhihu, disqus, douban, bilibili] social: - name: Github icon: github link: https://github.com/BoizZ - name: Weibo icon: weibo link: https://weibo.com/heqibang - name: SegmentFault icon: segmentfault link: https://www.segmentfault.com/u/bon # Duoshuo duoshuo: enable: true siteName: ueibo # Copyright copyright: record: false hexo: true laughing: true ================================================ FILE: gruntfile.js ================================================ module.exports = function (grunt) { grunt.initConfig({ watch: { // js: { // files: ['source/js/**'], // tasks: ['uglify:buildmin'], // options: { // livereload: true // } // }, css: { files: ['source/sass/**'], tasks: ['sass:compressd', 'sass:expanded'] } }, sass: { compressd: { options: { style: 'compressed' }, files: { 'source/css/main_style.min.css': 'source/sass/main_style.scss' } }, expanded: { options: { style: 'expanded' }, files: { 'source/css/main_style.css': 'source/sass/main_style.scss' } } }, // uglify: { // options: { // mangle: false, // preserveComments: 'all' // }, // buildmin: { // options: { // report: "min" // }, // files: { // 'public/js/script.min.js': ['bower_components/jquery/dist/jquery.min.js', 'bower_components/jquery_lazyload/jquery.lazyload.js', 'source/js/script.js'], // } // }, // buildexp: { // files: { // 'public/js/script.js': ['bower_components/jquery/dist/jquery.js', 'bower_components/jquery_lazyload/jquery.lazyload.js', 'source/js/script.js'], // } // } // }, concurrent: { // tasks: ['watch', 'sass:compressd', 'sass:expanded', 'uglify:buildmin', 'uglify:buildexp'], tasks: ['watch', 'sass:compressd', 'sass:expanded'], options: { logCuncurrentOutput: true } } }); grunt.loadNpmTasks('grunt-contrib-watch'); grunt.loadNpmTasks('grunt-contrib-sass'); // grunt.loadNpmTasks('grunt-contrib-uglify'); grunt.loadNpmTasks('grunt-concurrent'); grunt.option('force', true); grunt.registerTask('default', ['concurrent']); }; ================================================ FILE: layout/_partial/footer.pug ================================================ .page-footer .top ul.social each social in theme.social li a(href=social.link, title=social.name, target="_blank") i(class="icon icon-" + social.icon) .bottom p.copyright | © #{new Date().getFullYear()} #{config.title} if theme.copyright.record br small a(href="http://www.miitbeian.gov.cn", target="_blank") #{theme.copyright.record} if theme.copyright.hexo br small POWER BY a(href="https://hexo.io", target="_blank") HEXO if theme.copyright.laughing small , THEME BY a(href="https://github.com/BoizZ/hexo-theme-laughing", target="_blank") LAUGHING ================================================ FILE: layout/_partial/layout.pug ================================================ doctype html html(lang="zh-cn") head meta(charset="utf-8") meta(http-equiv="X-UA-Compatible",content="IE=Edge") meta(name="viewport",content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no") meta(name="format-detection",content="telephone=no") meta(name="format-detection",content="email=no") meta(name="description",content=config.description) meta(name="keywords",content=theme.keywords) title #{page.title ? page.title + ' - ' + config.title : config.title + (config.subtitle ? (' - ' + config.subtitle) : '')} link(rel="stylesheet", href="/css/main_style.min.css") link(rel="icon", href=theme.favicon) body input#navi(type="checkbox") ul.main-navication li a(href='/') span Home if theme.navication && theme.navication.length each item in theme.navication li a(href=item.link) if item.type i(class="icon icon"+item.type) span #{item.name} .wrapper#wrap block content include ./footer.pug block script script. var wrap = document.getElementById('wrap'); window.onload = function () { wrap.className += ' done'; } ================================================ FILE: layout/_partial/page_header.pug ================================================ .page-header if theme.page_menu_button === "light" label.navi-button.light(for="navi") MENU else label.navi-button(for="navi") MENU .background img(src=theme.page_background) .author .head img(src=theme.author.head) h3.name #{config.author} p.signature #{theme.author.signature} ================================================ FILE: layout/_partial/pagination.pug ================================================ ul.pagination if page.prev li.link a(href=url_for(page.prev_link)) i.icon.icon-arror-left li.current a #{page.current} if page.next li.link a(href=url_for(page.next_link)) i.icon.icon-arror-right ================================================ FILE: layout/_partial/post_header.pug ================================================ .post-header if theme.post_menu_button === "light" label.navi-button.light(for="navi") MENU else label.navi-button(for="navi") MENU img.background(src=theme.post_background) .post-title h1.title #{page.title ? page.title : theme.title_plancehold} ul.meta li i.icon.icon-author | #{config.author} li i.icon.icon-clock | #{parseInt(page.content ? page.content.length/900 : 0)} Minutes li i.icon.icon-calendar | #{time(page.date, 'LL')} ================================================ FILE: layout/index.pug ================================================ extends ./_partial/layout.pug block content include ./_partial/page_header.pug ul.post-list(style='max-width:'+ theme.content_width +'px') each post in page.posts.data li p.date #{time(post.date, 'LL')} if post.title h4.title a(href=url_for(post.path)) #{post.title} .excerpt !{post.excerpt} else .no-title !{post.content} if post.photos && post.photos.length a(href=url_for(post.path)) img.photo(src=post.photos[0]) ul.meta li i.icon.icon-author | #{config.author} li i.icon.icon-clock | #{parseInt(post.content ? post.content.length/900 : 0)} Minutes li i.icon.icon-category | !{list_categories(post.categories)} include ./_partial/pagination.pug ================================================ FILE: layout/post.pug ================================================ extends ./_partial/layout.pug block content include ./_partial/post_header.pug .article-content(style='max-width:'+ theme.content_width +'px') if page.photos && page.photos.length div each photo in page.photos a.article-gallery-img.fancybox(href=photo) img(src=photo) | !{page.content} .article-meta(style='max-width:'+ theme.content_width +'px') if page.tags && page.tags.length .tags i.icon.icon-tag | !{list_tags(page.tags)} if page.tags && page.categories.length .categories i.icon.icon-category | !{list_categories(page.categories)} if theme.duoshuo.enable .article-comment(style='max-width:'+ theme.content_width +'px') #ds-thread.ds-thread(data-thread-key=page._id, data-title=page.title, data-url=config.url + url_for(page.path), site-name=theme.duoshuo.siteName) script. var siteName = document.getElementById('ds-thread').getAttribute('site-name'); var duoshuoQuery = {short_name: siteName}; (function() { var ds = document.createElement('script'); ds.type = 'text/javascript';ds.async = true; ds.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') + '//static.duoshuo.com/embed.js'; ds.charset = 'UTF-8'; (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(ds); })(); ul.navication li.home a(href="/") i.icon.icon-home if page.prev && page.prev.path li a(href=url_for(page.prev.path)) i.icon.icon-arror-left if page.next && page.next.path li a(href=url_for(page.next.path)) i.icon.icon-arror-right ================================================ FILE: package.json ================================================ { "name": "hexo-theme-laughing", "version": "0.2.0", "private": true, "devDependencies": { "grunt": "^1.0.1", "grunt-concurrent": "^2.3.1", "grunt-contrib-sass": "^1.0.0", "grunt-contrib-uglify": "^2.0.0", "grunt-contrib-watch": "^1.0.0" } } ================================================ FILE: source/components/reset-css/.bower.json ================================================ { "name": "reset-css", "homepage": "https://github.com/BoizZ/reset-css", "_release": "59a1b976b6", "_resolution": { "type": "branch", "branch": "master", "commit": "59a1b976b64e22c3256ebdfc02e0d046fbc5c20e" }, "_source": "https://github.com/BoizZ/reset-css.git", "_target": "*", "_originalSource": "BoizZ/reset-css", "_direct": true } ================================================ FILE: source/components/reset-css/.gitignore ================================================ .sass-cache node_modules ================================================ FILE: source/components/reset-css/LICENSE ================================================ MIT License Copyright (c) 2016 Laughing Gor Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================ FILE: source/components/reset-css/README.md ================================================ # reset-css 这个样式表写给还在为前端开发中各个浏览器样式不统一问题纠结的同学,但不包含Hack。 大家可以把样式表下载到本地使用,也可以使用CDN调取。 ### 文件目录 ``` bash . ├── dist # 1.2.2 版本 ├── public # 2.0.0 版本 │ ├── main # 通用重置样式表:包含IE、MacOS Safari 及 手机重置样式表 的所有特性 │ ├── mobile # 手机重置样式表: 使用无衬线字体、去除IOS默认表单样式、去除a及表单点击时的蓝边及灰色背景 │ └── native # 原生应用重置样式表: 禁止长按链接与图片弹出菜单、禁止选中文字,及 手机重置样式表 的所有特性 ├── sass # 2.0.0 的 sass 目录 ├── .gitignore ├── gruntfile.js ├── package.json └── README.md ``` ================================================ FILE: source/components/reset-css/dist/mobile/reset.css ================================================ /* ================================================================= * Reset Stylesheet for Mobile * Author:Bon * Author URI:http://www.ccwebsite.com/ * Date:2015-05-29 * Last Update:2015-10-20 * Version:1.2.2 * ================================================================== */ html{font-family: "Helvetica Neue", Helvetica, STHeiTi, sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%} html,body{-webkit-user-select:none;user-select:none;} html,body,div,object,iframe,applet,object,h1,h2,h3,h4,h5,h6,p,blockquote,pre,address,dl,dt,dd,ol,ul,li,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video,progress{margin:0;padding:0;border:0;vertical-align:baseline} a{text-decoration:none;-webkit-touch-callout:none;background-color:transparent} li{list-style:none} article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block} audio,canvas,progress,video{display:inline-block} audio:not([controls]){display:none;height:0} [hidden],template{display:none} a:active,a:hover{outline:0} abbr[title]{border-bottom:1px dotted} b,strong{font-weight:bold} dfn{font-style:italic} h1{font-size:2em;margin:.67em 0} small{font-size:80%} sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline} sup{top:-0.5em} sub{bottom:-0.25em} img{border:0;-webkit-touch-callout:none;} svg:not(:root){overflow:hidden} figure{margin:1em 40px} hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0} pre{overflow:auto} code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em} a,button,input,optgroup,select,textarea{-webkit-tap-highlight-color:rgba(0,0,0,0);} button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0;-webkit-appearance:none;outline:none;line-height:normal} 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} legend{border:0;padding:0} textarea{overflow:auto} optgroup{font-weight:bold} table{border-collapse:collapse;border-spacing:0} td,th{padding:0} ================================================ FILE: source/components/reset-css/dist/pc/reset.css ================================================ /* ================================================================= * Reset Stylesheet for PC * Author:Bon * Author URI:http://www.ccwebsite.com/ * Date:2015-05-29 * Last Update:2015-10-20 * Version:1.2.2 * ================================================================== */ html{font-family:"Microsoft YaHei UI","Microsoft YaHei",sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%} html,body,div,object,iframe,applet,object,h1,h2,h3,h4,h5,h6,p,blockquote,pre,address,dl,dt,dd,ol,ul,li,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video,progress{margin:0;padding:0;border:0;vertical-align:baseline} li{list-style:none} article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block} audio,canvas,progress,video{display:inline-block} audio:not([controls]){display:none;height:0} [hidden],template{display:none} a{background-color:transparent;text-decoration:none} a:active,a:hover{outline:0} abbr[title]{border-bottom:1px dotted} b,strong{font-weight:bold} dfn{font-style:italic} h1{font-size:2em;margin:.67em 0} mark{background:#ff0;color:#000} small{font-size:80%} sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline} sup{top:-0.5em} sub{bottom:-0.25em} img{border:0} svg:not(:root){overflow:hidden} figure{margin:1em 40px} hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0} pre{overflow:auto} code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em} button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0;outline:none;line-height:normal} 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} legend{border:0;padding:0} textarea{overflow:auto} optgroup{font-weight:bold} table{border-collapse:collapse;border-spacing:0} td,th{padding:0} ================================================ FILE: source/components/reset-css/gruntfile.js ================================================ module.exports = function (grunt) { grunt.initConfig({ watch: { css: { files: ['sass/**'], tasks: ['sass:compressed', 'sass:expanded'] } }, sass: { compressed: { options: { style: 'compressed' }, files: { 'public/main/reset.min.css': 'sass/main.scss', 'public/mobile/reset.min.css': 'sass/mobile-single.scss', 'public/native/reset.min.css': 'sass/mobile-native.scss' } }, expanded: { options: { style: 'expanded' }, files: { 'public/main/reset.css': 'sass/main.scss', 'public/mobile/reset.css': 'sass/mobile-single.scss', 'public/native/reset.css': 'sass/mobile-native.scss' } } }, concurrent: { tasks: ['watch', 'sass:compressed', 'sass:expanded'], options: { logCuncurrentOutput: true } } }); grunt.loadNpmTasks('grunt-contrib-watch'); grunt.loadNpmTasks('grunt-contrib-sass'); grunt.loadNpmTasks('grunt-concurrent'); grunt.option('force', true); grunt.registerTask('default', ['concurrent']); } ================================================ FILE: source/components/reset-css/package.json ================================================ { "name": "reset-css", "version": "2.0.0", "description": "A configurable reset style sheet", "scripts": { "test": "grunt" }, "repository": { "type": "git", "url": "git+https://github.com/BoizZ/reset-css.git" }, "author": "Bon", "license": "ISC", "bugs": { "url": "https://github.com/BoizZ/reset-css/issues" }, "homepage": "https://github.com/BoizZ/reset-css#readme", "devDependencies": { "grunt-concurrent": "^2.3.1", "grunt-contrib-sass": "^1.0.0", "grunt-contrib-watch": "^1.0.0" } } ================================================ FILE: source/components/reset-css/public/main/reset.css ================================================ html { -ms-text-size-adjust: 100%; } article, aside, footer, header, nav, section { display: block; } figcaption, figure, main { display: block; } figure { margin: 1em 40px; } hr { overflow: visible; } a { background-color: transparent; -webkit-text-decoration-skip: object; } mark { background-color: #ff0; color: #000; } audio, video { display: inline-block; } img { border-style: none; } svg:not(:root) { overflow: hidden; } button, input { overflow: visible; } button, select { text-transform: none; } legend { box-sizing: border-box; color: inherit; display: table; max-width: 100%; white-space: normal; } progress { display: inline-block; } textarea { overflow: auto; } [type="checkbox"], [type="radio"] { box-sizing: border-box; padding: 0; } details, menu { display: list-item; } canvas { display: inline-block; } [type="search"]::-webkit-search-cancel-button, [type="search"]::-webkit-search-decoration { -webkit-appearance: none; } button, input, optgroup, select, textarea { -webkit-appearance: none; -webkit-tap-highlight-color: transparent; } a { -webkit-tap-highlight-color: transparent; } /** * Correct the style in all browsers. */ html { font-family: "Helvetica Neue", Helvetica, STHeiTi, "Microsoft Yahei", sans-serif; line-height: 1.15; -webkit-text-size-adjust: 100%; } body { margin: 0; } h1 { font-size: 2em; margin: 0.67em 0; } hr { box-sizing: content-box; height: 0; } pre { font-family: monospace, monospace; font-size: 1em; } a:active, a:hover { outline-width: 0; } abbr[title] { border-bottom: none; text-decoration: underline; text-decoration: underline dotted; } b, strong { font-weight: bolder; } code, kbd, samp { font-family: monospace, monospace; font-size: 1em; } dfn { font-style: italic; } small { font-size: 80%; } sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; } sub { bottom: -0.25em; } sup { top: -0.5em; } audio:not([controls]) { display: none; height: 0; } button, input, optgroup, select, textarea { font-family: sans-serif; font-size: 100%; line-height: 1.15; margin: 0; } button, html [type="button"], [type="reset"], [type="submit"] { -webkit-appearance: button; } button::-moz-focus-inner, [type="button"]::-moz-focus-inner, [type="reset"]::-moz-focus-inner, [type="submit"]::-moz-focus-inner { border-style: none; padding: 0; } button:-moz-focusring, [type="button"]:-moz-focusring, [type="reset"]:-moz-focusring, [type="submit"]:-moz-focusring { outline: 1px dotted ButtonText; } fieldset { border: 1px solid #c0c0c0; margin: 0 2px; padding: 0.35em 0.625em 0.75em; } legend { padding: 0; } progress { vertical-align: baseline; } [type="number"]::-webkit-inner-spin-button, [type="number"]::-webkit-outer-spin-button { height: auto; } [type="search"] { -webkit-appearance: textfield; outline-offset: -2px; } ::-webkit-file-upload-button { -webkit-appearance: button; font: inherit; } details, summary { display: list-item; } /*# sourceMappingURL=reset.css.map */ ================================================ FILE: source/components/reset-css/public/mobile/reset.css ================================================ button, input, optgroup, select, textarea { -webkit-appearance: none; -webkit-tap-highlight-color: transparent; } a { -webkit-tap-highlight-color: transparent; } /** * Correct the style in all browsers. */ html { font-family: "Helvetica Neue", Helvetica, STHeiTi, sans-serif; line-height: 1.15; -webkit-text-size-adjust: 100%; } body { margin: 0; } h1 { font-size: 2em; margin: 0.67em 0; } hr { box-sizing: content-box; height: 0; } pre { font-family: monospace, monospace; font-size: 1em; } a:active, a:hover { outline-width: 0; } abbr[title] { border-bottom: none; text-decoration: underline; text-decoration: underline dotted; } b, strong { font-weight: bolder; } code, kbd, samp { font-family: monospace, monospace; font-size: 1em; } dfn { font-style: italic; } small { font-size: 80%; } sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; } sub { bottom: -0.25em; } sup { top: -0.5em; } audio:not([controls]) { display: none; height: 0; } button, input, optgroup, select, textarea { font-family: sans-serif; font-size: 100%; line-height: 1.15; margin: 0; } button, html [type="button"], [type="reset"], [type="submit"] { -webkit-appearance: button; } button::-moz-focus-inner, [type="button"]::-moz-focus-inner, [type="reset"]::-moz-focus-inner, [type="submit"]::-moz-focus-inner { border-style: none; padding: 0; } button:-moz-focusring, [type="button"]:-moz-focusring, [type="reset"]:-moz-focusring, [type="submit"]:-moz-focusring { outline: 1px dotted ButtonText; } fieldset { border: 1px solid #c0c0c0; margin: 0 2px; padding: 0.35em 0.625em 0.75em; } legend { padding: 0; } progress { vertical-align: baseline; } [type="number"]::-webkit-inner-spin-button, [type="number"]::-webkit-outer-spin-button { height: auto; } [type="search"] { -webkit-appearance: textfield; outline-offset: -2px; } ::-webkit-file-upload-button { -webkit-appearance: button; font: inherit; } details, summary { display: list-item; } /*# sourceMappingURL=reset.css.map */ ================================================ FILE: source/components/reset-css/public/native/reset.css ================================================ button, input, optgroup, select, textarea { -webkit-appearance: none; -webkit-tap-highlight-color: transparent; } a { -webkit-tap-highlight-color: transparent; } html, body { -webkit-user-select: none; user-select: none; } body { -webkit-text-size-adjust: 100% !important; } a, img { -webkit-touch-callout: none; } /** * Correct the style in all browsers. */ html { font-family: "Helvetica Neue", Helvetica, STHeiTi, sans-serif; line-height: 1.15; -webkit-text-size-adjust: 100%; } body { margin: 0; } h1 { font-size: 2em; margin: 0.67em 0; } hr { box-sizing: content-box; height: 0; } pre { font-family: monospace, monospace; font-size: 1em; } a:active, a:hover { outline-width: 0; } abbr[title] { border-bottom: none; text-decoration: underline; text-decoration: underline dotted; } b, strong { font-weight: bolder; } code, kbd, samp { font-family: monospace, monospace; font-size: 1em; } dfn { font-style: italic; } small { font-size: 80%; } sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; } sub { bottom: -0.25em; } sup { top: -0.5em; } audio:not([controls]) { display: none; height: 0; } button, input, optgroup, select, textarea { font-family: sans-serif; font-size: 100%; line-height: 1.15; margin: 0; } button, html [type="button"], [type="reset"], [type="submit"] { -webkit-appearance: button; } button::-moz-focus-inner, [type="button"]::-moz-focus-inner, [type="reset"]::-moz-focus-inner, [type="submit"]::-moz-focus-inner { border-style: none; padding: 0; } button:-moz-focusring, [type="button"]:-moz-focusring, [type="reset"]:-moz-focusring, [type="submit"]:-moz-focusring { outline: 1px dotted ButtonText; } fieldset { border: 1px solid #c0c0c0; margin: 0 2px; padding: 0.35em 0.625em 0.75em; } legend { padding: 0; } progress { vertical-align: baseline; } [type="number"]::-webkit-inner-spin-button, [type="number"]::-webkit-outer-spin-button { height: auto; } [type="search"] { -webkit-appearance: textfield; outline-offset: -2px; } ::-webkit-file-upload-button { -webkit-appearance: button; font: inherit; } details, summary { display: list-item; } /*# sourceMappingURL=reset.css.map */ ================================================ FILE: source/components/reset-css/sass/_common.scss ================================================ $font-family: sans-serif; ================================================ FILE: source/components/reset-css/sass/custom/_microsoft-yahei.scss ================================================ $font-family: "Microsoft Yahei", $font-family; ================================================ FILE: source/components/reset-css/sass/custom/imitation-native.scss ================================================ html, body { -webkit-user-select: none; user-select: none; } body { -webkit-text-size-adjust: 100% !important; } a, img { -webkit-touch-callout: none; } ================================================ FILE: source/components/reset-css/sass/main.scss ================================================ @import "common"; @import "custom/microsoft-yahei"; // font-family: Microsoft Yahei @import "reset/ie"; // enable IE reset @import "reset/macos"; // enable MacOS reset @import "reset/mobile"; // enable mobile reset @import "reset/basic"; ================================================ FILE: source/components/reset-css/sass/mobile-native.scss ================================================ @import "common"; @import "reset/mobile"; // enable mobile reset @import "custom/imitation-native"; @import "reset/basic"; ================================================ FILE: source/components/reset-css/sass/mobile-single.scss ================================================ @import "common"; @import "reset/mobile"; // enable mobile reset @import "reset/basic"; ================================================ FILE: source/components/reset-css/sass/reset/basic.scss ================================================ /** * Correct the style in all browsers. */ html { font-family: $font-family; line-height: 1.15; -webkit-text-size-adjust: 100%; } body { margin: 0; } h1 { font-size: 2em; margin: 0.67em 0; } hr { box-sizing: content-box; height: 0; } pre { font-family: monospace, monospace; font-size: 1em; } a:active, a:hover { outline-width: 0; } abbr[title] { border-bottom: none; text-decoration: underline; text-decoration: underline dotted; } b, strong { font-weight: bolder; } code, kbd, samp { font-family: monospace, monospace; font-size: 1em; } dfn { font-style: italic; } small { font-size: 80%; } sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; } sub { bottom: -0.25em; } sup { top: -0.5em; } audio:not([controls]) { display: none; height: 0; } button, input, optgroup, select, textarea { font-family: sans-serif; font-size: 100%; line-height: 1.15; margin: 0; } button, html [type="button"], [type="reset"], [type="submit"] { -webkit-appearance: button; } button::-moz-focus-inner, [type="button"]::-moz-focus-inner, [type="reset"]::-moz-focus-inner, [type="submit"]::-moz-focus-inner { border-style: none; padding: 0; } button:-moz-focusring, [type="button"]:-moz-focusring, [type="reset"]:-moz-focusring, [type="submit"]:-moz-focusring { outline: 1px dotted ButtonText; } fieldset { border: 1px solid #c0c0c0; margin: 0 2px; padding: 0.35em 0.625em 0.75em; } legend { padding: 0; } progress { vertical-align: baseline; } [type="number"]::-webkit-inner-spin-button, [type="number"]::-webkit-outer-spin-button { height: auto; } [type="search"] { -webkit-appearance: textfield; outline-offset: -2px; } ::-webkit-file-upload-button { -webkit-appearance: button; font: inherit; } details, summary { display: list-item; } ================================================ FILE: source/components/reset-css/sass/reset/ie.scss ================================================ html { -ms-text-size-adjust: 100%; } article, aside, footer, header, nav, section { display: block; } figcaption, figure, main { display: block; } figure { margin: 1em 40px; } hr { overflow: visible; } a { background-color: transparent; -webkit-text-decoration-skip: object; } mark { background-color: #ff0; color: #000; } audio, video { display: inline-block; } img { border-style: none; } svg:not(:root) { overflow: hidden; } button, input { overflow: visible; } button, select { text-transform: none; } legend { box-sizing: border-box; color: inherit; display: table; max-width: 100%; white-space: normal; } progress { display: inline-block; } textarea { overflow: auto; } [type="checkbox"], [type="radio"] { box-sizing: border-box; padding: 0; } details, menu { display: list-item; } canvas { display: inline-block; } ================================================ FILE: source/components/reset-css/sass/reset/macos.scss ================================================ [type="search"]::-webkit-search-cancel-button, [type="search"]::-webkit-search-decoration { -webkit-appearance: none; } ================================================ FILE: source/components/reset-css/sass/reset/mobile.scss ================================================ $font-family: "Helvetica Neue", Helvetica, STHeiTi, $font-family; button, input, optgroup, select, textarea { -webkit-appearance: none; -webkit-tap-highlight-color: transparent; } a { -webkit-tap-highlight-color: transparent; } ================================================ FILE: source/css/main_style.css ================================================ html { -ms-text-size-adjust: 100%; } article, aside, footer, header, nav, section { display: block; } figcaption, figure, main { display: block; } figure { margin: 1em 40px; } hr { overflow: visible; } a { background-color: transparent; -webkit-text-decoration-skip: object; } mark { background-color: #ff0; color: #000; } audio, video { display: inline-block; } img { border-style: none; } svg:not(:root) { overflow: hidden; } button, input { overflow: visible; } button, select { text-transform: none; } legend { box-sizing: border-box; color: inherit; display: table; max-width: 100%; white-space: normal; } progress { display: inline-block; } textarea { overflow: auto; } [type="checkbox"], [type="radio"] { box-sizing: border-box; padding: 0; } details, menu { display: list-item; } canvas { display: inline-block; } [type="search"]::-webkit-search-cancel-button, [type="search"]::-webkit-search-decoration { -webkit-appearance: none; } button, input, optgroup, select, textarea { -webkit-appearance: none; -webkit-tap-highlight-color: transparent; } a { -webkit-tap-highlight-color: transparent; } /** * Correct the style in all browsers. */ html { font-family: "Helvetica Neue", Helvetica, STHeiTi, "Microsoft Yahei", sans-serif; line-height: 1.15; -webkit-text-size-adjust: 100%; } body { margin: 0; } h1 { font-size: 2em; margin: 0.67em 0; } hr { box-sizing: content-box; height: 0; } pre { font-family: monospace, monospace; font-size: 1em; } a:active, a:hover { outline-width: 0; } abbr[title] { border-bottom: none; text-decoration: underline; text-decoration: underline dotted; } b, strong { font-weight: bolder; } code, kbd, samp { font-family: monospace, monospace; font-size: 1em; } dfn { font-style: italic; } small { font-size: 80%; } sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; } sub { bottom: -0.25em; } sup { top: -0.5em; } audio:not([controls]) { display: none; height: 0; } button, input, optgroup, select, textarea { font-family: sans-serif; font-size: 100%; line-height: 1.15; margin: 0; } button, html [type="button"], [type="reset"], [type="submit"] { -webkit-appearance: button; } button::-moz-focus-inner, [type="button"]::-moz-focus-inner, [type="reset"]::-moz-focus-inner, [type="submit"]::-moz-focus-inner { border-style: none; padding: 0; } button:-moz-focusring, [type="button"]:-moz-focusring, [type="reset"]:-moz-focusring, [type="submit"]:-moz-focusring { outline: 1px dotted ButtonText; } fieldset { border: 1px solid #c0c0c0; margin: 0 2px; padding: 0.35em 0.625em 0.75em; } legend { padding: 0; } progress { vertical-align: baseline; } [type="number"]::-webkit-inner-spin-button, [type="number"]::-webkit-outer-spin-button { height: auto; } [type="search"] { -webkit-appearance: textfield; outline-offset: -2px; } ::-webkit-file-upload-button { -webkit-appearance: button; font: inherit; } details, summary { display: list-item; } @font-face { font-family: "iconfont"; src: url("../fonts/icon.eot"); /* IE9*/ src: url("../fonts/icon.eot") format("embedded-opentype"), url("../fonts/icon.woff") format("woff"), url("../fonts/icon.ttf") format("truetype"), url("../fonts/icon.svg") format("svg"); /* iOS 4.1- */ } .icon { font-family: "iconfont" !important; font-style: normal; } .icon-douban:before { content: "\e601"; } .icon-facebook:before { content: "\e616"; } .icon-twitter:before { content: "\e634"; } .icon-clock:before { content: "\e6f6"; } .icon-home:before { content: "\e611"; } .icon-weibo:before { content: "\e619"; } .icon-zhihu:before { content: "\e6d1"; } .icon-calendar:before { content: "\e603"; } .icon-author:before { content: "\e608"; } .icon-wechat:before { content: "\e600"; } .icon-github:before { content: "\e735"; } .icon-stackoverflow:before { content: "\e8a7"; } .icon-linkin:before { content: "\e61d"; } .icon-email:before { content: "\e609"; } .icon-tag:before { content: "\e68e"; } .icon-top:before { content: "\e649"; } .icon-segmentfault:before { content: "\e610"; } .icon-bilibili:before { content: "\e606"; } .icon-arror-right:before { content: "\e617"; } .icon-arror-left:before { content: "\e618"; } .icon-category:before { content: "\e627"; } .icon-disqus:before { content: "\e7c6"; } .icon-flickr:before { content: "\e73d"; } .icon-website:before { content: "\e605"; } /* * Source files from https://github.com/pinggod/hexo-theme-apollo/blob/master/source/scss/_partial/post.scss */ code, pre { font-size: 0.8em; background-color: #ecf0f1; font-family: 'Roboto Mono', Monaco, courier, monospace; } code { padding: 0.1em 0.4em; background-color: #ecf0f1; border-radius: 3px; } pre .line { min-height: 1em; } .highlight { position: relative; margin: 1em 0; border-radius: 2px; line-height: 1.1em; background-color: #ecf0f1; overflow-x: auto; } .highlight figcaption { font-size: .9em; padding: .4em; border-bottom: 1px solid #bdc3c7; } .highlight table, .highlight tr, .highlight td { width: 100%; border-collapse: collapse; padding: 0; margin: 0; } .highlight .gutter { display: none; } .highlight .code pre { padding: 1.2em 1.4em; line-height: 1.5em; margin: 0; } .highlight.html .code:after, .highlight.js .code:after, .highlight.bash .code:after, .highlight.css .code:after, .highlight.scss .code:after, .highlight.diff .code:after, .highlight.java .code:after, .highlight.xml .code:after, .highlight.python .code:after, .highlight.json .code:after, .highlight.swift .code:after, .highlight.ruby .code:after, .highlight.perl .code:after, .highlight.php .code:after, .highlight.c .code:after, .highlight.cpp .code:after, .highlight.ts .code:after { position: absolute; top: 0; right: 0; color: #bdc3c7; text-align: right; font-size: 0.75em; padding: 5px 10px 0; line-height: 15px; height: 15px; font-weight: 600; } .highlight.html .code:after { content: "HTML"; } .highlight.js .code:after { content: "JS"; } .highlight.bash .code:after { content: "BASH"; } .highlight.css .code:after { content: "CSS"; } .highlight.scss .code:after { content: "SCSS"; } .highlight.diff .code:after { content: "DIFF"; } .highlight.java .code:after { content: "JAVA"; } .highlight.xml .code:after { content: "XML"; } .highlight.python .code:after { content: "PYTHON"; } .highlight.json .code:after { content: "JSON"; } .highlight.swift .code:after { content: "SWIFT"; } .highlight.ruby .code:after { content: "RUBY"; } .highlight.perl .code:after { content: "PERL"; } .highlight.php .code:after { content: "PHP"; } .highlight.c .code:after { content: "C"; } .highlight.java .code:after { content: "JAVA"; } .highlight.cpp .code:after { content: "CPP"; } .highlight.ts .code:after { content: "TS"; } .highlight.cpp .code:after { content: 'C++'; } pre { color: #34495e; } pre .function .keyword, pre .constant { color: #3498db; } pre .keyword, pre .attribute { color: #e96900; } pre .number, pre .literal { color: #8e44ad; } pre .tag, pre .tag .title, pre .change, pre .winutils, pre .flow, pre .lisp .title, pre .clojure .built_in, pre .nginx .title, pre .tex .special { color: #2980b9; } pre .symbol, pre .symbol .string, pre .value, pre .regexp { color: #1abc9c; } pre .title { color: #2ecc71; } pre .tag .value, pre .string, pre .subst, pre .haskell .type, pre .preprocessor, pre .ruby .class .parent, pre .built_in, pre .sql .aggregate, pre .django .template_tag, pre .django .variable, pre .smalltalk .class, pre .javadoc, pre .django .filter .argument, pre .smalltalk .localvars, pre .smalltalk .array, pre .attr_selector, pre .pseudo, pre .addition, pre .stream, pre .envvar, pre .apache .tag, pre .apache .cbracket, pre .tex .command, pre .prompt { color: #1abc9c; } pre .comment, pre .java .annotation, pre .python .decorator, pre .template_comment, pre .pi, pre .doctype, pre .shebang, pre .apache .sqbracket, pre .tex .formula { color: #95a5a6; } pre .deletion { color: #c0392b; } pre .coffeescript .javascript, pre .javascript .xml, pre .tex .formula, pre .xml .javascript, pre .xml .vbscript, pre .xml .css, pre .xml .cdata { opacity: 0.5; } a { text-decoration: none; color: #34495e; } body { position: relative; overflow-x: hidden; } .wrapper { position: relative; transition: all 0.25s; background: white; } .wrapper.done .page-header .author .head, .wrapper.done .page-header .author .name, .wrapper.done .page-header .author .signature { transform: translateY(0); opacity: 1; } .wrapper.done .page-header .author .name, .wrapper.done .page-header .author .signature { transition-delay: 0.08s; } .wrapper.done .post-list { transform: translateY(0); opacity: 1; transition-delay: 0.16s; } .wrapper.done .post-header .post-title h1.title, .wrapper.done .post-header .post-title ul.meta { transform: translateY(0); opacity: 1; } .wrapper.done .post-header .post-title ul.meta { transition-delay: 0.08s; } .wrapper.done .article-content, .wrapper.done .article-meta { transform: translateY(0); opacity: 1; } .wrapper.done .article-content { transition-delay: 0.16s; } .wrapper.done .article-meta { transition-delay: 0.24s; } @media screen and (max-width: 1024px) { html, body { -webkit-user-select: none; user-select: none; } } .page-header { position: relative; } .page-header .background { width: 100%; height: 550px; background: black; overflow: hidden; position: relative; } .page-header .background img { display: block; width: 1920px; height: 800px; position: absolute; top: 50%; left: 50%; margin-left: -960px; margin-top: -400px; } .page-header .author { background: #ecf0f1; text-align: center; padding: 0 20px 30px 20px; } .page-header .author .head { display: inline-block; width: 130px; height: 130px; border-radius: 50%; padding: 3px; background: #fff; box-shadow: 0 0 5px #95a5a6; position: relative; top: -68px; opacity: 0; transform: translateY(-20px); transition: all 0.4s; } .page-header .author .head img { width: 100%; height: 100%; display: block; border-radius: 50%; } .page-header .author .name, .page-header .author .signature { position: relative; margin: 0; opacity: 0; transform: translateY(-20px); transition: all 0.4s; } .page-header .author .name { font-size: 1.3rem; color: #2c3e50; top: -50px; } .page-header .author .signature { font-size: .95rem; color: #7f8c8d; top: -35px; } @media screen and (max-width: 1440px) { .page-header .background { height: 450px; } } @media screen and (max-width: 1024px) { .page-header .background { height: 350px; } .page-header .background img { width: 1200px; height: 500px; margin-left: -600px; margin-top: -250px; } } .post-header { width: 100%; background: black; overflow: hidden; position: relative; } .post-header img.background { display: block; width: 1920px; height: 800px; position: absolute; top: 50%; left: 50%; margin-left: -960px; margin-top: -400px; } .post-header .post-title { color: white; background: rgba(0, 0, 0, 0.6); padding: 230px 30px; text-align: center; position: relative; z-index: 66; } .post-header .post-title h1.title { font-size: 2.2rem; line-height: 40px; margin: 0; opacity: 0; transform: translateY(-20px); transition: all 0.4s; } .post-header .post-title ul.meta { display: inline-block; margin-top: 20px; border-top: 1px solid rgba(255, 255, 255, 0.6); padding: 15px 10px; font-size: .75rem; line-height: 1.6; opacity: 0; transform: translateY(-20px); transition: all 0.4s; } .post-header .post-title ul.meta > li { margin: 0 12px; display: inline-block; } .post-header .post-title ul.meta > li i, .post-header .post-title ul.meta > li li { margin-right: .5em; } .post-header .post-title ul.meta > li ul, .post-header .post-title ul.meta > li li { display: inline; } .post-header .post-title ul.meta > li li a { color: white; transition: color .3s; } .post-header .post-title ul.meta > li li a:hover { color: #2980b9; } .post-header .post-title ul.meta > li li span { display: none; } @media screen and (max-width: 1440px) { .post-header .post-title { padding: 180px 30px; } .post-header .post-title h1.title { font-size: 2rem; } } @media screen and (max-width: 1024px) { .post-header img.background { width: 1200px; height: 500px; margin-left: -600px; margin-top: -250px; } .post-header .post-title { padding: 130px 30px; } .post-header .post-title h1.title { font-size: 1.6rem; line-height: 36px; } } #navi { display: none; } .navi-button { font-size: .8rem; color: #7f8c8d; border: 1px solid rgba(127, 140, 141, 0.6); line-height: 35px; border-radius: 4px; display: block; padding: 0 15px; position: absolute; right: 15px; top: 15px; cursor: pointer; text-transform: uppercase; z-index: 99; transition: all .3s; } .navi-button:hover { background: rgba(127, 140, 141, 0.7); color: white; } .navi-button.light { color: white; border: 1px solid rgba(255, 255, 255, 0.6); } .navi-button.light:hover { background: rgba(255, 255, 255, 0.7); color: #7f8c8d; } .main-navication { margin: 0; padding: 100px 0 0; background: #2c3e50; width: 150px; position: absolute; right: 0; top: 0; bottom: 0; } .main-navication li { list-style: none; } .main-navication a { display: block; padding: 0 15px; color: white; } .main-navication i { display: block; width: 50px; float: left; font-size: 16px; line-height: 48px; text-align: center; } .main-navication span { font-size: 12px; line-height: 48px; display: block; opacity: 0; transform: translateX(-50px); transition: all 0.4s; } #navi:checked ~ .wrapper { transform: translateX(-150px); } #navi:checked ~ .main-navication span { opacity: 1; transform: translateX(0); } .page-footer .top { background: #2c3e50; padding: 110px 15px; } .page-footer .top .social { padding-left: 0; margin: 0; text-align: center; font-size: 2.2rem; } .page-footer .top .social li { display: inline-block; padding: 0 15px; } .page-footer .top .social li a { color: white; transition: color .3s; } .page-footer .top .social li a:hover { color: #2980b9; } .page-footer .bottom { background: #34495e; padding: 30px 15px; } .page-footer .bottom .copyright { font-size: .8rem; text-align: center; color: #95a5a6; margin: 0; } .page-footer .bottom .copyright small { color: #7f8c8d; } .page-footer .bottom .copyright a { color: #7f8c8d; text-decoration: underline; transition: color .3s; } .page-footer .bottom .copyright a:hover { color: #2980b9; } .post-list { margin: 72px auto 0 auto; padding: 0 36px; list-style: none; opacity: 0; transform: translateY(-20px); transition: all 0.4s; } .post-list > li { margin-bottom: 80px; } .post-list > li p.date, .post-list > li h4.title { font-weight: bold; } .post-list > li p.date { font-size: .75rem; line-height: 2.2; color: #2c3e50; } .post-list > li h4.title { font-size: 1.2rem; line-height: 1.5; margin: 10px 0; } .post-list > li h4.title a { color: #2c3e50; transition: color .3s; } .post-list > li h4.title a:hover { color: #2980b9; } .post-list > li .photo, .post-list > li img { max-width: 100%; max-height: 800px; } .post-list > li video, .post-list > li iframe { width: 100%; } .post-list > li .excerpt, .post-list > li .excerpt *, .post-list > li .no-title { font-size: .9rem; color: #7f8c8d; line-height: 1.5; margin: 0; } .post-list > li .excerpt a, .post-list > li .excerpt * a, .post-list > li .no-title a { text-decoration: underline; transition: color .3s; } .post-list > li .excerpt a:hover, .post-list > li .excerpt * a:hover, .post-list > li .no-title a:hover { color: #2980b9; } .post-list > li .meta { margin-top: 20px; border: 1px solid #ecf0f1; border-width: 1px 0; padding: 22px 10px; font-size: .75rem; color: #7f8c8d; } .post-list > li .meta ul { padding-left: 0; } .post-list > li .meta > li { margin-right: 22px; display: inline-block; } .post-list > li .meta > li i, .post-list > li .meta > li li { margin-right: .5em; } .post-list > li .meta > li ul, .post-list > li .meta > li li { display: inline; } .post-list > li .meta > li li a { color: #7f8c8d; transition: color .3s; } .post-list > li .meta > li li a:hover { color: #2980b9; } .post-list > li .meta > li li span { display: none; } .post-list > li .meta > li li ul.category-list-child { padding-left: .5em; font-size: .9em; } .post-list > li .meta > li li ul.category-list-child:before { content: '>'; padding-right: .3em; } .article-content, .article-meta { padding: 0 36px; line-height: 2; opacity: 0; transform: translateY(-20px); transition: all 0.4s; } .article-content { margin: 72px auto 48px auto; font-weight: 300; color: #2c3e50; } .article-content a { color: #2980b9; } .article-content h1 { margin: .7rem 0 .3rem 0; } .article-content h2 { margin: .6rem 0 .3rem 0; } .article-content h3, .article-content h4, .article-content h5, .article-content h6 { margin-top: .5rem; } .article-content h3 code, .article-content h4 code, .article-content h5 code, .article-content h6 code { color: #c0392b; } .article-content code { margin: 0 .3em; } .article-content p code, .article-content li code { color: #c0392b; } .article-content ul { padding-left: 20px; } .article-content ul li { list-style: disc; } .article-content ol { padding-left: 20px; } .article-content ol li { list-style: decimal; } .article-content blockquote { margin: .5rem 0; padding: 5px 5px 5px 15px; border-left: 5px solid #2980b9; line-height: 1.6; font-size: .9rem; background: #ecf0f1; } .article-content img { max-width: 100%; } .article-content video, .article-content iframe { width: 100%; } .article-content table { font-size: .9rem; } .article-content table th, .article-content table tr:nth-child(even) { background: #ecf0f1; } .article-content table th, .article-content table td { padding: .2em .5em; } .article-meta { margin: 0 auto 72px auto; font-size: .9rem; color: #7f8c8d; } .article-meta .tags, .article-meta .categories { margin-bottom: 5px; } .article-meta .tags > i, .article-meta .categories > i { display: block; float: left; margin-right: 1em; } .article-meta ul { padding-left: 0; } .article-meta li { display: inline-block; margin-right: .8em; } .article-meta li a { margin-right: .3em; text-decoration: underline; color: #7f8c8d; transition: color .3s; } .article-meta li a:hover { color: #2980b9; } .article-meta li span { padding: .02em .3em; border-radius: 2px; background: #ecf0f1; font-size: .85em; } .article-meta li ul.category-list-child { padding-left: .5em; display: inline-block; font-size: .9em; } .article-meta li ul.category-list-child:before { content: '>'; padding-right: .3em; } .article-comment { padding: 0 36px; margin: 0 auto 72px auto; } .article-comment #ds-thread #ds-reset .ds-meta { border-bottom: 1px solid #bdc3c7; } .article-comment #ds-thread #ds-reset .ds-meta a.ds-like-thread-button { border: 1px solid #bdc3c7; color: #7f8c8d; background: white; } .article-comment #ds-thread #ds-reset .ds-sort a { color: #7f8c8d; transition: color .3s; } .article-comment #ds-thread #ds-reset .ds-sort a:hover { color: #2980b9; } .article-comment #ds-thread #ds-reset .ds-sort a.ds-current { color: #2980b9; } .article-comment #ds-thread #ds-reset li.ds-tab a.ds-current { border: 1px solid #bdc3c7; background: white; transition: color .3s; } .article-comment #ds-thread #ds-reset li.ds-tab a.ds-current:hover { color: #2980b9; } .article-comment #ds-thread #ds-reset .ds-comments { border-bottom: 1px solid #ecf0f1; color: #2c3e50; } .article-comment #ds-thread #ds-reset li.ds-post { border-top: 0; } .article-comment #ds-thread #ds-reset .ds-post-self { border-top: 1px solid #ecf0f1; } .article-comment #ds-thread #ds-reset .ds-textarea-wrapper { border: 1px solid #bdc3c7; border-width: 1px 1px 0 1px; background: white; } .article-comment #ds-thread #ds-reset .ds-textarea-wrapper textarea { color: #34495e; } .article-comment #ds-thread #ds-reset .ds-post-toolbar { box-shadow: none; } .article-comment #ds-thread #ds-reset .ds-post-options { border: 1px solid #bdc3c7; border-top-color: #ecf0f1; border-right: none; } .article-comment #ds-thread #ds-reset .ds-gradient-bg { background: white; } .article-comment #ds-thread #ds-reset .ds-post-button { background: #ecf0f1; border: 1px solid #bdc3c7; border-top-color: #ecf0f1; border-left-color: #ecf0f1; } .pagination { text-align: center; margin-bottom: 80px; padding-left: 0; } .pagination li { display: inline-block; } .pagination li a { display: block; width: 36px; height: 36px; line-height: 36px; text-align: center; border-radius: 50%; font-weight: bold; font-size: .85rem; margin: 3px; color: #34495e; } .pagination li.current a { background: #ecf0f1; } .pagination li.link a { transition: color .3s; } .pagination li.link a:hover { color: #2980b9; } ul.navication { padding-left: 0; margin: 0; position: fixed; right: 15px; bottom: 30px; z-index: 99; } ul.navication li { margin-top: 12px; list-style: none; } ul.navication li a { display: block; border-radius: 50%; width: 30px; height: 30px; text-align: center; line-height: 30px; background: rgba(189, 195, 199, 0.6); color: white; transition: background .3s; } ul.navication li a:hover { background: rgba(41, 128, 185, 0.9); } ul.navication li.home { font-size: 1.8rem; } ul.navication li.home a { color: rgba(189, 195, 199, 0.6); background: none; transition: color .3s; } ul.navication li.home a:hover { color: #2980b9; } /*# sourceMappingURL=main_style.css.map */ ================================================ FILE: source/sass/_partial/duoshuo.scss ================================================ .article-comment { padding: 0 36px; margin: 0 auto 72px auto; #ds-thread { #ds-reset { .ds-meta { border-bottom: 1px solid $color-silver; a.ds-like-thread-button { border: 1px solid $color-silver; color: $color-asbestos; background: $color-white; } } .ds-sort { a { color: $color-asbestos; @include link-hover; &.ds-current { color: $color-belizeHole; } } } li.ds-tab { a.ds-current { border: 1px solid $color-silver; background: $color-white; @include link-hover; } } .ds-comments { border-bottom: 1px solid $color-cloud; color: $color-midnightBlue; } li.ds-post { border-top: 0; } .ds-post-self { border-top: 1px solid $color-cloud; } .ds-textarea-wrapper { border: 1px solid $color-silver; border-width: 1px 1px 0 1px; background: $color-white; textarea { color: $color-wetAsphalt; } } .ds-post-toolbar { box-shadow: none; } .ds-post-options { border: 1px solid $color-silver; border-top-color: $color-cloud; border-right: none; } .ds-gradient-bg { background: $color-white; } .ds-post-button { background: $color-cloud; border: 1px solid $color-silver; border-top-color: $color-cloud; border-left-color: $color-cloud; } } } } ================================================ FILE: source/sass/_partial/footer.scss ================================================ .page-footer { .top { background: $color-midnightBlue; padding: 110px 15px; .social { padding-left: 0; margin: 0; text-align: center; font-size: 2.2rem; li { display: inline-block; padding: 0 15px; a { color: $color-white; @include link-hover; } } } } .bottom { background: $color-wetAsphalt; padding: 30px 15px; .copyright { font-size: .8rem; text-align: center; color: $color-concrete; margin: 0; small { color: $color-asbestos; } a { color: $color-asbestos; text-decoration: underline; @include link-hover; } } } } ================================================ FILE: source/sass/_partial/layout.scss ================================================ a { text-decoration: none; color: $color-wetAsphalt; } body { position: relative; overflow-x: hidden; } .wrapper { position: relative; transition: all 0.25s; background: white; &.done { .page-header { .author { .head, .name, .signature { transform: translateY(0); opacity: 1; } .name, .signature { transition-delay: 0.08s; } } } .post-list { transform: translateY(0); opacity: 1; transition-delay: 0.16s; } .post-header { .post-title { h1.title, ul.meta { transform: translateY(0); opacity: 1; } ul.meta { transition-delay: 0.08s; } } } .article-content, .article-meta { transform: translateY(0); opacity: 1; } .article-content { transition-delay: 0.16s; } .article-meta { transition-delay: 0.24s; } } } @media screen and (max-width: $screen-small) { html, body { -webkit-user-select: none; user-select: none; } } ================================================ FILE: source/sass/_partial/list.scss ================================================ .post-list { margin: 72px auto 0 auto; padding: 0 36px; list-style: none; opacity: 0; transform: translateY(-20px); transition: all 0.4s; >li { margin-bottom: 80px; p.date, h4.title { font-weight: bold; } p.date { font-size: .75rem; line-height: 2.2; color: $color-midnightBlue; } h4.title { font-size: 1.2rem; line-height: 1.5; margin: 10px 0; a { color: $color-midnightBlue; @include link-hover; } } .photo, img { max-width: 100%; max-height: 800px; } video, iframe { width: 100%; } .excerpt, .excerpt *, .no-title { font-size: .9rem; color: $color-asbestos; line-height: 1.5; margin: 0; a { text-decoration: underline; @include link-hover; } } .meta { margin-top: 20px; border: 1px solid $color-cloud; border-width: 1px 0; padding: 22px 10px; font-size: .75rem; color: $color-asbestos; ul { padding-left: 0; } >li { margin-right: 22px; display: inline-block; i, li { margin-right: .5em; } ul, li { display: inline; } li { a { color: $color-asbestos; @include link-hover; } span { display: none; } ul.category-list-child { padding-left: .5em; font-size: .9em; &:before { content: '>'; padding-right: .3em; } } } } } } } ================================================ FILE: source/sass/_partial/main_navi.scss ================================================ #navi { display: none; } .navi-button { font-size: .8rem; color: $color-asbestos; border: 1px solid rgba($color-asbestos, .6); line-height: 35px; border-radius: 4px; display: block; padding: 0 15px; position: absolute; right: 15px; top: 15px; cursor: pointer; text-transform: uppercase; z-index: 99; transition: all .3s; &:hover { background: rgba($color-asbestos, .7); color: white; } &.light { color: white; border: 1px solid rgba(white, .6); &:hover { background: rgba(white, .7); color: $color-asbestos; } } } .main-navication { margin: 0; padding: 100px 0 0; background: $color-midnightBlue; width: 150px; position: absolute; right: 0; top: 0; bottom: 0; li { list-style: none; } a { display: block; padding: 0 15px; color: white; } i { display: block; width: 50px; float: left; font-size: 16px; line-height: 48px; text-align: center; } span { font-size: 12px; line-height: 48px; display: block; opacity: 0; transform: translateX(-50px); transition: all 0.4s; } } #navi:checked ~ .wrapper { transform: translateX(-150px); } #navi:checked ~ .main-navication { span { opacity: 1; transform: translateX(0); } } ================================================ FILE: source/sass/_partial/navication.scss ================================================ ul.navication { $icon-size: 30px; padding-left: 0; margin: 0; position: fixed; right: 15px; bottom: 30px; z-index: 99; li { margin-top: 12px; list-style: none; a { display: block; border-radius: 50%; width: $icon-size; height: $icon-size; text-align: center; line-height: $icon-size; background: rgba($color-silver, .6); color: $color-white; transition: background .3s; &:hover { background: rgba($color-belizeHole, .9); } } &.home { font-size: 1.8rem; a { color: rgba($color-silver, .6); background: none; @include link-hover } } } } ================================================ FILE: source/sass/_partial/page_header.scss ================================================ .page-header { position: relative; .background { width: 100%; height: 550px; background: $color-black; overflow: hidden; position: relative; img { display: block; width: 1920px; height: 800px; position: absolute; top: 50%; left: 50%; margin-left: -960px; margin-top: -400px; } } .author { background: $color-cloud; text-align: center; padding: 0 20px 30px 20px; .head { display: inline-block; width: 130px; height: 130px; border-radius: 50%; padding: 3px; background: #fff; box-shadow: 0 0 5px $color-concrete; position: relative; top: -68px; opacity: 0; transform: translateY(-20px); transition: all 0.4s; img { width: 100%; height: 100%; display: block; border-radius: 50%; } } .name, .signature { position: relative; margin: 0; opacity: 0; transform: translateY(-20px); transition: all 0.4s; } .name { font-size: 1.3rem; color: $color-midnightBlue; top: -50px; } .signature { font-size: .95rem; color: $color-asbestos; top: -35px; } } } @media screen and (max-width: $screen-medium) { .page-header { .background { height: 450px; } } } @media screen and (max-width: $screen-small) { .page-header { .background { height: 350px; img { width: 1200px; height: 500px; margin-left: -600px; margin-top: -250px; } } } } ================================================ FILE: source/sass/_partial/pagination.scss ================================================ .pagination { text-align: center; margin-bottom: 80px; padding-left: 0; li { display: inline-block; a { display: block; width: 36px; height: 36px; line-height: 36px; text-align: center; border-radius: 50%; font-weight: bold; font-size: .85rem; margin: 3px; color: $color-wetAsphalt; } &.current { a { background: $color-cloud; } } &.link { a { @include link-hover; } } } } ================================================ FILE: source/sass/_partial/post.scss ================================================ .article-content, .article-meta { padding: 0 36px; line-height: 2; opacity: 0; transform: translateY(-20px); transition: all 0.4s; } .article-content { margin: 72px auto 48px auto; font-weight: 300; color: $color-midnightBlue; a { color: $color-belizeHole; } h1 { margin: .7rem 0 .3rem 0; } h2 { margin: .6rem 0 .3rem 0; } h3, h4, h5, h6 { margin-top: .5rem; code { color: $color-powerGranate; } } code { margin: 0 .3em; } p, li { code { color: $color-powerGranate; } } ul { padding-left: 20px; li { list-style: disc; } } ol { padding-left: 20px; li { list-style: decimal; } } blockquote { margin: .5rem 0; padding: 5px 5px 5px 15px; border-left: 5px solid $color-belizeHole; line-height: 1.6; font-size: .9rem; background: $color-cloud; } img { max-width: 100%; } video, iframe { width: 100%; } table { font-size: .9rem; th, tr:nth-child(even) { background: $color-cloud; } th, td { padding: .2em .5em; } } } .article-meta { margin: 0 auto 72px auto; font-size: .9rem; color: $color-asbestos; .tags, .categories { margin-bottom: 5px; >i { display: block; float: left; margin-right: 1em; } } ul { padding-left: 0; } li { display: inline-block; margin-right: .8em; a { margin-right: .3em; text-decoration: underline; color: $color-asbestos; @include link-hover; } span { padding: .02em .3em; border-radius: 2px; background: $color-cloud; font-size: .85em; } ul.category-list-child { padding-left: .5em; display: inline-block; font-size: .9em; &:before { content: '>'; padding-right: .3em; } } } } ================================================ FILE: source/sass/_partial/post_header.scss ================================================ .post-header { width: 100%; background: $color-black; overflow: hidden; position: relative; img.background { display: block; width: 1920px; height: 800px; position: absolute; top: 50%; left: 50%; margin-left: -960px; margin-top: -400px; } .post-title { color: $color-white; background: rgba($color-black, .6); padding: 230px 30px; text-align: center; position: relative; z-index: 66; h1.title { font-size: 2.2rem; line-height: 40px; margin: 0; opacity: 0; transform: translateY(-20px); transition: all 0.4s; } ul.meta { display: inline-block; margin-top: 20px; border-top: 1px solid rgba($color-white, .6); padding: 15px 10px; font-size: .75rem; line-height: 1.6; opacity: 0; transform: translateY(-20px); transition: all 0.4s; >li { margin: 0 12px; display: inline-block; i, li { margin-right: .5em; } ul, li { display: inline; } li { a { color: $color-white; @include link-hover; } span { display: none; } } } } } } @media screen and (max-width: $screen-medium) { .post-header { .post-title { padding: 180px 30px; h1.title { font-size: 2rem; } } } } @media screen and (max-width: $screen-small) { .post-header { img.background { width: 1200px; height: 500px; margin-left: -600px; margin-top: -250px; } .post-title { padding: 130px 30px; h1.title { font-size: 1.6rem; line-height: 36px; } } } } ================================================ FILE: source/sass/_util/color.scss ================================================ $color-white: rgba(255, 255, 255,1.0); $color-cloud: rgba(236, 240, 241,1.0); $color-silver: rgba(189, 195, 199,1.0); $color-concrete: rgba(149, 165, 166,1.0); $color-asbestos: rgba(127, 140, 141,1.0); $color-wetAsphalt: rgba(52, 73, 94,1.0); $color-midnightBlue: rgba(44, 62, 80,1.0); $color-black: rgba(0, 0, 0,1.0); $color-turquoise: rgba(26, 188, 156,1.0); $color-emerald: rgba(46, 204, 113,1.0); $color-peterRiver: rgba(52, 152, 219,1.0); $color-belizeHole: rgba(41, 128, 185,1.0); $color-amethyst: rgba(155, 89, 182,1.0); $color-wisteria: rgba(142, 68, 173,1.0); $color-orange: rgba(243, 156, 18,1.0); $color-powerGranate: rgba(192, 57, 43,1.0); ================================================ FILE: source/sass/_util/hightlight.scss ================================================ /* * Source files from https://github.com/pinggod/hexo-theme-apollo/blob/master/source/scss/_partial/post.scss */ code, pre { font-size: 0.8em; background-color: $color-cloud; font-family: 'Roboto Mono', Monaco, courier, monospace; } code { padding: 0.1em 0.4em; background-color: $color-cloud; border-radius: 3px; } pre { .line { min-height: 1em; } } .highlight { position: relative; margin: 1em 0; border-radius: 2px; line-height: 1.1em; background-color: $color-cloud; overflow-x: auto; figcaption { font-size: .9em; padding: .4em; border-bottom: 1px solid $color-silver; } table, tr, td { width: 100%; border-collapse: collapse; padding: 0; margin: 0; } .gutter { display: none; } .code pre { padding: 1.2em 1.4em; line-height: 1.5em; margin: 0; } } %code-base { position: absolute; top: 0; right: 0; color: $color-silver; text-align: right; font-size: 0.75em; padding: 5px 10px 0; line-height: 15px; height: 15px; font-weight: 600; } @mixin code-signs($keys) { @each $key in $keys { .highlight.#{$key} .code:after { content: to-upper-case($key); @extend %code-base; } } } $signs: ("html", "js", "bash", "css", "scss","diff", "java", "xml", "python", "json", "swift", "ruby", "perl", "php", "c", "java", "cpp", "ts"); @include code-signs($signs); .highlight.cpp .code:after { content: 'C++'; } pre { color: $color-wetAsphalt; .function .keyword, .constant { color: $color-peterRiver; } .keyword, .attribute { color: #e96900; } .number, .literal { color: $color-wisteria; } .tag, .tag .title, .change, .winutils, .flow, .lisp .title, .clojure .built_in, .nginx .title, .tex .special { color: $color-belizeHole; } .symbol, .symbol .string, .value, .regexp { color: $color-turquoise; } .title { color: $color-emerald; } .tag .value, .string, .subst, .haskell .type, .preprocessor, .ruby .class .parent, .built_in, .sql .aggregate, .django .template_tag, .django .variable, .smalltalk .class, .javadoc, .django .filter .argument, .smalltalk .localvars, .smalltalk .array, .attr_selector, .pseudo, .addition, .stream, .envvar, .apache .tag, .apache .cbracket, .tex .command, .prompt { color: $color-turquoise; } .comment, .java .annotation, .python .decorator, .template_comment, .pi, .doctype, .shebang, .apache .sqbracket, .tex .formula { color: $color-concrete; } .deletion { color: $color-powerGranate; } .coffeescript .javascript, .javascript .xml, .tex .formula, .xml .javascript, .xml .vbscript, .xml .css, .xml .cdata { opacity: 0.5; } } ================================================ FILE: source/sass/_util/icon.scss ================================================ @font-face {font-family: "iconfont"; src: url('../fonts/icon.eot'); /* IE9*/ src: url('../fonts/icon.eot') format('embedded-opentype'), /* IE6-IE8 */ url('../fonts/icon.woff') format('woff'), /* chrome, firefox */ url('../fonts/icon.ttf') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+*/ url('../fonts/icon.svg') format('svg'); /* iOS 4.1- */ } .icon { font-family:"iconfont" !important; font-style:normal; } .icon-douban:before { content: "\e601"; } .icon-facebook:before { content: "\e616"; } .icon-twitter:before { content: "\e634"; } .icon-clock:before { content: "\e6f6"; } .icon-home:before { content: "\e611"; } .icon-weibo:before { content: "\e619"; } .icon-zhihu:before { content: "\e6d1"; } .icon-calendar:before { content: "\e603"; } .icon-author:before { content: "\e608"; } .icon-wechat:before { content: "\e600"; } .icon-github:before { content: "\e735"; } .icon-stackoverflow:before { content: "\e8a7"; } .icon-linkin:before { content: "\e61d"; } .icon-email:before { content: "\e609"; } .icon-tag:before { content: "\e68e"; } .icon-top:before { content: "\e649"; } .icon-segmentfault:before { content: "\e610"; } .icon-bilibili:before { content: "\e606"; } .icon-arror-right:before { content: "\e617"; } .icon-arror-left:before { content: "\e618"; } .icon-category:before { content: "\e627"; } .icon-disqus:before { content: "\e7c6"; } .icon-flickr:before { content: "\e73d"; } .icon-website:before { content: "\e605"; } ================================================ FILE: source/sass/_util/media.scss ================================================ $screen-large: 1920px; $screen-medium: 1440px; $screen-small: 1024px; $screen-mini: 768px; $screen-phone: 414px; ================================================ FILE: source/sass/_util/mixin.scss ================================================ @mixin link-hover { transition: color .3s; &:hover { color: $color-belizeHole; } } ================================================ FILE: source/sass/main_style.scss ================================================ // @import "./_util/reset"; @import "../components/reset-css/sass/main.scss"; @import "./_util/color"; @import "./_util/icon"; @import "./_util/mixin"; @import "./_util/media"; @import './_util/hightlight'; @import "./_partial/layout"; @import "./_partial/page_header"; @import "./_partial/post_header"; @import "./_partial/main_navi"; @import "./_partial/footer"; @import "./_partial/list"; @import "./_partial/post"; @import "./_partial/duoshuo"; @import "./_partial/pagination"; @import "./_partial/navication";