最开始想的迁移方案是使用 `skip-render` 标记 html，但始终觉得不够优雅，因为导航栏、个人信息、头图之类的内容时常都会变，如果 skip-render 那永远都会是当时那个版本的页面，甚至可能超链接都是失效的，除了能显示原本的博文之外其实体验应该是相当差的——横竖感觉就是很突兀嘛！

直到今天突然意识到，hexo 渲染 markdown 为 html 文本肯定会分为三个大部分：

1. 正文前部的各种元素，例如头图、导航栏、侧边栏等
2. 正文的元素
3. 正文后部的各种元素，例如版权、脚注等

一拍大脑， markdown 天生兼容 html 啊！！！

理论上对于 html 元素 hexo 应该不会过多插手渲染，那我不是理论上可以直接找到之前渲染好的 html 文件中的正文部分直接复制到 markdown 里面然后 `hexo generate` 就完成了？！

立马就开始动手实践，发现真的可以！

不过随着 butterfly 版本的迁移，页内标签外挂 `tag` 的渲染结果从 `div-ul-li-button` 变成了 `div-button` 的层级，原本在 `li` 上的类名现在转移到了 `button` 上，遂赶紧尝试使用正则批量替换。这里用了 `<li class="tab([^"]*)">([\n\s]*)<button([^>]*)>([^<]*)</button>([\n\s]*)</li>` 这个表达式在 VSCode 里搜索匹配，然后替换为 `<button$3 class="tab$1">$4</button>`

很快啊！刷的一下就全部都修改好了！！！

然后再把原先的图片复制到现在的 `img` 目录下，批量改一手路径，Done！

谁能想到这个卡了我两年的问题，竟然能 15 分钟就搞定了！！！

过于激动，遂特写此文记录一下，真是拍大腿啊！！！

文章作者: Linloir
文章链接: https://blog.linloir.cn/2024/10/13/blog-mig/
版权声明: 本博客所有文章除特别声明外，均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 時痕！
短文 博客 自言自语
相关推荐
2024-10-13
短文 - 关于短博文的碎碎念
2024-10-15
短文 - 转正日
2024-10-11
重生
2019-12-30
年终总结 - 2019
2021-01-11
年终总结 - 2020
2022-01-01
年终总结 - 2021
Linloir
我、技术、生活与值得分享的一切
文章
22
标签
21
分类
2
Follow Me
最新文章
Swift 学习笔记 - 配置 VS Code 开发 Flutter iOS Native 代码 2025-05-15
Swift 学习笔记 - 从 Property Wrapper 视角探索 State 与 Binding 如何工作 2025-05-12
Coroutine 相关疑惑大模型问答记录 2025-03-17
年终总结 - 2023 至 2024 2025-01-01
问题定位回顾 - Windows 上发起 tcp 连接时提示 Only one usage of each socket address (protocol/network address/port) is normally permitted 2024-11-22