公众号-文章&贴图发布:把 Markdown 推进微信公众号草稿箱

前言

运营公众号时,常见流程是:本地用 Markdown 写稿,再复制到后台编辑器里调样式、传图、补封面。图文长文和图片贴图(多图横滑)在接口和字段上也不相同,手工切换容易漏步骤。

下面介绍 SkillHub 上的 公众号-文章&贴图发布(坐标 @user_dfcfbf47/weixin-publisher)。它在 Agent 侧提供一套可执行的发布说明与脚本:把 Markdown 渲染成公众号可用的内容,并调用草稿箱接口写入,而不是在对话里临时拼 HTML。

这是什么

公众号-文章&贴图发布 是社区来源(community)的 content-creation 类 Skill,由发布者 user_dfcfbf47 维护,当前 SkillHub 登记版本为 1.0.1。官方入口:

  • API 坐标:https://api.skillhub.cn/user_dfcfbf47/weixin-publisher
  • 展示页:https://www.skillhub.cn/skills/user_dfcfbf47/weixin-publisher

简介与页面一致:一键发布 Markdown 到微信公众号草稿箱,支持 图文消息(长文) 与 图片消息(贴图) 两种模式。SkillHub 标签 requires_api_key=true,使用前需配置公众号 AppID / AppSecret(见下文凭证文件)。

核心功能

依据 Skill 包内 SKILL.md 与脚本,已核实能力如下。

图文消息(长文)

  • 入口:scripts/publish.sh → scripts/publish_article.py。
  • 管线:Markdown 解析 → 主题 CSS 内联 → 代码高亮 → 正文图片上传替换 → 调用 draft/add 创建草稿;发布后通过 draft/count 与 draft/get 做自检。
  • 依赖:图文路径以 Python 3.9+ 标准库 为主,不依赖外部排版 CLI。
  • 可选能力:多套排版主题与高亮主题、链接转脚注(公众号正文外链易被过滤)、--render-only 仅本地渲染预览、正文内联 SVG 时可用 scripts/svg2wechat.py 预处理(贴图模式不支持 SVG 文件直传)。

图片消息(贴图)

  • 入口:scripts/wechat-image-post.py(需安装 requests)。
  • 形态:article_type=newspic,图片列表走 image_info;content 为纯文本 caption,不是 HTML。
  • 封面:首张图或 frontmatter 中的 cover,脚本会处理缩放(封面需满足体积等限制,详见 Skill 文档错误码表)。

凭证与缓存

  • 凭证:WECHAT_APP_ID、WECHAT_APP_SECRET,默认从 ~/.wechat-credentials.env 读取,可用环境变量 WECHAT_CRED_FILE 指定其他路径;也可 source Skill 目录下的 scripts/setup.sh 加载。
  • Token 与上传:access_token 缓存在 ~/.config/wechat-publisher/token.json;图片上传 md5 去重缓存为 ~/.config/wechat-publisher/upload-cache.json。

安装与启用

1. 安装 SkillHub CLI(若尚未安装)

按 SkillHub 安装说明检查或安装 CLI:

command -v skillhub && skillhub --version

未安装时可执行(完整安装示例):

curl -fsSL https://skillhub-1388575217.cos.ap-guangzhou.myqcloud.com/install/install.sh | bash

说明见:https://skillhub.cn/install/skillhub.md。

2. 安装本 Skill

安装时必须用 --dir 指向当前 Agent 的 skills 目录,否则默认装到 ./skills/ 可能不会被识别。

skillhub install @user_dfcfbf47/weixin-publisher --dir <你的 skills 目录>

常见路径(来自 SkillHub 安装文档):

  • Cursor:~/.cursor/skills/
  • Claude Code:~/.claude/skills/
  • Codex:~/.codex/skills/ 或项目下的 .agents/skills/

SkillHub 页面也支持把下面提示交给 AI,按同一安装文档完成安装:

请根据 https://skillhub.cn/install/skillhub.md,安装 `@user_dfcfbf47/weixin-publisher`。

安装完成后,在对应 skills 目录下会出现 @user_dfcfbf47/weixin-publisher(内含 SKILL.md 与 scripts/)。启用方式是让 Agent 加载该 Skill,并按 SKILL.md 调用脚本;修改 Skill 文件后通常需要重启或重新加载 Agent 会话。

3. 配置公众号凭证

在运行发布脚本的机器上创建凭证文件(路径可自定义,以下为默认):

# ~/.wechat-credentials.env
export WECHAT_APP_ID=your_wechat_app_id
export WECHAT_APP_SECRET=your_wechat_app_secret

发布前加载环境变量,例如:

source ~/.wechat-credentials.env
# 或:source <skill 安装目录>/scripts/setup.sh

还需在微信公众平台将运行脚本的公网 IP 加入白名单,否则接口可能返回 40164。AppID / AppSecret 在公众号后台「设置与开发 → 基本配置」获取(Skill 内 README 有对应说明)。

典型用法

以下路径中的 <skill> 请替换为你本机安装目录,例如 Cursor 下常为 ~/.cursor/skills/@user_dfcfbf47/weixin-publisher。

图文长文

  1. 准备带 frontmatter 的 Markdown(title 必填;cover、description、author、theme 等可选):
---
title: 文章标题(必填)
cover: ./assets/cover.jpg
description: 文章摘要
author: 作者名
theme: lapis
---

# 正文开始

你的内容,支持 Markdown 语法...
  1. 发布到草稿箱:
source ~/.wechat-credentials.env
bash <skill>/scripts/publish.sh /path/to/article.md

指定主题与高亮主题(第二个、第三个参数):

bash <skill>/scripts/publish.sh /path/to/article.md lapis solarized-light

仅渲染、不调用微信接口:

python3 <skill>/scripts/publish_article.py /path/to/article.md \
  --theme lapis --highlight github \
  --render-only preview.html

Skill 包内附带 example.md,可作为最小联调样例:

bash <skill>/scripts/publish.sh <skill>/example.md

图片贴图

  1. frontmatter 中 title、cover 等按 Skill 文档填写;正文为纯文本 caption 加 ![]() 图片引用。

  2. 安装 requests 后执行(示例与 Skill 文档一致,使用本机 Python 3):

source ~/.wechat-credentials.env
pip install requests
python3 <skill>/scripts/wechat-image-post.py /path/to/post.md

发布成功后,到 微信公众平台 草稿箱核对;不会自动群发,仍需在后台人工确认发送。

适用场景与注意

适合谁

  • 已在用 Cursor、Claude Code、Codex 等支持 Skills 的环境写稿,希望把「排版 + 传图 + 写草稿」收成固定脚本路径的团队或个人。
  • 需要同时覆盖公众号 长文 与 贴图 两种草稿类型,且希望发布后有 draft/get 一类自检,减少「接口成功但草稿不对」的静默失败。

限制与常见坑

  • 目标仅是草稿箱,不是一键面向粉丝群发;上线前仍需后台审核与发送操作。
  • 贴图模式的 caption 为纯文本,不能当 HTML 用;caption 中含 URL 风格内容可能触发 45166 等错误(见 SKILL.md 错误码表)。
  • 贴图路径上传 SVG 文件会失败;矢量图若用于长文,应按文档用内联 SVG 或先转位图。
  • 图文与贴图对 Python 依赖不同:贴图需要 requests;在隔离 venv 中运行时,注意用已安装依赖的解释器路径。
  • 运行环境公网 IP 须在白名单内;凭证错误、token 过期、封面超过大小限制等,Skill 文档中均有对应错误码与处理建议(如删除 ~/.config/wechat-publisher/token.json 后重试)。

SkillHub 侧统计(抓取时):评分 100000,下载约 1479 次;具体数字以 SkillHub 页面实时显示为准。

结尾

公众号-文章&贴图发布 把 Markdown 写稿与微信公众号草稿箱接口之间的步骤固化在 Skill 与脚本里:长文走自研渲染与主题内联,贴图走 newspic 多图结构,并强调发布自检与凭证/IP 白名单等运维细节。若你要在 Agent 工作流里稳定出稿,可从 SkillHub 安装 @user_dfcfbf47/weixin-publisher,按包内 SKILL.md 配置凭证后先试 example.md。

  • 官方 API 坐标:https://api.skillhub.cn/user_dfcfbf47/weixin-publisher
  • SkillHub 页面:https://www.skillhub.cn/skills/user_dfcfbf47/weixin-publisher
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜