jackhai9.github.io/source/_posts 中的历史文章迁移到当前 blog 仓库。jackhai9.github.io 保持原样,继续在线,不删除、不覆盖、不重定向。jackhai9.github.io/source/_posts。title、date,多数文章还有 categories、tags。date 取,Git 历史不反映文章原始发布/更新时间。blog/src。blog/index.md 是手工维护的链接列表。blog/scripts/autoappend-time.sh 会在提交前自动追加或改写:
> 本文创建日期:> 最后更新日期:date。categories、tags。https://jackhai9.github.io/:year/:month/:day/:filename/本文创建日期 / 最后更新日期。本文创建日期 / 最后更新日期 交给现有 pre-commit 在首次提交时补齐,用来表示新仓库里的文件生命周期。blog/src/legacy/blog/scripts/migrate_hexo_posts.pyjackhai9.github.io 与本仓库 blog/ 位于同一父目录下,脚本按默认相对路径 ../jackhai9.github.io/source/_posts 定位旧文;若布局不同,用 --source 显式指定。--dry-run:只预览不写文件(默认行为)--apply:实际写入(缺这个参数就是预览)--include <stem>:只迁移指定源文件名(可重复,用于样例导出)--source <dir>:来源目录(默认 ../jackhai9.github.io/source/_posts)--output <dir>:输出目录(默认 src/legacy)--overwrite:目标文件已存在时覆盖,不加则遇到冲突即报错退出--write-index:同时生成 legacy/index.md 归档入口,按发布日期倒序列出所有迁移文章,顶部含指向本方案的链接jackhai9.github.io/source/_postsblog/src/legacytitle -> 文档一级标题 # titledate -> 原文时间: YYYY-MM-DD HH:mm:sscategories -> 原文分类: ...tags -> 原文标签: ...<small><em style="color: #888">...<br></em></small> 里,和正文间用 --- 分隔,视觉上弱于当前仓库的本文创建/更新日期块> 本文创建日期: 和 > 最后更新日期:<!--more-->msdn.itellyou.cn/ -> https://msdn.itellyou.cn/localhost:4000 -> http://localhost:4000layout: photo 文章,把 photos: 列表转成普通 Markdown 图片列表qiniudn.com / clouddn.com(旧七牛测试域名,已失效)时,自动在文章顶部插入一行提示,说明图片因域名失效而无法显示,避免读者误认为是渲染 bug只跑预览,不写文件:
cd blog
python3 scripts/migrate_hexo_posts.py --dry-run
检查点:
src/legacy/先导出 1 篇或少量文章到临时目录审核:
cd blog
python3 scripts/migrate_hexo_posts.py \
--apply \
--include 转投hexo-使用hexo在github写博客 \
--output /tmp/blog-migration-sample
检查点:
<!--more--> 是否被删除确认样例通过后再写入仓库:
cd blog
python3 scripts/migrate_hexo_posts.py --apply --write-index
检查点:
src/legacy/ 下文章数量正确src/legacy/index.md 可直接浏览src/*.mdlegacy/index.mdblog/src 下现有文章处理:
本文创建日期 / 最后更新日期,由 pre-commit 在首次提交时按仓库规则补齐<small> 块,不会被 pre-commit 覆盖处理:
<!--more-->layout: photo 自动转普通 Markdown 图片处理:
src/legacy/,不改旧站仓库src/legacy/ 下本次导入文件并回退首页入口即可