├── .gitignore
├── LICENSE
├── _config.yml
├── languages
├── en.yml
├── ko.yml
└── zh.yml
├── layout
├── 404.ejs
├── _partial
│ ├── analytics.ejs
│ ├── donate.ejs
│ ├── footer.ejs
│ ├── head.ejs
│ ├── nav.ejs
│ └── toc.ejs
├── about.ejs
├── archive.ejs
├── catagory.ejs
├── collect.ejs
├── index.ejs
├── layout.ejs
├── page.ejs
├── post.ejs
└── tags.ejs
├── readme-en.md
├── readme.md
└── source
├── _less
├── _partial
│ ├── footer.css
│ ├── footer.css.map
│ └── footer.less
├── about.less
├── archive.less
├── common.less
├── diff.less
├── donate.less
├── gitment.less
├── hightlight.less
├── index.less
├── layout.less
├── nav.less
├── page.less
├── post.less
├── tag.less
├── theme.less
├── toc.less
└── variables.less
├── css
├── aircloud.css
├── aircloud.css.map
├── aircloud.less
└── gitment.css
└── js
├── gitment.js
└── index.js
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | Thumbs.db
3 | db.json
4 | *.log
5 | node_modules/
6 | public/
7 | .idea/
8 | .deploy*/
9 | unuse/
10 | readme-private.md
11 |
12 | .vscode/
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2018 XiaotaoNie
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/_config.yml:
--------------------------------------------------------------------------------
1 | __: aircloud
--------------------------------------------------------------------------------
/languages/en.yml:
--------------------------------------------------------------------------------
1 | nav:
2 | home: HOME
3 | tags: TAGS
4 | archives: ARCHIVES
5 | about: ABOUT
6 | collect: COLLECT
7 | search: SEARCH
8 | #
9 | #post:
10 | # postTime: 发布于
11 | # tags: 标签
12 | # visit: 访问
13 | post:
14 | postTime: Post
15 | tags: Tags
16 | visit: Visit
17 | donate: donate
18 |
19 | search:
20 | search: search
--------------------------------------------------------------------------------
/languages/ko.yml:
--------------------------------------------------------------------------------
1 | nav:
2 | home: 홈
3 | tags: 태그
4 | archives: 아카이브
5 | about: about
6 | collect: 모으다
7 | search: 검색
8 |
9 | post:
10 | postTime: 등록시간
11 | tags: 태그
12 | visit: 방문
13 | donate: 기부
14 |
15 | search:
16 | search: 검색
17 |
18 |
--------------------------------------------------------------------------------
/languages/zh.yml:
--------------------------------------------------------------------------------
1 | nav:
2 | home: 主页
3 | tags: 标签
4 | archives: 存档
5 | about: 关于
6 | collect: 收藏
7 | search: 搜索
8 |
9 | post:
10 | postTime: 发布于
11 | tags: 标签
12 | visit: 访问
13 | donate: 赞赏
14 |
15 | search:
16 | search: 搜索
17 |
18 |
--------------------------------------------------------------------------------
/layout/404.ejs:
--------------------------------------------------------------------------------
1 |
2 | 404
3 |
--------------------------------------------------------------------------------
/layout/_partial/analytics.ejs:
--------------------------------------------------------------------------------
1 | <% if (config.analytics && config.analytics.google){ %>
2 | <% if (config.analytics.google.site_verification){ %>
3 |
4 | <% } %>
5 | <% if (config.analytics.google.gtag_id){ %>
6 |
7 |
15 | <% } %>
16 | <% } %>
17 |
18 | <% if (config.analytics && config.analytics.cloudflare){ %>
19 | <% if (config.analytics.cloudflare.token){ %>
20 |
21 | <% } %>
22 | <% } %>
23 |
24 | <% if (config.analytics && config.analytics.bing){ %>
25 | <% if (config.analytics.bing.site_verification){ %>
26 |
27 | <% } %>
28 | <% } %>
29 |
30 |
31 | <% if (config.analytics && config.analytics.baidu){ %>
32 | <% if (config.analytics.baidu.disable_transformation) { %>
33 |
34 |
35 | <% } %>
36 | <% if (config.analytics.baidu.site_verification){ %>
37 |
38 | <% } %>
39 | <% if (config.analytics.baidu.id){ %>
40 |
49 | <% } %>
50 | <% } %>
51 |
52 | <% if (config.analytics && config.analytics.umami){ %>
53 | <% if (config.analytics.umami.id && config.analytics.umami.host){ %>
54 |
55 | <% } %>
56 | <% } %>
--------------------------------------------------------------------------------
/layout/_partial/donate.ejs:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
![]()
7 |
<%= config.donate.content %>
8 |
9 |
--------------------------------------------------------------------------------
/layout/_partial/footer.ejs:
--------------------------------------------------------------------------------
1 |
2 |
82 |
83 |
84 |
--------------------------------------------------------------------------------
/layout/_partial/head.ejs:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 | <% if (page.title) { %>
13 | <%= page.title + ' - ' + config.SEOTitle %>
14 | <% } else{%>
15 | <%= config.SEOTitle %>
16 | <% } %>
17 |
18 |
19 |
20 | <%- css('css/aircloud.css') %>
21 | <%- css('css/gitment.css') %>
22 |
23 |
24 |
25 |
26 |
27 | <%- partial('_partial/analytics', null, {cache: false}) %>
28 |
29 |
--------------------------------------------------------------------------------
/layout/_partial/nav.ejs:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |

6 |
7 |
8 | <%= config.author %>
9 |
10 |
11 |
53 | <%
54 | if(is_post()){
55 | // if(/[0-9]*\/[0-9]*\/[0-9]*\//.test(path)){
56 | %>
57 | <%- partial('./toc', {item: page, index: false}) %>
58 | <% } %>
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 | <%= __('search.search') %>
69 |
70 |
71 |
72 |
73 |
74 |
75 |
--------------------------------------------------------------------------------
/layout/_partial/toc.ejs:
--------------------------------------------------------------------------------
1 |
2 | <%- toc(item.content, {list_number: false}) %>
3 |
--------------------------------------------------------------------------------
/layout/about.ejs:
--------------------------------------------------------------------------------
1 |
2 |
3 | <%-page.content%>
4 | <% if(config.donate){%>
5 | <%- partial('_partial/donate', null, {cache: false}) %>
6 | <% } %>
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/layout/archive.ejs:
--------------------------------------------------------------------------------
1 | ---
2 | layout: layout
3 | ---
4 |
5 | <%
6 | var years = {};
7 | site.posts.sort('date').reverse().forEach(function(post){
8 | var year = post.date.year()
9 | if(years[year]===undefined){
10 | years[year] = [];
11 | }
12 | years[year].push(post);
13 | });
14 | %>
15 |
16 |
17 |
18 |
19 | <% Object.keys(years).reverse().forEach(function(year){ %>
20 |
21 |
22 | <%= year %>
23 |
24 |
45 |
46 | <% }) %>
47 |
48 |
--------------------------------------------------------------------------------
/layout/catagory.ejs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircloud/hexo-theme-aircloud/7bd5ae19a85895bbf07a55cefdecd93ad57a1c93/layout/catagory.ejs
--------------------------------------------------------------------------------
/layout/collect.ejs:
--------------------------------------------------------------------------------
1 |
2 |
3 | <%-page.content%>
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/layout/index.ejs:
--------------------------------------------------------------------------------
1 | ---
2 | layout: layout
3 | ---
4 |
5 |
6 | <% page.posts.each(function(post){ %>
7 |
8 |
<%= post.date.format(config.date_format) %>
9 |
27 |
28 | <% }); %>
29 |
30 |
42 |
--------------------------------------------------------------------------------
/layout/layout.ejs:
--------------------------------------------------------------------------------
1 |
2 | >
3 | <%- partial('_partial/head') %>
4 |
5 |
6 |
7 |
12 |
13 |
14 |
15 | <%= config.subtitle %>
16 |
17 |
18 |
19 | <% if(!is_current('/404')){%>
20 |
21 | <%- partial('_partial/nav', null, {cache: false}) %>
22 |
23 | <%= config.subtitle %>
24 |
25 |
26 | <% } %>
27 |
28 |
29 | <%- body %>
30 |
31 |
32 |
33 | <%- partial('_partial/footer', null, {cache: false}) %>
34 |
35 |
36 |
37 |
43 |
44 | <%- js('js/index.js') %>
45 |
46 | <%if( (page.comments) && config.comment && config.comment.type === 'gitment'){%>
47 | <%- js('js/gitment.js') %>
48 |
60 | <%}%>
61 | <%if( (page.comments) && config.comment && config.comment.type === 'disqus'){%>
62 |
80 | <% } %>
81 |
82 | <%if( (page.comments) && config.comment && config.comment.type === 'giscus'){%>
83 | <%- config.comment.script %>
84 | <% } %>
85 |
86 | <%if( (page.comments) && config.comment && config.comment.type === 'livere'){%>
87 |
103 |
104 |
105 | <% } %>
106 |
107 |
--------------------------------------------------------------------------------
/layout/page.ejs:
--------------------------------------------------------------------------------
1 |
2 |
3 | <%-page.content%>
4 | <% if(config.donate){%>
5 | <%- partial('_partial/donate', null, {cache: false}) %>
6 | <% } %>
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/layout/post.ejs:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | <%- page.title.replace(/[<>&"]/g,function(c){
7 | return {'<':'<','>':'>','&':'&','"':'"'}[c];
8 | }) %>
9 |
10 |
11 |
12 |
<%= __('post.postTime') %>:<%- page.date.format(config.date_format) +" "+ page.date.format(config.time_format)%>
13 | <% if (page.tags.length){ %>
14 |
<%= __('post.tags') %>:/
15 | <% page.tags.forEach(function(tag){ %>
16 | <%= tag.name %>
17 | /
18 | <% }) %>
19 | <% } %>
20 |
21 |
<%= __('post.visit') %>:
22 |
23 |
24 |
25 |
26 | <%- page.content %>
27 | <% if(config.donate){%>
28 | <%- partial('_partial/donate', null, {cache: false}) %>
29 | <% } %>
30 |
31 |
33 |
34 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/layout/tags.ejs:
--------------------------------------------------------------------------------
1 | <% page.comments = false %>
2 |
3 |
10 |
11 |
12 |
13 | <% site.tags.map(a => {
14 | return {
15 | name: a.name,
16 | posts: a.posts
17 | }
18 | }).sort((a, b) => {
19 | return a.name.localeCompare(b.name, 'zh-Hans-CN', {sensitivity: 'accent'})
20 | }).map(function(tag){ %>
21 |
22 |
23 | <%= tag.name %>
24 |
25 | <% tag.posts.map(function(post){ %>
26 |
30 |
45 | <% }) %>
46 |
47 | <% }) %>
48 |
--------------------------------------------------------------------------------
/readme-en.md:
--------------------------------------------------------------------------------
1 | ## Hexo-Theme-AirCloud: A light and clean hexo template
2 |
3 | note: The English version of the documentation is waiting for synchronization from the chinese version.
4 |
5 | > [中文文档](./readme.md) | [LIVE PREVIEW](http://niexiaotao.cn/)
6 |
7 | ## Introduction
8 |
9 | Hexo-Theme-AirCloud is a light and clean hexo template designed to focus on the blog itself, so:
10 |
11 | * By default, there is no large color blocks, picture layouts, etc. It doesn't require a head picture of each blog. Because on the one hand, it is not the focus of our knowledge record, on the other hand, the programmers may not have enough picture materials which may easily cause copyright disputes.
12 | * It is recommended to communicate through non-redundant content. For example, there are no blog abstracts by default because many developers don't write blog abstracts when they write blogs. If they are intercepted from the previous part of the blog, they often can't express the complete idea.
13 |
14 | In addition, the main functions of this theme are:
15 |
16 |
17 | * Global search support and auto-highlight search content.
18 | * Comment for each blog, currently [gitment](https://imsun.net/posts/gitment-introduction/) is used, more options are considered.
19 | * Visit statistics(overall UV,PV, single page PV)
20 | * Language switching ability, currently supports Chinese and English
21 |
22 | ## Usage
23 |
24 | Same as other hexo blog topics, simply clone or download the project, copy and paste it into the themes folder.
25 |
26 | Specific _config.yml custom configuration, **it is recommended to refer to [DEMO] (https://github.com/aircloud/hexo-aircloud-blog) for configuration**
27 |
28 | ## Some precautions
29 |
30 | Due to some history issues of the hexo, in order to avoid trouble when in the use process, it is recommended that users follow some rules in the use process:
31 |
32 | * Do not have a skip-level directory in one blog. For example, a '###' third level directory followed by a '#####' is not recommended.
33 |
34 |
35 | > This theme is Continuous updating
36 |
--------------------------------------------------------------------------------
/readme.md:
--------------------------------------------------------------------------------
1 | ## Hexo-Theme-AirCloud: 一个简洁轻量的 hexo 博客主题
2 |
3 | > [English Document](./readme-en.md) | [预览地址](http://niexiaotao.cn/)
4 |
5 | ## 功能简介
6 |
7 | Hexo-Theme-AirCloud 是一个简洁轻量的 hexo 博客主题,旨在将中心放在博文本身,因此:
8 |
9 | * 默认没有大范围的主题色块、图片铺排等,也不要求每片博文配图,一方面这并不是我们记录知识的重点,另外一方面可能程序员群体并没有足够的素材,容易造成主题纠纷。
10 | * 建议通过不冗余的内容进行传达,比如默认没有博文摘要,因为不少开发者写博客的时候没有写博文摘要,如果从博客前一部分截取往往不能表达完整思想。
11 |
12 | 另外,该主题主要实现的功能有:
13 |
14 | * 全局搜索功能,并对搜索内容进行高亮。
15 | * 博客评论功能:内置了针对 https://giscus.app/ 的支持
16 | * 文章详情页文章目录功能
17 | * 访问量统计(总体UV、PV,单页PV)
18 | * 语言切换能力,目前支持中文和英文
19 |
20 | ## 起步
21 |
22 | > 我在"常见问题"中总结了该项目之前被提及的一些问题,如果你在使用过程中遇到了问题,可以在"常见问题"中寻找答案,如果没能解决,欢迎提[issue](https://github.com/aircloud/hexo-theme-aircloud/issues),我会保证回复。
23 |
24 | 注意,如果你不按照"功能适配"部分的内容进行操作,可能会导致相关提及的功能无法正常使用。
25 |
26 | * [基本使用](https://github.com/aircloud/hexo-theme-aircloud#%E5%9F%BA%E6%9C%AC%E4%BD%BF%E7%94%A8)
27 | * [功能适配](https://github.com/aircloud/hexo-theme-aircloud#%E5%8A%9F%E8%83%BD%E9%80%82%E9%85%8D)
28 | * [搜索功能](https://github.com/aircloud/hexo-theme-aircloud#%E6%90%9C%E7%B4%A2%E5%8A%9F%E8%83%BD)
29 | * [`标签`页面 & `关于`页面](https://github.com/aircloud/hexo-theme-aircloud#%E6%A0%87%E7%AD%BE%E9%A1%B5%E9%9D%A2--%E5%85%B3%E4%BA%8E%E9%A1%B5%E9%9D%A2)
30 | * [评论功能](https://github.com/aircloud/hexo-theme-aircloud#%E8%AF%84%E8%AE%BA%E5%8A%9F%E8%83%BD)
31 | * [favicon 的配置](https://github.com/aircloud/hexo-theme-aircloud#%E6%A0%87%E7%AD%BE%E9%A1%B5%E9%9D%A2--%E5%85%B3%E4%BA%8E%E9%A1%B5%E9%9D%A2)
32 | * [底部自定义](https://github.com/aircloud/hexo-theme-aircloud#%E5%BA%95%E9%83%A8%E8%87%AA%E5%AE%9A%E4%B9%89)
33 | * [站长统计](https://github.com/aircloud/hexo-theme-aircloud#%E7%AB%99%E9%95%BF%E7%BB%9F%E8%AE%A1)
34 | * [高级自定义](https://github.com/aircloud/hexo-theme-aircloud#%E9%A6%96%E8%A1%8C%E7%BC%A9%E8%BF%9B)
35 | * [首行缩进](https://github.com/aircloud/hexo-theme-aircloud#%E9%A6%96%E8%A1%8C%E7%BC%A9%E8%BF%9B)
36 | * [常见问题](https://github.com/aircloud/hexo-theme-aircloud#%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98)
37 | * [如何取消赞赏功能?](https://github.com/aircloud/hexo-theme-aircloud#%E5%A6%82%E4%BD%95%E5%8F%96%E6%B6%88%E8%B5%9E%E8%B5%8F%E5%8A%9F%E8%83%BD)
38 | * [一些注意事项](https://github.com/aircloud/hexo-theme-aircloud#%E4%B8%80%E4%BA%9B%E6%B3%A8%E6%84%8F%E4%BA%8B%E9%A1%B9)
39 |
40 | ## 基本使用
41 |
42 | **建议:参考 [DEMO](https://github.com/aircloud/hexo-aircloud-blog) 进行配置,尤其是 _config.yml 部分,否则可能会造成功能缺失**
43 |
44 | 同其他博客主题使用方式相同,直接 clone 或者下载本项目,复制粘贴到 themes 文件夹下即可。
45 |
46 | 具体的 _config.yml 自定义配置,请参考[DEMO](https://github.com/aircloud/hexo-aircloud-blog)。
47 |
48 | ## 功能适配
49 |
50 | ### 搜索功能
51 |
52 | 为了使用搜索功能,首先需要安装下列插件:
53 |
54 | ```shell
55 | npm i hexo-generator-search --save
56 | ```
57 |
58 | 然后在 _config.yml 中进行配置,可以参考如下配置:
59 |
60 | ```
61 | search:
62 | path: search.json
63 | field: post
64 | ```
65 |
66 | ### `标签`页面 & `关于`页面
67 |
68 | 如果是新项目,默认是没有`标签`页面和`关于`页面的,需要在`source`文件夹下建立`tags`文件夹和`about`文件夹。
69 |
70 | >注:建议不要直接新建文件,而是采用 hexo 的 `hexo new page tags` 和 `hexo new page about` 的方式新建文件,这样可以被 hexo 索引到。
71 |
72 | 其中`tags`文件夹中新建`index.md`并写入:
73 |
74 | ```
75 | ---
76 | layout: "tags"
77 | title: "Tags"
78 | ---
79 | ```
80 |
81 | `about`文件夹下`index.md`为一篇支持 markdown 格式的文件,需要在开头添加:
82 |
83 |
84 | ```
85 | ---
86 | layout: "about"
87 | title: "About"
88 | date: 2016-04-21 04:48:33
89 | comments: true
90 | ---
91 | ```
92 |
93 | ### 评论功能
94 |
95 | 目前,本博客支持以下评论功能:
96 | - [giscus](https://giscus.app/) 推荐目前使用
97 | - [gitment](https://imsun.net/posts/gitment-introduction/)(gitment 经常会出现限频或者 404 等错误,其作者已关闭github认证转发服务)
98 | - [disqus](https://disqus.com)
99 | - [LiveRe](https://www.livere.com)
100 |
101 |
102 | #### giscus
103 |
104 | 只需要在 https://giscus.app 配置好,然后把对应的 script 标签复制,参考下面的配置在 _config.yml 里面配置即可。
105 |
106 | [DEMO](https://github.com/aircloud/hexo-aircloud-blog) 目前就是使用了这个评论功能,建议直接参考(但请勿直接复制下面的内容)。
107 |
108 | ```
109 | comment:
110 | type: giscus
111 | script: |
112 |
126 | ```
127 |
128 | #### gitment
129 |
130 | 建议先在[gitment](https://imsun.net/posts/gitment-introduction/)进行了解,然后参考[DEMO](https://github.com/aircloud/hexo-aircloud-blog)进行配置,其中一些相关项目如下:
131 |
132 | ```
133 | comment:
134 | type: gitment
135 | id: your-id-created-by-https://github.com/settings/applications/new
136 | secret: your-secret-created-by-https://github.com/settings/applications/new
137 | owner: aircloud
138 | repo: hexo-aircloud-blog
139 | ```
140 |
141 | #### disqus
142 |
143 | disqus 是一个使用比较广泛的评论系统,我们需要先在[官方网站](https://disqus.com)注册一个账号。
144 |
145 | 登录后,点击首页的 GET STARTED 按钮,之后选择 I want to install Disqus on my site 选项,填写相关内容,值得注意的是,`Website Name` 需要全网唯一,而且,一般情况,假设你的 `Website Name` 填写的是 example,那么下文 `script` 字段就可以写 `'https://example.disqus.com/embed.js'`。
146 |
147 | 当然,你也可以在下一步 -> 选择 basic 免费套餐 -> 选择最后的 "I don't see my platform listed, installed manually with universal code" -> 找到代码中的 `s.src = 'https://xxxx.disqus.com/embed.js';
148 | ` , 从而找到 script 地址。(无需插入 disqus 给出的脚本,只需按照这里的说明配置即可)
149 |
150 | 之后,你需要在 `_config.yml` 中配置如下内容:
151 |
152 | ```
153 | comment:
154 | type: disqus
155 | script: 'https://example.disqus.com/embed.js'
156 | ```
157 |
158 | 当然,你也可以配置`url` 和 `identifier`, 但是这个就属于高级内容了,对于我们一般的 hexo 博客网站来说必要性不大,如果你需要配置这些内容,可能你已经是一个高级玩家了,可以在 `themes/aircloud/layout/layout.ejs` 的相关代码的基础上进行改动。
159 |
160 | >注意: 目前,直接嵌入 disqus 的代码可能会加载失败,你也可以考虑将相关代码放在自己的博客下引入:在 public 文件夹下新建文件放入代码,跟随发布即可(放入 source 文件夹下可能会由于 hexo 的处理变得有错误),并同时更改 `_config.yml` 中的配置。
161 |
162 | #### LiveRe
163 |
164 | LiveRe 是一款来自韩国的支持中文且没有被墙LiveRe评论插件,重点是使用无需翻墙。
165 |
166 | 该插件分为city和premium两个版本,其中city版是适合所有人使用的免费版本,有更高需求的可以考虑premium版本。
167 |
168 | 注册之后,选择 安装 -> 选 city版本,按提示操作进入到管理页面,系统会给出一段嵌入代码,找到其中的data-id和data-uid。
169 |
170 | 之后,你需要在`_config.yml`中配置如下内容
171 |
172 | ```
173 | comment:
174 | type: livere
175 | livere_id: 'city'
176 | livere_uid:
177 | ```
178 |
179 | `livere_id` 和 `livere_uid`就是注册后获得的 data-id和data-uid。
180 |
181 | ### favicon 的配置
182 |
183 | 项目的 favicon 默认在你的博客根目录的 `/source/img` 下面,在 `/source/img` 下面添加 favicon.ico 即可,不要添加在主题文件夹内。
184 |
185 | ### 底部自定义
186 |
187 | 大家如果访问提供的预览链接,会发现我们的博客底部是提供一些内容的:一些社交平台的个人主页链接、友情链接、PV、UV 与 本模版链接。
188 |
189 | 一般情况下,大家无需改动底部的代码,直接在 `_config.yml` 中配置即可。
190 |
191 | 配置社交平台主页的样例代码:
192 |
193 | ```
194 | # SNS settings
195 | # 一些社交平台地址,支持以下几种:
196 | weibo_username: 3286578617
197 | zhihu_username: ai-er-lan-xue-da
198 | github_username: AirCloud
199 | twitter_username: iconie_alloy
200 | facebook_username: xiaotao.nie.5
201 | linkedin_username: 小涛-聂-80964aba
202 | ```
203 |
204 | 如果不想包括某些社交平台,直接注释或删除相关代码即可(目前暂不支持在不改动模版代码的前提下新增社交平台)。
205 |
206 | 配置友情链接的样例代码:
207 |
208 | ```
209 | # Friends
210 | # 友情链接
211 | friends: [
212 | {
213 | title: "10000H",
214 | href: "https://www.10000h.top"
215 | },{
216 | title: "Xiaotao's Page",
217 | href: "https://niexiaotao.com"
218 | },{
219 | title: "It helps SEO",
220 | href: "#"
221 | }
222 | ]
223 | ```
224 |
225 | 最底部的 PV、UV 和模版地址,无需配置。
226 |
227 | ### 站长统计
228 |
229 | 如果不想包括某些统计平台,直接注释或删除相关代码即可。
230 |
231 | ```yml
232 | analytics:
233 | google:
234 | # https://search.google.com
235 | site_verification:
236 | # https://analytics.google.com
237 | gtag_id:
238 | bing:
239 | # https://www.bing.com/webmasters
240 | site_verification:
241 | baidu:
242 | # https://ziyuan.baidu.com/site/index
243 | site_verification:
244 | # https://tongji.baidu.com
245 | id:
246 | # https://ziyuan.baidu.com/college/courseinfo?id=156&page=4#h2_article_title1
247 | disable_transformation: false
248 | cloudflare:
249 | # https://dash.cloudflare.com
250 | token:
251 | umami:
252 | # https://umami.is/
253 | host:
254 | id:
255 | ```
256 |
257 | ## 高级自定义
258 |
259 | ### 首行缩进
260 |
261 | 目前可以配置是否在博客页面带有首行缩进两个汉字的效果,默认是有首行缩进的效果的,但是也可以通过下面的配置代码进行关闭:
262 |
263 | ```
264 | post_style:
265 | indent: 0
266 | ```
267 |
268 | ### 头像圆角
269 |
270 | ```
271 | avatar_style:
272 | radius: true
273 | ```
274 |
275 | ## 常见问题
276 |
277 | ### 如何取消赞赏功能?
278 |
279 | 目前网站的赞赏功能做的比较鸡肋,缺乏一定的丰富度,如果你想取消这个功能,只需取消注释或者删除掉赞赏部分的相关配置即可:
280 |
281 | ```
282 | donate:
283 | img: img/donate.jpg
284 | content: 感谢鼓励
285 | ```
286 |
287 | 另外,如果你对赞赏部分有用户体验较好并且通用型比较好的设计,也可以提 issue,我会考虑实现。
288 |
289 |
290 | ## 一些注意事项
291 |
292 | 由于一些hexo的历史遗留问题等,为了避免给用户在使用过程中带来太多麻烦(比如需要改动主题代码甚至hexo源码),建议用户使用过程中遵循一些规范:
293 |
294 | * 文章不要有跳级目录,比如一个`###`三级目录下是一个`#####`五级目录,然后又有一个`###`三级目录,这样有可能导致 hexo 解析出错,从而影响文章目录部分的展示。
295 | * 文章的段落(p)都有默认的两个字符的首行缩进,虽然能识别 markdown 段落中的换行,但是无法对换行后的内容进行缩进,所以这里需要注意样式问题(如果需要多行缩进,建议使用多个段落或者做成列表)。
296 |
--------------------------------------------------------------------------------
/source/_less/_partial/footer.css:
--------------------------------------------------------------------------------
1 | .footer {
2 | width: 100%;
3 | align-items: center;
4 | display: flex;
5 | flex-direction: column;
6 | color: #979797;
7 | margin-bottom: 10px;
8 | }
9 | .footer p {
10 | font-family: "Montserrat", "Helvetica Neue", "Hiragino Sans GB", "LiHei Pro", Arial, sans-serif;
11 | font-size: 14px;
12 | margin-top: 5px;
13 | margin-bottom: 0;
14 | font-weight: 300;
15 | margin-right: 20px;
16 | word-break: break-all;
17 | margin-left: 20px;
18 | }
19 | .footer p a {
20 | font-weight: 300;
21 | font-family: "Montserrat", "Helvetica Neue", "Hiragino Sans GB", "LiHei Pro", Arial, sans-serif;
22 | cursor: pointer;
23 | color: #333333;
24 | }
25 | .footer p span a {
26 | font-weight: 300;
27 | font-family: "Montserrat", "Helvetica Neue", "Hiragino Sans GB", "LiHei Pro", Arial, sans-serif;
28 | cursor: pointer;
29 | color: #979797;
30 | text-decoration: none;
31 | }
32 | .footer p span a:hover {
33 | color: #333333;
34 | }
35 | .list-inline.text-center {
36 | color: #444444;
37 | font-size: 20px;
38 | padding-left: 0;
39 | margin-bottom: 0;
40 | }
41 | .list-inline.text-center li {
42 | display: inline-block;
43 | margin: 0 2px;
44 | background-color: #979797;
45 | height: 24px;
46 | width: 24px;
47 | border-radius: 12px;
48 | text-align: center;
49 | }
50 | .list-inline.text-center li a {
51 | text-decoration: none;
52 | }
53 | .list-inline.text-center li a span i {
54 | line-height: 20px;
55 | color: white;
56 | }
57 | .list-inline.text-center li:hover {
58 | background-color: #333333;
59 | }
60 | @media screen and (max-width: 680px) {
61 | .footer {
62 | box-sizing: border-box;
63 | padding-left: 20px;
64 | padding-right: 20px;
65 | }
66 | .footer p {
67 | word-break: break-all;
68 | font-family: "Montserrat", "Helvetica Neue", "Hiragino Sans GB", "LiHei Pro", Arial, sans-serif;
69 | font-size: 11px;
70 | margin-top: 5px;
71 | margin-bottom: 0;
72 | font-weight: 300;
73 | margin-right: 20px;
74 | margin-left: 20px;
75 | }
76 | .footer p span a {
77 | font-size: 11px;
78 | font-weight: 300;
79 | font-family: "Montserrat", "Helvetica Neue", "Hiragino Sans GB", "LiHei Pro", Arial, sans-serif;
80 | cursor: pointer;
81 | color: #979797;
82 | text-decoration: none;
83 | }
84 | .footer p span a:hover {
85 | color: #333333;
86 | }
87 | }
88 | /*# sourceMappingURL=footer.css.map */
--------------------------------------------------------------------------------
/source/_less/_partial/footer.css.map:
--------------------------------------------------------------------------------
1 | {"version":3,"sources":["footer.less"],"names":[],"mappings":"AACA;EACE,WAAA;EACA,mBAAA;EACA,aAAA;EACA,sBAAA;EACA,cAAA;EACA,mBAAA;;AANF,OAOE;EACE,aAAa,cAAc,kBAAkB,oBAAoB,8BAAjE;EACA,eAAA;EACA,eAAA;EACA,gBAAA;EACA,gBAAA;EACA,kBAAA;EACA,qBAAA;EACA,iBAAA;;AAfJ,OAOE,EASE;EACE,gBAAA;EACA,aAAa,cAAc,kBAAkB,oBAAoB,8BAAjE;EACA,eAAA;EACA,cAAA;;AApBN,OAOE,EAeE,KACE;EACE,gBAAA;EACA,aAAa,cAAc,kBAAkB,oBAAoB,8BAAjE;EACA,eAAA;EACA,cAAA;EACA,qBAAA;;AA5BR,OAOE,EAeE,KAQE,EAAC;EACC,cAAA;;AAMR,YAAY;EACV,cAAA;EACA,eAAA;EACA,eAAA;EACA,gBAAA;;AAJF,YAAY,YAKV;EACE,qBAAA;EACA,aAAA;EACA,yBAAA;EACA,YAAA;EACA,WAAA;EACA,mBAAA;EACA,kBAAA;;AAZJ,YAAY,YAKV,GAQE;EACE,qBAAA;;AAdN,YAAY,YAKV,GAQE,EAEE,KACE;EACE,iBAAA;EACA,YAAA;;AAlBV,YAAY,YAuBV,GAAE;EACA,yBAAA;;AAIJ,mBAAoC;EAClC;IACE,sBAAA;IACA,kBAAA;IACA,mBAAA;;EAHF,OAIE;IACE,qBAAA;IACA,aAAa,cAAc,kBAAkB,oBAAoB,8BAAjE;IACA,eAAA;IACA,eAAA;IACA,gBAAA;IACA,gBAAA;IACA,kBAAA;IACA,iBAAA;;EAZJ,OAIE,EASE,KACE;IACE,eAAA;IACA,gBAAA;IACA,aAAa,cAAc,kBAAkB,oBAAoB,8BAAjE;IACA,eAAA;IACA,cAAA;IACA,qBAAA;;EApBR,OAIE,EASE,KASE,EAAC;IACC,cAAA","file":"footer.css"}
--------------------------------------------------------------------------------
/source/_less/_partial/footer.less:
--------------------------------------------------------------------------------
1 | // footer 部分
2 | .footer{
3 | width: 100%;
4 | align-items: center;
5 | display: flex;
6 | flex-direction: column;
7 | color: #979797;
8 | margin-bottom: 10px;
9 | p{
10 | font-family: "Montserrat", "Helvetica Neue", "Hiragino Sans GB", "LiHei Pro", Arial, sans-serif;
11 | font-size: 14px;
12 | margin-top: 5px;
13 | margin-bottom: 0;
14 | font-weight: 300;
15 | margin-right: 20px;
16 | word-break: break-all;
17 | margin-left: 20px;
18 | a{
19 | font-weight: 300;
20 | font-family: "Montserrat", "Helvetica Neue", "Hiragino Sans GB", "LiHei Pro", Arial, sans-serif;
21 | cursor: pointer;
22 | color: #333333;
23 | }
24 | span{
25 | a{
26 | font-weight: 300;
27 | font-family: "Montserrat", "Helvetica Neue", "Hiragino Sans GB", "LiHei Pro", Arial, sans-serif;
28 | cursor: pointer;
29 | color: #979797;
30 | text-decoration: none;
31 | }
32 | a:hover{
33 | color: #333333;
34 | }
35 | }
36 | }
37 | }
38 |
39 | .list-inline.text-center{
40 | color: #444444;
41 | font-size: 20px;
42 | padding-left: 0;
43 | margin-bottom: 0;
44 | li{
45 | display: inline-block;
46 | margin: 0 2px;
47 | background-color: #979797;
48 | height: 24px;
49 | width: 24px;
50 | border-radius: 12px;
51 | text-align: center;
52 | a{
53 | text-decoration: none;
54 | span{
55 | i{
56 | line-height: 20px;
57 | color: white;
58 | }
59 | }
60 | }
61 | }
62 | li:hover{
63 | background-color: #333333;
64 | }
65 | }
66 |
67 | @media screen and (max-width: 680px){
68 | .footer{
69 | box-sizing: border-box;
70 | padding-left: 20px;
71 | padding-right: 20px;
72 | p{
73 | word-break: break-all;
74 | font-family: "Montserrat", "Helvetica Neue", "Hiragino Sans GB", "LiHei Pro", Arial, sans-serif;
75 | font-size: 11px;
76 | margin-top: 5px;
77 | margin-bottom: 0;
78 | font-weight: 300;
79 | margin-right: 20px;
80 | margin-left: 20px;
81 | span{
82 | a{
83 | font-size: 11px;
84 | font-weight: 300;
85 | font-family: "Montserrat", "Helvetica Neue", "Hiragino Sans GB", "LiHei Pro", Arial, sans-serif;
86 | cursor: pointer;
87 | color: #979797;
88 | text-decoration: none;
89 | }
90 | a:hover{
91 | color: #333333;
92 | }
93 | }
94 | }
95 | }
96 | }
97 |
--------------------------------------------------------------------------------
/source/_less/about.less:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircloud/hexo-theme-aircloud/7bd5ae19a85895bbf07a55cefdecd93ad57a1c93/source/_less/about.less
--------------------------------------------------------------------------------
/source/_less/archive.less:
--------------------------------------------------------------------------------
1 | @import "variables";
2 |
3 | .archives-container{
4 | .one-tag-list{
5 | .listing-seperator{
6 | font-size: 18px;
7 | color: #999999;
8 | }
9 | ul{
10 | list-style: none;
11 | li{
12 | display: flex;
13 | align-items: center;
14 | flex-direction: row;
15 | margin-bottom: 10px;
16 | span{
17 | color: #999999;
18 | margin-right: 15px;
19 | min-width: 45px;
20 | }
21 | i{
22 |
23 | }
24 | a{
25 | text-decoration: none;
26 | line-height: 20px;
27 | color: #4a4a4a;
28 | span{
29 | color: #4a4a4a;
30 | transition: color @transitionTime;
31 | }
32 | span:hover{
33 | color: @link-color;
34 | }
35 | }
36 | }
37 | }
38 | }
39 | }
40 |
41 | @media screen and (max-width: 680px) {
42 | .archives-container{
43 | .one-tag-list{
44 | .listing-seperator{
45 | font-size: 18px;
46 | color: #999999;
47 | }
48 | ul{
49 | list-style: none;
50 | padding-left: 1em;
51 | li{
52 | display: flex;
53 | align-items: center;
54 | flex-direction: row;
55 | margin-bottom: 10px;
56 | span{
57 | color: #999999;
58 | margin-right: 15px;
59 | min-width: 45px;
60 | font-size: 14px;
61 | }
62 | i{
63 | font-size: 12px;
64 | }
65 | a{
66 | font-size: 14px;
67 | font-weight: 300;
68 | text-decoration: none;
69 | line-height: 20px;
70 | color: #4a4a4a;
71 | span{
72 | color: #4a4a4a;
73 | }
74 |
75 | }
76 | }
77 | }
78 | }
79 | }
80 |
81 | }
--------------------------------------------------------------------------------
/source/_less/common.less:
--------------------------------------------------------------------------------
1 | @import "variables";
2 |
3 | *{
4 | font-family: "italic",Helvetica,Arial,"Heiti SC","Microsoft YaHei";
5 | //font-family: "Montserrat", "Helvetica Neue", "Hiragino Sans GB", "LiHei Pro", Arial, sans-serif;
6 | }
7 |
8 | body,html{
9 | margin: 0;
10 | padding: 0;
11 | }
12 |
13 | body {
14 | margin-left: calc(100vw - 100%) !important;
15 | -webkit-text-size-adjust: none;
16 | // avoid the effect of the scrollbar's width
17 | }
18 |
19 | .red{
20 | color: red
21 | }
22 | .hide{
23 | display: none !important;
24 | }
25 |
26 | .show-block{
27 | display: block !important;
28 | }
29 |
30 | .show-block{
31 | animation: showBlock @transitionTime forwards;
32 | display: block !important;
33 | }
34 |
35 | @keyframes showBlock {
36 | from{
37 | opacity: 0;
38 | transform: translateY(-100%);
39 | }
40 | to {
41 | opacity: 1;
42 | transform: translateY(0);
43 | }
44 | }
45 |
46 | .hide-block{
47 | display: block !important;
48 | animation: hideBlock @transitionTime forwards;
49 | opacity: 1;
50 | transform: translateY(0);
51 | }
52 |
53 | @keyframes hideBlock {
54 | from{
55 | opacity: 1;
56 | transform: translateY(0);
57 | }
58 | to {
59 | opacity: 0;
60 | transform: translateY(-100%);
61 | display: none;
62 | }
63 | }
64 |
65 | .show-flex-fade{
66 | animation: showFade @transitionTime forwards;
67 | display: flex !important;
68 | }
69 |
70 | .hide-flex-fade{
71 | animation: hideFade @transitionTime forwards;
72 | }
73 |
74 | @keyframes showFade {
75 | from{
76 | opacity: 0;
77 | }
78 | to{
79 | opacity: 1;
80 | }
81 | }
82 |
83 | @keyframes hideFade {
84 | from{
85 | opacity: 1;
86 | }
87 | to{
88 | opacity: 0;
89 | display: none !important;
90 | }
91 | }
92 |
93 | .no-indent{
94 | text-indent: 0 !important;
95 | p,h1,h2,h3,h4,h5,h6{
96 | text-indent: 0 !important;
97 | }
98 | ul, ol {
99 | text-indent: 2em !important;
100 | ul, ol {
101 | text-indent: 4em !important;
102 | }
103 | }
104 | ul,ol{
105 | padding-left: 0 !important;
106 | }
107 | }
--------------------------------------------------------------------------------
/source/_less/diff.less:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircloud/hexo-theme-aircloud/7bd5ae19a85895bbf07a55cefdecd93ad57a1c93/source/_less/diff.less
--------------------------------------------------------------------------------
/source/_less/donate.less:
--------------------------------------------------------------------------------
1 | .donate-container{
2 | width: 100%;
3 | display: flex;
4 | align-items: center;
5 | flex-direction: column;
6 | .donate-button{
7 | margin-bottom: 10px;
8 | text-align: center;
9 | display: flex;
10 | align-items: center;
11 | flex-direction: column;
12 | button {
13 | border: none;
14 | cursor: pointer;
15 | box-shadow: none;
16 | outline: none;
17 | border-radius: 6px;
18 | width: 60px;
19 | height: 24px;
20 | text-align: center;
21 | color: white;
22 | background-color: orange;
23 | }
24 | button:active{
25 | background-color: darkorange;
26 | }
27 | }
28 | .donate-img-container{
29 | display: flex;
30 | align-items: center;
31 | flex-direction: column;
32 | img{
33 | max-width: 400px;
34 | max-height: 360px;
35 | }
36 | p{
37 | text-align: center;
38 | font-size: 14px;
39 | color: #999999;
40 | }
41 | }
42 | }
43 |
44 | @media screen and (max-width: 680px) {
45 | .donate-container{
46 | .donate-img-container{
47 | img{
48 | max-width: 75vw;
49 | max-height: 240px;
50 | }
51 | p{
52 | text-align: center;
53 | font-size: 14px;
54 | color: #999999;
55 | }
56 | }
57 | }
58 | }
--------------------------------------------------------------------------------
/source/_less/gitment.less:
--------------------------------------------------------------------------------
1 | .gitment-comment{
2 | p{
3 | text-indent: 0;
4 | }
5 | }
--------------------------------------------------------------------------------
/source/_less/hightlight.less:
--------------------------------------------------------------------------------
1 | pre,
2 | .highlight {
3 | overflow: auto;
4 | margin: 20px 0;
5 | padding: 0;
6 | font-size: 13px;
7 | color: #4d4d4c;
8 | background: #f7f7f7;
9 | line-height: 1.6;
10 | }
11 | pre,
12 | pre span,
13 | code {
14 | font-family: consolas, Menlo, "PingFang SC", "Microsoft YaHei", monospace;
15 | }
16 | code {
17 | padding: 2px 4px;
18 | word-wrap: break-word;
19 | color: #555;
20 | background: #eee;
21 | border-radius: 3px;
22 | font-size: 13px;
23 | }
24 | pre {
25 | padding: 10px;
26 | }
27 | pre code {
28 | padding: 0;
29 | color: #4d4d4c;
30 | background: none;
31 | text-shadow: none;
32 | }
33 | .highlight {
34 | border-radius: 1px;
35 | }
36 | .highlight pre {
37 | border: none;
38 | margin: 0;
39 | padding: 10px 0;
40 | }
41 | .highlight table {
42 | margin: 0;
43 | width: auto;
44 | border: none;
45 | }
46 | .highlight td {
47 | border: none;
48 | padding: 0;
49 | }
50 | .highlight figcaption {
51 | font-size: 1em;
52 | color: #4d4d4c;
53 | line-height: 1em;
54 | margin-bottom: 1em;
55 | }
56 | .highlight figcaption a {
57 | float: right;
58 | color: #4d4d4c;
59 | }
60 | .highlight figcaption a:hover {
61 | border-bottom-color: #4d4d4c;
62 | }
63 | .highlight .gutter pre {
64 | padding-left: 10px;
65 | padding-right: 10px;
66 | color: #869194;
67 | text-align: right;
68 | background-color: #eff2f3;
69 | }
70 | .highlight .code pre {
71 | width: 100%;
72 | padding-left: 10px;
73 | padding-right: 10px;
74 | background-color: #f7f7f7;
75 | }
76 | .highlight .line {
77 | height: 20px;
78 | }
79 | .gutter {
80 | -webkit-user-select: none;
81 | -moz-user-select: none;
82 | -ms-user-select: none;
83 | user-select: none;
84 | }
85 | .gist table {
86 | width: auto;
87 | }
88 | .gist table td {
89 | border: none;
90 | }
91 | pre .deletion {
92 | background: #fdd;
93 | }
94 | pre .addition {
95 | background: #dfd;
96 | }
97 | pre .meta {
98 | color: #8959a8;
99 | }
100 | pre .comment {
101 | color: #8e908c;
102 | }
103 | pre .variable,
104 | pre .attribute,
105 | pre .tag,
106 | pre .regexp,
107 | pre .ruby .constant,
108 | pre .xml .tag .title,
109 | pre .xml .pi,
110 | pre .xml .doctype,
111 | pre .html .doctype,
112 | pre .css .id,
113 | pre .css .class,
114 | pre .css .pseudo {
115 | color: #c82829;
116 | }
117 | pre .number,
118 | pre .preprocessor,
119 | pre .built_in,
120 | pre .literal,
121 | pre .params,
122 | pre .constant,
123 | pre .command {
124 | color: #f5871f;
125 | }
126 | pre .ruby .class .title,
127 | pre .css .rules .attribute,
128 | pre .string,
129 | pre .value,
130 | pre .inheritance,
131 | pre .header,
132 | pre .ruby .symbol,
133 | pre .xml .cdata,
134 | pre .special,
135 | pre .number,
136 | pre .formula {
137 | color: #718c00;
138 | }
139 | pre .title,
140 | pre .css .hexcolor {
141 | color: #3e999f;
142 | }
143 | pre .function,
144 | pre .python .decorator,
145 | pre .python .title,
146 | pre .ruby .function .title,
147 | pre .ruby .title .keyword,
148 | pre .perl .sub,
149 | pre .javascript .title,
150 | pre .coffeescript .title {
151 | color: #4271ae;
152 | }
153 | pre .keyword,
154 | pre .javascript .function {
155 | color: #8959a8;
156 | }
157 |
--------------------------------------------------------------------------------
/source/_less/index.less:
--------------------------------------------------------------------------------
1 |
2 | @import "variables";
3 |
4 | // 主页的文章展示部分
5 | .post-preview{
6 | width: 100%;
7 | height: max-content;
8 | margin-bottom: 10px;
9 | box-sizing: border-box;
10 | display: flex;
11 | flex-direction: row;
12 | .post-time{
13 | font-size: 17px;
14 | color: #999999;
15 | width: 125px;
16 | font-weight: 300;
17 | line-height: 24px;
18 | }
19 | .post-info{
20 | flex:1;
21 | a {
22 | cursor: pointer;
23 | text-decoration: none;
24 | h3 {
25 | line-height: 24px;
26 | cursor: pointer;
27 | margin-top: 0;
28 | margin-bottom: 5px;
29 | color: #101010;
30 | font-size: 18px;
31 | font-weight: 300;
32 | transition: color @transitionTime;
33 | }
34 | h3:hover{
35 | color: @link-color;
36 | }
37 | }
38 | p{
39 | margin-top: 0;
40 | span,a{
41 | font-weight: 300;
42 | color: #999999;
43 | font-size: 14px;
44 | text-decoration: none;
45 | }
46 | }
47 | }
48 | }
49 |
50 | .post-preview-container{
51 | min-height: 420px;
52 | }
53 |
54 | // 分页部分
55 | .pager{
56 | width: 100%;
57 | height: 40px;
58 | padding-left: 0;
59 | display: flex;
60 | .previous{
61 | flex:1;
62 | display: flex;
63 | flex-direction: row;
64 | cursor: pointer;
65 | }
66 | .next{
67 | flex: 1;
68 | display: flex;
69 | flex-direction: row-reverse;
70 | cursor: pointer;
71 | }
72 | .previous,.next{
73 | a{
74 | box-sizing: border-box;
75 | cursor: pointer;
76 | transition: color @transitionTime, background-color @transitionTime;
77 | border: 1px solid #999999;
78 | line-height: 40px;
79 | width: 150px;
80 | height: 40px;
81 | font-size: 18px;
82 | color: #999999;
83 | text-align: center;
84 | text-decoration: none;
85 | }
86 | a:hover{
87 | color: white;
88 | cursor: pointer;
89 | background-color: #666666;
90 | }
91 | }
92 | }
93 |
94 | @media screen and (max-width: 680px) {
95 | .post-preview-container{
96 | min-height: 0 !important;
97 | }
98 | .post-preview{
99 | width: 100%;
100 | height: max-content;
101 | margin-bottom: 10px;
102 | box-sizing: border-box;
103 | display: flex;
104 | flex-direction: column;
105 | padding-left: 10px;
106 | padding-right: 10px;
107 | border-bottom: 1px solid #EEEEEE;
108 | .post-time{
109 | font-size: 11px;
110 | color: #999999;
111 | width: 125px;
112 | font-weight: 300;
113 | line-height: 20px;
114 | font-style: oblique;
115 | }
116 | .post-info{
117 | flex:1;
118 | a {
119 | cursor: pointer;
120 | text-decoration: none;
121 | h3 {
122 | line-height: 20px;
123 | cursor: pointer;
124 | margin-top: 0;
125 | margin-bottom: 5px;
126 | color: #101010;
127 | font-size: 15px;
128 | font-weight: 300;
129 | }
130 | }
131 | p{
132 | margin-top: 0;
133 | span,a{
134 | font-weight: 300;
135 | color: #999999;
136 | font-size: 12px;
137 | text-decoration: none;
138 | }
139 | }
140 | }
141 | }
142 |
143 | .pager{
144 | width: 100%;
145 | height: 40px;
146 | padding-left: 10px;
147 | padding-right: 10px;
148 | display: flex;
149 | .previous{
150 | flex:1;
151 | display: flex;
152 | flex-direction: row;
153 | cursor: pointer;
154 | }
155 | .next{
156 | flex: 1;
157 | display: flex;
158 | flex-direction: row-reverse;
159 | cursor: pointer;
160 | }
161 | .previous,.next{
162 | a{
163 | box-sizing: border-box;
164 | cursor: pointer;
165 | transition: color @transitionTime, background-color @transitionTime;
166 | border: 1px solid #999999;
167 | line-height: 30px;
168 | width: 120px;
169 | height: 30px;
170 | font-size: 14px;
171 | color: #999999;
172 | text-align: center;
173 | text-decoration: none;
174 | }
175 | a:hover{
176 | color: white;
177 | cursor: pointer;
178 | background-color: #666666;
179 | }
180 | }
181 | }
182 | }
--------------------------------------------------------------------------------
/source/_less/layout.less:
--------------------------------------------------------------------------------
1 |
2 | @import "variables";
3 | @import "common";
4 |
5 | .index-about{
6 | i {
7 | font-size: 15px;
8 | font-family: "italic" !important;
9 | font-weight: 300;
10 | color: #444444;
11 | }
12 | text-align: center;
13 | width: 100%;
14 | margin-top: 45px;
15 | margin-bottom: 40px;
16 | opacity: 0;
17 | animation: showBlock @transitionTime * 4 forwards;
18 | }
19 |
20 | .index-about-mobile{
21 | display: none;
22 | }
23 |
24 | .index-container{
25 | justify-content: center;
26 | height: max-content;
27 | position: relative;
28 | width: 1024px;
29 | margin: auto;
30 | display: flex;
31 | flex-direction: row;
32 | background-color: white;
33 | //min-height: calc(100vh - 190px);
34 | .index-left{
35 | width: 240px;
36 | }
37 | .index-middle{
38 | max-width: 784px;
39 | flex: 1;
40 | }
41 | }
42 |
43 | @media screen and (max-width: 1180px){
44 | .index-container {
45 | left: 0;
46 | width: 100%;
47 | box-sizing: border-box;
48 | margin: auto;
49 | padding: 0 40px 0 10px;
50 | display: flex;
51 | flex-direction: row;
52 | //min-height: calc(100vh - 190px);
53 | .index-left {
54 | width: 180px;
55 | }
56 | .index-middle {
57 | flex: 1;
58 | max-width: calc(100% - 180px);
59 | }
60 | }
61 | }
62 |
63 | @media screen and (max-width: 680px){
64 | .index-container {
65 | width: 100%;
66 | box-sizing: border-box;
67 | margin: auto;
68 | display: flex;
69 | flex-direction: column;
70 | padding: 0 25px 0 25px;
71 | min-height: 0;
72 | .index-left {
73 | width: 100%;
74 | }
75 | .index-middle {
76 | max-width: 100%;
77 | flex: 1;
78 | }
79 | }
80 |
81 | .index-about{
82 | display: none;
83 | }
84 |
85 | .index-about-mobile{
86 | display: block;
87 | i {
88 | font-size: 15px;
89 | font-family: "italic" !important;
90 | font-weight: 300;
91 | color: #444444;
92 | }
93 | text-align: center;
94 | width: 100%;
95 | margin-top: 0;
96 | margin-bottom:40px;
97 | }
98 | }
--------------------------------------------------------------------------------
/source/_less/nav.less:
--------------------------------------------------------------------------------
1 | //主页自我介绍部分
2 | .nav{
3 | position: relative;
4 | //top: 50px;
5 | padding-top: 50px;
6 | color:#333333;
7 | width: 100%;
8 | display: flex;
9 | flex-direction: column;
10 | align-items: center;
11 | .avatar-name{
12 | display: flex;
13 | flex-direction: column;
14 | align-items: center;
15 | border-bottom: 1px solid #979797;
16 | .avatar{
17 | width:120px;
18 | height:120px;
19 | padding: 10px;
20 | //border: 1px solid #DDDDDD;
21 | box-sizing: border-box;
22 | img{
23 | width: 100px;
24 | height: 100px;
25 | }
26 | }
27 | .radius{
28 | img{
29 | border-radius: 50%
30 | }
31 | }
32 | .name{
33 | margin-top: 10px;
34 | margin-bottom: 20px;
35 | i {
36 | font-size: 16px;
37 | font-family: "italic" !important;
38 | font-weight: 300;
39 | color: #666666;
40 | }
41 | }
42 | }
43 | .contents{
44 | ul{
45 | width: 100%;
46 | padding-left: 0;
47 | margin-top: 25px;
48 | margin-bottom: 25px;
49 | li,li a{
50 | text-decoration: none;
51 | font-size: 15px;
52 | i{
53 | cursor: pointer;
54 | color: #999999;
55 | margin-right: 5px;
56 | }
57 | span{
58 | cursor: pointer;
59 | color: #999999;
60 | }
61 | margin: 20px auto;
62 | padding-left: 0;
63 | list-style: none;
64 | }
65 | li.active{
66 | span,i{
67 | color: #4a4a4a;
68 | }
69 | }
70 | li:hover{
71 | span,i{
72 | color: #4a4a4a;
73 | }
74 | }
75 | }
76 | }
77 | }
78 |
79 | .site-nav-toggle{
80 | display: none;
81 | button{
82 | outline: none;
83 | margin-top: 2px;
84 | padding: 9px 10px;
85 | background: transparent;
86 | border: none;
87 | //border: 1px solid #999999;
88 | user-select: none;
89 | .btn-bar {
90 | display: block;
91 | width: 22px;
92 | height: 2px;
93 | background: #666666;
94 | border-radius: 1px;
95 | &+.btn-bar { margin-top: 4px; }
96 | }
97 | }
98 | }
99 |
100 | .search-field{
101 | //display: flex;
102 | overflow: hidden;
103 | display: none;
104 | position: fixed;
105 | top:0;
106 | bottom:0;
107 | z-index: 3;
108 | left:0;
109 | right:0;
110 | width: 100vw;
111 | height: 100vh;
112 | background-color: rgba(0,0,0,0.3);
113 | align-items: center;
114 | flex-direction: column;
115 | .search-bg {
116 | position: absolute;
117 | z-index: 4;
118 | top: 0;
119 | bottom: 0;
120 | right: 0;
121 | left: 0;
122 | }
123 | .search-container{
124 | position: relative;
125 | z-index: 5;
126 | width: 40vw;
127 | min-width: 500px;
128 | height: 70vh;
129 | margin-top: 15vh;
130 | background-color: white;
131 | .search-input{
132 | width: 100%;
133 | display: flex;
134 | align-items: center;
135 | padding-top: 10px;
136 |
137 | span{
138 | width: 60px;
139 | color: #999999;
140 | line-height: 30px;
141 | text-align: center;
142 | }
143 | span:nth-child(1) {
144 | width: 40px;
145 | cursor: pointer;
146 | }
147 | #begin-search{
148 | cursor: pointer;
149 | &:hover{
150 | color: #4a4a4a;
151 | }
152 | }
153 | input{
154 | flex: 1;
155 | background-color: #f3f4f7;
156 | border: 1px solid #cccccc;
157 | height:30px;
158 | font-size: 18px;
159 | color: #4a4a4a;
160 | box-sizing: border-box;
161 | font-weight: 300;
162 | padding-left: 5px;
163 | padding-right: 5px;
164 | }
165 | }
166 | }
167 | .search-result-container{
168 | &::-webkit-scrollbar {
169 | width: 4px;
170 | }
171 |
172 | .no-search-result{
173 | width: 100%;
174 | height: 200px;
175 | text-align: center;
176 | padding-top: 100px;
177 | color: #999999;
178 | font-size: 16px;
179 | }
180 |
181 | &::-webkit-scrollbar-thumb {
182 | background-color: #c3c4c7;
183 | -webkit-border-radius: 2px;
184 | border-radius: 2px;
185 | }
186 | height: calc(70vh - 50px);
187 | overflow-y: scroll;
188 | overflow-x: hidden;
189 | ul{
190 | margin-top: 10px;
191 | width: calc(100% - 25px);
192 | padding-left: 10px;
193 | li{
194 | margin-bottom: 15px;
195 | list-style: none;
196 | a{
197 | text-decoration: none;
198 | cursor: pointer;
199 | font-size: 16px;
200 | color: #4a4a4a;
201 | font-weight: 300;
202 | padding-bottom: 5px;
203 | }
204 | ul{
205 | padding-left: 10px;
206 | li{
207 | list-style: none;
208 | color: #666666;
209 | font-weight: 300;
210 | font-size: 13px;
211 | }
212 | }
213 | }
214 | }
215 | }
216 | }
217 |
218 | @media screen and (max-width: 680px) {
219 |
220 | .search-field {
221 | .search-container {
222 | min-width: 0;
223 | width: 100%;
224 | height: 100%;
225 | margin: 0;
226 | }
227 | .search-result-container{
228 | height: calc(100vh - 50px);
229 | }
230 | }
231 |
232 | .nav {
233 | margin-top: 50px;
234 | position: relative;
235 | top: 0;
236 | width: 100%;
237 | .avatar-name{
238 | border-bottom: none;
239 | }
240 | .contents {
241 | display: none;
242 | position: fixed;
243 | left: 0;
244 | top: 40px;
245 | background-color: white;
246 | width: 100%;
247 | border-bottom: 1px solid #CCCCCC;
248 | border-top: 1px solid #CCCCCC;
249 | //box-shadow: 2px 2px 2px #999999;
250 | ul {
251 | padding-left: 30px;
252 | }
253 | }
254 | }
255 |
256 | .site-nav-toggle {
257 | height: 40px;
258 | box-sizing: border-box;
259 | display: block;
260 | position: fixed;
261 | width: 100%;
262 | padding-top: 2px;
263 | padding-left: 20px;
264 | z-index: 2;
265 | background-color: white;
266 | }
267 | }
268 |
269 |
--------------------------------------------------------------------------------
/source/_less/page.less:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircloud/hexo-theme-aircloud/7bd5ae19a85895bbf07a55cefdecd93ad57a1c93/source/_less/page.less
--------------------------------------------------------------------------------
/source/_less/post.less:
--------------------------------------------------------------------------------
1 | @import "variables";
2 |
3 | .post-container{
4 | width: 100%;
5 | height: max-content;
6 | display: flex;
7 | flex-direction: column;
8 | .post-title{
9 | width: 100%;
10 | text-align: center;
11 | line-height: 24px;
12 | margin-top: 0;
13 | margin-bottom: 5px;
14 | color: #101010;
15 | font-size: 20px;
16 | font-weight: 300;
17 | }
18 | .post-meta{
19 | text-align: center;
20 | margin-top: 0;
21 | span,a{
22 | font-weight: 300;
23 | color: #999999;
24 | font-size: 13px;
25 | text-decoration: none;
26 | }
27 | .attr{
28 | margin-right: 5px;
29 | margin-left: 5px;
30 | }
31 | //.attr:not(:last-child)::after{
32 | // content: "|"
33 | //}
34 | margin-bottom: 20px;
35 | }
36 | }
37 |
38 | .article-content {
39 | color: @main-font-color;
40 | font-size: 16px;
41 | line-height: 170%;
42 | letter-spacing: 1px;
43 | word-break: break-all;
44 | &:hover {
45 | background-color: rgba(51,112,255,0.1);
46 | }
47 | }
48 |
49 | .post-content{
50 | line-height: 20px;
51 | font-size: 15px;
52 | text-indent: 2em;
53 | letter-spacing: 1px;
54 | color: @main-font-color;
55 | font-weight: 300;
56 | >table, >table tr th, >table tr td { border:1px solid #e7e8e9; }
57 | table { border-collapse: collapse;}
58 | blockquote{
59 | border-top: 1px solid #cccccc;
60 | border-bottom: 1px solid #cccccc;
61 | margin-left: 2em;
62 | margin-right: 2em;
63 | padding-left: 0;
64 | padding-right: 0;
65 | p {
66 | margin-top: 10px;
67 | margin-bottom: 10px;
68 | color: #666666;
69 | }
70 | }
71 | a {
72 | text-decoration: none;
73 | color: @link-color;
74 | }
75 | p {
76 | color: @main-font-color;
77 | text-indent: 2em;
78 | .article-content();
79 | img {
80 | width: 80%
81 | }
82 | }
83 | ul,ol{
84 | padding-left: 2em;
85 | li {
86 | list-style-position: inside;
87 | margin-bottom: 5px;
88 | margin-top: 5px;
89 | .article-content();
90 | }
91 | }
92 | ul {
93 | li{
94 | list-style: none;
95 | &:before{
96 | content: '• '
97 | }
98 | }
99 | }
100 |
101 | pre{
102 | text-indent: 0;
103 | padding: 10px;
104 | //overflow: scroll;
105 | //background-color: @back-dark-grey;
106 | code{
107 | line-height: 175%;
108 | }
109 | }
110 |
111 | h1{
112 | color:@main-font-color;
113 | margin-top: 20px;
114 | margin-bottom: 20px;
115 | line-height: 120%;
116 | word-break: break-all;
117 | font-size: 22px;
118 | }
119 |
120 | h2{
121 | color:@main-font-color;
122 | margin-top: 20px;
123 | margin-bottom: 20px;
124 | line-height: 120%;
125 | word-break: break-all;
126 | font-size: 21px;
127 | }
128 |
129 | h3{
130 | color:@main-font-color;
131 | margin-top: 20px;
132 | margin-bottom: 20px;
133 | line-height: 120%;
134 | word-break: break-all;
135 | font-size: 20px;
136 | }
137 |
138 | h4{
139 | color:@main-font-color;
140 | margin-top: 20px;
141 | margin-bottom:20px;
142 | line-height: 120%;
143 | word-break: break-all;
144 | font-size: 19px;
145 | }
146 |
147 | h5{
148 | color:@main-font-color;
149 | margin-top: 20px;
150 | margin-bottom: 20px;
151 | line-height: 120%;
152 | word-break: break-all;
153 | font-size: 18px;
154 | }
155 |
156 | h6{
157 | color:@main-font-color;
158 | margin-top: 20px;
159 | margin-bottom: 20px;
160 | line-height: 120%;
161 | word-break: break-all;
162 | font-size: 17px;
163 | }
164 |
165 | figcaption{
166 | text-align: center;
167 | }
168 | }
169 |
170 | #comment-container{
171 | text-indent:0
172 | }
173 | #lv-container {
174 | text-indent: 0;
175 | }
176 |
177 | .post-content li p {
178 | display: inline;
179 | }
180 |
--------------------------------------------------------------------------------
/source/_less/tag.less:
--------------------------------------------------------------------------------
1 |
2 | @import "variables";
3 |
4 | .tags{
5 | line-height: 30px;
6 | a{
7 | text-decoration: none;
8 | color: #777777;
9 | margin-right: 8px;
10 | }
11 | a:hover{
12 | color: #4a4a4a;
13 | }
14 | margin-bottom: 25px;
15 | }
16 |
17 | .one-tag-list{
18 | margin-bottom: 25px;
19 | .fa-tag{
20 | margin-bottom: 15px;
21 | display: block;
22 | color: #999999;
23 | }
24 | .post-preview{
25 | padding-left: 2em;
26 | a{
27 | cursor: pointer;
28 | text-decoration: none;
29 | .post-title{
30 | margin-bottom: 5px;
31 | line-height: 20px;
32 | cursor: pointer;
33 | margin-top: 0;
34 | color: #101010;
35 | font-size: 18px;
36 | font-weight: 300;
37 | transition: color @transitionTime;
38 | }
39 | .post-title:hover{
40 | color: @link-color;
41 | }
42 | }
43 | }
44 | }
45 |
46 |
47 | @media screen and (max-width: 680px) {
48 | .one-tag-list{
49 | margin-bottom: 25px;
50 | .fa-tag{
51 | margin-bottom: 15px;
52 | display: block;
53 | color: #999999;
54 | }
55 | .post-preview{
56 | padding-left: 2em;
57 | a{
58 | cursor: pointer;
59 | text-decoration: none;
60 | .post-title{
61 | font-size: 14px;
62 | font-weight: 300;
63 | text-decoration: none;
64 | line-height: 20px;
65 | color: #4a4a4a;
66 | margin-bottom: 5px;
67 | cursor: pointer;
68 | margin-top: 0;
69 | transition: color @transitionTime;
70 | }
71 | .post-title:hover{
72 | color: @link-color;
73 | }
74 | }
75 | }
76 | }
77 | }
78 |
79 | .tag-triangle {
80 | display: inline-block;
81 | font-size: 14px;
82 | margin-left: 15px;
83 | position: relative;
84 | }
85 |
86 | .tag-i {
87 | display: block;
88 | background-color: #e3e3e3;
89 | height: 24px;
90 | line-height: 24px;
91 | padding: 0 10px 0 12px;
92 | position: relative;
93 | margin-bottom: 5px;
94 |
95 | border-bottom-right-radius: 3px;
96 | border-top-right-radius: 3px;
97 |
98 | &:before {
99 | content: " ";
100 | width: 0px;
101 | height: 0px;
102 | position: absolute;
103 | top: 0;
104 | left: -24px;
105 | border: 12px solid transparent;
106 | border-right-color: #e3e3e3;
107 | }
108 |
109 | &:after {
110 | content: " ";
111 | width: 5px;
112 | height: 5px;
113 | position: absolute;
114 | top: 12px;
115 | left: -2px;
116 | border-radius: 5px;
117 | z-index: 1;
118 | transform: translateY(-50%);
119 | background-color: #f8f8f8;
120 | }
121 |
122 | &:hover {
123 | background-color: #cccccc;
124 |
125 | &:before {
126 | border-right-color: #cccccc;
127 | }
128 | }
129 | }
130 |
--------------------------------------------------------------------------------
/source/_less/theme.less:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aircloud/hexo-theme-aircloud/7bd5ae19a85895bbf07a55cefdecd93ad57a1c93/source/_less/theme.less
--------------------------------------------------------------------------------
/source/_less/toc.less:
--------------------------------------------------------------------------------
1 | @import "variables";
2 |
3 | .toc-article{
4 |
5 | width: 240px;
6 |
7 | &::-webkit-scrollbar {
8 | width: 0;
9 | }
10 |
11 | &::-webkit-scrollbar-thumb {
12 | background-color: transparent;
13 | -webkit-border-radius: 4px;
14 | border-radius: 2px;
15 | }
16 |
17 | .toc-title{
18 | }
19 | ol{
20 | padding-left: 10px;
21 | padding-right: 10px;
22 | cursor: pointer;
23 | font-size: 0;
24 | }
25 | li{
26 | font-size: 0;
27 | box-sizing: border-box;
28 | border-left: 2px solid #cccccc;
29 | list-style: none;
30 | padding-left: 10px;
31 | a{
32 | display: block;
33 | line-height: 20px;
34 | margin-bottom: 10px;
35 | text-decoration: none;
36 | color: #999999;
37 | font-size: 14px;
38 | span{
39 | word-break: break-all;
40 | }
41 | }
42 | }
43 | li.active{
44 | border-left: 2px solid @link-color;
45 | &>a {
46 | color: @link-color;
47 | }
48 | }
49 | li:hover{
50 | border-left: 2px solid @link-color;
51 | &>a {
52 | color: @link-color;
53 | }
54 | }
55 | &>ol>li{
56 | border-left: none !important;
57 | }
58 | }
59 |
60 | .toc-fixed{
61 | position: fixed;
62 | top:10px;
63 | width: 240px;
64 | //max-height: 600px;
65 | //overflow: scroll;
66 | &::-webkit-scrollbar {
67 | width: 0;
68 | }
69 |
70 | &::-webkit-scrollbar-thumb {
71 | background-color: #ffffff;
72 | -webkit-border-radius: 4px;
73 | border-radius: 2px;
74 | }
75 | }
76 |
77 | @media screen and (max-width: 1180px){
78 |
79 | .toc-article{
80 | display: none;
81 | }
82 |
83 | }
--------------------------------------------------------------------------------
/source/_less/variables.less:
--------------------------------------------------------------------------------
1 | /*varibles*/
2 |
3 | @transitionTime: 0.4s;
4 |
5 | // 主要文字用色
6 | @main-font-color: #2f3339;
7 | @main-font-color-dark: darken(@main-font-color, 5%);
8 | @main-font-color-light: lighten(@main-font-color, 5%);
9 |
10 | @link-color: #4990E2;
--------------------------------------------------------------------------------
/source/css/aircloud.css:
--------------------------------------------------------------------------------
1 | /*varibles*/
2 | * {
3 | font-family: "italic", Helvetica, Arial, "Heiti SC", "Microsoft YaHei";
4 | }
5 | body,
6 | html {
7 | margin: 0;
8 | padding: 0;
9 | }
10 | body {
11 | margin-left: calc(100vw - 100%) !important;
12 | -webkit-text-size-adjust: none;
13 | }
14 | .red {
15 | color: red;
16 | }
17 | .hide {
18 | display: none !important;
19 | }
20 | .show-block {
21 | display: block !important;
22 | }
23 | .show-block {
24 | animation: showBlock 0.4s forwards;
25 | display: block !important;
26 | }
27 | @keyframes showBlock {
28 | from {
29 | opacity: 0;
30 | transform: translateY(-100%);
31 | }
32 | to {
33 | opacity: 1;
34 | transform: translateY(0);
35 | }
36 | }
37 | .hide-block {
38 | display: block !important;
39 | animation: hideBlock 0.4s forwards;
40 | opacity: 1;
41 | transform: translateY(0);
42 | }
43 | @keyframes hideBlock {
44 | from {
45 | opacity: 1;
46 | transform: translateY(0);
47 | }
48 | to {
49 | opacity: 0;
50 | transform: translateY(-100%);
51 | display: none;
52 | }
53 | }
54 | .show-flex-fade {
55 | animation: showFade 0.4s forwards;
56 | display: flex !important;
57 | }
58 | .hide-flex-fade {
59 | animation: hideFade 0.4s forwards;
60 | }
61 | @keyframes showFade {
62 | from {
63 | opacity: 0;
64 | }
65 | to {
66 | opacity: 1;
67 | }
68 | }
69 | @keyframes hideFade {
70 | from {
71 | opacity: 1;
72 | }
73 | to {
74 | opacity: 0;
75 | display: none !important;
76 | }
77 | }
78 | .no-indent {
79 | text-indent: 0 !important;
80 | }
81 | .no-indent p,
82 | .no-indent h1,
83 | .no-indent h2,
84 | .no-indent h3,
85 | .no-indent h4,
86 | .no-indent h5,
87 | .no-indent h6 {
88 | text-indent: 0 !important;
89 | }
90 | .no-indent ul,
91 | .no-indent ol {
92 | text-indent: 2em !important;
93 | }
94 | .no-indent ul ul,
95 | .no-indent ol ul,
96 | .no-indent ul ol,
97 | .no-indent ol ol {
98 | text-indent: 4em !important;
99 | }
100 | .no-indent ul,
101 | .no-indent ol {
102 | padding-left: 0 !important;
103 | }
104 | .nav {
105 | position: relative;
106 | padding-top: 50px;
107 | color: #333333;
108 | width: 100%;
109 | display: flex;
110 | flex-direction: column;
111 | align-items: center;
112 | }
113 | .nav .avatar-name {
114 | display: flex;
115 | flex-direction: column;
116 | align-items: center;
117 | border-bottom: 1px solid #979797;
118 | }
119 | .nav .avatar-name .avatar {
120 | width: 120px;
121 | height: 120px;
122 | padding: 10px;
123 | box-sizing: border-box;
124 | }
125 | .nav .avatar-name .avatar img {
126 | width: 100px;
127 | height: 100px;
128 | }
129 | .nav .avatar-name .radius img {
130 | border-radius: 50%;
131 | }
132 | .nav .avatar-name .name {
133 | margin-top: 10px;
134 | margin-bottom: 20px;
135 | }
136 | .nav .avatar-name .name i {
137 | font-size: 16px;
138 | font-family: "italic" !important;
139 | font-weight: 300;
140 | color: #666666;
141 | }
142 | .nav .contents ul {
143 | width: 100%;
144 | padding-left: 0;
145 | margin-top: 25px;
146 | margin-bottom: 25px;
147 | }
148 | .nav .contents ul li,
149 | .nav .contents ul li a {
150 | text-decoration: none;
151 | font-size: 15px;
152 | margin: 20px auto;
153 | padding-left: 0;
154 | list-style: none;
155 | }
156 | .nav .contents ul li i,
157 | .nav .contents ul li a i {
158 | cursor: pointer;
159 | color: #999999;
160 | margin-right: 5px;
161 | }
162 | .nav .contents ul li span,
163 | .nav .contents ul li a span {
164 | cursor: pointer;
165 | color: #999999;
166 | }
167 | .nav .contents ul li.active span,
168 | .nav .contents ul li.active i {
169 | color: #4a4a4a;
170 | }
171 | .nav .contents ul li:hover span,
172 | .nav .contents ul li:hover i {
173 | color: #4a4a4a;
174 | }
175 | .site-nav-toggle {
176 | display: none;
177 | }
178 | .site-nav-toggle button {
179 | outline: none;
180 | margin-top: 2px;
181 | padding: 9px 10px;
182 | background: transparent;
183 | border: none;
184 | user-select: none;
185 | }
186 | .site-nav-toggle button .btn-bar {
187 | display: block;
188 | width: 22px;
189 | height: 2px;
190 | background: #666666;
191 | border-radius: 1px;
192 | }
193 | .site-nav-toggle button .btn-bar + .btn-bar {
194 | margin-top: 4px;
195 | }
196 | .search-field {
197 | overflow: hidden;
198 | display: none;
199 | position: fixed;
200 | top: 0;
201 | bottom: 0;
202 | z-index: 3;
203 | left: 0;
204 | right: 0;
205 | width: 100vw;
206 | height: 100vh;
207 | background-color: rgba(0, 0, 0, 0.3);
208 | align-items: center;
209 | flex-direction: column;
210 | }
211 | .search-field .search-bg {
212 | position: absolute;
213 | z-index: 4;
214 | top: 0;
215 | bottom: 0;
216 | right: 0;
217 | left: 0;
218 | }
219 | .search-field .search-container {
220 | position: relative;
221 | z-index: 5;
222 | width: 40vw;
223 | min-width: 500px;
224 | height: 70vh;
225 | margin-top: 15vh;
226 | background-color: white;
227 | }
228 | .search-field .search-container .search-input {
229 | width: 100%;
230 | display: flex;
231 | align-items: center;
232 | padding-top: 10px;
233 | }
234 | .search-field .search-container .search-input span {
235 | width: 60px;
236 | color: #999999;
237 | line-height: 30px;
238 | text-align: center;
239 | }
240 | .search-field .search-container .search-input span:nth-child(1) {
241 | width: 40px;
242 | cursor: pointer;
243 | }
244 | .search-field .search-container .search-input #begin-search {
245 | cursor: pointer;
246 | }
247 | .search-field .search-container .search-input #begin-search:hover {
248 | color: #4a4a4a;
249 | }
250 | .search-field .search-container .search-input input {
251 | flex: 1;
252 | background-color: #f3f4f7;
253 | border: 1px solid #cccccc;
254 | height: 30px;
255 | font-size: 18px;
256 | color: #4a4a4a;
257 | box-sizing: border-box;
258 | font-weight: 300;
259 | padding-left: 5px;
260 | padding-right: 5px;
261 | }
262 | .search-field .search-result-container {
263 | height: calc(70vh - 50px);
264 | overflow-y: scroll;
265 | overflow-x: hidden;
266 | }
267 | .search-field .search-result-container::-webkit-scrollbar {
268 | width: 4px;
269 | }
270 | .search-field .search-result-container .no-search-result {
271 | width: 100%;
272 | height: 200px;
273 | text-align: center;
274 | padding-top: 100px;
275 | color: #999999;
276 | font-size: 16px;
277 | }
278 | .search-field .search-result-container::-webkit-scrollbar-thumb {
279 | background-color: #c3c4c7;
280 | -webkit-border-radius: 2px;
281 | border-radius: 2px;
282 | }
283 | .search-field .search-result-container ul {
284 | margin-top: 10px;
285 | width: calc(100% - 25px);
286 | padding-left: 10px;
287 | }
288 | .search-field .search-result-container ul li {
289 | margin-bottom: 15px;
290 | list-style: none;
291 | }
292 | .search-field .search-result-container ul li a {
293 | text-decoration: none;
294 | cursor: pointer;
295 | font-size: 16px;
296 | color: #4a4a4a;
297 | font-weight: 300;
298 | padding-bottom: 5px;
299 | }
300 | .search-field .search-result-container ul li ul {
301 | padding-left: 10px;
302 | }
303 | .search-field .search-result-container ul li ul li {
304 | list-style: none;
305 | color: #666666;
306 | font-weight: 300;
307 | font-size: 13px;
308 | }
309 | @media screen and (max-width: 680px) {
310 | .search-field .search-container {
311 | min-width: 0;
312 | width: 100%;
313 | height: 100%;
314 | margin: 0;
315 | }
316 | .search-field .search-result-container {
317 | height: calc(100vh - 50px);
318 | }
319 | .nav {
320 | margin-top: 50px;
321 | position: relative;
322 | top: 0;
323 | width: 100%;
324 | }
325 | .nav .avatar-name {
326 | border-bottom: none;
327 | }
328 | .nav .contents {
329 | display: none;
330 | position: fixed;
331 | left: 0;
332 | top: 40px;
333 | background-color: white;
334 | width: 100%;
335 | border-bottom: 1px solid #CCCCCC;
336 | border-top: 1px solid #CCCCCC;
337 | }
338 | .nav .contents ul {
339 | padding-left: 30px;
340 | }
341 | .site-nav-toggle {
342 | height: 40px;
343 | box-sizing: border-box;
344 | display: block;
345 | position: fixed;
346 | width: 100%;
347 | padding-top: 2px;
348 | padding-left: 20px;
349 | z-index: 2;
350 | background-color: white;
351 | }
352 | }
353 | .post-preview {
354 | width: 100%;
355 | height: max-content;
356 | margin-bottom: 10px;
357 | box-sizing: border-box;
358 | display: flex;
359 | flex-direction: row;
360 | }
361 | .post-preview .post-time {
362 | font-size: 17px;
363 | color: #999999;
364 | width: 125px;
365 | font-weight: 300;
366 | line-height: 24px;
367 | }
368 | .post-preview .post-info {
369 | flex: 1;
370 | }
371 | .post-preview .post-info a {
372 | cursor: pointer;
373 | text-decoration: none;
374 | }
375 | .post-preview .post-info a h3 {
376 | line-height: 24px;
377 | cursor: pointer;
378 | margin-top: 0;
379 | margin-bottom: 5px;
380 | color: #101010;
381 | font-size: 18px;
382 | font-weight: 300;
383 | transition: color 0.4s;
384 | }
385 | .post-preview .post-info a h3:hover {
386 | color: #4990E2;
387 | }
388 | .post-preview .post-info p {
389 | margin-top: 0;
390 | }
391 | .post-preview .post-info p span,
392 | .post-preview .post-info p a {
393 | font-weight: 300;
394 | color: #999999;
395 | font-size: 14px;
396 | text-decoration: none;
397 | }
398 | .post-preview-container {
399 | min-height: 420px;
400 | }
401 | .pager {
402 | width: 100%;
403 | height: 40px;
404 | padding-left: 0;
405 | display: flex;
406 | }
407 | .pager .previous {
408 | flex: 1;
409 | display: flex;
410 | flex-direction: row;
411 | cursor: pointer;
412 | }
413 | .pager .next {
414 | flex: 1;
415 | display: flex;
416 | flex-direction: row-reverse;
417 | cursor: pointer;
418 | }
419 | .pager .previous a,
420 | .pager .next a {
421 | box-sizing: border-box;
422 | cursor: pointer;
423 | transition: color 0.4s, background-color 0.4s;
424 | border: 1px solid #999999;
425 | line-height: 40px;
426 | width: 150px;
427 | height: 40px;
428 | font-size: 18px;
429 | color: #999999;
430 | text-align: center;
431 | text-decoration: none;
432 | }
433 | .pager .previous a:hover,
434 | .pager .next a:hover {
435 | color: white;
436 | cursor: pointer;
437 | background-color: #666666;
438 | }
439 | @media screen and (max-width: 680px) {
440 | .post-preview-container {
441 | min-height: 0 !important;
442 | }
443 | .post-preview {
444 | width: 100%;
445 | height: max-content;
446 | margin-bottom: 10px;
447 | box-sizing: border-box;
448 | display: flex;
449 | flex-direction: column;
450 | padding-left: 10px;
451 | padding-right: 10px;
452 | border-bottom: 1px solid #EEEEEE;
453 | }
454 | .post-preview .post-time {
455 | font-size: 11px;
456 | color: #999999;
457 | width: 125px;
458 | font-weight: 300;
459 | line-height: 20px;
460 | font-style: oblique;
461 | }
462 | .post-preview .post-info {
463 | flex: 1;
464 | }
465 | .post-preview .post-info a {
466 | cursor: pointer;
467 | text-decoration: none;
468 | }
469 | .post-preview .post-info a h3 {
470 | line-height: 20px;
471 | cursor: pointer;
472 | margin-top: 0;
473 | margin-bottom: 5px;
474 | color: #101010;
475 | font-size: 15px;
476 | font-weight: 300;
477 | }
478 | .post-preview .post-info p {
479 | margin-top: 0;
480 | }
481 | .post-preview .post-info p span,
482 | .post-preview .post-info p a {
483 | font-weight: 300;
484 | color: #999999;
485 | font-size: 12px;
486 | text-decoration: none;
487 | }
488 | .pager {
489 | width: 100%;
490 | height: 40px;
491 | padding-left: 10px;
492 | padding-right: 10px;
493 | display: flex;
494 | }
495 | .pager .previous {
496 | flex: 1;
497 | display: flex;
498 | flex-direction: row;
499 | cursor: pointer;
500 | }
501 | .pager .next {
502 | flex: 1;
503 | display: flex;
504 | flex-direction: row-reverse;
505 | cursor: pointer;
506 | }
507 | .pager .previous a,
508 | .pager .next a {
509 | box-sizing: border-box;
510 | cursor: pointer;
511 | transition: color 0.4s, background-color 0.4s;
512 | border: 1px solid #999999;
513 | line-height: 30px;
514 | width: 120px;
515 | height: 30px;
516 | font-size: 14px;
517 | color: #999999;
518 | text-align: center;
519 | text-decoration: none;
520 | }
521 | .pager .previous a:hover,
522 | .pager .next a:hover {
523 | color: white;
524 | cursor: pointer;
525 | background-color: #666666;
526 | }
527 | }
528 | .tags {
529 | line-height: 30px;
530 | margin-bottom: 25px;
531 | }
532 | .tags a {
533 | text-decoration: none;
534 | color: #777777;
535 | margin-right: 8px;
536 | }
537 | .tags a:hover {
538 | color: #4a4a4a;
539 | }
540 | .one-tag-list {
541 | margin-bottom: 25px;
542 | }
543 | .one-tag-list .fa-tag {
544 | margin-bottom: 15px;
545 | display: block;
546 | color: #999999;
547 | }
548 | .one-tag-list .post-preview {
549 | padding-left: 2em;
550 | }
551 | .one-tag-list .post-preview a {
552 | cursor: pointer;
553 | text-decoration: none;
554 | }
555 | .one-tag-list .post-preview a .post-title {
556 | margin-bottom: 5px;
557 | line-height: 20px;
558 | cursor: pointer;
559 | margin-top: 0;
560 | color: #101010;
561 | font-size: 18px;
562 | font-weight: 300;
563 | transition: color 0.4s;
564 | }
565 | .one-tag-list .post-preview a .post-title:hover {
566 | color: #4990E2;
567 | }
568 | @media screen and (max-width: 680px) {
569 | .one-tag-list {
570 | margin-bottom: 25px;
571 | }
572 | .one-tag-list .fa-tag {
573 | margin-bottom: 15px;
574 | display: block;
575 | color: #999999;
576 | }
577 | .one-tag-list .post-preview {
578 | padding-left: 2em;
579 | }
580 | .one-tag-list .post-preview a {
581 | cursor: pointer;
582 | text-decoration: none;
583 | }
584 | .one-tag-list .post-preview a .post-title {
585 | font-size: 14px;
586 | font-weight: 300;
587 | text-decoration: none;
588 | line-height: 20px;
589 | color: #4a4a4a;
590 | margin-bottom: 5px;
591 | cursor: pointer;
592 | margin-top: 0;
593 | transition: color 0.4s;
594 | }
595 | .one-tag-list .post-preview a .post-title:hover {
596 | color: #4990E2;
597 | }
598 | }
599 | .tag-triangle {
600 | display: inline-block;
601 | font-size: 14px;
602 | margin-left: 15px;
603 | position: relative;
604 | }
605 | .tag-i {
606 | display: block;
607 | background-color: #e3e3e3;
608 | height: 24px;
609 | line-height: 24px;
610 | padding: 0 10px 0 12px;
611 | position: relative;
612 | margin-bottom: 5px;
613 | border-bottom-right-radius: 3px;
614 | border-top-right-radius: 3px;
615 | }
616 | .tag-i:before {
617 | content: " ";
618 | width: 0px;
619 | height: 0px;
620 | position: absolute;
621 | top: 0;
622 | left: -24px;
623 | border: 12px solid transparent;
624 | border-right-color: #e3e3e3;
625 | }
626 | .tag-i:after {
627 | content: " ";
628 | width: 5px;
629 | height: 5px;
630 | position: absolute;
631 | top: 12px;
632 | left: -2px;
633 | border-radius: 5px;
634 | z-index: 1;
635 | transform: translateY(-50%);
636 | background-color: #f8f8f8;
637 | }
638 | .tag-i:hover {
639 | background-color: #cccccc;
640 | }
641 | .tag-i:hover:before {
642 | border-right-color: #cccccc;
643 | }
644 | .post-container {
645 | width: 100%;
646 | height: max-content;
647 | display: flex;
648 | flex-direction: column;
649 | }
650 | .post-container .post-title {
651 | width: 100%;
652 | text-align: center;
653 | line-height: 24px;
654 | margin-top: 0;
655 | margin-bottom: 5px;
656 | color: #101010;
657 | font-size: 20px;
658 | font-weight: 300;
659 | }
660 | .post-container .post-meta {
661 | text-align: center;
662 | margin-top: 0;
663 | margin-bottom: 20px;
664 | }
665 | .post-container .post-meta span,
666 | .post-container .post-meta a {
667 | font-weight: 300;
668 | color: #999999;
669 | font-size: 13px;
670 | text-decoration: none;
671 | }
672 | .post-container .post-meta .attr {
673 | margin-right: 5px;
674 | margin-left: 5px;
675 | }
676 | .article-content {
677 | color: #2f3339;
678 | font-size: 16px;
679 | line-height: 170%;
680 | letter-spacing: 1px;
681 | word-break: break-all;
682 | }
683 | .article-content:hover {
684 | background-color: rgba(51, 112, 255, 0.1);
685 | }
686 | .post-content {
687 | line-height: 20px;
688 | font-size: 15px;
689 | text-indent: 2em;
690 | letter-spacing: 1px;
691 | color: #2f3339;
692 | font-weight: 300;
693 | }
694 | .post-content > table,
695 | .post-content > table tr th,
696 | .post-content > table tr td {
697 | border: 1px solid #e7e8e9;
698 | }
699 | .post-content table {
700 | border-collapse: collapse;
701 | }
702 | .post-content blockquote {
703 | border-top: 1px solid #cccccc;
704 | border-bottom: 1px solid #cccccc;
705 | margin-left: 2em;
706 | margin-right: 2em;
707 | padding-left: 0;
708 | padding-right: 0;
709 | }
710 | .post-content blockquote p {
711 | margin-top: 10px;
712 | margin-bottom: 10px;
713 | color: #666666;
714 | }
715 | .post-content a {
716 | text-decoration: none;
717 | color: #4990E2;
718 | }
719 | .post-content p {
720 | text-indent: 2em;
721 | color: #2f3339;
722 | font-size: 16px;
723 | line-height: 170%;
724 | letter-spacing: 1px;
725 | word-break: break-all;
726 | }
727 | .post-content p:hover {
728 | background-color: rgba(51, 112, 255, 0.1);
729 | }
730 | .post-content p img {
731 | width: 80%;
732 | }
733 | .post-content ul,
734 | .post-content ol {
735 | padding-left: 2em;
736 | }
737 | .post-content ul li,
738 | .post-content ol li {
739 | list-style-position: inside;
740 | margin-bottom: 5px;
741 | margin-top: 5px;
742 | color: #2f3339;
743 | font-size: 16px;
744 | line-height: 170%;
745 | letter-spacing: 1px;
746 | word-break: break-all;
747 | }
748 | .post-content ul li:hover,
749 | .post-content ol li:hover {
750 | background-color: rgba(51, 112, 255, 0.1);
751 | }
752 | .post-content ul li {
753 | list-style: none;
754 | }
755 | .post-content ul li:before {
756 | content: '• ';
757 | }
758 | .post-content pre {
759 | text-indent: 0;
760 | padding: 10px;
761 | }
762 | .post-content pre code {
763 | line-height: 175%;
764 | }
765 | .post-content h1 {
766 | color: #2f3339;
767 | margin-top: 20px;
768 | margin-bottom: 20px;
769 | line-height: 120%;
770 | word-break: break-all;
771 | font-size: 22px;
772 | }
773 | .post-content h2 {
774 | color: #2f3339;
775 | margin-top: 20px;
776 | margin-bottom: 20px;
777 | line-height: 120%;
778 | word-break: break-all;
779 | font-size: 21px;
780 | }
781 | .post-content h3 {
782 | color: #2f3339;
783 | margin-top: 20px;
784 | margin-bottom: 20px;
785 | line-height: 120%;
786 | word-break: break-all;
787 | font-size: 20px;
788 | }
789 | .post-content h4 {
790 | color: #2f3339;
791 | margin-top: 20px;
792 | margin-bottom: 20px;
793 | line-height: 120%;
794 | word-break: break-all;
795 | font-size: 19px;
796 | }
797 | .post-content h5 {
798 | color: #2f3339;
799 | margin-top: 20px;
800 | margin-bottom: 20px;
801 | line-height: 120%;
802 | word-break: break-all;
803 | font-size: 18px;
804 | }
805 | .post-content h6 {
806 | color: #2f3339;
807 | margin-top: 20px;
808 | margin-bottom: 20px;
809 | line-height: 120%;
810 | word-break: break-all;
811 | font-size: 17px;
812 | }
813 | .post-content figcaption {
814 | text-align: center;
815 | }
816 | #comment-container {
817 | text-indent: 0;
818 | }
819 | #lv-container {
820 | text-indent: 0;
821 | }
822 | .post-content li p {
823 | display: inline;
824 | }
825 | .index-about {
826 | text-align: center;
827 | width: 100%;
828 | margin-top: 45px;
829 | margin-bottom: 40px;
830 | opacity: 0;
831 | animation: showBlock 1.6s forwards;
832 | }
833 | .index-about i {
834 | font-size: 15px;
835 | font-family: "italic" !important;
836 | font-weight: 300;
837 | color: #444444;
838 | }
839 | .index-about-mobile {
840 | display: none;
841 | }
842 | .index-container {
843 | justify-content: center;
844 | height: max-content;
845 | position: relative;
846 | width: 1024px;
847 | margin: auto;
848 | display: flex;
849 | flex-direction: row;
850 | background-color: white;
851 | }
852 | .index-container .index-left {
853 | width: 240px;
854 | }
855 | .index-container .index-middle {
856 | max-width: 784px;
857 | flex: 1;
858 | }
859 | @media screen and (max-width: 1180px) {
860 | .index-container {
861 | left: 0;
862 | width: 100%;
863 | box-sizing: border-box;
864 | margin: auto;
865 | padding: 0 40px 0 10px;
866 | display: flex;
867 | flex-direction: row;
868 | }
869 | .index-container .index-left {
870 | width: 180px;
871 | }
872 | .index-container .index-middle {
873 | flex: 1;
874 | max-width: calc(100% - 180px);
875 | }
876 | }
877 | @media screen and (max-width: 680px) {
878 | .index-container {
879 | width: 100%;
880 | box-sizing: border-box;
881 | margin: auto;
882 | display: flex;
883 | flex-direction: column;
884 | padding: 0 25px 0 25px;
885 | min-height: 0;
886 | }
887 | .index-container .index-left {
888 | width: 100%;
889 | }
890 | .index-container .index-middle {
891 | max-width: 100%;
892 | flex: 1;
893 | }
894 | .index-about {
895 | display: none;
896 | }
897 | .index-about-mobile {
898 | display: block;
899 | text-align: center;
900 | width: 100%;
901 | margin-top: 0;
902 | margin-bottom: 40px;
903 | }
904 | .index-about-mobile i {
905 | font-size: 15px;
906 | font-family: "italic" !important;
907 | font-weight: 300;
908 | color: #444444;
909 | }
910 | }
911 | .donate-container {
912 | width: 100%;
913 | display: flex;
914 | align-items: center;
915 | flex-direction: column;
916 | }
917 | .donate-container .donate-button {
918 | margin-bottom: 10px;
919 | text-align: center;
920 | display: flex;
921 | align-items: center;
922 | flex-direction: column;
923 | }
924 | .donate-container .donate-button button {
925 | border: none;
926 | cursor: pointer;
927 | box-shadow: none;
928 | outline: none;
929 | border-radius: 6px;
930 | width: 60px;
931 | height: 24px;
932 | text-align: center;
933 | color: white;
934 | background-color: orange;
935 | }
936 | .donate-container .donate-button button:active {
937 | background-color: darkorange;
938 | }
939 | .donate-container .donate-img-container {
940 | display: flex;
941 | align-items: center;
942 | flex-direction: column;
943 | }
944 | .donate-container .donate-img-container img {
945 | max-width: 400px;
946 | max-height: 360px;
947 | }
948 | .donate-container .donate-img-container p {
949 | text-align: center;
950 | font-size: 14px;
951 | color: #999999;
952 | }
953 | @media screen and (max-width: 680px) {
954 | .donate-container .donate-img-container img {
955 | max-width: 75vw;
956 | max-height: 240px;
957 | }
958 | .donate-container .donate-img-container p {
959 | text-align: center;
960 | font-size: 14px;
961 | color: #999999;
962 | }
963 | }
964 | .archives-container .one-tag-list .listing-seperator {
965 | font-size: 18px;
966 | color: #999999;
967 | }
968 | .archives-container .one-tag-list ul {
969 | list-style: none;
970 | }
971 | .archives-container .one-tag-list ul li {
972 | display: flex;
973 | align-items: center;
974 | flex-direction: row;
975 | margin-bottom: 10px;
976 | }
977 | .archives-container .one-tag-list ul li span {
978 | color: #999999;
979 | margin-right: 15px;
980 | min-width: 45px;
981 | }
982 | .archives-container .one-tag-list ul li a {
983 | text-decoration: none;
984 | line-height: 20px;
985 | color: #4a4a4a;
986 | }
987 | .archives-container .one-tag-list ul li a span {
988 | color: #4a4a4a;
989 | transition: color 0.4s;
990 | }
991 | .archives-container .one-tag-list ul li a span:hover {
992 | color: #4990E2;
993 | }
994 | @media screen and (max-width: 680px) {
995 | .archives-container .one-tag-list .listing-seperator {
996 | font-size: 18px;
997 | color: #999999;
998 | }
999 | .archives-container .one-tag-list ul {
1000 | list-style: none;
1001 | padding-left: 1em;
1002 | }
1003 | .archives-container .one-tag-list ul li {
1004 | display: flex;
1005 | align-items: center;
1006 | flex-direction: row;
1007 | margin-bottom: 10px;
1008 | }
1009 | .archives-container .one-tag-list ul li span {
1010 | color: #999999;
1011 | margin-right: 15px;
1012 | min-width: 45px;
1013 | font-size: 14px;
1014 | }
1015 | .archives-container .one-tag-list ul li i {
1016 | font-size: 12px;
1017 | }
1018 | .archives-container .one-tag-list ul li a {
1019 | font-size: 14px;
1020 | font-weight: 300;
1021 | text-decoration: none;
1022 | line-height: 20px;
1023 | color: #4a4a4a;
1024 | }
1025 | .archives-container .one-tag-list ul li a span {
1026 | color: #4a4a4a;
1027 | }
1028 | }
1029 | pre,
1030 | .highlight {
1031 | overflow: auto;
1032 | margin: 20px 0;
1033 | padding: 0;
1034 | font-size: 13px;
1035 | color: #4d4d4c;
1036 | background: #f7f7f7;
1037 | line-height: 1.6;
1038 | }
1039 | pre,
1040 | pre span,
1041 | code {
1042 | font-family: consolas, Menlo, "PingFang SC", "Microsoft YaHei", monospace;
1043 | }
1044 | code {
1045 | padding: 2px 4px;
1046 | word-wrap: break-word;
1047 | color: #555;
1048 | background: #eee;
1049 | border-radius: 3px;
1050 | font-size: 13px;
1051 | }
1052 | pre {
1053 | padding: 10px;
1054 | }
1055 | pre code {
1056 | padding: 0;
1057 | color: #4d4d4c;
1058 | background: none;
1059 | text-shadow: none;
1060 | }
1061 | .highlight {
1062 | border-radius: 1px;
1063 | }
1064 | .highlight pre {
1065 | border: none;
1066 | margin: 0;
1067 | padding: 10px 0;
1068 | }
1069 | .highlight table {
1070 | margin: 0;
1071 | width: auto;
1072 | border: none;
1073 | }
1074 | .highlight td {
1075 | border: none;
1076 | padding: 0;
1077 | }
1078 | .highlight figcaption {
1079 | font-size: 1em;
1080 | color: #4d4d4c;
1081 | line-height: 1em;
1082 | margin-bottom: 1em;
1083 | }
1084 | .highlight figcaption a {
1085 | float: right;
1086 | color: #4d4d4c;
1087 | }
1088 | .highlight figcaption a:hover {
1089 | border-bottom-color: #4d4d4c;
1090 | }
1091 | .highlight .gutter pre {
1092 | padding-left: 10px;
1093 | padding-right: 10px;
1094 | color: #869194;
1095 | text-align: right;
1096 | background-color: #eff2f3;
1097 | }
1098 | .highlight .code pre {
1099 | width: 100%;
1100 | padding-left: 10px;
1101 | padding-right: 10px;
1102 | background-color: #f7f7f7;
1103 | }
1104 | .highlight .line {
1105 | height: 20px;
1106 | }
1107 | .gutter {
1108 | -webkit-user-select: none;
1109 | -moz-user-select: none;
1110 | -ms-user-select: none;
1111 | user-select: none;
1112 | }
1113 | .gist table {
1114 | width: auto;
1115 | }
1116 | .gist table td {
1117 | border: none;
1118 | }
1119 | pre .deletion {
1120 | background: #fdd;
1121 | }
1122 | pre .addition {
1123 | background: #dfd;
1124 | }
1125 | pre .meta {
1126 | color: #8959a8;
1127 | }
1128 | pre .comment {
1129 | color: #8e908c;
1130 | }
1131 | pre .variable,
1132 | pre .attribute,
1133 | pre .tag,
1134 | pre .regexp,
1135 | pre .ruby .constant,
1136 | pre .xml .tag .title,
1137 | pre .xml .pi,
1138 | pre .xml .doctype,
1139 | pre .html .doctype,
1140 | pre .css .id,
1141 | pre .css .class,
1142 | pre .css .pseudo {
1143 | color: #c82829;
1144 | }
1145 | pre .number,
1146 | pre .preprocessor,
1147 | pre .built_in,
1148 | pre .literal,
1149 | pre .params,
1150 | pre .constant,
1151 | pre .command {
1152 | color: #f5871f;
1153 | }
1154 | pre .ruby .class .title,
1155 | pre .css .rules .attribute,
1156 | pre .string,
1157 | pre .value,
1158 | pre .inheritance,
1159 | pre .header,
1160 | pre .ruby .symbol,
1161 | pre .xml .cdata,
1162 | pre .special,
1163 | pre .number,
1164 | pre .formula {
1165 | color: #718c00;
1166 | }
1167 | pre .title,
1168 | pre .css .hexcolor {
1169 | color: #3e999f;
1170 | }
1171 | pre .function,
1172 | pre .python .decorator,
1173 | pre .python .title,
1174 | pre .ruby .function .title,
1175 | pre .ruby .title .keyword,
1176 | pre .perl .sub,
1177 | pre .javascript .title,
1178 | pre .coffeescript .title {
1179 | color: #4271ae;
1180 | }
1181 | pre .keyword,
1182 | pre .javascript .function {
1183 | color: #8959a8;
1184 | }
1185 | .footer {
1186 | width: 100%;
1187 | align-items: center;
1188 | display: flex;
1189 | flex-direction: column;
1190 | color: #979797;
1191 | margin-bottom: 10px;
1192 | }
1193 | .footer p {
1194 | font-family: "Montserrat", "Helvetica Neue", "Hiragino Sans GB", "LiHei Pro", Arial, sans-serif;
1195 | font-size: 14px;
1196 | margin-top: 5px;
1197 | margin-bottom: 0;
1198 | font-weight: 300;
1199 | margin-right: 20px;
1200 | word-break: break-all;
1201 | margin-left: 20px;
1202 | }
1203 | .footer p a {
1204 | font-weight: 300;
1205 | font-family: "Montserrat", "Helvetica Neue", "Hiragino Sans GB", "LiHei Pro", Arial, sans-serif;
1206 | cursor: pointer;
1207 | color: #333333;
1208 | }
1209 | .footer p span a {
1210 | font-weight: 300;
1211 | font-family: "Montserrat", "Helvetica Neue", "Hiragino Sans GB", "LiHei Pro", Arial, sans-serif;
1212 | cursor: pointer;
1213 | color: #979797;
1214 | text-decoration: none;
1215 | }
1216 | .footer p span a:hover {
1217 | color: #333333;
1218 | }
1219 | .list-inline.text-center {
1220 | color: #444444;
1221 | font-size: 20px;
1222 | padding-left: 0;
1223 | margin-bottom: 0;
1224 | }
1225 | .list-inline.text-center li {
1226 | display: inline-block;
1227 | margin: 0 2px;
1228 | background-color: #979797;
1229 | height: 24px;
1230 | width: 24px;
1231 | border-radius: 12px;
1232 | text-align: center;
1233 | }
1234 | .list-inline.text-center li a {
1235 | text-decoration: none;
1236 | }
1237 | .list-inline.text-center li a span i {
1238 | line-height: 20px;
1239 | color: white;
1240 | }
1241 | .list-inline.text-center li:hover {
1242 | background-color: #333333;
1243 | }
1244 | @media screen and (max-width: 680px) {
1245 | .footer {
1246 | box-sizing: border-box;
1247 | padding-left: 20px;
1248 | padding-right: 20px;
1249 | }
1250 | .footer p {
1251 | word-break: break-all;
1252 | font-family: "Montserrat", "Helvetica Neue", "Hiragino Sans GB", "LiHei Pro", Arial, sans-serif;
1253 | font-size: 11px;
1254 | margin-top: 5px;
1255 | margin-bottom: 0;
1256 | font-weight: 300;
1257 | margin-right: 20px;
1258 | margin-left: 20px;
1259 | }
1260 | .footer p span a {
1261 | font-size: 11px;
1262 | font-weight: 300;
1263 | font-family: "Montserrat", "Helvetica Neue", "Hiragino Sans GB", "LiHei Pro", Arial, sans-serif;
1264 | cursor: pointer;
1265 | color: #979797;
1266 | text-decoration: none;
1267 | }
1268 | .footer p span a:hover {
1269 | color: #333333;
1270 | }
1271 | }
1272 | .toc-article {
1273 | width: 240px;
1274 | }
1275 | .toc-article::-webkit-scrollbar {
1276 | width: 0;
1277 | }
1278 | .toc-article::-webkit-scrollbar-thumb {
1279 | background-color: transparent;
1280 | -webkit-border-radius: 4px;
1281 | border-radius: 2px;
1282 | }
1283 | .toc-article ol {
1284 | padding-left: 10px;
1285 | padding-right: 10px;
1286 | cursor: pointer;
1287 | font-size: 0;
1288 | }
1289 | .toc-article li {
1290 | font-size: 0;
1291 | box-sizing: border-box;
1292 | border-left: 2px solid #cccccc;
1293 | list-style: none;
1294 | padding-left: 10px;
1295 | }
1296 | .toc-article li a {
1297 | display: block;
1298 | line-height: 20px;
1299 | margin-bottom: 10px;
1300 | text-decoration: none;
1301 | color: #999999;
1302 | font-size: 14px;
1303 | }
1304 | .toc-article li a span {
1305 | word-break: break-all;
1306 | }
1307 | .toc-article li.active {
1308 | border-left: 2px solid #4990E2;
1309 | }
1310 | .toc-article li.active > a {
1311 | color: #4990E2;
1312 | }
1313 | .toc-article li:hover {
1314 | border-left: 2px solid #4990E2;
1315 | }
1316 | .toc-article li:hover > a {
1317 | color: #4990E2;
1318 | }
1319 | .toc-article > ol > li {
1320 | border-left: none !important;
1321 | }
1322 | .toc-fixed {
1323 | position: fixed;
1324 | top: 10px;
1325 | width: 240px;
1326 | }
1327 | .toc-fixed::-webkit-scrollbar {
1328 | width: 0;
1329 | }
1330 | .toc-fixed::-webkit-scrollbar-thumb {
1331 | background-color: #ffffff;
1332 | -webkit-border-radius: 4px;
1333 | border-radius: 2px;
1334 | }
1335 | @media screen and (max-width: 1180px) {
1336 | .toc-article {
1337 | display: none;
1338 | }
1339 | }
1340 | .gitment-comment p {
1341 | text-indent: 0;
1342 | }
1343 |
--------------------------------------------------------------------------------
/source/css/aircloud.css.map:
--------------------------------------------------------------------------------
1 | {"version":3,"sources":["/Users/aircloud/LTS/AirCloudBlog_EN/themes/aircloud/source/_less/common.less","/Users/aircloud/LTS/AirCloudBlog_EN/themes/aircloud/source/_less/nav.less","/Users/aircloud/LTS/AirCloudBlog_EN/themes/aircloud/source/_less/index.less","/Users/aircloud/LTS/AirCloudBlog_EN/themes/aircloud/source/_less/tag.less","/Users/aircloud/LTS/AirCloudBlog_EN/themes/aircloud/source/_less/post.less","/Users/aircloud/LTS/AirCloudBlog_EN/themes/aircloud/source/_less/layout.less","/Users/aircloud/LTS/AirCloudBlog_EN/themes/aircloud/source/_less/donate.less","/Users/aircloud/LTS/AirCloudBlog_EN/themes/aircloud/source/_less/archive.less","/Users/aircloud/LTS/AirCloudBlog_EN/themes/aircloud/source/_less/hightlight.less","/Users/aircloud/LTS/AirCloudBlog_EN/themes/aircloud/source/_less/_partial/footer.less","/Users/aircloud/LTS/AirCloudBlog_EN/themes/aircloud/source/_less/toc.less","/Users/aircloud/LTS/AirCloudBlog_EN/themes/aircloud/source/_less/gitment.less"],"names":[],"mappings":";AAEA;EACE,aAAa,4BAAyB,YAAW,iBAAjD;;AAIF;AAAK;EACH,SAAA;EACA,UAAA;;AAGF;EACE,aAAa,kBAAb;EACA,8BAAA;;AAIF;EACE,UAAA;;AAEF;EACE,wBAAA;;AAGF;EACE,yBAAA;;AAGF;EACE,kCAAA;EACA,yBAAA;;AAGF;EACE;IACE,UAAA;IACA,WAAW,iBAAX;;EAEF;IACE,UAAA;IACA,WAAW,aAAX;;;AAIJ;EACE,yBAAA;EACA,kCAAA;EACA,UAAA;EACA,WAAW,aAAX;;AAGF;EACE;IACE,UAAA;IACA,WAAW,aAAX;;EAEF;IACE,UAAA;IACA,WAAW,iBAAX;IACA,aAAA;;;AAIJ;EACE,iCAAA;EACA,wBAAA;;AAGF;EACE,iCAAA;;AAGF;EACE;IACE,UAAA;;EAEF;IACE,UAAA;;;AAIJ;EACE;IACE,UAAA;;EAEF;IACE,UAAA;IACA,wBAAA;;;AAIJ;EACE,yBAAA;;AADF,UAEE;AAFF,UAEI,CAAA;AAFJ,UAEO,CAAA;AAFP,UAEU,CAAA;AAFV,UAEa,CAAA;AAFb,UAEgB,CAAA;AAFhB,UAEmB,CAAA;AAFnB,UAEsB,CAAA;AAFtB,UAEyB,CAAA;EACrB,yBAAA;;AC9FJ;EACE,kBAAA;EAEA,iBAAA;EACA,cAAA;EACA,WAAA;EACA,aAAA;EACA,sBAAA;EACA,mBAAA;;AARF,IASE;EACE,aAAA;EACA,sBAAA;EACA,mBAAA;EACA,gCAAA;;AAbJ,IASE,aAKE;EACE,YAAA;EACA,aAAA;EACA,aAAA;EAEA,sBAAA;;AAnBN,IASE,aAKE,QAME;EACE,YAAA;EACA,aAAA;;AAtBR,IASE,aAgBE,QACE;EACE,kBAAA;;AA3BR,IASE,aAqBE;EACE,gBAAA;EACA,mBAAA;;AAhCN,IASE,aAqBE,MAGE;EACE,eAAA;EACA,aAAa,QAAb;EACA,gBAAA;EACA,cAAA;;AArCR,IAyCE,UACE;EACE,WAAA;EACA,eAAA;EACA,gBAAA;EACA,mBAAA;;AA9CN,IAyCE,UACE,GAKE;AA/CN,IAyCE,UACE,GAKK,CAAA,EAAG;EACJ,qBAAA;EACA,eAAA;EAUA,iBAAA;EACA,eAAA;EACA,gBAAA;;AA7DR,IAyCE,UACE,GAKE,GAGE;AAlDR,IAyCE,UACE,GAKK,CAAA,EAAG,EAGJ;EACE,eAAA;EACA,cAAA;EACA,iBAAA;;AArDV,IAyCE,UACE,GAKE,GAQE;AAvDR,IAyCE,UACE,GAKK,CAAA,EAAG,EAQJ;EACE,eAAA;EACA,cAAA;;AAzDV,IAyCE,UACE,GAqBE,GAAE,OACA;AAhER,IAyCE,UACE,GAqBE,GAAE,OACK,CAAA;EACH,cAAA;;AAjEV,IAyCE,UACE,GA0BE,GAAE,MACA;AArER,IAyCE,UACE,GA0BE,GAAE,MACK,CAAA;EACH,cAAA;;AAOV;EACE,aAAA;;AADF,gBAEE;EACE,aAAA;EACA,eAAA;EACA,iBAAA;EACA,uBAAA;EACA,YAAA;EAEA,iBAAA;;AATJ,gBAEE,OAQE;EACE,cAAA;EACA,WAAA;EACA,WAAA;EACA,mBAAA;EACA,kBAAA;;AACA,gBAdJ,OAQE,SAMG;EAAY,eAAA;;AAKnB;EAEE,gBAAA;EACA,aAAA;EACA,eAAA;EACA,MAAA;EACA,SAAA;EACA,UAAA;EACA,OAAA;EACA,QAAA;EACA,YAAA;EACA,aAAA;EACA,oCAAA;EACA,mBAAA;EACA,sBAAA;;AAdF,aAeE;EACE,WAAA;EACA,gBAAA;EACA,YAAA;EACA,gBAAA;EACA,uBAAA;;AApBJ,aAeE,kBAME;EACE,WAAA;EACA,aAAA;EACA,mBAAA;EACA,iBAAA;;AAzBN,aAeE,kBAME,cAME;EACE,WAAA;EACA,cAAA;EACA,iBAAA;EACA,kBAAA;;AA/BR,aAeE,kBAME,cAYE,KAAI,UAAU;EACZ,WAAA;;AAlCR,aAeE,kBAME,cAeE;EACE,eAAA;;AACA,aAvBN,kBAME,cAeE,cAEG;EACC,cAAA;;AAvCV,aAeE,kBAME,cAqBE;EACE,OAAA;EACA,yBAAA;EACA,yBAAA;EACA,YAAA;EACA,eAAA;EACA,cAAA;EACA,sBAAA;EACA,gBAAA;EACA,iBAAA;EACA,kBAAA;;AApDR,aAwDE;EAmBE,QAAQ,iBAAR;EACA,kBAAA;EACA,kBAAA;;AApBA,aADF,yBACG;EACC,UAAA;;AA1DN,aAwDE,yBAKE;EACE,WAAA;EACA,aAAA;EACA,kBAAA;EACA,kBAAA;EACA,cAAA;EACA,eAAA;;AAGF,aAdF,yBAcG;EACC,yBAAA;EACA,0BAAA;EACA,kBAAA;;AAzEN,aAwDE,yBAsBE;EACE,gBAAA;EACA,OAAO,iBAAP;EACA,kBAAA;;AAjFN,aAwDE,yBAsBE,GAIE;EACE,mBAAA;EACA,gBAAA;;AApFR,aAwDE,yBAsBE,GAIE,GAGE;EACE,qBAAA;EACA,eAAA;EACA,eAAA;EACA,cAAA;EACA,gBAAA;EACA,mBAAA;;AA3FV,aAwDE,yBAsBE,GAIE,GAWE;EACE,kBAAA;;AA9FV,aAwDE,yBAsBE,GAIE,GAWE,GAEE;EACE,gBAAA;EACA,cAAA;EACA,gBAAA;EACA,eAAA;;AAQZ,mBAAqC;EAEnC,aACE;IACE,YAAA;IACA,WAAA;IACA,YAAA;IACA,SAAA;;EALJ,aAOE;IACE,QAAQ,kBAAR;;EAIJ;IACE,gBAAA;IACA,kBAAA;IACA,MAAA;IACA,WAAA;;EAJF,IAKE;IACE,mBAAA;;EANJ,IAQE;IACE,aAAA;IACA,eAAA;IACA,OAAA;IACA,SAAA;IACA,uBAAA;IACA,WAAA;IACA,gCAAA;IACA,6BAAA;;EAhBJ,IAQE,UAUE;IACE,kBAAA;;EAKN;IACE,YAAA;IACA,sBAAA;IACA,cAAA;IACA,eAAA;IACA,WAAA;IACA,gBAAA;IACA,kBAAA;IACA,UAAA;IACA,uBAAA;;;ACvPJ;EACE,WAAA;EACA,mBAAA;EACA,mBAAA;EACA,sBAAA;EACA,aAAA;EACA,mBAAA;;AANF,aAOE;EACE,eAAA;EACA,cAAA;EACA,YAAA;EACA,gBAAA;EACA,iBAAA;;AAZJ,aAcE;EACE,OAAA;;AAfJ,aAcE,WAEE;EACE,eAAA;EACA,qBAAA;;AAlBN,aAcE,WAEE,EAGE;EACE,iBAAA;EACA,eAAA;EACA,aAAA;EACA,kBAAA;EACA,cAAA;EACA,eAAA;EACA,gBAAA;EACA,sBAAA;;AA3BR,aAcE,WAEE,EAaE,GAAE;EACA,cAAA;;AA9BR,aAcE,WAmBE;EACE,aAAA;;AAlCN,aAcE,WAmBE,EAEE;AAnCN,aAcE,WAmBE,EAEO,CAAA;EACH,gBAAA;EACA,cAAA;EACA,eAAA;EACA,qBAAA;;AAMR;EACE,iBAAA;;AAIF;EACE,WAAA;EACA,YAAA;EACA,eAAA;EACA,aAAA;;AAJF,MAKE;EACE,OAAA;EACA,aAAA;EACA,mBAAA;EACA,eAAA;;AATJ,MAWE;EACE,OAAA;EACA,aAAA;EACA,2BAAA;EACA,eAAA;;AAfJ,MAiBE,UACE;AAlBJ,MAiBY,CAAA,KACR;EACE,sBAAA;EACA,eAAA;EACA,6CAAA;EACA,yBAAA;EACA,iBAAA;EACA,YAAA;EACA,YAAA;EACA,eAAA;EACA,cAAA;EACA,kBAAA;EACA,qBAAA;;AA7BN,MAiBE,UAcE,EAAC;AA/BL,MAiBY,CAAA,KAcR,EAAC;EACC,YAAA;EACA,eAAA;EACA,yBAAA;;AAKN,mBAAqC;EACnC;IACE,wBAAA;;EAEF;IACE,WAAA;IACA,mBAAA;IACA,mBAAA;IACA,sBAAA;IACA,aAAA;IACA,sBAAA;IACA,kBAAA;IACA,mBAAA;IACA,gCAAA;;EATF,aAUE;IACE,eAAA;IACA,cAAA;IACA,YAAA;IACA,gBAAA;IACA,iBAAA;IACA,mBAAA;;EAhBJ,aAkBE;IACE,OAAA;;EAnBJ,aAkBE,WAEE;IACE,eAAA;IACA,qBAAA;;EAtBN,aAkBE,WAEE,EAGE;IACE,iBAAA;IACA,eAAA;IACA,aAAA;IACA,kBAAA;IACA,cAAA;IACA,eAAA;IACA,gBAAA;;EA9BR,aAkBE,WAeE;IACE,aAAA;;EAlCN,aAkBE,WAeE,EAEE;EAnCN,aAkBE,WAeE,EAEO,CAAA;IACH,gBAAA;IACA,cAAA;IACA,eAAA;IACA,qBAAA;;EAMR;IACE,WAAA;IACA,YAAA;IACA,kBAAA;IACA,mBAAA;IACA,aAAA;;EALF,MAME;IACE,OAAA;IACA,aAAA;IACA,mBAAA;IACA,eAAA;;EAVJ,MAYE;IACE,OAAA;IACA,aAAA;IACA,2BAAA;IACA,eAAA;;EAhBJ,MAkBE,UACE;EAnBJ,MAkBY,CAAA,KACR;IACE,sBAAA;IACA,eAAA;IACA,6CAAA;IACA,yBAAA;IACA,iBAAA;IACA,YAAA;IACA,YAAA;IACA,eAAA;IACA,cAAA;IACA,kBAAA;IACA,qBAAA;;EA9BN,MAkBE,UAcE,EAAC;EAhCL,MAkBY,CAAA,KAcR,EAAC;IACC,YAAA;IACA,eAAA;IACA,yBAAA;;;AChLR;EACE,iBAAA;EAYA,mBAAA;;AAbF,KAEE;EACE,qBAAA;EACA,cAAA;EACA,kBAAA;;AALJ,KAOE,EAAC;EACC,cAAA;;AARJ,KAUE,EAAC;EACC,SAAQ,GAAR;;AAKJ;EACE,mBAAA;;AADF,aAEE;EACE,mBAAA;EACA,cAAA;EACA,cAAA;;AALJ,aAOE;EACE,iBAAA;;AARJ,aAOE,cAEE;EACE,eAAA;EACA,qBAAA;;AAXN,aAOE,cAEE,EAGE;EACE,kBAAA;EACA,iBAAA;EACA,eAAA;EACA,aAAA;EACA,cAAA;EACA,eAAA;EACA,gBAAA;EACA,sBAAA;;AApBR,aAOE,cAEE,EAaE,YAAW;EACT,cAAA;;AAOR,mBAAqC;EACnC;IACE,mBAAA;;EADF,aAEE;IACE,mBAAA;IACA,cAAA;IACA,cAAA;;EALJ,aAOE;IACE,iBAAA;;EARJ,aAOE,cAEE;IACE,eAAA;IACA,qBAAA;;EAXN,aAOE,cAEE,EAGE;IACE,eAAA;IACA,gBAAA;IACA,qBAAA;IACA,iBAAA;IACA,cAAA;IACA,kBAAA;IACA,eAAA;IACA,aAAA;IACA,sBAAA;;EArBR,aAOE,cAEE,EAcE,YAAW;IACT,cAAA;;;ACxEV;EACE,WAAA;EACA,mBAAA;EACA,aAAA;EACA,sBAAA;;AAJF,eAKE;EACE,WAAA;EACA,kBAAA;EACA,iBAAA;EACA,aAAA;EACA,kBAAA;EACA,cAAA;EACA,eAAA;EACA,gBAAA;;AAbJ,eAeE;EACE,kBAAA;EACA,aAAA;EAcA,mBAAA;;AA/BJ,eAeE,WAGE;AAlBJ,eAeE,WAGO,CAAA;EACH,gBAAA;EACA,cAAA;EACA,eAAA;EACA,qBAAA;;AAtBN,eAeE,WASE;EACE,iBAAA;EACA,gBAAA;;AASN;EACE,iBAAA;EACA,eAAA;EACA,gBAAA;EACA,cAAA;EACA,gBAAA;;AALF,aAME;AANF,aAMU,QAAO,GAAG;AANpB,aAMwB,QAAO,GAAG;EAAK,yBAAA;;AANvC,aAOE;EAAQ,yBAAA;;AAPV,aAQE;EACE,6BAAA;EACA,gCAAA;EACA,gBAAA;EACA,iBAAA;EACA,eAAA;EACA,gBAAA;;AAdJ,aAQE,WAOE;EACE,gBAAA;EACA,mBAAA;EACA,cAAA;;AAlBN,aAqBE;EACE,qBAAA;EACA,cAAA;;AAvBJ,aAyBE;EACE,cAAA;EACA,eAAA;EACA,iBAAA;EACA,gBAAA;EACA,mBAAA;;AA9BJ,aAyBE,EAME;EACE,UAAA;;AAhCN,aAmCE;AAnCF,aAmCK,CAAA;EACD,iBAAA;;AApCJ,aAmCE,GAEE;AArCJ,aAmCK,CAAA,EAED;EACE,gBAAA;EAIA,cAAA;EACA,eAAA;EACA,iBAAA;EACA,gBAAA;EACA,mBAAA;EACA,kBAAA;EACA,eAAA;;AATA,aAJJ,GAEE,GAEG;AAAD,aAJD,CAAA,EAED,GAEG;EACC,SAAS,IAAT;;AAxCR,aAoDE;EACE,cAAA;EACA,aAAA;;AAtDJ,aAoDE,IAKE;EACE,iBAAA;;AA1DN,aA8DE;EACE,cAAA;EACA,gBAAA;EACA,mBAAA;;AAjEJ,aAoEE;EACE,cAAA;EACA,gBAAA;EACA,mBAAA;;AAvEJ,aA0EE;EACE,cAAA;EACA,gBAAA;EACA,mBAAA;;AA7EJ,aAgFE;EACE,cAAA;EACA,gBAAA;EACA,mBAAA;;AAnFJ,aAsFE;EACE,cAAA;EACA,gBAAA;EACA,mBAAA;;AAzFJ,aA4FE;EACE,cAAA;EACA,gBAAA;EACA,mBAAA;;AAIJ;EACE,cAAA;;AAEF;EACE,cAAA;;AAGF,aAAc,GAAG;EACf,eAAA;;AC5IF;EAOE,kBAAA;EACA,WAAA;EACA,gBAAA;EACA,mBAAA;EACA,UAAA;EACA,kCAAA;;AAZF,YACE;EACE,eAAA;EACA,aAAa,QAAb;EACA,gBAAA;EACA,cAAA;;AAUJ;EACE,aAAA;;AAGF;EACE,uBAAA;EACA,mBAAA;EACA,kBAAA;EACA,aAAA;EACA,YAAA;EACA,aAAA;EACA,mBAAA;EACA,uBAAA;;AARF,gBAUE;EACE,YAAA;;AAXJ,gBAaE;EACE,gBAAA;EACA,OAAA;;AAIJ,mBAAqC;EACnC;IACE,OAAA;IACA,WAAA;IACA,sBAAA;IACA,YAAA;IACA,sBAAA;IACA,aAAA;IACA,mBAAA;;EAPF,gBASE;IACE,YAAA;;EAVJ,gBAYE;IACE,OAAA;IACA,WAAW,kBAAX;;;AAKN,mBAAoC;EAClC;IACE,WAAA;IACA,sBAAA;IACA,YAAA;IACA,aAAA;IACA,sBAAA;IACA,sBAAA;IACA,aAAA;;EAPF,gBAQE;IACE,WAAA;;EATJ,gBAWE;IACE,eAAA;IACA,OAAA;;EAIJ;IACE,aAAA;;EAGF;IACE,cAAA;IAOA,kBAAA;IACA,WAAA;IACA,aAAA;IACA,mBAAA;;EAXF,mBAEE;IACE,eAAA;IACA,aAAa,QAAb;IACA,gBAAA;IACA,cAAA;;;AC1FN;EACE,WAAA;EACA,aAAA;EACA,mBAAA;EACA,sBAAA;;AAJF,iBAKE;EACE,mBAAA;EACA,kBAAA;EACA,aAAA;EACA,mBAAA;EACA,sBAAA;;AAVJ,iBAKE,eAME;EACE,YAAA;EACA,eAAA;EACA,gBAAA;EACA,aAAA;EACA,kBAAA;EACA,WAAA;EACA,YAAA;EACA,kBAAA;EACA,YAAA;EACA,wBAAA;;AArBN,iBAKE,eAkBE,OAAM;EACJ,4BAAA;;AAxBN,iBA2BE;EACE,aAAA;EACA,mBAAA;EACA,sBAAA;;AA9BJ,iBA2BE,sBAIE;EACE,gBAAA;EACA,iBAAA;;AAjCN,iBA2BE,sBAQE;EACE,kBAAA;EACA,eAAA;EACA,cAAA;;AAKN,mBAAqC;EACnC,iBACE,sBACE;IACE,eAAA;IACA,iBAAA;;EAJN,iBACE,sBAKE;IACE,kBAAA;IACA,eAAA;IACA,cAAA;;;ACnDR,mBACE,cACC;EACC,eAAA;EACC,cAAA;;AAJL,mBACE,cAKE;EACE,gBAAA;;AAPN,mBACE,cAKE,GAEE;EACE,aAAA;EACA,mBAAA;EACA,mBAAA;EACA,mBAAA;;AAZR,mBACE,cAKE,GAEE,GAKE;EACE,cAAA;EACA,kBAAA;EACA,eAAA;;AAhBV,mBACE,cAKE,GAEE,GAaE;EACE,qBAAA;EACA,iBAAA;EACA,cAAA;;AAxBV,mBACE,cAKE,GAEE,GAaE,EAIE;EACE,cAAA;EACA,sBAAA;;AA3BZ,mBACE,cAKE,GAEE,GAaE,EAQE,KAAI;EACF,cAAA;;AAQZ,mBAAqC;EACnC,mBACE,cACE;IACE,eAAA;IACA,cAAA;;EAJN,mBACE,cAKE;IACE,gBAAA;IACA,iBAAA;;EARN,mBACE,cAKE,GAGE;IACE,aAAA;IACA,mBAAA;IACA,mBAAA;IACA,mBAAA;;EAbR,mBACE,cAKE,GAGE,GAKE;IACE,cAAA;IACA,kBAAA;IACA,eAAA;IACA,eAAA;;EAlBV,mBACE,cAKE,GAGE,GAWE;IACE,eAAA;;EArBV,mBACE,cAKE,GAGE,GAcE;IACE,eAAA;IACA,gBAAA;IACA,qBAAA;IACA,iBAAA;IACA,cAAA;;EA5BV,mBACE,cAKE,GAGE,GAcE,EAME;IACE,cAAA;;;ACvEd;AACA;EACE,cAAA;EACA,cAAA;EACA,UAAA;EACA,eAAA;EACA,cAAA;EACA,mBAAA;EACA,gBAAA;;AAEF;AACA;EACE,8BAA8B,eAAe,4BAA7C;;AAEF;EACE,gBAAA;EACA,qBAAA;EACA,WAAA;EACA,gBAAA;EACA,kBAAA;EACA,eAAA;;AAEF;EACE,aAAA;;AAEF,GAAI;EACF,UAAA;EACA,cAAA;EACA,gBAAA;EACA,iBAAA;;AAEF;EACE,kBAAA;;AAEF,UAAW;EACT,YAAA;EACA,SAAA;EACA,eAAA;;AAEF,UAAW;EACT,SAAA;EACA,WAAA;EACA,YAAA;;AAEF,UAAW;EACT,YAAA;EACA,UAAA;;AAEF,UAAW;EACT,cAAA;EACA,cAAA;EACA,gBAAA;EACA,kBAAA;;AAEF,UAAW,WAAW;EACpB,YAAA;EACA,cAAA;;AAEF,UAAW,WAAW,EAAC;EACrB,4BAAA;;AAEF,UAAW,QAAQ;EACjB,kBAAA;EACA,mBAAA;EACA,cAAA;EACA,iBAAA;EACA,yBAAA;;AAEF,UAAW,MAAM;EACf,WAAA;EACA,kBAAA;EACA,mBAAA;EACA,yBAAA;;AAEF,UAAW;EACT,YAAA;;AAEF;EACE,yBAAA;EACA,sBAAA;EACA,qBAAA;EACA,iBAAA;;AAEF,KAAM;EACJ,WAAA;;AAEF,KAAM,MAAM;EACV,YAAA;;AAEF,GAAI;EACF,gBAAA;;AAEF,GAAI;EACF,gBAAA;;AAEF,GAAI;EACF,cAAA;;AAEF,GAAI;EACF,cAAA;;AAEF,GAAI;AACJ,GAAI;AACJ,GAAI;AACJ,GAAI;AACJ,GAAI,MAAM;AACV,GAAI,KAAK,KAAK;AACd,GAAI,KAAK;AACT,GAAI,KAAK;AACT,GAAI,MAAM;AACV,GAAI,KAAK;AACT,GAAI,KAAK;AACT,GAAI,KAAK;EACP,cAAA;;AAEF,GAAI;AACJ,GAAI;AACJ,GAAI;AACJ,GAAI;AACJ,GAAI;AACJ,GAAI;AACJ,GAAI;EACF,cAAA;;AAEF,GAAI,MAAM,OAAO;AACjB,GAAI,KAAK,OAAO;AAChB,GAAI;AACJ,GAAI;AACJ,GAAI;AACJ,GAAI;AACJ,GAAI,MAAM;AACV,GAAI,KAAK;AACT,GAAI;AACJ,GAAI;AACJ,GAAI;EACF,cAAA;;AAEF,GAAI;AACJ,GAAI,KAAK;EACP,cAAA;;AAEF,GAAI;AACJ,GAAI,QAAQ;AACZ,GAAI,QAAQ;AACZ,GAAI,MAAM,UAAU;AACpB,GAAI,MAAM,OAAO;AACjB,GAAI,MAAM;AACV,GAAI,YAAY;AAChB,GAAI,cAAc;EAChB,cAAA;;AAEF,GAAI;AACJ,GAAI,YAAY;EACd,cAAA;;ACxJF;EACE,WAAA;EACA,mBAAA;EACA,aAAA;EACA,sBAAA;EACA,cAAA;EACA,mBAAA;;AANF,OAOE;EACE,aAAa,cAAc,kBAAkB,oBAAoB,8BAAjE;EACA,eAAA;EACA,eAAA;EACA,gBAAA;EACA,gBAAA;EACA,kBAAA;EACA,qBAAA;EACA,iBAAA;;AAfJ,OAOE,EASE;EACE,gBAAA;EACA,aAAa,cAAc,kBAAkB,oBAAoB,8BAAjE;EACA,eAAA;EACA,cAAA;;AApBN,OAOE,EAeE,KACE;EACE,gBAAA;EACA,aAAa,cAAc,kBAAkB,oBAAoB,8BAAjE;EACA,eAAA;EACA,cAAA;EACA,qBAAA;;AA5BR,OAOE,EAeE,KAQE,EAAC;EACC,cAAA;;AAMR,YAAY;EACV,cAAA;EACA,eAAA;EACA,eAAA;EACA,gBAAA;;AAJF,YAAY,YAKV;EACE,qBAAA;EACA,aAAA;EACA,yBAAA;EACA,YAAA;EACA,WAAA;EACA,mBAAA;EACA,kBAAA;;AAZJ,YAAY,YAKV,GAQE;EACE,qBAAA;;AAdN,YAAY,YAKV,GAQE,EAEE,KACE;EACE,iBAAA;EACA,YAAA;;AAlBV,YAAY,YAuBV,GAAE;EACA,yBAAA;;AAIJ,mBAAoC;EAClC;IACE,sBAAA;IACA,kBAAA;IACA,mBAAA;;EAHF,OAIE;IACE,qBAAA;IACA,aAAa,cAAc,kBAAkB,oBAAoB,8BAAjE;IACA,eAAA;IACA,eAAA;IACA,gBAAA;IACA,gBAAA;IACA,kBAAA;IACA,iBAAA;;EAZJ,OAIE,EASE,KACE;IACE,eAAA;IACA,gBAAA;IACA,aAAa,cAAc,kBAAkB,oBAAoB,8BAAjE;IACA,eAAA;IACA,cAAA;IACA,qBAAA;;EApBR,OAIE,EASE,KASE,EAAC;IACC,cAAA;;;ACxFV;EAEE,YAAA;;AAEA,YAAC;EACC,QAAA;;AAGF,YAAC;EACC,6BAAA;EACA,0BAAA;EACA,kBAAA;;AAXJ,YAgBE;EACE,kBAAA;EACA,eAAA;EACA,YAAA;;AAnBJ,YAqBE;EACE,YAAA;EACA,sBAAA;EACA,8BAAA;EACA,gBAAA;EACA,kBAAA;;AA1BJ,YAqBE,GAME;EACE,cAAA;EACA,iBAAA;EACA,mBAAA;EACA,qBAAA;EACA,cAAA;EACA,eAAA;;AAjCN,YAqBE,GAME,EAOE;EACE,qBAAA;;AAnCR,YAuCE,GAAE;EACA,8BAAA;;AACA,YAFF,GAAE,OAEC;EACC,cAAA;;AA1CN,YA6CE,GAAE;EACA,8BAAA;;AACA,YAFF,GAAE,MAEC;EACC,cAAA;;AAGJ,YAAC,KAAG;EACF,4BAAA;;AAIJ;EACE,eAAA;EACA,SAAA;EACA,YAAA;;AAGA,UAAC;EACC,QAAA;;AAGF,UAAC;EACC,yBAAA;EACA,0BAAA;EACA,kBAAA;;AAIJ,mBAAqC;EAEnC;IACE,aAAA;;;AC9EJ,gBACE;EACE,cAAA","file":"aircloud.css"}
--------------------------------------------------------------------------------
/source/css/aircloud.less:
--------------------------------------------------------------------------------
1 | // HINT: dev:
2 | // npx lessc aircloud.less aircloud.css
3 | @import "../_less/variables";
4 | @import "../_less/common";
5 | @import "../_less/nav";
6 | @import "../_less/about";
7 | @import "../_less/index";
8 | @import "../_less/tag";
9 | @import "../_less/post";
10 | @import "../_less/page";
11 | @import "../_less/layout";
12 |
13 | @import "../_less/donate";
14 |
15 | @import "../_less/archive";
16 |
17 | @import "../_less/hightlight";
18 | // _partial:
19 | @import "../_less/_partial/footer";
20 |
21 | @import "../_less/toc";
22 |
23 | @import "../_less/gitment";
24 |
--------------------------------------------------------------------------------
/source/css/gitment.css:
--------------------------------------------------------------------------------
1 | .gitment-container {
2 | font-family: sans-serif;
3 | font-size: 14px;
4 | line-height: 1.5;
5 | color: #333;
6 | word-wrap: break-word;
7 | }
8 |
9 | .gitment-container * {
10 | box-sizing: border-box;
11 | }
12 |
13 | .gitment-container *:disabled {
14 | cursor: not-allowed;
15 | }
16 |
17 | .gitment-container a,
18 | .gitment-container a:visited {
19 | cursor: pointer;
20 | text-decoration: none;
21 | }
22 |
23 | .gitment-container a:hover {
24 | text-decoration: underline;
25 | }
26 |
27 | .gitment-container .gitment-hidden {
28 | display: none;
29 | }
30 |
31 | .gitment-container .gitment-spinner-icon {
32 | fill: #333;
33 |
34 | -webkit-animation: gitment-spin 1s steps(12) infinite;
35 | animation: gitment-spin 1s steps(12) infinite;
36 | }
37 |
38 | @-webkit-keyframes gitment-spin {
39 | 100% {
40 | -webkit-transform: rotate(360deg);
41 | transform: rotate(360deg)
42 | }
43 | }
44 |
45 | @keyframes gitment-spin {
46 | 100% {
47 | -webkit-transform: rotate(360deg);
48 | transform: rotate(360deg)
49 | }
50 | }
51 |
52 | .gitment-root-container {
53 | margin: 19px 0;
54 | }
55 |
56 | .gitment-header-container {
57 | margin: 19px 0;
58 | }
59 |
60 | .gitment-header-like-btn,
61 | .gitment-comment-like-btn {
62 | cursor: pointer;
63 | }
64 |
65 | .gitment-comment-like-btn {
66 | float: right;
67 | }
68 |
69 | .gitment-comment-like-btn.liked {
70 | color: #F44336;
71 | }
72 |
73 | .gitment-header-like-btn svg {
74 | vertical-align: middle;
75 | height: 30px;
76 | }
77 |
78 | .gitment-comment-like-btn svg {
79 | vertical-align: middle;
80 | height: 20px;
81 | }
82 |
83 | .gitment-header-like-btn.liked svg,
84 | .gitment-comment-like-btn.liked svg {
85 | fill: #F44336;
86 | }
87 |
88 | a.gitment-header-issue-link,
89 | a.gitment-header-issue-link:visited {
90 | float: right;
91 | line-height: 30px;
92 | color: #666;
93 | }
94 |
95 | a.gitment-header-issue-link:hover {
96 | color: #666;
97 | }
98 |
99 | .gitment-comments-loading,
100 | .gitment-comments-error,
101 | .gitment-comments-empty {
102 | text-align: center;
103 | margin: 50px 0;
104 | }
105 |
106 | .gitment-comments-list {
107 | list-style: none;
108 | padding-left: 0;
109 | margin: 0 0 38px;
110 | }
111 |
112 | .gitment-comment,
113 | .gitment-editor-container {
114 | position: relative;
115 | min-height: 60px;
116 | padding-left: 60px;
117 | margin: 19px 0;
118 | }
119 |
120 | .gitment-comment-avatar,
121 | .gitment-editor-avatar {
122 | float: left;
123 | margin-left: -60px;
124 | }
125 |
126 | .gitment-comment-avatar,
127 | .gitment-comment-avatar-img,
128 | .gitment-comment-avatar,
129 | .gitment-editor-avatar-img,
130 | .gitment-editor-avatar svg {
131 | width: 44px;
132 | height: 44px;
133 | border-radius: 3px;
134 | }
135 |
136 | .gitment-editor-avatar .gitment-github-icon {
137 | fill: #fff;
138 | background-color: #333;
139 | }
140 |
141 | .gitment-comment-main,
142 | .gitment-editor-main {
143 | position: relative;
144 | border: 1px solid #CFD8DC;
145 | border-radius: 0;
146 | }
147 |
148 | .gitment-editor-main::before,
149 | .gitment-editor-main::after,
150 | .gitment-comment-main::before,
151 | .gitment-comment-main::after {
152 | position: absolute;
153 | top: 11px;
154 | left: -16px;
155 | display: block;
156 | width: 0;
157 | height: 0;
158 | pointer-events: none;
159 | content: "";
160 | border-color: transparent;
161 | border-style: solid solid outset;
162 | }
163 |
164 | .gitment-editor-main::before,
165 | .gitment-comment-main::before {
166 | border-width: 8px;
167 | border-right-color: #CFD8DC;
168 | }
169 |
170 | .gitment-editor-main::after,
171 | .gitment-comment-main::after {
172 | margin-top: 1px;
173 | margin-left: 2px;
174 | border-width: 7px;
175 | border-right-color: #fff;
176 | }
177 |
178 | .gitment-comment-header {
179 | margin: 12px 15px;
180 | color: #666;
181 | background-color: #fff;
182 | border-radius: 3px;
183 | }
184 |
185 | .gitment-editor-header {
186 | padding: 0;
187 | margin: 0;
188 | border-bottom: 1px solid #CFD8DC;
189 | }
190 |
191 | a.gitment-comment-name,
192 | a.gitment-comment-name:visited {
193 | font-weight: 600;
194 | color: #666;
195 | }
196 |
197 | .gitment-editor-tabs {
198 | margin-bottom: -1px;
199 | margin-left: -1px;
200 | }
201 |
202 | .gitment-editor-tab {
203 | display: inline-block;
204 | padding: 11px 12px;
205 | font-size: 14px;
206 | line-height: 20px;
207 | color: #666;
208 | text-decoration: none;
209 | background-color: transparent;
210 | border-width: 0 1px;
211 | border-style: solid;
212 | border-color: transparent;
213 | border-radius: 0;
214 |
215 | white-space: nowrap;
216 | cursor: pointer;
217 | user-select: none;
218 |
219 | outline: none;
220 | }
221 |
222 | .gitment-editor-tab.gitment-selected {
223 | color: #333;
224 | background-color: #fff;
225 | border-color: #CFD8DC;
226 | }
227 |
228 | .gitment-editor-login {
229 | float: right;
230 | margin-top: -30px;
231 | margin-right: 15px;
232 | }
233 |
234 | a.gitment-footer-project-link,
235 | a.gitment-footer-project-link:visited,
236 | a.gitment-editor-login-link,
237 | a.gitment-editor-login-link:visited {
238 | color: #2196F3;
239 | }
240 |
241 | a.gitment-editor-logout-link,
242 | a.gitment-editor-logout-link:visited {
243 | color: #666;
244 | }
245 |
246 | a.gitment-editor-logout-link:hover {
247 | color: #2196F3;
248 | text-decoration: none;
249 | }
250 |
251 | .gitment-comment-body {
252 | position: relative;
253 | margin: 12px 15px;
254 | overflow: hidden;
255 | border-radius: 3px;
256 | }
257 |
258 | .gitment-comment-body-folded {
259 | cursor: pointer;
260 | }
261 |
262 | .gitment-comment-body-folded::before {
263 | display: block !important;
264 | content: "";
265 | position: absolute;
266 | width: 100%;
267 | left: 0;
268 | top: 0;
269 | bottom: 50px;
270 | pointer-events: none;
271 | background: -webkit-linear-gradient(top, rgba(255, 255, 255, 0), rgba(255, 255, 255, .9));
272 | background: linear-gradient(180deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, .9));
273 | }
274 |
275 | .gitment-comment-body-folded::after {
276 | display: block !important;
277 | content: "Click to Expand" !important;
278 | text-align: center;
279 | color: #666;
280 | position: absolute;
281 | width: 100%;
282 | height: 50px;
283 | line-height: 50px;
284 | left: 0;
285 | bottom: 0;
286 | pointer-events: none;
287 | background: rgba(255, 255, 255, .9);
288 | }
289 |
290 | .gitment-editor-body {
291 | margin: 0;
292 | }
293 |
294 | .gitment-comment-body > *:first-child,
295 | .gitment-editor-preview > *:first-child {
296 | margin-top: 0 !important;
297 | }
298 |
299 | .gitment-comment-body > *:last-child,
300 | .gitment-editor-preview > *:last-child {
301 | margin-bottom: 0 !important;
302 | }
303 |
304 | .gitment-editor-body textarea {
305 | display: block;
306 | width: 100%;
307 | min-height: 150px;
308 | max-height: 500px;
309 | padding: 16px;
310 | resize: vertical;
311 |
312 | max-width: 100%;
313 | margin: 0;
314 | font-size: 14px;
315 | line-height: 1.6;
316 |
317 | background-color: #fff;
318 |
319 | color: #333;
320 | vertical-align: middle;
321 | border: none;
322 | border-radius: 0;
323 | outline: none;
324 | box-shadow: none;
325 |
326 | overflow: visible;
327 | }
328 |
329 | .gitment-editor-body textarea:focus {
330 | background-color: #fff;
331 | }
332 |
333 | .gitment-editor-preview {
334 | min-height: 150px;
335 |
336 | padding: 16px;
337 | background-color: transparent;
338 |
339 | width: 100%;
340 | font-size: 14px;
341 |
342 | line-height: 1.5;
343 | word-wrap: break-word;
344 | }
345 |
346 | .gitment-editor-footer {
347 | padding: 0;
348 | margin-top: 10px;
349 | }
350 |
351 | .gitment-editor-footer::after {
352 | display: table;
353 | clear: both;
354 | content: "";
355 | }
356 |
357 | a.gitment-editor-footer-tip {
358 | display: inline-block;
359 | padding-top: 10px;
360 | font-size: 12px;
361 | color: #666;
362 | }
363 |
364 | a.gitment-editor-footer-tip:hover {
365 | color: #2196F3;
366 | text-decoration: none;
367 | }
368 |
369 | .gitment-comments-pagination {
370 | list-style: none;
371 | text-align: right;
372 | border-radius: 0;
373 | margin: -19px 0 19px 0;
374 | }
375 |
376 | .gitment-comments-page-item {
377 | display: inline-block;
378 | cursor: pointer;
379 | border: 1px solid #CFD8DC;
380 | margin-left: -1px;
381 | padding: .25rem .5rem;
382 | }
383 |
384 | .gitment-comments-page-item:hover {
385 | background-color: #f5f5f5;
386 | }
387 |
388 | .gitment-comments-page-item.gitment-selected {
389 | background-color: #f5f5f5;
390 | }
391 |
392 | .gitment-editor-submit,
393 | .gitment-comments-init-btn {
394 | color: #fff;
395 | background-color: #00BCD4;
396 |
397 | position: relative;
398 | display: inline-block;
399 | padding: 7px 13px;
400 | font-size: 14px;
401 | font-weight: 600;
402 | line-height: 20px;
403 | white-space: nowrap;
404 | vertical-align: middle;
405 | cursor: pointer;
406 | -webkit-user-select: none;
407 | -moz-user-select: none;
408 | -ms-user-select: none;
409 | user-select: none;
410 | background-size: 110% 110%;
411 | border: none;
412 | -webkit-appearance: none;
413 | -moz-appearance: none;
414 | appearance: none;
415 | }
416 |
417 | .gitment-editor-submit:hover,
418 | .gitment-comments-init-btn:hover {
419 | background-color: #00ACC1;
420 | }
421 |
422 | .gitment-comments-init-btn:disabled,
423 | .gitment-editor-submit:disabled {
424 | color: rgba(255,255,255,0.75);
425 | background-color: #4DD0E1;
426 | box-shadow: none;
427 | }
428 |
429 | .gitment-editor-submit {
430 | float: right;
431 | }
432 |
433 | .gitment-footer-container {
434 | margin-top: 30px;
435 | margin-bottom: 20px;
436 | text-align: right;
437 | font-size: 12px;
438 | }
439 |
440 | /*
441 | * Markdown CSS
442 | * Copied from https://github.com/sindresorhus/github-markdown-css
443 | */
444 | .gitment-markdown {
445 | -ms-text-size-adjust: 100%;
446 | -webkit-text-size-adjust: 100%;
447 | line-height: 1.5;
448 | color: #333;
449 | font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
450 | font-size: 16px;
451 | line-height: 1.5;
452 | word-wrap: break-word;
453 | }
454 |
455 | .gitment-markdown .pl-c {
456 | color: #969896;
457 | }
458 |
459 | .gitment-markdown .pl-c1,
460 | .gitment-markdown .pl-s .pl-v {
461 | color: #0086b3;
462 | }
463 |
464 | .gitment-markdown .pl-e,
465 | .gitment-markdown .pl-en {
466 | color: #795da3;
467 | }
468 |
469 | .gitment-markdown .pl-smi,
470 | .gitment-markdown .pl-s .pl-s1 {
471 | color: #333;
472 | }
473 |
474 | .gitment-markdown .pl-ent {
475 | color: #63a35c;
476 | }
477 |
478 | .gitment-markdown .pl-k {
479 | color: #a71d5d;
480 | }
481 |
482 | .gitment-markdown .pl-s,
483 | .gitment-markdown .pl-pds,
484 | .gitment-markdown .pl-s .pl-pse .pl-s1,
485 | .gitment-markdown .pl-sr,
486 | .gitment-markdown .pl-sr .pl-cce,
487 | .gitment-markdown .pl-sr .pl-sre,
488 | .gitment-markdown .pl-sr .pl-sra {
489 | color: #183691;
490 | }
491 |
492 | .gitment-markdown .pl-v,
493 | .gitment-markdown .pl-smw {
494 | color: #ed6a43;
495 | }
496 |
497 | .gitment-markdown .pl-bu {
498 | color: #b52a1d;
499 | }
500 |
501 | .gitment-markdown .pl-ii {
502 | color: #f8f8f8;
503 | background-color: #b52a1d;
504 | }
505 |
506 | .gitment-markdown .pl-c2 {
507 | color: #f8f8f8;
508 | background-color: #b52a1d;
509 | }
510 |
511 | .gitment-markdown .pl-c2::before {
512 | content: "^M";
513 | }
514 |
515 | .gitment-markdown .pl-sr .pl-cce {
516 | font-weight: bold;
517 | color: #63a35c;
518 | }
519 |
520 | .gitment-markdown .pl-ml {
521 | color: #693a17;
522 | }
523 |
524 | .gitment-markdown .pl-mh,
525 | .gitment-markdown .pl-mh .pl-en,
526 | .gitment-markdown .pl-ms {
527 | font-weight: bold;
528 | color: #1d3e81;
529 | }
530 |
531 | .gitment-markdown .pl-mq {
532 | color: #008080;
533 | }
534 |
535 | .gitment-markdown .pl-mi {
536 | font-style: italic;
537 | color: #333;
538 | }
539 |
540 | .gitment-markdown .pl-mb {
541 | font-weight: bold;
542 | color: #333;
543 | }
544 |
545 | .gitment-markdown .pl-md {
546 | color: #bd2c00;
547 | background-color: #ffecec;
548 | }
549 |
550 | .gitment-markdown .pl-mi1 {
551 | color: #55a532;
552 | background-color: #eaffea;
553 | }
554 |
555 | .gitment-markdown .pl-mc {
556 | color: #ef9700;
557 | background-color: #ffe3b4;
558 | }
559 |
560 | .gitment-markdown .pl-mi2 {
561 | color: #d8d8d8;
562 | background-color: #808080;
563 | }
564 |
565 | .gitment-markdown .pl-mdr {
566 | font-weight: bold;
567 | color: #795da3;
568 | }
569 |
570 | .gitment-markdown .pl-mo {
571 | color: #1d3e81;
572 | }
573 |
574 | .gitment-markdown .pl-ba {
575 | color: #595e62;
576 | }
577 |
578 | .gitment-markdown .pl-sg {
579 | color: #c0c0c0;
580 | }
581 |
582 | .gitment-markdown .pl-corl {
583 | text-decoration: underline;
584 | color: #183691;
585 | }
586 |
587 | .gitment-markdown .octicon {
588 | display: inline-block;
589 | vertical-align: text-top;
590 | fill: currentColor;
591 | }
592 |
593 | .gitment-markdown a {
594 | background-color: transparent;
595 | -webkit-text-decoration-skip: objects;
596 | }
597 |
598 | .gitment-markdown a:active,
599 | .gitment-markdown a:hover {
600 | outline-width: 0;
601 | }
602 |
603 | .gitment-markdown strong {
604 | font-weight: inherit;
605 | }
606 |
607 | .gitment-markdown strong {
608 | font-weight: bolder;
609 | }
610 |
611 | .gitment-markdown h1 {
612 | font-size: 2em;
613 | margin: 0.67em 0;
614 | }
615 |
616 | .gitment-markdown img {
617 | border-style: none;
618 | }
619 |
620 | .gitment-markdown svg:not(:root) {
621 | overflow: hidden;
622 | }
623 |
624 | .gitment-markdown code,
625 | .gitment-markdown kbd,
626 | .gitment-markdown pre {
627 | font-family: monospace, monospace;
628 | font-size: 1em;
629 | }
630 |
631 | .gitment-markdown hr {
632 | box-sizing: content-box;
633 | height: 0;
634 | overflow: visible;
635 | }
636 |
637 | .gitment-markdown input {
638 | font: inherit;
639 | margin: 0;
640 | }
641 |
642 | .gitment-markdown input {
643 | overflow: visible;
644 | }
645 |
646 | .gitment-markdown [type="checkbox"] {
647 | box-sizing: border-box;
648 | padding: 0;
649 | }
650 |
651 | .gitment-markdown * {
652 | box-sizing: border-box;
653 | }
654 |
655 | .gitment-markdown input {
656 | font-family: inherit;
657 | font-size: inherit;
658 | line-height: inherit;
659 | }
660 |
661 | .gitment-markdown a {
662 | color: #0366d6;
663 | text-decoration: none;
664 | }
665 |
666 | .gitment-markdown a:hover {
667 | text-decoration: underline;
668 | }
669 |
670 | .gitment-markdown strong {
671 | font-weight: 600;
672 | }
673 |
674 | .gitment-markdown hr {
675 | height: 0;
676 | margin: 15px 0;
677 | overflow: hidden;
678 | background: transparent;
679 | border: 0;
680 | border-bottom: 1px solid #dfe2e5;
681 | }
682 |
683 | .gitment-markdown hr::before {
684 | display: table;
685 | content: "";
686 | }
687 |
688 | .gitment-markdown hr::after {
689 | display: table;
690 | clear: both;
691 | content: "";
692 | }
693 |
694 | .gitment-markdown table {
695 | border-spacing: 0;
696 | border-collapse: collapse;
697 | }
698 |
699 | .gitment-markdown td,
700 | .gitment-markdown th {
701 | padding: 0;
702 | }
703 |
704 | .gitment-markdown h1,
705 | .gitment-markdown h2,
706 | .gitment-markdown h3,
707 | .gitment-markdown h4,
708 | .gitment-markdown h5,
709 | .gitment-markdown h6 {
710 | margin-top: 0;
711 | margin-bottom: 0;
712 | }
713 |
714 | .gitment-markdown h1 {
715 | font-size: 32px;
716 | font-weight: 600;
717 | }
718 |
719 | .gitment-markdown h2 {
720 | font-size: 24px;
721 | font-weight: 600;
722 | }
723 |
724 | .gitment-markdown h3 {
725 | font-size: 20px;
726 | font-weight: 600;
727 | }
728 |
729 | .gitment-markdown h4 {
730 | font-size: 16px;
731 | font-weight: 600;
732 | }
733 |
734 | .gitment-markdown h5 {
735 | font-size: 14px;
736 | font-weight: 600;
737 | }
738 |
739 | .gitment-markdown h6 {
740 | font-size: 12px;
741 | font-weight: 600;
742 | }
743 |
744 | .gitment-markdown p {
745 | margin-top: 0;
746 | margin-bottom: 10px;
747 | }
748 |
749 | .gitment-markdown blockquote {
750 | margin: 0;
751 | }
752 |
753 | .gitment-markdown ul,
754 | .gitment-markdown ol {
755 | padding-left: 0;
756 | margin-top: 0;
757 | margin-bottom: 0;
758 | }
759 |
760 | .gitment-markdown ol ol,
761 | .gitment-markdown ul ol {
762 | list-style-type: lower-roman;
763 | }
764 |
765 | .gitment-markdown ul ul ol,
766 | .gitment-markdown ul ol ol,
767 | .gitment-markdown ol ul ol,
768 | .gitment-markdown ol ol ol {
769 | list-style-type: lower-alpha;
770 | }
771 |
772 | .gitment-markdown dd {
773 | margin-left: 0;
774 | }
775 |
776 | .gitment-markdown code {
777 | font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace;
778 | font-size: 12px;
779 | }
780 |
781 | .gitment-markdown pre {
782 | margin-top: 0;
783 | margin-bottom: 0;
784 | font: 12px "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace;
785 | }
786 |
787 | .gitment-markdown .octicon {
788 | vertical-align: text-bottom;
789 | }
790 |
791 | .gitment-markdown .pl-0 {
792 | padding-left: 0 !important;
793 | }
794 |
795 | .gitment-markdown .pl-1 {
796 | padding-left: 4px !important;
797 | }
798 |
799 | .gitment-markdown .pl-2 {
800 | padding-left: 8px !important;
801 | }
802 |
803 | .gitment-markdown .pl-3 {
804 | padding-left: 16px !important;
805 | }
806 |
807 | .gitment-markdown .pl-4 {
808 | padding-left: 24px !important;
809 | }
810 |
811 | .gitment-markdown .pl-5 {
812 | padding-left: 32px !important;
813 | }
814 |
815 | .gitment-markdown .pl-6 {
816 | padding-left: 40px !important;
817 | }
818 |
819 | .gitment-markdown::before {
820 | display: table;
821 | content: "";
822 | }
823 |
824 | .gitment-markdown::after {
825 | display: table;
826 | clear: both;
827 | content: "";
828 | }
829 |
830 | .gitment-markdown>*:first-child {
831 | margin-top: 0 !important;
832 | }
833 |
834 | .gitment-markdown>*:last-child {
835 | margin-bottom: 0 !important;
836 | }
837 |
838 | .gitment-markdown a:not([href]) {
839 | color: inherit;
840 | text-decoration: none;
841 | }
842 |
843 | .gitment-markdown .anchor {
844 | float: left;
845 | padding-right: 4px;
846 | margin-left: -20px;
847 | line-height: 1;
848 | }
849 |
850 | .gitment-markdown .anchor:focus {
851 | outline: none;
852 | }
853 |
854 | .gitment-markdown p,
855 | .gitment-markdown blockquote,
856 | .gitment-markdown ul,
857 | .gitment-markdown ol,
858 | .gitment-markdown dl,
859 | .gitment-markdown table,
860 | .gitment-markdown pre {
861 | margin-top: 0;
862 | margin-bottom: 16px;
863 | }
864 |
865 | .gitment-markdown hr {
866 | height: 0.25em;
867 | padding: 0;
868 | margin: 24px 0;
869 | background-color: #e1e4e8;
870 | border: 0;
871 | }
872 |
873 | .gitment-markdown blockquote {
874 | padding: 0 1em;
875 | color: #6a737d;
876 | border-left: 0.25em solid #dfe2e5;
877 | }
878 |
879 | .gitment-markdown blockquote>:first-child {
880 | margin-top: 0;
881 | }
882 |
883 | .gitment-markdown blockquote>:last-child {
884 | margin-bottom: 0;
885 | }
886 |
887 | .gitment-markdown kbd {
888 | display: inline-block;
889 | padding: 3px 5px;
890 | font-size: 11px;
891 | line-height: 10px;
892 | color: #444d56;
893 | vertical-align: middle;
894 | background-color: #fafbfc;
895 | border: solid 1px #c6cbd1;
896 | border-bottom-color: #959da5;
897 | border-radius: 0;
898 | box-shadow: inset 0 -1px 0 #959da5;
899 | }
900 |
901 | .gitment-markdown h1,
902 | .gitment-markdown h2,
903 | .gitment-markdown h3,
904 | .gitment-markdown h4,
905 | .gitment-markdown h5,
906 | .gitment-markdown h6 {
907 | margin-top: 24px;
908 | margin-bottom: 16px;
909 | font-weight: 600;
910 | line-height: 1.25;
911 | }
912 |
913 | .gitment-markdown h1 .octicon-link,
914 | .gitment-markdown h2 .octicon-link,
915 | .gitment-markdown h3 .octicon-link,
916 | .gitment-markdown h4 .octicon-link,
917 | .gitment-markdown h5 .octicon-link,
918 | .gitment-markdown h6 .octicon-link {
919 | color: #1b1f23;
920 | vertical-align: middle;
921 | visibility: hidden;
922 | }
923 |
924 | .gitment-markdown h1:hover .anchor,
925 | .gitment-markdown h2:hover .anchor,
926 | .gitment-markdown h3:hover .anchor,
927 | .gitment-markdown h4:hover .anchor,
928 | .gitment-markdown h5:hover .anchor,
929 | .gitment-markdown h6:hover .anchor {
930 | text-decoration: none;
931 | }
932 |
933 | .gitment-markdown h1:hover .anchor .octicon-link,
934 | .gitment-markdown h2:hover .anchor .octicon-link,
935 | .gitment-markdown h3:hover .anchor .octicon-link,
936 | .gitment-markdown h4:hover .anchor .octicon-link,
937 | .gitment-markdown h5:hover .anchor .octicon-link,
938 | .gitment-markdown h6:hover .anchor .octicon-link {
939 | visibility: visible;
940 | }
941 |
942 | .gitment-markdown h1 {
943 | padding-bottom: 0.3em;
944 | font-size: 2em;
945 | border-bottom: 1px solid #eaecef;
946 | }
947 |
948 | .gitment-markdown h2 {
949 | padding-bottom: 0.3em;
950 | font-size: 1.5em;
951 | border-bottom: 1px solid #eaecef;
952 | }
953 |
954 | .gitment-markdown h3 {
955 | font-size: 1.25em;
956 | }
957 |
958 | .gitment-markdown h4 {
959 | font-size: 1em;
960 | }
961 |
962 | .gitment-markdown h5 {
963 | font-size: 0.875em;
964 | }
965 |
966 | .gitment-markdown h6 {
967 | font-size: 0.85em;
968 | color: #6a737d;
969 | }
970 |
971 | .gitment-markdown ul,
972 | .gitment-markdown ol {
973 | padding-left: 2em;
974 | }
975 |
976 | .gitment-markdown ul ul,
977 | .gitment-markdown ul ol,
978 | .gitment-markdown ol ol,
979 | .gitment-markdown ol ul {
980 | margin-top: 0;
981 | margin-bottom: 0;
982 | }
983 |
984 | .gitment-markdown li>p {
985 | margin-top: 16px;
986 | }
987 |
988 | .gitment-markdown li+li {
989 | margin-top: 0.25em;
990 | }
991 |
992 | .gitment-markdown dl {
993 | padding: 0;
994 | }
995 |
996 | .gitment-markdown dl dt {
997 | padding: 0;
998 | margin-top: 16px;
999 | font-size: 1em;
1000 | font-style: italic;
1001 | font-weight: 600;
1002 | }
1003 |
1004 | .gitment-markdown dl dd {
1005 | padding: 0 16px;
1006 | margin-bottom: 16px;
1007 | }
1008 |
1009 | .gitment-markdown table {
1010 | display: block;
1011 | width: 100%;
1012 | overflow: auto;
1013 | }
1014 |
1015 | .gitment-markdown table th {
1016 | font-weight: 600;
1017 | }
1018 |
1019 | .gitment-markdown table th,
1020 | .gitment-markdown table td {
1021 | padding: 6px 13px;
1022 | border: 1px solid #dfe2e5;
1023 | }
1024 |
1025 | .gitment-markdown table tr {
1026 | background-color: #fff;
1027 | border-top: 1px solid #c6cbd1;
1028 | }
1029 |
1030 | .gitment-markdown table tr:nth-child(2n) {
1031 | background-color: #f5f5f5;
1032 | }
1033 |
1034 | .gitment-markdown img {
1035 | max-width: 100%;
1036 | box-sizing: content-box;
1037 | background-color: #fff;
1038 | }
1039 |
1040 | .gitment-markdown code {
1041 | padding: 0;
1042 | padding-top: 0.2em;
1043 | padding-bottom: 0.2em;
1044 | margin: 0;
1045 | font-size: 85%;
1046 | background-color: rgba(27,31,35,0.05);
1047 | border-radius: 0;
1048 | }
1049 |
1050 | .gitment-markdown code::before,
1051 | .gitment-markdown code::after {
1052 | letter-spacing: -0.2em;
1053 | content: "\00a0";
1054 | }
1055 |
1056 | .gitment-markdown pre {
1057 | word-wrap: normal;
1058 | }
1059 |
1060 | .gitment-markdown pre>code {
1061 | padding: 0;
1062 | margin: 0;
1063 | font-size: 100%;
1064 | word-break: normal;
1065 | white-space: pre;
1066 | background: transparent;
1067 | border: 0;
1068 | }
1069 |
1070 | .gitment-markdown .highlight {
1071 | margin-bottom: 16px;
1072 | }
1073 |
1074 | .gitment-markdown .highlight pre {
1075 | margin-bottom: 0;
1076 | word-break: normal;
1077 | }
1078 |
1079 | .gitment-markdown .highlight pre,
1080 | .gitment-markdown pre {
1081 | padding: 16px;
1082 | overflow: auto;
1083 | font-size: 85%;
1084 | line-height: 1.45;
1085 | background-color: #f5f5f5;
1086 | border-radius: 0;
1087 | }
1088 |
1089 | .gitment-markdown pre code {
1090 | display: inline;
1091 | max-width: auto;
1092 | padding: 0;
1093 | margin: 0;
1094 | overflow: visible;
1095 | line-height: inherit;
1096 | word-wrap: normal;
1097 | background-color: transparent;
1098 | border: 0;
1099 | }
1100 |
1101 | .gitment-markdown pre code::before,
1102 | .gitment-markdown pre code::after {
1103 | content: normal;
1104 | }
1105 |
1106 | .gitment-markdown .full-commit .btn-outline:not(:disabled):hover {
1107 | color: #005cc5;
1108 | border-color: #005cc5;
1109 | }
1110 |
1111 | .gitment-markdown kbd {
1112 | display: inline-block;
1113 | padding: 3px 5px;
1114 | font: 11px "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace;
1115 | line-height: 10px;
1116 | color: #444d56;
1117 | vertical-align: middle;
1118 | background-color: #fcfcfc;
1119 | border: solid 1px #c6cbd1;
1120 | border-bottom-color: #959da5;
1121 | border-radius: 0;
1122 | box-shadow: inset 0 -1px 0 #959da5;
1123 | }
1124 |
1125 | .gitment-markdown :checked+.radio-label {
1126 | position: relative;
1127 | z-index: 1;
1128 | border-color: #0366d6;
1129 | }
1130 |
1131 | .gitment-markdown .task-list-item {
1132 | list-style-type: none;
1133 | }
1134 |
1135 | .gitment-markdown .task-list-item+.task-list-item {
1136 | margin-top: 3px;
1137 | }
1138 |
1139 | .gitment-markdown .task-list-item input {
1140 | margin: 0 0.2em 0.25em -1.6em;
1141 | vertical-align: middle;
1142 | }
1143 |
1144 | .gitment-markdown hr {
1145 | border-bottom-color: #eee;
1146 | }
--------------------------------------------------------------------------------
/source/js/index.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by Xiaotao.Nie on 09/04/2018.
3 | * All right reserved
4 | * IF you have any question please email onlythen@yeah.net
5 | */
6 |
7 | // Global functions and listeners
8 | window.onresize = () => {
9 | // when window resize , we show remove some class that me be added
10 | // often for debug
11 | if(window.document.documentElement.clientWidth > 680){
12 | let aboutContent = document.getElementById('nav-content')
13 | aboutContent.classList.remove('hide-block')
14 | aboutContent.classList.remove('show-block');
15 | }
16 | // if(window.isPost){
17 | // reLayout()
18 | // }
19 |
20 | reHeightToc();
21 | };
22 |
23 | // Nav switch function on mobile
24 | /*****************************************************************************/
25 | const navToggle = document.getElementById('site-nav-toggle');
26 | navToggle.addEventListener('click', () => {
27 | let aboutContent = document.getElementById('nav-content')
28 | if (!aboutContent.classList.contains('show-block')) {
29 | aboutContent.classList.add('show-block');
30 | aboutContent.classList.remove('hide-block')
31 | } else {
32 | aboutContent.classList.add('hide-block')
33 | aboutContent.classList.remove('show-block');
34 | }
35 | })
36 |
37 |
38 | // global search
39 | /*****************************************************************************/
40 |
41 | const searchButton = document.getElementById('search')
42 | const searchField = document.getElementById('search-field')
43 | const searchInput = document.getElementById('search-input')
44 | const searchResultContainer = document.getElementById('search-result-container')
45 | const escSearch = document.getElementById('esc-search')
46 | const bgSearch = document.getElementById('search-bg')
47 | const beginSearch = document.getElementById('begin-search')
48 |
49 | searchField.addEventListener('mousewheel',(e) => {
50 | // e.preventDefault()
51 | e.stopPropagation()
52 | return false
53 | }, false)
54 |
55 | var searchJson;
56 | var caseSensitive = false
57 |
58 | searchButton.addEventListener('click', () => {
59 | search()
60 | });
61 |
62 | escSearch.addEventListener('click',() => {
63 | hideSearchField()
64 | })
65 |
66 | bgSearch.addEventListener('click',() => {
67 | hideSearchField()
68 | })
69 |
70 | beginSearch.addEventListener('click',() => {
71 | let keyword = searchInput.value;
72 | if(keyword){
73 | searchFromKeyWord(keyword)
74 | }
75 | })
76 |
77 | function toggleSeachField(){
78 | if (!searchField.classList.contains('show-flex-fade')) {
79 | showSearchField()
80 | } else {
81 | hideSearchField()
82 | }
83 | }
84 |
85 | function showSearchField() {
86 | searchInput.focus()
87 | searchField.classList.add('show-flex-fade');
88 | searchField.classList.remove('hide-flex-fade');
89 | }
90 |
91 | function hideSearchField(){
92 | window.onkeydown = null;
93 | searchField.classList.add('hide-flex-fade');
94 | searchField.classList.remove('show-flex-fade');
95 | }
96 |
97 | function searchFromKeyWord(keyword = ""){
98 | let result = [];
99 |
100 | let sildeWindowSize = 100;
101 |
102 | let handleKeyword = keyword
103 |
104 | if(!caseSensitive){
105 | handleKeyword = keyword.toLowerCase()
106 | }
107 | if(!searchJson) return -1;
108 | else {
109 | searchJson.forEach((item) => {
110 |
111 | if(!item.title || !item.content) return 0; // break
112 |
113 | let title = item.title
114 | let content = item.content.trim().replace(/<[^>]+>/g,"").replace(/[`#\n]/g,"");
115 |
116 | let lowerTitle = title,lowerContent = content;
117 |
118 | if(!caseSensitive){
119 | lowerTitle = title.toLowerCase();
120 | lowerContent = content.toLowerCase();
121 | }
122 |
123 |
124 | if(lowerTitle.indexOf(handleKeyword) !== -1 || lowerContent.indexOf(handleKeyword) !== -1){
125 | let resultItem = {}
126 | resultItem.title = title.replace(keyword, "" + keyword + '');
127 | resultItem.url = item.url;
128 |
129 | resultItem.content = [];
130 |
131 | let lastend = 0
132 |
133 | while(lowerContent.indexOf(handleKeyword) !== -1){
134 | let begin = lowerContent.indexOf(handleKeyword) - sildeWindowSize / 2 < 0 ? 0 : lowerContent.indexOf(handleKeyword) - sildeWindowSize / 2
135 | let end = begin + sildeWindowSize;
136 | let reg = caseSensitive ? new RegExp('('+keyword+')','g') : new RegExp('('+keyword+')','ig')
137 | resultItem.content.push("..." + content.slice(lastend + begin, lastend + end).replace(reg, "$1") + "...")
138 | lowerContent = lowerContent.slice(end, lowerContent.length)
139 | lastend += end
140 | }
141 | // resultItem.title = title.replace(keyword, "" + keyword + '');
142 | result.push(resultItem)
143 | }
144 | })
145 | }
146 |
147 | if(!result.length){
148 | searchResultContainer.innerHTML = `
149 | No Result
150 | `
151 | return;
152 | }
153 |
154 | let searchFragment = document.createElement('ul')
155 |
156 | for(let item of result){
157 | let searchItem = document.createElement('li');
158 | let searchTitle = document.createElement('a');
159 | searchTitle.href = item.url
160 | searchTitle.innerHTML = item.title;
161 | searchItem.appendChild(searchTitle)
162 | if(item.content.length) {
163 | let searchContentLiContainer = document.createElement('ul')
164 | for (let citem of item.content) {
165 | let searchContentFragment = document.createElement('li')
166 | searchContentFragment.innerHTML = citem;
167 | searchContentLiContainer.appendChild(searchContentFragment)
168 | }
169 | searchItem.appendChild(searchContentLiContainer)
170 | }
171 | searchFragment.appendChild(searchItem)
172 | }
173 | while(searchResultContainer.firstChild){
174 | searchResultContainer.removeChild(searchResultContainer.firstChild)
175 | }
176 | searchResultContainer.appendChild(searchFragment)
177 | }
178 |
179 | function search(){
180 |
181 | toggleSeachField()
182 |
183 | window.onkeydown = (e) => {
184 | if (e.which === 27) {
185 | /** 这里编写当ESC按下时的处理逻辑! */
186 | toggleSeachField()
187 | } else if(e.which === 13){
188 | // 回车按下
189 | let keyword = searchInput.value;
190 | if(keyword){
191 | searchFromKeyWord(keyword)
192 | }
193 | }
194 | }
195 |
196 |
197 | if(!searchJson){
198 | let isXml;
199 | let search_path = window.hexo_search_path;
200 | if (search_path.length === 0) {
201 | search_path = "search.json";
202 | } else if (/json$/i.test(search_path)) {
203 | isXml = false;
204 | }
205 | let path = window.hexo_root+ search_path;
206 | $.ajax({
207 | url: path,
208 | dataType: isXml ? "xml" : "json",
209 | async: true,
210 | success: function (res) {
211 | searchJson = isXml ? $("entry", res).map(function() {
212 | return {
213 | title: $("title", this).text(),
214 | content: $("content",this).text(),
215 | url: $("url" , this).text()
216 | };
217 | }).get() : res;
218 | }
219 | });
220 | }
221 |
222 | }
223 |
224 | // directory function in post pages
225 | /*****************************************************************************/
226 | function getDistanceOfLeft(obj) {
227 | let left = 0;
228 | let top = 0;
229 | while (obj) {
230 | left += obj.offsetLeft;
231 | top += obj.offsetTop;
232 | obj = obj.offsetParent;
233 | }
234 | return {
235 | left:left,
236 | top:top
237 | };
238 | }
239 |
240 | var toc = document.getElementById('toc')
241 |
242 | var tocToTop = getDistanceOfLeft(toc).top;
243 |
244 | function reHeightToc(){
245 | if(toc) { // resize toc height
246 | toc.style.maxHeight = ( document.documentElement.clientHeight - 10 ) + 'px';
247 | toc.style.overflowY = 'scroll';
248 | }
249 | }
250 |
251 | reHeightToc();
252 |
253 | if(window.isPost){
254 | var result = []
255 |
256 | var nameSet = new Set();
257 |
258 | if(!toc || !toc.children || !toc.children[0]){
259 | // do nothing
260 | }
261 | else {
262 | if (toc.children[0].nodeName === "OL") {
263 | let ol = Array.from(toc.children[0].children)
264 |
265 | function getArrayFromOl(ol) {
266 | let result = []
267 |
268 | // let escape = function (item) {
269 | // return item.replace(/<[^>]+>/g, "").replace(/^\s\s*/, '').replace(/\s\s*$/, '').replace(/[\. _]/g, '-')
270 | // }
271 |
272 | ol.forEach((item) => {
273 | if (item.children.length === 1) {
274 | // TODO: need change
275 | let value = item.children[0].getAttribute('href').replace(/^#/,"")
276 | result.push({
277 | value: [value],
278 | dom: item
279 | })
280 | nameSet.add(value)
281 | }
282 | else {
283 | let concatArray = getArrayFromOl(Array.from(item.children[1].children))
284 | nameSet.add(item.children[0].getAttribute('href').replace(/^#/,""))
285 | result.push({
286 | value: [item.children[0].getAttribute('href').replace(/^#/,"")].concat(concatArray.reduce((p, n) => {
287 | p = p.concat(n.value)
288 | return p;
289 | }, [])),
290 | dom: item
291 | })
292 | result = result.concat(concatArray)
293 | }
294 | })
295 | return result
296 | }
297 |
298 | result = getArrayFromOl(ol)
299 | }
300 |
301 | var nameArray = Array.from(nameSet)
302 |
303 | function reLayout() {
304 | let scrollToTop = document.documentElement.scrollTop || window.pageYOffset // Safari is special
305 | if(tocToTop === 0) {
306 | // Fix bug that when resize window the toc layout may be wrong
307 | toc = document.getElementById('toc')
308 | toc.classList.remove('toc-fixed')
309 | tocToTop = getDistanceOfLeft(toc).top;
310 | }
311 | if (tocToTop <= scrollToTop + 10) {
312 | if (!toc.classList.contains('toc-fixed'))
313 | toc.classList.add('toc-fixed')
314 | } else {
315 | if (toc.classList.contains('toc-fixed'))
316 | toc.classList.remove('toc-fixed')
317 | }
318 |
319 | let minTop = 9999;
320 | let minTopsValue = ""
321 |
322 | for (let item of nameArray) {
323 | item = decodeURIComponent(item);
324 | let dom = document.getElementById(item) || document.getElementById(item.replace(/\s/g, ''))
325 | if (!dom) {
326 | console.log('dom is null')
327 | continue
328 | }
329 | let toTop = getDistanceOfLeft(dom).top - scrollToTop;
330 |
331 | if (Math.abs(toTop) < minTop) {
332 | minTop = Math.abs(toTop)
333 | minTopsValue = item
334 | }
335 | // console.log(minTopsValue, minTop)
336 | }
337 |
338 | if (minTopsValue) {
339 | for (let item of result) {
340 | if (item.value.indexOf(encodeURIComponent(minTopsValue)) !== -1) {
341 | item.dom.classList.add("active")
342 | } else {
343 | item.dom.classList.remove("active")
344 | }
345 | }
346 | }
347 | }
348 |
349 | reLayout()
350 |
351 | window.addEventListener('scroll', function(e) {
352 | reLayout()
353 | // let tocDom = document.querySelector('#toc')
354 | // window.scrollY < 550 ? tocDom.classList.remove('toc-fixed') : tocDom.classList.add('toc-fixed')
355 | })
356 | }
357 | }
358 |
359 |
360 | // donate
361 | /*****************************************************************************/
362 | const donateButton = document.getElementById('donate-button')
363 | const donateImgContainer = document.getElementById('donate-img-container')
364 | const donateImg = document.getElementById('donate-img')
365 |
366 | if(donateButton) {
367 | donateButton.addEventListener('click', () => {
368 | if (donateImgContainer.classList.contains('hide')) {
369 | donateImgContainer.classList.remove('hide')
370 | } else {
371 | donateImgContainer.classList.add('hide')
372 | }
373 | })
374 |
375 | donateImg.src = donateImg.dataset.src
376 | }
377 |
378 |
--------------------------------------------------------------------------------