你有没有遇到过这种情况?
每次写完文章,都要打开后台、粘贴内容、调样式、设置标签……明明写文章才是核心,发布流程却占了一半时间。
说实话,我之前也是这样。直到我用 Python 写了一个自动发布脚本——从写完 Markdown 到文章上线,只需要一行命令。
为什么要自动化发布?
手动发布的痛点很明显:
- 重复操作多(每次都是同样的步骤)
- 容易出错(复制粘贴格式经常乱)
- 效率低(明明可以让机器做的事)
自动化之后,整个流程变成了:
写 Markdown → 运行脚本 → 文章上线 ✅
核心原理
Halo 博客提供了完整的 REST API,整个发布流程只需要两步:
第一步:创建 Snapshot(内容快照)
Snapshot 存储文章的实际内容(HTML 格式)。就像 Git 的 commit,每次发布都会生成一个快照。
snap_payload = {
"apiVersion": "content.halo.run/v1alpha1",
"kind": "Snapshot",
"spec": {
"rawType": "HTML",
"rawPatch": html_content,
"contentPatch": html_content,
}
}
第二步:创建 Post(文章主体)
Post 关联 Snapshot,并设置 publish: true,Halo 的 reconciler 会自动完成发布。
post_payload = {
"spec": {
"title": "文章标题",
"publish": True,
"baseSnapshot": snap_name,
"releaseSnapshot": snap_name,
}
}
实战效果
用这套流程发布一篇文章,全程只需要:
- 写好
.md文件 - 运行
python publish.py article.md - 等待约 5 秒,文章自动上线
效率提升明显,再也不用手动操作后台了。
延伸:公众号风格排版
如果想让博客文章也有公众号那种精美排版效果,可以先用排版工具把 Markdown 转成带内联样式的 HTML,再通过 API 发布到 Halo。
效果就是——博客文章自带精美样式,不依赖主题。
写在最后
自动化不是把人替换掉,而是把重复的事交给机器,让人专注在真正有价值的事上。
写好内容,剩下的交给代码。
💬 你在博客发布上有什么烦恼?
评论区聊聊~
评论交流
欢迎留下你的想法