hexo-theme-particlex 2.0.6 → 2.0.8

Sign up to get free protection for your applications and to get access to all the features.
package/README.md CHANGED
@@ -12,7 +12,7 @@
12
12
 
13
13
  ## 演示
14
14
 
15
- - [Github Pages](https://argvchs.github.io)
15
+ - [GitHub Pages](https://argvchs.github.io)
16
16
  - [Netlify](https://argvchs.netlify.app)
17
17
  - [Vercel](https://argvchs.vercel.app)
18
18
 
@@ -23,24 +23,49 @@ cd themes
23
23
  git clone https://github.com/argvchs/hexo-theme-particlex.git particlex --depth=1
24
24
  ```
25
25
 
26
- ## 关闭自带 Highlight
26
+ - 关闭自带 Highlight
27
27
 
28
- 到博客根目录下的 `_config.yml`,找到 `highlight` 和 `prismjs` 参数,设置为如下:
28
+ 在博客根目录下的 `_config.yml`,修改 `highlight` 和 `prismjs` 参数
29
29
 
30
- ```yaml
31
- highlight:
32
- enable: false
33
- line_number: true
34
- auto_detect: false
35
- tab_replace: ""
36
- wrap: true
37
- hljs: false
38
- prismjs:
39
- enable: false
40
- preprocess: true
41
- line_number: true
42
- tab_replace: ""
43
- ```
30
+ ```yaml
31
+ highlight:
32
+ enable: false
33
+ line_number: true
34
+ auto_detect: false
35
+ tab_replace: ""
36
+ wrap: true
37
+ hljs: false
38
+ prismjs:
39
+ enable: false
40
+ preprocess: true
41
+ line_number: true
42
+ tab_replace: ""
43
+ ```
44
+
45
+ 如果使用 Pandoc 还需要设置一下
46
+
47
+ ```yaml
48
+ pandoc:
49
+ extra:
50
+ - "no-highlight":
51
+ extensions:
52
+ - "+hard_line_breaks"
53
+ - "+emoji"
54
+ - "-implicit_figures"
55
+ ```
56
+
57
+ - 禁用年度/月度归档
58
+
59
+ Hexo 会自动生成年度/月度归档,可是 ParticleX 主题没有这个功能 ~~我太懒了~~
60
+
61
+ ```yaml
62
+ archive_generator:
63
+ enabled: true
64
+ per_page: 0
65
+ yearly: false
66
+ monthly: false
67
+ daily: false
68
+ ```
44
69
 
45
70
  修改完请 `hexo cl` 清除缓存
46
71
 
@@ -192,7 +217,7 @@ highlightStyle: github # Highlight style
192
217
 
193
218
  - Gitalk
194
219
 
195
- Gitalk 是一个基于 Github Issue 和 Preact 的评论系统
220
+ Gitalk 是一个基于 GitHub Issue 和 Preact 的评论系统
196
221
 
197
222
  考虑到博客可能部署到多个网站同步评论,但 OAuth APP 只能有一个回调 URL,所以添加了 `sites` 参数用于其他网站的评论,请注册多个 Oauth APP
198
223
 
@@ -2,6 +2,8 @@
2
2
  <% if (theme.search.enable) { %>
3
3
  <div class="search-mask" style="z-index: <%= site.posts.length + 1 %>"></div>
4
4
  <input class="ipt search-bar" placeholder="搜索..." style="z-index: <%= site.posts.length + 2 %>">
5
+ <script src="<%- url_for("/js/searcher.js") %>"></script>
6
+ <script>searcher.init("<%- url_for(theme.search.path) %>");</script>
5
7
  <% } %>
6
8
  <% site.posts.forEach((post, id) => { %>
7
9
  <div class="timeline" path="<%- url_for(post.path) %>" style="z-index: <%= site.posts.length - id %>">
@@ -16,7 +18,7 @@
16
18
  <span class="category">
17
19
  <a href="<%- url_for(post.categories.data[0].path) %>">
18
20
  <span class="icon">
19
- <svg class="fa-icon"><use xlink:href="#bookmark-solid"></use></svg>
21
+ <i class="fa-solid fa-bookmark fa-fw"></i>
20
22
  </span>
21
23
  <%= post.categories.data[0].name %>
22
24
  </a>
@@ -25,7 +27,7 @@
25
27
  <% if (post.tags && post.tags.data.length != 0) { %>
26
28
  <span class="tags">
27
29
  <span class="icon">
28
- <svg class="fa-icon"><use xlink:href="#tags-solid"></use></svg>
30
+ <i class="fa-solid fa-tags fa-fw"></i>
29
31
  </span>
30
32
  <% post.tags.data.forEach(data => { %>
31
33
  <span class="tag">
@@ -44,8 +46,4 @@
44
46
  </div>
45
47
  </div>
46
48
  <% }); %>
47
- <% if (theme.search.enable) { %>
48
- <script src="<%- url_for("/js/searcher.js") %>"></script>
49
- <script>searcher.init("<%- url_for(theme.search.path) %>");</script>
50
- <% } %>
51
49
  </div>
@@ -11,7 +11,7 @@
11
11
  <span>
12
12
  <a href="<%- url_for(category.path) %>" style="<%- color[num] %>">
13
13
  <span class="icon">
14
- <svg class="fa-icon"><use xlink:href="#bookmark-solid"></use></svg>
14
+ <i class="fa-solid fa-bookmark fa-fw"></i>
15
15
  </span>
16
16
  <%= category.name %>
17
17
  </a>
@@ -31,7 +31,7 @@
31
31
  <span class="category">
32
32
  <a href="<%- url_for(post.categories.data[0].path) %>">
33
33
  <span class="icon">
34
- <svg class="fa-icon"><use xlink:href="#bookmark-solid"></use></svg>
34
+ <i class="fa-solid fa-bookmark fa-fw"></i>
35
35
  </span>
36
36
  <%= post.categories.data[0].name %>
37
37
  </a>
@@ -40,7 +40,7 @@
40
40
  <% if (post.tags && post.tags.data.length != 0) { %>
41
41
  <span class="tags">
42
42
  <span class="icon">
43
- <svg class="fa-icon"><use xlink:href="#tags-solid"></use></svg>
43
+ <i class="fa-solid fa-tags fa-fw"></i>
44
44
  </span>
45
45
  <% post.tags.data.forEach(data => { %>
46
46
  <span class="tag">
package/layout/layout.ejs CHANGED
@@ -32,11 +32,10 @@
32
32
  <meta name="description" content="<%- config.description %>">
33
33
  <meta name="keywords" content="<%- config.keywords %>">
34
34
  <link rel="icon" href="<%- theme.avatar %>">
35
- <script src="https://cdn.staticfile.org/instant.page/5.1.1/instantpage.min.js" type="module"></script>
36
- <script src="https://cdn.staticfile.org/font-awesome/6.2.1/js/all.min.js"></script>
37
35
  <script src="https://cdn.staticfile.org/vue/3.2.45/vue.global.prod.min.js"></script>
38
36
  <script src="https://cdn.staticfile.org/highlight.js/11.7.0/highlight.min.js"></script>
39
37
  <link rel="stylesheet" href="https://cdn.staticfile.org/highlight.js/11.7.0/styles/<%- theme.highlightStyle %>.min.css">
38
+ <link rel="stylesheet" href="https://cdn.staticfile.org/font-awesome/6.2.1/css/all.min.css">
40
39
  <% if (theme.polyfill.enable) { %>
41
40
  <script src="https://polyfill.io/v3/polyfill.min.js?features=<% theme.polyfill.features.join(",") %>"></script>
42
41
  <% } %>
@@ -51,9 +50,6 @@
51
50
  <body>
52
51
  <%- include("loading") %>
53
52
  <div id="layout">
54
- <i data-fa-symbol="calendar-solid" class="fa-solid fa-calendar fa-fw"></i>
55
- <i data-fa-symbol="bookmark-solid" class="fa-solid fa-bookmark fa-fw"></i>
56
- <i data-fa-symbol="tags-solid" class="fa-solid fa-tags fa-fw"></i>
57
53
  <transition name="into">
58
54
  <div v-show="showpage" style="display: -not-none">
59
55
  <div id="menushow">
@@ -5,7 +5,7 @@
5
5
  <h2>LOADING...</h2>
6
6
  <p style="word-break:keep-all">加载过慢请开启缓存(浏览器默认开启)</p>
7
7
  <div>
8
- <img alt="loading" src="<%- url_for("/loading.gif") %>">
8
+ <img alt="loading" src="<%- url_for("/loading.gif") %>" style="width:60px">
9
9
  </div>
10
10
  </div>
11
11
  </div>
package/layout/post.ejs CHANGED
@@ -5,7 +5,7 @@
5
5
  <div class="info">
6
6
  <span class="date">
7
7
  <span class="icon">
8
- <svg class="fa-icon"><use xlink:href="#calendar-solid"></use></svg>
8
+ <i class="fa-solid fa-calendar fa-fw"></i>
9
9
  </span>
10
10
  <%= date(page.date, "YYYY/M/D") %>
11
11
  </span>
@@ -13,7 +13,7 @@
13
13
  <span class="category">
14
14
  <a href="<%- url_for(page.categories.data[0].path) %>">
15
15
  <span class="icon">
16
- <svg class="fa-icon"><use xlink:href="#bookmark-solid"></use></svg>
16
+ <i class="fa-solid fa-bookmark fa-fw"></i>
17
17
  </span>
18
18
  <%= page.categories.data[0].name %>
19
19
  </a>
@@ -22,7 +22,7 @@
22
22
  <% if (page.tags && page.tags.data.length != 0) { %>
23
23
  <span class="tags">
24
24
  <span class="icon">
25
- <svg class="fa-icon"><use xlink:href="#tags-solid"></use></svg>
25
+ <i class="fa-solid fa-tags fa-fw"></i>
26
26
  </span>
27
27
  <% page.tags.data.forEach(data => { %>
28
28
  <span class="tag">
package/layout/posts.ejs CHANGED
@@ -9,7 +9,7 @@
9
9
  <span class="category">
10
10
  <a href="<%- url_for(post.categories.data[0].path) %>">
11
11
  <span class="icon">
12
- <svg class="fa-icon"><use xlink:href="#bookmark-solid"></use></svg>
12
+ <i class="fa-solid fa-bookmark fa-fw"></i>
13
13
  </span>
14
14
  <%= post.categories.data[0].name %>
15
15
  </a>
@@ -17,7 +17,7 @@
17
17
  <% } %>
18
18
  <span class="date">
19
19
  <span class="icon">
20
- <svg class="fa-icon"><use xlink:href="#calendar-solid"></use></svg>
20
+ <i class="fa-solid fa-calendar fa-fw"></i>
21
21
  </span>
22
22
  <%- date(post.date, "YYYY/M/D") %>
23
23
  </span>
@@ -36,7 +36,7 @@
36
36
  <div class="post-tags">
37
37
  <% if (post.tags.data.length != 0) { %>
38
38
  <span class="icon">
39
- <svg class="fa-icon"><use xlink:href="#tags-solid"></use></svg>
39
+ <i class="fa-solid fa-tags fa-fw"></i>
40
40
  </span>
41
41
  <% } %>
42
42
  <% post.tags.data.forEach(data => { %>
package/layout/tags.ejs CHANGED
@@ -11,7 +11,7 @@
11
11
  <span>
12
12
  <a href="<%- url_for(tag.path) %>" style="<%- color[num] %>">
13
13
  <span class="icon">
14
- <svg class="fa-icon"><use xlink:href="#tags-solid"></use></svg>
14
+ <i class="fa-solid fa-tags fa-fw"></i>
15
15
  </span>
16
16
  <%= tag.name %>
17
17
  </a>
@@ -31,7 +31,7 @@
31
31
  <span class="category">
32
32
  <a href="<%- url_for(post.categories.data[0].path) %>">
33
33
  <span class="icon">
34
- <svg class="fa-icon"><use xlink:href="#bookmark-solid"></use></svg>
34
+ <i class="fa-solid fa-bookmark fa-fw"></i>
35
35
  </span>
36
36
  <%= post.categories.data[0].name %>
37
37
  </a>
@@ -40,7 +40,7 @@
40
40
  <% if (post.tags && post.tags.data.length != 0) { %>
41
41
  <span class="tags">
42
42
  <span class="icon">
43
- <svg class="fa-icon"><use xlink:href="#tags-solid"></use></svg>
43
+ <i class="fa-solid fa-tags fa-fw"></i>
44
44
  </span>
45
45
  <% post.tags.data.forEach(data => { %>
46
46
  <span class="tag">
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hexo-theme-particlex",
3
- "version": "2.0.6",
3
+ "version": "2.0.8",
4
4
  "description": "A concise Hexo theme, based on Particle.",
5
5
  "scripts": {
6
6
  "test": "echo \"Error: no test specified\" && exit 1"
@@ -162,11 +162,6 @@ pre .copycode {
162
162
  footer .footer-wrap {
163
163
  box-sizing: border-box;
164
164
  }
165
- .fa-icon {
166
- width: 1em;
167
- height: 1em;
168
- vertical-align: -0.125em;
169
- }
170
165
  .icon {
171
166
  margin-right: 5px;
172
167
  color: #5c6b72;
@@ -660,20 +655,20 @@ footer .footer-wrap {
660
655
  .content .copycode:hover {
661
656
  opacity: 0.8;
662
657
  }
663
- .content .copycode svg {
658
+ .content .copycode i {
664
659
  position: absolute;
665
660
  top: 0;
666
661
  right: 0;
667
662
  padding: 15px;
668
663
  transition: transform 0.25s;
669
664
  }
670
- .content .copycode.copied svg:first-child {
665
+ .content .copycode.copied i:first-child {
671
666
  opacity: 0;
672
667
  }
673
- .content .copycode:not(.copied) svg:last-child {
668
+ .content .copycode:not(.copied) i:last-child {
674
669
  opacity: 0;
675
670
  }
676
- .content .copycode.copied svg {
671
+ .content .copycode.copied i {
677
672
  transform: scale(1.25);
678
673
  }
679
674
  .content .hljs {
@@ -4,8 +4,7 @@ function highlight() {
4
4
  hljs.configure({ ignoreUnescapedHTML: true });
5
5
  let codes = document.getElementsByTagName("pre");
6
6
  for (let code of codes) {
7
- let langs = [...code.classList, ...code.firstChild.classList];
8
- let lang = [].filter.call(langs, i => i != "sourceCode")[0] || "text";
7
+ let lang = code.classList[0] || "text";
9
8
  code.innerHTML = `<div class="code-content">${code.innerHTML}</div><div class="language">${lang}</div><div class="copycode"><i class="fa-solid fa-copy fa-fw"></i><i class="fa-solid fa-clone fa-fw"></i></div>`;
10
9
  let copycode = code.getElementsByClassName("copycode")[0];
11
10
  copycode.addEventListener("click", async function () {