博客园博客迁移与美化全过程记录
本文记录一次博客整理过程中从清空事故到恢复、整合、美化的完整历程,以及踩过的坑。
一、起因:整理分类
最初只是想给博客园的 100 篇博文按主题归类成 7 个分类:Linux 运维、后端开发、Java 基础、算法与数据结构、Python 编程、版本控制 Git、生活游戏。
二、事故:update 批量分类清空了正文
批量调用 update_post 设置分类时,自写的博客园 MCP server 有个 bug:只传 categories 不传 body,博客园 metaWeblog.editPost 服务端把没传的 title + description 都设空覆盖。结果 95 篇博文的标题和正文被清空,公开网页上标题、摘要全空。
根因:editPost 接收的是完整 post 结构,没传的字段会被服务端设为空字符串覆盖原值,而不是保留原值。
三、恢复:从 GitHub Solo 仓库拉取正文
博客原文已失效,但好在之前用 Solo 博客(B3log)导出过静态站到 GitHub。流程:
codeload下载仓库 zip- 解析
articles/年/月/日/时间戳.html里的正文(在<section class="item__content--article vditor-reset">) - 提取标题(
data-title)+ 正文 + 标签,清掉签名档 - 重新发布到博客园
共恢复 122 篇 + 3 篇原文。
四、绕过发布配额
博客园限制 1 分钟 20 篇 + 当日 50 篇。改用 editPost 覆盖现有 postid(编辑不限流),把 57 篇待发内容 update 到现有 postid 上,绕过 newPost 的配额限制。
五、整合系列文章
14 个系列文章合并成 14 篇长文(Linux From Scratch、Scrapy、Spring、剑指 Offer、操作系统、Leetcode、密码学加密算法等),每篇含统一目录 + 按原顺序拼接各原篇,避免短文碎片化。
六、标题与结构优化
- 标题:用子代理按正文 preview 生成优化标题——修正拼写(Scrach→Scratch)、纯日期标题补主题、泛标题具体化(
keyboard_shortcuts→Linux 内核 SysRq 快捷键) - 正文结构:开头自动目录(基于 h2/h3 锚点)+ 代码块补 language 标识 + 结尾小结框
七、图片迁移
全文 215 张图,其中 164 张外链图床已失效(b3logfile.com/img.hacpai.com/sogoucdn 连接重置,gitee 403,archive.org 超时)。
手动上传 109 张到博客园图床,整理成对照表(原 URL → 博客园 URL)。脚本解析对照表,用全 URL + 文件名两种方式匹配,共 114 张替换为博客园图床 URL。
踩坑:解析对照表时正则没排除 >,URL 末尾多一个 > 导致图床返回 no such key 404。修复后图正常显示。
八、修复 update_post bug
editPost 前先 getPost 取当前完整 title + description + categories 作基底,合并传入字段再 editPost,没传的字段保留原值不清空。categories 还要清洗博客园返回的 [随笔分类] 前缀。
九、美化:白蓝简约 Sakura 风
- 全局(页脚 HTML):Live2D 看板娘 + 鼠标点击爱心
- 文章 body:圆点分隔 + 目录 + 小结框(纯 CSS,无 emoji——emoji 经 MetaWeblog 传输会编码丢失)
- 页面 CSS:白底卡片 + 蓝色点缀
#3b82f6+ 固定毛玻璃导航 + 二次元背景图 + 半透明蒙版 - 标题居中、统计居中、日历响应式(手机不溢出)
十、踩坑总结
update_post单字段更新会清空:editPost务必传完整title + body + categories,或先getPost合并再写回。- 外链图床不可靠:迁移前先验证图床可访问,失效的图无法补救。
- URL 解析正则要排除 HTML 边界字符(
>、<、|),否则 URL 带尾字符导致 404。 - emoji 经 MetaWeblog 传输可能编码丢失,用 CSS 画的图形或 HTML 实体(
【等)替代。 - CSS 选择器特异性:
a:link{color}特异性高于.btn{color},会把按钮字染成和背景同色,用a.btn:link提高特异性。 - 博客园限制:1 分钟 20 篇 + 当日 50 篇发布上限,
editPost/deletePost不占配额。
十一、最终状态
57 篇博文,内容恢复 + 系列整合 + 标题润色 + 结构优化 + 图片迁移 + 白蓝简约美化,全部到位。事故的教训是:批量操作前先小批量验证,update 类接口要确保传完整字段。

浙公网安备 33010602011771号