ParticleX 主题,诞生原因是因为原来的 Particle 主题不维护了,但是我觉得还是很好的。
原来用的是 Vue 2 + Ant Design Vue 1,现更新到 Vue 3,去除 Ant Design Vue 采用自定义样式,图标更改为 Font Awesome 6,CDN 改为 ZStatic。
原项目 README.md
里说:
目前有 Full、Night 和 Maiden 两个主题样式。
但是更改后只有一种了,如果你想改颜色就在 main.css
里替换吧。
1. 演示
2. 安装
cd themes git clone https://github.com/theme-particlex/hexo-theme-particlex.git particlex --depth=1
bash
然后在根目录 _config.yml
设置主题为 ParticleX 即可。
theme: particlex
yaml
2.1. 关闭自带代码高亮
Hexo 有自带的代码高亮,但是和 ParticleX 的不兼容。
highlight: enable: false prismjs: enable: false
yaml
如果使用 Hexo 7.0.0 之后的版本只需要修改为:
syntax_highlighter:
yaml
如果使用 Pandoc 还需要设置一下:
pandoc: extra: - no-highlight:
yaml
2.2. 禁用年度月度归档
Hexo 会自动生成年度月度归档,可是 ParticleX 主题没有这个功能。我太懒了
archive_generator: enabled: true per_page: 0 yearly: false monthly: false daily: false
yaml
修改完请 hexo cl
清除缓存。
3. 配置
3.1. 基本配置
background
参数是一个列表,打开时会随机加载一个背景。
# Avatar image avatar: /images/avatar.jpg # Home page background image background: - /images/background.jpg # Loading image loading: /images/loading.gif # Optional colors for category and tag colors: - "#ffa2c4" - "#00bcd4" - "#03a9f4" - "#00a596" - "#ff7d73"
yaml
3.2. 内容配置
3.2.1. 导航栏
为了方便,主题使用的图标是 Font Awesome 6 图标。
# ParticleX theme icon is adopts the Font Awesome 6 # https://fontawesome.com # Main menu navigation menu: Home: name: house theme: solid link: / About: name: id-card theme: solid link: /about Archives: name: box-archive theme: solid link: /archives Categories: name: bookmark theme: solid link: /categories Tags: name: tags theme: solid link: /tags
yaml
3.2.2. 主页信息卡片
description
支持 Markdown 格式。
图标链接 iconLinks
配置和导航栏配置相同。
# Side info card card: enable: true description: | Description ... iconLinks: friendLinks: Argvchs: https://argvchs.github.io
yaml
3.2.3. 页脚
考虑到博客部署在服务器并使用自己域名的情况,按规定需要在网站下边添加备案消息。
如没有需要显示备案消息的可以关闭。
# Footer info footer: since: 2022 # Customize the server domain name ICP ICP: enable: false code: link:
yaml
3.3. 功能配置
3.3.1. Polyfill
使用 Polyfill.io 自动根据 UA 处理新的 JS API 兼容。
可以配合 Hexo-Babel 插件处理 JS 语法兼容。
# Polyfill # https://polyfill.io polyfill: enable: true features: - default
yaml
3.3.2. 代码高亮
使用 Highlight.js 代码高亮。
样式可以在这里选择,默认为 GitHub。
# Highlight.js # https://highlightjs.org highlight: enable: true style: github
yaml
3.3.3. 数学渲染
使用 KaTeX 渲染数学公式。
# KaTeX math rendering math: enable: false
yaml
3.3.4. 图片预览
简单的点击图片放大缩小的预览。
# Image preview preview: enable: true
yaml
3.3.5. 文章缩略
一般来说,缩略展示文档只需要在文档中添加 <!-- more -->
即可,缩略内容在显示全文中也会出现。
但考虑到不想把缩略内容放在正文里,就添加了此参数,在 Front-Matter 里设置。
支持 Markdown 格式。
description: | Normal _Italic_ **Strong**
yaml
3.3.6. 文章置顶
在 Front-Matter 里设置 pinned
作为置顶参数,越大越靠前,默认为 0。
3.3.7. 文章加密
使用 AES 加密算法,在 Front-Matter 里设置 secret
作为密码,使用请安装插件 Hexo-Helper-Crypto。
# Article encryption crypto: enable: false
yaml
3.3.8. 搜索
嵌入到 Archives 中的搜索。
目前只支持搜索文档标题。
# Search search: enable: false
yaml
3.4. 评论配置
3.4.1. giscus
giscus 是一个由 GitHub Discussions 支持的评论系统。
在 giscus.app 设置好各项后,会在下面生成一个 <script>
标签,在主题内填入即可。
# giscus # https://github.com/giscus/giscus giscus: enable: false src: https://giscus.app/client.js repo: repoID: category: categoryID: mapping: pathname strict: 0 reactionsEnabled: 1 emitMetadata: 0 inputPosition: bottom theme: preferred_color_scheme lang:
yaml
3.4.2. Gitalk
Gitalk 是一个基于 GitHub Issue 和 Preact 的评论系统。
由于 Gitalk 官方 CORS 代理用的是 Cloudflare,速度过慢,搭建 CORS 代理可以看这篇文章。
# Gitalk # https://github.com/gitalk/gitalk gitalk: enable: false clientID: # Default ClientID clientSecret: # Default ClientSecret repo: # The name of repository of store comments owner: # GitHub repo owner admin: # GitHub repo owner and collaborators, only these guys can initialize github issues language: # en, zh-CN, zh-TW, es-ES, fr, ru, de, pl and ko are currently available proxy: # CORS proxy
yaml
3.4.3. Waline
Waline 是一个简单、安全的评论系统。
详见:在 ParticleX 上使用 Waline | Yuzi's Blog
# Waline # https://github.com/walinejs/waline waline: enable: false serverURL: # Waline server address url, you should set this to your own link locale: # Locale: https://waline.js.org/guide/client/i18n.html#locale-option commentCount: true # If false, comment count will only be displayed in post page, not in home page pageview: false # Pageviews count, Note: You should not enable both `waline.pageview` and `leancloud_visitors` emoji: # Custom emoji - https://unpkg.com/@waline/emojis@1.2.0/weibo - https://unpkg.com/@waline/emojis@1.2.0/alus - https://unpkg.com/@waline/emojis@1.2.0/bilibili - https://unpkg.com/@waline/emojis@1.2.0/qq - https://unpkg.com/@waline/emojis@1.2.0/tieba - https://unpkg.com/@waline/emojis@1.2.0/tw-emoji meta: # Comment information, valid meta are nick, mail and link - nick - mail - link requiredMeta: # Set required meta field, e.g.: [nick] | [nick, mail] - nick lang: # Language, available values: en-US, zh-CN, zh-TW, pt-BR, ru-RU, jp-JP wordLimit: 0 # Word limit, no limit when setting to 0 login: enable # Whether enable login, can choose from 'enable', 'disable' and 'force' pageSize: 10 # Comment per page
yaml
3.4.4. Twikoo
Twikoo 是一个一个简洁、安全、免费的静态网站评论系统。
# Twikoo # https://github.com/imaegoo/twikoo twikoo: enable: false envID: region: path: location.pathname lang:
yaml
4. 写在最后
本项目采用 MIT 开源许可证,欢迎大家贡献,你可以随意打开一个 Issue 来进行提问,有任何改进想法都可以进行 Fork,期待您的 Pull Request!