我的博客主题折腾史
我的博客主题折腾史
从零开始,一路换过 minima → midnight → Chirpy → Minimal Mistakes, 折腾了三天,最后发现——原来 GitHub Actions 根本不需要改。
缘起
2026 年 5 月 10 日,我搭好了自己的 GitHub Pages 博客。
最初的想法很简单:找个地方写写算法题解,记录学习和生活。然后我就一头扎进了主题的深渊。
第一阶段:minima(默认主题)
1
commit 26e9a6e add: add a theme
最早的 _config.yml 只有一行:
1
theme: minima
minima 是 GitHub Pages 的默认主题,极简风格。博客的样子就是白底黑字,文章列表从上往下排。没有导航栏,没有分类,没有搜索,没有关于页面——什么都没有。
那时候我的仓库里只有 README.md 和 _config.yml,空空如也。
现在回头看,这就像买了一台新手机,开机后发现除了预装电话本啥也没有。
第二阶段:midnight(换个官方主题试试)
1
2
commit 3e3e89a theme: 将theme换了midnight
commit 2dad15c add: add index.md homepage for midnight theme
我换成 midnight——深色背景的主题,看起来很酷。但还是没有任何额外功能。我甚至手动创建了 index.md 首页,让博客至少有个能看的主页。
那时候我开始意识到:官方主题虽然稳定,但功能太少了。
第三阶段:Chirpy(终于像个真正的博客了)
1
2
3
4
commit c4f4fd7 主题:更换为Chirpy
commit 21fae8d 修复: 用 GitHub Actions 部署 Chirpy 主题
commit f5a94a1 Chirpy 主题 + GitHub Actions
commit 14bbc89 fix: 添加缺失的Chirpy插件声明
换了 Chirpy 之后,博客一下子”活”了过来:
- ✅ 搜索功能
- ✅ 分类/标签自动聚合
- ✅ 文章目录
- ✅ 漂亮的导航栏
- ✅ 归档页面
- ✅ 阅读时间估算
这些不是我写的——是 Chirpy 主题自带的。 就像从功能机换成了智能机,一切都在主题的代码里。
但也遇到了问题:Chirpy 需要用 GitHub Actions 来构建(因为它依赖一些插件),而 GitHub Pages 默认构建会失败。所以我折腾了一轮 Actions 配置,最终搞定了。
这个过程中我第一次接触
jekyll-archives、Gemfile、bundle这些概念,虽然只是照葫芦画瓢,但至少让博客跑起来了。
第四阶段:Minimal Mistakes(被迫迁移)
1
commit dda058f 切换主题: Chirpy → Minimal Mistakes
想尝试新东西,结果发现 Chirpy 的某些问题(或者单纯想换个风格),我决定换到 Minimal Mistakes。
但问题来了:
- 文件结构不同 — Chirpy 的
_tabs/变成了_pages/ - 配置方式不同 — Chirpy 的
jekyll-archives插件不能直接在 Minimal Mistakes 里用 - 我以为 GitHub Actions 也要换 — 结果折腾了半天,DeepSeek 进入了死循环
第五阶段:踩坑后的顿悟
最后发现一个让我哭笑不得的事实:
我一直在改的 .github/workflows/pages-deploy.yml,根本不需要动。
那个 workflow 做的事情很简单:
1
checkout → bundle exec jekyll build → upload → deploy
它不在乎你用什么主题。主题由 _config.yml 和 Gemfile 决定,workflow 只是通用构建流程。
所以 DeepSeek 的死循环也很好理解:我让它修一个不需要修的文件,它给出修改建议,部署还是不对,它再改,还是不对……无限循环。
真正影响博客样子的,自始至终只有三样东西:
| 文件 | 作用 |
|---|---|
_config.yml |
声明主题、配置站点信息 |
Gemfile |
安装主题 gem |
_posts/*.md |
文章内容(含 categories 和 tags) |
至于 _pages/ 下的那些文件(about.md、category-archive.md……),它们就像是目录索引——告诉 Jekyll “请在这里创建一个页面,用主题的某某模板来渲染它”。主题提供了模板引擎,但入口文件需要你自己创建。
学到了什么?
学到了很多:
- GitHub Actions 是主题无关的,不要乱动
- Jekyll 的 layout、categories、tags 是怎么协作的
_pages/是入口文件,不是主题功能本身- 主题提供模板和数据渲染逻辑,但你要告诉它怎么拼
也没学到什么:
- 三天时间换了好几个主题,最后用的是最初就该选的那个
- 有些坑明明可以绕过,非要自己踩一遍才算完
最后
如果你也在折腾博客主题,我的建议是:
- 先想清楚要什么 — 极简还是功能丰富?写技术还是写生活?
- 选一个成熟的主题 — Chirpy、Minimal Mistakes 都是经过大量用户验证的
- 看清楚底层逻辑 — 别像我以为换主题就要换 GitHub Actions,其实人家根本不相关
折腾的过程虽然让人烦躁,但回头看,这些坑踩得也算值得——至少现在我终于搞清楚这些东西是怎么运作的了。:)