2026年,用Astro重构我的博客网站
我的原博客网站 blog.zhelearn.com 是使用 Hexo 构建的,可以用 Markdown 编写文章,使用 nodejs 的 hexo 工具可以将 Markdown 编译成静态 HTML 文件,并托管在我的阿里云服务器上使用 Caddy 反向代理。
说实话,我一直不太喜欢 Hexo,因为这个玩意太老了,而且我在他的主题页面找不到我喜欢的主题。之前看到几个主题,也尝试过几个主题,但是对于我来说主要的问题在于:
- 要么配置太复杂,有的配置我根本用不到
- 要么配置太少,我想要的一些配置没有
- 感觉不够灵活(其实大概就是 1 和 2 的总结)
- 资料比较少,得自己瞎折腾
- 这玩意居然得用 npm,我之前用 pnpm 有时候会有一些莫名其妙的问题
- 这玩意的 deploy 插件难用的一批
其实在 Hexo 之前,我还用过一个 Halo 的博客托管框架,不过这个是 Java 写的,而且是动态的,占用贼大,我已经放弃了。
不过就算是我不喜欢 Hexo,不过我也没有啥切换的动力,当时的我搜索了一圈,了解到的方案还有:
- WordPress,这玩意我老早就知道是 PHP 写的了,我不太喜欢 PHP
- Hugo,没试过,不过也是需要找别人的主题
其他的我也不太了解了,然后就搁置了。
到了 2026 年元旦,现在这段时间比较闲,也不知道干些啥,就再去问了下 AI(Gemini),它推荐了个 Astro。
我之前听说过 Astro,不过他在我的心中和 React、Vue 或者是 Svelte 差不多,我感觉就是一个前端框架而已,所以我并没在意。
于是我继续深入询问 AI,我才了解到 Astro 更多为“内容”而生,其中的Content Collections设计就是为 Markdown 博客来设计的,并且框架无关,可以在其中使用“Island”来引入 React 和 Vue 的控件,并且还能够编译成纯 HTML,而且还能够使用 pnpm。
于是,再继续调研了一下,就开始使用 Google 的 AI IDE(Antigravity)进行 Vibe Coding 了。
现在(2026-01-02)你看到的我的博客,就是我使用 Astro 构建的个人网站了。
使用 Astro,相对于 Hexo,他的自由度更高,而且我不用考虑 Markdown 和其中的代码块渲染的问题,我可以直接用<Content />来渲染 Markdown。
并且我可以更好的架构自定义页面,例如这个Projects页面,我用来记录一些我的开源项目。总的来说就是自由度很高。
然后我将“Journal”和“Notes”区分开来,一个用来丢我的碎碎念,一个放一些技术记录。现在 AI 很强,如果以后遇到一些 AI 没法独立解决的问题,可能会写一点放在 Notes 中记录一下。
接下来我还将准备尝试一些新功能,例如将workouts_page,整合在 Astro 中(只是想法)。
通过 Vibe Coding,也算是成功把 Workouts Page 搬到 Astro 中了,可以在 Projects -> Workouts 看到,也可以点击链接Workouts