hexo-theme-particlex 2.7.5 → 2.8.0

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 CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  [ParticleX](https://github.com/theme-particlex/hexo-theme-particlex) 主题,诞生原因是因为原来的 [Particle](https://github.com/korilin/hexo-theme-particle) 主题不维护了,但是我觉得还是很好的。
4
4
 
5
- 原来用的是 Vue 2 + Ant Design Vue 1,现更新到 Vue 3,去除 Ant Design Vue 采用自定义样式,图标更改为 Font Awesome 6,CDN 改为 Staticfile
5
+ 原来用的是 Vue 2 + Ant Design Vue 1,现更新到 Vue 3,去除 Ant Design Vue 采用自定义样式,图标更改为 Font Awesome 6,CDN 改为 ZStatic
6
6
 
7
7
  原项目 `README.md` 里说:
8
8
 
@@ -18,7 +18,7 @@
18
18
 
19
19
  # 2. 安装
20
20
 
21
- ```bash
21
+ ```shell
22
22
  cd themes
23
23
  git clone https://github.com/theme-particlex/hexo-theme-particlex.git particlex --depth=1
24
24
  ```
@@ -40,6 +40,12 @@ prismjs:
40
40
  enable: false
41
41
  ```
42
42
 
43
+ 如果使用 Hexo 7.0.0 之后的版本只需要修改为:
44
+
45
+ ```yaml
46
+ syntax_highlighter:
47
+ ```
48
+
43
49
  如果使用 Pandoc 还需要设置一下:
44
50
 
45
51
  ```yaml
@@ -250,14 +256,14 @@ search:
250
256
 
251
257
  ## 3.4. 评论配置
252
258
 
253
- ### 3.4.1. Giscus
259
+ ### 3.4.1. giscus
254
260
 
255
- Giscus 是一个由 GitHub Discussions 支持的评论系统。
261
+ giscus 是一个由 GitHub Discussions 支持的评论系统。
256
262
 
257
- 在 [Giscus.app](https://giscus.app) 设置好各项后,会在下面生成一个 `<script>` 标签,在主题内填入即可。
263
+ 在 [giscus.app](https://giscus.app) 设置好各项后,会在下面生成一个 `<script>` 标签,在主题内填入即可。
258
264
 
259
265
  ```yaml
260
- # Giscus
266
+ # giscus
261
267
  # https://github.com/giscus/giscus
262
268
  giscus:
263
269
  enable: false
package/_config.yml CHANGED
@@ -93,7 +93,7 @@ crypto:
93
93
  search:
94
94
  enable: false
95
95
 
96
- # Giscus
96
+ # giscus
97
97
  # https://github.com/giscus/giscus
98
98
  giscus:
99
99
  enable: false
@@ -1,70 +1,70 @@
1
- <div id="archives">
2
- <% let posts = []; %>
3
- <div class="categories-tags">
4
- <% let prev; %>
5
- <% site.categories.data.forEach(category => { %>
6
- <%
7
- const colors = is_category(category.name)
8
- ? ["linear-gradient(120deg, #9abbf7 0%, #ffbbf4 100%)"]
9
- : theme.colors.filter(color => color !== prev);
10
- let id = Math.floor(Math.random() * colors.length);
11
- prev = colors[id];
12
- %>
13
- <span>
14
- <a href="<%- url_for(category.path) %>" style="background: <%- colors[id] %>">
15
- <span class="icon">
16
- <i class="fa-solid fa-bookmark fa-fw"></i>
17
- </span>
18
- <%= category.name %>
19
- </a>
20
- </span>
21
- <% if (is_category(category.name)) { %>
22
- <%
23
- posts = category.posts;
24
- posts.data.sort((a, b) => b.date - a.date);
25
- %>
26
- <% } %>
27
- <% }); %>
28
- </div>
29
- <% posts.forEach(post => { %>
30
- <div class="timeline">
31
- <div class="timeline-tail"></div>
32
- <div class="timeline-content">
33
- <div class="item-time"><%= date(post.date, "YYYY/M/D") %></div>
34
- <a href="<%- url_for(post.path) %>">
35
- <h3><%= post.title %></h3>
36
- </a>
37
- <div class="info">
38
- <% if (post.categories && post.categories.data.length !== 0) { %>
39
- <span class="category">
40
- <a href="<%- url_for(post.categories.data[0].path) %>">
41
- <span class="icon">
42
- <i class="fa-solid fa-bookmark fa-fw"></i>
43
- </span>
44
- <%= post.categories.data[0].name %>
45
- </a>
46
- </span>
47
- <% } %>
48
- <% if (post.tags && post.tags.data.length !== 0) { %>
49
- <span class="tags">
50
- <span class="icon">
51
- <i class="fa-solid fa-tags fa-fw"></i>
52
- </span>
53
- <% let prev; %>
54
- <% post.tags.data.forEach(tag => { %>
55
- <span class="tag">
56
- <%
57
- const colors = theme.colors.filter(color => color !== prev);
58
- let id = Math.floor(Math.random() * colors.length);
59
- prev = colors[id];
60
- %>
61
- <a href="<%- url_for(tag.path) %>" style="color: <%- colors[id] %>"><%= tag.name %></a>
62
- </span>
63
- <% }); %>
64
- </span>
65
- <% } %>
66
- </div>
67
- </div>
68
- </div>
69
- <% }); %>
70
- </div>
1
+ <div id="archives">
2
+ <% let posts = []; %>
3
+ <div class="categories-tags">
4
+ <% let prev; %>
5
+ <% site.categories.forEach(category => { %>
6
+ <%
7
+ const colors = is_category(category.name)
8
+ ? ["linear-gradient(120deg, #9abbf7 0%, #ffbbf4 100%)"]
9
+ : theme.colors.filter(color => color !== prev);
10
+ let id = Math.floor(Math.random() * colors.length);
11
+ prev = colors[id];
12
+ %>
13
+ <span>
14
+ <a href="<%- url_for(category.path) %>" style="background: <%- colors[id] %>">
15
+ <span class="icon">
16
+ <i class="fa-solid fa-bookmark fa-fw"></i>
17
+ </span>
18
+ <%= category.name %>
19
+ </a>
20
+ </span>
21
+ <% if (is_category(category.name)) { %>
22
+ <%
23
+ posts = category.posts;
24
+ posts.data.sort((a, b) => b.date - a.date);
25
+ %>
26
+ <% } %>
27
+ <% }); %>
28
+ </div>
29
+ <% posts.forEach(post => { %>
30
+ <div class="timeline">
31
+ <div class="timeline-tail"></div>
32
+ <div class="timeline-content">
33
+ <div class="item-time"><%= date(post.date, "YYYY/M/D") %></div>
34
+ <a href="<%- url_for(post.path) %>">
35
+ <h3><%= post.title %></h3>
36
+ </a>
37
+ <div class="info">
38
+ <% if (post.categories && post.categories.data.length !== 0) { %>
39
+ <span class="category">
40
+ <a href="<%- url_for(post.categories.data[0].path) %>">
41
+ <span class="icon">
42
+ <i class="fa-solid fa-bookmark fa-fw"></i>
43
+ </span>
44
+ <%= post.categories.data[0].name %>
45
+ </a>
46
+ </span>
47
+ <% } %>
48
+ <% if (post.tags && post.tags.data.length !== 0) { %>
49
+ <span class="tags">
50
+ <span class="icon">
51
+ <i class="fa-solid fa-tags fa-fw"></i>
52
+ </span>
53
+ <% let prev; %>
54
+ <% post.tags.data.forEach(tag => { %>
55
+ <span class="tag">
56
+ <%
57
+ const colors = theme.colors.filter(color => color !== prev);
58
+ let id = Math.floor(Math.random() * colors.length);
59
+ prev = colors[id];
60
+ %>
61
+ <a href="<%- url_for(tag.path) %>" style="color: <%- colors[id] %>"><%= tag.name %></a>
62
+ </span>
63
+ <% }); %>
64
+ </span>
65
+ <% } %>
66
+ </div>
67
+ </div>
68
+ </div>
69
+ <% }); %>
70
+ </div>
package/layout/import.ejs CHANGED
@@ -1,6 +1,6 @@
1
- <link rel="preconnect" href="https://cdn.staticfile.org" />
2
- <script src="https://cdn.staticfile.org/vue/3.3.4/vue.global.prod.min.js"></script>
3
- <link rel="stylesheet" href="https://cdn.staticfile.org/font-awesome/6.4.0/css/all.min.css" />
1
+ <link rel="preconnect" href="https://s4.zstatic.net" />
2
+ <script src="https://s4.zstatic.net/ajax/libs/vue/3.3.7/vue.global.prod.min.js"></script>
3
+ <link rel="stylesheet" href="https://s4.zstatic.net/ajax/libs/font-awesome/6.4.2/css/all.min.css" />
4
4
  <link rel="preconnect" href="https://fonts.loli.net" />
5
5
  <link rel="preconnect" href="https://gstatic.loli.net" crossorigin />
6
6
  <link rel="stylesheet" href="https://fonts.loli.net/css2?family=Fira+Code:wght@400;500;600;700&family=Lexend:wght@400;500;600;700;800;900&family=Noto+Sans+SC:wght@400;500;600;700;800;900&display=swap" />
@@ -9,25 +9,25 @@
9
9
  <script src="https://polyfill.io/v3/polyfill.min.js?features=<%- theme.polyfill.features %>"></script>
10
10
  <% } %>
11
11
  <% if (theme.highlight.enable) { %>
12
- <script src="https://cdn.staticfile.org/highlight.js/11.8.0/highlight.min.js"></script>
13
- <script src="https://cdn.staticfile.org/highlightjs-line-numbers.js/2.8.0/highlightjs-line-numbers.min.js"></script>
12
+ <script src="https://s4.zstatic.net/ajax/libs/highlight.js/11.9.0/highlight.min.js"></script>
13
+ <script src="https://s4.zstatic.net/ajax/libs/highlightjs-line-numbers.js/2.8.0/highlightjs-line-numbers.min.js"></script>
14
14
  <link
15
15
  rel="stylesheet"
16
- href="https://cdn.staticfile.org/highlight.js/11.8.0/styles/<%- theme.highlight.style %>.min.css"
16
+ href="https://s4.zstatic.net/ajax/libs/highlight.js/11.9.0/styles/<%- theme.highlight.style %>.min.css"
17
17
  />
18
18
  <script src="<%- url_for("/js/lib/highlight.js") %>"></script>
19
19
  <% } %>
20
20
  <% if (theme.math.enable) { %>
21
- <script src="https://cdn.staticfile.org/KaTeX/0.16.8/katex.min.js"></script>
22
- <script src="https://cdn.staticfile.org/KaTeX/0.16.8/contrib/auto-render.min.js"></script>
23
- <link rel="stylesheet" href="https://cdn.staticfile.org/KaTeX/0.16.8/katex.min.css" />
21
+ <script src="https://s4.zstatic.net/ajax/libs/KaTeX/0.16.9/katex.min.js"></script>
22
+ <script src="https://s4.zstatic.net/ajax/libs/KaTeX/0.16.9/contrib/auto-render.min.js"></script>
23
+ <link rel="stylesheet" href="https://s4.zstatic.net/ajax/libs/KaTeX/0.16.9/katex.min.css" />
24
24
  <script src="<%- url_for("/js/lib/math.js") %>"></script>
25
25
  <% } %>
26
26
  <% if (theme.preview.enable) { %>
27
27
  <script src="<%- url_for("/js/lib/preview.js") %>"></script>
28
28
  <% } %>
29
29
  <% if (theme.crypto.enable && typeof page.secret !== "undefined") { %>
30
- <script src="https://cdn.staticfile.org/crypto-js/4.1.1/crypto-js.min.js"></script>
30
+ <script src="https://s4.zstatic.net/ajax/libs/crypto-js/4.2.0/crypto-js.min.js"></script>
31
31
  <script src="<%- url_for("/js/lib/crypto.js") %>"></script>
32
32
  <% } %>
33
33
  <% if (type === "archives" && theme.search.enable) { %>
@@ -35,16 +35,16 @@
35
35
  <% } %>
36
36
  <% if (type === "post" && page.comments) { %>
37
37
  <% if (theme.gitalk.enable) { %>
38
- <script src="https://cdn.staticfile.org/gitalk/1.8.0/gitalk.min.js"></script>
39
- <link rel="stylesheet" href="https://cdn.staticfile.org/gitalk/1.8.0/gitalk.min.css" />
38
+ <script src="https://s4.zstatic.net/ajax/libs/gitalk/1.8.0/gitalk.min.js"></script>
39
+ <link rel="stylesheet" href="https://s4.zstatic.net/ajax/libs/gitalk/1.8.0/gitalk.min.css" />
40
40
  <% } %>
41
41
  <% if (theme.waline.enable) { %>
42
- <script src="https://cdn.staticfile.org/waline/2.15.5/waline.min.js"></script>
43
- <link rel="stylesheet" href="https://cdn.staticfile.org/waline/2.15.5/waline.min.css" />
44
- <link rel="stylesheet" href="https://cdn.staticfile.org/waline/2.15.5/waline-meta.min.css" />
42
+ <script src="https://s4.zstatic.net/ajax/libs/waline/2.15.8/waline.min.js"></script>
43
+ <link rel="stylesheet" href="https://s4.zstatic.net/ajax/libs/waline/2.15.8/waline.min.css" />
44
+ <link rel="stylesheet" href="https://s4.zstatic.net/ajax/libs/waline/2.15.8/waline-meta.min.css" />
45
45
  <% } %>
46
46
  <% if (theme.twikoo.enable) { %>
47
- <script src="https://cdn.staticfile.org/twikoo/1.6.16/twikoo.all.min.js"></script>
47
+ <script src="https://s4.zstatic.net/ajax/libs/twikoo/1.6.31/twikoo.all.min.js"></script>
48
48
  <% } %>
49
49
  <% } %>
50
50
  <% if (type === "index") { %>
package/layout/layout.ejs CHANGED
@@ -1,11 +1,11 @@
1
1
  <%
2
- let type;
2
+ let type = "post";
3
3
  if (is_home()) type = "index";
4
4
  if (is_post() || is_page()) type = "post";
5
5
  if (is_category() || page.type === "categories") type = "categories";
6
6
  if (is_tag() || page.type === "tags") type = "tags";
7
7
  if (is_archive()) type = "archives";
8
- let title;
8
+ let title = page.title + " | " + config.title;
9
9
  if (is_home()) title = config.title;
10
10
  if (is_post() || is_page()) title = page.title + " | " + config.title;
11
11
  if (is_category()) title = "Categories: " + page.category + " | " + config.title;
package/layout/tags.ejs CHANGED
@@ -1,70 +1,70 @@
1
- <div id="archives">
2
- <% let posts = []; %>
3
- <div class="categories-tags">
4
- <% let prev; %>
5
- <% site.tags.data.forEach(tag => { %>
6
- <%
7
- const colors = is_tag(tag.name)
8
- ? ["linear-gradient(120deg, #9abbf7 0%, #ffbbf4 100%)"]
9
- : theme.colors.filter(color => color !== prev);
10
- let id = Math.floor(Math.random() * colors.length);
11
- prev = colors[id];
12
- %>
13
- <span>
14
- <a href="<%- url_for(tag.path) %>" style="background: <%- colors[id] %>">
15
- <span class="icon">
16
- <i class="fa-solid fa-tags fa-fw"></i>
17
- </span>
18
- <%= tag.name %>
19
- </a>
20
- </span>
21
- <% if (is_tag(tag.name)) { %>
22
- <%
23
- posts = tag.posts;
24
- posts.data.sort((a, b) => b.date - a.date);
25
- %>
26
- <% } %>
27
- <% }); %>
28
- </div>
29
- <% posts.forEach(post => { %>
30
- <div class="timeline">
31
- <div class="timeline-tail"></div>
32
- <div class="timeline-content">
33
- <div class="item-time"><%= date(post.date, "YYYY/M/D") %></div>
34
- <a href="<%- url_for(post.path) %>">
35
- <h3><%= post.title %></h3>
36
- </a>
37
- <div class="info">
38
- <% if (post.categories && post.categories.data.length !== 0) { %>
39
- <span class="category">
40
- <a href="<%- url_for(post.categories.data[0].path) %>">
41
- <span class="icon">
42
- <i class="fa-solid fa-bookmark fa-fw"></i>
43
- </span>
44
- <%= post.categories.data[0].name %>
45
- </a>
46
- </span>
47
- <% } %>
48
- <% if (post.tags && post.tags.data.length !== 0) { %>
49
- <span class="tags">
50
- <span class="icon">
51
- <i class="fa-solid fa-tags fa-fw"></i>
52
- </span>
53
- <% let prev; %>
54
- <% post.tags.data.forEach(tag => { %>
55
- <span class="tag">
56
- <%
57
- const colors = theme.colors.filter(color => color !== prev);
58
- let id = Math.floor(Math.random() * colors.length);
59
- prev = colors[id];
60
- %>
61
- <a href="<%- url_for(tag.path) %>" style="color: <%- colors[id] %>"><%= tag.name %></a>
62
- </span>
63
- <% }); %>
64
- </span>
65
- <% } %>
66
- </div>
67
- </div>
68
- </div>
69
- <% }); %>
70
- </div>
1
+ <div id="archives">
2
+ <% let posts = []; %>
3
+ <div class="categories-tags">
4
+ <% let prev; %>
5
+ <% site.tags.forEach(tag => { %>
6
+ <%
7
+ const colors = is_tag(tag.name)
8
+ ? ["linear-gradient(120deg, #9abbf7 0%, #ffbbf4 100%)"]
9
+ : theme.colors.filter(color => color !== prev);
10
+ let id = Math.floor(Math.random() * colors.length);
11
+ prev = colors[id];
12
+ %>
13
+ <span>
14
+ <a href="<%- url_for(tag.path) %>" style="background: <%- colors[id] %>">
15
+ <span class="icon">
16
+ <i class="fa-solid fa-tags fa-fw"></i>
17
+ </span>
18
+ <%= tag.name %>
19
+ </a>
20
+ </span>
21
+ <% if (is_tag(tag.name)) { %>
22
+ <%
23
+ posts = tag.posts;
24
+ posts.data.sort((a, b) => b.date - a.date);
25
+ %>
26
+ <% } %>
27
+ <% }); %>
28
+ </div>
29
+ <% posts.forEach(post => { %>
30
+ <div class="timeline">
31
+ <div class="timeline-tail"></div>
32
+ <div class="timeline-content">
33
+ <div class="item-time"><%= date(post.date, "YYYY/M/D") %></div>
34
+ <a href="<%- url_for(post.path) %>">
35
+ <h3><%= post.title %></h3>
36
+ </a>
37
+ <div class="info">
38
+ <% if (post.categories && post.categories.data.length !== 0) { %>
39
+ <span class="category">
40
+ <a href="<%- url_for(post.categories.data[0].path) %>">
41
+ <span class="icon">
42
+ <i class="fa-solid fa-bookmark fa-fw"></i>
43
+ </span>
44
+ <%= post.categories.data[0].name %>
45
+ </a>
46
+ </span>
47
+ <% } %>
48
+ <% if (post.tags && post.tags.data.length !== 0) { %>
49
+ <span class="tags">
50
+ <span class="icon">
51
+ <i class="fa-solid fa-tags fa-fw"></i>
52
+ </span>
53
+ <% let prev; %>
54
+ <% post.tags.data.forEach(tag => { %>
55
+ <span class="tag">
56
+ <%
57
+ const colors = theme.colors.filter(color => color !== prev);
58
+ let id = Math.floor(Math.random() * colors.length);
59
+ prev = colors[id];
60
+ %>
61
+ <a href="<%- url_for(tag.path) %>" style="color: <%- colors[id] %>"><%= tag.name %></a>
62
+ </span>
63
+ <% }); %>
64
+ </span>
65
+ <% } %>
66
+ </div>
67
+ </div>
68
+ </div>
69
+ <% }); %>
70
+ </div>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hexo-theme-particlex",
3
- "version": "2.7.5",
3
+ "version": "2.8.0",
4
4
  "description": "A concise Hexo theme, based on Particle.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -21,7 +21,7 @@
21
21
  },
22
22
  "homepage": "https://github.com/theme-particlex/hexo-theme-particlex#readme",
23
23
  "dependencies": {
24
- "hexo-helper-crypto": "^1.1.4",
24
+ "hexo-helper-crypto": "^1.1.5",
25
25
  "hexo-renderer-ejs": "^2.0.0"
26
26
  },
27
27
  "scripts": {