├── .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 | -------------------------------------------------------------------------------- /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 | 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 | 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 |
32 |
33 |
34 |
35 |
36 |
37 |
38 | -------------------------------------------------------------------------------- /layout/tags.ejs: -------------------------------------------------------------------------------- 1 | <% page.comments = false %> 2 | 3 |
4 | <% site.tags.map(a => a.name).sort((a, b) => { 5 | return a.localeCompare(b, 'zh-Hans-CN', {sensitivity: 'accent'}) 6 | }).map(function(tag){ %> 7 | <%= tag %> 8 | <% }) %> 9 |
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 |
31 | 32 |

33 | <%- (post.title || "Untitled").replace(/[<>&"]/g,function(c){ 34 | return {'<':'<','>':'>','&':'&','"':'"'}[c]; 35 | }) %> 36 |

37 | <% if (post.subtitle && post.subtitle.length) { %> 38 |

39 | <%- post.subtitle %> 40 |

41 | <% } %> 42 |
43 | 44 |
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":"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","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 | --------------------------------------------------------------------------------