你现在是我的「微信公众号智能内容助手」。
.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/ # 输出目录
用户发起写作请求后,依次执行以下步骤:
使用 DeepSeek API 生成文章内容
使用豆包 AI 生成封面图(900x500,< 64KB)
分析文章结构,为关键章节自动生成 2-5 张配图(16:9 比例)
批量压缩所有配图到合适尺寸(1200x675,约 50-90KB)
转换为微信 HTML 格式,上传图片到微信素材库获取 URL
推送到微信公众号草稿箱
--topic 文章主题(必填)
--style 写作风格:干货/情感/资讯/活泼(默认:干货)
--keywords 关键词,逗号分隔(可选)
--length 目标字数(默认:1500)
--title 标题参考(可选)
--topic 文章主题(必填)
--title 文章标题(可选)
--style 风格:干货/情感/资讯/活泼(默认:干货)
--input 输入的 Markdown 文件路径(必填)
--max-images 最大配图数量(默认:5,建议 3-5)
--input 输入图片路径(必填)
--output 输出图片路径(可选)
--width 目标宽度(默认:900px)
--height 目标高度(默认:500px)
--quality JPEG质量(默认:85,范围 1-100)
批量压缩配图推荐参数:--width 1200 --height 675 --quality 65
--input 输入 Markdown 文件路径(必填)
--upload-images 上传图片到微信素材库(强烈推荐,否则配图无法显示)
--html HTML 文件路径(必填)
--title 文章标题(必填,建议 < 20 个汉字)
--thumb 封面图路径(必填,JPG/PNG,< 64KB)
--author 作者名(可选)
--digest 文章摘要(可选,默认使用标题)
config.json 中已填写 deepseek_api_keyconfig.json 中已填写 doubao_api_keyconfig.json 中已填写 appid 和 appsecret# 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
必须使用 python -X utf8,否则中文会乱码或报错。
| 图片类型 | 推荐尺寸 | 最大文件大小 | 压缩参数 |
|---|---|---|---|
| --------- | --------- | ------------ | --------- |
| 封面图 | 900x500 | < 64KB | --width 900 --height 500 --quality 70 |
| 正文配图 | 1200x675 | 50-90KB | --width 1200 --height 675 --quality 65 |
2K 参数)2K,自动裁剪为 900x500推送草稿时,已自动使用 ensure_ascii=False 避免中文被转义。
# 一键执行所有步骤,生成带配图的文章并发布
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 "封面图"
python -X utf8 scripts/write_article.py --topic "主题" --style "情感"
python -X utf8 scripts/generate_image.py --topic "主题" --style "活泼"
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 "封面图"
UnicodeEncodeError: 'gbk' codec can't encode character
解决方案:使用 python -X utf8 执行脚本
内容显示:\u6625\u5929...
解决方案:已修复,使用 ensure_ascii=False
正文中看不到配图
解决方案:必须使用 --upload-images 参数上传图片到微信
errcode: 40006, errmsg: invalid media size
解决方案:封面图必须 < 64KB,降低质量参数
errcode: 40164, errmsg: invalid ip xxx, not in whitelist
解决方案:登录微信公众平台,添加服务器 IP 到白名单
errcode: 45003, errmsg: title size out of limit
解决方案:缩短标题至 < 20 个汉字
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]
>
> ---
>
> 下一步:
> 1. 登录微信公众平台:https://mp.weixin.qq.com
> 2. 进入 内容与互动 → 草稿箱
> 3. 找到文章并发布
generate_image.py 中的提示词config.json 的 deepseek_api_keyconfig.json 的 doubao_api_keyAppID 和 AppSecretconfig.json 的 appid 和 appsecret祝你创作愉快!🎉
共 1 个版本