已跑通 2026-09-13 — 2026-10-08
公众号工作流:从一句话到草稿箱
把"写一篇公众号"拆成主题搜索 → AI 写稿 → 自动配图 → 图床 → 排版 → 进草稿箱 → 本地存档,最后打成安装包塞给朋友。
- 开始
- 2026-09-13
- 结束
- 2026-10-08
- 耗时
- 约 30 小时
- 花费
- 0 元
技术栈 PythonPillow腾讯云 COS微信公众号 APIObsidian
背景
写公众号最烦的不是写,是一堆杂事:找素材、想标题、配图、上传到微信的图床、排版、粘贴。 每篇大概要花 40 分钟在”非写作”上。
我想把这一段全部自动化,只留”给个主题、看一眼、发”。
方案
拆成六个能独立跑的步骤,串成流水线:
主题输入
→ 联网搜索(补事实、找角度)
→ 调用模型写初稿(带固定的结构模板)
→ Pillow 生成封面 + 插图
→ 上传到腾讯云 COS 当图床
→ 转成公众号 HTML(inline 样式,微信不认 <style>)
→ 调草稿 API 进草稿箱
→ 存一份 Markdown 到 Obsidian
几个关键决策:
- 图床用 COS 而不是微信自有接口:微信的
media/uploadimg有频率和体积限制,COS 稳定且能复用 - 排版用 inline style:微信公众号编辑器会丢掉
<style>块和 class,所有样式必须内联到元素上 - 保留 Markdown 存档:发出去的东西自己也得留一份,不然半年后想改都没底稿
过程
配图这块花的时间最多。用 Pillow 画而不是让模型生图,是因为要稳定的风格和精确的中文排版:
# 封面:1200x630,中文用系统字体,主标题自动缩放到容器宽度
draw.text((pad, y), title, font=fit_font(title, max_w), fill=INK)
中文换行、字重、行高这些细节调了很久——自动生成的图很容易出现”字溢出边界”或”孤字成行”。
踩坑
| 现象 | 原因 | 解法 |
|---|---|---|
| 写出来的配置全是乱码 | Set-Content -Encoding UTF8 在 PowerShell 5 里写的是带 BOM 的 UTF-8,下游按 GBK 读 | 统一用 [IO.File]::WriteAllText($p,$s,(New-Object Text.UTF8Encoding $false)) |
| 草稿里样式全丢 | 微信编辑器过滤 <style> 和 class | 全量内联 style,连字号行高都写死在标签上 |
| 图片在草稿箱里显示不出来 | 用了外链非白名单域名 | 必须走微信认可的图床,或先上传素材再引用 |
| 打包给别人后跑不起来 | 依赖路径写死了开发机的绝对路径 | 全部改成相对路径 + install.ps1 里做检测 |
结果
跑通了,从”给个主题”到”草稿箱里躺着一篇带图文章”,大概 3 分钟。
- 单篇成本:模型调用几分钱,图床几乎免费
- 省下的时间:每篇约 30 分钟
- 最后打成 v1.0.0 安装包(含配置向导),能给朋友直接用
结论:这是这一年里性价比最高的一个自动化。判断标准很简单——我到现在还在用它。
更新日志
- 打包成 v1.0.0 安装包(含 install.ps1、配置向导)。
- 加 Pillow 生成封面与插图,接 COS 图床。
- 首次跑通"主题 → 草稿箱"全流程。