├── .deepsource.toml
├── .eslintrc.json
├── .github
├── ISSUE_TEMPLATE
│ ├── bug-report-----.md
│ └── feature-request-----.md
└── workflows
│ ├── beta.yml
│ └── release.yml
├── .gitignore
├── LICENSE
├── README.md
├── README_zh.md
├── _config.yml
├── gulpfile.js
├── index.js
├── languages
├── en.yml
├── zh-CN.yml
└── zh-TW.yml
├── layout
├── _partial
│ ├── archives.ejs
│ ├── author.ejs
│ ├── categories.ejs
│ ├── footer.ejs
│ ├── head.ejs
│ ├── left-aside.ejs
│ ├── nav.ejs
│ ├── pagination.ejs
│ ├── plugins
│ │ ├── comments
│ │ │ ├── gitalk.ejs
│ │ │ ├── livere.ejs
│ │ │ ├── valine.ejs
│ │ │ └── waline.ejs
│ │ ├── latex.ejs
│ │ └── lightbox.ejs
│ ├── recent-post.ejs
│ ├── right-aside.ejs
│ ├── scrollbutton.ejs
│ ├── tags.ejs
│ └── toc-card.ejs
├── about.ejs
├── archive.ejs
├── artitalk.ejs
├── categories.ejs
├── category.ejs
├── index.ejs
├── layout.ejs
├── links.ejs
├── post.ejs
├── tag.ejs
└── tags.ejs
├── lib
├── lazyload.js
├── mergeConfig.js
└── minify
│ ├── minifyCSS.js
│ ├── minifyHTML.js
│ └── minifyJS.js
├── package.json
├── scripts
├── generators
│ ├── pagerouter.js
│ └── search.js
├── helpers
│ ├── count.js
│ └── load.js
├── highlight
│ └── replace.js
├── index.js
└── tag
│ └── note.js
├── source
├── css
│ ├── _base
│ │ ├── color.styl
│ │ ├── highlight.styl
│ │ ├── index.styl
│ │ └── reset.styl
│ ├── _mixins
│ │ └── index.styl
│ ├── _pages
│ │ ├── about.styl
│ │ ├── archives.styl
│ │ ├── categories.styl
│ │ ├── index.styl
│ │ ├── rewrite.styl
│ │ ├── tags.styl
│ │ └── widgets
│ │ │ ├── archive.styl
│ │ │ ├── author.styl
│ │ │ ├── button.styl
│ │ │ ├── card.styl
│ │ │ ├── categories.styl
│ │ │ ├── columns.styl
│ │ │ ├── container.styl
│ │ │ ├── footer.styl
│ │ │ ├── friends.styl
│ │ │ ├── nav.styl
│ │ │ ├── pagination.styl
│ │ │ ├── post.styl
│ │ │ ├── postlist.styl
│ │ │ ├── recentposts.styl
│ │ │ ├── search.styl
│ │ │ ├── section.styl
│ │ │ ├── tags.styl
│ │ │ └── toc.styl
│ ├── _variables
│ │ └── index.styl
│ └── main.styl
└── js
│ ├── lib
│ ├── busuanzi.min.js
│ ├── lightbox
│ │ ├── baguetteBox.min.css
│ │ └── baguetteBox.min.js
│ ├── lozad.min.js
│ ├── md5.min.js
│ └── prism
│ │ ├── prism-coy.min.css
│ │ ├── prism-dark.min.css
│ │ ├── prism-funky.min.css
│ │ ├── prism-line-numbers.min.css
│ │ ├── prism-okaidia.min.css
│ │ ├── prism-solarizedlight.min.css
│ │ ├── prism-tomorrow.min.css
│ │ ├── prism-twilight.min.css
│ │ └── prism.min.css
│ └── main.js
└── src
└── scripts
├── console.ts
├── darkMode.ts
├── index.d.ts
├── main.ts
├── menuButton.ts
├── popButton.ts
├── rollup.config.js
├── scrollUp.ts
├── search.ts
└── tsconfig.json
/.deepsource.toml:
--------------------------------------------------------------------------------
1 | version = 1
2 |
3 | [[analyzers]]
4 | name = "javascript"
5 | enabled = true
--------------------------------------------------------------------------------
/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["eslint:recommended", "plugin:lodash-template/all"],
3 | "parserOptions": {
4 | "ecmaVersion": 2020,
5 | "sourceType": "module"
6 | },
7 | "overrides": [
8 | {
9 | "files": ["*.ejs"],
10 | "processor": "lodash-template/html",
11 | "parserOptions": {
12 | "templateSettings": {
13 | "evaluate": "(?:(?:<%_)|(?:<%(?!%)))([\\s\\S]*?)[_\\-]?%>",
14 | "interpolate": "<%-([\\s\\S]*?)[_\\-]?%>",
15 | "escape": "<%=([\\s\\S]*?)[_\\-]?%>"
16 | }
17 | }
18 | }
19 | ],
20 | "ignorePatterns": ["src/scripts/*.js", "**/main.js"],
21 | "rules": {
22 | "semi": 0,
23 | "no-var": "error",
24 | // hack for ejs lint
25 | "no-undef": 0,
26 | "init-declarations": 2,
27 | "camelcase": 0,
28 | "quotes": ["error", "single"],
29 | "indent": ["error", 2, { "SwitchCase": 1 }],
30 | "brace-style": [2, "1tbs", { "allowSingleLine": true }],
31 | "comma-spacing": [2, { "before": false, "after": true }],
32 | "comma-style": [2, "last"],
33 | "lodash-template/prefer-escape-template-interpolations": 0
34 | },
35 | "env": {
36 | "browser": true,
37 | "node": true,
38 | "es6": true
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/bug-report-----.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Bug report 问题报告
3 | about: Create a report to help us improve
4 | title: ''
5 | labels: bug
6 | assignees: songhn233
7 |
8 | ---
9 |
10 | **Describe the bug 描述问题**
11 | A clear and concise description of what the bug is. 简要描述所遇到的问题
12 |
13 | **To Reproduce 如何复现**
14 | Steps to reproduce the behavior. 简要描述复现步骤或提供最小可复现 demo
15 |
16 | **Environment 使用环境**
17 | - Hexo Version 使用 Hexo 版本
18 | - Theme Version 使用主题版本
19 | - Browser 浏览器版本(可选)
20 |
21 |
22 | **Additional context 额外信息**
23 | Add any other context about the problem here. 额外需要说明的内容
24 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/feature-request-----.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Feature request 特性请求
3 | about: Suggest an idea for this project
4 | title: ''
5 | labels: enhancement
6 | assignees: ''
7 |
8 | ---
9 |
10 | **Is your feature request related to a problem? Please describe. 你的特性请求是因为什么问题?**
11 | A clear and concise description of what the problem is. 简要描述你需要增加新特性以解决的问题或处理的场景。
12 |
13 | **Describe the solution you'd like 描述新特性的需求**
14 | A clear and concise description of what you want to happen. 简要描述新特性需要满足的功能和基本的设计。
15 |
16 |
17 | **Additional context 额外内容**
18 | Add any other context or screenshots about the feature request here. 额外需要补充的信息
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/.github/workflows/beta.yml:
--------------------------------------------------------------------------------
1 | name: BetaReleaseWorkflow
2 | on:
3 | push:
4 | tags:
5 | - beta*
6 |
7 | jobs:
8 | publish-npm:
9 | runs-on: ubuntu-latest
10 | steps:
11 | - name: Checkout
12 | uses: actions/checkout@v2
13 | with:
14 | ref: master
15 | - name: Stepup Node
16 | uses: actions/setup-node@v1
17 | with:
18 | node-version: '12.x'
19 | registry-url: 'https://registry.npmjs.org/'
20 | - name: NPM Publish
21 | run: |
22 | npm install
23 | npm publish --tag beta
24 | env:
25 | NODE_AUTH_TOKEN: '${{ secrets.npm_token }}'
--------------------------------------------------------------------------------
/.github/workflows/release.yml:
--------------------------------------------------------------------------------
1 | name: ReleaseWorkflow
2 | on:
3 | push:
4 | tags:
5 | - v*
6 |
7 | jobs:
8 | publish-npm:
9 | runs-on: ubuntu-latest
10 | steps:
11 | - name: Checkout
12 | uses: actions/checkout@v2
13 | with:
14 | ref: master
15 | - name: Stepup Node
16 | uses: actions/setup-node@v1
17 | with:
18 | node-version: '12.x'
19 | registry-url: 'https://registry.npmjs.org/'
20 | - name: NPM Publish
21 | run: |
22 | npm install
23 | npm publish
24 | env:
25 | NODE_AUTH_TOKEN: '${{ secrets.npm_token }}'
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | node_modules/
3 | *.log
4 | yarn.lock
5 | package.json
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2020 theme-kaze
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Hexo Theme Kaze
5 | A simple, responsive Hexo theme
6 | English | 中文
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 | ---
23 | ## Preview
24 |
25 |
26 |
27 |
28 |
29 | ## Introduction
30 |
31 | Kaze is a simple, responsive and modern Hexo theme, designed by [theme-kaze](https://github.com/theme-kaze)
32 |
33 |
34 | ## Feature
35 |
36 | + Responsive design, adapt to mobile phones, tablets, computers and other devices
37 | + Front-end performance optimization
38 | + Image lazy loading, can be used with thumbnails to get a better experience
39 | + Resource minify, speed up access speed
40 | + minimize the use of JS libraries such as Jquery
41 | + Sidebar widgets, such as recent articles, author cards
42 | + Dark mode, enjoy the comfort of the night
43 | + Code highlight, support prismjs
44 | + Formula rendering, support `katex` and `mathjax`
45 | + Comments, integrated `valine`, `gitalk`, `livere`
46 | + PV/UV statistics and google analytics support
47 | ## Demo
48 |
49 | + [Demo](https://demo.theme-kaze.top/)
50 | + [0x4qE's Blog](https://0727.site)
51 |
52 | ## Installation
53 |
54 | **We recommend using Hexo 5.0.0 and above for a better experience**
55 |
56 | ### Install by npm/yarn
57 |
58 | In version 5.0.0 and above, you can directly enter this command to install
59 |
60 | ```bash
61 | npm install hexo-theme-kaze
62 | ```
63 |
64 | then change `your site/_config.yml`
65 |
66 | ```yaml
67 | theme: kaze
68 | ```
69 | ### Other method
70 |
71 | Enter this command under `your site/themes`
72 |
73 | ```bash
74 | git clone https://github.com/theme-kaze/hexo-theme-kaze.git
75 | ```
76 |
77 | Or download compression package and unzip under `your site/themes`, rename `hexo-theme-kaze` to `kaze`
78 |
79 | > Renamed to `kaze` is to maintain consistency with installation by `npm/yarn`
80 |
81 | ## document
82 |
83 | [Configuration document](https://demo.theme-kaze.top/document/)
84 |
85 | ## Issue template
86 |
87 | If you have any `bug` or suggestion, please send us `issue`!
88 |
89 | You can see issue template details when creating new issues.
90 |
91 | ## Contributors
92 |
93 | + [@0x4qE](https://github.com/0x4qE)
94 | + [@songhn233](https://github.com/songhn233)
95 |
96 | ### Special Thanks
97 |
98 | This theme references to the design of [SukkaW's blog](https://blog.skk.moe/)
99 |
100 | ## License
101 |
102 | Open sourced under the MIT License
103 |
--------------------------------------------------------------------------------
/README_zh.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | hexo-theme-kaze
5 | 一个简洁,响应式的 Hexo 主题
6 | 中文 | English
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 | ---
23 | ## 预览
24 |
25 | 
26 |
27 | ## 简介
28 |
29 | Kaze 是一个简洁、响应式、快速的Hexo主题,由 [theme-kaze](https://github.com/theme-kaze) 开发维护。
30 |
31 | ## 特性
32 |
33 | + 响应式设计,适配桌面端、平板、手机等各种设备
34 | + 前端性能优化,加载快速,眨眼之间即可加载完成
35 | + 图片懒加载,应用懒加载技术加快页面的生成速度
36 | + 资源压缩,提升本地资源请求速度
37 | + 精简设计,不包含 JQuery 等额外库
38 | + 支持侧边栏小组件,例如最近文章,作者卡片
39 | + 暗黑模式,享受黑夜的魅力
40 | + 代码高亮,支持 prismjs
41 | + 公式渲染,支持 `katex` 和 `mathjax`
42 | + 评论系统,集成 `valine`、`gitalk` 和 `livere`
43 | + 访问量统计和谷歌分析支持
44 | ## Demo演示
45 |
46 | + [Demo](https://demo.theme-kaze.top/)
47 | + [0x4qE's Blog](https://0727.site)
48 |
49 | ## 安装
50 |
51 | ### 直接通过 npm/yarn 安装
52 |
53 | 在 Hexo 5.0 以上版本中您可以直接通过输入
54 |
55 | ```bash
56 | npm install hexo-theme-kaze
57 | ```
58 |
59 | 直接安装主题,接着修改 `your site/_config.yml`
60 |
61 | ```yaml
62 | theme: kaze
63 | ```
64 |
65 | ### 其他方式
66 |
67 | 如果您有其他需要可以在 `your site/themes` 下输入
68 |
69 | ```bash
70 | git clone https://github.com/theme-kaze/hexo-theme-kaze.git
71 | ```
72 |
73 | 或者下载主题压缩包在 `your site/themes` 下解压,并且将`hexo-theme-kaze`重命名为`kaze`
74 |
75 | > 重命名为 `kaze` 是为了与通过 `npm/yarn` 下载保持一致性
76 |
77 | ## 配置说明
78 |
79 | [主题使用文档](https://demo.theme-kaze.top/document/)
80 |
81 | ## issue格式
82 |
83 | 有任何的问题或者建议都可以向我们提 `issue`!
84 |
85 | ```markdown
86 | ## hexo版本以及您遇到的问题
87 | TODO
88 | ## 如何重现这个问题
89 | TODO
90 | ## 预期结果
91 | TODO
92 | ```
93 |
94 | ## 贡献者
95 |
96 | + [@0x4qE](https://github.com/0x4qE)
97 | + [@songhn233](https://github.com/songhn233)
98 |
99 | ### 特别感谢
100 |
101 | 主题样式设计参考了 [SukkaW's blog](https://blog.skk.moe/)
102 |
103 | ## 开源许可
104 |
105 | 根据MIT许可开源
106 |
--------------------------------------------------------------------------------
/_config.yml:
--------------------------------------------------------------------------------
1 | #------------------------
2 | # Header config
3 | title: Theme Kaze
4 | author: theme-kaze
5 | # put the logo on the ${blog_path}/source/img/${picname}.png or use urls
6 | # logo_img: https://img.songhn.com/img/Y67gdd.png
7 | author_img: https://img.songhn.com/img/Y67gdd.png
8 | author_description: designed by theme-kaze
9 | #------------------------
10 | # Navbar config
11 | #------------------------
12 | menus:
13 | home: /
14 | archive: /archives
15 | tags: /tags
16 | categories: /categories
17 | about: /about
18 | friends: /links
19 | # artitalk: /shuoshuo # You can uncomment to add this route
20 |
21 | about:
22 | description: description
23 | social_links:
24 | # - { icon: icon, link: your link }
25 |
26 | #------------------------
27 | # Links
28 | #------------------------
29 | links:
30 | # name:
31 | # url: https://example.com
32 | # avatar:
33 | # description:
34 | #------------------------
35 | # tip: if you want to use QQ avatar without giving away your QQ number,
36 | # you can use this api to get an encrypted url:
37 | # https://ptlogin2.qq.com/getface?appid=1006102&imgtype=3&uin=${yourQQNumber}
38 | # and use the encrypted url in the json
39 | #------------------------
40 |
41 | #------------------------
42 | # Post
43 | #------------------------
44 | toc:
45 | showListNumber: false
46 | maxDepth: 6
47 | minDepth: 1
48 |
49 | copyright:
50 | enable: true
51 | writer: # if writer is empty we will use config.author as writer
52 | declare: 本博客所有文章除特别声明外,均采用CC BY-NC-SA 4.0 协议。转载请注明出处!
53 | style: warning # the style uses note warning | danger | primary | info | success
54 |
55 | search:
56 | enable: false
57 | path: search.json
58 | field: posts
59 | searchContent: true
60 |
61 | og:
62 | enable: true
63 | title: true
64 | url: true
65 | image: true
66 | description: true
67 | article: true
68 | #------------------------
69 | # Footer
70 | #------------------------
71 | footer:
72 | copyYear: 2020
73 | # if showPoweredBy is ture, 'Powered by Hexo' will be seen on the footer
74 | showPoweredBy: true
75 | # if showThemeName is ture, 'Theme - Kaze' will be seen on the footer
76 | showThemeName: true
77 | #------------------------
78 | # Record config
79 | # please put the gov image in ${yoursite}/img/beian.png
80 | RecordInfo: "" # your Record info such as '某ICP备xxx号'
81 | govRecordInfo: "" # your gov record info such as '某公网安备xxx号'
82 | govRecordUrl: "" # your gov record url
83 | #------------------------
84 | # pv / uv statistics config
85 | #------------------------
86 | statistics:
87 | enable: false
88 | type: busuanzi # now version only supports busuanzi
89 | pv:
90 | enable: true
91 | style: 本站总访问量{}次 # the style will be shown as $1{pv}$2
92 | uv:
93 | enable: true
94 | style: 本站总访客数{}次 # the style will be shown as $1{uv}$2
95 |
96 | widgets:
97 | showWidgetsMobiles: "none"
98 | #------------------------
99 | # animation config
100 | #------------------------
101 | # if scrollUpAnimation is true, there will be scroll-up animation.
102 | scrollUpAnimation: true
103 |
104 | #------------------------
105 | # comment config
106 | #------------------------
107 | comment:
108 | enable: false
109 | type: valine # valine | gitalk | livere | disqus | we recommend valine | waline
110 | # gitalk config details can see in https://github.com/gitalk/gitalk/blob/master/readme-cn.md
111 | # waline config details can see in https://waline.js.org
112 | valine:
113 | appId:
114 | appKey:
115 | placeholder: Just go go
116 | path: window.location.pathname
117 | avatar: mp
118 | meta: ["nick", "mail", "link"]
119 | pageSize: 10
120 | visitor: false
121 | highlight: true
122 | recordIP: false
123 | serverURLs: # leancloud国内自定义域名
124 | emojiCDN:
125 | emojiMaps: null
126 | enableQQ: false
127 | requiredFields: []
128 | gitalk:
129 | clientID:
130 | clientSecret:
131 | repo:
132 | owner:
133 | admin:
134 | id: location.href
135 | distractionFreeMode: false
136 | # en | zh-CN | zh-TW
137 | language: navigator.language || navigator.userLanguage
138 | labels: ['Gitalk']
139 | perPage: 10
140 | livere:
141 | uid:
142 | waline:
143 | serverURL:
144 | path: window.location.pathname
145 | avatar: mp
146 | meta: ["nick", "mail", "link"]
147 | requiredMeta: []
148 | lang: zh-CN
149 | dark: html[data-user-color-scheme="dark"]
150 | login: enable
151 | wordLimit: 0
152 | pageSize: 10
153 | locale:
154 | placeholder: Just go go
155 |
156 | #------------------------
157 | # latex config
158 | #------------------------
159 | # choose true to use latex by mathjax or katex
160 | # warning: latex rendering will put lots of loading burden on page loading
161 | latex:
162 | enable: false
163 | engine: mathjax # mathjax | katex
164 | # for better rendering effect, when you choose mathjax, you can use it directly but you will lose some effect
165 | # so you can use hexo-renderer-kramed
166 | # when you choose katex, you must use hexo-renderer-markdown-it-plus or other render engine
167 | global: false
168 | # when you choose false, you can use latex by `latex: true` in post front-matter
169 |
170 | #------------------------
171 | # lazyload config
172 | #------------------------
173 | lazyload:
174 | enable: true
175 | loadingImg:
176 |
177 | #------------------------
178 | # plugins config
179 | #------------------------
180 | lightbox:
181 | enable: true
182 | # If your hexo version is below 5.0.0, please upgrade first to use this config
183 | # we support eight highlight themes, you can go to prism website (https://prismjs.com) for more information
184 | # theme: default | coy | dark | funky | okaidia | solarizedlight | tomorrow | twilight
185 | prism:
186 | theme: default
187 | darkTheme: tomorrow
188 | # show the number of words in posts
189 | wordcount:
190 | enable: true
191 | # Analytics config
192 | analytics:
193 | enable: false
194 | type: google # google
195 | google:
196 | id: # you can see more information in https://analytics.google.com/
197 | # Doc:https://artitalk.js.org/
198 | artitalk:
199 | enable: false
200 | appId:
201 | appKey:
202 | #------------------------
203 | # minify config
204 | # css minify uses autoprefixer and clean-css
205 | # javascript minify uses uglify-es
206 | # html minify uses html-minifier
207 | #------------------------
208 | minify:
209 | enable: false
210 | css: true
211 | js: true
212 | html: true
213 | #------------------------
214 | # theme design config
215 | #------------------------
216 | # the config of theme colors and styles
217 | # you can modify these presets to design different styles
218 | color:
219 | text-color: "#3c4858"
220 | text-strong-color: "#2f3d4e"
221 | text-light-color: "#60656a"
222 | divider-color: "#e6e8ee"
223 | title-color: "#475b6d"
224 | link-color: "#3273dc"
225 | link-hover-color: "#6596e5"
226 | info-text-color: "#60656a"
227 | widget-background-color: "#fff"
228 | body-background-color: "#f2f5f8"
229 | border-color: "#e1e4e9"
230 | pre-color: "#2d2d2d"
231 | code-color: "#50687c"
232 | code-background-color: "#e9eaf0"
233 |
234 | font:
235 | font-size: 15px # global font-size
236 | font-family: '-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","PingFang SC","Microsoft YaHei",sans-serif' # global font-family
237 |
238 | #------------------------
239 | # cdn config
240 | #------------------------
241 | cdn:
242 | mathjax: //cdn.jsdelivr.net/npm/mathjax@3.0.5/es5/tex-svg.js
243 | katex: //cdn.jsdelivr.net/npm/katex@0.11.1/dist/katex.min.css
244 | gitalk:
245 | css: //cdn.jsdelivr.net/npm/gitalk@1/dist/gitalk.css
246 | js: //cdn.jsdelivr.net/npm/gitalk@1/dist/gitalk.min.js
247 | valine: //unpkg.com/valine/dist/Valine.min.js
248 | livere: //cdn-city.livere.com/js/embed.dist.js
249 | waline:
250 | js: //unpkg.com/@waline/client@v2/dist/waline.js
251 | css: //unpkg.com/@waline/client@v2/dist/waline.css
252 | baguetteBox: /js/lib/lightbox
253 | lozad: /js/lib/lozad.min.js
254 | prism: /js/lib/prism/
255 | busuanzi: /js/lib/busuanzi.min.js
256 | artitalk: https://cdn.jsdelivr.net/npm/artitalk
257 | md5: /js/lib/md5.min.js
258 |
--------------------------------------------------------------------------------
/gulpfile.js:
--------------------------------------------------------------------------------
1 | const gulp = require('gulp');
2 | const eslint = require('gulp-eslint');
3 | const shell = require('gulp-shell');
4 |
5 | gulp.task('lint:js', () => gulp.src([
6 | './source/js/**/*.js'
7 | ]).pipe(eslint())
8 | .pipe(eslint.format())
9 | .pipe(eslint.failAfterError()));
10 |
11 | gulp.task('lint:ejs', shell.task(['ejslint ./layout/**/*.ejs']));
12 |
13 | gulp.task('default', gulp.series('lint:js', 'lint:ejs'));
14 |
--------------------------------------------------------------------------------
/index.js:
--------------------------------------------------------------------------------
1 | console.log('welcome to use theme kaze!')
2 |
--------------------------------------------------------------------------------
/languages/en.yml:
--------------------------------------------------------------------------------
1 | home:
2 | title: Home
3 |
4 | archive:
5 | title: Archive
6 |
7 | about:
8 | title: About
9 |
10 | friends:
11 | title: Friends
12 |
13 | artitalk:
14 | title: artitalk
15 |
16 | posts:
17 | title: Posts
18 |
19 | categories:
20 | title: Categories
21 | total: Total posts
22 |
23 | tags:
24 | title: Tags
25 | total: Total tags
26 |
27 | hottags:
28 | title: hot tags
29 |
30 | readmore:
31 | title: Read Details
32 |
33 | recentposts:
34 | title: Recent Posts
35 |
36 | toc:
37 | title: TOC
38 |
39 | prev_page:
40 | title: Prev
41 |
42 | next_page:
43 | title: Next
44 |
45 | prev_post:
46 | title: Prev
47 |
48 | next_post:
49 | title: Next
50 |
51 | words_count:
52 | title: words
53 |
54 | min2read:
55 | title: mins
56 |
--------------------------------------------------------------------------------
/languages/zh-CN.yml:
--------------------------------------------------------------------------------
1 | home:
2 | title: 首页
3 |
4 | archive:
5 | title: 归档
6 |
7 | about:
8 | title: 关于
9 |
10 | friends:
11 | title: 友链
12 |
13 | artitalk:
14 | title: 说说
15 |
16 | posts:
17 | title: 文章
18 |
19 | categories:
20 | title: 分类
21 | total: 共计 篇文章
22 |
23 | tags:
24 | title: 标签
25 | total: 共计 个标签
26 |
27 | hottags:
28 | title: 热门标签
29 |
30 | readmore:
31 | title: 继续阅读
32 |
33 | recentposts:
34 | title: 最近文章
35 |
36 | toc:
37 | title: 目录
38 |
39 | prev_page:
40 | title: 上一页
41 |
42 | next_page:
43 | title: 下一页
44 |
45 | prev_post:
46 | title: 上一篇
47 |
48 | next_post:
49 | title: 下一篇
50 |
51 | words_count:
52 | title: 字
53 |
54 | min2read:
55 | title: 分钟
56 |
--------------------------------------------------------------------------------
/languages/zh-TW.yml:
--------------------------------------------------------------------------------
1 | # 繁體中文由郭桓桓翻譯
2 | # Copyright (c) 2021 KuoHuanHuan,
3 | # permission of re-publish is granted for "hexo-theme-kaze" project~
4 |
5 | home:
6 | title: 首頁
7 |
8 | archive:
9 | title: 存檔
10 |
11 | about:
12 | title: 關於
13 |
14 | friends:
15 | title: 友鏈
16 |
17 | artitalk:
18 | title: 小語
19 |
20 | posts:
21 | title: 文章
22 |
23 | categories:
24 | title: 分類
25 | total: 共計 篇文章
26 |
27 | tags:
28 | title: 標籤
29 | total: 共計 個標籤
30 |
31 | hottags:
32 | title: 熱門標籤
33 |
34 | readmore:
35 | title: 繼續閱讀
36 |
37 | recentposts:
38 | title: 最新文章
39 |
40 | toc:
41 | title: 目錄
42 |
43 | prev_page:
44 | title: 上一頁
45 |
46 | next_page:
47 | title: 下一頁
48 |
49 | prev_post:
50 | title: 上一篇
51 |
52 | next_post:
53 | title: 下一篇
54 |
55 | words_count:
56 | title: 個字
57 |
58 | min2read:
59 | title: 分鐘
60 |
--------------------------------------------------------------------------------
/layout/_partial/archives.ejs:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 | <% let archiveYear = ''; %>
10 | <% let count = 0; %>
11 | <% site.posts.sort('date', -1).forEach(post => { %>
12 | <% if (date(post.date, 'YYYY') != archiveYear) { %>
13 | <% if (count != 0) { %>
14 |
17 | <%= archiveYear %>
18 | <%= count %>
19 |
20 | <% } %>
21 | <% count = 1; %>
22 | <% archiveYear = date(post.date, 'YYYY'); %>
23 | <% } else { %>
24 | <% count++; %>
25 | <% } %>
26 | <% }); %>
27 | <% if (count != 0) { %>
28 |
31 | <%= archiveYear %>
32 | <%= count %>
33 |
34 | <% } %>
35 |
36 |
--------------------------------------------------------------------------------
/layout/_partial/author.ejs:
--------------------------------------------------------------------------------
1 | <% if(theme.author_img) { %>
2 |
8 | <% } %>
9 | <%- theme.author || config.author %>
10 | <%- theme.author_description || config.description %>
11 |
31 | <% if(theme.about.social_links) { %>
32 |
33 | <% for(const item of theme.about.social_links) { %>
34 |
39 | <% } %>
40 |
41 | <% } %>
--------------------------------------------------------------------------------
/layout/_partial/categories.ejs:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/layout/_partial/footer.ejs:
--------------------------------------------------------------------------------
1 |