博客美化todo
1 | # 清理缓存 |
美化
优化文章永久链接为数字编号
Hexo博客进阶教程(一)| 优化文章永久链接为数字编号-腾讯云开发者社区-腾讯云
安装插件
1 | npm install hexo-abbrlink --save |
替换配置文件_config.yml以下内容即可
1 | # permalink: :year/:month/:day/:title/ |
主题颜色、宽度设置、图片设置、遮罩效果
1. 主题颜色(已恢复默认)
修改 themes/butterfly/_config.yml 的 theme_color 部分,启用并设置为深紫色系配色方案。
当前状态:恢复为 Butterfly 主题默认蓝色 (#49B1F5),以保证远程部署样式一致性。
2. 页面宽度设置
修改 themes/butterfly/source/css/_page/common.styl 的 .layout 部分:
1 | max-width: 70% # 将原来的 1200px 改为 70% |
3. 图片设置
修改 themes/butterfly/_config.yml 的图片相关配置:
favicon:/img/favicon.png- 网站图标avatar.img:/img/avatar.png- 头像avatar.effect:true- 启用头像特效default_top_img:/img/banner.jpg- 所有页面通用横幅index_img:/img/banner.jpg- 首页横幅(同上)archive_img:/img/banner.jpg- 归档页横幅(同上)tag_img:/img/banner.jpg- 标签页横幅(同上)category_img:/img/banner.jpg- 分类页横幅(同上)footer_img:rgba(45, 10, 61, 0.2)- 页脚背景background:/img/background.jpg- 网站背景cover.default_cover:/img/default-cover.png- 默认封面error_img.flink:/img/flink-404.jpg- 友链错误图error_img.post_page:/img/post-404.jpg- 文章页错误图error_404.background:/img/404-bg.png- 404页面背景
4. 遮罩效果
修改 themes/butterfly/_config.yml 的 mask 部分:
1 | mask: |
5. 深色模式背景优化 (New)
修改 source/css/custom.css,避免深色模式下背景纯黑:
1 | [data-theme="dark"] { |
所需图片文件(放在 source/img/ 目录下):
favicon.png- 网站图标(浏览器标签页图标,32x32)avatar.png- 侧边栏头像(200x200)✅ 已添加background.jpg- 网站主背景(1920x1080)✅ 已添加banner.jpg- 通用顶部横幅(1920x600)✅ 已添加default-cover.png- 文章默认封面(1200x600,文章卡片缩略图)flink-404.jpg- 友链页面加载失败图(400x300)post-404.jpg- 文章页面加载失败图(800x600)404-bg.png- 404错误页面背景(1920x1080)
共需8张图片
已添加(3/8):
- ✅
avatar.png- 头像 - ✅
banner.jpg- 横幅 - ✅
background.jpg- 背景
导航栏设置
1. 网站基本信息设置
修改根目录 _config.yml:
- 设置网站标题、副标题、描述、关键词
- 配置 abbrlink 为 hex 格式
- 添加 nofollow 配置
2. 导航栏配置
修改 themes/butterfly/_config.yml 的 nav 和 menu 部分:
logo:/img/favicon.png- 导航栏Logofixed:true- 固定导航栏bg:default- 导航栏背景色(已恢复默认)text_color:default- 文字颜色hover_color:default- 悬停颜色
3. 菜单项配置
1 | menu: |
4. 创建页面
1 | hexo new page categories # 分类页 |
在对应的 index.md 文件添加 type 字段:
source/categories/index.md:type: "categories"source/tags/index.md:type: "tags"
5. 安装插件
1 | npm install hexo-generator-search --save # 搜索插件 |
6. 搜索功能配置
修改 themes/butterfly/_config.yml 的 search 部分:
use:local_search- 使用本地搜索preload:true- 页面加载时预加载搜索数据
7. 文件修改
- ✅
themes/butterfly/layout/includes/header/nav.pug- 导航栏布局(已修改) - ⚠️
themes/butterfly/source/css/_layout/head.styl- 导航栏样式(需手动修改) - ⚠️
themes/butterfly/source/css/_search/local-search.styl- 搜索样式(需手动修改)
注意: 样式文件较大,建议参考原教程手动修改或等待进一步指示。
白天黑夜转换
【Hexo博客】添加Butterfly主题昼夜模式转换动画 | 百里飞洋
操作步骤
新建文件
themes/butterfly/layout/includes/sun_moon.pug- SVG图标themes/butterfly/source/css/_layout/sun_moon.styl- 动画样式themes/butterfly/source/js/sun_moon.js- 切换逻辑
修改模板文件
themes/butterfly/layout/includes/head.pug- 末尾添加include ./sun_moon.pugthemes/butterfly/layout/includes/rightside.pug- 替换原昼夜切换按钮为新按钮
修改配置文件
themes/butterfly/_config.yml- 在inject.bottom添加<script src="/js/sun_moon.js"></script>
重新生成
1
hexo clean && hexo g && hexo s
自定义背景图
修改 themes/butterfly/source/css/_mode/darkmode.styl,在第49行左右添加:
1 | #web_bg |
将图片放在 themes/butterfly/source/img/ 目录下,修改路径即可。
鼠标右键
首页
网站副标题
修改 themes/butterfly/_config.yml 的 subtitle 部分:
enable: true- 启用副标题effect: true- 启用打字机效果loop: true- 循环播放source: false- 不使用第三方API(可选 1-hitokoto.cn, 2-api.aa1.cn, 3-jinrishici.com)sub- 副标题内容列表(支持HTML,可添加图标)
效果: 首页横幅下方会显示打字机效果的副标题,内容循环播放。✅
侧边栏
友链
组件
字体&&字数统计
1. 字数统计
安装插件:
1 | npm install hexo-wordcount --save |
修改 _config.butterfly.yml 的 wordcount 部分:
1 | wordcount: |
电子时钟插件
功能说明
在侧边栏显示动态电子时钟卡片,包含:
- ⏰ 实时日期和时间
- 🌡️ 当前温度和天气状况
- 💧 湿度信息
- 📍 地理位置(基于IP自动获取,支持设置默认位置)
技术实现
- Hexo 插件:
hexo-butterfly-clock-anzhiyu(新版,功能更强) - 天气数据源:和风天气 API (QWeather)
- 地理定位:高德地图 API (Gaode Map)
- 数据更新:实时自动更新
- CDN 加速:使用 cdn.cbd.int 加速资源加载
1. 安装插件
卸载旧版(如果有):
1 | npm uninstall hexo-electric-clock |
安装新版插件:
1 | npm install hexo-butterfly-clock-anzhiyu --save |
2. 申请 API 密钥
和风天气 API(必需):
- 访问 https://dev.qweather.com/ 注册账号
- 登录控制台 https://console.qweather.com/
- 创建项目 → 选择 Web API 类型
- 复制 API KEY(免费版:1000次/天)
高德地图 API(必需):
- 访问 https://console.amap.com/dev/key/app 注册账号
- 创建应用 → 选择 Web服务 类型
- 添加 Key 并复制保存
3. 配置
在根目录 _config.yml 添加:
1 | electric_clock: |
4. 参数说明(简要)
enable: 是否启用插件(true/false)priority: 过滤器优先级(数字越小执行越早,默认 10)enable_page: 生效页面(all=全局,/=首页,/posts/=文章页)exclude: 排除页面(数组,可屏蔽指定页面)layout.type: 挂载类型(class 或 id)layout.name: 挂载容器名称(sticky_layout)layout.index: class 容器的索引位置(从 0 开始)loading: 加载动画图片 URLclock_css: 时钟样式 CDN 地址clock_js: 时钟脚本 CDN 地址ip_api: 获取 IP 和位置的 APIqweather_key: 和风天气 API 密钥(必需)gaud_map_key: 高德地图 API 密钥(必需)default_rectangle: 是否使用固定位置(false=自动获取访问者位置)rectangle: 默认位置坐标(访问者位置获取失败时使用)
5. 参数详细释义表
| 参数 | 备选值/类型 | 释义 |
|---|---|---|
priority |
number | 【可选】过滤器优先级,数值越小,执行越早,默认为 10 |
enable |
true/false | 【必选】控制开关 |
enable_page |
path/all | 【可选】填写想要应用的页面的相对路径(即路由地址),如根目录填 /,分类页面填 /categories/。若要应用于所有页面,填 all,默认为 all |
exclude |
path | 【可选】填写想要屏蔽的页面,可以多个。原理是将屏蔽项的内容逐个放到当前路径去匹配,若当前路径包含任一屏蔽项,则不会挂载 |
layout.type |
id/class | 【可选】挂载容器类型,填写 id 或 class,不填则默认为 id |
layout.name |
text | 【必选】挂载容器名称 |
layout.index |
0 和正整数 | 【可选】前提是 layout.type 为 class,因为同一页面可能有多个 class,此项用来确认究竟排在第几个顺位 |
loading |
URL | 【可选】电子钟加载动画的图片 |
clock_css |
URL | 【可选】电子钟样式 CDN 资源 |
clock_js |
URL | 【可选】电子钟执行脚本 CDN 资源 |
ip_api |
URL | 【可选】获取时钟 IP 的 API |
qweather_key |
text | 【可选】和风天气 key(实际使用中为必需) |
gaud_map_key |
text | 【可选】高德地图 web 服务 key(实际使用中为必需) |
default_rectangle |
true/false | 【可选】开启后将一直显示 rectangle 位置的天气,否则将获取访问者的地理位置与天气 |
rectangle |
text | 【可选】获取访问者位置失败时会显示该位置的天气,同时该位置为开启 default_rectangle 后的位置。格式:经度,纬度(如:112.982279,28.19409) |
效果: 在侧边栏显示电子时钟和天气信息 ✅
注意事项:
- 两个 API 都是免费的,个人博客使用无压力
- 如果显示
undefined,检查 API 密钥是否正确填写 - 天气数据每隔一段时间自动刷新
页脚美化
1. 自定义页脚内容
修改 _config.butterfly.yml 的 footer 部分:
- 禁用
owner和copyright - 使用
custom_text自定义 HTML 结构 - 添加 Busuanzi 统计标签
1 | footer: |
GitHub 贡献度日历
- 安装插件:
1 | npm i hexo-githubcalendar --save |
- 修改根目录
_config.yml(不是主题配置),添加以下内容(已恢复默认绿色):
1 | # Hexo Github Calendar |
评论系统 (Giscus)
修改 _config.butterfly.yml (以及主题配置文件):
- 启用 Giscus:
1 | comments: |
- 配置 Giscus 参数(已恢复官方主题):
1 | giscus: |
故障排查 (Troubleshooting)
远程部署仍显示旧样式(紫色)
现象:本地修改配置为蓝色后,远程部署仍显示旧的紫色样式。
原因:Hexo 的 public 缓存未清除,导致 CSS 文件中残留旧的 Hex 颜色代码(如 #6a0dad)。
解决:
- 删除
public文件夹和db.json。 - 重新运行生成和部署命令:
1 | hexo clean && hexo generate && hexo deploy |
深色模式下卡片过黑
现象:深色模式下,文章卡片和侧边栏卡片背景色接近纯黑,视觉效果不佳。
原因:source/css/custom.css 中深色模式背景色设置过暗。
解决:修改 source/css/custom.css:
1 | [data-theme="dark"] { |
首页不蒜子统计不显示数值
现象:文章页底部统计显示正常,但首页只显示文字不显示具体数值。
原因:不蒜子脚本未正确加载。
解决:在 _config.butterfly.yml 和 themes/butterfly/_config.yml 的 inject.bottom 添加:
1 | inject: |
注意:需要同时修改两个配置文件以确保远程部署生效。
电子时钟显示 undefined
现象:电子时钟显示 undefined *C、💧 undefined、位置显示为 Unknownlocation。
原因:未配置天气和地图 API 密钥。
解决:
- 申请和风天气 API:https://dev.qweather.com/
- 申请高德地图 API:https://console.amap.com/dev/key/app
- 在
_config.yml中填入密钥:
1 | electric_clock: |
- 重新生成:
hexo clean && hexo g && hexo s
备注:两个 API 都是免费的,注册即可使用。
参考资料


