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
[](https://github.com/BoizZ/hexo-theme-laughing)
[](https://github.com/hexojs/hexo)
[](https://raw.githubusercontent.com/BoizZ/hexo-theme-laughing/master/LICENSE)
简单轻量的[hexo](https://hexo.io)主题。
Demo: [lalala.lol](http://lalala.lol)
## 外观
响应式布局,宽松设计,还原最佳阅读体验。


## 功能
- 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
```
## 二次开发 [](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";
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
Condensed preview — 52 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (85K chars).
[
{
"path": ".bowerrc",
"chars": 38,
"preview": "{\n \"directory\": \"source/components\"\n}"
},
{
"path": ".gitignore",
"chars": 44,
"preview": ".Ds_Store\n.sass-cache\nnode_modules\nyarn.lock"
},
{
"path": "LICENSE",
"chars": 1069,
"preview": "MIT License\n\nCopyright (c) 2016 Laughing Gor\n\nPermission is hereby granted, free of charge, to any person obtaining a co"
},
{
"path": "README.md",
"chars": 3262,
"preview": "# Laughing theme for hexo\n[](https://github.c"
},
{
"path": "_config.yml",
"chars": 1133,
"preview": "# Icon\nfavicon: /favicon.ico\n# SEO\nkeywords: Hexo, Gruntjs, Nodejs, Reactjs, Vuejs\n# Header\npage_background: http://call"
},
{
"path": "gruntfile.js",
"chars": 2307,
"preview": "module.exports = function (grunt) {\n\n grunt.initConfig({\n watch: {\n // js: {\n // fil"
},
{
"path": "layout/_partial/footer.pug",
"chars": 695,
"preview": ".page-footer\n .top\n ul.social\n each social in theme.social\n li\n a(href=social.link, title=socia"
},
{
"path": "layout/_partial/layout.pug",
"chars": 1264,
"preview": "doctype html\nhtml(lang=\"zh-cn\")\n head\n meta(charset=\"utf-8\")\n meta(http-equiv=\"X-UA-Compatible\",content=\"IE=Edge\""
},
{
"path": "layout/_partial/page_header.pug",
"chars": 316,
"preview": ".page-header\n if theme.page_menu_button === \"light\"\n label.navi-button.light(for=\"navi\") MENU\n else\n label.navi-"
},
{
"path": "layout/_partial/pagination.pug",
"chars": 243,
"preview": "ul.pagination\n if page.prev\n li.link\n a(href=url_for(page.prev_link))\n i.icon.icon-arror-left\n li.curre"
},
{
"path": "layout/_partial/post_header.pug",
"chars": 523,
"preview": ".post-header\n if theme.post_menu_button === \"light\"\n label.navi-button.light(for=\"navi\") MENU\n else\n label.navi-"
},
{
"path": "layout/index.pug",
"chars": 871,
"preview": "extends ./_partial/layout.pug\nblock content\n include ./_partial/page_header.pug\n ul.post-list(style='max-width:'+ them"
},
{
"path": "layout/post.pug",
"chars": 1760,
"preview": "extends ./_partial/layout.pug\nblock content\n include ./_partial/post_header.pug\n .article-content(style='max-width:'+ "
},
{
"path": "package.json",
"chars": 272,
"preview": "{\n \"name\": \"hexo-theme-laughing\",\n \"version\": \"0.2.0\",\n \"private\": true,\n \"devDependencies\": {\n \"grunt\": \"^1.0.1\""
},
{
"path": "source/components/reset-css/.bower.json",
"chars": 364,
"preview": "{\n \"name\": \"reset-css\",\n \"homepage\": \"https://github.com/BoizZ/reset-css\",\n \"_release\": \"59a1b976b6\",\n \"_resolution\""
},
{
"path": "source/components/reset-css/.gitignore",
"chars": 24,
"preview": ".sass-cache\nnode_modules"
},
{
"path": "source/components/reset-css/LICENSE",
"chars": 1069,
"preview": "MIT License\n\nCopyright (c) 2016 Laughing Gor\n\nPermission is hereby granted, free of charge, to any person obtaining a co"
},
{
"path": "source/components/reset-css/README.md",
"chars": 426,
"preview": "# reset-css\n这个样式表写给还在为前端开发中各个浏览器样式不统一问题纠结的同学,但不包含Hack。\n大家可以把样式表下载到本地使用,也可以使用CDN调取。\n\n### 文件目录\n\n``` bash\n.\n├── dist # 1.2."
},
{
"path": "source/components/reset-css/dist/mobile/reset.css",
"chars": 2862,
"preview": "/* =================================================================\n* Reset Stylesheet for Mobile\n* Author:Bon\n* Author"
},
{
"path": "source/components/reset-css/dist/pc/reset.css",
"chars": 2674,
"preview": "/* =================================================================\n* Reset Stylesheet for PC\n* Author:Bon\n* Author URI"
},
{
"path": "source/components/reset-css/gruntfile.js",
"chars": 1157,
"preview": "module.exports = function (grunt) {\n grunt.initConfig({\n watch: {\n css: {\n files: ['sass/**'],\n t"
},
{
"path": "source/components/reset-css/package.json",
"chars": 543,
"preview": "{\n \"name\": \"reset-css\",\n \"version\": \"2.0.0\",\n \"description\": \"A configurable reset style sheet\",\n \"scripts\": {\n \""
},
{
"path": "source/components/reset-css/public/main/reset.css",
"chars": 3153,
"preview": "html {\n -ms-text-size-adjust: 100%;\n}\n\narticle, aside, footer, header, nav, section {\n display: block;\n}\n\nfigcaption, "
},
{
"path": "source/components/reset-css/public/mobile/reset.css",
"chars": 2121,
"preview": "button, input, optgroup, select, textarea {\n -webkit-appearance: none;\n -webkit-tap-highlight-color: transparent;\n}\n\na"
},
{
"path": "source/components/reset-css/public/native/reset.css",
"chars": 2285,
"preview": "button, input, optgroup, select, textarea {\n -webkit-appearance: none;\n -webkit-tap-highlight-color: transparent;\n}\n\na"
},
{
"path": "source/components/reset-css/sass/_common.scss",
"chars": 25,
"preview": "$font-family: sans-serif;"
},
{
"path": "source/components/reset-css/sass/custom/_microsoft-yahei.scss",
"chars": 46,
"preview": "$font-family: \"Microsoft Yahei\", $font-family;"
},
{
"path": "source/components/reset-css/sass/custom/imitation-native.scss",
"chars": 164,
"preview": "html, body {\n -webkit-user-select: none;\n user-select: none;\n}\n\nbody {\n -webkit-text-size-adjust: 100% !important;\n}\n"
},
{
"path": "source/components/reset-css/sass/main.scss",
"chars": 237,
"preview": "@import \"common\";\n@import \"custom/microsoft-yahei\"; // font-family: Microsoft Yahei\n@import \"reset/ie\"; // enable IE res"
},
{
"path": "source/components/reset-css/sass/mobile-native.scss",
"chars": 122,
"preview": "@import \"common\";\n@import \"reset/mobile\"; // enable mobile reset\n@import \"custom/imitation-native\";\n@import \"reset/basic"
},
{
"path": "source/components/reset-css/sass/mobile-single.scss",
"chars": 87,
"preview": "@import \"common\";\n@import \"reset/mobile\"; // enable mobile reset\n@import \"reset/basic\";"
},
{
"path": "source/components/reset-css/sass/reset/basic.scss",
"chars": 1879,
"preview": "/**\n * Correct the style in all browsers.\n */\n\nhtml {\n font-family: $font-family;\n line-height: 1.15;\n -webkit-text-s"
},
{
"path": "source/components/reset-css/sass/reset/ie.scss",
"chars": 889,
"preview": "html {\n -ms-text-size-adjust: 100%;\n}\n\narticle, aside, footer, header, nav, section {\n display: block;\n}\n\nfigcaption, "
},
{
"path": "source/components/reset-css/sass/reset/macos.scss",
"chars": 121,
"preview": "[type=\"search\"]::-webkit-search-cancel-button, [type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n"
},
{
"path": "source/components/reset-css/sass/reset/mobile.scss",
"chars": 236,
"preview": "$font-family: \"Helvetica Neue\", Helvetica, STHeiTi, $font-family;\n\nbutton, input, optgroup, select, textarea {\n -webkit"
},
{
"path": "source/css/main_style.css",
"chars": 22232,
"preview": "html {\n -ms-text-size-adjust: 100%;\n}\n\narticle, aside, footer, header, nav, section {\n display: block;\n}\n\nfigcaption, "
},
{
"path": "source/sass/_partial/duoshuo.scss",
"chars": 1600,
"preview": ".article-comment {\n padding: 0 36px;\n margin: 0 auto 72px auto;\n #ds-thread {\n #ds-reset {\n .ds-meta {\n "
},
{
"path": "source/sass/_partial/footer.scss",
"chars": 725,
"preview": ".page-footer {\n .top {\n background: $color-midnightBlue;\n padding: 110px 15px;\n .social {\n padding-left: "
},
{
"path": "source/sass/_partial/layout.scss",
"chars": 1081,
"preview": "a {\n text-decoration: none;\n color: $color-wetAsphalt;\n}\nbody {\n position: relative;\n overflow-x: hidden;\n}\n.wrapper"
},
{
"path": "source/sass/_partial/list.scss",
"chars": 1661,
"preview": ".post-list {\n margin: 72px auto 0 auto;\n padding: 0 36px;\n list-style: none;\n opacity: 0;\n transform: translateY(-2"
},
{
"path": "source/sass/_partial/main_navi.scss",
"chars": 1294,
"preview": "#navi {\n display: none;\n}\n.navi-button {\n font-size: .8rem;\n color: $color-asbestos;\n\tborder: 1px solid rgba($color-a"
},
{
"path": "source/sass/_partial/navication.scss",
"chars": 692,
"preview": "ul.navication {\n $icon-size: 30px;\n padding-left: 0;\n margin: 0;\n position: fixed;\n right: 15px;\n bottom: 30px;\n "
},
{
"path": "source/sass/_partial/page_header.scss",
"chars": 1605,
"preview": ".page-header {\n position: relative;\n .background {\n width: 100%;\n height: 550px;\n background: $color-black;\n "
},
{
"path": "source/sass/_partial/pagination.scss",
"chars": 510,
"preview": ".pagination {\n text-align: center;\n margin-bottom: 80px;\n padding-left: 0;\n li {\n display: inline-block;\n a {\n"
},
{
"path": "source/sass/_partial/post.scss",
"chars": 1885,
"preview": ".article-content, .article-meta {\n padding: 0 36px;\n line-height: 2;\n opacity: 0;\n transform: translateY(-20px);\n t"
},
{
"path": "source/sass/_partial/post_header.scss",
"chars": 1761,
"preview": ".post-header {\n width: 100%;\n background: $color-black;\n overflow: hidden;\n position: relative;\n img.background {\n "
},
{
"path": "source/sass/_util/color.scss",
"chars": 652,
"preview": "$color-white: rgba(255, 255, 255,1.0);\n$color-cloud: rgba(236, 240, 241,1.0);\n$color-silver: rgba(189, 195, 199,1.0);\n$c"
},
{
"path": "source/sass/_util/hightlight.scss",
"chars": 3084,
"preview": "/*\n * Source files from https://github.com/pinggod/hexo-theme-apollo/blob/master/source/scss/_partial/post.scss\n */\n\ncod"
},
{
"path": "source/sass/_util/icon.scss",
"chars": 1501,
"preview": "@font-face {font-family: \"iconfont\";\n src: url('../fonts/icon.eot'); /* IE9*/\n src: url('../fonts/icon.eot') format('e"
},
{
"path": "source/sass/_util/media.scss",
"chars": 113,
"preview": "$screen-large: 1920px;\n$screen-medium: 1440px;\n$screen-small: 1024px;\n$screen-mini: 768px;\n$screen-phone: 414px;\n"
},
{
"path": "source/sass/_util/mixin.scss",
"chars": 92,
"preview": "@mixin link-hover {\n transition: color .3s;\n &:hover {\n color: $color-belizeHole;\n }\n}"
},
{
"path": "source/sass/main_style.scss",
"chars": 514,
"preview": "// @import \"./_util/reset\";\n@import \"../components/reset-css/sass/main.scss\";\n@import \"./_util/color\";\n@import \"./_util/"
}
]
About this extraction
This page contains the full source code of the BoizZ/hexo-theme-laughing GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 52 files (73.5 KB), approximately 24.3k tokens. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.