hexo-theme-particlex 2.0.3 → 2.0.5
Sign up to get free protection for your applications and to get access to all the features.
- package/README.md +34 -33
- package/_config.yml +16 -12
- package/layout/card.ejs +5 -5
- package/layout/index.ejs +2 -2
- package/layout/layout.ejs +4 -2
- package/layout/post.ejs +0 -1
- package/layout/script.ejs +1 -1
- package/package.json +1 -1
- package/source/css/particlex.css +0 -48
package/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# Hexo-Theme-ParticleX
|
2
2
|
|
3
|
-
[
|
3
|
+
[ParticleX](https://github.com/argvchs/hexo-theme-particlex) 主题,诞生原因是因为原来的 [Particle](https://github.com/korilin/hexo-theme-particle) 主题不维护了,但是我觉得还是很好的
|
4
4
|
|
5
5
|
原来用的是 Vue 2 + Ant Design Vue 1,现更新到 Vue 3,去除 Ant Design Vue 采用自定义样式,图标更改为 Font Awesome 6,将不能用的 JSDelivr 改为 Staticfile CDN
|
6
6
|
|
@@ -10,11 +10,11 @@
|
|
10
10
|
|
11
11
|
虽然更改后只有一种了,如果你想改颜色就在 `particlex.css` 里 `Ctrl+F` 替换吧
|
12
12
|
|
13
|
-
##
|
13
|
+
## 演示
|
14
14
|
|
15
|
-
- Github Pages
|
16
|
-
- Netlify
|
17
|
-
- Vercel
|
15
|
+
- [Github Pages](https://argvchs.github.io)
|
16
|
+
- [Netlify](https://argvchs.netlify.app)
|
17
|
+
- [Vercel](https://argvchs.vercel.app)
|
18
18
|
|
19
19
|
## 安装
|
20
20
|
|
@@ -42,19 +42,20 @@ prismjs:
|
|
42
42
|
tab_replace: ""
|
43
43
|
```
|
44
44
|
|
45
|
-
|
45
|
+
修改完请 `hexo cl` 清除缓存
|
46
46
|
|
47
47
|
## 配置
|
48
48
|
|
49
49
|
```yaml
|
50
|
-
avatar: # Avatar image
|
51
|
-
|
52
|
-
|
50
|
+
avatar: # Avatar image
|
51
|
+
headBlockEnable: true # Home page info block
|
52
|
+
background: # Home page background image
|
53
|
+
highlightStyle: github # Highlight style
|
53
54
|
```
|
54
55
|
|
55
|
-
-
|
56
|
+
- 导航栏
|
56
57
|
|
57
|
-
为了方便,主题使用的图标是
|
58
|
+
为了方便,主题使用的图标是 Font Awesome 6 图标
|
58
59
|
|
59
60
|
```yaml
|
60
61
|
menu:
|
@@ -86,44 +87,42 @@ home_background: # Home page head background image url
|
|
86
87
|
|
87
88
|
- 主页信息卡片
|
88
89
|
|
89
|
-
|
90
|
+
和导航栏差不多
|
90
91
|
|
91
92
|
`description` 支持 Markdown 格式
|
92
93
|
|
93
|
-
**如果图标链接或友链为空,请在 `
|
94
|
+
**如果图标链接或友链为空,请在 `iconLinks:` 或 `friendLinks:` 后添加一个 `{}`**
|
94
95
|
|
95
96
|
```yaml
|
96
97
|
card:
|
97
98
|
enable: true
|
98
99
|
description:
|
99
|
-
- Description
|
100
|
+
- "Description"
|
100
101
|
- "..."
|
101
|
-
|
102
|
+
iconLinks:
|
102
103
|
{}
|
103
104
|
# <name>:
|
104
105
|
# name: <icon-name>
|
105
106
|
# theme: <icon-theme>
|
106
107
|
# link: <link-url>
|
107
|
-
|
108
|
+
friendLinks:
|
108
109
|
{}
|
109
110
|
# <name>: <link-url>
|
110
111
|
```
|
111
112
|
|
112
|
-
-
|
113
|
+
- 文档缩略
|
113
114
|
|
114
115
|
一般来说,缩略展示文档只需要在文档中添加 `<!-- more -->` 即可,缩略内容在显示全文中也会出现
|
115
116
|
|
116
|
-
|
117
|
+
但考虑到不想把缩略内容放在正文里,就添加了此参数,在 Front-Matter 里设置
|
117
118
|
|
118
|
-
|
119
|
-
|
120
|
-
例如:(注意换行和转义 `"`)
|
119
|
+
支持 Markdown 格式
|
121
120
|
|
122
121
|
```yaml
|
123
|
-
description: "
|
122
|
+
description: "Normal **Strong** _Italic_"
|
124
123
|
```
|
125
124
|
|
126
|
-
-
|
125
|
+
- 页脚
|
127
126
|
|
128
127
|
考虑到博客部署在服务器并使用自己域名的情况,按国家规定需要在网站下边添加备案消息
|
129
128
|
|
@@ -131,7 +130,7 @@ home_background: # Home page head background image url
|
|
131
130
|
|
132
131
|
```yaml
|
133
132
|
footer:
|
134
|
-
since:
|
133
|
+
since: 2022
|
135
134
|
ICP:
|
136
135
|
enable: false
|
137
136
|
code:
|
@@ -140,7 +139,9 @@ home_background: # Home page head background image url
|
|
140
139
|
|
141
140
|
- Polyfill
|
142
141
|
|
143
|
-
使用 [Polyfill.io](https://polyfill.io/v3/url-builder) 自动根据 UA 处理新的 JS API
|
142
|
+
使用 [Polyfill.io](https://polyfill.io/v3/url-builder) 自动根据 UA 处理新的 JS API 兼容
|
143
|
+
|
144
|
+
可以配合 [Hexo-Renderer-BabelJS](https://github.com/argvchs/hexo-renderer-babeljs) 插件处理 JS 语法
|
144
145
|
|
145
146
|
```yaml
|
146
147
|
polyfill:
|
@@ -169,11 +170,11 @@ home_background: # Home page head background image url
|
|
169
170
|
|
170
171
|
- 搜索
|
171
172
|
|
172
|
-
嵌入到 Archives 中的搜索,搜索数据是用 [Hexo-Generator-Search-Lite](https://github.com/argvchs/hexo-generator-search-lite)
|
173
|
+
嵌入到 Archives 中的搜索,搜索数据是用 [Hexo-Generator-Search-Lite](https://github.com/argvchs/hexo-generator-search-lite) 生成,默认关闭,使用需要安装上述插件并**设置 `optimize: true`**
|
173
174
|
|
174
175
|
目前只支持搜索文档的 Title Categories Tags(我太弱了)
|
175
176
|
|
176
|
-
要同时在主题和根目录的两个 `_config.yml`
|
177
|
+
要同时在主题和根目录的两个 `_config.yml` 添加配置
|
177
178
|
|
178
179
|
```yaml
|
179
180
|
# Theme config
|
@@ -186,7 +187,7 @@ home_background: # Home page head background image url
|
|
186
187
|
# Site config
|
187
188
|
search:
|
188
189
|
path: /search.json
|
189
|
-
optimize:
|
190
|
+
optimize: true
|
190
191
|
```
|
191
192
|
|
192
193
|
- Gitalk
|
@@ -197,7 +198,7 @@ home_background: # Home page head background image url
|
|
197
198
|
|
198
199
|
**同样如果没有其他网站,请在 `sites:` 后添加一个 `{}`**
|
199
200
|
|
200
|
-
由于 Gitalk 官方 CORS 代理用的是 Cloudflare,速度过慢,添加了 `proxy`
|
201
|
+
由于 Gitalk 官方 CORS 代理用的是 Cloudflare,速度过慢,添加了 `proxy` 参数,搭建 CORS 代理可以看[这篇文章](https://argvchs.github.io/2022/07/04/build-cors-anywhere)
|
201
202
|
|
202
203
|
```yaml
|
203
204
|
gitalk:
|
@@ -207,7 +208,7 @@ home_background: # Home page head background image url
|
|
207
208
|
repo: # The name of repository of store comments
|
208
209
|
owner: # GitHub repo owner
|
209
210
|
admin: # GitHub repo owner and collaborators, only these guys can initialize github issues
|
210
|
-
language: zh-CN # en, zh-CN, zh-TW, es-ES, fr, ru, de, pl and ko are currently available
|
211
|
+
language: zh-CN # en, zh-CN, zh-TW, es-ES, fr, ru, de, pl and ko are currently available
|
211
212
|
proxy: # CORS proxy
|
212
213
|
sites: # Sites
|
213
214
|
{}
|
@@ -220,7 +221,7 @@ home_background: # Home page head background image url
|
|
220
221
|
|
221
222
|
Giscus 是一个由 GitHub Discussions 支持的评论系统
|
222
223
|
|
223
|
-
在 [Giscus.app](https://giscus.app)
|
224
|
+
在 [Giscus.app](https://giscus.app) 设置好各项后,会在下面生成一个 `<script>` 标签,在主题内填入即可
|
224
225
|
|
225
226
|
```yaml
|
226
227
|
giscus:
|
@@ -243,9 +244,9 @@ home_background: # Home page head background image url
|
|
243
244
|
|
244
245
|
Waline 是一个简单、安全的评论系统
|
245
246
|
|
246
|
-
|
247
|
+
详见:[在 ParticleX 上使用 Waline | Yuzi's Blog](https://blog.yuzi0201.top/posts/bcb4ff00.html)
|
247
248
|
|
248
|
-
**注意如果不需要
|
249
|
+
**注意如果不需要 `locale` 参数,请在 `locale:` 后添加一个 `{}`**
|
249
250
|
|
250
251
|
```yaml
|
251
252
|
waline:
|
package/_config.yml
CHANGED
@@ -1,17 +1,21 @@
|
|
1
|
+
# ParticleX Configuration
|
1
2
|
# https://github.com/argvchs/hexo-theme-particlex
|
2
|
-
# Developer: argvchs
|
3
3
|
|
4
|
-
# Avatar image
|
4
|
+
# Avatar image
|
5
5
|
avatar:
|
6
6
|
|
7
|
-
# Home page
|
8
|
-
|
7
|
+
# Home page info block
|
8
|
+
headBlockEnable: true
|
9
9
|
|
10
|
-
# Home page
|
11
|
-
|
10
|
+
# Home page background image
|
11
|
+
background:
|
12
|
+
|
13
|
+
# Highlight style
|
14
|
+
# https://highlightjs.org
|
15
|
+
highlightStyle: github
|
12
16
|
|
13
17
|
# ParticleX theme icon is adopts the Font Awesome 6
|
14
|
-
#
|
18
|
+
# https://fontawesome.com/search
|
15
19
|
|
16
20
|
# Main menu navigation
|
17
21
|
menu:
|
@@ -44,21 +48,21 @@ menu:
|
|
44
48
|
card:
|
45
49
|
enable: true
|
46
50
|
description:
|
47
|
-
- Description
|
51
|
+
- "Description"
|
48
52
|
- "..."
|
49
|
-
|
53
|
+
iconLinks:
|
50
54
|
{}
|
51
55
|
# <name>:
|
52
56
|
# name: <icon-name>
|
53
57
|
# theme: <icon-theme>
|
54
58
|
# link: <link-url>
|
55
|
-
|
59
|
+
friendLinks:
|
56
60
|
{}
|
57
61
|
# <name>: <link-url>
|
58
62
|
|
59
63
|
# Footer info
|
60
64
|
footer:
|
61
|
-
since:
|
65
|
+
since: 2022
|
62
66
|
# Customize the server domain name ICP
|
63
67
|
ICP:
|
64
68
|
enable: false
|
@@ -94,7 +98,7 @@ gitalk:
|
|
94
98
|
repo: # The name of repository of store comments
|
95
99
|
owner: # GitHub repo owner
|
96
100
|
admin: # GitHub repo owner and collaborators, only these guys can initialize github issues
|
97
|
-
language: zh-CN # en, zh-CN, zh-TW, es-ES, fr, ru, de, pl and ko are currently available
|
101
|
+
language: zh-CN # en, zh-CN, zh-TW, es-ES, fr, ru, de, pl and ko are currently available
|
98
102
|
proxy: # CORS proxy
|
99
103
|
sites: # Sites
|
100
104
|
{}
|
package/layout/card.ejs
CHANGED
@@ -14,18 +14,18 @@
|
|
14
14
|
<% }); %>
|
15
15
|
</div>
|
16
16
|
<div class="icon-links">
|
17
|
-
<% Object.keys(theme.card.
|
17
|
+
<% Object.keys(theme.card.iconLinks).forEach(key => { %>
|
18
18
|
<span class="icon-link">
|
19
|
-
<a href="<%- theme.card.
|
20
|
-
<i class="fa-<%- theme.card.
|
19
|
+
<a href="<%- theme.card.iconLinks[key].link %>">
|
20
|
+
<i class="fa-<%- theme.card.iconLinks[key].theme %> fa-<%- theme.card.iconLinks[key].name %> fa-fw"></i>
|
21
21
|
</a>
|
22
22
|
</span>
|
23
23
|
<% }); %>
|
24
24
|
</div>
|
25
25
|
<div class="friend-links">
|
26
|
-
<% Object.keys(theme.card.
|
26
|
+
<% Object.keys(theme.card.friendLinks).forEach(key => { %>
|
27
27
|
<div class="friend-link">
|
28
|
-
<a href="<%- theme.card.
|
28
|
+
<a href="<%- theme.card.friendLinks[key] %>">
|
29
29
|
<%= key %>
|
30
30
|
</a>
|
31
31
|
</div>
|
package/layout/index.ejs
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
<div id="home-background" style="background-image: url(<%- theme.
|
1
|
+
<div id="home-background" style="background-image: url(<%- theme.background %>)"></div>
|
2
2
|
<div id="home-head">
|
3
|
-
<% if (theme.
|
3
|
+
<% if (theme.headBlockEnable) { %>
|
4
4
|
<div id="home-info" class="home-info" @click="homeclick">
|
5
5
|
<span class="loop"></span>
|
6
6
|
<span class="loop"></span>
|
package/layout/layout.ejs
CHANGED
@@ -35,16 +35,18 @@
|
|
35
35
|
<script src="https://cdn.staticfile.org/instant.page/5.1.1/instantpage.min.js" type="module"></script>
|
36
36
|
<script src="https://cdn.staticfile.org/font-awesome/6.2.1/js/all.min.js"></script>
|
37
37
|
<script src="https://cdn.staticfile.org/vue/3.2.45/vue.global.prod.min.js"></script>
|
38
|
+
<script src="https://cdn.staticfile.org/highlight.js/11.7.0/highlight.min.js"></script>
|
39
|
+
<link rel="stylesheet" href="https://cdn.staticfile.org/highlight.js/11.7.0/styles/<%- theme.highlightStyle %>.min.css">
|
38
40
|
<% if (theme.polyfill.enable) { %>
|
39
41
|
<script src="https://polyfill.io/v3/polyfill.min.js?features=<% theme.polyfill.features.join(",") %>"></script>
|
40
42
|
<% } %>
|
41
|
-
<link rel="stylesheet" href="<%- url_for("/css/fonts.min.css") %>">
|
42
|
-
<link rel="stylesheet" href="<%- url_for("/css/particlex.css") %>">
|
43
43
|
<% if (theme.math.enable) { %>
|
44
44
|
<script src="https://cdn.staticfile.org/KaTeX/0.16.4/katex.min.js"></script>
|
45
45
|
<script src="https://cdn.staticfile.org/KaTeX/0.16.4/contrib/auto-render.min.js"></script>
|
46
46
|
<link rel="stylesheet" href="https://cdn.staticfile.org/KaTeX/0.16.4/katex.min.css">
|
47
47
|
<% } %>
|
48
|
+
<link rel="stylesheet" href="<%- url_for("/css/fonts.min.css") %>">
|
49
|
+
<link rel="stylesheet" href="<%- url_for("/css/particlex.css") %>">
|
48
50
|
</head>
|
49
51
|
<body>
|
50
52
|
<%- include("loading") %>
|
package/layout/post.ejs
CHANGED
package/layout/script.ejs
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
<script src="https://cdn.staticfile.org/highlight.js/11.5.1/highlight.min.js"></script>
|
2
1
|
<script src="<%- url_for("/js/functions.js") %>"></script>
|
3
2
|
<script src="<%- url_for("/js/particlex.js") %>"></script>
|
4
3
|
<% if (is_post()) { %>
|
@@ -65,6 +64,7 @@
|
|
65
64
|
</script>
|
66
65
|
<% } %>
|
67
66
|
<% if (theme.twikoo.enable) { %>
|
67
|
+
<script src="https://cdn.staticfile.org/twikoo/1.6.8/twikoo.all.min.js"></script>
|
68
68
|
<script>
|
69
69
|
twikoo.init({
|
70
70
|
el: "#twikoo-container",
|
package/package.json
CHANGED
package/source/css/particlex.css
CHANGED
@@ -682,54 +682,6 @@ footer .footer-wrap {
|
|
682
682
|
line-height: 2;
|
683
683
|
font-size: 13px;
|
684
684
|
}
|
685
|
-
.content .hljs .hljs-built_in {
|
686
|
-
color: #42a4d6;
|
687
|
-
}
|
688
|
-
.content .hljs .hljs-keyword {
|
689
|
-
color: #e24279;
|
690
|
-
}
|
691
|
-
.content .hljs .hljs-literal {
|
692
|
-
color: #ff9800;
|
693
|
-
}
|
694
|
-
.content .hljs .hljs-number {
|
695
|
-
color: #ff9800;
|
696
|
-
}
|
697
|
-
.content .hljs .hljs-doctag {
|
698
|
-
color: #009688;
|
699
|
-
}
|
700
|
-
.content .hljs .hljs-string {
|
701
|
-
color: #009688;
|
702
|
-
}
|
703
|
-
.content .hljs .hljs-comment {
|
704
|
-
color: #9e9e9e;
|
705
|
-
}
|
706
|
-
.content .hljs .hljs-quote {
|
707
|
-
color: #9e9e9e;
|
708
|
-
}
|
709
|
-
.content .hljs .hljs-attribute {
|
710
|
-
color: #f00;
|
711
|
-
}
|
712
|
-
.content .hljs .hljs-name {
|
713
|
-
color: #f00;
|
714
|
-
}
|
715
|
-
.content .hljs .hljs-attr {
|
716
|
-
color: #525252;
|
717
|
-
}
|
718
|
-
.content .hljs .hljs-class {
|
719
|
-
color: #3f51b5;
|
720
|
-
}
|
721
|
-
.content .hljs .hljs-title {
|
722
|
-
color: #3f51b5;
|
723
|
-
}
|
724
|
-
.content .hljs .hljs-type {
|
725
|
-
color: #3f51b5;
|
726
|
-
}
|
727
|
-
.content .hljs .hljs-params {
|
728
|
-
color: #458;
|
729
|
-
}
|
730
|
-
.content .hljs .hljs-variable {
|
731
|
-
color: #458;
|
732
|
-
}
|
733
685
|
#main {
|
734
686
|
margin-right: calc(100% - 100vw);
|
735
687
|
}
|