微信公众号运营工具
包装官方 文颜 CLI,不重写渲染器。本 skill 根目录是 SKILL.md 所在目录。成品写在当前工作区。
先过门再干活。 没跑通 setup.py check / 用户未确认密钥和白名单之前,不写稿、不渲染、不发布。
何时用
- 写或改一篇微信公众号文章
- 把 Markdown 渲成公众号样式 HTML
- 发布到公众号草稿箱
- 选官方主题或本 skill 自带主题
- 配置 AppID / AppSecret、处理 IP 白名单 /
40164
不要用它做朋友圈、视频号或关键词搜稿。
运行时需要系统 python3、已安装的文颜 CLI(npm i -g @wenyan-md/cli,即 wenyan 命令),以及 Node.js。密钥和白名单配在本机,不进本 skill。
流程
setup.py check
→ 未就绪:按输出引导密钥和白名单,停下
→ 用户说配好了:setup.py verify
→ 通过后写 Markdown(front matter)→ 选题 → wenyan.py render
→ 用户点名发布:wenyan.py publish
脚本在本 skill 根目录执行。
0. 前置配置
python3 scripts/setup.py check
python3 scripts/setup.py verify
细节见 references/setup.md。
- 密钥:
wenyan credential --set,或工作区.env的WECHAT_APP_ID/WECHAT_APP_SECRET - 白名单:<https://mp.weixin.qq.com> → 设置与开发 → 基本配置 → IP白名单
- 查出口 IP:
python3 scripts/setup.py ip - 禁止把 AppSecret 写进对话、skill 或 git
40164= IP 未进白名单;家宽常变则改用publish --server
check 通过只表示密钥文件在、IP 查到了。发布前必须 verify 拿到 access_token。
1. 写稿
约定见 references/markdown.md。发布稿顶部要有 title,建议有 cover。
2. 选题
python3 scripts/wenyan.py list
何时用哪套见 references/themes.md。用户没点名时按稿件类型选,不要一律 default。
自带:serif-journal ink-wash tech-slate warm-note comic-panel ivory-paper celadon newsprint dusk-rose swiss-grid。
官方:default orangeheart rainbow lapis pie maize purple phycat。
新增主题:写 themes/<id>.css,登记 catalog.json。选择器合同见 references/theme-contract.md。用 -c 注入,不要 theme --add。
3. 渲染(默认交付)
python3 scripts/wenyan.py render ./article.md --theme tech-slate -o ./article.html
只交 HTML 到工作区。不要默认发布。
4. 发布(仅用户明确说「发布」)
python3 scripts/wenyan.py publish ./article.md --theme tech-slate
走草稿箱,不直接群发。多账号加 --app-id。无固定 IP 用 --server。
陷阱
- 没过 setup 就渲染/发布
- 把 Secret 打进聊天或仓库
- 自带主题误用
-t(应走包装脚本,它会改成-c) - 拷贝 mdnice / 社区 CSS 进 skill(版权)
- 家宽 IP 变了还用旧白名单
- 发布稿缺
titlefront matter - 用 Python 重写文颜渲染器
验证
在本 skill 根目录:
python3 scripts/setup.py check能打印 CLI / 凭据 / 公网 IPpython3 scripts/wenyan.py list同时列出官方和自带主题python3 scripts/wenyan.py render fixtures/sample.md --theme ink-wash -o /tmp/wenyan-sample.html写出含#wenyan的 HTML
License
Apache 2.0,见 LICENSE.md。文颜与微信接口仍受各自条款约束。