@lyhue1991/wxgzh
v0.2.3
Published
Markdown to WeChat Official Account draft CLI
Readme
wxgzh,这个SKILL打通了AI写公众号文章的最后一公里
这是一个面向微信公众号的 SKILL,基于 NodeJS CLI.
把 Markdown 文章处理成适合公众号发布的 HTML,上传图片,生成封面,并提交到公众号草稿箱。
安装此SKILL
#for openclaw
npx clawhub@latest install wxgzh#for opencode/claudecode/cursor/openclaw/...
npx skills add lyhue1991/wxgzh效果演示


一、功能概述
wxgzh 的目标很直接:
- 一条命令把 Markdown 文档发送到微信公众号文章草稿箱。
- 支持常见 Markdown 内容,包括图片、代码块、表格、引用、数学公式等。
- 自动完成从 Markdown -> HTML -> 图片修复上传 -> 封面生成 -> 草稿创建 的整套流程。
- 支持主题样式、自定义 CSS、自动摘要、封面图生成。
- 也支持分步执行,便于你单独检查 HTML、封面或发布结果。
手动操作方法
- step1: 一键安装(要求:Node.js >= 18)
npm install -g @lyhue1991/wxgzh安装完成后可直接使用 wxgzh 命令。
- step2: 一键配置 (提前准备好微信公众号AppID和 AppSecret , 并配置好IP白名单)
wxgzh config --account 公众号名称1 --appid 你的AppID --appsecret 你的AppSecret
- step3: 一键投稿 (将本地markdown文章直接投递到公众号草稿箱, 人工确认后即可发布)
wxgzh article.md --author 文章作者姓名这条命令会自动执行:
- 读取
article.md - 转换成公众号可用 HTML
- 上传正文中的本地图片和非微信图床图片到微信公众号图床
- 自动生成封面图(如果你没有提供)
- 提交到微信公众号草稿箱
二、配置说明
1. 如何获取公众号 appid 和 appsecret
前往微信公众号公众平台,使用已认证的公众号管理员账号登录:
- 打开公众号后台
- 进入"设置与开发"
- 找到"开发接口管理"
- 查看并复制
AppID和AppSecret
拿到后,执行(必须同时指定公众号账号名):
wxgzh config --account 公众号名称1 --appid 你的AppID --appsecret 你的AppSecret也可以同时设置默认作者、默认主题:
wxgzh config --account 公众号名称1 --appid 你的AppID --appsecret 你的AppSecret --author "wxgzh" --default-theme blue2. 如何管理多个公众号账号
wxgzh 支持同时管理多个公众号账号,适合有多个公众号或需要在不同账号间切换的场景。
添加多个账号:
# 主账号
wxgzh config --account 公众号名称1 --appid 你的AppID --appsecret 你的AppSecret
# 备用账号
wxgzh config --account 公众号名称2 --appid 另一个AppID --appsecret 另一个AppSecret设置默认账号:
wxgzh config --set-default-account 公众号名称1查看已配置的账号:
wxgzh config --list-accounts发布时指定账号:
# 使用公众号名称1发布
wxgzh article.md --account 公众号名称1
# 使用公众号名称2发布
wxgzh article.md --account 公众号名称2
# 不指定则使用默认账号
wxgzh article.md账号选择优先级:
命令行 --account > front matter 中的 account 字段 > 环境变量 WX_ACCOUNT > 用户配置的默认账号
使用 front matter 指定账号:
---
title: 我的文章
author: wxgzh
account: 公众号名称2
---
# 文章正文使用环境变量(适用于 CI/CD 场景):
export WX_ACCOUNT=公众号名称2
export WX_APPID=你的AppID
export WX_APPSECRET=你的AppSecret
wxgzh article.md删除账号配置:
wxgzh config --remove-account 公众号名称23. 如何把本机IP加入公众号 IP 白名单
[!IMPORTANT] 调用微信公众号接口前,除了配置
appid和appsecret,还要把当前机器的公网 IP 加到公众号后台的 IP 白名单。 否则即使密钥正确,也可能在获取 token、上传图片、创建草稿时被微信拒绝。
操作步骤:
- 登录微信公众号后台
- 进入“设置与开发” -> “开发接口管理” -> “基本配置”
- 找到 IP 白名单
- 把当前机器的公网 IP 添加进去并保存
查看本机公网 IP 的方法:浏览器访问 https://ip.sb/ 查看 Address
4. 如何查看当前配置
wxgzh config --list会输出当前生效配置,并显示用户配置文件位置。
默认用户配置文件路径:
~/.config/wxgzh/wxgzh.json你也可以查看全部可用主题:
wxgzh config --list-themes当前内置主题来自 styles/ 目录,例如:default、blue、green、red、yellow、brown、black、orange。
三、快速流程
最常见用法:
wxgzh article.md适合“写完 Markdown 后直接进草稿箱”的场景。
常见范例
指定主题:
wxgzh article.md --theme blue指定作者与摘要:
wxgzh article.md --author "wxgzh" --digest "这是一篇摘要"指定现成封面图:
wxgzh article.md --cover ./cover.jpg指定中间产物输出目录:
wxgzh article.md --output-dir ./.wxgzh开启评论:
wxgzh article.md --enable-comment常见参数说明
--theme <theme>:指定文章主题。--author <author>:覆盖作者名。--cover <cover.jpg>:使用你已有的封面图,不再自动生成。--no-cover:关闭自动封面生成;如果同时也没有提供封面,会报错。--digest <digest>:覆盖文章摘要。--output-dir <dir>:指定中间文件输出目录,默认是文章同级目录下的.wxgzh/。--enable-comment:为本次草稿开启评论。
输出结果
默认流程执行后,通常会在同级 .wxgzh/ 目录中看到:
article.html:转换后的 HTMLarticle.cover.jpg:自动生成的封面图
最后命令会输出草稿创建结果 JSON。
四、分步流程
如果你想更可控地处理文章,可以分步骤执行。
第 1 步:将 Markdown 转成 HTML
wxgzh md2html --from article.md --to .wxgzh/article.html指定主题:
wxgzh md2html --from article.md --to .wxgzh/article.html --theme blue这个步骤会:
- 解析 Markdown
- 提取标题、作者、摘要等元信息
- 渲染代码高亮
- 渲染数学公式
- 内联主题 CSS,生成适合公众号场景的 HTML
第 2 步:修复 HTML,并上传正文图片
wxgzh fix .wxgzh/article.html这个步骤会:
- 移除不适合公众号的结构(如
script、iframe) - 处理图片样式
- 将本地图片上传到微信,替换为微信返回的图片地址
如果你只想修结构,不上传图片:
wxgzh fix .wxgzh/article.html --no-upload如果你希望把本地图片路径替换成 CDN:
wxgzh fix .wxgzh/article.html --cdn https://cdn.example.com第 3 步:制作封面图
自动随机使用内置背景:
wxgzh cover --title "我的文章" --to .wxgzh/cover.jpg指定作者名:
wxgzh cover --title "我的文章" --author "wxgzh" --to .wxgzh/cover.jpg指定自定义背景图:
wxgzh cover --title "我的文章" --background ./bg.jpg --to .wxgzh/cover.jpg查看内置背景名称:
wxgzh cover --list内置背景图片位于 assets/backgrounds/。
第 4 步:发布到公众号草稿箱
wxgzh publish --article .wxgzh/article.html --cover .wxgzh/cover.jpg也可以覆盖标题、作者、摘要:
wxgzh publish --article .wxgzh/article.html --cover .wxgzh/cover.jpg --title "新的标题" --author "wxgzh" --digest "新的摘要"开启评论:
wxgzh publish --article .wxgzh/article.html --cover .wxgzh/cover.jpg --enable-comment一键流程与分步流程如何选择
- 想快速发布:直接用
wxgzh article.md - 想检查 HTML 效果:先用
md2html - 想自行处理图片:再单独执行
fix - 想手动挑选封面:单独执行
cover - 想复用现有 HTML 和封面:最后执行
publish
五、样式控制
1. 修改文章主题
项目的主题 CSS 位于 styles/ 目录,每个主题一个 CSS 文件,例如:
styles/default.cssstyles/blue.cssstyles/green.cssstyles/red.css
使用方法:
wxgzh article.md --theme blue或者设置为默认主题:
wxgzh config --default-theme blue2. 修改 CSS 样式
如果你想在现有主题基础上做少量覆盖,直接编辑:
styles/custom.css这个文件会在主题 CSS 之后加载,适合做局部覆盖。
例如:
h3 {
text-align: center !important;
}
blockquote {
color: #666666 !important;
}如果你想做完整主题,也可以直接修改或新增 styles/*.css 文件。
3. 修改封面背景
封面支持两种背景来源:
- 使用内置背景图
- 使用你自己的背景图
使用你自己的背景图:
wxgzh cover --title "文章标题" --background ./my-bg.jpg --to .wxgzh/cover.jpg如果走一键发布流程,但你不想用自动封面,可以直接指定已有封面:
wxgzh article.md --cover ./cover.jpg4. 自定义封面
如果你已经在设计工具里做好了封面,最简单的方式就是直接传入:
wxgzh article.md --cover ./cover.jpg或者分步发布时使用:
wxgzh publish --article .wxgzh/article.html --cover ./cover.jpg5. 使用 Front Matter 控制元信息
Markdown 文件支持 Front Matter,例如:
---
title: 这是文章标题
author: wxgzh
digest: 这是文章摘要
theme: blue
cover: ./cover.jpg
enableComment: true
---
# 这是文章标题
正文内容支持的常用字段:
title:标题author:作者digest:摘要theme:主题名account:目标公众号账号名cover:封面图路径enableComment:是否开启评论
命令行参数优先级高于 Front Matter,Front Matter 又高于默认配置。
六,备忘清单
1. 支持的 Markdown 内容
本项目当前重点支持这些常见内容:
- 标题、段落、粗体、斜体、链接
- 有序列表、无序列表
- 引用块
- 代码块与语法高亮
- 图片
- 表格
- 数学公式(行内与块级)
2. 常用命令速查
wxgzh --help
wxgzh --version
wxgzh article.md
wxgzh config --list
wxgzh config --list-themes
wxgzh md2html --from article.md --to .wxgzh/article.html
wxgzh fix .wxgzh/article.html --no-upload
wxgzh cover --title "我的文章" --to .wxgzh/cover.jpg
wxgzh publish --article .wxgzh/article.html --cover .wxgzh/cover.jpg