用 Hexo + Redefine 搭建本站的全过程记录
前言
本站基于 Hexo 8 + Redefine 主题 搭建,托管在 Cloudflare Pages 上,全程纯静态、零运维。这篇文章记录完整搭建过程,也作为后续环境配置类文章的模板示例。
环境准备
硬性要求:Node.js ≥ 20.19.0(Hexo 8 的 engines 要求)。
node -v # v24.11.1 |
项目初始化
hexo init 无法在非空目录执行,因此采用「临时目录初始化 + 拷贝合并」的三步方案:
# 1. 在外层建临时空目录并初始化(跳过自动安装,稍后统一装) |
安装主题与功能插件
npm install hexo-theme-redefine \ |
然后在站点 _config.yml 里启用主题:
theme: redefine |
覆盖式主题配置(核心规则)
Redefine 的所有自定义只写根目录 _config.redefine.yml,不改动主题源文件,这样主题升级不会丢失配置。几个关键段落:
# 主题色:青绿 + 暖金 |
一个深合并陷阱:_config.redefine.yml 与主题默认值是深度合并——默认存在的键不会被「留空」删除。比如默认导航自带 Home 项,想隐藏它必须显式覆盖为 path: none,否则导航栏会出现两个「首页」。
页面模板:数据与页面分离
Redefine 的友链、相册、工具书签页都用「页面声明 + 数据文件」的模式,数据放 source/_data/:
| 页面 | 页面 front-matter | 数据文件 |
|---|---|---|
| 标签 | template: tags |
无需数据 |
| 分类 | template: categories |
无需数据 |
| 友链 | template: links |
_data/links.yml |
| 相册 | template: masonry |
_data/masonry.yml(瀑布流,建议写 width/height) |
| 工具书签 | type: bookmarks |
_data/bookmarks.yml(左侧分类锚点自动生成) |
以友链为例,source/link/index.md 只需:
--- |
友链数据写在 source/_data/links.yml:
- links_category: 框架与主题 |
404 页不用做——主题内置 generator 自动产出 404.html。
自定义样式与特效注入
主题没有开关的样式细节走 inject 注入。两个实战经验:
- 加载顺序:
inject.head注入的 CSS 排在主题样式之前,覆盖主题同名规则必须加!important(比如关闭横幅容器的will-change: transform,否则 GPU 合成层会让标题文字抗锯齿退化、看起来发虚)。 - swup 防重入:Redefine 的无刷新换页(swup)会重新执行注入脚本,特效脚本直接注入会在每次换页后叠加执行——粒子越来越密、监听器重复绑定。要用
window标志位包一层「只初始化一次」的加载器。
inject: |
部署到 Cloudflare Pages
推送到 GitHub 后,在 Cloudflare Pages 关联仓库即可自动构建:
- 构建命令:
npx hexo generate - 输出目录:
public - 环境变量:
NODE_VERSION=24
问题排查
hexo init报目录非空:按上面的三步方案处理。- 改了
_config.redefine.yml预览不生效:hexo server 不监听主题覆盖配置,Ctrl+C重启npx hexo server;提示端口占用就换-p 4001,或netstat -ano | findstr :4000找到 PID 后taskkill /F /PID清掉残留进程。 - 代码块没有颜色:站点配置
syntax_highlighter的注册名是highlight.js(带.js),写成highlight会导致高亮整体失效。 - 外部图片裂图:结构小图(favicon、友链头像)一律下载入库放
source/img/,外链不可控。
总结
整体流程:初始化 → 主题与插件 → _config.redefine.yml 覆盖配置 → 页面模板与数据文件 → 特效注入 → 推送自动部署。规范先行(本文对应 docs/PRD.md),后续迭代按 PRD 版本记录滚动更新。
后记:本站最初用 Butterfly 搭建,2026-09-06 迁移到 Redefine,本文已同步改写为现行技术栈。
- 标题: 用 Hexo + Redefine 搭建本站的全过程记录
- 作者: weary
- 创建于 : 2026-09-05 21:00:00
- 更新于 : 2026-09-06 20:00:00
- 链接: https://my-redenfine-hexo.pages.dev/2026/09/05/2026-09-05-hexo-redefine-blog-setup/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。