最近花了一段时间,把自己的个人博客重新整理了一遍。表面上看,这只是换了一个博客框架;真正做起来,才发现迁移的重点并不是把页面“跑起来”,而是把过去积累的内容认真搬回家,并且让以后发文章变得足够简单。
为什么换成 Astro
旧博客已经积累了不少文章,其中有技术笔记、工具记录、项目经验,也有很多带图片和 PDF 附件的资料。原来的站点可以正常访问,但维护和继续发布都不够顺手:文章、资源和页面样式之间缺少一个清晰的边界,想改版时也容易牵一发动全身。
Astro 比较适合现在的需求。文章最终生成静态页面,访问速度和部署成本都比较可控;页面结构、样式和内容又可以按自己的想法定制,不必被现成主题限制。站点最终部署在 GitHub Pages 上,代码和内容放在同一个仓库里,备份、修改和发布路径都更清楚。
迁移中最费时间的部分
先保证内容没有丢
迁移不能只看首页是否漂亮。旧文章里有不少本地图片、历史路径和 PDF 附件,如果只复制 Markdown 文件,文章看起来就会“少东西”。这次迁移时,我把文章和资源一起扫描,逐篇检查图片是否能加载、PDF 是否能打开,并修复了一些旧文章里不再适用的本地路径。
这也让我重新意识到:博客的内容本身才是最重要的资产。样式可以慢慢调整,文章和附件一旦遗漏,之后再补就很难保证准确。
分类和标签要尽量保留原意
旧博客的分类和标签并不完全统一,有些文章属于 iOS、Flutter 或前端,有些则更像随笔、工具记录或资料整理。迁移时没有简单地全部归到一个默认分类,而是尽量恢复原来的分类和标签,让原有的内容脉络还能继续使用。
URL 也要当作内容的一部分
旧文章已经被搜索引擎收录,也有人通过收藏夹访问。迁移后如果 URL 全部变化,内容虽然还在,访问体验却会断掉。因此除了页面内容,还需要逐个确认旧文章地址是否能正常打开,尤其是带附件的文章。
首页和细节也需要重新做
内容搬好之后,才开始处理首页的视觉。首页不应该只是文章列表堆在一起,还要让人一眼知道这里写什么、最近更新了什么、如何继续浏览。过程中也顺手调整了页面留白、卡片层次、字体和颜色,让页面更克制一些。
浏览器标签页的小图标同样值得认真处理。它是访问者最常看到的品牌细节之一,虽然很小,却会影响整个站点的完成度。
现在怎么发一篇文章
为了不再每次都手动改文件和执行部署,我给博客接入了 Sveltia CMS。打开博客后台后,可以直接在浏览器里登录 GitHub,创建或编辑 Markdown 文章,上传图片和 PDF,然后提交到仓库。
文章提交后,GitHub Actions 会自动构建 Astro 站点并发布到 GitHub Pages。这样发布流程就变成了:写文章、上传资源、点击保存,等待部署完成。代码仓库仍然是唯一的内容来源,但日常写作不需要再打开编辑器。
这次迁移留下的几个经验
- 迁移旧站时,先做内容和资源盘点,再做页面美化。
- 图片、PDF 和历史 URL 都应该和文章正文一样被验证。
- 静态站点并不等于难维护,配合 GitHub 和 CMS 后,发布流程可以很轻量。
- 首页、favicon 这些视觉细节,最好在内容稳定后统一打磨。
博客现在算是重新搭好了基础设施。接下来可以把更多精力放回写作本身:记录实际遇到的问题,也记录那些暂时没有标准答案、但值得以后回看的思考。