微信公众号发布器
将 Markdown 文章转换为微信公众号兼容的精美排版 HTML,并提供6种模板风格和 API 发布能力。
核心能力
- Markdown → WeChat HTML — 自动转换,所有样式使用内联方式,严格遵循微信 HTML/CSS 白名单
- 6种排版模板 — 科技极客 / 优雅文艺 / 商务简约 / 时尚活力 / 经典阅读 / 温暖治愈
- 浏览器预览 — 生成模拟手机屏幕的预览页面,发布前确认效果
- API 发布 — 通过微信公众号官方 API 直接创建草稿箱文章并发布
工作流程
根据用户意图选择流程:
用户想排版/预览文章? → 流程A:排版预览
用户想发布到公众号? → 流程B:API发布
用户想选择模板? → 展示模板列表
流程A:排版预览
- 读取用户的 Markdown 内容(文件或直接提供)
- 确认模板选择(如未指定,根据文章类型推荐)
- 运行转换脚本生成 WeChat HTML 和预览页面:
bash python3 scripts/publish.py preview input.md --template <模板ID> --title "标题" --author "作者" --output preview.html - 展示预览结果
流程B:API发布
- 确认用户已配置
WECHAT_APP_ID和WECHAT_APP_SECRET环境变量 - 如果有封面图,先上传获取
thumb_media_id - 运行发布脚本:
bash python3 scripts/publish.py publish input.md --template <模板ID> --title "标题" --thumb-media-id <ID> - 确认发布结果
模板选择指南
当用户未指定模板时,根据文章类型推荐:
| 文章类型 | 推荐模板 | 模板ID |
|---|---|---|
| 技术教程、代码分享、开发日志 | 科技极客 | tech |
| 散文、随笔、诗歌、书评 | 优雅文艺 | elegant |
| 企业公告、行业报告、商务分析 | 商务简约 | business |
| 产品发布、潮流资讯、品牌故事 | 时尚活力 | fashion |
| 深度长文、思想评论、学术文章 | 经典阅读 | classic |
| 生活感悟、情感故事、美食旅行 | 温暖治愈 | warm |
列出所有模板:
python3 scripts/publish.py templates
脚本使用说明
所有脚本位于 scripts/ 目录,可独立运行或组合使用。
publish.py — 一键发布(推荐入口)
# 预览文章
python3 scripts/publish.py preview article.md --template tech --title "标题" -o preview.html
# 构建 WeChat HTML
python3 scripts/publish.py build article.md --template elegant --title "标题" -o article.html
# 发布到草稿箱
python3 scripts/publish.py publish article.md --template business --title "标题" --thumb-media-id XXX
# 上传封面图并发布
python3 scripts/publish.py publish article.md --template warm --title "标题" --thumb-image cover.jpg
# 发布并立即推送
python3 scripts/publish.py publish article.md --template fashion --title "标题" --thumb-media-id XXX --publish-now
markdown_to_wechat.py — Markdown 转换器
python3 scripts/markdown_to_wechat.py input.md output.html
template_engine.py — 模板引擎
# 列出模板
python3 scripts/template_engine.py list
wechat_publisher.py — API 发布器
# 列出草稿
python3 scripts/wechat_publisher.py list-drafts
# 新增草稿
python3 scripts/wechat_publisher.py add-draft --title "标题" --content-file article.html --thumb-media-id XXX
# 发布草稿
python3 scripts/wechat_publisher.py publish --media-id XXX
# 上传图片
python3 scripts/wechat_publisher.py upload-image --image photo.jpg --type content
python3 scripts/wechat_publisher.py upload-image --image cover.jpg --type material
微信公众号 HTML 规范要点
生成 HTML 时必须严格遵守以下规则:
- 所有样式必须内联 — 每个元素的
style属性直接写 CSS,不使用<style>标签或外部 CSS - 禁止 JavaScript — 不使用
<script>、事件属性(onclick 等) - 禁止定位布局 —
position、z-index、float会被微信过滤或异常 - 禁止 id 属性 — 微信会删除所有
id属性 - 图片必须写尺寸 —
<img>必须有width和height,否则 iOS 不显示 - 正文图片 URL — 必须来自微信"上传图文消息内图片"接口,外链会被过滤
- 推荐单位 — 使用
px为主,避免%单位 - 字体 — 使用系统字体(苹方、黑体),不能引入自定义字体
环境变量
API 发布功能需要配置以下环境变量:
| 变量名 | 说明 | 获取方式 |
|---|---|---|
| WECHAT_APP_ID | 公众号 AppID | 公众号后台 → 开发 → 基本配置 |
| WECHAT_APP_SECRET | 公众号 AppSecret | 公众号后台 → 开发 → 基本配置 |
> 也支持通过脚本参数直接传入 AppID 和 AppSecret。
Resources
scripts/
publish.py— 一键发布入口脚本(推荐使用)markdown_to_wechat.py— Markdown → WeChat HTML 转换器template_engine.py— 模板引擎(6种模板定义与样式生成)wechat_publisher.py— 微信公众号 API 封装(草稿箱、发布、图片上传)
references/
api_reference.md— 微信公众号 API 完整参考(认证、素材、草稿、发布、HTML白名单)template_guide.md— 模板配色方案和自定义指南
assets/
demo_article.md— 排版效果展示文章(含标题、代码、列表、引用、表格等)