Full Code of BoizZ/hexo-theme-laughing for AI

master f866aab0c9e4 cached
52 files
73.5 KB
24.3k tokens
1 requests
Download .txt
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";
Download .txt
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[![Build Status](https://img.shields.io/badge/build-passing-brightgreen.svg)](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.

Copied to clipboard!