Hexo 安装完后,默认的 landscape 主题比较朴素,想要一个好看的博客界面,就需要换主题。Hexo 的主题生态非常丰富,从极简到华丽、从静态到动态交互,应有尽有。本文记录一下 Hexo 主题的安装与配置流程,并以我自己在用的 Reimu 主题为例做演示。
1. 查找主题
Hexo 官方维护了主题市场,地址是:
上面有几百款主题,支持按标签筛选(比较推荐FlatPaper Nexmoe Mustom Kira Researcher ParticleX Materialis等,属于个人眼光哈)。挑选主题时建议关注以下几点:
| 维度 | 说明 |
|---|---|
| Star 数 | GitHub Star 越多,说明用的人越多,维护相对积极 |
| 最近更新 | 看最后一次 commit 时间,太久没更新的主题容易有兼容性问题 |
| Hexo 版本要求 | 主题 README 里一般会注明支持的 Hexo 版本 |
| 功能需求 | 是否需要评论系统、搜索、暗色模式、Pjax 等 |
| 文档完整度 | 配置项多不多、文档是否详细 |
我自己选主题时,第一眼被 Reimu 的东方 Project 风格吸引,再加上它内置了 Pjax、多种评论系统、APlayer 音乐播放器、暗色模式等,功能非常齐全,就果断换上了。
2. 安装主题(以 Reimu 为例)
2.1 下载主题
进入 Hexo 项目的 themes 目录,把主题克隆下来:
cd 你的博客目录 |
如果是 pnpm 用户,也可以直接下载 release 压缩包解压到 themes/reimu/ 目录。
2.2 启用主题
修改项目根目录的 _config.yml:
# 找到 theme 字段,把 landscape 改成 reimu |
保存后运行 hexo server 预览,如果看到页面已经变成新主题的风格,说明切换成功。
2.3 安装主题依赖
这一步非常关键,很多报错都出在这里。
Reimu 主题依赖一些额外的 npm 包(如 hexo-component-inferno、hexo-renderer-inferno、babel-plugin-inferno 等)。直接运行:
pnpm install |
如果用的是 pnpm,可能会遇到 Babel 插件找不到 的报错:
Error: Cannot find module 'babel-plugin-inferno' |
这是因为 pnpm 的依赖隔离机制导致的。在项目根目录创建 .npmrc:
shamefully-hoist=true |
然后重新安装:
pnpm install |
2.4 版本兼容
Reimu 主题目前要求 Hexo ^7.0.0,如果你的 Hexo 是 8.x 版本,启动时会报版本不匹配警告。解决方式是降级 Hexo:
pnpm install hexo@^7.0.0 |
3. 配置主题
3.1 复制主题配置
每个主题都有自己的配置项,Reimu 的配置文件在 themes/reimu/_config.yml。但不要直接修改主题目录下的配置文件(否则主题升级时会被覆盖),而是把配置复制到项目根目录:
cp themes/reimu/_config.yml _config.reimu.yml |
Hexo 会自动合并 _config.reimu.yml 和主题默认配置。
3.2 常用配置项
以下是 Reimu 主题中比较实用的几个配置:
站点信息
# 网站标题、副标题 |
导航菜单
menu: |
评论系统
Reimu 支持多种评论系统(Waline、Giscus、Utterances、Beaudar 等),选一个启用即可:
comment: |
音乐播放器
aplayer: |
注意:
meting_api的 URL 必须包含:server、:type、:id、:r占位符,否则 meting-js 无法正确替换参数。
搜索
search: |
3.3 创建独立页面
Reimu 主题默认有 about(关于)和 friend(友链)页面,需要手动创建:
hexo new page about |
然后在 source/about/index.md 和 source/friend/index.md 中填写内容。
4. 切换主题的正确姿势
如果你想换一个主题,步骤如下:
- 下载新主题到
themes/新主题名/ - 修改
_config.yml中的theme字段 - 安装新主题的依赖
- 复制新主题的配置文件到
_config.新主题名.yml hexo clean清理缓存(重要!)hexo server预览效果
5. 常见问题汇总
Q1: 页面白屏,样式没加载
检查 _config.yml 中的 url 和 root 是否填写正确。如果是项目站点(如 drda-blog):
url: https://你的用户名.github.io/drda-blog |
Q2: 图标显示不出来
Reimu 主题默认使用 iconfont,要使用 Font Awesome 需要:
icon_font: false # 关闭 iconfont,启用 fontawesome |
菜单图标用十六进制代码(如 f015、f187),不要带反斜杠。
Q3: 部署后页面还是旧的
每次换主题或修改主题配置后,务必执行:
hexo clean; hexo generate; hexo deploy |
hexo clean 会清除数据库和已生成的文件,避免缓存导致旧页面残留。
Q4: 主题升级会覆盖配置吗?
如果把配置写在 _config.reimu.yml(项目根目录),升级主题时不会被覆盖。如果直接改 themes/reimu/_config.yml,升级后配置会丢失。
6. 写在最后
Hexo 的主题生态非常丰富,选主题时建议先本地预览,确认功能符合需求后再正式启用。Reimu 主题功能很全,但也意味着配置项比较多,初次上手可能需要花点时间熟悉。
如果你也打算用 Reimu,推荐先通读一遍 官方 README,里面每个配置项都有详细说明。遇到问题优先看文档,其次搜 GitHub Issues,一般都能找到解决方案。
相关阅读:
说些什么吧!