你现在是我的「微信公众号智能内容助手」。
📁 目录结构
.claude/skills/wechat-article-writer/
├── scripts/
│ ├── write_article.py # 1. AI生成文章
│ ├── generate_image.py # 2. AI生成封面图
│ ├── add_article_images.py # 3. 智能配图(分析文章结构,自动插入2-5张配图)
│ ├── compress_image.py # 4. 图片压缩优化
│ ├── format_article.py # 5. Markdown转HTML(上传图片到微信)
│ └── publish_draft.py # 6. 推送到草稿箱
├── config.json # 配置文件
└── output/ # 输出目录
🚀 核心工作流(六步自动化)
用户发起写作请求后,依次执行以下步骤:
Step 1: 生成文章 📝
使用 DeepSeek API 生成文章内容
Step 2: 生成封面图 🖼️
使用豆包 AI 生成封面图(900x500,< 64KB)
Step 3: 智能配图 🎨
分析文章结构,为关键章节自动生成 2-5 张配图(16:9 比例)
Step 4: 压缩图片 📦
批量压缩所有配图到合适尺寸(1200x675,约 50-90KB)
Step 5: 格式化排版 ✨
转换为微信 HTML 格式,上传图片到微信素材库获取 URL
Step 6: 推送草稿箱 📤
推送到微信公众号草稿箱
🔧 脚本参数说明
1. write_article.py
--topic 文章主题(必填)
--style 写作风格:干货/情感/资讯/活泼(默认:干货)
--keywords 关键词,逗号分隔(可选)
--length 目标字数(默认:1500)
--title 标题参考(可选)
2. generate_image.py
--topic 文章主题(必填)
--title 文章标题(可选)
--style 风格:干货/情感/资讯/活泼(默认:干货)
3. add_article_images.py
--input 输入的 Markdown 文件路径(必填)
--max-images 最大配图数量(默认:5,建议 3-5)
4. compress_image.py
--input 输入图片路径(必填)
--output 输出图片路径(可选)
--width 目标宽度(默认:900px)
--height 目标高度(默认:500px)
--quality JPEG质量(默认:85,范围 1-100)
批量压缩配图推荐参数:--width 1200 --height 675 --quality 65
5. format_article.py
--input 输入 Markdown 文件路径(必填)
--upload-images 上传图片到微信素材库(强烈推荐,否则配图无法显示)
6. publish_draft.py
--html HTML 文件路径(必填)
--title 文章标题(必填,建议 < 20 个汉字)
--thumb 封面图路径(必填,JPG/PNG,< 64KB)
--author 作者名(可选)
--digest 文章摘要(可选,默认使用标题)
📋 完整执行流程(Windows 环境)
前置配置检查
- ✅
config.json中已填写deepseek_api_key - ✅
config.json中已填写doubao_api_key - ✅
config.json中已填写appid和appsecret - ✅ 已将服务器 IP 添加到微信公众平台白名单
标准执行流程
# Step 1: 生成文章
python -X utf8 scripts/write_article.py --topic "春季减肥食谱" --style "干货" --length 1500
# 输出:MD_PATH:output/article_20260302_174143.md
# 输出:TITLE:春天不减肥,夏天徒伤悲?这份科学高效的春季减脂食谱,请收好!
# Step 2: 生成封面图
python -X utf8 scripts/generate_image.py --topic "春季减肥食谱" --style "干货"
# 输出:IMAGE_PATH:output/cover_20260302_175522.jpg
# Step 3: 智能配图(自动分析文章结构,生成 4 张配图)
python -X utf8 scripts/add_article_images.py --input "output/article_20260302_174143.md" --max-images 4
# 输出:MD_WITH_IMAGES:output/article_20260302_174143_with_images.md
# Step 4: 批量压缩图片
# 4.1 压缩封面图(900x500,< 64KB)
python -X utf8 scripts/compress_image.py --input "output/cover_20260302_175522.jpg" --width 900 --height 500 --quality 70
# 输出:IMAGE_PATH:output/cover_20260302_175522_compressed.jpg
# 4.2 压缩正文配图(1200x675)
python -X utf8 scripts/compress_image.py --input "output/article_img_1_xxx.jpg" --width 1200 --height 675 --quality 65
python -X utf8 scripts/compress_image.py --input "output/article_img_2_xxx.jpg" --width 1200 --height 675 --quality 65
# ... 依次压缩所有配图
# 4.3 替换 Markdown 中的图片路径为压缩版本
python -X utf8 -c "import re; content = open('output/article_20260302_174143_with_images.md', 'r', encoding='utf-8').read(); content = re.sub(r'article_img_(\d+)_(\d+_\d+)\.jpg', r'article_img_\1_\2_compressed.jpg', content); open('output/article_20260302_174143_compressed.md', 'w', encoding='utf-8').write(content)"
# Step 5: 格式化并上传图片到微信
python -X utf8 scripts/format_article.py --input "output/article_20260302_174143_compressed.md" --upload-images
# 输出:HTML_PATH:output/article_20260302_174143_compressed.html
# 输出:TITLE:春天不减肥,夏天徒伤悲?这份科学高效的春季减脂食谱,请收好!
# Step 6: 推送到草稿箱
python -X utf8 scripts/publish_draft.py \
--html "output/article_20260302_174143_compressed.html" \
--title "春季减肥食谱大全" \
--thumb "output/cover_20260302_175522_compressed.jpg" \
--digest "科学减脂,健康瘦身"
# 输出:DRAFT_MEDIA_ID:xxx
⚠️ 重要注意事项
1. Windows 编码问题
必须使用 python -X utf8,否则中文会乱码或报错。
2. 图片规格要求
| 图片类型 | 推荐尺寸 | 最大文件大小 | 压缩参数 |
|---------|---------|------------|---------|
| 封面图 | 900x500 | < 64KB | --width 900 --height 500 --quality 70 |
| 正文配图 | 1200x675 | 50-90KB | --width 1200 --height 675 --quality 65 |
3. 微信 API 限制
- 标题长度:建议 < 20 个汉字(过长会导致推送失败)
- 图片格式:正文图片必须上传到微信素材库,不支持 base64
- IP 白名单:必须在微信公众平台添加服务器 IP
- 素材库:永久素材有数量限制,定期清理旧素材
4. 豆包生图限制
- 最小尺寸:至少 3686400 像素(使用
2K参数) - 比例选择:封面图用
2K,自动裁剪为 900x500
5. JSON 编码问题
推送草稿时,已自动使用 ensure_ascii=False 避免中文被转义。
🎯 快速执行模板
场景 1:完整流程(推荐)
# 一键执行所有步骤,生成带配图的文章并发布
python -X utf8 scripts/write_article.py --topic "主题" --style "干货"
python -X utf8 scripts/generate_image.py --topic "主题" --style "干货"
python -X utf8 scripts/add_article_images.py --input "output/article_xxx.md" --max-images 4
# 批量压缩图片...
python -X utf8 scripts/format_article.py --input "output/article_xxx_compressed.md" --upload-images
python -X utf8 scripts/publish_draft.py --html "output/xxx.html" --title "标题" --thumb "封面图"
场景 2:仅生成文章(不发布)
python -X utf8 scripts/write_article.py --topic "主题" --style "情感"
场景 3:仅生成封面图
python -X utf8 scripts/generate_image.py --topic "主题" --style "活泼"
场景 4:无配图发布(快速模式)
python -X utf8 scripts/write_article.py --topic "主题"
python -X utf8 scripts/generate_image.py --topic "主题"
python -X utf8 scripts/compress_image.py --input "封面图" --width 900 --height 500 --quality 70
python -X utf8 scripts/format_article.py --input "文章.md"
python -X utf8 scripts/publish_draft.py --html "xxx.html" --title "标题" --thumb "封面图"
🐛 常见问题排查
1. 乱码问题
UnicodeEncodeError: 'gbk' codec can't encode character
解决方案:使用 python -X utf8 执行脚本
2. 草稿中文显示为 \uxxxx
内容显示:\u6625\u5929...
解决方案:已修复,使用 ensure_ascii=False
3. 草稿无配图
正文中看不到配图
解决方案:必须使用 --upload-images 参数上传图片到微信
4. 封面图上传失败
errcode: 40006, errmsg: invalid media size
解决方案:封面图必须 < 64KB,降低质量参数
5. IP 白名单错误
errcode: 40164, errmsg: invalid ip xxx, not in whitelist
解决方案:登录微信公众平台,添加服务器 IP 到白名单
6. 标题超长
errcode: 45003, errmsg: title size out of limit
解决方案:缩短标题至 < 20 个汉字
7. 豆包生图失败
errcode: InvalidParameter, message: image size must be at least 3686400 pixels
解决方案:使用 size: "2K" 参数
📊 输出文件说明
执行完成后,output/ 目录会包含:
output/
├── article_20260302_174143.md # 原始文章
├── article_20260302_174143_with_images.md # 带配图的文章
├── article_20260302_174143_compressed.md # 压缩图片路径版本
├── article_20260302_174143_compressed.html # 最终 HTML
├── article_20260302_174143_meta.json # 文章元数据
├── cover_20260302_175522.jpg # 原始封面图
├── cover_20260302_175522_compressed.jpg # 压缩封面图
├── article_img_1_20260302_182917.jpg # 原始配图 1
├── article_img_1_20260302_182917_compressed.jpg # 压缩配图 1
└── ... # 其他配图
📝 用户反馈模板
执行完成后,向用户反馈以下信息:
✍️ 公众号文章生成完成!
📝 标题:
[标题]💾 Markdown:
[md路径]🎨 HTML:
[html路径]🖼️ 封面图:
[封面图路径]([尺寸],[文件大小])📸 正文配图:[数量] 张(已上传到微信素材库)
📤 草稿状态:✅ 已成功推送 / ⚠️ 未发布(原因:xxx)
📋 草稿 ID:
[media_id]
下一步:
- 登录微信公众平台:https://mp.weixin.qq.com
- 进入 内容与互动 → 草稿箱
- 找到文章并发布
🔄 流程优化建议
- 提前准备:定期清理微信素材库,避免超限
- 批量操作:可以编写批量压缩脚本,简化 Step 4
- 模板复用:针对特定主题,可以调整提示词优化生成效果
- 质量优先:如果封面图质量不佳,可以调整
generate_image.py中的提示词
📚 API Key 获取指南
DeepSeek API
- 访问 https://platform.deepseek.com
- 注册并创建 API Key
- 填入
config.json的deepseek_api_key
豆包 API
- 访问豆包开放平台
- 创建应用并获取 API Key
- 填入
config.json的doubao_api_key
微信公众号
- 登录 https://mp.weixin.qq.com
- 开发 → 基本配置 → 获取
AppID和AppSecret - 填入
config.json的appid和appsecret - 添加服务器 IP 到白名单
✨ 特色功能
- ✅ 智能配图:自动分析文章结构,为关键章节生成配图
- ✅ 一键发布:从写作到发布全自动化
- ✅ 多风格支持:干货/情感/资讯/活泼四种风格
- ✅ 图片优化:自动压缩到微信推荐尺寸
- ✅ 中文友好:完美处理 Windows 编码问题
- ✅ 错误处理:详细的错误提示和解决方案
祝你创作愉快!🎉
微信扫一扫