Hexo + Butterfly 搭建教程 01:安装、配置与本地预览
第 1 篇,共 6 篇 · 系列总目录 · 上一篇:无 · 下一篇:导航、首页与文章页配置
前言
这个博客最初也是从一套几乎没有修改的 Hexo + Butterfly 开始的。随着文章和组件逐渐增加,它后来拥有了亮暗主题背景、音乐播放器、分类磁贴、全局搜索、随机封面图池和自定义页脚等功能。
不过,在添加这些功能之前,最重要的仍然是建立一套稳定、容易维护的基础结构。
本系列将从一个空目录开始,逐步完成:
- Hexo 博客的创建与运行
- Butterfly 主题的安装和基础配置
- 首页、文章页、分类、标签与友链页面
- 一图流背景和明暗主题美化
- 通过 CSS 与 JavaScript 添加自定义组件
- 部署、更新日志和长期维护
本文是系列第一篇,只处理安装、配置关系和首次本地预览。完成以后,你会得到一个可以正常写文章、切换主题并继续扩展的 Butterfly 博客。
本文示例基于 Hexo 7.3 与 Butterfly 5.4。主题后续版本可能调整配置名称,请同时参考文章末尾的官方文档。
一、开始之前需要准备什么
Hexo 是一个静态网站生成器。我们用 Markdown 写文章,Hexo 将文章、主题模板和配置组合起来,生成可以部署到 GitHub Pages、Cloudflare Pages 等平台的静态网页。
Butterfly 则是负责页面外观和交互的 Hexo 主题。
整个过程可以简化为:
1 | |
开始前请安装:
打开终端,确认环境可用:
1 | |
只要三条命令都能输出版本号,就可以继续。
Node.js 应该选择哪个版本
建议选择 Node.js 官网当前仍受支持的 LTS 版本,不要使用已经停止维护的旧版本。Hexo、主题或插件的报错,有时并不是配置错误,而是 Node.js 版本过旧造成的。
二、创建一个新的 Hexo 博客
1. 安装 Hexo 命令行工具
可以把 Hexo CLI 安装到全局:
1 | |
然后创建博客:
1 | |
如果不希望安装全局命令,也可以使用 npx:
1 | |
hexo init的目标文件夹最好为空。不要在已经存放重要文件的目录里直接初始化。
2. 认识项目目录
初始化完成后,主要目录如下:
1 | |
它们分别负责:
| 路径 | 作用 |
|---|---|
_config.yml |
Hexo 站点级配置 |
package.json |
npm 依赖和运行命令 |
source/_posts |
Markdown 文章 |
source |
页面、图片和自定义静态资源 |
scaffolds |
新建文章时使用的模板 |
themes |
使用 Git 下载的本地主题目录 |
public |
执行生成命令后产生的网站文件 |
public 是自动生成目录,不应该在里面直接修改文章或样式。下一次执行 hexo clean 后,其中的手动修改会全部消失。
3. 第一次启动
1 | |
终端通常会显示:
1 | |
在浏览器打开这个地址,就可以看到默认主题。
停止服务时按:
1 | |
三、安装 Butterfly
Butterfly 可以通过 npm 或 Git 安装。本文使用 npm,因为依赖关系更加清晰,更新也比较方便。
在 Hexo 根目录执行:
1 | |
安装完成后,npm 版本的主题通常位于:
1 | |
它不会出现在 themes/butterfly 中,这是正常现象。
启用主题
打开 Hexo 根目录的 _config.yml,找到:
1 | |
修改为:
1 | |
然后重新生成并启动:
1 | |
如果页面已经变成 Butterfly 的卡片式布局,说明主题安装成功。
四、为什么需要 _config.butterfly.yml
Butterfly 自带一份主题默认配置:
1 | |
我们当然可以直接修改它,但不应该这样做。执行 npm update 或重新安装依赖时,node_modules 中的修改可能被覆盖。
更安全的方法,是把主题配置复制到 Hexo 根目录,并命名为:
1 | |
Windows PowerShell 可以执行:
1 | |
macOS 或 Linux 可以执行:
1 | |
此后,个人设置都写在根目录的 _config.butterfly.yml 中。
Hexo 会合并主题默认配置和个人主题配置;遇到相同字段时,根目录 _config.butterfly.yml 的优先级更高。
复制配置之后,不要删除主题包中的原始
_config.yml。它仍然是主题的默认配置来源。
五、三个配置层分别负责什么
初次使用 Hexo 时,最容易混淆的是 _config.yml、_config.butterfly.yml 和文章顶部的 Front Matter。
1. Hexo 的 _config.yml
它负责整个站点的基础数据和生成规则,例如:
1 | |
这里通常配置:
- 网站名称和作者
- 网站正式地址
- 文章永久链接格式
- 每页文章数量
- 当前使用的主题
- 分类、标签和归档生成规则
- 部署目标
2. Butterfly 的 _config.butterfly.yml
它负责主题外观和组件,例如:
- 导航菜单
- Logo 和头像
- 首页背景与文章封面
- 亮暗主题
- 侧栏卡片
- 文章目录
- 评论与搜索
- 页面动画
- 自定义 CSS 和 JavaScript
3. 每篇文章的 Front Matter
Markdown 最上方由 --- 包围的区域用于设置单篇文章:
1 | |
可以把三者记成:
1 | |
六、完成第一轮基础配置
Butterfly 的完整配置很长,不需要第一次就把所有选项都打开。我们先完成最容易看到效果的部分。
1. 设置 Logo 和导航栏
在 _config.butterfly.yml 中修改:
1 | |
菜单格式可以理解为:
1 | |
图片应放在 Hexo 根目录的 source/img 中:
1 | |
生成网站后,它的访问地址就是:
1 | |
2. 设置头像和社交链接
1 | |
社交链接由四部分组成:
1 | |
3. 设置首页背景
1 | |
建议把背景图片转换为 WebP,以降低文件大小。桌面背景最好准备较高分辨率,同时还要考虑手机竖屏裁切;后续文章会单独介绍桌面端、移动端和暗色主题使用不同背景的方法。
4. 设置首页副标题
1 | |
effect: true 会启用打字机动画。source: false 表示不读取第三方随机句子接口,只显示自己配置的内容。
5. 设置文章卡片布局
1 | |
index_layout: 3 表示首页文章封面左右交替。
摘要方式 method: 2 表示:
- 文章存在
description时优先使用; - 没有时从正文自动截取。
6. 设置蓝色主题
1 | |
颜色值建议始终放在引号中,避免 YAML 把 # 后面的内容识别成注释。
7. 启用暗色模式
1 | |
这样网站默认使用亮色模式,同时在右侧工具栏提供切换按钮。
七、创建归档、标签和分类页面
归档通常由 Hexo 自动生成。标签页和分类总览页可以手动创建:
1 | |
打开 source/tags/index.md:
1 | |
打开 source/categories/index.md:
1 | |
只有文章 Front Matter 中真正填写了分类和标签,它们才会出现在对应页面。
八、创建并检查第一篇文章
执行:
1 | |
Hexo 会在 source/_posts 中创建 Markdown 文件。加入一些内容:
1 | |
<!-- more --> 用于指定首页摘要的结束位置。它不是必须的,但能让首页卡片更加可控。
重新启动本地服务器:
1 | |
检查以下内容:
- 首页是否出现文章
- 封面和简介是否正确
- 分类、标签能否点击
- 导航栏是否跳转正确
- 亮暗主题能否切换
- 手机宽度下是否正常排版
九、常用命令与 npm 脚本
Hexo 原生命令如下:
1 | |
含义分别是:
| 命令 | 作用 |
|---|---|
clean |
删除上一次生成的缓存和 public |
generate |
生成静态网站 |
server |
启动本地预览 |
deploy |
按部署配置发布网站 |
也可以在 package.json 中定义更容易记忆的脚本:
1 | |
之后就可以使用:
1 | |
npm run deploy 并不是另一种部署技术,它只是执行 package.json 中预先定义的一组命令。它还可以在部署前加入检查、生成更新日志等自动操作。
十、常见问题
1. localhost:4000 无法打开
先确认终端中的 Hexo Server 没有退出,并检查 4000 端口是否被其他程序占用。也可以换一个端口:
1 | |
然后访问:
1 | |
2. 页面显示 Pug 源代码或模板报错
检查渲染器:
1 | |
安装后重新执行:
1 | |
3. 修改配置后没有变化
可能原因包括:
- YAML 缩进错误
- 改错了配置文件
- 本地服务器没有重新启动
- 浏览器仍在使用缓存
- 修改了
public,随后又被重新生成覆盖 - 使用
_config.butterfly.yml后仍在修改主题包内的配置
可以依次执行:
1 | |
4. YAML 报错
YAML 使用空格表示层级,不要使用 Tab:
1 | |
下面这种写法层级不正确:
1 | |
包含冒号、# 或其他特殊字符的文本,最好使用引号包裹。
5. npm 安装速度慢或失败
先检查 Node.js、npm 和网络环境,不要一开始就反复删除整个项目。可以通过下面的命令检查依赖状态:
1 | |
如果项目已经有 package-lock.json,在其他电脑恢复环境时应一起保留它。
十一、不要直接修改这些位置
为了以后能顺利更新主题,尽量不要直接修改:
1 | |
个人文件建议放在:
1 | |
主题配置放在:
1 | |
后续需要添加自定义样式和脚本时,可以使用 Butterfly 的 inject 配置加载,而不是修改主题本体:
1 | |
这也是本系列后续制作背景动画、音乐播放器和分类磁贴时采用的主要方式。
十二、下一步做什么
到这里,一个基础的 Hexo + Butterfly 博客已经搭建完成:
- Hexo 可以正常生成页面
- Butterfly 已安装并启用
- 个人配置与主题包分离
- 导航、头像、背景和主题色已经可以修改
- 标签和分类页面已经建立
- 已经能够创建和预览文章
下一篇将继续介绍 Butterfly 的导航栏、首页文章卡片、文章 Front Matter、封面、侧栏和页脚配置,并结合本站当前配置说明每一项修改会产生什么效果。
参考资料与声明
本文参考 Butterfly 官方文档,并结合本站实际搭建、配置和维护过程重新整理。不同版本的 Hexo、Butterfly 和第三方插件可能存在配置差异,请以对应版本的官方说明为准。
本文部分结构与文字由 AI 协助整理,配置示例由作者结合实际项目进行检查。
第 1 篇,共 6 篇 · 返回系列总目录 · 下一篇:导航、首页与文章页配置






