用 AI 做公众号内容中台:从 Markdown 到微信公众号草稿箱

2026年6月23日·富阳说
已发布

富阳说:做 1000 个 AI 工具,让每个人享受 AI 便利。

最近我做了一个小工具:yishan-mp

它不是一个“自动群发机器人”,也不是一个营销系统。它解决的是一个更具体、更高频的问题:如何把 AI 生成的 Markdown 文章,快速变成可以放进微信公众号后台的草稿。

如果你经常写公众号,大概率会遇到这样的流程:

AI 生成初稿
        |
        v
本地改 Markdown
        |
        v
复制到排版工具
        |
        v
调整标题、列表、代码块、引用
        |
        v
复制到公众号后台
        |
        v
上传封面、填摘要、保存草稿

这个流程不难,但非常碎。

真正消耗时间的不是“写一篇文章”,而是文章写完以后那些重复动作:排版、预览、复制、封面、摘要、账号选择、草稿保存、失败重试。

所以我把这件事做成了一个内部内容中台:

AI / 本地 Markdown
        |
        v
yishan-mp
        |
        +--> 微信格式预览
        |
        +--> 一键复制到公众号后台
        |
        +--> 保存到公众号草稿箱
        |
        +--> 发布记录留痕

这篇文章分享它的设计思路和实现细节,重点是方法,而不是让大家照抄某个项目。

痛点:AI 写得快,但公众号发布还是慢

现在 AI 已经能很快生成文章初稿。

比如你给它一个主题:

帮我写一篇关于微信开放平台管理公众号草稿的技术分享,面向独立开发者,强调 Markdown 到微信富文本的自动化流程。

几分钟后,你就能拿到一版结构完整的 Markdown。

但问题来了:公众号后台不是 Markdown 编辑器。

微信公众号文章实际需要的是一段兼容微信编辑器的富文本 HTML,而且有很多细节:

AI 解决了“内容生成”的一半问题,但没有解决“内容入库”的另一半问题。

如果每篇文章都手工复制、手工排版、手工保存,AI 带来的效率会被后半段流程吃掉。

所以我对这个工具的目标定义很明确:把公众号文章发布前的重复动作平台化。

yishan-mp 做了什么

yishan-mp 是一个公众号运营后台,目前主要做几件事:

它的定位不是替代微信公众平台,而是在“AI 生成内容”和“公众号后台发布”之间加一层自动化工作台。

一个典型工作流是这样的:

1. AI 生成文章初稿
2. 本地或后台修改 Markdown
3. 选择公众号账号
4. 选择排版模板
5. 预览微信样式
6. 保存到公众号草稿箱
7. 到公众号后台做最后检查
8. 人工确认后再发布

这里最重要的一点是:系统默认只到草稿箱,不做正式群发。

公众号正式发布涉及内容合规、账号权限、群发频率和人工审核,不应该被一个内部工具随便自动触发。自动化应该帮人减少重复劳动,而不是绕过关键确认。

为什么要接微信开放平台

如果只管理一个公众号,最简单的做法是直接配置公众号的 AppIDAppSecret,用它换 access_token,再调用草稿箱接口。

这条路能跑,但扩展性不够。

一旦你想管理多个公众号,就会遇到这些问题:

微信开放平台的第三方平台机制更适合做“公众号内容中台”。

它的核心逻辑是:

开放平台第三方平台
        |
        v
生成授权链接
        |
        v
公众号管理员扫码授权
        |
        v
系统保存 authorizer_appid / refresh_token
        |
        v
后续按 appid 获取 authorizer_access_token
        |
        v
调用公众号草稿箱、素材等接口

这样一来,后台不再只服务某一个公众号,而是可以维护一组授权公众号。

这对个人开发者也有价值。你可能有自己的技术号、项目号、测试号,也可能帮朋友或客户维护几个公众号。用开放平台接入以后,发布目标就变成了一个可选择的账号列表,而不是写死在代码里的配置。

核心链路:Markdown 到微信公众号草稿箱

整个系统最关键的链路可以拆成五步。

其中最容易被低估的是 Markdown 转微信 HTML。

普通 Web 页面可以依赖 CSS 文件,但公众号编辑器更适合内联样式。否则复制到后台以后,很容易出现样式丢失、行距不稳定、代码块变形等问题。

所以转换后的 HTML 大致会变成这样:

<p style="margin:12px 0;line-height:1.8;font-size:16px;color:#333">
  这是一段正文。
</p>

代码块也要变成适合微信编辑器的结构:

<pre style="background:#f5f5f5;border:1px solid #e0e0e0;padding:12px 16px">
  <code style="font-family:Menlo,Monaco,Consolas,monospace;color:#333">
    pnpm mp:publish publish ./article.md --env dev
  </code>
</pre>

这件事不复杂,但很值得做成基础设施。

因为只要这层稳定了,后面不管文章是人写的、AI 写的、脚本生成的,最终都能进入同一条发布链路。

模板系统:不要每篇文章重新排版

公众号排版最怕两件事。

第一,每篇文章都手工调样式。

第二,同一个账号里的文章风格不统一。

所以我没有把样式写死,而是做成模板。

一个模板本质上就是两类配置:

比如技术文章可以用“技术极客蓝”,代码多的文章可以用“深色代码夜读”,教程型内容可以用“知识卡片清爽”。

模板化之后,发布流程会变成:

同一篇 Markdown
        |
        +--> 技术极客蓝
        |
        +--> 知识卡片清爽
        |
        +--> 产品增长橙

内容和表现分离以后,公众号写作会轻很多。

你不需要每次都纠结标题多大、引用什么颜色、代码块背景怎么调。只要选模板,系统自动把样式注入到 HTML 里。

后台发布和 CLI 发布要同时存在

我一开始只做后台页面,后来又补了 CLI。

原因很简单:AI 自动化更适合走命令行。

后台适合人工编辑:

打开后台 -> 粘贴 Markdown -> 预览 -> 选择模板 -> 保存草稿

CLI 适合自动化流水线:

pnpm mp:publish publish ./article.md --env dev --appid wxxx --template-id 2

如果封面已经有本地文件,也可以让 CLI 先上传封面,再保存草稿:

pnpm mp:publish publish ./article.md \
  --env dev \
  --appid wxxx \
  --template-id 2 \
  --cover-file ./cover.jpg

这就把公众号发文变成了一个可以被脚本调用的能力。

以后 AI Agent 生成完文章后,不一定要把结果丢给人手动复制。它可以把 Markdown 写到文件里,然后调用 CLI 保存到草稿箱。

更完整的链路可以是:

选题库
        |
        v
AI 生成初稿
        |
        v
AI 自检标题、结构、摘要
        |
        v
生成 Markdown 文件
        |
        v
CLI 保存到公众号草稿箱
        |
        v
人工在公众号后台最终审核

这才是我想要的 AI 内容自动化:AI 负责提效,系统负责落地,人负责最终判断。

发布记录很重要

很多人做内部工具时容易忽略日志。

但只要接外部平台 API,就一定会失败。

微信公众号接口可能因为这些原因返回错误:

如果没有发布记录,你只会看到“失败了”。

有发布记录以后,至少可以知道:

这类记录不一定要做得很复杂,但必须有。

因为内容生产系统一旦进入自动化,就不能只靠终端输出或浏览器提示。失败必须能追溯,成功也必须能查到。

安全边界:自动化不等于自动群发

做公众号自动化时,我最看重的一条边界是:默认只保存草稿箱。

原因很现实。

公众号文章不是普通日志,也不是内部消息。它一旦群发,就是公开内容,涉及品牌、合规、事实准确性和读者体验。

所以我把系统分成两段:

这也是我建议大家做内容自动化时遵守的原则:让 AI 和系统负责前置生产,让人保留最后发布权。

除了发布边界,凭据也要收好。

AppSecret、开放平台密钥、管理员密码、Session 密钥都不应该进仓库。它们应该放在服务器环境变量或进程配置里。

最小可用的安全设计至少包括:

技术栈不是重点,但要够轻

这个项目用的是:

这里没有上很重的后台系统,也没有一开始就做复杂队列。

原因是这个工具的核心不是“高并发”,而是“流程闭环”。

对个人开发者或小团队来说,一个轻量 Web 后台加 SQLite 已经够用。真正应该优先打磨的是:

先把主链路跑通,再考虑复杂能力。

可以怎么复制这套思路

如果你也想做一个类似工具,不一定要照搬我的技术栈。

可以按这条路线逐步做:

第一阶段:先做 Markdown 到微信格式

不要一上来就接开放平台。

先做一个最小工具:输入 Markdown,输出微信可复制 HTML。

Markdown -> HTML -> 内联样式 -> 复制到剪贴板

这一阶段就能明显减少排版时间。

第二阶段:加入模板系统

当文章多起来以后,把样式抽成模板。

文章内容 + 模板配置 = 微信富文本

这样可以让不同栏目保持稳定风格。

第三阶段:接草稿箱接口

有了稳定 HTML,再接微信公众号 draft/add

这一阶段要处理封面、摘要、作者、thumb_media_id、错误记录。

第四阶段:接微信开放平台

如果只服务一个号,可以先不做。

如果要服务多个号,再接第三方平台授权,把公众号变成可选资源。

第五阶段:接 AI 自动化

最后再让 AI Agent 或脚本进入流程。

AI 写初稿 -> 生成 Markdown -> 调 CLI 保存草稿 -> 人工审核发布

这个顺序很重要。

先解决确定性工程问题,再接 AI。否则你会同时面对内容质量、样式兼容、接口权限、发布失败等一堆问题,很难定位到底哪里出错。

总结

AI 让写文章变快了,但公众号发布链路本身并没有自动变短。

如果每篇文章仍然要手工排版、手工复制、手工上传封面、手工保存草稿,AI 的效率只能发挥一半。

yishan-mp 做的事情,就是把后半段流程工程化:

Markdown -> 微信富文本 -> 模板排版 -> 封面素材 -> 草稿箱 -> 发布记录

这套系统的价值不在于技术多复杂,而在于它把高频重复动作变成了可复用能力。

更重要的是,它保留了正确边界:AI 可以生成内容,系统可以保存草稿,但正式发布仍然交给人最后确认。

对个人开发者来说,这就是一个很实用的内容自动化范式:

AI 提效
系统落地
人做判断

当这三件事分工清楚,公众号内容生产就不再是一堆手工步骤,而是一条可以持续优化的生产线。

相关项目

yishan-mp 是我用来管理公众号文章草稿和微信富文本排版的内部工具。

核心能力包括:Markdown 转微信富文本、模板化排版、微信开放平台授权、多公众号草稿箱、CLI 发布和发布记录。