过去这些年一直用 WordPress 做博客的后端,其实也没什么不好的,任何一个浏览器打开就能写和管理,虽然后端重了点,但一次配置好也不用怎么折腾,现在的 VPS 跑个 PHP 和 MySQL 还是够的
前两年考虑要不要彻底使用 Markdown 来做内容管理,同时把整站变成不用那么多依赖的情况,比如挂 GitHub Pages 上用 Jekyll 直接生成。后面找了下发现 Hugo 这个基于 go-lang 的本地生成服务,当时还尝试看看要不要迁移,不过文档写得总是容易,对我这个历经二十多年,里面糅合了好多历史平台的内容,跑完第一步后就懒得将其往前推进到一个明确可用状态
今年各种 AI 能力突飞猛进到真的可以干活了,于是找 Codex,在 GPT 5.6 Sol 的帮助下,先确认是可以迁移的,需要备份保留哪些数据,怎么转移和验证,并逐步算完成了迁移和整理吧
既有数据迁移倒是还快的,毕竟想要啥我都能给出来,不管是 WordPress 所在目录和之前各种静态文件所在的 wp-content,还是 MySQL 数据库表,或者是 WordPress 导出的 wxr,还包括用作评论的 Disqus 的所有导出数据
接下来的验证整合,确实验证了各种历史沉淀,光是博文,就从最早的教育网博客,到 Live Space、百度空间、QQ 空间、人人网、Blogspot、自建 WordPress 等等
评论早年很多平台的应该都被丢失了,最早接的第三方评论系统应该是多说,这个没了后应该一直用的 Disqus,在整理过程中还把 Disqus 历史迁移没匹配上的好些内容也给匹配上了,AI 真强大
再就是把历史的外链图片都想办法补到本地,包括之前用新浪微博当图床的,还好现在微博还在把相册下载到本地能匹配上,还有用人人当图床的,从我几年前备份的人人网数据里匹配到一些,但也有之前备份就有遗漏的找不到,还好从我自己的照片库,再把当年发文时配的原图人肉找到,在 Live Space 阶段的图,通过 OneDrive 的日志图片找到绝大部分,很诡异的有一张图不在这个目录,还好通过 OneDrive 按日期的照片墙,最终也找到了那张,在 Google Photo 的图现在还能访问,AI 就直接帮忙下载备份到本地了,有两张曾经传在教育网博客的无关紧要的示意图,找不到就算了,还有之前用 163 相册的图,就从自己的照片库里去匹配上,最终还有曾经在水木的一张图也不可能找到,就算了吧
在样式比对时,修复了部分代码块和引用块的问题,同时还发现历史一些应该是通过 Live Writer 发的旧文,是一个单行超大的 HTML 语法,曾经在 WordPress 上转 Markdown 应该也是转到懒得转,这次先把和引用块的临时处理下,后面应该可以借助 AI 的能力可以快速批量处理
不过,加上本地搜索功能后,开发环境需要的依赖还是不少的,从 AI 帮项目生成维护的 README 里就能看到
必须工具
- Git;
- GNU Make 或兼容的
make;- Python 3.11 或更高版本;脚本只使用标准库,不需要 pip/virtualenv;
- Node.js 20 或更高版本及 npm;只用于按
package-lock.json安装和运行 Pagefind;- Hugo Extended;当前验收版本为 0.165.0,建议其他机器使用相同版本,至少必须在
hugo version输出中包含extended;- 部署机器还需要 OpenSSH client,以及包含安全更新并支持
--link-dest的 rsync。可选工具:Docker 或本机 nginx,用于正式切换前的 nginx 配置和 HTTP 冒烟测试。
git 作为版本管理没有什么好解释的,AI 用 make 来串起各种动作,拿 python 运行各种转换和校验脚本,node 是为了安装运行本地搜索支持工具 Pagefind,hugo 是本次核心迁移组件,另外用 ssh 和 rsync 是为了推送发布到 VPS
大头基本完成,后面应该就是把单页目录样式小组件做下样式和功能优化,把整站的主题做做美化,再把历史文章都想办法转成 Markdown 格式,就安心写东西吧