建站4.5周年,我决定用 Astro 重构我的博客

时间过得真快,不知不觉,这个博客已经陪我走过 4.5 个年头了。
其实“用新框架重写博客”这个念头,在我心里已经埋了很久,但一直缺一个“非做不可”的契机。直到最近读了 LiuShen 的《建站四年,从Hexo换到Astro》,那种“原来真的可以做到”的感觉一下子被点燃了。加上这半年我在 AI 的帮助下折腾了不少东西,我终于下定决心:把博客从 Hexo 彻底搬到 Astro。
于是,就有了你现在看到的 SMATRIX 3.0。
契机:一场拖了三年的“魔改马拉松”
聊重构之前,先说说我是怎么一步步走到今天的。
三年前,我把博客从 WordPress、Typecho 这些动态博客框架换到了 Hexo,也是从那时候起,我正式开启了自己的“魔改之路”:
- 一开始,是模仿鱼鱼的博客魔改思路,跟着大佬们一点点调样式、加功能;
- 后来用上了 Anzhiyu 主题——那个模仿洪哥博客开发的主题模板,也是我用得最久的一个;
- 再后来,鱼鱼的主题模板越来越多人用,洪风设计也慢慢“烂大街”了。
说实话,那时候我特别想做一个真正属于自己的主题。但奈何前端知识一直处于“半桶水”的状态,折腾出来的东西连自己都看不下去,这个念头也就一直搁着,一搁就是好几年。
转折:Vibe Coding 让我把“想想”变成“动手”
事情的转机,出现在我开始研究 Vibe Coding 之后。
那段时间我折腾过 Claude Code、Codex,模型从 DeepSeek V4 Pro 到各种中转站都试了一圈,最后还是投入了鱼鱼的怀抱,用上了鱼鱼 API。虽然稳定性一般(蹬不了就到群里去电鱼鱼就完事了),但架不住便宜,当个日常写代码的辅助工具完全够用。
也正是这个契机让我意识到:以前很多“只敢想想”的东西,现在真的可以借助 AI 快速落地了。
当然,我对自己有几斤几两还是很有自知之明的。我的实力没有 LiuShen、洪哥那一众大佬那么强,项目开发经验也不多,让我从零手搓一个博客几乎不可能。所以最靠谱的路线是:找一个现成的、完成度足够高的项目作为基础,瞄定一个大方向,再逐步实现自己的想法。
为什么是 Astro,为什么是 Firefly
先说说为什么放弃 Hexo
对于 Hexo, 我使用它时间最长、项目代码结构了解最深。但它有两个让我越来越难受的固有问题:
- 文章一多,构建越来越慢。我前前后后搭建过两个不同的 Hexo 博客,几乎最终都会出现这个问题,构建时间成倍上涨;
- 加载速度跟不上。再加上性能方面的一些先天限制,体验越来越不尽如人意。
其实去年我就已经了解到 Astro 的一系列优点了:构建速度快、默认零 JS、组件化开发、对 SEO 友好……也接触到了 Fuwari 这个项目,我才对重构博客有了新的想法。
再说说为什么是 Firefly
正如我上面所说,我需要一个现成的项目作为新博客的基础,Fuwari 就是我比较看好的选择。
但作为一名流萤厨子,今年早些时候,我无意间发现了一个名为 Firefly 的项目。我一看,这怎么这么像 Fuwari?因为我之前也见过别的 Fuwari 二次开发产物,所以并不稀奇。但仔细研究之后我发现,它的完成度非常高,功能也比我预想的多得多——况且,Firefly 这个名字,本身就让我这个流萤厨很有好感。
于是,我确定了:就基于它来开发我的新博客。
就这样,基于 Firefly 和 Fuwari 开发的 SMATRIX 3.0 诞生了,也就是你现在看到的这个站。
我做了哪些修改
1. 重做界面 UI
拿到 Firefly 之后,我做的第一件事就是把 UI 全面重做了一遍,灵感来源于某知名二游的界面设计(懂的都懂)。用到的skill我放在这里了(这个粥味skill是我在小黑盒刷帖子的时候发现的)
从导航、卡片到文章页的排版,几乎都按照自己的审美重新调整了一遍,让整个站更贴近我理想中的样子。
2. 优化动态页的 Markdown 渲染管线
动态页之前总给人一种“毛坯房”的感觉,渲染出来的内容比较简陋。这次我重新优化了动态页的 Markdown 渲染管线,从解析、样式到组件化渲染都重新梳理了一遍,让动态页也能有体面的排版。比如说原版Firefly动态页对于Markdown 渲染几乎可以说是没有,但它文章页又做得那么好,于是我就把文章页的渲染管线整个复用到了动态页上。
3. 加入新功能
-
Timeline 时间线:记录大事记、版本更新历程再合适不过了;
通过下面的语法来实现
::timeline_year{2026}::timeline_date{08-09}::endtimeline_date::endtimeline_year
Timeline时间线 ::timeline_year{2026}::timeline_date{08-09}`SMATRIX 3.0` 正式发布!基于 `Firefly` 和 `Fuwari` 开发的Astro静态博客。更轻量、更快速、更强大!::endtimeline_date::timeline_date{01-30}持续优化 OvO> SMATRIX 2.0.1 (基于Anzhiyu 1.7.1)>> 🐛fix: 恢复部分字体样式显示异常>> ✨feat: 升级Twikoo评论系统后端>> ✨feat: Twikoo评论系统添加自定义表情>> 📦file: 创建 /privacy 完善隐私政策>> 📦file: 创建 /cookies 完善Cookies政策::endtimeline_date::timeline_date{01-29}新年第一更 (・̀ ω・́)✧> SMATRIX 2.0.0 (基于Anzhiyu 1.7.1)>> 🐛fix: 恢复Twikoo预览功能>> ✨feat: 优化 Algolia 搜索>> ✨feat: 替换默认主题为钉钉进步体>> ✨feat: 上线轻量友链朋友圈>> ✨feat: 添加侧边栏日历及倒计时>> ✨feat: 上线基于奶思猫API的博客欢迎系统>> 📦file: 创建 atom.xml 优化RSS订阅体验>> 🎨refactor: 优化侧边栏个人卡片样式>> 🎨refactor: 优化友链显示方式,完善友链申请方式>> 🎨refactor: 优化关于页面显示方式,更新个人信息::endtimeline_date::endtimeline_year -
Link 外链卡片:引用外链时不再是一行干巴巴的文字,而是一张带预览的卡片;
::link{www.baidu.com}
Link外链 -
Music 音乐卡片:可以在文章或动态里直接嵌入音乐卡片,想听就听。
::music{server="netease",type="playlist",id="7384065438"}
Music音乐卡片
未来还打算做哪些修改
重构远没有结束,接下来还有不少计划:
- 迁移友链朋友圈:把老朋友们的友链和朋友圈完整迁移过来;(2026-08-10 已完成迁移)
// 朋友圈页面配置export const fcirclePageConfig: FcirclePageConfig = { title: "鱼塘", description: "这里会汇集朋友们的最新动态。", icon: "material-symbols:fishfood", apiUrl: "https://fc.smatrix.top/all.json", frontendUrl: "https://fc.smatrix.top/", pageSize: 24, requestTimeout: 8000,};
-
协调部分 UI:有些部分当时做得比较匆忙,风格还不够统一,需要再打磨;
-
未完待续:剩下的,就交给时间去慢慢填吧。
写在 4.5 周年:一路走来,感谢有你
最后,想借这个特殊的日子,认真说一声感谢。
4 年多来,这个博客换过不少“家”。
域名从 qzkevin.github.io(GitHub Pages)到 kayin.ml(免费域名),再到如今真正属于我的 smatrix.top;
框架历经 WordPress、Typecho(我还搞过一个把 Typecho 部署到 Vercel 的项目呢)、Hugo、Next.js、Hexo,再到如今的 Astro;
托管平台也从 GitHub Pages、Cloudflare、Netlify、Vercel,一路折腾到了 EdgeOne Pages。
梦开始的地方:博客基于 WordPress,部署于星辰云虚拟主机上
部署于星辰云香港云服务器的 Typecho 博客正式上线
Typecho 博客停止运行,基于 Vercel 部署的 Hexo 博客正式上线
旧 Hexo 博客因性能问题停止使用,内容迁移至新 Hexo 博客
域名 SMATRIX.TOP 正式启用
SMATRIX 3.0 正式发布:基于 Firefly 与 Fuwari 的 Astro 静态博客
回想来,这一路让我学会了很多。曾经玩过虚拟主机、轻量云服务器(断断续续租过好几次),想当年折腾静态博客,很大一部分原因也是为了省点服务器钱。从最初连页面代码都要东拼西凑的新手,到现在能对着代码库指指点点——虽然依然写不出什么厉害的代码,但每一个踩过的坑、每一行魔改过的代码,都构成了现在的我。
感谢鱼鱼、洪哥、LiuShen 这些大佬,是你们的文章和项目一次次给我灵感;感谢每一位来访的朋友,你们的每一次点击、每一条评论,都是我继续折腾下去的动力。
下一个 4.5 年,也请多多指教。 🍀
支持与分享
如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!












