返回 Skill 列表
extension
分类: 其它需要 API Key

wechat-file-publish

将本地文件(Markdown/HTML/TXT)一键发布到微信公众号草稿箱,支持根据文案内容动态生成配图

person作者: user_9ddd2a0ahubcommunity

微信公众号文件发布 Skill

功能简介

将本地 Markdown / HTML / TXT 文件一键转换为微信公众号图文消息,并发布到草稿箱。内置动态配图生成器,可根据文章标题、摘要、关键词自动匹配主题配色并生成封面图及配套插图。

触发条件

当用户提出以下意图时,使用本 skill:

  • "发布到公众号" / "发布到微信公众号"
  • "上传草稿箱" / "发布文章到草稿箱"
  • "把这篇文章发到公众号"
  • "生成公众号配图" / "生成封面图"
  • 涉及 publish.pygenerate_article_images.py 的操作

文件结构

wechat-file-publish/
├── SKILL.md                   # 本文件
├── README.md                  # 详细使用说明
├── skill.json                 # Skill 元数据
├── skill.yaml                 # Skill 定义
├── publish.py                 # 核心发布脚本
├── generate_article_images.py # 动态配图生成器
├── generate_cover_performance.py  # 封面性能优化
├── config.json                # 配置文件(需用户配置)
└── config.example.json       # 配置模板

使用流程

第一步:配置公众号凭证

首次使用必须配置 config.json,需要以下信息:

  • appId:微信公众号 AppID(在 公众号后台 → 设置 → 基本配置 中获取)
  • appSecret:微信公众号 AppSecret(同上,需重置获取)
  • defaultAuthor:默认作者名

配置方式(在 skill 目录下执行):

python publish.py config

或直接编辑 config.json

{
  "appId": "your_app_id",
  "appSecret": "your_app_secret",
  "defaultAuthor": "IT老司机Ochmd"
}

⚠️ IP 白名单:确保服务器 IP 已添加到微信公众号安全中心 → IP 白名单

第二步:准备文章文件

支持格式:

  • .md — Markdown 文件(推荐)
  • .html — HTML 文件
  • .txt — 纯文本文件

Markdown 文件示例:

# 文章标题

## 小标题

正文内容...

![图片描述](./images/demo.png)

- 列表项1
- 列表项2

```python
# 代码块
print("Hello World")

### 第三步:执行发布

**方式一:命令行**
```bash
# 基础发布
python publish.py article.md

# 指定封面图
python publish.py article.md cover.png

方式二:对话式(通过 CodeBuddy)

发布文件到公众号
文件路径:C:/Users/xxx/article.md
封面图:C:/Users/xxx/cover.png

动态配图生成

generate_article_images.py 可根据文章内容自动生成配图,无需手动设计。

主题自动匹配

根据文章关键词自动匹配配色方案:

| 主题 | 配色 | 触发关键词 | |------|------|------------| | 科技蓝紫 | 蓝紫渐变 | AI、技术、编程、代码、大模型 | | 活力绿橙 | 绿橙渐变 | 成长、学习、进阶、团队 | | 热情红粉 | 红粉渐变 | 创业、创新、未来、趋势 | | 清新蓝绿 | 蓝绿渐变 | 入门、基础、教程、小白 | | 暖阳金橙 | 金橙渐变 | 感悟、分享、经验、生活 | | 极客深灰 | 深灰渐变 | 极客、黑客、开源、Linux |

支持的图片类型

| 类型 | 函数 | 说明 | |------|------|------| | cover | create_cover_image() | 动态封面图(900×383) | | ai_tools | create_ai_tools_image() | AI工具协作示意图 | | multi_agent | create_multi_agent_image() | 多智能体协作图 | | strategy | create_developer_strategy_image() | 开发者策略卡片图 | | skill_radar | create_skill_radar_image() | 技能雷达图 | | vision | create_future_vision_image() | 未来展望图 |

调用示例

from generate_article_images import generate_article_images

results = generate_article_images(
    title="2026年AI编程工具全面爆发",
    summary="探讨AI如何改变软件开发行业",
    keywords=["AI", "编程", "Copilot", "效率提升"],
    image_types=["cover", "ai_tools"]  # 可选,默认生成全部
)
# results = {'cover': 'path/to/cover.png', 'ai_tools': 'path/to/ai_tools.png'}

Markdown 转换规则

publish.py 内置 Markdown → HTML 转换器,支持:

| Markdown 语法 | 转换结果 | |---------------|----------| | # 标题 | <h1>(居中,深色) | | ## 标题 | <h2> | | ### 标题 | <h3> | | #### 标题 | <h4> | | **粗体** | <strong> | | *斜体* | <em> | | `行内代码` | <code>(灰色背景) | | ````代码块``` |<pre><code>(深色背景) | | alt|<img>(自动上传到微信素材库) | | - 列表项|<ul><li>| |> 引用|<blockquote>(左侧蓝色竖线) | | ---|<hr>(分隔线) | | | 表格 ||<table>`(完整表格支持) |

图片处理规范

要求

  • 格式:JPG / JPEG / PNG / GIF(脚本也支持 BMP / WebP 自动转换)
  • 大小:≤ 2MB(微信接口限制)
  • 封面分辨率:建议 900×383 像素,宽高比 2.35:1 或 16:9

自动处理流程

  1. 扫描 Markdown 中的本地图片路径
  2. 逐张上传到微信素材库(调用 uploadimg 接口,返回 URL)
  3. 将内容中的本地路径替换为微信 URL
  4. 如有封面图,上传为缩略图(thumb,调用 add_material 接口)

常见错误码

| 错误码 | 原因 | 解决方案 | |--------|------|----------| | 40001 | Token 无效 | 检查 AppSecret 是否正确 | | 40125 | AppSecret 错误 | 在公众号后台重置 AppSecret | | 40164 | IP 不在白名单 | 将服务器 IP 添加到公众号 IP 白名单 | | 41005 | 缺少媒体文件 | 检查图片文件路径是否正确 | | -1 | 系统繁忙 | 稍后重试 |

完整工作流示例

用户提供了 article.md
   ↓
读取文件内容,提取标题(H1)
   ↓
扫描本地图片 → 逐张上传到微信 → 替换 URL
   ↓
Markdown → HTML 转换
   ↓
(可选)上传封面图到素材库
   ↓
调用 draft/add API 创建草稿
   ↓
返回 media_id,发布成功 ✅

注意事项

  1. IP 白名单必须配置:微信公众号要求调用接口的服务器 IP 在白名单内
  2. Access Token 有效期 2 小时:脚本每次运行会自动获取新 Token
  3. 图片大小限制:超过 2MB 的图片会被跳过并提示
  4. Markdown 标题提取:默认提取第一个 # 标题 作为文章标题,也可通过参数指定
  5. Pillow 依赖:配图生成功能需要 pip install Pillow,若未安装则跳过配图生成

依赖安装

pip install requests pillow

更新日志

v2.0.0 (2026-04-16)

  • 重构配图生成器为 DynamicImageGenerator
  • 新增 ThemeAnalyzer 主题分析器,根据文案自动匹配主题
  • 支持 6 种主题配色方案
  • 新增 generate_article_images() 统一入口函数
  • 关键词到主题智能映射

v1.0.1 (2026-04-03)

  • 修复配图加载失败问题
  • 添加动态 MIME 类型检测
  • 新增图片验证(大小、格式)
  • 完善错误提示

v1.0.0 (2026-04-02)

  • 初始版本
  • 支持 Markdown/HTML/TXT 发布
  • 支持图片自动上传