从 Hexo 迁到 Astro,这次我把博客彻底重做了一遍
- 博客
- Astro
- 迁移
- Vercel
目录
这篇我重写一下,之前那版太 AI 味了,连我自己回看都觉得不像我。
这次迁博客,表面看是 Hexo -> Astro,实际是把我整套写作和维护习惯一起重做了一遍。
为什么我要迁
我原来的 h-blog 其实不丑,我也用了一段时间。但后面越写越难受,主要是这几个点:
Hexo + EJS,每次改一点点 UI 都要翻模板,心智负担很重- 图片和文章不在一起,md 路径老改,改到后面我自己都烦了
- category/tag 每次都要填,我这种个人博客写作节奏里真不需要这么重
- 代码块观感一般,还没复制按钮,读代码体验差一点意思
一句话:旧博客不是不能用,是“继续维护下去会越来越痛苦”。
为什么是 Astro
我想要的很简单:轻一点、稳一点、后续别老返工。
最后选 Astro,核心就三条:
content collections对内容组织很友好- 路由和渲染可控,但不会重到要我维护一堆工程细节
- 上 Vercel 没额外成本,部署链路顺手
这次到底改了啥
不是单纯“搬文章”,我是连信息架构一起重做了。
1) 内容线重做
最后我只保留两条线:
- 技术:
/tech - 生活:
/life
然后 / 默认跳 /tech,因为我主要更新技术内容。
2) 图片管理重做
以前全局图片目录,前期还行,后面就是灾难。 现在固定每篇都是:
index.mdimages/
这个改动看起来小,但写作体验提升特别明显,基本把“找图/改路径”的烦躁感砍掉了。
3) 元信息简化
我把 category/tag 这种区分直接砍了,统一成 topics。
对个人博客来说,这更自然,不会每次写完像填报表。
4) 阅读体验补齐
- 代码块统一样式
- 加了一键复制
- 详情页目录默认展开
- 深浅色支持跟随系统 + 手动切换
这些都不算大功能,但拼起来就会让读和写都顺很多。
迁移里踩过的坑
坑 1:路由和 slug 没对齐
一开始详情页直接报 undefined entry,本质是 slug 规则和目录结构有偏差。
后面把 index.md 的 slug 处理逻辑统一后才稳定。
坑 2:图片“明明在那但构建报错”
这个我也遇到了好几次,图在目录里,但构建还是提示找不到。
多数是缓存和路径改动叠在一起,清 .astro 和 dist 再重建能解决一批。
坑 3:UI 不是一把就能调对
这次最深的体感是: 简约不是“默认样式 + 少写点 CSS”。
很多细节都是来回拉扯后才顺眼:
- 链接颜色(太亮 -> 太淡 -> 可读)
- 列表密度(太散 -> 太挤 -> 平衡)
- 顶部导航(混排乱 -> 分组更顺)
- 日期对齐(比例数字导致看起来不齐,最后用等宽数字)
- 深色模式(渐变和分块感太重,最后收成纯底)
最后落地结果
当前结构:
src/content/tech:技术内容src/content/life:生活内容src/pages/tech:技术列表 + 详情src/pages/life:生活列表 + 详情src/pages/index.astro:默认跳/tech
另外我还补了两份文档,防止几个月后我自己回来都看懵:
README.mdAGENT.md
这次重做最大的收获
我以前老觉得博客重构就是“换框架”。 这次做完才发现,真正关键的是这三件事:
- 内容结构要贴合你真实写作习惯
- 维护成本要低到你愿意长期写
- 下次改版要能接着改,而不是推倒重来
如果你也在犹豫要不要迁旧博客,我的建议是先别一把梭:
先并行开一个新目录,迁 2-3 篇,先跑通你自己的写作节奏,再决定要不要全量迁。
这样最稳,也最不容易半路烂尾。至少我这次就是这么活下来的,哈哈。