Jackhai的博客

旧博客迁移方案

目标

现状结论

旧站

新站

迁移原则

  1. 原文时间直接使用旧文 front matter 中的 date
  2. 原始分类和标签直接使用旧文 front matter 中的 categoriestags
  3. 原文地址按旧站 Hexo permalink 规则恢复: https://jackhai9.github.io/:year/:month/:day/:filename/
  4. 迁移脚本只写旧文的原始信息,不预填当前仓库的 本文创建日期 / 最后更新日期
  5. 当前仓库自己的 本文创建日期 / 最后更新日期 交给现有 pre-commit 在首次提交时补齐,用来表示新仓库里的文件生命周期。
  6. 原始信息作为独立元数据写进迁移后的文章正文底部,避免被当前仓库的 pre-commit 钩子覆盖。
  7. 旧站继续保留,迁移是复制,不是替换。

目录规划

脚本参数

内容转换规则

输入

输出

字段映射

正文清洗

执行流程

Phase 1: 预览

只跑预览,不写文件:

cd blog
python3 scripts/migrate_hexo_posts.py --dry-run

检查点:

Phase 2: 样例导出

先导出 1 篇或少量文章到临时目录审核:

cd blog
python3 scripts/migrate_hexo_posts.py \
  --apply \
  --include 转投hexo-使用hexo在github写博客 \
  --output /tmp/blog-migration-sample

检查点:

Phase 3: 全量导入

确认样例通过后再写入仓库:

cd blog
python3 scripts/migrate_hexo_posts.py --apply --write-index

检查点:

Phase 4: 人工审阅

Phase 5: 提交与发布

验收标准

风险与处理

风险 1:当前 pre-commit 会改写最后更新日期

处理:

风险 2:旧文存在少量 Hexo 专有内容

处理:

风险 3:旧文裸链接无法直接点击

处理:

回滚方案


本文创建日期: 2026-04-18

最后更新日期: 2026-04-18