hexo-theme-particlex 2.6.2 → 2.6.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +11 -11
- package/_config.yml +5 -5
- package/layout/footer.ejs +1 -1
- package/package.json +5 -5
- package/source/js/lib/crypto.js +2 -2
- package/source/js/lib/highlight.js +7 -4
- package/source/js/lib/home.js +3 -3
- package/source/js/lib/preview.js +2 -2
- package/source/js/main.js +2 -2
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Hexo-Theme-ParticleX
|
|
2
2
|
|
|
3
|
-
[ParticleX](https://github.com/
|
|
3
|
+
[ParticleX](https://github.com/theme-particlex/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,CDN 改为 Staticfile
|
|
6
6
|
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
|
|
9
9
|
> 目前有 Full、Night 和 Maiden **两个**主题样式
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
但是更改后只有一种了,如果你想改颜色就在 `main.css` 里替换吧
|
|
12
12
|
|
|
13
13
|
# 1. 演示
|
|
14
14
|
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
|
|
21
21
|
```bash
|
|
22
22
|
cd themes
|
|
23
|
-
git clone https://github.com/
|
|
23
|
+
git clone https://github.com/theme-particlex/hexo-theme-particlex.git particlex --depth=1
|
|
24
24
|
```
|
|
25
25
|
|
|
26
26
|
然后在根目录 `_config.yml` 设置主题为 ParticleX 即可
|
|
@@ -156,7 +156,7 @@ footer:
|
|
|
156
156
|
|
|
157
157
|
使用 [Polyfill.io](https://polyfill.io) 自动根据 UA 处理新的 JS API 兼容
|
|
158
158
|
|
|
159
|
-
可以配合 [Hexo-Babel](https://github.com/
|
|
159
|
+
可以配合 [Hexo-Babel](https://github.com/theme-particlex/hexo-babel) 插件处理 JS 语法兼容
|
|
160
160
|
|
|
161
161
|
```yaml
|
|
162
162
|
# Polyfill
|
|
@@ -205,7 +205,7 @@ preview:
|
|
|
205
205
|
|
|
206
206
|
一般来说,缩略展示文档只需要在文档中添加 `<!-- more -->` 即可,缩略内容在显示全文中也会出现
|
|
207
207
|
|
|
208
|
-
但考虑到不想把缩略内容放在正文里,就添加了此参数,在 [Front-Matter](https://hexo.io/
|
|
208
|
+
但考虑到不想把缩略内容放在正文里,就添加了此参数,在 [Front-Matter](https://hexo.io/docs/front-matter) 里设置
|
|
209
209
|
|
|
210
210
|
支持 Markdown 格式
|
|
211
211
|
|
|
@@ -216,11 +216,11 @@ description: |
|
|
|
216
216
|
|
|
217
217
|
### 3.3.6. 文章置顶
|
|
218
218
|
|
|
219
|
-
在 [Front-Matter](https://hexo.io/
|
|
219
|
+
在 [Front-Matter](https://hexo.io/docs/front-matter) 里设置 `pinned` 作为置顶参数,越大越靠前,默认为 0
|
|
220
220
|
|
|
221
221
|
### 3.3.7. 文章加密
|
|
222
222
|
|
|
223
|
-
使用 AES 加密算法,在 [Front-Matter](https://hexo.io/
|
|
223
|
+
使用 AES 加密算法,在 [Front-Matter](https://hexo.io/docs/front-matter) 里设置 `secret` 作为密码,**使用请安装插件 [Hexo-Helper-Crypto](https://github.com/theme-particlex/hexo-helper-crypto)**
|
|
224
224
|
|
|
225
225
|
```yaml
|
|
226
226
|
# Article encryption
|
|
@@ -264,7 +264,7 @@ giscus:
|
|
|
264
264
|
emitMetadata: 0
|
|
265
265
|
inputPosition: bottom
|
|
266
266
|
theme: preferred_color_scheme
|
|
267
|
-
lang:
|
|
267
|
+
lang:
|
|
268
268
|
```
|
|
269
269
|
|
|
270
270
|
### 3.4.2. Gitalk
|
|
@@ -283,7 +283,7 @@ gitalk:
|
|
|
283
283
|
repo: # The name of repository of store comments
|
|
284
284
|
owner: # GitHub repo owner
|
|
285
285
|
admin: # GitHub repo owner and collaborators, only these guys can initialize github issues
|
|
286
|
-
language:
|
|
286
|
+
language: # en, zh-CN, zh-TW, es-ES, fr, ru, de, pl and ko are currently available
|
|
287
287
|
proxy: # CORS proxy
|
|
288
288
|
```
|
|
289
289
|
|
|
@@ -315,7 +315,7 @@ waline:
|
|
|
315
315
|
- link
|
|
316
316
|
requiredMeta: # Set required meta field, e.g.: [nick] | [nick, mail]
|
|
317
317
|
- nick
|
|
318
|
-
lang:
|
|
318
|
+
lang: # Language, available values: en-US, zh-CN, zh-TW, pt-BR, ru-RU, jp-JP
|
|
319
319
|
wordLimit: 0 # Word limit, no limit when setting to 0
|
|
320
320
|
login: enable # Whether enable login, can choose from 'enable', 'disable' and 'force'
|
|
321
321
|
pageSize: 10 # Comment per page
|
|
@@ -333,7 +333,7 @@ twikoo:
|
|
|
333
333
|
envID:
|
|
334
334
|
region:
|
|
335
335
|
path: location.pathname
|
|
336
|
-
lang:
|
|
336
|
+
lang:
|
|
337
337
|
```
|
|
338
338
|
|
|
339
339
|
# 4. 写在最后
|
package/_config.yml
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# ParticleX Configuration
|
|
2
|
-
# https://github.com/
|
|
2
|
+
# https://github.com/theme-particlex/hexo-theme-particlex
|
|
3
3
|
|
|
4
4
|
# Avatar image
|
|
5
5
|
avatar: /images/avatar.jpg
|
|
@@ -100,7 +100,7 @@ giscus:
|
|
|
100
100
|
emitMetadata: 0
|
|
101
101
|
inputPosition: bottom
|
|
102
102
|
theme: preferred_color_scheme
|
|
103
|
-
lang:
|
|
103
|
+
lang:
|
|
104
104
|
|
|
105
105
|
# Gitalk
|
|
106
106
|
# https://github.com/gitalk/gitalk
|
|
@@ -111,7 +111,7 @@ gitalk:
|
|
|
111
111
|
repo: # The name of repository of store comments
|
|
112
112
|
owner: # GitHub repo owner
|
|
113
113
|
admin: # GitHub repo owner and collaborators, only these guys can initialize github issues
|
|
114
|
-
language:
|
|
114
|
+
language: # en, zh-CN, zh-TW, es-ES, fr, ru, de, pl and ko are currently available
|
|
115
115
|
proxy: # CORS proxy
|
|
116
116
|
|
|
117
117
|
# Waline
|
|
@@ -135,7 +135,7 @@ waline:
|
|
|
135
135
|
- link
|
|
136
136
|
requiredMeta: # Set required meta field, e.g.: [nick] | [nick, mail]
|
|
137
137
|
- nick
|
|
138
|
-
lang:
|
|
138
|
+
lang: # Language, available values: en-US, zh-CN, zh-TW, pt-BR, ru-RU, jp-JP
|
|
139
139
|
wordLimit: 0 # Word limit, no limit when setting to 0
|
|
140
140
|
login: enable # Whether enable login, can choose from 'enable', 'disable' and 'force'
|
|
141
141
|
pageSize: 10 # Comment per page
|
|
@@ -147,4 +147,4 @@ twikoo:
|
|
|
147
147
|
envID:
|
|
148
148
|
region:
|
|
149
149
|
path: location.pathname
|
|
150
|
-
lang:
|
|
150
|
+
lang:
|
package/layout/footer.ejs
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
</div>
|
|
11
11
|
<div>
|
|
12
12
|
Based on the <a href="https://hexo.io">Hexo Engine</a> &
|
|
13
|
-
<a href="https://github.com/
|
|
13
|
+
<a href="https://github.com/theme-particlex/hexo-theme-particlex">ParticleX Theme</a>
|
|
14
14
|
</div>
|
|
15
15
|
<% if (theme.footer.ICP.enable) { %>
|
|
16
16
|
<div>
|
package/package.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "hexo-theme-particlex",
|
|
3
|
-
"version": "2.6.
|
|
3
|
+
"version": "2.6.4",
|
|
4
4
|
"description": "A concise Hexo theme, based on Particle.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
7
|
-
"url": "git+https://github.com/
|
|
7
|
+
"url": "git+https://github.com/theme-particlex/hexo-theme-particlex.git"
|
|
8
8
|
},
|
|
9
9
|
"keywords": [
|
|
10
10
|
"hexo",
|
|
@@ -17,11 +17,11 @@
|
|
|
17
17
|
"author": "Argvchs",
|
|
18
18
|
"license": "MIT",
|
|
19
19
|
"bugs": {
|
|
20
|
-
"url": "https://github.com/
|
|
20
|
+
"url": "https://github.com/theme-particlex/hexo-theme-particlex/issues"
|
|
21
21
|
},
|
|
22
|
-
"homepage": "https://github.com/
|
|
22
|
+
"homepage": "https://github.com/theme-particlex/hexo-theme-particlex#readme",
|
|
23
23
|
"dependencies": {
|
|
24
|
-
"hexo-helper-crypto": "^1.1.
|
|
24
|
+
"hexo-helper-crypto": "^1.1.3",
|
|
25
25
|
"hexo-renderer-ejs": "^2.0.0"
|
|
26
26
|
},
|
|
27
27
|
"scripts": {
|
package/source/js/lib/crypto.js
CHANGED
|
@@ -5,8 +5,8 @@ mixins.crypto = {
|
|
|
5
5
|
watch: {
|
|
6
6
|
crypto(value) {
|
|
7
7
|
let input = this.$refs.crypto,
|
|
8
|
-
content = this.$refs.content
|
|
9
|
-
|
|
8
|
+
content = this.$refs.content;
|
|
9
|
+
let { encrypted, shasum } = input.dataset;
|
|
10
10
|
try {
|
|
11
11
|
let decrypted = CryptoJS.AES.decrypt(encrypted, value).toString(CryptoJS.enc.Utf8);
|
|
12
12
|
if (CryptoJS.SHA256(decrypted).toString() === shasum) {
|
|
@@ -7,12 +7,15 @@ mixins.highlight = {
|
|
|
7
7
|
this.renderers.push(this.highlight);
|
|
8
8
|
},
|
|
9
9
|
methods: {
|
|
10
|
+
sleep(time) {
|
|
11
|
+
return new Promise(resolve => setTimeout(resolve, time));
|
|
12
|
+
},
|
|
10
13
|
highlight() {
|
|
11
14
|
let codes = document.querySelectorAll("pre");
|
|
12
15
|
for (let i of codes) {
|
|
13
|
-
let code = i.innerText
|
|
14
|
-
|
|
15
|
-
|
|
16
|
+
let code = i.innerText;
|
|
17
|
+
let language = [...i.classList, ...i.firstChild.classList][0] || "plaintext";
|
|
18
|
+
let highlighted;
|
|
16
19
|
try {
|
|
17
20
|
highlighted = hljs.highlight(code, { language }).value;
|
|
18
21
|
} catch {
|
|
@@ -32,7 +35,7 @@ mixins.highlight = {
|
|
|
32
35
|
this.copying = true;
|
|
33
36
|
copycode.classList.add("copied");
|
|
34
37
|
await navigator.clipboard.writeText(code);
|
|
35
|
-
await
|
|
38
|
+
await this.sleep(1000);
|
|
36
39
|
copycode.classList.remove("copied");
|
|
37
40
|
this.copying = false;
|
|
38
41
|
});
|
package/source/js/lib/home.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
mixins.home = {
|
|
2
2
|
mounted() {
|
|
3
|
-
let background = this.$refs.homeBackground
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
let background = this.$refs.homeBackground;
|
|
4
|
+
let images = background.dataset.images.split(",");
|
|
5
|
+
let id = Math.floor(Math.random() * images.length);
|
|
6
6
|
background.style.backgroundImage = `url('${images[id]}')`;
|
|
7
7
|
this.menuColor = true;
|
|
8
8
|
},
|
package/source/js/lib/preview.js
CHANGED
|
@@ -8,8 +8,8 @@ mixins.preview = {
|
|
|
8
8
|
methods: {
|
|
9
9
|
preview() {
|
|
10
10
|
let preview = this.$refs.preview,
|
|
11
|
-
content = this.$refs.previewContent
|
|
12
|
-
|
|
11
|
+
content = this.$refs.previewContent;
|
|
12
|
+
let images = document.querySelectorAll("img");
|
|
13
13
|
for (let i of images)
|
|
14
14
|
i.addEventListener("click", () => {
|
|
15
15
|
content.alt = i.alt;
|
package/source/js/main.js
CHANGED
|
@@ -25,8 +25,8 @@ const app = Vue.createApp({
|
|
|
25
25
|
for (let i of this.renderers) i();
|
|
26
26
|
},
|
|
27
27
|
handleScroll() {
|
|
28
|
-
let wrap = this.$refs.homePostsWrap
|
|
29
|
-
|
|
28
|
+
let wrap = this.$refs.homePostsWrap;
|
|
29
|
+
let newScrollTop = document.documentElement.scrollTop;
|
|
30
30
|
if (this.scrollTop < newScrollTop) {
|
|
31
31
|
this.hiddenMenu = true;
|
|
32
32
|
this.showMenuItems = false;
|