├── .DS_Store ├── CHNAGELOG.md ├── LICENSE ├── README.md ├── README.zh-cn.md ├── USERS.md ├── archetypes └── default.md ├── config-example ├── hugo-advanced.toml └── hugo.toml ├── config.toml ├── i18n ├── en.toml └── zh.toml ├── images ├── Alipay.jpeg ├── Wechat.jpeg ├── preview-1.png ├── preview-2.png ├── preview-3.png ├── preview-4.png ├── screenshot.png └── tn.png ├── layouts ├── 404.html ├── _default │ ├── about.html │ ├── baseof.html │ ├── list.html │ └── single.html ├── categories │ ├── taxonomy.html │ └── terms.html ├── index.html ├── partials │ ├── comments.html │ ├── footer.html │ ├── head.html │ ├── header.html │ ├── math-jax.html │ ├── search.html │ └── widgets │ │ ├── aplayer.html │ │ ├── archives.html │ │ ├── author-card.html │ │ ├── category-card.html │ │ ├── content-all.html │ │ ├── hero.html │ │ ├── mulu.html │ │ ├── other.html │ │ ├── post-card-small.html │ │ ├── post-card.html │ │ ├── pre-next.html │ │ ├── selectLang.html │ │ ├── sponsor.html │ │ ├── tag-card.html │ │ ├── taxoAndTerms.html │ │ ├── terms-card.html │ │ ├── vars.html │ │ └── zhuti-r.html ├── posts │ ├── list.html │ └── single.html ├── series │ ├── taxonomy.html │ └── terms.html ├── shortcodes │ ├── math.html │ └── mermaid.html └── tags │ ├── taxonomy.html │ └── terms.html ├── static ├── css │ ├── aplayer.css │ ├── comment.css │ ├── custom.css │ ├── font-awesome-4.7.0 │ │ ├── css │ │ │ └── font-awesome.min.css │ │ └── fonts │ │ │ ├── FontAwesome.otf │ │ │ ├── fontawesome-webfont.eot │ │ │ ├── fontawesome-webfont.svg │ │ │ ├── fontawesome-webfont.ttf │ │ │ ├── fontawesome-webfont.woff │ │ │ └── fontawesome-webfont.woff2 │ ├── home.css │ ├── list.css │ ├── md_nb.css │ ├── search.css │ ├── shortcode.css │ ├── style-dark.css │ ├── style.css │ ├── syntax-dark.css │ ├── syntax.css │ ├── taxonomy.css │ └── terms.css ├── images │ ├── .DS_Store │ ├── about.jpg │ ├── allPosts.jpg │ ├── author.png │ ├── categories.jpg │ ├── default.jpg │ ├── example.jpeg │ ├── favicon.ico │ ├── home.jpg │ ├── series.jpg │ ├── tag.jpg │ └── thumbnail.gif └── js │ ├── lazysizes.min.js │ ├── md_nb.js │ ├── search.js │ └── yes.js └── theme.toml /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xioyito/NewBee/b1d993caef349f9028d46988aa60ee391c3fb5c8/.DS_Store -------------------------------------------------------------------------------- /CHNAGELOG.md: -------------------------------------------------------------------------------- 1 | v1.2.3 2 | 1. Add extended link syntax for markdown 3 | 2. Deprecated _custom.css are replaced custom.css 4 | 5 | v1.2.2 6 | Add front-matter: hideFromHomePage. 7 | Rename config.toml to hugo.toml. 8 | 9 | v1.2.1 10 | Use the front-matter below if you use math or mermaid: 11 | math: true 12 | mermaid: true 13 | 14 | v1.2.0 15 | 1. Removing mermaid and math shortcode that will be replaced Markdown syntax 16 | 2. Enhance Markdown: add tabs, mermaid and math syntax. See: 17 | 18 | v1.1.1 19 | 1. fixed search bug 20 | 21 | v1.1.0 22 | 1. Add mode selection in config.toml. 23 | 24 | v1.0.0 25 | 1. Delete these shortcodes: hl(highlight), label, img. 26 | 2. Add Markdown function. -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2022 xioyito 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of 6 | this software and associated documentation files (the "Software"), to deal in 7 | the Software without restriction, including without limitation the rights to 8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 9 | the Software, and to permit persons to whom the Software is furnished to do so, 10 | 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, FITNESS 17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | English | [简体中文](https://github.com/xioyito/NewBee/blob/master/README.zh-cn.md) 3 | 4 | ## Preview 5 | --- 6 | ![NewBee-Preview-1](https://raw.githubusercontent.com/xioyito/NewBee/main/images/preview-1.png "light-mode") 7 | ![NewBee-Preview-2](https://raw.githubusercontent.com/xioyito/NewBee/main/images/preview-2.png "dark-mode") 8 | ![NewBee-Preview-3](https://raw.githubusercontent.com/xioyito/NewBee/main/images/preview-3.png "categories taxonomy") 9 | ![NewBee-Preview-4](https://raw.githubusercontent.com/xioyito/NewBee/main/images/preview-4.png "local search") 10 | 11 | ## Example Site 12 | You can see this theme in action on [my site](https://xioyito.top). 13 | 14 | ## Features 15 | * Functions 16 | * local search without any configuration 17 | * multi-language 18 | * Syntax Highlight 19 | * Custom Header 20 | * Custom footer 21 | * night mode 22 | * A sidebar can be open or close at all times 23 | * Extended Shortcodes 24 | * Valine comment 25 | * Music player based on Aplayer and MetingJS 26 | * Count of Visitor and views 27 | * Components 28 | * Archive(posts) page 29 | * Categories taxonomy 30 | * Tags taxonomy 31 | * series taxonomy 32 | * Author card 33 | * Pre and Next button 34 | * sponsor card 35 | * Other 36 | * Responsive 37 | * Light-Neumorphism style 38 | * High interaction 39 | * Smooth transitions 40 | 41 | ## Quick Start 42 | For more information, please go to: 43 | 44 | ### Install Hugo(extended version) 45 | The following is For macOS system, other systems see: 46 | 47 | #### Homebrew 48 | ``` bash 49 | ~ % brew install hugo 50 | ``` 51 | 52 | #### MacPorts 53 | ``` bash 54 | ~ % port install hugo 55 | ``` 56 | 57 | ### install NewBee 58 | First, you need to create a new site(e.g. my-blog) by Hugo: 59 | ``` bash 60 | ~ % hugo new site my-blog 61 | ``` 62 | 63 | You have 2 methods to install NewBee after creating a new site: 64 | #### Method 1 65 | 66 | download the theme manually by going to and pasting it to `themes` in your root directory. 67 | 68 | #### Method 2 69 | 70 | clone it directly to `themes`: 71 | ``` bash 72 | ~ % cd my-blog 73 | my-blog % git clone https://github.com/xioyito/NewBee.git themes/NewBee 74 | ``` 75 | 76 | ### Configuration 77 | That's simple, just copy the file `NewBee/config-example/hugo.toml` to your Hugo root directory. 78 | 79 | ### First post 80 | create a new post: 81 | ``` bash 82 | my-blog % hugo new "posts/first-post.md" 83 | ``` 84 | create about page: 85 | ``` bash 86 | my-blog % hugo new "about/_index.md" 87 | ``` 88 | Now: 89 | ``` bash 90 | my-blog % hugo server -D 91 | ``` 92 | go to in your browser. From now your browser will refresh automatically when the files in your site changes , so you don’t need to refresh your browser every time. 93 | 94 | ## Customize NewBee 95 | if you want to override some of the styles, just create a file `my-blog/static/css/custom.css` and add your own styles into this file. 96 | 97 | ## Help NewBee be better 98 | ### Found a bug? 99 | If you find any bugs, welcome to use [Issue](https://github.com/xioyito/NewBee/issues) or create a new [Pull Request](https://github.com/xioyito/NewBee/pulls) to fix the issue. 100 | 101 | ### A NewBee theme user? 102 | I'd appreciate your support, if you want to share your site, please make a contribution and add your site to the [list](https://github.com/xioyito/NewBee/blob/master/USERS.md). 103 | 104 | 105 | ## Sponsoring 106 | If you like the theme and support my work, just do: 107 | * [Alipay](https://github.com/xioyito/NewBee/raw/master/images/Alipay.jpeg) 108 | * [Wechat](https://github.com/xioyito/NewBee/raw/master/images/Wechat.jpeg) 109 | 110 | Thank you. 111 | 112 | ## License 113 | Copyright © 2022 [xioyito](https://github.com/xioyito) 114 | 115 | NewBee theme is released under the MIT License, see more: 116 | 117 | -------------------------------------------------------------------------------- /README.zh-cn.md: -------------------------------------------------------------------------------- 1 | 简体中文 | [English](https://github.com/xioyito/NewBee/blob/master/README.md) 2 | 3 | ## 预览 4 | ![NewBee-Preview-1](https://raw.githubusercontent.com/xioyito/NewBee/main/images/preview-1.png "light-mode") 5 | ![NewBee-Preview-2](https://raw.githubusercontent.com/xioyito/NewBee/main/images/preview-2.png "dark-mode") 6 | ![NewBee-Preview-3](https://raw.githubusercontent.com/xioyito/NewBee/main/images/preview-3.png "categories taxonomy") 7 | ![NewBee-Preview-4](https://raw.githubusercontent.com/xioyito/NewBee/main/images/preview-4.png "local search") 8 | 9 | ## 示例网站 10 | 查看 [示例网站](https://xioyito.top)。 11 | 12 | ## 特性 13 | * 功能 14 | * 本地搜索功能(无需任何配置) 15 | * 多语言支持 16 | * 代码高亮 17 | * 自定义导航栏 18 | * 自定义页脚 19 | * 深色模式 20 | * 可随时打开和关闭的侧边栏 21 | * 扩展的 Shortcodes 22 | * Valine 评论系统 23 | * 基于 APlayer 和 MetingJS 的音乐播放器 24 | * 站点访客数和站点访问量统计 25 | * 组件 26 | * 归档(文章)页面 27 | * 分类页面 28 | * 标签页面 29 | * 系列页面 30 | * 作者卡片 31 | * 切换上下篇按钮 32 | * 赞助卡片 33 | * 其它 34 | * 响应式布局 35 | * 轻拟物风格 36 | * 更好的交互性 37 | * 顺滑的过渡效果 38 | 39 | ## 快速开始 40 | 详情请移步: 。 41 | 42 | ### 安装 Hugo(extended 版本) 43 | 以下安装过程针对macOS系统,其他操作系统请移步: 。 44 | 45 | #### Homebrew 46 | ``` bash 47 | ~ % brew install hugo 48 | ``` 49 | 50 | #### MacPorts 51 | ``` bash 52 | ~ % port install hugo 53 | ``` 54 | 55 | ### 安装 NewBee 56 | 首先你需要通过 hugo new 命令创建一个新的网站(如:my-blog): 57 | ``` bash 58 | ~ % hugo new site my-blog 59 | ``` 60 | 61 | 在创建完新的网站后你有2种方法来安装 NewBee: 62 | #### 方法 1 63 | 64 | 从 下载 NewBee 主题,然后放到根目录里 `themes` 文件夹中。 65 | 66 | #### 方法 2 67 | 68 | 将主题克隆到 `themes` 目录下。 69 | ``` bash 70 | ~ % cd my-blog 71 | my-blog % git clone https://github.com/xioyito/NewBee.git themes/NewBee 72 | ``` 73 | 74 | ### 配置 75 | 把文件 `NewBee/config-example/hugo.toml` 复制到你的网站根目录即可。 76 | 77 | ### 第一篇文章 78 | 创建一篇新的文章: 79 | ``` bash 80 | my-blog % hugo new "posts/first-post.md" 81 | ``` 82 | 创建关于页面: 83 | ``` bash 84 | my-blog % hugo new "about/_index.md" 85 | ``` 86 | 现在: 87 | ``` bash 88 | my-blog % hugo server -D 89 | ``` 90 | 浏览器打开 。现在当你网站的文件发生改变后,网页会自动刷新,所以你不用每次都需要去手动刷新了。 91 | 92 | ## 自定义 NewBee 93 | 如果你想更改某些样式,只需要在 `my-blog/static/css` 目录里创建一个文件 `custom.css` ,然后在里面加入你自己的样式即可。 94 | 95 | ## 帮助 NewBee 变得更好 96 | ### 发现问题? 97 | 如果你在使用过程中发现了任何问题,欢迎在 [Issues](https://github.com/xioyito/NewBee/issues) 提问或者创建一个新的 [Pull Request](https://github.com/xioyito/NewBee/pulls) 来解决问题。 98 | 99 | ### NewBee 主题的使用者? 100 | 101 | 非常感谢你的支持,如果你想分享你的网站,可以将它添加到[这里](https://github.com/xioyito/NewBee/edit/master/USERS.md)。 102 | 103 | 104 | ## 赞赏 105 | 你的支持是我持续的动力: 106 | * [Alipay](https://github.com/xioyito/NewBee/raw/master/images/Alipay.jpeg) 107 | * [Wechat](https://github.com/xioyito/NewBee/raw/master/images/Wechat.jpeg) 108 | 109 | 谢谢。 110 | 111 | ## License 112 | Copyright © 2022 [xioyito](https://github.com/xioyito) 113 | 114 | NewBee 主题遵循 MIT 协议,详情请移步: 115 | 116 | -------------------------------------------------------------------------------- /USERS.md: -------------------------------------------------------------------------------- 1 | # Welcome to join us as a new bee! 2 | 3 | 12 | 13 | -------------------------------------------------------------------------------- /archetypes/default.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "{{ replace .Name "-" " " | title }}" 3 | date: {{ .Date }} 4 | 5 | # format for string: "xxxx-xx-xx" 6 | # lastmod: "2022-10-01" 7 | 8 | # set false when you want the post publish 9 | draft: true 10 | # one category: ["category-1"] 11 | # more categories: ["category-1", "category-2", ...] 12 | categories: [] 13 | # refer to categories 14 | tags: [] 15 | # seires 16 | series: [] 17 | # Top image for the post 18 | image: "" 19 | # Hide from home page 20 | hideFromHomePage: false 21 | --- 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /config-example/hugo-advanced.toml: -------------------------------------------------------------------------------- 1 | # Uncommented options are not recommended for modification 2 | # 未标注释的选项建议不要修改 3 | 4 | baseURL = 'http://xxx.xxx/' 5 | languageCode = 'en-us' 6 | 7 | # website title 8 | # 网站标题 9 | title = 'NewBee' 10 | # theme 11 | # 主题 12 | theme = "NewBee" 13 | # default content of website 14 | # 网站默认语言 15 | defaultContentLanguage = "en" 16 | # whether to use robots.txt 17 | # 是否使用 robots.txt 18 | enableRobotsTXT = true 19 | # whether to use git info 20 | # 是否使用 git info 21 | enableGitInfo = false 22 | # length of summary 23 | # 摘要的字数限制 24 | summaryLength = 50 25 | 26 | # If true, auto-detect Chinese/Japanese/Korean Languages in the content. 27 | # This will make .Summary and .WordCount behave correctly for CJK languages. 28 | # 中日韩语言请改为 true 29 | hasCJKLanguage = true 30 | 31 | [author] 32 | name = "xioyito" 33 | description = "Be Water, My Friend." 34 | # profile photo of author in author card 35 | # 作者头像 36 | image = "/images/author.jpeg" 37 | # link of followme in author card and footer 38 | # 作者卡片里 followme 和页脚作者的链接 39 | link = "https://github.com/xioyito" 40 | 41 | # Taxonomies 42 | [taxonomies] 43 | category = "categories" 44 | tag = "tags" 45 | series = "series" 46 | 47 | [params] 48 | [params.site] 49 | onlyOneLang = false 50 | # style of theme: auto, light, dark 51 | mode = 'auto' 52 | # page configuration 53 | # 页面配置 54 | [params.page] 55 | 56 | # top image in home page, note that the "/" in path is necessary, the same applies below 57 | # 主页的顶部图,路径开头”/“是必需的。下同 58 | homeTopImg = "/images/home.jpg" 59 | # title in home top image, support Markdown 60 | # 主页标题,支持Markdown语法 61 | homeTitle = "XIOYITO" 62 | # font size(px) 63 | # 主页标题字号(单位:px) 64 | homeTitleFontSize = 40 65 | # content in home top image, support Markdown 66 | # 主页内容,支持Markdown语法 67 | homeContent = "Be Water, My Friend" 68 | # font size(px) 69 | # 主页内容字号(单位:px) 70 | homeContentFontSize = 20 71 | 72 | # top image in categories terms page 73 | # 分类页面的顶部图 74 | categoryTopImg = "/images/categories.jpg" 75 | # description of categories terms page 76 | # 子标题 77 | categoryDes = "description of categories page" 78 | 79 | # top image in series terms page 80 | # 系列页面的顶部图 81 | seriesTopImg = "/images/series.jpg" 82 | # description of series terms page 83 | # 子标题 84 | seriesDes = "description of series page" 85 | 86 | # top image in tags terms page 87 | # 标签页面的顶部图 88 | tagTopImg = "/images/tag.jpg" 89 | # description of tags terms page 90 | # 子标题 91 | tagDes = "description of tags page" 92 | 93 | # top image in allposts page 94 | # 所有文章页面的顶部图 95 | allPostsTopImg = "/images/allPosts.jpg" 96 | # description of allposts page 97 | # 子标题 98 | allPostsDes = "description of allposts page" 99 | 100 | # top image in about page 101 | # 关于页面的顶部图 102 | aboutTopImg = "/images/about.jpg" 103 | # description of about page 104 | # 子标题 105 | aboutDes = "description of about page" 106 | 107 | # default image for a post without "image" param 108 | # 当文章没有设置图片时,将用此图来替代 109 | postsTopImg = "/images/default.jpg" 110 | 111 | # 主页文章最大显示数量 112 | maxHomePostCount = 5 113 | # 相关文章最大显示数量 114 | maxPageRelatedCount = 5 115 | # 最新文章最大显示数量 116 | maxPageNewestCount = 5 117 | 118 | # Valine comment 119 | # Valine评论(详情请移步:https://valine.js.org/) 120 | [params.valine] 121 | # 是否开启Valine评论系统 122 | enable = false 123 | # appid,具体请参考:https://valine.js.org/configuration.html#appId 124 | appid = 'xxxxxxxxxxxxxxxxxxxxxxxx-xxxxxxxx' 125 | # appKey,具体请参考:https://valine.js.org/configuration.html#appKey 126 | appkey = 'xxxxxxxxxxxxxxxxxxxxxxxx' 127 | # 输入框提示文字 128 | placeholder = '输入你的评论' 129 | # 头像,具体请参考:https://valine.js.org/avatar.html 130 | avatar = 'robohash' 131 | # 评论时要求的必须填写项,可选值:['nick']或['nick','mail'] 132 | requiredFields = ['nick'] 133 | # 文章访问量统计 134 | visitor = true 135 | # 单页最大评论数目 136 | pageSize = 5 137 | 138 | # footer 139 | # 页面底部配置 140 | [params.footer] 141 | # whether to enable footer 142 | enable = true 143 | # copyright 144 | copyRight = true 145 | from = 2022 146 | # wheher to enable count of visitor and view 147 | visitor = true 148 | # wheher to enable theme information 149 | themeInfo = true 150 | 151 | # aplayer, se more: https://aplayer.js.org/#/zh-Hans/ 152 | # 音乐播放器配置,详情请移步:https://aplayer.js.org/#/zh-Hans/ 153 | [params.aplayer] 154 | enable = false 155 | server = "netease" 156 | type = "playlist" 157 | id = 752439587 158 | fixed = true 159 | autoplay = false 160 | loop = "all" 161 | order = "random" 162 | preload = "auto" 163 | list_folded = "ture" 164 | list_max_height = "500px" 165 | lrc_type = 1 166 | 167 | # related configuration, see more: https://gohugo.io/content-management/related/ 168 | # 相关文章的配置。详情请移步:https://gohugo.io/content-management/related/ 169 | [related] 170 | # 取值0-100之间,越小匹配到的文章越多,但准确性稍差 171 | threshold = 0 172 | # 允许包含最新的文章 173 | includeNewer = true 174 | # 设置为true时,可以在索引和查询中同时使用小写关键字。 175 | # 这可能会在轻微的性能损失下提供更准确的结果。 176 | # 也可以在下面的子项中分别设置此值。 177 | toLower = false 178 | 179 | [[related.indices]] 180 | # 匹配类别 181 | name = "categories" 182 | # 一个整数权重,表示此参数相对于其他参数的重要性。 183 | # 可以是0,有关闭这个索引的效果,甚至是负数。 184 | # 使用不同的值进行测试,以查看最适合您的内容的值。 185 | weight = 100 186 | # 同上toLower 187 | toLower = false 188 | 189 | [[related.indices]] 190 | name = "tags" 191 | weight = 80 192 | toLower = false 193 | 194 | [[related.indices]] 195 | name = "date" 196 | weight = 10 197 | 198 | # Markup related configuration in Hugo 199 | # Hugo 解析文档的配置 200 | [markup] 201 | # syntax highlight, see more: https://gohugo.io/functions/highlight/ 202 | # 语法高亮,详情请移步:https://gohugo.io/functions/highlight/ 203 | [markup.highlight] 204 | codeFences = true 205 | guessSyntax = false 206 | hl_Lines = '' 207 | lineAnchors = '' 208 | lineNoStart = 1 209 | # 显示每一行代码前的序号 210 | lineNos = true 211 | anchorLineNos = false 212 | lineNumbersInTable = true 213 | noClasses = false 214 | noHl = false 215 | # 代码高亮样式,更多样式请移步:https://xyproto.github.io/splash/docs/ 216 | style = 'monokailight' 217 | tabWidth = 4 218 | 219 | # enable the following code if there are html statements in your md file 220 | # 如果md文件中有html语句,请启用以下代码 221 | # [markup.goldmark] 222 | # [markup.goldmark.renderer] 223 | # unsafe = true 224 | 225 | # 多语言设置 226 | [languages] 227 | [languages.en] 228 | languageName = 'English' 229 | weight = 1 230 | contentDir = 'content/english' 231 | [languages.en.menus] 232 | # navigation entries 233 | # 导航栏子项 234 | [[languages.en.menus.main]] 235 | # 名称 236 | name = "Home" 237 | # 路径 238 | url = "/en" 239 | # order weight, more small more close to left, at least 1 240 | # 排序的权重,越小越靠前(左),最小为1 241 | weight = 1 242 | # icon from FontAwesome in front of single entry 243 | # 图标,本主题使用的图标来自FontAwesome 244 | pre = "" 245 | [[languages.en.menus.main]] 246 | name = "Posts" 247 | url = "/en/posts" 248 | weight = 2 249 | pre = "" 250 | [[languages.en.menus.main]] 251 | name = "Categories" 252 | url = "/en/categories" 253 | weight = 3 254 | pre = "" 255 | [[languages.en.menus.main]] 256 | name = "Series" 257 | url = "/en/series" 258 | weight = 4 259 | pre = "" 260 | [[languages.en.menus.main]] 261 | name = "Tags" 262 | url = "/en/tags" 263 | weight = 5 264 | pre = "" 265 | [[languages.en.menus.main]] 266 | name = "About" 267 | url = "/en/about" 268 | weight = 6 269 | pre = "" 270 | 271 | # social, maxum 6 272 | # 作者卡片社交链接,最多6个 273 | [[languages.en.menus.social]] 274 | name = "GitHub" 275 | url = "https://github.com/xioyito" 276 | pre = "" 277 | weight = 1 278 | [[languages.en.menus.social]] 279 | name = "YouTube" 280 | url = "https://www.youtube.com" 281 | pre = "" 282 | weight = 2 283 | 284 | # sponsor, maxum 3 285 | # 赞赏,最多支持3个 286 | [[languages.en.menus.sponsor]] 287 | name = "Wechat" 288 | url = "/images/sponsor/Wechat.jpeg" 289 | weight = 1 290 | [[languages.en.menus.sponsor]] 291 | name = "Alipay" 292 | url = "/images/sponsor/Alipay.jpeg" 293 | weight = 2 294 | 295 | [languages.zh] 296 | languageName = '简体中文' 297 | weight = 2 298 | contentDir = 'content/chinese' 299 | [languages.zh.menus] 300 | [[languages.zh.menus.main]] 301 | name = "主页" 302 | url = "/zh" 303 | weight = 1 304 | pre = "" 305 | [[languages.zh.menus.main]] 306 | name = "文章" 307 | url = "/zh/posts" 308 | weight = 2 309 | pre = "" 310 | [[languages.zh.menus.main]] 311 | name = "分类" 312 | url = "/zh/categories" 313 | weight = 3 314 | pre = "" 315 | [[languages.zh.menus.main]] 316 | name = "系列" 317 | url = "/zh/series" 318 | weight = 4 319 | pre = "" 320 | [[languages.zh.menus.main]] 321 | name = "标签" 322 | url = "/zh/tags" 323 | weight = 5 324 | pre = "" 325 | [[languages.zh.menus.main]] 326 | name = "关于" 327 | url = "/zh/about" 328 | weight = 6 329 | pre = "" 330 | [[languages.zh.menus.social]] 331 | name = "GitHub" 332 | url = "https://github.com/xioyito" 333 | pre = "" 334 | weight = 1 335 | [[languages.zh.menus.social]] 336 | name = "YouTube" 337 | url = "https://www.youtube.com" 338 | pre = "" 339 | weight = 2 340 | [[languages.zh.menus.sponsor]] 341 | name = "微信" 342 | url = "/images/sponsor/Wechat.jpeg" 343 | [[languages.zh.menus.sponsor]] 344 | name = "支付宝" 345 | url = "/images/sponsor/Alipay.jpeg" 346 | 347 | -------------------------------------------------------------------------------- /config-example/hugo.toml: -------------------------------------------------------------------------------- 1 | baseURL = 'http://xxx.xxx/' 2 | languageCode = 'en-us' 3 | 4 | # website title 5 | # 网站标题 6 | title = 'NewBee' 7 | # theme 8 | # 主题 9 | theme = "NewBee" 10 | # default content of website 11 | # 网站默认语言 12 | defaultContentLanguage = "en" 13 | # whether to use robots.txt 14 | # 是否使用 robots.txt 15 | enableRobotsTXT = true 16 | 17 | # length of summary 18 | # 摘要的字数限制 19 | summaryLength = 50 20 | 21 | # If true, auto-detect Chinese/Japanese/Korean Languages in the content. 22 | # This will make .Summary and .WordCount behave correctly for CJK languages. 23 | # 中日韩语言请改为 true 24 | hasCJKLanguage = false 25 | 26 | [author] 27 | name = "xioyito" 28 | description = "Be Water, My Friend." 29 | # profile photo of author in author card 30 | # 作者头像 31 | image = "/images/author.jpeg" 32 | # link of followme in author card and footer 33 | # 作者卡片里 followme 和页脚作者的链接 34 | link = "https://github.com/xioyito" 35 | 36 | # Taxonomies, Currently, only the following 3 taxonomies are supported 37 | # If you don't want one of them,delete it in [menus] instead here 38 | [taxonomies] 39 | category = "categories" 40 | tag = "tags" 41 | series = "series" 42 | 43 | [params] 44 | [params.site] 45 | onlyOneLang = false 46 | # style of theme: auto, light, dark 47 | mode = 'auto' 48 | # page configuration 49 | # 页面配置 50 | [params.page] 51 | 52 | # top image in home page, note that the "/" in path is necessary, the same applies below 53 | # 主页的顶部图,路径开头”/“是必需的。下同 54 | homeTopImg = "/images/home.jpg" 55 | # title in home top image, support Markdown 56 | # 主页标题,支持Markdown语法 57 | homeTitle = "XIOYITO" 58 | # font size(px) 59 | # 主页标题字号(单位:px) 60 | homeTitleFontSize = 40 61 | # content in home top image, support Markdown 62 | # 主页内容,支持Markdown语法 63 | homeContent = "Be Water, My Friend" 64 | # font size(px) 65 | # 主页内容字号(单位:px) 66 | homeContentFontSize = 20 67 | 68 | # top image in categories terms page 69 | # 分类页面的顶部图 70 | categoryTopImg = "/images/categories.jpg" 71 | # description of categories terms page 72 | # 子标题 73 | categoryDes = "description of categories page" 74 | 75 | # top image in tags terms page 76 | # 标签页面的顶部图 77 | tagTopImg = "/images/tag.jpg" 78 | # description of tags terms page 79 | # 子标题 80 | tagDes = "description of tags page" 81 | 82 | # top image in allosts page 83 | # 所有文章页面的顶部图 84 | allPostsTopImg = "/images/allPosts.jpg" 85 | # description of allposts page 86 | # 子标题 87 | allPostsDes = "description of allPosts page" 88 | 89 | # top image in about page 90 | # 关于页面的顶部图 91 | aboutTopImg = "/images/about.jpg" 92 | # description of about page 93 | # 子标题 94 | aboutDes = "description of about page" 95 | 96 | # default image for a post without "image" param 97 | # 当文章没有设置图片时,将用此图来替代 98 | defaultPostImg = "/images/default.jpg" 99 | 100 | # 主页文章最大显示数量 101 | maxHomePostCount = 5 102 | # 相关文章最大显示数量 103 | maxPageRelatedCount = 5 104 | # 最新文章最大显示数量 105 | maxPageNewestCount = 5 106 | 107 | # Valine comment 108 | # Valine评论(详情请移步:https://valine.js.org/) 109 | [params.valine] 110 | # 是否开启Valine评论系统 111 | enable = false 112 | # appid,具体请参考:https://valine.js.org/configuration.html#appId 113 | appid = 'xxxxxxxxxxxxxxxxxxxxxxxx-xxxxxxxx' 114 | # appKey,具体请参考:https://valine.js.org/configuration.html#appKey 115 | appkey = 'xxxxxxxxxxxxxxxxxxxxxxxx' 116 | # 输入框提示文字 117 | placeholder = '输入你的评论' 118 | # 头像,具体请参考:https://valine.js.org/avatar.html 119 | avatar = 'robohash' 120 | # 评论时要求的必须填写项,可选值:['nick']或['nick','mail'] 121 | requiredFields = ['nick'] 122 | # 文章访问量统计 123 | visitor = true 124 | # 单页最大评论数目 125 | pageSize = 5 126 | 127 | # footer 128 | # 页面底部配置 129 | [params.footer] 130 | # whether to enable footer 131 | enable = true 132 | # copyright 133 | copyRight = true 134 | from = 2022 135 | # wheher to enable count of visitor and view 136 | visitor = true 137 | # wheher to enable theme information 138 | themeInfo = true 139 | 140 | 141 | [menus] 142 | [[menus.main]] 143 | # 名称 144 | name = "Home" 145 | # 路径 146 | url = "/" 147 | # order weight, more small more close to left, at least 1 148 | # 排序的权重,越小越靠前(左),最小为1 149 | weight = 1 150 | # icon from FontAwesome in front of single entry 151 | # 图标,本主题使用的图标来自FontAwesome 152 | pre = "" 153 | [[menus.main]] 154 | name = "Posts" 155 | url = "/posts" 156 | weight = 2 157 | pre = "" 158 | [[menus.main]] 159 | name = "Categories" 160 | url = "/categories" 161 | weight = 3 162 | pre = "" 163 | [[menus.main]] 164 | name = "Tags" 165 | url = "/tags" 166 | weight = 5 167 | pre = "" 168 | [[menus.main]] 169 | name = "About" 170 | url = "/about" 171 | weight = 6 172 | pre = "" 173 | 174 | # social, maxum 6 175 | # 作者卡片社交链接,最多6个 176 | [[menus.social]] 177 | name = "GitHub" 178 | url = "https://github.com/xioyito" 179 | pre = "" 180 | weight = 1 181 | [[menus.social]] 182 | name = "YouTube" 183 | url = "https://www.youtube.com" 184 | pre = "" 185 | weight = 2 186 | 187 | # sponsor, maxum 3 188 | # 赞赏,最多支持3个 189 | [[menus.sponsor]] 190 | name = "Wechat" 191 | url = "/images/sponsor/Wechat.jpeg" 192 | weight = 1 193 | [[menus.sponsor]] 194 | name = "Alipay" 195 | url = "/images/sponsor/Alipay.jpeg" 196 | weight = 2 197 | 198 | # related configuration, see more: https://gohugo.io/content-management/related/ 199 | # 相关文章的配置。详情请移步:https://gohugo.io/content-management/related/ 200 | [related] 201 | # 取值0-100之间,越小匹配到的文章越多,但准确性稍差 202 | threshold = 0 203 | # 允许包含最新的文章 204 | includeNewer = true 205 | # 设置为true时,可以在索引和查询中同时使用小写关键字。 206 | # 这可能会在轻微的性能损失下提供更准确的结果。 207 | # 也可以在下面的子项中分别设置此值。 208 | toLower = false 209 | 210 | [[related.indices]] 211 | # 匹配类别 212 | name = "categories" 213 | # 一个整数权重,表示此参数相对于其他参数的重要性。 214 | # 可以是0,有关闭这个索引的效果,甚至是负数。 215 | # 使用不同的值进行测试,以查看最适合您的内容的值。 216 | weight = 100 217 | # 同上toLower 218 | toLower = false 219 | 220 | [[related.indices]] 221 | name = "tags" 222 | weight = 80 223 | toLower = false 224 | 225 | [[related.indices]] 226 | name = "date" 227 | weight = 10 228 | 229 | # Markup related configuration in Hugo 230 | # Hugo 解析文档的配置 231 | [markup] 232 | # syntax highlight, see more: https://gohugo.io/functions/highlight/ 233 | # 语法高亮,详情请移步:https://gohugo.io/functions/highlight/ 234 | [markup.highlight] 235 | codeFences = true 236 | guessSyntax = false 237 | hl_Lines = '' 238 | lineAnchors = '' 239 | lineNoStart = 1 240 | # 显示每一行代码前的序号 241 | lineNos = true 242 | anchorLineNos = false 243 | lineNumbersInTable = true 244 | noClasses = false 245 | noHl = false 246 | hl_inline = false 247 | # 代码高亮样式,更多样式请移步:https://xyproto.github.io/splash/docs/ 248 | style = 'monokailight' 249 | tabWidth = 4 250 | 251 | # enable the following code if there are html statements in your md file 252 | # 如果md文件中有html语句,请启用以下代码 253 | # [markup.goldmark] 254 | # [markup.goldmark.renderer] 255 | # unsafe = true 256 | 257 | -------------------------------------------------------------------------------- /config.toml: -------------------------------------------------------------------------------- 1 | [module] 2 | [module.hugoVersion] 3 | # extended = true 4 | # min = "0.91.2" 5 | # max = "0.91.2" -------------------------------------------------------------------------------- /i18n/en.toml: -------------------------------------------------------------------------------- 1 | # String in Home 2 | [Home_latestPosts] 3 | other = 'Latest Posts' 4 | [Home_allPosts] 5 | other = 'All Posts' 6 | 7 | # String in Posts 8 | [Posts_allPosts] 9 | other = 'all Posts' 10 | 11 | # String in Categories taxonomy 12 | [Categories_categories] 13 | other = 'Categories' 14 | [Categories_postUnit] # make 'one' and 'other' same If there is no singular and plural 15 | one = 'post' 16 | other = 'posts' 17 | # String in Categories terms 18 | [CategoriesTerms_category] 19 | other = 'Category' 20 | 21 | # String in Tags taxonomy 22 | [Tags_tags] 23 | other = 'Tags' 24 | # String in Tags terms 25 | [TagsTerms_tag] 26 | other = 'Tag' 27 | 28 | # String in Series taxonomy 29 | [Series_series] 30 | other = 'Series' 31 | # String in Series terms 32 | [SeriesTerms_series] 33 | other = 'Series' 34 | 35 | # String in About 36 | [About_about] 37 | other = 'About' 38 | 39 | # String in sidebar 40 | [sidebar_content] # This button will not appear until the comment function is turned on 41 | other = 'content' 42 | [sidebar_comment] # This button will not appear until the comment function is turned on 43 | other = 'comment' 44 | [sidebar_posts] 45 | other = 'posts' 46 | [sidebar_categories] 47 | other = 'categories' 48 | [sidebar_tags] 49 | other = 'tags' 50 | [sidebar_followMe] 51 | other = 'Follow Me' 52 | [sidebar_tableOfContent] 53 | other = 'Table of Contents' 54 | [sidebar_latestPosts] 55 | other = 'latest Posts' 56 | [sidebar_relatedPosts] 57 | other = 'Related Posts' 58 | 59 | # String in sponsor 60 | [sponsor_sponsor] 61 | other = 'Sponsor' 62 | [sponsor_cancel] 63 | other = 'cancel' 64 | 65 | # String in postInfo 66 | [postInfo_postedOn] 67 | other = 'postedOn' 68 | [postInfo_updatedOn] 69 | other = 'updatedOn' 70 | [postInfo_includedIn] 71 | other = 'includedIn' 72 | [postInfo_notIncluded] 73 | other = 'notIncluded' 74 | [postInfo_wordsCount] 75 | other = 'wordsCount' 76 | [postInfo_readingTime] 77 | other = 'readingTime' 78 | [postInfo_minute] # make 'one' and 'other' same If there is no singular and plural 79 | one = 'min' 80 | other = 'mins' 81 | [postInfo_viewers] 82 | other = 'viewers' 83 | 84 | # String in search 85 | [search_search] 86 | other = 'search' 87 | [search_enterAKeyWord] 88 | other = 'Enter a KeyWord' 89 | [search_found] 90 | other = 'Found' 91 | # keep '[search_result]' and '[search_results]' same 92 | # If there is no singular and plural 93 | [search_result] # singular 94 | other = 'result' 95 | [search_results] # plural 96 | other = 'results' 97 | [search_theEnd] 98 | other = 'The End' 99 | [search_nothing] 100 | other = 'Nothing was found' 101 | 102 | # String in 404 page 103 | [_404_sorry] 104 | other = 'Sorry, the page seems to be lost...' 105 | [_404_backToHome] 106 | other = 'Back to Home' 107 | 108 | # String in imageLoadingFailed 109 | [imageLoadingFailed] 110 | other = 'image loading failed' 111 | 112 | 113 | 114 | -------------------------------------------------------------------------------- /i18n/zh.toml: -------------------------------------------------------------------------------- 1 | # String in Home 2 | [Home_latestPosts] 3 | other = '最新文章' 4 | [Home_allPosts] 5 | other = '所有文章' 6 | 7 | # String in Posts 8 | [Posts_allPosts] 9 | other = '所有文章' 10 | 11 | # String in Categories taxonomy 12 | [Categories_categories] 13 | other = '分类' 14 | [Categories_postUnit] # keep 'one' and 'other' same If there is no singular and plural 15 | one = '篇' 16 | other = '篇' 17 | # String in Categories terms 18 | [CategoriesTerms_category] 19 | other = '分类' 20 | 21 | # String in Tags taxonomy 22 | [Tags_tags] 23 | other = '标签' 24 | # String in Tags terms 25 | [TagsTerms_tag] 26 | other = '标签' 27 | 28 | # String in Series taxonomy 29 | [Series_series] 30 | other = '系列' 31 | # String in Series terms 32 | [SeriesTerms_series] 33 | other = '系列' 34 | 35 | # String in About 36 | [About_about] 37 | other = '关于' 38 | 39 | # String in sidebar 40 | [sidebar_content] # This button will not appear until the comment function is turned on 41 | other = '目录' 42 | [sidebar_comment] # This button will not appear until the comment function is turned on 43 | other = '评论' 44 | [sidebar_posts] 45 | other = '文章' 46 | [sidebar_categories] 47 | other = '分类' 48 | [sidebar_tags] 49 | other = '标签' 50 | [sidebar_followMe] 51 | other = 'Follow Me' 52 | [sidebar_tableOfContent] 53 | other = '目录' 54 | [sidebar_latestPosts] 55 | other = '最新文章' 56 | [sidebar_relatedPosts] 57 | other = '相关文章' 58 | 59 | # String in sponsor 60 | [sponsor_sponsor] 61 | other = '赞赏' 62 | [sponsor_cancel] 63 | other = '取消' 64 | 65 | # String in postInfo 66 | [postInfo_postedOn] 67 | other = '发布于' 68 | [postInfo_updatedOn] 69 | other = '更新于' 70 | [postInfo_includedIn] 71 | other = '收录于' 72 | [postInfo_notIncluded] 73 | other = '未收录' 74 | [postInfo_wordsCount] 75 | other = '文章字数' 76 | [postInfo_readingTime] 77 | other = '阅读时间' 78 | [postInfo_minute] # keep 'one' and 'other' same If there is no singular and plural 79 | one = '分钟' 80 | other = '分钟' 81 | [postInfo_viewers] 82 | other = '阅读量' 83 | 84 | # String in search 85 | [search_search] 86 | other = '搜索' 87 | [search_enterAKeyWord] 88 | other = '请输入关键词' 89 | [search_found] 90 | other = '找到' 91 | # keep '[search_result]' and '[search_results]' same 92 | # If there is no singular and plural 93 | [search_result] # singular 94 | other = '条结果' 95 | [search_results] # plural 96 | other = '条结果' 97 | [search_theEnd] 98 | other = '到底了' 99 | [search_nothing] 100 | other = '什么也没找到' 101 | 102 | 103 | 104 | # String in 404 page 105 | [_404_sorry] 106 | other = '抱歉,页面好像走丢了...' 107 | [_404_backToHome] 108 | other = '回到主页' 109 | 110 | # String in imageLoadingFailed 111 | [imageLoadingFailed] 112 | other = '图片加载失败' 113 | 114 | 115 | 116 | -------------------------------------------------------------------------------- /images/Alipay.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xioyito/NewBee/b1d993caef349f9028d46988aa60ee391c3fb5c8/images/Alipay.jpeg -------------------------------------------------------------------------------- /images/Wechat.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xioyito/NewBee/b1d993caef349f9028d46988aa60ee391c3fb5c8/images/Wechat.jpeg -------------------------------------------------------------------------------- /images/preview-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xioyito/NewBee/b1d993caef349f9028d46988aa60ee391c3fb5c8/images/preview-1.png -------------------------------------------------------------------------------- /images/preview-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xioyito/NewBee/b1d993caef349f9028d46988aa60ee391c3fb5c8/images/preview-2.png -------------------------------------------------------------------------------- /images/preview-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xioyito/NewBee/b1d993caef349f9028d46988aa60ee391c3fb5c8/images/preview-3.png -------------------------------------------------------------------------------- /images/preview-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xioyito/NewBee/b1d993caef349f9028d46988aa60ee391c3fb5c8/images/preview-4.png -------------------------------------------------------------------------------- /images/screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xioyito/NewBee/b1d993caef349f9028d46988aa60ee391c3fb5c8/images/screenshot.png -------------------------------------------------------------------------------- /images/tn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xioyito/NewBee/b1d993caef349f9028d46988aa60ee391c3fb5c8/images/tn.png -------------------------------------------------------------------------------- /layouts/404.html: -------------------------------------------------------------------------------- 1 | 2 | {{ define "main"}} 3 | {{ $isMultiLingual := and (ne .Site.Language.Weight 1) (and .Site.IsMultiLingual (not .Site.Params.Site.OnlyOneLang)) }} 4 |
5 |
6 |
7 |
8 |
9 |
4
10 |
4
11 |
12 |
13 |
14 |
{{ i18n "_404_sorry" }}
15 | {{ i18n "_404_backToHome" }} 20 |
21 |
22 |
23 | {{ end }} -------------------------------------------------------------------------------- /layouts/_default/about.html: -------------------------------------------------------------------------------- 1 | {{ define "main" }} 2 | {{ partial "widgets/hero.html" . }} 3 |
4 |
5 |
6 |
7 | {{ partial "widgets/content-all.html" . }} 8 |
9 |
10 | {{ partial "widgets/zhuti-r.html" . }} 11 |
12 |
13 |
14 |
15 | {{ partial "widgets/sponsor.html" . }} 16 | {{ end }} -------------------------------------------------------------------------------- /layouts/_default/baseof.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | {{- partial "head.html" . -}} 4 | 5 |
6 |
7 |
8 |
9 |
10 |
11 | 12 | {{ if ne .Kind "404"}} 13 | {{- partial "header.html" . -}} 14 | {{ end }} 15 | 16 |
17 | {{- block "main" . }}{{- end }} 18 |
19 | 20 | {{ if ne .Kind "404"}} 21 | {{- partial "footer.html" . -}} 22 | {{ end }} 23 | 24 | {{ partial "search.html" . }} 25 | {{ partial "widgets/vars.html" . }} 26 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /layouts/_default/list.html: -------------------------------------------------------------------------------- 1 | {{ define "main" }} 2 |
3 |
4 |
5 |

{{ .Title }}

6 | {{ .Content }} 7 | {{ range .Pages }} 8 | {{ .Title }} 9 | {{ end }} 10 |
11 |
12 |
13 |
14 |
15 | {{ end }} -------------------------------------------------------------------------------- /layouts/_default/single.html: -------------------------------------------------------------------------------- 1 | {{ define "main" }} 2 |
3 |
4 |

5 | {{ .Title }} 6 |

7 |
8 | {{ .Content }} 9 |
10 |
11 |
12 | {{ end }} -------------------------------------------------------------------------------- /layouts/categories/taxonomy.html: -------------------------------------------------------------------------------- 1 | {{ define "main" }} 2 | {{ partial "widgets/taxoAndTerms.html" . }} 3 | {{ end }} -------------------------------------------------------------------------------- /layouts/categories/terms.html: -------------------------------------------------------------------------------- 1 | {{ define "main" }} 2 | {{ partial "widgets/taxoAndTerms.html" . }} 3 | {{ end }} -------------------------------------------------------------------------------- /layouts/index.html: -------------------------------------------------------------------------------- 1 | {{ define "main" }} 2 | {{ $kind := .Kind }} 3 | {{ partial "widgets/hero.html" . }} 4 |
5 |
6 |
7 |
8 |
9 |
10 |

11 | {{ i18n "Home_latestPosts" }} 12 |

13 |
14 |
15 |
16 | {{ range first .Site.Params.page.maxHomePostCount .Site.RegularPages }} 17 | {{ if and (not .Params.hideFromHomePage) (eq $kind "home") }} 18 |
19 | {{ partial "widgets/post-card.html" . }} 20 |
21 | {{ end }} 22 | {{ end }} 23 |
24 | 31 |
32 |
33 |
34 |
35 | {{ end }} -------------------------------------------------------------------------------- /layouts/partials/comments.html: -------------------------------------------------------------------------------- 1 |
2 | 3 | 15 | -------------------------------------------------------------------------------- /layouts/partials/footer.html: -------------------------------------------------------------------------------- 1 |
2 | {{ if .Site.Params.footer.enable }} 3 |
4 | 22 |
23 | {{ end }} 24 | 25 | {{ if .Site.Params.aplayer.enable }} 26 | {{ partial "widgets/aplayer.html" . }} 27 | {{ end }} 28 |
29 | 30 | -------------------------------------------------------------------------------- /layouts/partials/head.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | {{ .Site.Title }}{{ if not .IsHome }}{{ with .Title }} | {{ . }}{{ end }}{{ end }} 6 | 7 | 8 | 9 | {{ template "_internal/opengraph.html" . }} 10 | {{ template "_internal/twitter_cards.html" . }} 11 | {{ if not (in (string .Site.BaseURL) "localhost") }} 12 | {{ template "_internal/google_analytics_async.html" . }} 13 | {{ end }} 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | {{ if .Site.Params.valine.enable }} 30 | 31 | {{ end }} 32 | 33 | 34 | {{ if eq .Site.Params.Site.Mode "dark" }} 35 | 36 | 37 | {{ end }} 38 | 39 | 40 | 45 | {{ if .Site.Params.aplayer.enable }} 46 | 47 | 48 | 49 | {{ end }} 50 | {{ if .Site.Params.valine.enable }} 51 | 52 | {{ end }} 53 | {{ if .Params.math }} 54 | {{- partial "math-jax.html" . -}} 55 | {{ end }} 56 | {{ if .Params.mermaid }} 57 | 58 | {{ end }} 59 | 60 | 61 | 62 | 63 | 64 | {{ if and .Site.Params.footer.enable .Site.Params.footer.visitor }} 65 | 66 | {{ end }} 67 | -------------------------------------------------------------------------------- /layouts/partials/header.html: -------------------------------------------------------------------------------- 1 |
2 | 35 |
36 | {{ range .Site.Menus.main }} 37 | 38 |
39 | {{ .Pre }} {{ .Name }} 40 |
41 |
42 | {{ end }} 43 |
44 |
45 |
46 | -------------------------------------------------------------------------------- /layouts/partials/math-jax.html: -------------------------------------------------------------------------------- 1 | 15 | 16 | 21 | 22 | -------------------------------------------------------------------------------- /layouts/partials/search.html: -------------------------------------------------------------------------------- 1 |
2 |
3 | 19 |
-------------------------------------------------------------------------------- /layouts/partials/widgets/aplayer.html: -------------------------------------------------------------------------------- 1 | {{ with .Site.Params.aplayer }} 2 |
3 | 15 | 16 |
17 | {{ end }} -------------------------------------------------------------------------------- /layouts/partials/widgets/archives.html: -------------------------------------------------------------------------------- 1 |
2 | {{ range (.Site.RegularPages.GroupByDate "2006") }} 3 |
4 |

{{ .Key }}

5 |
6 | {{ range (where .Pages "Type" "posts") }} 7 | 8 |
9 |
10 |
{{ .Title }}
11 |
12 |
{{ .PublishDate.Format "01-02" }}
13 |
14 |
15 | {{ end }} 16 |
17 |
18 | {{ end }} 19 |
-------------------------------------------------------------------------------- /layouts/partials/widgets/author-card.html: -------------------------------------------------------------------------------- 1 | {{ $langNow := .Lang }} 2 | {{ $isMultiLingual := and (ne .Site.Language.Weight 1) (and .Site.IsMultiLingual (not .Site.Params.Site.OnlyOneLang)) }} 3 |
4 |
5 | {{ with .Site.Author.image }} 6 |
7 | 8 |
9 | {{ end }} 10 |
11 |
{{ .Site.Author.name }}
12 |
13 | {{ .Site.Author.description }} 14 |
15 |
16 |
17 | 18 | 44 | 45 | 46 | 47 | 48 | 55 |
-------------------------------------------------------------------------------- /layouts/partials/widgets/category-card.html: -------------------------------------------------------------------------------- 1 | {{ $categorypostsImg := .Site.Params.page.defaultPostImg }} 2 | {{ range .Data.Terms.ByCount }} 3 | {{ $pageTitle := .Page.Title }} 4 | {{ $pageCount := .Count }} 5 | 24 | {{ end }} 25 | -------------------------------------------------------------------------------- /layouts/partials/widgets/content-all.html: -------------------------------------------------------------------------------- 1 | {{ $class1 := "" }} 2 | {{ $isPage := or (eq .Kind "page") (eq .Section "about") }} 3 | {{ $langNow := .Lang }} 4 | {{ $isMultiLingual := and (ne .Site.Language.Weight 1) (and .Site.IsMultiLingual (not .Site.Params.Site.OnlyOneLang)) }} 5 | {{ if $isPage }} 6 | {{ $class1 = "content-root" }} 7 | {{ else if eq .Kind "taxonomy" }} 8 | {{ $class1 = "taxo-body" }} 9 | {{ else if eq .Kind "term" }} 10 | {{ $class1 = "terms-body" }} 11 | {{ end }} 12 | 13 |
14 |
15 | 18 | 21 | 24 |
25 | {{ if $isPage }} 26 |
27 |
28 | {{ .Content }} 29 |
30 | {{ if eq .Kind "page" }} 31 |
32 | {{ range $tag := .Params.tags }} 33 | 34 | 43 | 44 | {{ end }} 45 |
46 | {{ end }} 47 |
48 | {{ if eq .Kind "page" }} 49 | {{ if or .PrevInSection .NextInSection }} 50 |
51 | {{ partial "widgets/pre-next.html" . }} 52 |
53 | {{ end }} 54 | {{ end }} 55 | {{ else if eq .Kind "term" }} 56 |
57 | {{ range .Pages }} 58 |
59 | 60 | {{ partial "widgets/post-card.html" . }} 61 |
62 | {{ end }} 63 |
64 | {{ else if eq .Kind "taxonomy" }} 65 |
66 | {{ if eq .Section "tags" }} 67 | {{ partial "widgets/tag-card.html" . }} 68 | {{ else }} 69 | {{ partial "widgets/category-card.html" . }} 70 | {{ end }} 71 |
72 | {{ end }} 73 |
74 | {{ if $isPage }} 75 | {{ if or .Site.Menus.sponsor .Site.Params.valine.enable }} 76 |
77 | {{ if .Site.Menus.sponsor }} 78 | 81 | {{ end }} 82 | {{ if .Site.Params.valine.enable }} 83 | 86 | {{ end }} 87 |
88 | {{ end }} 89 | {{ end }} 90 | -------------------------------------------------------------------------------- /layouts/partials/widgets/hero.html: -------------------------------------------------------------------------------- 1 | {{ $langNow := .Lang }} 2 | {{ $hero_img := .Site.Params.page.defaultPostImg }} 3 | {{ $hero_title := "" }} 4 | {{ $hero_des := "" }} 5 | {{ $isMultiLingual := and (ne .Site.Language.Weight 1) (and .Site.IsMultiLingual (not .Site.Params.Site.OnlyOneLang)) }} 6 | {{ if eq .Kind "section" }} 7 | {{ if eq .Section "posts" }} 8 | {{ $hero_img = .Site.Params.page.allPostsTopImg }} 9 | {{ $hero_title = i18n "Posts_allPosts" }} 10 | {{ $hero_des = .Site.Params.page.allPostsDes }} 11 | {{ else if eq .Section "about" }} 12 | {{ $hero_img = .Site.Params.page.aboutTopImg }} 13 | {{ $hero_title = i18n "About_about" }} 14 | {{ $hero_des = .Site.Params.page.aboutDes }} 15 | {{ end }} 16 | 17 | {{ else if eq .Kind "taxonomy" }} 18 | {{ if eq .Section "categories" }} 19 | {{ $hero_img = .Site.Params.page.categoryTopImg }} 20 | {{ $hero_title = i18n "Categories_categories" }} 21 | {{ $hero_des = .Site.Params.page.categoryDes }} 22 | {{ else if eq .Section "tags" }} 23 | {{ $hero_img = .Site.Params.page.tagTopImg }} 24 | {{ $hero_title = i18n "Tags_tags" }} 25 | {{ $hero_des = .Site.Params.page.tagDes }} 26 | {{ else if eq .Section "series" }} 27 | {{ $hero_img = .Site.Params.page.seriesTopImg }} 28 | {{ $hero_title = i18n "Series_series" }} 29 | {{ $hero_des = .Site.Params.page.seriesDes }} 30 | {{ end }} 31 | 32 | {{ else if eq .Kind "term" }} 33 | {{ if eq .Section "categories" }} 34 | {{ $hero_title = add (i18n "CategoriesTerms_category") ": " }} 35 | {{ else if eq .Section "tags" }} 36 | {{ $hero_title = add (i18n "TagsTerms_tag") ": " }} 37 | {{ else if eq .Section "series" }} 38 | {{ $hero_title = add (i18n "SeriesTerms_series") ": " }} 39 | {{ end }} 40 | 41 | {{ else if eq .Kind "home" }} 42 | {{ $hero_img = .Site.Params.page.homeTopImg }} 43 | {{ $hero_title = .Site.Params.page.homeTitle }} 44 | {{ $hero_des = .Site.Params.page.homeContent }} 45 | {{ end }} 46 | 47 | {{ if eq .Kind "home" }} 48 |
49 | {{ with .Site.Params.page.homeTopImg }} 50 |
51 | 52 |
53 | {{ end }} 54 |
55 | {{ $hometitlefontsize := .Site.Params.page.homeTitleFontSize }} 56 | {{ $homecontentfontsize := .Site.Params.page.homeContentFontSize }} 57 | {{ with $hero_title }} 58 |
{{ . | markdownify }}
59 | {{ end }} 60 | {{ with $hero_des }} 61 |
{{ . | markdownify }}
62 | {{ end }} 63 | 66 |
67 |
68 | 69 | {{ else if eq .Kind "page" }} 70 |
71 | {{ with .Params.image }} 72 |
73 | 74 |
75 | {{ else }} 76 |
77 | 78 |
79 | {{ end }} 80 |
81 |
{{ .Title }}
82 |
{{ .Params.subtitle }}
83 |
84 | {{ i18n "postInfo_postedOn" }}: {{ .PublishDate.Format "2006-1-2" }}   85 | {{ i18n "postInfo_updatedOn" }}: {{ .Lastmod.Format "2006-1-2" }}   86 | 87 | {{ with .Params.categories }}{{ i18n "postInfo_includedIn" }}:{{ else }}{{ i18n "postInfo_notIncluded" }}{{ end }} 88 | {{ range $idx, $category := .Params.categories }} 89 | {{- if ne $idx 0 }}, {{ end }} 90 | 95 | {{ $category }} 96 | 97 | {{- end }} 98 | 99 |
100 |
101 | {{ i18n "postInfo_wordsCount" }}: {{ .WordCount }}   102 | {{ i18n "postInfo_readingTime" }}: {{ .ReadingTime }} {{ i18n "postInfo_minute" .ReadingTime }}   103 | {{ if .Site.Params.footer.visitor }} {{ i18n "postInfo_viewers" }}: {{ end }} 104 |
105 |
106 |
107 | 108 | {{ else if or (eq .Kind "section") (eq .Kind "taxonomy") }} 109 |
110 | {{ with $hero_img }} 111 |
112 | 113 |
114 | {{ end }} 115 |
116 |
{{ $hero_title }}
117 |
{{ $hero_des }}
118 |
119 |
120 | 121 | {{ else if eq .Kind "term" }} 122 |
123 | {{ $firstChild := index .Pages 0 }} 124 | {{ with $firstChild.Params.image }} 125 |
126 | 127 |
128 | {{ else }} 129 |
130 | 131 |
132 | {{ end }} 133 |
134 |

{{ $hero_title }}{{ .Title }}

135 |
136 |
137 | 138 | {{ end }} 139 | 140 | -------------------------------------------------------------------------------- /layouts/partials/widgets/mulu.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 |
5 |
{{ i18n "sidebar_tableOfContent" }}
6 |
7 |
8 |
9 |
10 |
-------------------------------------------------------------------------------- /layouts/partials/widgets/other.html: -------------------------------------------------------------------------------- 1 | {{ $newOrRelated_text := i18n "sidebar_latestPosts" }} 2 | {{ $newOrRelated := first .Site.Params.page.maxPageNewestCount .Site.RegularPages }} 3 | 4 | {{ if eq .Kind "page" }} 5 | {{ $newOrRelated = (where (.Site.RegularPages.Related .) "Type" "posts") | first .Site.Params.page.maxPageRelatedCount }} 6 | {{ $newOrRelated_text = i18n "sidebar_relatedPosts" }} 7 | {{ end }} 8 | 9 |
10 |
11 |
{{ $newOrRelated_text }}
12 |
13 |
14 |
15 | {{ range $newOrRelated }} 16 | 17 | {{ partial "widgets/post-card-small.html" . }} 18 | 19 | {{ end }} 20 |
21 |
-------------------------------------------------------------------------------- /layouts/partials/widgets/post-card-small.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 |
5 | {{ with .Params.image }} 6 |
7 | {{ else }} 8 |
9 | {{ end }} 10 |
11 |
12 |
13 | {{ .Title }} 14 |
15 |
{{ .Summary }}
16 |
{{ .PublishDate.Format "2006-1-2"}}
17 |
18 |
19 |
-------------------------------------------------------------------------------- /layouts/partials/widgets/post-card.html: -------------------------------------------------------------------------------- 1 | {{ $langNow := .Lang }} 2 | {{ $isMultiLingual := and (ne .Site.Language.Weight 1) (and .Site.IsMultiLingual (not .Site.Params.Site.OnlyOneLang)) }} 3 | {{ $includedIn := "newnewnew" }} 4 | 5 |
6 |
7 | 8 | {{ with .Params.image }} 9 | {{ i18n "imageLoadingFailed" }} 10 | {{ else }} 11 | {{ i18n "imageLoadingFailed" }} 12 | {{ end }} 13 |
14 |
15 | 16 |
17 | {{ i18n "postInfo_postedOn" }}: {{ .PublishDate.Format "2006-1-2" }}   18 | {{ i18n "postInfo_updatedOn" }}: {{ .Lastmod.Format "2006-1-2" }}   19 | 20 | {{ with .Params.categories }} 21 | {{ i18n "postInfo_includedIn" }}: 22 | {{ range $idx, $category := . }} 23 | {{- if ne $idx 0 }}, {{ end }} 24 | 29 | {{ $category }} 30 | 31 | {{- end }} 32 | {{ else }} 33 | {{ i18n "postInfo_notIncluded" }} 34 | {{ end }} 35 | 36 |
37 |
{{ .Summary }}
38 |
39 |
40 | 41 | 42 | 43 |
44 |
45 | 46 | {{ $tagsCount := 0 }} 47 | {{ with .Params.tags }} 48 | {{ $tagsCount = 1 }} 49 | {{ end }} 50 | {{ if eq $tagsCount 1 }} 51 |
52 | {{ range $tag := .Params.tags }} 53 | 54 |
55 |
56 |
57 | 66 |
67 | {{ end }} 68 |
69 | {{ end }} 70 |
-------------------------------------------------------------------------------- /layouts/partials/widgets/pre-next.html: -------------------------------------------------------------------------------- 1 | {{ if .PrevInSection }} 2 | {{ if .NextInSection }} 3 | {{ with .PrevInSection }} 4 | 5 | 6 |
7 | {{ .Title }} 8 |
9 |
10 | {{ end }} 11 | 12 | {{ with .NextInSection }} 13 | 19 | {{ end }} 20 | 21 | {{ else }} 22 | {{ with .PrevInSection }} 23 | 24 | 25 |
26 | {{ .Title }} 27 |
28 |
29 | {{ end }} 30 | {{ end }} 31 | 32 | {{ else }} 33 | {{ if .NextInSection }} 34 | {{ with .NextInSection }} 35 | 41 | {{ end }} 42 | {{ end }} 43 | {{ end }} -------------------------------------------------------------------------------- /layouts/partials/widgets/selectLang.html: -------------------------------------------------------------------------------- 1 | {{ $nowIsDefaultLang := eq .Site.Language.Weight 1 }} 2 |
3 |
4 |
{{ .Language.LanguageName }}
5 |
6 |
    7 | {{ range $.Site.Home.AllTranslations }} 8 |
  • {{ .Language.LanguageName }}
  • 9 | {{ end }} 10 |
11 |
12 |
13 |
14 | 15 | -------------------------------------------------------------------------------- /layouts/partials/widgets/sponsor.html: -------------------------------------------------------------------------------- 1 | {{ if .Site.Menus.sponsor }} 2 | {{ $len_btn := len .Site.Menus.sponsor }} 3 | {{ $num_sponsor := 1 }} 4 | 44 | {{ end }} -------------------------------------------------------------------------------- /layouts/partials/widgets/tag-card.html: -------------------------------------------------------------------------------- 1 | 2 | {{ range .Data.Terms.ByCount }} 3 | {{ $pageTitle := .Page.Title }} 4 | {{ $pageCount := .Count }} 5 | 15 | {{ end }} -------------------------------------------------------------------------------- /layouts/partials/widgets/taxoAndTerms.html: -------------------------------------------------------------------------------- 1 | 2 | {{ partial "widgets/hero.html" . }} 3 |
4 |
5 |
6 |
7 | {{ partial "widgets/content-all.html" . }} 8 |
9 |
10 | {{ partial "widgets/zhuti-r.html" . }} 11 |
12 |
13 |
14 |
15 | -------------------------------------------------------------------------------- /layouts/partials/widgets/terms-card.html: -------------------------------------------------------------------------------- 1 | {{ $categoryTermsImg := .Site.Params.img.categoryTermsImg }} 2 | {{ range .Data.Terms.ByCount }} 3 | {{ $pageTitle := .Page.Title }} 4 | {{ $pageCount := len .Pages }} 5 | 22 | {{ end }} 23 | -------------------------------------------------------------------------------- /layouts/partials/widgets/vars.html: -------------------------------------------------------------------------------- 1 | {{ $mode_custom := .Site.Params.Site.Mode }} 2 | {{ $postsCount := len .Site.RegularPages }} 3 | {{ $arrPosts := slice }} 4 | {{ $theEnd := i18n "search_theEnd" }} 5 | {{ $nothing := i18n "search_nothing" }} 6 | {{ $found := i18n "search_found" }} 7 | {{ $result := i18n "search_result" }} 8 | {{ $results := i18n "search_results" }} 9 | {{ $enableMermaid := .Params.mermaid }} 10 | {{ range .Site.RegularPages }} 11 | {{ $thePost := dict "title" .Title "pubDate" (.PublishDate.Format "2006-01-02") "plain" .Plain "link" .Permalink }} 12 | {{ $arrPosts = $arrPosts | append $thePost }} 13 | {{ end }} 14 | 15 | {{ $baseURL := .Site.BaseURL }} 16 | 17 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /layouts/partials/widgets/zhuti-r.html: -------------------------------------------------------------------------------- 1 | {{ $enable_mulu := and .Site.Params.Valine.enable (or (eq .Section "about") (eq .Kind "page")) }} 2 |
3 |
4 | {{ if $enable_mulu }} 5 |
6 | 7 | 8 |
9 | {{ end }} 10 |
11 | {{ partial "widgets/author-card.html" . }} 12 | {{ partial "widgets/mulu.html" . }} 13 | {{ partial "widgets/other.html" . }} 14 |
15 |
16 | {{ if $enable_mulu }} 17 | {{- partial "comments.html" . -}} 18 | {{ end }} 19 |
20 |
21 |
22 | -------------------------------------------------------------------------------- /layouts/posts/list.html: -------------------------------------------------------------------------------- 1 | {{ define "main" }} 2 | {{ partial "widgets/hero.html" . }} 3 |
4 |
5 |
6 |
7 |
8 |
9 | 12 | 15 | 18 |
19 |
20 | {{ partial "widgets/archives.html" . }} 21 |
22 |
23 |
24 |
25 | {{ partial "widgets/zhuti-r.html" . }} 26 |
27 |
28 |
29 |
30 | {{ end }} -------------------------------------------------------------------------------- /layouts/posts/single.html: -------------------------------------------------------------------------------- 1 | {{ define "main" }} 2 | {{ partial "widgets/hero.html" . }} 3 |
4 |
5 |
6 |
7 | {{ partial "widgets/content-all.html" . }} 8 |
9 |
10 | {{ partial "widgets/zhuti-r.html" . }} 11 |
12 |
13 |
14 |
15 | {{ partial "widgets/sponsor.html" . }} 16 | {{ end }} -------------------------------------------------------------------------------- /layouts/series/taxonomy.html: -------------------------------------------------------------------------------- 1 | {{ define "main" }} 2 | {{ partial "widgets/taxoAndTerms.html" . }} 3 | {{ end }} -------------------------------------------------------------------------------- /layouts/series/terms.html: -------------------------------------------------------------------------------- 1 | {{ define "main" }} 2 | {{ partial "widgets/taxoAndTerms.html" . }} 3 | {{ end }} 4 | -------------------------------------------------------------------------------- /layouts/shortcodes/math.html: -------------------------------------------------------------------------------- 1 |
2 | {{ .Inner }} 3 |
-------------------------------------------------------------------------------- /layouts/shortcodes/mermaid.html: -------------------------------------------------------------------------------- 1 |
2 | {{ .Inner }} 3 |
-------------------------------------------------------------------------------- /layouts/tags/taxonomy.html: -------------------------------------------------------------------------------- 1 | {{ define "main" }} 2 | {{ partial "widgets/taxoAndTerms.html" . }} 3 | {{ end }} -------------------------------------------------------------------------------- /layouts/tags/terms.html: -------------------------------------------------------------------------------- 1 | {{ define "main" }} 2 | {{ partial "widgets/taxoAndTerms.html" . }} 3 | {{ end }} -------------------------------------------------------------------------------- /static/css/aplayer.css: -------------------------------------------------------------------------------- 1 | .aplayer{background:#fff;font-family:Arial,Helvetica,sans-serif;margin:5px;box-shadow:0 2px 2px 0 rgba(0,0,0,.07),0 1px 5px 0 rgba(0,0,0,.1);border-radius:2px;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;line-height:normal;position:relative} 2 | .aplayer *{box-sizing:content-box} 3 | .aplayer svg{width:100%;height:100%} 4 | .aplayer svg circle,.aplayer svg path{fill:#fff} 5 | .aplayer.aplayer-withlist .aplayer-info{border-bottom:1px solid #e9e9e9} 6 | .aplayer.aplayer-withlist .aplayer-list{display:block} 7 | .aplayer.aplayer-withlist .aplayer-icon-order,.aplayer.aplayer-withlist .aplayer-info .aplayer-controller .aplayer-time .aplayer-icon.aplayer-icon-menu{display:inline} 8 | .aplayer.aplayer-withlrc .aplayer-pic{height:90px;width:90px} 9 | .aplayer.aplayer-withlrc .aplayer-info{margin-left:90px;height:90px;padding:10px 7px 0} 10 | .aplayer.aplayer-withlrc .aplayer-lrc{display:block} 11 | .aplayer.aplayer-narrow{width:66px} 12 | .aplayer.aplayer-narrow .aplayer-info,.aplayer.aplayer-narrow .aplayer-list{display:none} 13 | .aplayer.aplayer-narrow .aplayer-body,.aplayer.aplayer-narrow .aplayer-pic{height:66px;width:66px} 14 | .aplayer.aplayer-fixed{position:fixed;bottom:0;left:0;right:0;margin:0;z-index:99;overflow:visible;max-width:400px;box-shadow:none}.aplayer.aplayer-fixed .aplayer-list{margin-bottom:65px;border:1px solid #eee;border-bottom:none}.aplayer.aplayer-fixed .aplayer-body{position:fixed;bottom:0;left:0;right:0;margin:0;z-index:99;background:#fff;padding-right:18px;transition:all .3s ease;max-width:400px}.aplayer.aplayer-fixed .aplayer-lrc{display:block;position:fixed;bottom:10px;left:0;right:0;margin:0;z-index:98;pointer-events:none;text-shadow:-1px -1px 0 #fff}.aplayer.aplayer-fixed .aplayer-lrc:after,.aplayer.aplayer-fixed .aplayer-lrc:before{display:none}.aplayer.aplayer-fixed .aplayer-info{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:0 0;transform-origin:0 0;transition:all .3s ease;border-bottom:none;border-top:1px solid #e9e9e9}.aplayer.aplayer-fixed .aplayer-info .aplayer-music{width:calc(100% - 105px)}.aplayer.aplayer-fixed .aplayer-miniswitcher{display:block}.aplayer.aplayer-fixed.aplayer-narrow .aplayer-info{display:block;-webkit-transform:scaleX(0);transform:scaleX(0)}.aplayer.aplayer-fixed.aplayer-narrow .aplayer-body{width:66px!important}.aplayer.aplayer-fixed.aplayer-narrow .aplayer-miniswitcher .aplayer-icon{-webkit-transform:rotateY(0);transform:rotateY(0)}.aplayer.aplayer-fixed .aplayer-icon-back,.aplayer.aplayer-fixed .aplayer-icon-forward,.aplayer.aplayer-fixed .aplayer-icon-lrc,.aplayer.aplayer-fixed .aplayer-icon-play{display:inline-block}.aplayer.aplayer-fixed .aplayer-icon-back,.aplayer.aplayer-fixed .aplayer-icon-forward,.aplayer.aplayer-fixed .aplayer-icon-menu,.aplayer.aplayer-fixed .aplayer-icon-play{position:absolute;bottom:27px;width:20px;height:20px}.aplayer.aplayer-fixed .aplayer-icon-back{right:75px}.aplayer.aplayer-fixed .aplayer-icon-play{right:50px}.aplayer.aplayer-fixed .aplayer-icon-forward{right:25px}.aplayer.aplayer-fixed .aplayer-icon-menu{right:0}.aplayer.aplayer-arrow .aplayer-icon-loop,.aplayer.aplayer-arrow .aplayer-icon-order,.aplayer.aplayer-mobile .aplayer-icon-volume-down{display:none}.aplayer.aplayer-loading .aplayer-info .aplayer-controller .aplayer-loading-icon{display:block}.aplayer.aplayer-loading .aplayer-info .aplayer-controller .aplayer-bar-wrap .aplayer-bar .aplayer-played .aplayer-thumb{-webkit-transform:scale(1);transform:scale(1)}.aplayer .aplayer-body{position:relative}.aplayer .aplayer-icon{width:15px;height:15px;border:none;background-color:transparent;outline:none;cursor:pointer;opacity:.8;vertical-align:middle;padding:0;font-size:12px;margin:0;display:inline-block}.aplayer .aplayer-icon path{transition:all .2s ease-in-out}.aplayer .aplayer-icon-back,.aplayer .aplayer-icon-forward,.aplayer .aplayer-icon-lrc,.aplayer .aplayer-icon-order,.aplayer .aplayer-icon-play{display:none}.aplayer .aplayer-icon-lrc-inactivity svg{opacity:.4}.aplayer .aplayer-icon-forward{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.aplayer .aplayer-lrc-content{display:none}.aplayer .aplayer-pic{position:relative;float:left;height:66px;width:66px;background-size:cover;background-position:50%;transition:all .3s ease;cursor:pointer}.aplayer .aplayer-pic:hover .aplayer-button{opacity:1}.aplayer .aplayer-pic .aplayer-button{position:absolute;border-radius:50%;opacity:.8;text-shadow:0 1px 1px rgba(0,0,0,.2);box-shadow:0 1px 1px rgba(0,0,0,.2);background:rgba(0,0,0,.2);transition:all .1s ease}.aplayer .aplayer-pic .aplayer-button path{fill:#fff}.aplayer .aplayer-pic .aplayer-hide{display:none}.aplayer .aplayer-pic .aplayer-play{width:26px;height:26px;border:2px solid #fff;bottom:50%;right:50%;margin:0 -15px -15px 0}.aplayer .aplayer-pic .aplayer-play svg{position:absolute;top:3px;left:4px;height:20px;width:20px}.aplayer .aplayer-pic .aplayer-pause{width:16px;height:16px;border:2px solid #fff;bottom:4px;right:4px}.aplayer .aplayer-pic .aplayer-pause svg{position:absolute;top:2px;left:2px;height:12px;width:12px}.aplayer .aplayer-info{margin-left:66px;padding:14px 7px 0 10px;height:66px;box-sizing:border-box}.aplayer .aplayer-info .aplayer-music{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;margin:0 0 13px 5px;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text;cursor:default;padding-bottom:2px;height:20px}.aplayer .aplayer-info .aplayer-music .aplayer-title{font-size:14px}.aplayer .aplayer-info .aplayer-music .aplayer-author{font-size:12px;color:#666}.aplayer .aplayer-info .aplayer-controller{position:relative;display:flex}.aplayer .aplayer-info .aplayer-controller .aplayer-bar-wrap{margin:0 0 0 5px;padding:4px 0;cursor:pointer!important;flex:1}.aplayer .aplayer-info .aplayer-controller .aplayer-bar-wrap:hover .aplayer-bar .aplayer-played .aplayer-thumb{-webkit-transform:scale(1);transform:scale(1)}.aplayer .aplayer-info .aplayer-controller .aplayer-bar-wrap .aplayer-bar{position:relative;height:2px;width:100%;background:#cdcdcd}.aplayer .aplayer-info .aplayer-controller .aplayer-bar-wrap .aplayer-bar .aplayer-loaded{position:absolute;left:0;top:0;bottom:0;background:#aaa;height:2px;transition:all .5s ease}.aplayer .aplayer-info .aplayer-controller .aplayer-bar-wrap .aplayer-bar .aplayer-played{position:absolute;left:0;top:0;bottom:0;height:2px}.aplayer .aplayer-info .aplayer-controller .aplayer-bar-wrap .aplayer-bar .aplayer-played .aplayer-thumb{position:absolute;top:0;right:5px;margin-top:-4px;margin-right:-10px;height:10px;width:10px;border-radius:50%;cursor:pointer;transition:all .3s ease-in-out;-webkit-transform:scale(0);transform:scale(0)}.aplayer .aplayer-info .aplayer-controller .aplayer-time{position:relative;right:0;bottom:4px;height:17px;color:#999;font-size:11px;padding-left:7px}.aplayer .aplayer-info .aplayer-controller .aplayer-time .aplayer-time-inner{vertical-align:middle}.aplayer .aplayer-info .aplayer-controller .aplayer-time .aplayer-icon{cursor:pointer;transition:all .2s ease}.aplayer .aplayer-info .aplayer-controller .aplayer-time .aplayer-icon path{fill:#666}.aplayer .aplayer-info .aplayer-controller .aplayer-time .aplayer-icon.aplayer-icon-loop{margin-right:2px}.aplayer .aplayer-info .aplayer-controller .aplayer-time .aplayer-icon:hover path{fill:#000}.aplayer .aplayer-info .aplayer-controller .aplayer-time .aplayer-icon.aplayer-icon-menu,.aplayer .aplayer-info .aplayer-controller .aplayer-time.aplayer-time-narrow .aplayer-icon-menu,.aplayer .aplayer-info .aplayer-controller .aplayer-time.aplayer-time-narrow .aplayer-icon-mode{display:none}.aplayer .aplayer-info .aplayer-controller .aplayer-volume-wrap{position:relative;display:inline-block;margin-left:3px;cursor:pointer!important}.aplayer .aplayer-info .aplayer-controller .aplayer-volume-wrap:hover .aplayer-volume-bar-wrap{height:40px}.aplayer .aplayer-info .aplayer-controller .aplayer-volume-wrap .aplayer-volume-bar-wrap{position:absolute;bottom:15px;right:-3px;width:25px;height:0;z-index:99;overflow:hidden;transition:all .2s ease-in-out}.aplayer .aplayer-info .aplayer-controller .aplayer-volume-wrap .aplayer-volume-bar-wrap.aplayer-volume-bar-wrap-active{height:40px}.aplayer .aplayer-info .aplayer-controller .aplayer-volume-wrap .aplayer-volume-bar-wrap .aplayer-volume-bar{position:absolute;bottom:0;right:10px;width:5px;height:35px;background:#aaa;border-radius:2.5px;overflow:hidden}.aplayer .aplayer-info .aplayer-controller .aplayer-volume-wrap .aplayer-volume-bar-wrap .aplayer-volume-bar .aplayer-volume{position:absolute;bottom:0;right:0;width:5px;transition:all .1s ease}.aplayer .aplayer-info .aplayer-controller .aplayer-loading-icon{display:none}.aplayer .aplayer-info .aplayer-controller .aplayer-loading-icon svg{position:absolute;-webkit-animation:rotate 1s linear infinite;animation:rotate 1s linear infinite}.aplayer .aplayer-lrc{display:none;position:relative;height:30px;text-align:center;overflow:hidden;margin:-10px 0 7px}.aplayer .aplayer-lrc:before{top:0;height:10%;background:linear-gradient(180deg,#fff 0,hsla(0,0%,100%,0));filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#ffffff",endColorstr="#00ffffff",GradientType=0)}.aplayer .aplayer-lrc:after,.aplayer .aplayer-lrc:before{position:absolute;z-index:1;display:block;overflow:hidden;width:100%;content:" "}.aplayer .aplayer-lrc:after{bottom:0;height:33%;background:linear-gradient(180deg,hsla(0,0%,100%,0) 0,hsla(0,0%,100%,.8));filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#00ffffff",endColorstr="#ccffffff",GradientType=0)}.aplayer .aplayer-lrc p{font-size:12px;color:#666;line-height:16px!important;height:16px!important;padding:0!important;margin:0!important;transition:all .5s ease-out;opacity:.4;overflow:hidden}.aplayer .aplayer-lrc p.aplayer-lrc-current{opacity:1;overflow:visible;height:auto!important;min-height:16px}.aplayer .aplayer-lrc.aplayer-lrc-hide{display:none}.aplayer .aplayer-lrc .aplayer-lrc-contents{width:100%;transition:all .5s ease-out;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text;cursor:default}.aplayer .aplayer-list{overflow:auto;transition:all .5s ease;will-change:height;display:none;overflow:hidden}.aplayer .aplayer-list.aplayer-list-hide{max-height:0!important}.aplayer .aplayer-list ol{list-style-type:none;margin:0;padding:0;overflow-y:auto}.aplayer .aplayer-list ol::-webkit-scrollbar{width:5px}.aplayer .aplayer-list ol::-webkit-scrollbar-thumb{border-radius:3px;background-color:#eee}.aplayer .aplayer-list ol::-webkit-scrollbar-thumb:hover{background-color:#ccc}.aplayer .aplayer-list ol li{position:relative;height:32px;line-height:32px;padding:0 15px;font-size:12px;border-top:1px solid #e9e9e9;cursor:pointer;transition:all .2s ease;overflow:hidden;margin:0}.aplayer .aplayer-list ol li:first-child{border-top:none}.aplayer .aplayer-list ol li:hover{background:#efefef}.aplayer .aplayer-list ol li.aplayer-list-light{background:#e9e9e9}.aplayer .aplayer-list ol li.aplayer-list-light .aplayer-list-cur{display:inline-block}.aplayer .aplayer-list ol li .aplayer-list-cur{display:none;width:3px;height:22px;position:absolute;left:0;top:5px;cursor:pointer}.aplayer .aplayer-list ol li .aplayer-list-index{color:#666;margin-right:12px;cursor:pointer}.aplayer .aplayer-list ol li .aplayer-list-author{color:#666;float:right;cursor:pointer}.aplayer .aplayer-notice{opacity:0;position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);font-size:12px;border-radius:4px;padding:5px 10px;transition:all .3s ease-in-out;overflow:hidden;color:#fff;pointer-events:none;background-color:#f4f4f5;color:#909399}.aplayer .aplayer-miniswitcher{display:none;position:absolute;top:0;right:0;bottom:0;height:100%;background:#e6e6e6;width:18px;border-radius:0 2px 2px 0}.aplayer .aplayer-miniswitcher .aplayer-icon{height:100%;width:100%;-webkit-transform:rotateY(180deg);transform:rotateY(180deg);transition:all .3s ease}.aplayer .aplayer-miniswitcher .aplayer-icon path{fill:#666}.aplayer .aplayer-miniswitcher .aplayer-icon:hover path{fill:#000}@-webkit-keyframes aplayer-roll{0%{left:0}to{left:-100%}}@keyframes aplayer-roll{0%{left:0}to{left:-100%}}@-webkit-keyframes rotate{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes rotate{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}} 15 | 16 | /*# sourceMappingURL=APlayer.min.css.map*/ -------------------------------------------------------------------------------- /static/css/comment.css: -------------------------------------------------------------------------------- 1 | #vcomments.v { 2 | margin: 20px 10px; 3 | } 4 | .vwrap { 5 | margin: 0 10px; 6 | background-color: var(--bgc-2); 7 | border-radius: 15px !important; 8 | box-shadow: 9 | 1px 1px 8px 2px rgba(100, 100, 100, .2) inset, 10 | -2px -2px 8px 2px rgba(250, 250, 250, 1) inset; 11 | border: 2px solid rgba(250, 250, 250, .8) !important; 12 | } 13 | .vheader { 14 | display: flex; 15 | flex-direction: column; 16 | } 17 | .vheader .vnick, .vmail, .vlink { 18 | width: 100% !important; 19 | padding: 5px 5px 2px 5px !important; 20 | } 21 | .vcard .vnick { 22 | font-size: 1em !important; 23 | color: var(--primary); 24 | } 25 | .veditor { 26 | padding-top: 0 !important; 27 | text-shadow: 28 | 1px 1px 2px rgba(0, 0, 0, .2), 29 | -1px -1px 0px white; 30 | color: rgb(100, 100, 100) !important; 31 | } 32 | .vcount { 33 | margin: 0 10px 5px 10px; 34 | text-shadow: 35 | -1px -1px 1px rgba(255, 255, 255, 0.8), 36 | 2px 2px 5px rgba(25, 25, 25, 0.3); 37 | } 38 | .vemoji-btn svg { 39 | transition: fill 0.3s, filter 0.2s; 40 | } 41 | .vpreview-btn svg { 42 | transition: fill 0.3s, filter 0.2s; 43 | } 44 | .vemoji-btn:hover svg { 45 | fill: rgb(255, 166, 0); 46 | } 47 | .vpreview-btn:hover svg { 48 | fill: var(--tip); 49 | } 50 | .vsubmit { 51 | text-shadow: 1px 1px 0px white; 52 | box-shadow: 2px 2px 3px 1px rgba(100, 100, 100, 0.2), 53 | -2px -2px 3px 1px rgba(255, 255, 255, .8); 54 | color: var(--success) !important; 55 | border-radius: 10px !important; 56 | border: 1px solid rgb(245, 245, 245) !important; 57 | transition: all 0.2s !important; 58 | } 59 | .vsubmit:hover { 60 | box-shadow: 1px 1px 1px 0px rgba(100, 100, 100, 0.3), 61 | -1px -1px 1px 0px rgba(255, 255, 255, 1), 62 | 2px 2px 3px 1px rgba(100, 100, 100, 0.2) inset, 63 | -1px -1px 3px 2px rgba(255, 255, 255, 1) inset; 64 | text-shadow: 2px 2px 3px rgba(var(--success-rgb), 0.3); 65 | } 66 | .vcard { 67 | margin: 0 10px; 68 | padding-top: 0 !important; 69 | } 70 | .vimg { 71 | box-shadow: 72 | 2px 2px 5px 1px rgba(25, 25, 25, 0.2), 73 | -2px -2px 3px 3px rgba(255, 255, 255, .8); 74 | } 75 | .vcard .vh { 76 | overflow: visible !important; 77 | margin-left: 20px; 78 | padding-bottom: 0 !important; 79 | border-bottom: 1px dashed transparent !important; 80 | } 81 | 82 | .vh .vcard { 83 | z-index: 3 !important; 84 | } 85 | .vh p { 86 | color: var(--color) !important; 87 | margin: 5px 0; 88 | } 89 | .vcontent { 90 | padding: 0 10px !important; 91 | text-shadow: -1px -1px 1px rgb(255, 255, 255); 92 | border-radius: 10px; 93 | } 94 | .vhead span:first-child + .vsys{ 95 | display: none !important; 96 | } 97 | .vhead .vsys, .vtime { 98 | text-shadow: 1px 1px 0px rgb(255, 255, 255); 99 | } 100 | .vhead .vnick, .at { 101 | text-shadow: 2px 2px 2px rgba(var(--primary-rgb), .3); 102 | } 103 | .vat { 104 | color: var(--tip) !important; 105 | transition: all 0.2s; 106 | } 107 | .vat:hover { 108 | text-shadow: 2px 2px 3px rgba(var(--tip-rgb), .5); 109 | } 110 | .at { 111 | text-shadow: 2px 2px 2px rgba(var(--primary-oppo-rgb), .3); 112 | color: var(--primary-oppo) !important; 113 | } 114 | .vquote { 115 | padding-left: 0 !important; 116 | border-left: 0 !important; 117 | } 118 | .vpower { 119 | text-shadow: 1px 1px 1px white; 120 | } 121 | .vmore { 122 | color: var(--color) !important; 123 | border-radius: 10px !important; 124 | box-shadow: var(--efct-button-bs) !important; 125 | border: 1px solid var(--bgc-1) !important; 126 | transition: all 0.2s !important; 127 | } 128 | .vmore:hover { 129 | box-shadow: var(--efct-button-hover-bs) !important; 130 | text-shadow: 2px 2px 3px rgba(var(--primary-rgb), .3) !important; 131 | color: var(--primary) !important; 132 | } -------------------------------------------------------------------------------- /static/css/custom.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xioyito/NewBee/b1d993caef349f9028d46988aa60ee391c3fb5c8/static/css/custom.css -------------------------------------------------------------------------------- /static/css/font-awesome-4.7.0/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xioyito/NewBee/b1d993caef349f9028d46988aa60ee391c3fb5c8/static/css/font-awesome-4.7.0/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /static/css/font-awesome-4.7.0/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xioyito/NewBee/b1d993caef349f9028d46988aa60ee391c3fb5c8/static/css/font-awesome-4.7.0/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /static/css/font-awesome-4.7.0/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xioyito/NewBee/b1d993caef349f9028d46988aa60ee391c3fb5c8/static/css/font-awesome-4.7.0/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /static/css/font-awesome-4.7.0/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xioyito/NewBee/b1d993caef349f9028d46988aa60ee391c3fb5c8/static/css/font-awesome-4.7.0/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /static/css/font-awesome-4.7.0/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xioyito/NewBee/b1d993caef349f9028d46988aa60ee391c3fb5c8/static/css/font-awesome-4.7.0/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /static/css/home.css: -------------------------------------------------------------------------------- 1 | 2 | 3 | .zhuti-l-home { 4 | border-right: 0; 5 | } 6 | .zuixin { 7 | text-align: center; 8 | padding: 0 10px 20px 10px; 9 | display: flex; 10 | justify-content: space-between; 11 | align-items: center; 12 | } 13 | .xian-l, .xian-r { 14 | width: 100%; 15 | height: 2px; 16 | border-top: 1px solid rgb(255, 255, 255); 17 | border-bottom: 1px solid rgb(220, 220, 220); 18 | box-sizing: border-box; 19 | } 20 | .zuixin h3 { 21 | white-space: nowrap; 22 | padding: 0 20px; 23 | margin: 0; 24 | } 25 | 26 | @keyframes to-down { 27 | 0% { 28 | opacity: 1; 29 | } 30 | 50% { 31 | transform: translateY(20px) scale(0.75); 32 | opacity: 0.5; 33 | } 34 | 100% { 35 | 36 | opacity: 1; 37 | } 38 | } 39 | .todown { 40 | width: 100%; 41 | height: 80px; 42 | color: aliceblue; 43 | background-color: transparent; 44 | border: 0px solid #000; 45 | position: absolute; 46 | bottom: 25px; 47 | text-align: center; 48 | cursor: pointer; 49 | 50 | } 51 | .hero-img-home { 52 | height: 400px; 53 | width: 100%; 54 | border: 4px solid var(--bgc-1); 55 | box-sizing: border-box; 56 | box-shadow: -1px 0 20px 2px rgba(50, 50, 50, 0.3); 57 | border-radius: 35px; 58 | overflow: hidden; 59 | transition: all 0.3s; 60 | } 61 | .hero-content .fa-angle-down { 62 | color: white; 63 | animation: to-down 1.5s ease-out infinite; 64 | text-shadow: 0px 0px 5px rgba(0, 0, 0, .2); 65 | } 66 | .l-zz { 67 | position: relative; 68 | z-index: 1; 69 | width: 100%; 70 | height: 100%; 71 | border-radius: 30px; 72 | background-color: rgba(0, 0, 0, .3); 73 | } 74 | .content-l { 75 | margin: 0 auto; 76 | width: 50%; 77 | height: 100%; 78 | color: aliceblue; 79 | padding: 0 40px; 80 | box-sizing: border-box; 81 | display: flex; 82 | flex-direction: column; 83 | justify-content: center; 84 | } 85 | .l-date { 86 | margin-bottom: 10px; 87 | font-size: 14px; 88 | } 89 | .l-summary { 90 | overflow: hidden; 91 | display:-webkit-box; 92 | -webkit-box-orient: vertical; 93 | -webkit-line-clamp: 2; 94 | } 95 | 96 | .more-posts { 97 | margin: 20px auto; 98 | margin-bottom: 10px; 99 | z-index: 5; 100 | } 101 | .more-posts a { 102 | display: block; 103 | padding: 5px 20px;; 104 | border-radius: 12px; 105 | border: 1px solid var(--bgc-1); 106 | box-sizing: border-box; 107 | background-color: var(--bgc-2); 108 | color: var(--color); 109 | } 110 | .more-posts:hover a { 111 | color: var(--primary); 112 | text-shadow: 2px 2px 4px rgba(var(--primary-rgb), .5); 113 | } 114 | 115 | @media only screen and (max-width: 768px) { 116 | .hero-img-home { 117 | border-radius: 20px; 118 | } 119 | } -------------------------------------------------------------------------------- /static/css/list.css: -------------------------------------------------------------------------------- 1 | .year-body { 2 | position: relative; 3 | } 4 | .content-list { 5 | min-height: 80vh; 6 | } 7 | .year-row { 8 | display: flex; 9 | flex-direction: column; 10 | flex-wrap: wrap; 11 | justify-content: center; 12 | margin: -10px; 13 | } 14 | .year { 15 | 16 | padding: 20px 40px; 17 | margin: 10px; 18 | border: 1px solid white; 19 | border-radius: 20px; 20 | box-shadow: 21 | 2px 2px 5px 2px rgba(50, 50, 50, 0.1), 22 | -2px -2px 6px 3px rgba(255, 255, 255, 1); 23 | transition: all 0.2s; 24 | } 25 | .year:hover { 26 | box-shadow: 27 | 1px 1px 1px 2px rgba(0, 0, 0, .1), 28 | -1px -1px 3px 2px rgba(255, 255, 255, 1), 29 | 2px 2px 6px 2px rgba(25, 25, 25, 0.1) inset, 30 | -2px -2px 5px 2px rgba(255, 255, 255, 1) inset; 31 | } 32 | 33 | .year-head { 34 | margin-top: 0; 35 | text-align: center; 36 | transition: all 0.2s; 37 | } 38 | .year-items { 39 | margin-top: -1em; 40 | } 41 | .year-item { 42 | color: var(--color); 43 | padding: 5px 0 5px 20px; 44 | border-left: 1px solid rgb(163, 163, 163); 45 | transition: all 0.2s; 46 | display: flex; 47 | align-items: center; 48 | flex-wrap: wrap; 49 | position: relative; 50 | } 51 | .year:hover .year-item, .year:hover .year-head { 52 | text-shadow: 2px 2px 4px rgba(50, 50, 50, 0.2); 53 | } 54 | .year-item:hover { 55 | color: var(--primary); 56 | text-shadow: 2px 2px 5px rgba(var(--primary-rgb), .3) !important; 57 | } 58 | 59 | .connect-line { 60 | height: 1px; 61 | box-sizing: border-box; 62 | border-top: 1px dashed rgb(124, 124, 124); 63 | margin: 0 10px; 64 | flex: 1; 65 | transition: all 0.2s; 66 | } 67 | .year:hover .connect-line { 68 | box-shadow: 1px 1px 3px 0px rgba(50, 50, 50, 0.2); 69 | } 70 | .year-item:hover .connect-line { 71 | box-shadow: 2px 2px 5px 0px rgba(var(--primary-rgb), .3) !important; 72 | } 73 | .dot { 74 | position: absolute; 75 | left: 0; 76 | width: 10px; 77 | height: 10px; 78 | margin-left: -5px; 79 | border-radius: 5px; 80 | transition: all 0.2s; 81 | background-color: rgb(180, 180, 180); 82 | } 83 | .year-item:hover .dot { 84 | background-color: var(--primary); 85 | transform: scale(1.3); 86 | } 87 | .year-item:hover .connect-line { 88 | border-top: 1px dashed var(--primary); 89 | box-shadow: 1px 1px 4px rgba(var(--primary-rgb), 0.2); 90 | } 91 | .item-title { 92 | width: auto; 93 | } 94 | .item-date { 95 | text-align: right; 96 | word-break: break-all; 97 | } -------------------------------------------------------------------------------- /static/css/md_nb.css: -------------------------------------------------------------------------------- 1 | .tabs { 2 | background-color: var(--default) !important; 3 | } 4 | .efct-btn-tabs { 5 | color: var(--color) !important; 6 | background-color: var(--bgc-2); 7 | } 8 | .tabs-header { 9 | padding: 5px 0; 10 | height: 25px; 11 | margin-bottom: -4px; 12 | line-height: 25px; 13 | color: rgb(130, 130, 130); 14 | display: flex; 15 | 16 | } 17 | 18 | .tabs-header > span { 19 | color: var(--white-s); 20 | padding: 0 10px; 21 | margin-right: 4px; 22 | font-size: 0.9em; 23 | cursor: pointer; 24 | border-radius: 9px; 25 | transition: all .2s; 26 | 27 | } 28 | .tabs-header > span:hover { 29 | background-color: rgba(var(--bgc-2-rgb), .3); 30 | } 31 | .tabs-header > .efct-btn-tabs:hover { 32 | background-color: var(--bgc-2); 33 | } 34 | .tabs-content { 35 | padding: 5px 10px; 36 | background-color: var(--bgc-2) !important; 37 | box-shadow: 0 0 0 0 transparent !important; 38 | } 39 | .tabs-content > div { 40 | display: none; 41 | } 42 | 43 | .tabs-content .tab-content-active { 44 | display: block; 45 | } 46 | 47 | -------------------------------------------------------------------------------- /static/css/search.css: -------------------------------------------------------------------------------- 1 | .search-in { 2 | width: 36px; 3 | height: 100%; 4 | text-align: center; 5 | cursor: pointer; 6 | display: flex; 7 | flex-direction: column; 8 | justify-content: center; 9 | transition: all 0.2s; 10 | } 11 | .search-in:hover { 12 | color: var(--primary); 13 | transform: scale(1.2); 14 | } 15 | 16 | .search-root { 17 | position: absolute; 18 | top: 0; 19 | left: 0; 20 | width: 100%; 21 | height: 100%; 22 | z-index: 10; 23 | display: none; 24 | } 25 | .search-zz { 26 | position: absolute; 27 | top: 0; 28 | left: 0; 29 | width: 100%; 30 | height: 100%; 31 | backdrop-filter: blur(5px); 32 | background-color: rgba(var(--bgc-3-rgb), 0.5); 33 | } 34 | .search { 35 | width: 700px; 36 | position: fixed; 37 | top: 10px; 38 | left: 50%; 39 | margin-left: -350px; 40 | } 41 | .sheader { 42 | width: 300px; 43 | height: 40px; 44 | border-radius: 10px; 45 | display: flex; 46 | justify-content: space-between; 47 | margin: 0 auto; 48 | background-color: var(--bgc-2); 49 | box-shadow: 50 | 2px 2px 5px 3px rgba(50, 50, 50, 0.1); 51 | border: 1px solid var(--bgc-1); 52 | box-sizing: border-box; 53 | } 54 | .sh-l { 55 | width: 100%; 56 | height: 100%; 57 | position: relative; 58 | } 59 | .sclear { 60 | display: block; 61 | height: 100%; 62 | position: absolute; 63 | top: 0; 64 | right: 0; 65 | padding: 0 10px; 66 | line-height: 40px; 67 | transition: all 0.2s; 68 | cursor: pointer; 69 | } 70 | .sclear:hover { 71 | color: var(--danger); 72 | } 73 | .sheader input{ 74 | outline: none; 75 | border: 0; 76 | width: 100%; 77 | height: 100%; 78 | padding: 0 30px 0 10px; 79 | color: var(--color); 80 | box-sizing: border-box; 81 | background-color: transparent; 82 | border-top-left-radius: 10px; 83 | border-bottom-left-radius: 10px; 84 | transition: all 0.1s; 85 | } 86 | .sheader input:focus, .sheader input:hover { 87 | box-shadow: 88 | 2px 2px 3px 1px rgba(100, 100, 100, 0.2) inset, 89 | -1px -1px 3px 2px rgba(255, 255, 255, 1) inset; 90 | text-shadow: 2px 2px 3px rgba(0,0,0, 0.2); 91 | } 92 | 93 | .sh-r { 94 | height: 100%; 95 | 96 | } 97 | .sh-r button { 98 | width: 60px; 99 | height: 100%; 100 | border: 0; 101 | border-left: 1px solid var(--bgc-3); 102 | cursor: pointer; 103 | color: var(--color); 104 | background-color: transparent; 105 | transition: all 0.2s; 106 | border-top-right-radius: 10px; 107 | border-bottom-right-radius: 10px; 108 | } 109 | .sh-r button:hover { 110 | color: var(--primary); 111 | box-shadow: 112 | 1px 2px 3px 1px rgba(100, 100, 100, 0.2) inset, 113 | -1px -1px 3px 2px rgba(255, 255, 255, 1) inset; 114 | text-shadow: 2px 2px 3px rgba(var(--primary-rgb), 0.2); 115 | } 116 | .sbody { 117 | 118 | margin-top: 20px; 119 | border-radius: 15px; 120 | background-color: var(--bgc-2); 121 | overflow: hidden; 122 | border: 1px solid var(--bgc-1); 123 | box-sizing: border-box; 124 | box-shadow: 125 | 2px 2px 8px 3px rgba(50, 50, 50, 0.2); 126 | display: none; 127 | } 128 | .sbody-1 { 129 | padding-top: 10px; 130 | max-height: calc(100vh - 100px); 131 | 132 | overflow-x: hidden; 133 | } 134 | .at-bottom { 135 | text-align: center; 136 | font-size: small; 137 | color: rgb(150, 150, 150); 138 | margin-bottom: 10px; 139 | } 140 | .stip { 141 | width: 100%; 142 | height: 20px; 143 | margin-bottom: 10px; 144 | font-size: small; 145 | text-align: center; 146 | color: rgb(150, 150, 150); 147 | } 148 | .search-by { 149 | color: var(--tip); 150 | } 151 | .post-root { 152 | padding: 0 10px; 153 | box-sizing: border-box; 154 | } 155 | .post { 156 | padding: 10px 10px; 157 | margin: 10px 0; 158 | color: var(--color); 159 | box-sizing: border-box; 160 | display: block; 161 | border: 1px solid var(--bgc-1); 162 | border-radius: 10px; 163 | transition: all 0.1s; 164 | box-shadow: 165 | 4px 4px 8px 1px rgba(50, 50, 50, 0.2); 166 | } 167 | 168 | .post-root:hover .post { 169 | transform: translateY(2px); 170 | } 171 | .post-root:hover .post-header { 172 | color: var(--primary); 173 | } 174 | .post-header { 175 | height: 1.5em; 176 | display: flex; 177 | justify-content: space-between; 178 | align-items: center; 179 | } 180 | .post-title { 181 | margin: 0; 182 | transition: all 0.2s; 183 | font-weight: bold; 184 | } 185 | 186 | .post-time { 187 | font-size: 14px; 188 | color: rgb(150, 150, 150); 189 | } 190 | .post-mark { 191 | color: rgb(150, 150, 150); 192 | margin-top: 5px; 193 | overflow: hidden; 194 | transition: all 0.2s; 195 | display:-webkit-box; 196 | -webkit-box-orient: vertical; 197 | -webkit-line-clamp: 2; 198 | } 199 | .key-hl { 200 | border-radius: 4px; 201 | background-color: rgba(var(--primary-rgb), .3); 202 | } 203 | 204 | @media only screen and (max-width: 768px) { 205 | .search { 206 | width: calc(100vw - 40px); 207 | margin-left: calc(-50vw + 20px); 208 | 209 | 210 | } 211 | } -------------------------------------------------------------------------------- /static/css/shortcode.css: -------------------------------------------------------------------------------- 1 | 2 | figure img { 3 | width: 100%; 4 | border-radius: 10px; 5 | box-sizing: border-box; 6 | margin: 1em 0; 7 | } 8 | .has-shadow { 9 | box-shadow: 3px 5px 20px 1px rgba(100, 100, 100, 0.2); 10 | } 11 | .img-title { 12 | font-size: 0.9em; 13 | text-align: center; 14 | color: rgb(130, 130, 130) !important; 15 | margin: 10px 0; 16 | } 17 | .code-box{ 18 | width: 100%; 19 | margin: 20px 0; 20 | padding: 0 4px 4px 4px; 21 | border-radius: 13px; 22 | box-sizing: border-box; 23 | background-color: rgb(247, 247, 247); 24 | box-shadow: 1px 1px 3px 3px rgba(120, 120, 120, 0.1); 25 | text-shadow: 0 0 0; 26 | } 27 | 28 | .code-header { 29 | height: 30px; 30 | margin-bottom: -4px; 31 | line-height: 30px; 32 | color: rgb(130, 130, 130); 33 | display: flex; 34 | } 35 | .pl-5 { 36 | display: inline-block; 37 | margin-left: -5px; 38 | } 39 | .code-content { 40 | /* width: 100%; */ 41 | overflow: hidden; 42 | margin-top: 4px; 43 | border-radius: 9px; 44 | box-shadow: 1px 1px 3px 1px rgba(100, 100, 100, 0.1) inset; 45 | background-color: rgb(242, 242, 242); 46 | } 47 | .for-slidetoggle { 48 | width: 100%; 49 | padding-left: 10px; 50 | 51 | } 52 | .for-slidetoggle span { 53 | padding-left: 10px; 54 | } 55 | .code-box .fa::before { 56 | color: rgb(130, 130, 130); 57 | } 58 | 59 | .for-copy { 60 | padding: 0 10px; 61 | cursor: pointer; 62 | 63 | } 64 | .for-copy i::before { 65 | transition: all 0.2s; 66 | } 67 | .for-copy:hover i::before { 68 | color: var(--primary); 69 | } 70 | .note, .tabs { 71 | width: 100%; 72 | display: flex; 73 | flex-direction: column; 74 | margin: 20px 0; 75 | padding: 0 4px 4px 4px; 76 | border-radius: 13px; 77 | box-sizing: border-box; 78 | box-shadow: 1px 1px 3px 2px rgba(0, 0, 0, 0.1); 79 | } 80 | .note .fa { 81 | color: var(--white-m); 82 | } 83 | .note-close { 84 | display: none; 85 | } 86 | .note-header { 87 | height: 30px; 88 | padding: 0 10px; 89 | margin-bottom: -4px; 90 | line-height: 30px; 91 | color: var(--white-m); 92 | display: flex; 93 | justify-content: space-between; 94 | } 95 | .note-header .fa-angle-down, .code-header .fa-angle-down { 96 | transition: all 0.3s; 97 | } 98 | .for-slidetoggle span { 99 | font-family: var(--font-sans-serif); 100 | } 101 | .title-note { 102 | padding-left: 3px; 103 | } 104 | .note-content, .tabs-content { 105 | width: 100%; 106 | padding: 0 10px; 107 | margin-top: 4px; 108 | box-sizing: border-box; 109 | border-radius: 9px; 110 | box-shadow: 0px -1px 3px 0px rgba(0, 0, 0, .2); 111 | background-color: var(--bgc-2); 112 | line-height: 1.5em; 113 | } 114 | .note-content > p > code { 115 | color: rgba(255, 255, 255, 0.6); 116 | text-shadow: 0 0 0; 117 | } 118 | .note-content a { 119 | text-shadow: 1px 1px 3px var(--primary-shadow); 120 | } 121 | .note-content a:hover { 122 | text-shadow: 1px 1px 3px var(--tip-shadow); 123 | } 124 | .note-content > p:first-child { 125 | margin: 10px 0; 126 | } 127 | .default-content { 128 | color: var(--default); 129 | text-shadow: 1px 1px 3px var(--default-shadow); 130 | } 131 | .default-content a { 132 | color: var(--default); 133 | text-shadow: 1px 1px 3px var(--default-shadow); 134 | } 135 | .default-box, .default-content > p > code { 136 | background-color: var(--default) !important; 137 | } 138 | .default-box li::marker { 139 | color: var(--default); 140 | } 141 | 142 | .danger-content { 143 | color: var(--danger); 144 | text-shadow: 1px 1px 3px var(--danger-shadow); 145 | } 146 | .danger-content a { 147 | color: var(--danger); 148 | text-shadow: 1px 1px 3px var(--danger-shadow); 149 | } 150 | .danger-box, .danger-content > p > code { 151 | background-color: var(--danger) !important; 152 | } 153 | .danger-box li::marker { 154 | color: var(--danger); 155 | } 156 | 157 | .tip-content { 158 | color: var(--tip); 159 | text-shadow: 1px 1px 3px var(--tip-shadow); 160 | } 161 | .tip-content a { 162 | color: var(--tip); 163 | text-shadow: 1px 1px 3px var(--tip-shadow); 164 | } 165 | .tip-content a:hover { 166 | color: var(--primary); 167 | text-shadow: 1px 1px 3px var(--primary-shadow); 168 | } 169 | .tip-box, .tip-content > p > code { 170 | background-color: var(--tip) !important; 171 | } 172 | .tip-box li::marker { 173 | color: var(--tip); 174 | } 175 | 176 | .success-content { 177 | color: var(--success); 178 | text-shadow: 1px 1px 3px var(--success-shadow); 179 | } 180 | .success-content a { 181 | color: var(--success); 182 | text-shadow: 1px 1px 3px var(--success-shadow); 183 | } 184 | .success-box, .success-content > p > code { 185 | background-color: var(--success) !important; 186 | } 187 | .success-box li::marker { 188 | color: var(--success); 189 | } 190 | 191 | .warning-content { 192 | color: var(--warning); 193 | text-shadow: 1px 1px 3px var(--warning-shadow); 194 | } 195 | .warning-content a { 196 | color: var(--warning); 197 | text-shadow: 1px 1px 3px var(--warning-shadow); 198 | } 199 | .warning-box, .warning-content code { 200 | background-color: var(--warning) !important; 201 | } 202 | .warning-box li::marker { 203 | color: var(--warning); 204 | } 205 | 206 | .primary-content { 207 | color: var(--primary); 208 | text-shadow: 1px 1px 3px var(--primary-shadow); 209 | } 210 | .primary-box, .primary-content > p > code { 211 | background-color: var(--primary) !important; 212 | } 213 | .primary-box li::marker { 214 | color: var(--primary); 215 | } 216 | /* position cant change here above*/ 217 | .code-box code { 218 | background-color: transparent !important; 219 | } 220 | .label { 221 | padding: 1px 0.4em; 222 | margin: 0 5px; 223 | font-size: 0.9em; 224 | font-family: var(--font-sans-serif); 225 | border-radius: 5px; 226 | white-space: nowrap; 227 | color: var(--white-m); 228 | background-color: var(--default); 229 | } 230 | .label a { 231 | color: var(--white-m); 232 | word-break: break-all; 233 | } 234 | .label-primary { 235 | background-color: var(--primary) !important; 236 | } 237 | .label-danger { 238 | background-color: var(--danger) !important; 239 | } 240 | .label-tip { 241 | background-color: var(--tip) !important; 242 | } 243 | .label-success{ 244 | background-color: var(--success) !important; 245 | } 246 | .label-default{ 247 | background-color: var(--default) !important; 248 | } 249 | .label-warning { 250 | background-color: var(--warning) !important; 251 | } 252 | 253 | /* mermaid */ 254 | .mermaid { 255 | display: flex; 256 | justify-content: center; 257 | padding: 10px; 258 | margin: 20px 0; 259 | } 260 | 261 | 262 | 263 | 264 | 265 | -------------------------------------------------------------------------------- /static/css/style-dark.css: -------------------------------------------------------------------------------- 1 | :root { 2 | --bgc-1-rgb: 80, 80, 80; 3 | --bgc-2-rgb: 60, 60, 60; 4 | --bgc-3-rgb: 40, 40, 40; 5 | 6 | --primary-rgb: 217, 80, 119; 7 | --primary-oppo-rgb: 250, 116, 80; 8 | --default-rgb: 80, 80, 80; 9 | --danger-rgb: 217, 87, 87; 10 | --tip-rgb: 102, 158, 204; 11 | --success-rgb: 85, 153, 73; 12 | --warning-rgb: 191, 141, 25; 13 | --quote-rgb: 255, 234, 195; 14 | 15 | 16 | 17 | /* --- */ 18 | 19 | --bs-1: rgba(0,0,0,.1); 20 | --bs-2: rgba(0,0,0,.2); 21 | --bs-3: rgba(0,0,0,.3); 22 | 23 | --white-s: rgb(230, 230, 230); 24 | --white-m-rgb: 235, 235, 235; 25 | --white-m: rgb(var(--white-m-rgb)); 26 | --white-l: rgb(240, 240, 235); 27 | --blue-nb: rgb(0, 174, 254); 28 | 29 | --color: rgb(200, 200, 200); 30 | --color-s: rgb(80, 80, 80); 31 | 32 | --scroll-bgc: rgb(80, 80, 80); 33 | --scroll-thumb: rgb(100, 100, 100); 34 | 35 | /* else */ 36 | 37 | --efct-button-bs: 38 | 2px 2px 3px 1px rgba(0, 0, 0, 0.2), 39 | -2px -2px 3px 1px var(--bgc-1); 40 | 41 | --efct-button-hover-bs: 42 | 1px 1px 1px 0px rgba(0, 0, 0, 0.2), 43 | -1px -1px 1px 0px var(--bgc-1), 44 | 2px 2px 3px 1px rgba(0, 0, 0, 0.3) inset, 45 | -1px -1px 3px 2px var(--bgc-1) inset; 46 | --efct-button-hover-ts: 2px 2px 3px rgba(0, 0, 0, 0.2); 47 | } 48 | 49 | body:after { 50 | background-color: var(--scroll-bgc); 51 | } 52 | hr { 53 | border: 1px solid var(--bgc-1); 54 | } 55 | p > code { 56 | background-color: var(--bgc-1); 57 | } 58 | .text-wbd { 59 | text-shadow: 0px 0px 0 transparent; 60 | } 61 | .burger-btn { 62 | text-shadow: 0 0 0 transparent; 63 | } 64 | .mode:hover { 65 | color: rgb(255, 188, 2); 66 | text-shadow: 0 0 3px rgb(255, 188, 2); 67 | } 68 | #content img, .mermaid { 69 | filter: brightness(0.8); 70 | } 71 | .loading-long { 72 | box-shadow: 73 | 2px 2px 4px 0px rgba(0, 0, 0, 0.2), 74 | 75 | 2px 2px 3px 0px rgba(0, 0, 0, 0.2) inset, 76 | -2px -2px 2px 0px rgba(var(--bgc-1-rgb), 1) inset; 77 | } 78 | .loading-short { 79 | background-color: rgb(120, 120, 120); 80 | box-shadow: 81 | 0px 1px 3px 0px rgba(50, 50, 50, 0.3); 82 | border: 1px solid var(--bgc-1); 83 | } 84 | 85 | 86 | .content-self { 87 | border-top: 1px dashed var(--bgc-1); 88 | border-bottom: 1px dashed var(--bgc-1); 89 | } 90 | .zhuti { 91 | box-shadow: -1px 0 20px 2px rgba(0, 0, 0, 0.1); 92 | } 93 | 94 | .zhuti-r::after { 95 | border-left: 1px solid var(--bgc-3); 96 | } 97 | .toup, .tosides-1, .tosides-2 { 98 | background-color: var(--bgc-2); 99 | border: 1px solid var(--bgc-1); 100 | box-shadow: 101 | 2px 2px 5px 1px rgba(20, 20, 20, 0.1) inset, 102 | 2px 2px 8px 1px rgba(0, 0, 0, 0.2); 103 | } 104 | .fa-arrow-left, .fa-arrow-right, .fa-arrow-up { 105 | color: var(--color); 106 | text-shadow: 0px 0px 5px rgb(180, 180, 180); 107 | } 108 | .tosides-1:hover i, .tosides-2:hover i, .toup:hover i { 109 | color: white; 110 | text-shadow: 0px 0px 8px rgb(180, 180, 180); 111 | } 112 | .pre-next { 113 | border-top: 2px solid var(--bgc-1); 114 | } 115 | .next { 116 | border-left: 1px solid var(--bgc-1); 117 | } 118 | .pre { 119 | border-right: 1px solid var(--bgc-1); 120 | } 121 | .next:hover { 122 | box-shadow: -2px 2px 8px 0px rgba(10, 10, 10, 0.2) inset; 123 | } 124 | .pre:hover { 125 | box-shadow: 2px 2px 8px 0px rgba(10, 10, 10, 0.2) inset; 126 | } 127 | .pre:hover span, .next:hover span { 128 | color: white; 129 | text-shadow: 0px 0px 5px rgba(255, 255, 255, 0.3); 130 | } 131 | .aixin { 132 | text-shadow: 0px 0px 3px var(--primary); 133 | } 134 | .pinglun { 135 | text-shadow: 0px 0px 3px var(--success); 136 | } 137 | .aixin:hover { 138 | text-shadow: 2px 2px 5px rgba(var(--primary-rgb), 0.4); 139 | } 140 | .pinglun:hover { 141 | text-shadow: 2px 2px 5px rgba(0, 169, 0, 0.4); 142 | } 143 | 144 | .button-r-add { 145 | text-shadow: 0 0 5px rgba(var(--primary-rgb), .8); 146 | } 147 | 148 | .follow { 149 | box-shadow: 150 | 0px 0px 10px 0px rgba(var(--primary-rgb), .6); 151 | text-shadow: -1px -1px 2px rgba(0, 0, 0, .2); 152 | } 153 | .follow:hover { 154 | box-shadow: 155 | 1px 1px 2px 0px rgba(0, 0, 0, .2), 156 | -1px -1px 1px 0px var(--bgc-1), 157 | 0px 2px 5px 2px rgba(0, 0, 0, .1) inset, 158 | 0px -1px 5px 1px rgba(255, 255, 255, 0) inset; 159 | } 160 | .dong { 161 | background-color: var(--bgc-3); 162 | box-shadow: 0px 2px 4px 1px rgba(0, 0, 0, 0.3) inset, 163 | 0px -4px 5px 0px var(--bgc-1), 164 | 0px 4px 4px 0px rgba(0, 0, 0, 0.2); 165 | } 166 | .zhi { 167 | background-image: linear-gradient( 168 | rgb(50, 50, 50), 169 | var(--bgc-2) 10px, 170 | var(--bgc-2) 97%, 171 | rgb(50, 50, 50)); 172 | 173 | border-top: 1px solid rgba(120, 120, 120, 0.5); 174 | border-bottom: 1px solid rgba(120, 120, 120, 0.5); 175 | 176 | } 177 | .other .list-item { 178 | box-shadow: 179 | 2px 2px 5px 2px rgba(0,0,0,.2), 180 | -2px -1px 6px 2px var(--bgc-1); 181 | border: 1px solid var(--bgc-1); 182 | } 183 | .other .list-item:hover { 184 | box-shadow: 185 | 1px 1px 2px 1px rgba(0, 0, 0, .2), 186 | -1px -1px 3px 2px var(--bgc-1), 187 | 2px 2px 6px 1px rgba(0, 0, 0, 0.2) inset, 188 | -1px -1px 5px 1px var(--bgc-1) inset; 189 | 190 | color: rgb(255, 255, 255); 191 | } 192 | .other .list-item:hover .other-title, .other .list-item:hover .other-summary { 193 | text-shadow: 0px 0px 5px rgba(255, 255, 255, 0.5); 194 | } 195 | .other .list-item:hover .other-date { 196 | text-shadow: 0px 0px 2px rgba(255, 255, 255, 0.3); 197 | } 198 | 199 | .appreciate-self { 200 | box-shadow: 2px 2px 12px 2px rgba(0, 0, 0, 0.2); 201 | } 202 | .appreciate-btn { 203 | box-shadow: 204 | 1px 1px 1px 0px rgba(var(--bgc-1-rgb), 1), 205 | -1px -1px 1px 0px rgba(0, 0, 0, 0.2), 206 | 1px 1px 0px 0px rgba(var(--bgc-1-rgb), 1) inset, 207 | -1px -1px 0px 0px rgba(0, 0, 0, 0.2) inset; 208 | } 209 | 210 | .footer-items { 211 | text-shadow: 0px 0px 3px rgba(255, 255, 255, 0.3); 212 | } 213 | 214 | /* comment */ 215 | 216 | .vwrap { 217 | box-shadow: 0px 0px 8px 2px rgba(var(--bgc-3-rgb), .3) inset; 218 | border: 2px solid var(--bgc-1) !important; 219 | } 220 | .vsubmit { 221 | text-shadow: 0px 0px 3px var(--success); 222 | box-shadow: var(--efct-button-bs); 223 | border: 1px solid var(--bgc-1) !important; 224 | } 225 | .vsubmit:hover { 226 | box-shadow: var(--efct-button-hover-bs); 227 | text-shadow: 2px 2px 3px rgba(var(--success-rgb), 0.3); 228 | } 229 | .vwrap .vbtn { 230 | outline: none !important; 231 | background: var(--bgc-2) !important; 232 | background-color: var(--bgc-2) !important; 233 | } 234 | .vcount { 235 | text-shadow: 0px 0px 0px transparent; 236 | } 237 | .vcontent.expand::before { 238 | background: rgba(0,0,0,.1) !important; 239 | } 240 | .vcontent.expand::after { 241 | box-shadow: 0px -2px 3px 0px rgba(0, 0, 0, .2); 242 | border-top: 1px solid var(--bgc-1); 243 | background: rgb(50, 50, 50)!important; 244 | } 245 | .vheader .vnick, .vmail, .vlink { 246 | border-bottom: 1px dashed var(--bgc-1) !important; 247 | } 248 | 249 | 250 | .veditor { 251 | color: var(--color) !important; 252 | text-shadow: 253 | 1px 1px 3px var(--bgc-3); 254 | } 255 | 256 | .vimg { 257 | border: 1px solid rgb(100, 100, 100) !important; 258 | box-shadow: 2px 2px 5px 1px rgb(50, 50, 50); 259 | } 260 | 261 | 262 | .vcontent { 263 | text-shadow: 0px 0px 3px transparent; 264 | } 265 | 266 | .vhead .vsys, .vtime { 267 | text-shadow: 1px 1px 0px transparent; 268 | } 269 | .vhead .vnick, .at { 270 | text-shadow: 0px 0px 3px rgba(var(--primary-rgb), .5); 271 | } 272 | .vat { 273 | color: var(--tip) !important; 274 | transition: all 0.2s; 275 | } 276 | .vat:hover { 277 | text-shadow: 0px 0px 5px rgba(var(--tip-rgb), .5); 278 | } 279 | .at { 280 | text-shadow: 0px 0px 3px rgba(var(--primary-oppo-rgb), .3); 281 | color: var(--primary-oppo) !important; 282 | } 283 | 284 | .vpower { 285 | text-shadow: 1px 1px 1px transparent; 286 | } 287 | 288 | /* home */ 289 | .xian-l, .xian-r { 290 | border-top: 1px solid var(--bgc-1); 291 | border-bottom: 1px solid var(--bgc-3); 292 | } 293 | 294 | /* list */ 295 | .year { 296 | border: 1px solid var(--bgc-1); 297 | box-shadow: 298 | 2px 2px 5px 2px rgba(0, 0, 0, 0.2), 299 | -2px -2px 6px 2px rgba(var(--bgc-1-rgb), .8); 300 | transition: all 0.2s; 301 | } 302 | .year:hover { 303 | box-shadow: 304 | 2px 2px 1px 2px rgba(0, 0, 0, .1), 305 | -1px -1px 3px 2px rgba(var(--bgc-1-rgb), .8), 306 | 3px 3px 6px 2px rgba(25, 25, 25, 0.1) inset, 307 | -2px -2px 5px 0px rgba(var(--bgc-1-rgb), .5) inset; 308 | } 309 | 310 | /* shortcode */ 311 | .note-content { 312 | text-shadow: 0 0 0 transparent; 313 | background-color: rgba(255, 255, 255, 0.6); 314 | } 315 | .note-content a { 316 | text-shadow: 0 0 0 transparent; 317 | } 318 | .note-content a:hover { 319 | text-shadow: 0 0 0 transparent; 320 | } 321 | .code-box { 322 | background-color: var(--bgc-1); 323 | box-shadow: 1px 1px 5px 1px rgba(0, 0, 0, 0.1); 324 | } 325 | .code-header { 326 | color: var(--color); 327 | } 328 | .code-content{ 329 | box-shadow: 1px 1px 3px 1px rgba(20, 20, 20, 0.2) inset; 330 | background-color: rgb(60, 60, 60); 331 | } 332 | 333 | .has-shadow { 334 | box-shadow: 3px 5px 25px 2px rgba(0, 0, 0, 0.3); 335 | } 336 | 337 | .chroma .err { 338 | background-color: transparent !important; 339 | } 340 | 341 | /* terms */ 342 | .card-large-img { 343 | box-shadow: 344 | 4px 4px 8px 1px rgba(0, 0, 0, 0.1); 345 | } 346 | .card-large:hover .card-large-img { 347 | box-shadow: 348 | 4px 4px 8px 1px rgba(20, 20, 20, 0.1); 349 | } 350 | .shuxian { 351 | background-color: rgb(100, 100, 100); 352 | } 353 | .card-readmore { 354 | position: absolute; 355 | top: 65px; 356 | right: -28px; 357 | width: 60px; 358 | height: 60px; 359 | border-radius: 30px; 360 | filter: opacity(0); 361 | background-color: var(--bgc-1); 362 | box-sizing: border-box; 363 | box-shadow: 364 | -8px -8px 5px 1px rgba(0, 0, 0, 0.1) inset, 365 | 0px 0px 8px 1px rgba(50, 50, 50, 0.3); 366 | cursor: pointer; 367 | transition: all 0.2s; 368 | } 369 | .card-readmore i { 370 | color: var(--color); 371 | text-shadow: 0 0 0; 372 | } 373 | 374 | 375 | /* taxonomy */ 376 | .folder-rear { 377 | background: linear-gradient( rgba(var(--bgc-2-rgb), 0.5), var(--bgc-2) 60% ); 378 | box-shadow: 0px 2px 5px 2px rgba(0, 0, 0, 0.2); 379 | } 380 | .folder-front { 381 | background: linear-gradient( rgba(var(--bgc-2-rgb), 0.5), var(--bgc-2) 70% ); 382 | } 383 | .tag-taxo-card { 384 | box-shadow: 385 | 2px 2px 6px 1px rgba(0, 0, 0, .2), 386 | -2px -2px 5px 0px var(--bgc-1); 387 | } 388 | .tag-taxo-card:hover { 389 | box-shadow: 390 | 1px 1px 2px 1px rgba(0, 0, 0, .2), 391 | -1px -1px 1px 0px rgba(var(--bgc-1-rgb), 1), 392 | 2px 2px 4px 2px rgba(0, 0, 0, 0.2) inset, 393 | -2px -2px 4px 0px rgba(var(--bgc-1-rgb), 1) inset; 394 | } 395 | .tag-taxo-text { 396 | text-shadow: 0 0 0; 397 | } 398 | .tag-taxo-card:hover .tag-taxo-text { 399 | text-shadow: 0px 0px 3px rgba(var(--primary-oppo-rgb), 0.5); 400 | color: var(--primary-oppo); 401 | } 402 | 403 | 404 | /* footer */ 405 | .footer a:hover { 406 | text-shadow: 0px 0px 3px rgba(var(--primary-rgb), .3); 407 | } 408 | 409 | 410 | 411 | 412 | 413 | /* 404 */ 414 | .circle-404 { 415 | box-shadow: 416 | 3px 3px 8px 3px rgba(0, 0, 0, .4), 417 | -2px -2px 10px 8px var(--bgc-1); 418 | } 419 | 420 | /* search */ 421 | .sheader { 422 | box-shadow: 423 | 2px 2px 5px 3px rgba(0, 0, 0, 0.1); 424 | } 425 | .sheader input:focus, .sheader input:hover { 426 | box-shadow: 427 | 2px 2px 3px 1px rgba(0, 0, 0, 0.2) inset, 428 | -1px -1px 3px 1px rgba(255, 255, 255, 0.1) inset; 429 | text-shadow: 2px 2px 3px rgba(0,0,0, 0.2); 430 | } 431 | .sh-r button:hover { 432 | box-shadow: 433 | 1px 2px 3px 1px rgba(0, 0, 0, 0.2) inset, 434 | -1px -1px 3px 2px rgba(255, 255, 255, 0.1) inset; 435 | text-shadow: 2px 2px 3px rgba(var(--primary-rgb), 0.2); 436 | } 437 | .sbody { 438 | box-shadow: 439 | 2px 2px 8px 3px rgba(0, 0, 0, 0.2); 440 | } 441 | .post { 442 | box-shadow: 443 | 4px 4px 8px 1px rgba(0, 0, 0, 0.2); 444 | } 445 | 446 | 447 | .mermaid { 448 | border-radius: 10px; 449 | background-color: rgb(240, 240, 240); 450 | } 451 | 452 | .back { 453 | text-shadow: -1px -1px 1px transparent; 454 | } 455 | 456 | /* tabs */ 457 | .tabs-header > span { 458 | color: var(--color); 459 | } 460 | -------------------------------------------------------------------------------- /static/css/syntax-dark.css: -------------------------------------------------------------------------------- 1 | /* Background */ .chroma { color: #f8f8f2; background-color: #272822 } 2 | /* Other */ .chroma .x { } 3 | /* Error */ .chroma .err { color: #ff0000; background-color: #1e0010 } 4 | /* LineTableTD */ .chroma .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; } 5 | /* LineTable */ .chroma .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; width: auto; overflow: auto; display: block; } 6 | /* LineHighlight */ .chroma .hl { display: block; width: 100%;background-color: #ffffcc } 7 | /* LineNumbersTable */ .chroma .lnt { margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f } 8 | /* LineNumbers */ .chroma .ln { margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f } 9 | /* Keyword */ .chroma .k { color: #66d9ef } 10 | /* KeywordConstant */ .chroma .kc { color: #66d9ef } 11 | /* KeywordDeclaration */ .chroma .kd { color: #66d9ef } 12 | /* KeywordNamespace */ .chroma .kn { color: #f92672 } 13 | /* KeywordPseudo */ .chroma .kp { color: #66d9ef } 14 | /* KeywordReserved */ .chroma .kr { color: #66d9ef } 15 | /* KeywordType */ .chroma .kt { color: #66d9ef } 16 | /* Name */ .chroma .n { color: var(--color) } 17 | /* NameAttribute */ .chroma .na { color: #a6e22e } 18 | /* NameBuiltin */ .chroma .nb { color: #9ee599 } 19 | /* NameBuiltinPseudo */ .chroma .bp { } 20 | /* NameClass */ .chroma .nc { color: #a6e22e } 21 | /* NameConstant */ .chroma .no { color: #66d9ef } 22 | /* NameDecorator */ .chroma .nd { color: #a6e22e } 23 | /* NameEntity */ .chroma .ni { } 24 | /* NameException */ .chroma .ne { color: #a6e22e } 25 | /* NameFunction */ .chroma .nf { color: #a6e22e } 26 | /* NameFunctionMagic */ .chroma .fm { } 27 | /* NameLabel */ .chroma .nl { } 28 | /* NameNamespace */ .chroma .nn { color: rgb(158, 227, 53); } 29 | /* NameOther */ .chroma .nx { color: #a6e22e } 30 | /* NameProperty */ .chroma .py { } 31 | /* NameTag */ .chroma .nt { color: #f92672 } 32 | /* NameVariable */ .chroma .nv { color: #f99a26 } 33 | /* NameVariableClass */ .chroma .vc { } 34 | /* NameVariableGlobal */ .chroma .vg { } 35 | /* NameVariableInstance */ .chroma .vi { } 36 | /* NameVariableMagic */ .chroma .vm { } 37 | /* Literal */ .chroma .l { color: #ae81ff } 38 | /* LiteralDate */ .chroma .ld { color: #e6db74 } 39 | /* LiteralString */ .chroma .s { color: #e6db74 } 40 | /* LiteralStringAffix */ .chroma .sa { color: #e6db74 } 41 | /* LiteralStringBacktick */ .chroma .sb { color: #e6db74 } 42 | /* LiteralStringChar */ .chroma .sc { color: #e6db74 } 43 | /* LiteralStringDelimiter */ .chroma .dl { color: #e6db74 } 44 | /* LiteralStringDoc */ .chroma .sd { color: #e6db74 } 45 | /* LiteralStringDouble */ .chroma .s2 { color: #e6db74 } 46 | /* LiteralStringEscape */ .chroma .se { color: #ae81ff } 47 | /* LiteralStringHeredoc */ .chroma .sh { color: #e6db74 } 48 | /* LiteralStringInterpol */ .chroma .si { color: #e6db74 } 49 | /* LiteralStringOther */ .chroma .sx { color: #e6db74 } 50 | /* LiteralStringRegex */ .chroma .sr { color: #e6db74 } 51 | /* LiteralStringSingle */ .chroma .s1 { color: #e6db74 } 52 | /* LiteralStringSymbol */ .chroma .ss { color: #e6db74 } 53 | /* LiteralNumber */ .chroma .m { color: #ae81ff } 54 | /* LiteralNumberBin */ .chroma .mb { color: #ae81ff } 55 | /* LiteralNumberFloat */ .chroma .mf { color: #ae81ff } 56 | /* LiteralNumberHex */ .chroma .mh { color: #ae81ff } 57 | /* LiteralNumberInteger */ .chroma .mi { color: #ae81ff } 58 | /* LiteralNumberIntegerLong */ .chroma .il { color: #ae81ff } 59 | /* LiteralNumberOct */ .chroma .mo { color: #ae81ff } 60 | /* Operator */ .chroma .o { color: #f92672 } 61 | /* OperatorWord */ .chroma .ow { color: #f92672 } 62 | /* Punctuation */ .chroma .p { color: #14c4f9 } 63 | /* Comment */ .chroma .c { color: #75715e } 64 | /* CommentHashbang */ .chroma .ch { color: #75715e } 65 | /* CommentMultiline */ .chroma .cm { color: #75715e } 66 | /* CommentSingle */ .chroma .c1 { color: #75715e } 67 | /* CommentSpecial */ .chroma .cs { color: #75715e } 68 | /* CommentPreproc */ .chroma .cp { color: #75715e } 69 | /* CommentPreprocFile */ .chroma .cpf { color: #75715e } 70 | /* Generic */ .chroma .g { } 71 | /* GenericDeleted */ .chroma .gd { color: #f92672 } 72 | /* GenericEmph */ .chroma .ge { font-style: italic } 73 | /* GenericError */ .chroma .gr { } 74 | /* GenericHeading */ .chroma .gh { } 75 | /* GenericInserted */ .chroma .gi { color: #a6e22e } 76 | /* GenericOutput */ .chroma .go { } 77 | /* GenericPrompt */ .chroma .gp { } 78 | /* GenericStrong */ .chroma .gs { font-weight: bold } 79 | /* GenericSubheading */ .chroma .gu { color: #75715e } 80 | /* GenericTraceback */ .chroma .gt { } 81 | /* GenericUnderline */ .chroma .gl { } 82 | /* TextWhitespace */ .chroma .w { } 83 | -------------------------------------------------------------------------------- /static/css/syntax.css: -------------------------------------------------------------------------------- 1 | /* Background */ .chroma { color: #272822; background-color: #fafafa } 2 | /* Other */ .chroma .x { } 3 | /* Error */ .chroma .err { color: #960050; background-color: #1e0010 } 4 | /* LineTableTD */ .chroma .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; } 5 | /* LineTable */ .chroma .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; width: auto; overflow: auto; display: block; } 6 | /* LineHighlight */ .chroma .hl { display: block; width: 100%;background-color: #ffffcc } 7 | /* LineNumbersTable */ .chroma .lnt { margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f } 8 | /* LineNumbers */ .chroma .ln { margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f } 9 | /* Keyword */ .chroma .k { color: #00a8c8 } 10 | /* KeywordConstant */ .chroma .kc { color: #00a8c8 } 11 | /* KeywordDeclaration */ .chroma .kd { color: #00a8c8 } 12 | /* KeywordNamespace */ .chroma .kn { color: #f92672 } 13 | /* KeywordPseudo */ .chroma .kp { color: #00a8c8 } 14 | /* KeywordReserved */ .chroma .kr { color: #00a8c8 } 15 | /* KeywordType */ .chroma .kt { color: #00a8c8 } 16 | /* Name */ .chroma .n { color: var(--color) } 17 | /* NameAttribute */ .chroma .na { color: #75af00 } 18 | /* NameBuiltin */ .chroma .nb { color: #111111 } 19 | /* NameBuiltinPseudo */ .chroma .bp { color: #111111 } 20 | /* NameClass */ .chroma .nc { color: #75af00 } 21 | /* NameConstant */ .chroma .no { color: #00a8c8 } 22 | /* NameDecorator */ .chroma .nd { color: #75af00 } 23 | /* NameEntity */ .chroma .ni { color: #111111 } 24 | /* NameException */ .chroma .ne { color: #75af00 } 25 | /* NameFunction */ .chroma .nf { color: #75af00 } 26 | /* NameFunctionMagic */ .chroma .fm { color: #111111 } 27 | /* NameLabel */ .chroma .nl { color: #111111 } 28 | /* NameNamespace */ .chroma .nn { color: #111111 } 29 | /* NameOther */ .chroma .nx { color: #75af00 } 30 | /* NameProperty */ .chroma .py { color: #111111 } 31 | /* NameTag */ .chroma .nt { color: #f92672 } 32 | /* NameVariable */ .chroma .nv { color: #111111 } 33 | /* NameVariableClass */ .chroma .vc { color: #111111 } 34 | /* NameVariableGlobal */ .chroma .vg { color: #111111 } 35 | /* NameVariableInstance */ .chroma .vi { color: #111111 } 36 | /* NameVariableMagic */ .chroma .vm { color: #111111 } 37 | /* Literal */ .chroma .l { color: #ae81ff } 38 | /* LiteralDate */ .chroma .ld { color: #d88200 } 39 | /* LiteralString */ .chroma .s { color: #d88200 } 40 | /* LiteralStringAffix */ .chroma .sa { color: #d88200 } 41 | /* LiteralStringBacktick */ .chroma .sb { color: #d88200 } 42 | /* LiteralStringChar */ .chroma .sc { color: #d88200 } 43 | /* LiteralStringDelimiter */ .chroma .dl { color: #d88200 } 44 | /* LiteralStringDoc */ .chroma .sd { color: #d88200 } 45 | /* LiteralStringDouble */ .chroma .s2 { color: #d88200 } 46 | /* LiteralStringEscape */ .chroma .se { color: #8045ff } 47 | /* LiteralStringHeredoc */ .chroma .sh { color: #d88200 } 48 | /* LiteralStringInterpol */ .chroma .si { color: #d88200 } 49 | /* LiteralStringOther */ .chroma .sx { color: #d88200 } 50 | /* LiteralStringRegex */ .chroma .sr { color: #d88200 } 51 | /* LiteralStringSingle */ .chroma .s1 { color: #d88200 } 52 | /* LiteralStringSymbol */ .chroma .ss { color: #d88200 } 53 | /* LiteralNumber */ .chroma .m { color: #ae81ff } 54 | /* LiteralNumberBin */ .chroma .mb { color: #ae81ff } 55 | /* LiteralNumberFloat */ .chroma .mf { color: #ae81ff } 56 | /* LiteralNumberHex */ .chroma .mh { color: #ae81ff } 57 | /* LiteralNumberInteger */ .chroma .mi { color: #ae81ff } 58 | /* LiteralNumberIntegerLong */ .chroma .il { color: #ae81ff } 59 | /* LiteralNumberOct */ .chroma .mo { color: #ae81ff } 60 | /* Operator */ .chroma .o { color: #f92672 } 61 | /* OperatorWord */ .chroma .ow { color: #f92672 } 62 | /* Punctuation */ .chroma .p { color: #111111 } 63 | /* Comment */ .chroma .c { color: #75715e } 64 | /* CommentHashbang */ .chroma .ch { color: #75715e } 65 | /* CommentMultiline */ .chroma .cm { color: #75715e } 66 | /* CommentSingle */ .chroma .c1 { color: #75715e } 67 | /* CommentSpecial */ .chroma .cs { color: #75715e } 68 | /* CommentPreproc */ .chroma .cp { color: #75715e } 69 | /* CommentPreprocFile */ .chroma .cpf { color: #75715e } 70 | /* Generic */ .chroma .g { } 71 | /* GenericDeleted */ .chroma .gd { } 72 | /* GenericEmph */ .chroma .ge { font-style: italic } 73 | /* GenericError */ .chroma .gr { } 74 | /* GenericHeading */ .chroma .gh { } 75 | /* GenericInserted */ .chroma .gi { } 76 | /* GenericOutput */ .chroma .go { } 77 | /* GenericPrompt */ .chroma .gp { } 78 | /* GenericStrong */ .chroma .gs { font-weight: bold } 79 | /* GenericSubheading */ .chroma .gu { } 80 | /* GenericTraceback */ .chroma .gt { } 81 | /* GenericUnderline */ .chroma .gl { } 82 | /* TextWhitespace */ .chroma .w { } 83 | -------------------------------------------------------------------------------- /static/css/taxonomy.css: -------------------------------------------------------------------------------- 1 | 2 | .taxo-body { 3 | position: relative; 4 | } 5 | .taxo-row { 6 | display: flex; 7 | justify-content: center; 8 | flex-wrap: wrap; 9 | margin: -5px -10px 0; 10 | } 11 | .taxo-row-tag { 12 | margin: -10px -10px 0; 13 | } 14 | .taxo-col { 15 | padding: 10px 15px; 16 | border-radius: 10px; 17 | box-sizing: border-box; 18 | } 19 | .taxo-col-tag { 20 | padding: 10px; 21 | } 22 | .taxo-card { 23 | border-radius: 20px; 24 | box-sizing: border-box; 25 | padding: 5px 10px 0 10px; 26 | transition: all 0.3s; 27 | position: relative; 28 | } 29 | .taxo-img { 30 | width: var(--width-img-category); 31 | height: calc(var(--width-img-category) * var(--ratio-img)); 32 | border: 2px solid var(--bgc-1); 33 | box-sizing: border-box; 34 | border-radius: 10px; 35 | border-bottom-left-radius: 0; 36 | border-bottom-right-radius: 0; 37 | box-shadow: 0px 2px 5px 2px rgba(50, 50, 50, .2); 38 | transform: translateY(-10px); 39 | background-size: cover; 40 | background-position: center; 41 | background-repeat: no-repeat; 42 | transition: all 0.3s; 43 | } 44 | .taxo-card:hover .taxo-img { 45 | transform: translateY(-20px); 46 | box-shadow: 0px 2px 5px 3px rgba(50, 50, 50, .2); 47 | } 48 | 49 | .read-all{ 50 | width: 100%; 51 | height: 20px; 52 | font-size: 20px; 53 | line-height: 20px; 54 | text-align: center; 55 | color: rgb(255, 255, 255); 56 | position: absolute; 57 | bottom: 38px; 58 | transition: all 0.3s; 59 | display: none; 60 | } 61 | .taxo-card:hover .taxo-text { 62 | text-shadow: 2px 2px 2px rgba(0, 0, 0, 0.2); 63 | } 64 | .tag-taxo-card { 65 | width: 100%; 66 | height: 40px; 67 | border-radius: 10px; 68 | border: 2px solid var(--bgc-1); 69 | box-sizing: border-box; 70 | padding: 0 10px; 71 | box-shadow: 72 | 2px 2px 6px 1px rgba(0, 0, 0, .1), 73 | -2px -2px 5px 1px var(--bgc-1); 74 | transition: all 0.2s; 75 | display: flex; 76 | align-items: center; 77 | } 78 | .tag-taxo-card:hover { 79 | box-shadow: 80 | 1px 1px 2px 1px rgba(0, 0, 0, .1), 81 | -1px -1px 1px 1px var(--bgc-1), 82 | 2px 2px 4px 2px rgba(100, 100, 100, 0.2) inset, 83 | -2px -2px 4px 2px var(--bgc-1) inset; 84 | } 85 | .tag-taxo-text { 86 | color: var(--color); 87 | text-align: center; 88 | text-shadow: 1px 1px 1px white; 89 | transition: all 0.2s; 90 | 91 | } 92 | .tag-taxo-card:hover .tag-taxo-text { 93 | text-shadow: 1px 1px 3px rgba(var(--primary-oppo-rgb), 0.2); 94 | color: var(--primary-oppo); 95 | } 96 | .folder-rear { 97 | width: 100%; 98 | height: 80%; 99 | border: 2px solid var(--bgc-1); 100 | border-radius: 10px; 101 | box-sizing: border-box; 102 | background: linear-gradient( rgba(240,240,240,.5), rgba(240,240,240,1) 60% ); 103 | position: absolute; 104 | bottom: 0; 105 | left: 0; 106 | box-shadow: 0px 2px 5px 2px rgba(50, 50, 50, .1); 107 | } 108 | .folder-front { 109 | width: 100%; 110 | height: 80%; 111 | padding: 0 20px; 112 | border: 2px solid var(--bgc-1); 113 | border-radius: 10px; 114 | box-sizing: border-box; 115 | background: linear-gradient( rgba(240,240,240,.5), rgba(240,240,240,1) 70% ); 116 | position: absolute; 117 | bottom: 0; 118 | left: 0; 119 | display: flex; 120 | justify-content: center; 121 | align-items: center; 122 | transform-origin: 50% 100%; 123 | transition: all 0.2s; 124 | } 125 | .taxo-text { 126 | color: var(--color); 127 | text-align: center; 128 | transition: all 0.2s; 129 | } 130 | .jipian { 131 | color: rgb(120, 120, 120); 132 | font-size: small; 133 | margin-top: 5px; 134 | } 135 | .taxo-card:hover .folder-front { 136 | transform: perspective(300px) rotateX(-45deg); 137 | } -------------------------------------------------------------------------------- /static/css/terms.css: -------------------------------------------------------------------------------- 1 | .terms-body { 2 | position: relative; 3 | } 4 | .terms-row { 5 | display: flex; 6 | flex-wrap: wrap; 7 | justify-content: center; 8 | } 9 | 10 | .terms-root { 11 | flex: 100%; 12 | max-width: 100%; 13 | position: relative; 14 | padding: 0px 20px; 15 | box-sizing: border-box; 16 | } 17 | .card-large { 18 | width: 100%; 19 | min-height: 200px; 20 | border-radius: 30px; 21 | display: flex; 22 | flex-direction: column; 23 | justify-content: center; 24 | align-items: center; 25 | transition: all 0.2s; 26 | position: relative; 27 | background-color: var(--bgc-2); 28 | z-index: 1; 29 | } 30 | .card-large:hover { 31 | transform: translateY(3px); 32 | } 33 | .card-large a { 34 | color: aliceblue; 35 | } 36 | .card-large-img { 37 | width: 100%; 38 | height: 100%; 39 | position: absolute; 40 | border: 4px solid var(--bgc-1); 41 | border-radius: 30px; 42 | transition: all 0.3s; 43 | box-sizing: border-box; 44 | overflow: hidden; 45 | box-shadow: 46 | 4px 4px 8px 1px rgba(50, 50, 50, 0.2); 47 | background-color: var(--bgc-2); 48 | } 49 | 50 | .card-large:hover .card-large-img { 51 | box-shadow: 52 | 4px 4px 8px 1px rgba(50, 50, 50, 0.1); 53 | } 54 | .card-large-img img { 55 | width: 100%; 56 | height: 100%; 57 | object-fit: cover; 58 | } 59 | .card-large-content { 60 | color: var(--white-s); 61 | width: 75%; 62 | padding: 20px; 63 | border-radius: 10px; 64 | display: flex; 65 | flex-direction: column; 66 | align-items: center; 67 | position: relative; 68 | z-index: 1; 69 | text-shadow: 1px 1px 3px rgba(0, 0, 0, .5); 70 | transition: all 0.3s; 71 | } 72 | .content-up { 73 | width: 100%; 74 | display: flex; 75 | flex-wrap: wrap; 76 | flex-direction: column; 77 | align-items: center; 78 | box-sizing: border-box; 79 | transition: all 0.2s; 80 | } 81 | .up-title { 82 | width: 100%; 83 | text-align: center; 84 | font-size: 26px; 85 | margin-bottom: 10px; 86 | transition: all 0.2s; 87 | } 88 | .up-title a { 89 | color: var(--white-s); 90 | line-height: 1em; 91 | transition: all 0.2s; 92 | border-radius: 20px; 93 | } 94 | .up-title a:hover { 95 | color: var(--primary); 96 | text-shadow: 1px 1px 3px rgba(var(--primary-rgb), .5); 97 | } 98 | .up-date { 99 | font-size: 12px; 100 | margin-bottom: 10px; 101 | text-align: center; 102 | } 103 | .up-date a { 104 | color: var(--white-s); 105 | transition: all 0.2s; 106 | } 107 | .up-date a:hover { 108 | color: var(--primary); 109 | text-shadow: 1px 1px 3px rgba(var(--primary-rgb), .5); 110 | 111 | } 112 | .down-summary { 113 | font-size: 14px; 114 | max-width: 100%; 115 | text-align: center; 116 | overflow: hidden; 117 | display: -webkit-box; 118 | -webkit-box-orient: vertical; 119 | -webkit-line-clamp: 2; 120 | } 121 | .down-summary p { 122 | margin: 0; 123 | } 124 | .card-readmore { 125 | position: absolute; 126 | top: 65px; 127 | right: -28px; 128 | width: 60px; 129 | height: 60px; 130 | border-radius: 30px; 131 | filter: opacity(0); 132 | background-color: var(--bgc-2); 133 | box-sizing: border-box; 134 | box-shadow: 135 | -8px -8px 5px 1px rgba(100, 100, 100, 0.1) inset, 136 | 2px 2px 8px 1px rgba(50, 50, 50, 0.2); 137 | cursor: pointer; 138 | transition: all 0.2s; 139 | } 140 | 141 | .card-readmore i { 142 | color: rgb(100, 100, 100); 143 | transition: all 0.2s; 144 | transform: scale(1.2); 145 | text-shadow: 1px 1px 0 var(--bgc-1); 146 | } 147 | .card-readmore:hover i { 148 | transform: translateX(8px) scale(1.5); 149 | } 150 | .card-large:hover .card-readmore { 151 | filter: opacity(1); 152 | } 153 | .card-readmore a { 154 | display: block; 155 | width: 100%; 156 | height: 100%; 157 | display: flex; 158 | justify-content: center; 159 | align-items: center; 160 | } 161 | .dang { 162 | width: 35px; 163 | height: 200px; 164 | position: absolute; 165 | top: 20px; 166 | right: -14px; 167 | user-select: none; 168 | z-index: 1; 169 | } 170 | .card-large:hover ~ .dang { 171 | display: none; 172 | } 173 | .down-type { 174 | width: 100%; 175 | /* height: 20px; */ 176 | font-size: 12px; 177 | padding: 0px 15px; 178 | margin: 5px 0; 179 | 180 | box-sizing: border-box; 181 | line-height: 20px; 182 | /* position: absolute; 183 | left: 0; 184 | bottom: -30px; */ 185 | text-align: right; 186 | /* overflow: visible; */ 187 | } 188 | .down-type-item { 189 | height: 20px; 190 | display: inline-block; 191 | /* margin-bottom: 5px; */ 192 | margin: 3px 0; 193 | position: relative; 194 | cursor: pointer; 195 | } 196 | .type-text { 197 | border: 1px solid var(--primary-oppo); 198 | border-radius: 5px; 199 | padding: 0 5px; 200 | margin-top: -1px; 201 | position: relative; 202 | box-shadow: 2px 2px 2px 0px rgba(var(--primary-rgb), .2); 203 | background-color: var(--bgc-2); 204 | transition: all 0.2s; 205 | z-index: 1; 206 | 207 | } 208 | .type-text a { 209 | color: var(--primary-oppo); 210 | text-shadow: 1px 1px 5px rgba(var(--primary-oppo-rgb), .3); 211 | } 212 | .down-type-item:hover .type-text { 213 | animation: dang 0.8s; 214 | } 215 | @keyframes dang { 216 | 0% { 217 | transform: perspective(100px) rotateY(0deg); 218 | } 219 | 25% { 220 | transform: perspective(100px) rotateY(30deg); 221 | } 222 | 50% { 223 | transform: perspective(100px) rotateY(0deg); 224 | } 225 | 75% { 226 | transform: perspective(100px) rotateY(15deg); 227 | } 228 | 100% { 229 | transform: perspective(100px) rotateY(0deg); 230 | }; 231 | 232 | } 233 | .shuxian-root { 234 | width: 100%; 235 | height: 100%; 236 | position: absolute; 237 | display: flex; 238 | justify-content: center; 239 | margin-top: -50px; 240 | 241 | } 242 | .shuxian { 243 | width: 1px; 244 | height: 50px; 245 | background-color: rgb(200, 200, 200); 246 | } 247 | @media only screen and (max-width: 768px) { 248 | .card-large { 249 | min-height: 150px; 250 | border-radius: 20px; 251 | } 252 | .card-large-img { 253 | border-radius: 20px; 254 | } 255 | .up-title { 256 | font-size: 22px; 257 | } 258 | .card-readmore { 259 | top: 45px; 260 | } 261 | 262 | } 263 | 264 | @media only screen and (min-width: 1408px) { 265 | .terms-root { 266 | flex: 50%; 267 | max-width: 50%; 268 | } 269 | } -------------------------------------------------------------------------------- /static/images/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xioyito/NewBee/b1d993caef349f9028d46988aa60ee391c3fb5c8/static/images/.DS_Store -------------------------------------------------------------------------------- /static/images/about.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xioyito/NewBee/b1d993caef349f9028d46988aa60ee391c3fb5c8/static/images/about.jpg -------------------------------------------------------------------------------- /static/images/allPosts.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xioyito/NewBee/b1d993caef349f9028d46988aa60ee391c3fb5c8/static/images/allPosts.jpg -------------------------------------------------------------------------------- /static/images/author.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xioyito/NewBee/b1d993caef349f9028d46988aa60ee391c3fb5c8/static/images/author.png -------------------------------------------------------------------------------- /static/images/categories.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xioyito/NewBee/b1d993caef349f9028d46988aa60ee391c3fb5c8/static/images/categories.jpg -------------------------------------------------------------------------------- /static/images/default.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xioyito/NewBee/b1d993caef349f9028d46988aa60ee391c3fb5c8/static/images/default.jpg -------------------------------------------------------------------------------- /static/images/example.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xioyito/NewBee/b1d993caef349f9028d46988aa60ee391c3fb5c8/static/images/example.jpeg -------------------------------------------------------------------------------- /static/images/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xioyito/NewBee/b1d993caef349f9028d46988aa60ee391c3fb5c8/static/images/favicon.ico -------------------------------------------------------------------------------- /static/images/home.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xioyito/NewBee/b1d993caef349f9028d46988aa60ee391c3fb5c8/static/images/home.jpg -------------------------------------------------------------------------------- /static/images/series.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xioyito/NewBee/b1d993caef349f9028d46988aa60ee391c3fb5c8/static/images/series.jpg -------------------------------------------------------------------------------- /static/images/tag.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xioyito/NewBee/b1d993caef349f9028d46988aa60ee391c3fb5c8/static/images/tag.jpg -------------------------------------------------------------------------------- /static/images/thumbnail.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xioyito/NewBee/b1d993caef349f9028d46988aa60ee391c3fb5c8/static/images/thumbnail.gif -------------------------------------------------------------------------------- /static/js/lazysizes.min.js: -------------------------------------------------------------------------------- 1 | /*! lazysizes - v5.3.2 */ 2 | 3 | !function(e){var t=function(u,D,f){"use strict";var k,H;if(function(){var e;var t={lazyClass:"lazyload",loadedClass:"lazyloaded",loadingClass:"lazyloading",preloadClass:"lazypreload",errorClass:"lazyerror",autosizesClass:"lazyautosizes",fastLoadedClass:"ls-is-cached",iframeLoadMode:0,srcAttr:"data-src",srcsetAttr:"data-srcset",sizesAttr:"data-sizes",minSize:40,customMedia:{},init:true,expFactor:1.5,hFac:.8,loadMode:2,loadHidden:true,ricTimeout:0,throttleDelay:125};H=u.lazySizesConfig||u.lazysizesConfig||{};for(e in t){if(!(e in H)){H[e]=t[e]}}}(),!D||!D.getElementsByClassName){return{init:function(){},cfg:H,noSupport:true}}var O=D.documentElement,i=u.HTMLPictureElement,P="addEventListener",$="getAttribute",q=u[P].bind(u),I=u.setTimeout,U=u.requestAnimationFrame||I,o=u.requestIdleCallback,j=/^picture$/i,r=["load","error","lazyincluded","_lazyloaded"],a={},G=Array.prototype.forEach,J=function(e,t){if(!a[t]){a[t]=new RegExp("(\\s|^)"+t+"(\\s|$)")}return a[t].test(e[$]("class")||"")&&a[t]},K=function(e,t){if(!J(e,t)){e.setAttribute("class",(e[$]("class")||"").trim()+" "+t)}},Q=function(e,t){var a;if(a=J(e,t)){e.setAttribute("class",(e[$]("class")||"").replace(a," "))}},V=function(t,a,e){var i=e?P:"removeEventListener";if(e){V(t,a)}r.forEach(function(e){t[i](e,a)})},X=function(e,t,a,i,r){var n=D.createEvent("Event");if(!a){a={}}a.instance=k;n.initEvent(t,!i,!r);n.detail=a;e.dispatchEvent(n);return n},Y=function(e,t){var a;if(!i&&(a=u.picturefill||H.pf)){if(t&&t.src&&!e[$]("srcset")){e.setAttribute("srcset",t.src)}a({reevaluate:true,elements:[e]})}else if(t&&t.src){e.src=t.src}},Z=function(e,t){return(getComputedStyle(e,null)||{})[t]},s=function(e,t,a){a=a||e.offsetWidth;while(a49?function(){o(t,{timeout:n});if(n!==H.ricTimeout){n=H.ricTimeout}}:te(function(){I(t)},true);return function(e){var t;if(e=e===true){n=33}if(a){return}a=true;t=r-(f.now()-i);if(t<0){t=0}if(e||t<9){s()}else{I(s,t)}}},ie=function(e){var t,a;var i=99;var r=function(){t=null;e()};var n=function(){var e=f.now()-a;if(e0;if(r&&Z(i,"overflow")!="visible"){a=i.getBoundingClientRect();r=C>a.left&&pa.top-1&&g500&&O.clientWidth>500?500:370:H.expand;k._defEx=u;f=u*H.expFactor;c=H.hFac;A=null;if(w2&&h>2&&!D.hidden){w=f;N=0}else if(h>1&&N>1&&M<6){w=u}else{w=_}}if(l!==n){y=innerWidth+n*c;z=innerHeight+n;s=n*-1;l=n}a=d[t].getBoundingClientRect();if((b=a.bottom)>=s&&(g=a.top)<=z&&(C=a.right)>=s*c&&(p=a.left)<=y&&(b||C||p||g)&&(H.loadHidden||x(d[t]))&&(m&&M<3&&!o&&(h<3||N<4)||W(d[t],n))){R(d[t]);r=true;if(M>9){break}}else if(!r&&m&&!i&&M<4&&N<4&&h>2&&(v[0]||H.preloadAfterLoad)&&(v[0]||!o&&(b||C||p||g||d[t][$](H.sizesAttr)!="auto"))){i=v[0]||d[t]}}if(i&&!r){R(i)}}};var a=ae(t);var S=function(e){var t=e.target;if(t._lazyCache){delete t._lazyCache;return}L(e);K(t,H.loadedClass);Q(t,H.loadingClass);V(t,B);X(t,"lazyloaded")};var i=te(S);var B=function(e){i({target:e.target})};var T=function(e,t){var a=e.getAttribute("data-load-mode")||H.iframeLoadMode;if(a==0){e.contentWindow.location.replace(t)}else if(a==1){e.src=t}};var F=function(e){var t;var a=e[$](H.srcsetAttr);if(t=H.customMedia[e[$]("data-media")||e[$]("media")]){e.setAttribute("media",t)}if(a){e.setAttribute("srcset",a)}};var s=te(function(t,e,a,i,r){var n,s,o,l,u,f;if(!(u=X(t,"lazybeforeunveil",e)).defaultPrevented){if(i){if(a){K(t,H.autosizesClass)}else{t.setAttribute("sizes",i)}}s=t[$](H.srcsetAttr);n=t[$](H.srcAttr);if(r){o=t.parentNode;l=o&&j.test(o.nodeName||"")}f=e.firesLoad||"src"in t&&(s||n||l);u={target:t};K(t,H.loadingClass);if(f){clearTimeout(c);c=I(L,2500);V(t,B,true)}if(l){G.call(o.getElementsByTagName("source"),F)}if(s){t.setAttribute("srcset",s)}else if(n&&!l){if(d.test(t.nodeName)){T(t,n)}else{t.src=n}}if(r&&(s||l)){Y(t,{src:n})}}if(t._lazyRace){delete t._lazyRace}Q(t,H.lazyClass);ee(function(){var e=t.complete&&t.naturalWidth>1;if(!f||e){if(e){K(t,H.fastLoadedClass)}S(u);t._lazyCache=true;I(function(){if("_lazyCache"in t){delete t._lazyCache}},9)}if(t.loading=="lazy"){M--}},true)});var R=function(e){if(e._lazyRace){return}var t;var a=n.test(e.nodeName);var i=a&&(e[$](H.sizesAttr)||e[$]("sizes"));var r=i=="auto";if((r||!m)&&a&&(e[$]("src")||e.srcset)&&!e.complete&&!J(e,H.errorClass)&&J(e,H.lazyClass)){return}t=X(e,"lazyunveilread").detail;if(r){re.updateElem(e,true,e.offsetWidth)}e._lazyRace=true;M++;s(e,t,r,i,a)};var r=ie(function(){H.loadMode=3;a()});var o=function(){if(H.loadMode==3){H.loadMode=2}r()};var l=function(){if(m){return}if(f.now()-e<999){I(l,999);return}m=true;H.loadMode=3;a();q("scroll",o,true)};return{_:function(){e=f.now();k.elements=D.getElementsByClassName(H.lazyClass);v=D.getElementsByClassName(H.lazyClass+" "+H.preloadClass);q("scroll",a,true);q("resize",a,true);q("pageshow",function(e){if(e.persisted){var t=D.querySelectorAll("."+H.loadingClass);if(t.length&&t.forEach){U(function(){t.forEach(function(e){if(e.complete){R(e)}})})}}});if(u.MutationObserver){new MutationObserver(a).observe(O,{childList:true,subtree:true,attributes:true})}else{O[P]("DOMNodeInserted",a,true);O[P]("DOMAttrModified",a,true);setInterval(a,999)}q("hashchange",a,true);["focus","mouseover","click","load","transitionend","animationend"].forEach(function(e){D[P](e,a,true)});if(/d$|^c/.test(D.readyState)){l()}else{q("load",l);D[P]("DOMContentLoaded",a);I(l,2e4)}if(k.elements.length){t();ee._lsFlush()}else{a()}},checkElems:a,unveil:R,_aLSL:o}}(),re=function(){var a;var n=te(function(e,t,a,i){var r,n,s;e._lazysizesWidth=i;i+="px";e.setAttribute("sizes",i);if(j.test(t.nodeName||"")){r=t.getElementsByTagName("source");for(n=0,s=r.length;n= 0) { 15 | boxKind = theText.slice(4, theText.indexOf('#')); 16 | var boxId = theText.slice(theText.indexOf('#')+1); 17 | } 18 | 19 | // 初始化 20 | switch(boxKind) { 21 | case 'tabs': 22 | // 创建目标容器 23 | $(this).before(`
` + 24 | '
' + 25 | '
' + 26 | '
'); 27 | goalBox = $(this).prev(); 28 | if (boxId) goalBox.attr('tabs-id', boxId); 29 | tabsNum++; 30 | break; 31 | } 32 | } else { 33 | isInBox = false; 34 | } 35 | 36 | // 删除此p 37 | $(this).remove(); 38 | } else { 39 | // 对容器内的内容执行操作 40 | if (isInBox) { 41 | switch(boxKind) { 42 | case 'tabs': 43 | // 获取标题 44 | if (theText.slice(0, 4) == '@tab') { 45 | 46 | titleNum++; 47 | // 常规情况 48 | var theTitle = theText.slice(5); 49 | // 激活的情况 50 | if (theText.slice(4, 11) == ':active') { 51 | theTitle = theText.slice(12); 52 | var isActive = true; 53 | } 54 | 55 | var titleHtml = `${theTitle}`, 56 | subBoxHtml = `
`; 57 | 58 | // 对第一个选项卡的操作 59 | if (!goalBox.children('.tabs-header').children().length) { 60 | titleHtml = `${theTitle}`; 61 | subBoxHtml = `
`; 62 | } 63 | 64 | goalBox.children('.tabs-header').append(titleHtml); 65 | goalBox.children('.tabs-content').append(subBoxHtml); 66 | 67 | if (isActive) { 68 | goalBox.find('.tabs-header > span').removeClass('efct-btn-tabs tab-title-active'); 69 | goalBox.find('.tabs-content > div').removeClass('tab-content-active'); 70 | goalBox.find('.tabs-header > span:last').addClass('efct-btn-tabs tab-title-active'); 71 | goalBox.find('.tabs-content > div:last').addClass('tab-content-active'); 72 | 73 | } 74 | 75 | // 获取内容 76 | } else { 77 | goalBox.find('#tab-content-' + titleNum).append($(this)[0].outerHTML); 78 | } 79 | 80 | break; 81 | default: 82 | break; 83 | } 84 | 85 | $(this).remove(); 86 | } 87 | } 88 | }) 89 | 90 | // 收集 tabs id 91 | var arrTabsId = []; 92 | $('.tabs').each(function() { 93 | var attrId = $(this).attr('id'); 94 | if (!$(this).attr('tabs-id')) { 95 | $(this).attr('tabs-id', attrId); 96 | } 97 | 98 | tabsId = $(this).attr('tabs-id'); 99 | toArr(tabsId, arrTabsId); 100 | }) 101 | 102 | // 收集 tab id 103 | for (var i=0; i${$(this).text()}`); 138 | $(this).remove(); 139 | break; 140 | case 'math': 141 | $(this).before(`
${$(this).text()}
`); 142 | var enen = $(this); 143 | var timer = setInterval(function() { 144 | if (MathJax.typesetPromise) { 145 | MathJax.typesetPromise(enen.prev()); 146 | enen.remove(); 147 | clearInterval(timer); 148 | } 149 | }, 1000); 150 | break; 151 | } 152 | }) 153 | 154 | // tabHttp 155 | $('a').each(function() { 156 | let href = $(this).attr('href'); 157 | if (href.substring(0, 4) === 'tab:') { 158 | let newHref = href.substring(4); 159 | $(this).attr('href', newHref); 160 | $(this).attr('target', '_blank'); 161 | } 162 | }) 163 | }) 164 | 165 | // 函数 166 | function toArr(val, arr) { 167 | if (arr.length) { 168 | for (var i=0; i= 0 || keyIndexTitle >= 0) { 58 | var postMark = toMark(postPlain, key); 59 | var postMark2 = toMarkTitle(postTitle, key); 60 | postCount ++; 61 | 62 | if (postMark || postMark2) { 63 | addItem(hlHtml(postMark2, key), postPubDate, hlHtml(postMark, key), link); 64 | } 65 | 66 | } 67 | } 68 | if (postCount == 0) { 69 | $(".stip").html(search_nothing + ',' + searchBy); 70 | } else { 71 | $(".stip").html(search_found + ' ' + postCount + (postCount>1?(' ' + search_results + ', '):(' ' + search_result + ', ')) + searchBy); 72 | $(".sbody-1").append('
' + search_theEnd + '
'); 73 | } 74 | $(".sbody").show(); 75 | } 76 | 77 | // 向页面中添加元素 78 | function addItem(title, pubDate, mark, link) { 79 | var pHtml = "" + 80 | "
" + 81 | "

" + title + "

" + 82 | "
" + pubDate + "
" + 83 | "
" + 84 | "
" + mark + "
" + 85 | "
" 86 | var div = document.createElement("div"); 87 | div.innerHTML = pHtml; 88 | div.setAttribute("class", "post-root"); 89 | document.getElementsByClassName('sbody-1')[0].appendChild(div); 90 | } 91 | 92 | // 初始化搜索页面 93 | function clearPosts() { 94 | $(".sbody").hide(); 95 | $(".post-root, .at-bottom").remove(); 96 | } 97 | 98 | // 截取段落 99 | function toMark(oPlain, key) { 100 | var kIdx = oPlain.indexOf(key); 101 | 102 | 103 | if (kIdx >= 0) { 104 | var kLen = key.length; 105 | var beginIdx = kIdx; 106 | var postMark_l = ''; 107 | var postMark_r = oPlain.slice(kIdx + kLen, kIdx + kLen + 401); 108 | while ((beginIdx > 0) && (oPlain[beginIdx-1] != ',') && (oPlain[beginIdx-1] != '.') && (oPlain[beginIdx-1] != ',') && (oPlain[beginIdx-1] != '。')) { 109 | beginIdx -= 1; 110 | postMark_l = oPlain[beginIdx] + postMark_l; 111 | } 112 | if (postMark_l == key) { 113 | return; 114 | } 115 | return postMark_l + key + postMark_r; 116 | } else { 117 | if (oPlain == '') { 118 | return '...'; 119 | } else { 120 | return oPlain; 121 | } 122 | } 123 | } 124 | 125 | function toMarkTitle(oPlain, key) { 126 | var kIdx = oPlain.indexOf(key); 127 | if (kIdx >= 0) { 128 | var kLen = key.length; 129 | var beginIdx = kIdx; 130 | var postMark_l = ''; 131 | var postMark_r = oPlain.slice(kIdx + kLen, kIdx + kLen + 401); 132 | while ((beginIdx > 0) && (oPlain[beginIdx-1] != ',') && (oPlain[beginIdx-1] != '.') && (oPlain[beginIdx-1] != ',') && (oPlain[beginIdx-1] != '。')) { 133 | beginIdx -= 1; 134 | postMark_l = oPlain[beginIdx] + postMark_l; 135 | } 136 | 137 | if (postMark_l == key) { 138 | return; 139 | } 140 | 141 | return postMark_l + key + postMark_r; 142 | } 143 | return oPlain; 144 | } 145 | 146 | // 高亮关键字 147 | function hlHtml(oMark, key) { 148 | var keyIdx = oMark.indexOf(key); 149 | if (oMark && keyIdx >= 0) { 150 | var text = oMark; 151 | var newMark = ''; 152 | 153 | 154 | var keyHtml = "" + key + ""; 155 | while (keyIdx >= 0) { 156 | newMark = newMark + text.slice(0, keyIdx) + keyHtml; 157 | text = text.slice(keyIdx + key.length); 158 | keyIdx = text.indexOf(key); 159 | } 160 | return newMark + text; 161 | } 162 | return oMark; 163 | 164 | } 165 | 166 | -------------------------------------------------------------------------------- /static/js/yes.js: -------------------------------------------------------------------------------- 1 | var if_origin_1 = 0, if_origin_2 = 0; 2 | var darkHTML = ``; 3 | function jump(sel) { 4 | $("html,body").animate({ scrollTop: $(sel).offset().top - 60 }, 500); 5 | } 6 | 7 | if (sessionStorage.getItem('mode')) { 8 | if (sessionStorage.getItem('mode') == 'dark') { 9 | $("link[href='/css/custom.css']").before(darkHTML); 10 | } 11 | } 12 | 13 | $(document).ready(function () { 14 | $('.loading').fadeOut("slow"); 15 | if (mode_custom == 'auto') { 16 | 17 | if (!sessionStorage.getItem('mode')) { 18 | var mydate = new Date(), hourNow = mydate.getHours(); 19 | var isDark = (hourNow <= 6 && hourNow >= 0) || (hourNow >= 18 && hourNow <= 23); 20 | if (isDark) { 21 | $("link[href='/css/custom.css']").before(darkHTML); 22 | $(".sun").hide(); 23 | $(".moon").show(); 24 | sessionStorage.setItem('mode', 'dark'); 25 | } else { 26 | sessionStorage.setItem('mode', 'light'); 27 | } 28 | } else { 29 | if (sessionStorage.getItem('mode') == 'dark') { 30 | $(".sun").hide(); 31 | $(".moon").show(); 32 | } 33 | } 34 | 35 | $(".mode").click(function () { 36 | if (sessionStorage.getItem('mode') == 'light') { 37 | $("link[href='/css/custom.css']").before(darkHTML); 38 | $(".sun").hide(); 39 | $(".moon").show(); 40 | sessionStorage.setItem('mode', 'dark'); 41 | } else { 42 | $("link[href='/css/style-dark.css'], link[href='/css/syntax-dark.css']").remove(); 43 | $(".sun").show(); 44 | $(".moon").hide(); 45 | sessionStorage.setItem('mode', 'light'); 46 | } 47 | }); 48 | } else if (mode_custom == 'light') { 49 | if ($("link[href='/css/style-dark.css']")) { 50 | $("link[href='/css/style-dark.css']").remove(); 51 | $("link[href='/css/syntax-dark.css']").remove(); 52 | } 53 | sessionStorage.setItem('mode', 'light'); 54 | } else if (mode_custom == 'dark') { 55 | sessionStorage.setItem('mode', 'dark'); 56 | } 57 | 58 | if ($('.down-summary a')) { 59 | $('.down-summary a').contents().unwrap(); 60 | } 61 | 62 | $(".hero-img-home").height($(window).height() - 108); 63 | 64 | var termsRoot = $('.terms-root'); 65 | if (termsRoot) { 66 | termsRoot.each(function() { 67 | if ($(this).children('.down-type').size() == 0) { 68 | $(this).css('margin-bottom', 35); 69 | } 70 | }) 71 | 72 | var readMore = $('.card-readmore'); 73 | readMore.each(function() { 74 | $(this).css('top', $(this).parent().height() / 2 - 30) ; 75 | 76 | }) 77 | } 78 | 79 | var h_body = $("body").height(); 80 | if (h_body > $(window).height()) { 81 | var w_window_min = 760; 82 | } else { 83 | var w_window_min = 768; 84 | } 85 | 86 | 87 | 88 | var lw = $(window).width(); 89 | if (lw <= w_window_min) { 90 | $(".zhuti-r, .tosides-1").hide(); 91 | $(".tosides-2").show(); 92 | $(".long").css("margin-right", 21); 93 | $(".zhuti-r-0").css({ "max-height": $(window).height(), "height": $(window).height() }); 94 | } else { 95 | $(".navbar-burger").hide(); 96 | $(".navbar-menu > a").show(); 97 | $(".zhuti-r-0").css({ "max-height": $(window).height() - 60, "height": $(window).height() - 60 }); 98 | } 99 | 100 | var zhuti_l_top = $(".zhuti-l").offset().top; 101 | var h_scrol = $(window).scrollTop(); 102 | if (zhuti_l_top - h_scrol < 0) $(".toup").show(); 103 | 104 | $(":checkbox").parent().css("list-style", "none"); 105 | 106 | function createDir(theItem) { 107 | var nodeNameCustom = theItem[0].nodeName; 108 | var appendTo = $('.mulu-items'); 109 | var titleId = theItem.attr('id'); 110 | var titleHref = '#' + titleId; 111 | var titleText = theItem.text(); 112 | var titleHtml; 113 | if (nodeNameCustom == 'H1') { 114 | count_h1++; 115 | titleHtml = '
' + 116 | '
' + 117 | "" + count_h1 + " " + titleText + '
'; 118 | } else if (nodeNameCustom == 'H2') { 119 | 120 | count_h2++; 121 | titleHtml = '
' + 122 | '
' + 123 | "" + count_h1 + "." + "" + 124 | "" + count_h2 + " " + titleText + '
'; 125 | 126 | appendTo = $('.mulu-items').children(".father-h2:last-child"); 127 | } else { 128 | titleHtml = '
' + 129 | '
' + titleText + '
'; 130 | 131 | } 132 | appendTo.append(titleHtml); 133 | 134 | var newTitle = appendTo.children('.heading1:last'); 135 | if (nodeNameCustom == 'H2') { 136 | newTitle = appendTo.children('.heading2:last'); 137 | } 138 | newTitle.click(function () { 139 | jump(titleHref); 140 | }) 141 | } 142 | 143 | // h1 144 | var h1_items = $(".content-self > h1"); 145 | var count_h1 = 0, count_h2; 146 | if (h1_items.size()) { 147 | h1_items.each(function () { 148 | createDir($(this)); 149 | $(".mulu-items").append("
"); 150 | // h2 151 | var h2_items = $(this).nextUntil("h1"); 152 | count_h2 = 0; 153 | if (h2_items.size()) { 154 | h2_items.each(function () { 155 | if ($(this)[0].nodeName == "H2") { 156 | createDir($(this)); 157 | } 158 | }); 159 | } 160 | }) 161 | } else if ($('.year').size()) { 162 | var h3_item = $('.year-head'); 163 | h3_item.each(function() { 164 | $(this).attr('id', $(this).text()); 165 | createDir($(this)); 166 | }) 167 | } else { 168 | $(".zhi").hide(); 169 | } 170 | 171 | $(".burger-btn").click(function () { 172 | 173 | 174 | if ($(".header-rest").css("display") == "none") { 175 | $("header").height($(window).height()); 176 | $(".header-rest").fadeIn(); 177 | $(".burger-items").slideDown('fast'); 178 | $('.long').css('z-index', 1); 179 | } else { 180 | $(".burger-items").slideUp('fast', function () { 181 | $(".navbar").css("border-bottom", "1px solid rgb(255, 255, 255)"); 182 | $(".header-rest").fadeOut(); 183 | $("header").height(60); 184 | $('.long').css('z-index', 2); 185 | }); 186 | } 187 | 188 | $(".burger-items").width($(window).width()); 189 | }); 190 | 191 | $(".header-rest").click(function () { 192 | 193 | $(".burger-items").slideUp(300, function () { 194 | 195 | $(".header-rest").hide(); 196 | $("#content, footer").removeClass("mask"); 197 | $("header").height(60); 198 | $('.long').css('z-index', 2); 199 | }); 200 | 201 | }); 202 | 203 | $('.wait-lang-box').css('left', ($('.lang-now').width() - $('.wait-lang-box').width()) / 2); 204 | $('.lang').click(function() { 205 | var pathName = (function() { 206 | originPath = window.location.pathname.substring(1); 207 | var newPath; 208 | if (nowIsDefaultLang) { 209 | newPath = originPath; 210 | } else { 211 | theStrPosition = originPath.indexOf('/'); 212 | newPath = originPath.substring(theStrPosition + 1); 213 | } 214 | return newPath; 215 | }()); 216 | var toTransHref = $(this)['context']['attributes'][0].value + pathName; 217 | window.location.href = toTransHref; 218 | }) 219 | $(".tosides-1").click(function () { 220 | $('.tosides-1').hide(); 221 | $('.tosides-2').show(); 222 | $(".zhuti-l").css("min-width", "100%"); // fix bug 223 | $('.zhuti-r').fadeOut("fast"); 224 | $(".long").animate({ marginRight: 21 }, 'fast'); 225 | if_origin_1 = 1; 226 | }); 227 | 228 | $(".tosides-2").click(function () { 229 | 230 | $('.zhuti-r').fadeIn("fast"); 231 | $('.tosides-1').show(); 232 | $('.tosides-2').hide(); 233 | $(".zhuti-l").css("min-width", "calc(100% - 310px)"); // 解决bug 234 | 235 | var lw = $(window).width(); 236 | if (lw > w_window_min) { 237 | $(".long").animate({ marginRight: 0 }, 'fast'); 238 | $(".zhuti-r-0").css({ "max-height": $(window).height() - 60, "height": $(window).height() - 60 }); 239 | } 240 | else { 241 | $(".zhuti-r-0").css({ "max-height": $(window).height(), "height": $(window).height() }); 242 | } 243 | if_origin_2 = 1; 244 | }); 245 | 246 | $(".toup").click(function () { 247 | jump(".hero"); 248 | }) 249 | 250 | $(".button-mulu").addClass("button-r-add"); 251 | $(".comment-text").hide(); 252 | 253 | $(".button-mulu").click(function () { 254 | $('#r2').hide(); 255 | $('#r1').show(); 256 | $(".button-comment").removeClass("button-r-add"); 257 | 258 | $(this).addClass("button-r-add"); 259 | $(".comment-text").hide(); 260 | $(".bars-text").fadeIn(); 261 | }) 262 | $(".button-comment").click(function () { 263 | $('#r1').hide(); 264 | $('#r2').show(); 265 | $(".button-mulu").removeClass("button-r-add"); 266 | 267 | $(this).addClass("button-r-add"); 268 | $(".bars-text").hide(); 269 | $(".comment-text").fadeIn(); 270 | }) 271 | 272 | $(".todown").click(function () { 273 | jump(".zhuti-0"); 274 | }) 275 | 276 | $(".note-content").each(function () { 277 | if ($(this).css("display") == "none") { 278 | $(this).prev().find(".fa-angle-down").css("transform", "rotate(-90deg)"); 279 | } 280 | 281 | }) 282 | 283 | 284 | function findBq(bqs) { 285 | bqs.each(function() { 286 | var it = $(this); 287 | var p1 = it.children('p:first'); 288 | var p1Html= p1.html(); 289 | var indexOfSpace = p1Html.indexOf('\n'); 290 | var noteKind = p1Html.slice(0, indexOfSpace); 291 | if ( 292 | noteKind != 'primary' && 293 | noteKind != 'success' && 294 | noteKind != 'tip' && 295 | noteKind != 'warning' && 296 | noteKind != 'danger' 297 | ) { 298 | noteKind = 'default'; 299 | } else { 300 | p1.html(p1Html.slice(indexOfSpace + 1)); 301 | } 302 | var theIcon = (function() { 303 | switch(noteKind) { 304 | case 'default': return 'fa-circle-o'; 305 | case 'primary': return 'fa-circle-o'; 306 | case 'success': return 'fa-check'; 307 | case 'tip': return 'fa-lightbulb-o'; 308 | case 'warning': return 'fa-exclamation-circle'; 309 | case 'danger': return 'fa-close'; 310 | default: return 'fa-circle-o'; 311 | } 312 | })(); 313 | 314 | var theHtml = it.html(); 315 | 316 | it.after( 317 | '
' + 318 | '
' + 319 | '
' + 320 | '' + 321 | '
' + 322 | '
' + 323 | '' + 324 | '' + 325 | '' + 326 | '
' + 327 | '
' + 328 | '
' + 329 | theHtml + 330 | '
' + 331 | '
' 332 | ); 333 | if (it.children('blockquote').size() > 0) { 334 | findBq(it.next().children('.note-content').children('blockquote')); 335 | } 336 | it.remove(); 337 | }); 338 | } 339 | findBq($('blockquote')); 340 | 341 | 342 | 343 | $(".note-header").click(function () { 344 | if ($(this).next().css('display') == 'block') { 345 | $(this).find(".fa-angle-down").css("transform", "rotate(-90deg)"); 346 | } else { 347 | $(this).find(".fa-angle-down").css("transform", "rotate(0deg)"); 348 | } 349 | $(this).next().slideToggle(300); 350 | }); 351 | 352 | 353 | 354 | (function codeBlockToSc() { 355 | $('.highlight').each(function() { 356 | 357 | var outer = $(this); 358 | var code_1 = outer.find('code:first'); 359 | var code_2 = outer.find('code:last'); 360 | var span_1 = code_2.find('span:first'); 361 | var case_1 = (code_2.html().slice(0, 5) == '' + 396 | '
' + 397 | '' + 398 | '' + 399 | '' + theLang + '' + 400 | '' + 401 | '' + 402 | '' + 403 | '' + 404 | '
' + 405 | '
' + 406 | '
' + 407 | theHtml + 408 | '
' + 409 | '
' + 410 | '' 411 | 412 | ) 413 | if (closeCase) { 414 | outer.next().find('.fa-angle-down').css("transform", "rotate(-90deg)"); 415 | } 416 | 417 | $(this).remove(); 418 | }) 419 | })(); 420 | 421 | $(".for-slidetoggle").click(function () { 422 | if ($(this).parent().next().css('display') == 'block') { 423 | $(this).find(".fa-angle-down").css("transform", "rotate(-90deg)"); 424 | } else { 425 | $(this).find(".fa-angle-down").css("transform", "rotate(0deg)"); 426 | } 427 | $(this).parent().next().slideToggle(300); 428 | }); 429 | 430 | 431 | 432 | (function codeLineTosc() { 433 | $('code').each(function() { 434 | var it = $(this); 435 | if (it.parent().prop('tagName') != 'PRE') { 436 | var theText = it.text() 437 | var indexBegin = theText.lastIndexOf('('); 438 | var indexEnd = theText.lastIndexOf(')'); 439 | var kind = theText.slice(indexBegin+1, indexEnd); 440 | if ( 441 | kind != 'primary' && 442 | kind != 'success' && 443 | kind != 'tip' && 444 | kind != 'warning' && 445 | kind != 'danger' 446 | ) kind = 'default'; 447 | var notInNote = (function() { 448 | var a = true; 449 | it.parents().each(function() { 450 | if ($(this).attr('class')) { 451 | if ($(this).attr('class').indexOf('note')) { 452 | a = false; 453 | } 454 | } 455 | }) 456 | return a; 457 | })(); 458 | 459 | if ((kind != 'default') || ((kind == 'default') && notInNote)) { 460 | it.text(theText.slice(0, indexBegin-1)); 461 | } 462 | it.addClass('label label-' + kind); 463 | } 464 | }); 465 | })() 466 | 467 | function copy(that) { 468 | var ta = document.createElement('textarea'); 469 | document.body.appendChild(ta) 470 | ta.value = that.text(); 471 | ta.select(); 472 | document.execCommand("copy"); 473 | ta.remove(); 474 | } 475 | $(".code-header .fa-copy").click(function () { 476 | copy($(this).parents(".code-box").find("code").last()); 477 | }) 478 | 479 | $(window).resize(function () { 480 | var display_z_r = $(".zhuti-r").css("display"); 481 | var lw = $(window).width(); 482 | var lh = $(window).height(); 483 | if (lw <= w_window_min) { 484 | $(".zhuti-r-0").css({ "max-height": lh, "height": lh }); 485 | $(".navbar-menu > a").hide(); 486 | $(".navbar-burger").show(300); 487 | 488 | if ($(".zhuti-r")) { 489 | if (if_origin_2 == 1) { 490 | if (if_origin_1 == 0) { 491 | $('.zhuti-r').show(); 492 | } 493 | $(".long").css("margin-right", 21); 494 | } else { 495 | $(".long").css("margin-right", 21); 496 | $(".tosides-1").hide(); 497 | $(".tosides-2").show(); 498 | } 499 | } 500 | } else { 501 | $(".zhuti-r-0").css({ "max-height": lh - 60, "height": lh - 60 }); 502 | $(".navbar-burger").hide(300); 503 | $(".navbar-menu > a").fadeIn(); 504 | 505 | if ($(".zhuti-r")) { 506 | if (display_z_r != "none") { 507 | $(".long").css("margin-right", 0); 508 | $(".tosides-2").hide(); 509 | $(".tosides-1").show(); 510 | } else { 511 | $(".long").css("margin-right", 21); 512 | $(".tosides-2").show(); 513 | } 514 | } 515 | } 516 | 517 | if (termsRoot) { 518 | readMore.each(function() { 519 | $(this).css('top', $(this).parent().height() / 2 - 30) ; 520 | }) 521 | } 522 | 523 | var display_bg = $(".burger-items").css("display"); 524 | if (lw <= w_window_min) { 525 | if (display_bg == "block") { 526 | $(".burger-items").width(lw); 527 | } 528 | } else { 529 | $(".burger-items").hide(); 530 | $("#content, footer").removeClass("mask"); 531 | $(".header-rest").click(); 532 | } 533 | $(".hero-img-home").height($(window).height() - 108); 534 | }); 535 | 536 | $(window).scroll(function () { 537 | var zhuti_l_top = $(".zhuti-l").offset().top; 538 | var h_scroll = $(window).scrollTop(); 539 | if ((zhuti_l_top - h_scroll >= 0) && ($(".toup").css('display') != 'none')) { 540 | $(".toup").css('opacity', 0); 541 | setTimeout(function () { 542 | $(".toup").hide(); 543 | }, 300); 544 | } else if ((zhuti_l_top - h_scroll < 0) && ($(".toup").css('display') == 'none')) { 545 | $(".toup").show(); 546 | $(".toup").css('opacity', 1); 547 | } 548 | 549 | var h_items = $(".content-self h1, .content-self h2"); 550 | if ((h_items.size()) && ($('.zhuti-r').css('display') != 'none') && ($('.zhi').css('display') != 'none')) { // 有标题并且目录为打开状态才会执行 551 | h_items.each(function () { 552 | var id_h_item = $(this).attr("id"); 553 | var top_h_item = $(this).offset().top; 554 | var h_item_nexts_h2 = $(this).nextAll("h1"); 555 | var h_item_nexts_h3 = $(this).nextAll("h1, h2"); 556 | var h_item_next_h2 = h_item_nexts_h2.first(); 557 | var h_item_next_h3 = h_item_nexts_h3.first(); 558 | 559 | if (h_item_next_h2.size() > 0) { 560 | var top_h_item_next_h2 = h_item_next_h2.offset().top; 561 | var below_h2_two = top_h_item_next_h2 - top_h_item; 562 | } else { 563 | var below_h2_two = $("body").height(); 564 | } 565 | 566 | if (h_item_next_h3.size() > 0) { 567 | var top_h_item_next_h3 = h_item_next_h3.offset().top; 568 | var below_h3_two = top_h_item_next_h3 - top_h_item; 569 | } else { 570 | var below_h3_two = $("body").height(); 571 | } 572 | 573 | $(".mulu-item").each(function () { 574 | var tiaojian = ($(this).attr("id") == ("mulu-" + id_h_item)); 575 | if (tiaojian) { 576 | var div_h_item = $(this); 577 | var top_item_active = h_scroll - top_h_item; 578 | if ($(this).attr("class").indexOf("heading1") != -1) { 579 | var below_h_two = below_h2_two; 580 | } else { 581 | var below_h_two = below_h3_two; 582 | } 583 | if ((top_item_active >= -80) && (top_item_active < below_h_two - 80)) { 584 | $(".mulu-item").children(".shu-lan").hide(); 585 | div_h_item.children(".shu-lan").show(); 586 | } 587 | } 588 | }); 589 | }); 590 | } 591 | }); 592 | 593 | $(".sponsor-btn div:first-child").addClass("add-sponsor-btn"); 594 | 595 | $(".aixin").click(function () { 596 | $(".sponsor").fadeIn('fast'); 597 | }); 598 | 599 | for (var i = 0; i < 3; i++) { 600 | let obj_click = ".sponsor-btn-" + (i + 1); 601 | let obj_change = ".sponsor-img-" + (i + 1); 602 | $(obj_click).click(function () { 603 | $(obj_change).siblings().hide(); 604 | $(obj_change).show(); 605 | $(this).addClass("add-sponsor-btn"); 606 | $(this).siblings().removeClass("add-sponsor-btn"); 607 | }); 608 | } 609 | 610 | $(".cancel").click(function () { 611 | $(".sponsor").fadeOut('fast'); 612 | }) 613 | 614 | $(".pinglun").click(function () { 615 | $(".tosides-2").click(); 616 | $(".button-comment").click(); 617 | }); 618 | 619 | if (enable_mermaid) { 620 | mermaid.initialize({ startOnLoad: true }); 621 | } 622 | 623 | (function imgAddSd() { 624 | var imgs = $('.content-self img'); 625 | imgs.each(function() { 626 | var it = $(this); 627 | var title = it.attr('title'); 628 | it.attr({ 629 | 'data-src': it.attr('src'), 630 | 'src': '/images/thumbnail.gif' 631 | }); 632 | it.addClass('lazyload has-shadow'); 633 | if (title) { 634 | if (title.slice(-3) == '_no') { 635 | it.removeClass('has-shadow'); 636 | it.attr('title', title.slice(0, -3)); 637 | if (it.attr('title').length == 0) { 638 | it.removeAttr('title'); 639 | } else { 640 | it.after('
' + it.attr('title') + '
'); 641 | } 642 | } else { 643 | it.after('
' + it.attr('title') + '
'); 644 | } 645 | } 646 | }); 647 | })(); 648 | }); -------------------------------------------------------------------------------- /theme.toml: -------------------------------------------------------------------------------- 1 | # theme.toml template for a Hugo theme 2 | # See https://github.com/gohugoio/hugoThemes#themetoml for an example 3 | 4 | name = "NewBee" 5 | license = "MIT" 6 | licenselink = "https://github.com/xioyito/NewBee/blob/master/LICENSE" 7 | description = "NewBee is a elegance, clean Hugo Theme with high interaction for blogger" 8 | homepage = "https://github.com/xioyito/NewBee/" 9 | tags = ["blog", "clean", "responsive", "high-interaction", "theme"] 10 | features = ["Neumorphism", "syntax-highlighting", "high interaction"] 11 | 12 | [author] 13 | name = "xioyito" 14 | homepage = "https://github.com/xioyito" 15 | --------------------------------------------------------------------------------