Hexo Butterfly 主题美化教程

适用对象:已经用 Hexo 搭好博客,并使用 Butterfly 主题,想把站点“变好看 + 更好用 + 更顺手维护”。

说明:Butterfly 的配置项很多,本文按「最常改、最影响观感、最容易踩坑」的顺序整理,并给出可直接抄用的配置片段。
参考资料主要来自 Butterfly 官方文档与主题仓库,以及若干配置/美化实践文章。:contentReference[oaicite:0]{index=0}


0. 美化前的原则(强烈建议先看)

  1. 站点配置与主题配置分离:把主题的 _config.yml 复制到根目录并命名 _config.butterfly.yml,之后只改这个文件,升级主题更省心。:contentReference[oaicite:1]{index=1}
  2. 自定义样式不要魔改主题源码:优先走 inject 注入自定义 CSS/JS;确实需要改源码时再动。:contentReference[oaicite:2]{index=2}
  3. 每次改完都要本地预览hexo s 看效果,确认无误再 hexo d -g

1. 推荐的目录结构(让后期维护更舒服)

在 Hexo 根目录建议这样组织:


.
├─ _config.yml # 站点配置(标题、作者、URL、部署等)
├─ _config.butterfly.yml # 主题配置(美化主要都在这)
├─ source/
│ ├─ _posts/ # 文章
│ ├─ about/ # 页面
│ ├─ css/
│ │ └─ custom.css # 自定义样式(推荐)
│ └─ js/
│ └─ custom.js # 自定义脚本(推荐)
└─ themes/
└─ butterfly/ # 主题本体(尽量少改)

Butterfly 官方也建议使用 _config.butterfly.yml 来降低升级成本。:contentReference[oaicite:3]{index=3}


2. 快速美化第一步:注入自定义 CSS/JS(最常用)

Butterfly 支持 inject 注入外部文件(不改源码也能“魔改”)。:contentReference[oaicite:4]{index=4}

2.1 在 source/css/custom.css 写样式

新建文件:source/css/custom.css

示例(先给你一套“常用观感提升”模板,后面会继续加):

/* ===== 全局:字体与排版微调(按需改) ===== */
:root {
--global-font-size: 16px;
}

/* 文章内容宽度 & 行高(阅读更舒服) */
.post-content {
line-height: 1.85;
}

/* 卡片阴影更柔和(更“现代”一点) */
.card-widget,
.layout > div:first-child:not(.recent-posts),
#recent-posts > .recent-post-item {
box-shadow: 0 8px 30px rgba(0,0,0,.08);
}

/* 图片圆角(更统一) */
img {
border-radius: 10px;
}

2.2 在 _config.butterfly.yml 注入

inject:
head:
- <link rel="stylesheet" href="/css/custom.css">
bottom:
- <script src="/js/custom.js"></script>

inject 的思路与注意事项可以参考一些进阶美化文章(尤其是引入外部文件与 JS 的位置)。(博客园)


3. 站点“第一眼”美化:主页头图 / 背景 / 暗色模式

Butterfly 版本与配置会迭代,建议随时对照官方文档对应章节。(Butterfly)

3.1 头图(page header / cover)与站点背景

通常你会在主题配置里找到与 头图、背景、封面 相关的配置项(例如全局默认头图、各页面头图、是否显示/透明等)。

你可以做的美化方向:

  • 选一张高质量、风格统一的头图(建议 1920×1080 或更大)
  • 主页头图 + 文章页头图可分开(更有层次)
  • 背景建议:纯色 / 微纹理 / 浅渐变(花图做背景会影响阅读)

一个常见的“清爽感”技巧:让页脚和头图更通透(示例来自社区魔改实践)(Yan Zhang’s blog)

/* 页脚与头图透明(按主题实际结构可调整) */
#footer {
background: transparent !important;
}
#page-header {
background: transparent !important;
}

3.2 暗色模式(Dark Mode)

暗色模式非常“加分”,也能提升夜间阅读体验。Butterfly 自带相关能力(一般在配置里开关/策略)。(Butterfly)

美化建议:

  • 暗色下减少纯黑,偏深灰更舒适
  • 链接、代码块颜色要保证对比度
  • 图片可加轻微边框/阴影避免“融进背景”

4. 导航栏与菜单:让访客更愿意逛

你大概率会改的:

  • 菜单结构(主页/归档/分类/标签/友链/关于)
  • 图标(Font Awesome)
  • 二级菜单(生活/相册/项目等)

社区常见写法示例(可按你站点路径改):(CSDN博客)

menu:
主页: / || fas fa-home
归档: /archives/ || fas fa-archive
分类: /categories/ || fas fa-folder-open
标签: /tags/ || fas fa-tags
友链: /links/ || fas fa-link
关于: /about/ || fas fa-heart

建议

  • 菜单不要太长:6~8 个足够
  • 把高频入口放前面(文章、归档、分类、标签)
  • “关于/友链/留言”放后面

5. 主页文章卡片:卡片风格、摘要、封面图(质感核心)

Butterfly 的卡片 UI 是它的亮点之一。(Butterfly)

5.1 文章封面图(Cover)

建议你为每篇文章设置封面图(统一风格):

  • 统一比例:16:9 或 4:3
  • 同一主题系列文章可用相似风格图
  • 图源建议:自己做/摄影/免费版权站(注意版权)

5.2 摘要策略

摘要可选:

  • 自动截取(省事)
  • 在文章里手动 <!-- more -->(更可控)
  • 首页只显示标题+少量摘要(更干净)

推荐:重要文章用 <!-- more -->,日常记录自动截取。


6. 侧边栏与个人信息:头像、简介、社交链接

侧边栏是“个人名片”,建议:

  • 头像:高清、统一风格
  • 简介:一句话说明你写什么(技术 / 生活 / 读书 / 项目)
  • 社交:GitHub、邮箱、B 站等(别堆太多)

你可以把站点固定信息放 _config.yml,主题展示相关放 _config.butterfly.yml(官方/社区都提倡这样分离)。(CSDN博客)


7. 代码块与高亮:技术博客观感的关键

技术博客最容易“丑”的地方就是代码块:

建议方向:

  • 选择一个你喜欢的高亮主题(浅色/暗色各一套)
  • 让代码块与正文区分明确(背景、圆角、行距)
  • 开启行号(可选,长代码更友好)
  • 复制按钮(强烈推荐)

Butterfly 通常提供代码高亮相关配置项,你可在主题配置里搜索 highlight / prism / code 等关键词进行调整(不同版本项名略有差异)。(Butterfly)


8. 评论系统(可选,但“互动感”很加分)

常见选择(按你偏好):

  • Waline(自建/无登录也能评论)
  • Twikoo
  • Giscus(GitHub Discussions 驱动,偏程序员风格)
  • Valine(老牌,但需要 LeanCloud)

建议你选一个“维护成本低”的:GiscusWaline

Butterfly 对多种评论系统有支持/适配说明,具体按官方文档对应章节配置。(Butterfly)


9. 搜索(强烈建议开):站内内容多了后必备

常见方案:

  • Local Search(本地搜索,简单易用)
  • Algolia(更强,但需要配置服务)

你文章超过 30 篇就能明显感受到搜索的价值。


10. PJAX 与“插件不生效”坑:美化时最常踩

Butterfly 内置 PJAX(无刷新切换),体验更顺滑,但容易导致:

  • 某些第三方 JS 在切换页面后不重新执行(比如页脚动画、看板娘等)
  • 需要给脚本加 data-pjax 或在 PJAX 回调里重新初始化

例如“页脚养鱼”在 PJAX 下不生效的修复思路:给脚本加 defer data-pjax。(天澄拾光)

示例(仅示意):

inject:
bottom:
- <script src=".../fishes.js" defer data-pjax></script>

如果你开启 PJAX,任何“只在首次加载执行一次”的脚本都要重点测试。(腾讯云)


11. 一套“推荐美化清单”(照着做就会明显变好看)

11.1 必做(10 分钟见效)

  • 使用 _config.butterfly.yml 管理主题配置(避免升级痛苦)(Butterfly)
  • 注入 custom.css:圆角、阴影、排版、图片样式
  • 调好菜单结构(不超过 8 个入口)
  • 统一封面图风格 + 摘要策略

11.2 进阶(1~2 小时)

  • 暗色模式适配(尤其代码块、引用块)
  • 评论 + 搜索(增强可用性)
  • PJAX 开启后逐个排查脚本兼容

11.3 高级(长期迭代)

  • 自定义页面:友链页、项目页、相册页
  • 加“阅读进度”“回到顶部”“文章目录”细节
  • 性能优化:图片压缩、懒加载、CDN

12. 附:可直接抄用的“美化模板片段”

12.1 引入自定义 CSS/JS

inject:
head:
- <link rel="stylesheet" href="/css/custom.css">
bottom:
- <script src="/js/custom.js"></script>

12.2 custom.css(建议从这个起步)

/* 全局圆角与阴影(更“卡片化”) */
.card-widget,
#recent-posts > .recent-post-item {
border-radius: 16px;
box-shadow: 0 10px 35px rgba(0,0,0,.08);
}

/* 正文更易读 */
.post-content {
line-height: 1.85;
font-size: 16px;
}

/* 图片统一风格 */
.post-content img {
border-radius: 12px;
box-shadow: 0 8px 30px rgba(0,0,0,.12);
}

13. 结语:写给未来的自己

  • 美化不是一次性工程:先把“基础观感”打到 80 分,再慢慢加功能与细节。
  • 遇到改不动/改崩了:先 git diff 看改了啥;再 hexo clean && hexo s 排查。
  • Butterfly 的配置项多但很强,遇到不确定的项,优先查官方文档与仓库说明。(Butterfly)

参考资料(建议收藏)

  • Butterfly 官方文档站点与 Get Started(安装、升级建议、配置入口)(Butterfly)
  • Butterfly GitHub 仓库(版本、更新、Issues)(GitHub)
  • 社区美化与配置实践(可抄作思路,但注意与你的版本差异)(Yime’s Blog)