用途:把确认过的公众号终稿 Markdown 排版成平台原生富文本,连同封面和文内图片写入微信公众号草稿箱,只创建草稿、从不群发。基于开源工具 wenyan CLI(Apache-2.0)实现,是公众号渠道的发布适配层;wenyan 不可用时按 self-media-content-delivery 交付手动发布包。
前置检测:用 wenyan --version 确认安装,未安装时提示 npm install -g @wenyan-md/cli,用户不想安装则交付手动发布包。确认 WECHAT_APP_ID 与 WECHAT_APP_SECRET 环境变量存在,只判断存在性,不读取、不回显、不写入文件。首次发布前需把运行机器 IP 加入公众号后台白名单;IP 频繁变动或团队协作用 server 模式。
输入契约:文章顶部需 frontmatter,title 必填,cover 可为本地或网络路径,缺省时自动取正文第一张图,author 与 source_url 可选。文内图片支持本地绝对路径、相对路径和网络地址,发布时自动上传素材库。小绿书图片消息设 type: image 自动提取正文全部图片,或手动列出 image_list,最多 20 张,首图即封面。
主题选择:优先读取账号风格档案中的默认排版主题;无默认或用户要求换风格时,用 wenyan render -f 文章.md -t 主题 生成候选预览让用户对比,选定后写入档案后续沿用。需要品牌化排版时用 -c 加载自定义 CSS 主题。
发布流程:需终稿确认与草稿箱写入两层授权。核对 frontmatter、封面和图片路径后,用 wenyan render 本地渲染确认无乱码、代码块和表格可读,再执行 wenyan publish -f 文章.md -t 主题 -h 高亮主题 写入草稿箱,并提醒用户在后台核对标题、封面、前两段、图片数量和外链,把结果写回任务卡。失败时按 wenyan-setup.md 排查,同一错误不盲目重试超过一次。多账号改用凭据配置管理,publish 时加 --app-id 指定,每个账号独立配置 IP 白名单。
安全边界:只写草稿箱不调用群发接口;凭据只通过环境变量或凭据配置提供,不写入任务卡、文章、日志或仓库;输出中出现 token 或密钥片段时不记录、不转述;发布报错、白名单拦截或凭据失效时立即停止交给用户。
输出:返回草稿标题、使用主题、封面来源、图片数量、草稿创建时间和人工核对清单。