把视频文案排成公众号文章
命令行排版 · Apache-2.0文颜(Wenyan) 是 caol64 做的 Markdown 排版工具,协议 Apache-2.0。命令行仓库在 2026-10-15 查询时是 243 个 Star,当前发布版本 2.0.12,排版核心库 3.0.12。它把一篇 Markdown 套上主题,变成公众号能直接用的版式,并放进草稿箱。
命令行发布时会自己读 frontmatter 里的标题和封面,把正文和封面里的图片传到公众号素材库,再用主题把 Markdown 渲染成富文本,最后创建一篇草稿。默认主题是 default,代码高亮默认 solarized-light,代码块带 Mac 三色圆点,链接默认转成脚注。图文和图片消息(小绿书)走同一条命令。
桌面版还能复制到知乎、今日头条、掘金、CSDN、Medium。这条视频用的是命令行版,方便丢给 Codex:装一次,配好公众号 AppID 和密钥,之后用一句话把字幕改写稿排成文章。主题也可以让 Codex 按 generate-wenyan-theme 这个 skills 现写一套 CSS,再注册进文颜。
| 项目 | 说明 |
|---|---|
| 输入 | Markdown 文件、标准输入,或把短内容直接跟在命令后面。文章顶部用 frontmatter 写标题 |
| 适用类型 | 图文草稿;frontmatter 设 type 为 image 时发图片消息(小绿书) |
| 输出 | publish 创建公众号草稿;render 只渲染 HTML,不上传 |
| 语言 / 兼容 | 中文文稿为主。代码高亮可选 solarized-light、monokai、github、dracula 等 9 套 |
| 规格 / 容量 | 小绿书 image_list 最多 20 张,第一张当封面。图片格式支持 jpg、png、gif |
| 环境 | 建议配置 |
|---|---|
| 操作系统 | Windows、macOS、Linux 都能跑命令行。macOS 另有 App Store 桌面版,Windows / Linux 有跨平台桌面版 |
| 运行环境 | Node.js,用 npm 全局安装。仓库没有写死小版本,按当前 npm 包安装即可 |
| 硬件 | 排版在本机完成,不需要显卡。发布时要能访问公众号接口 |
| 没有固定 IP 时 | 本机 IP 要加进公众号后台白名单。IP 经常变,可以用文颜的 Server 模式,或给命令加代理 |
| 关键依赖 | npm 包 @wenyan-md/cli,内部使用 @wenyan-md/core。公众号侧要准备 AppID 和 AppSecret |
本机先有 Node.js。在 GitHub 搜索 caol64/wenyan-cli,或直接用下面这一行装官方 npm 包。
npm install -g @wenyan-md/cli
公众号后台的开发接口里拿到 AppID 和 AppSecret,写进环境变量。IP 白名单没加时,上传会返回 invalid ip。IP 经常变,可以改走 Server 模式,由一台固定机器去调公众号接口。
WECHAT_APP_ID=你的AppID
WECHAT_APP_SECRET=你的密钥
标题必填。封面可以不写,有正文图片时会用第一张。先用 render 在本地看 HTML,确认后再 publish。
---
title: 一条口播改成的文章
cover: ./cover.jpg
author: IT小圈
---
## 先把口语收干净
字幕里的口头禅删掉,再拆成小标题。
wenyan render -f article.md -t orangeheart
wenyan publish -f article.md -t orangeheart
常用参数说明:
| 参数 | 作用 |
|---|---|
-f, --file | Markdown 路径。不传文件时,也可以从管道或命令参数读内容 |
-t, --theme | 主题 id,默认 default。橙心是 orangeheart |
-h, --highlight | 代码高亮主题,默认 solarized-light |
-c, --custom-theme | 这一次使用的自定义 CSS,本地文件或网络地址 |
--no-mac-style | 关掉代码块顶部的三色圆点 |
--no-footnote | 关掉链接转脚注 |
--app-id | 多个公众号时指定发到哪一个 |
--env-file | 从指定文件读 AppID 和密钥 |
内置主题用 wenyan theme -l 查看。自定义 CSS 先注册再按名字使用。小绿书不套主题,把 type 写成 image,正文里的图片会收成图集,最多 20 张。
wenyan theme --add --name my-theme --path ./my-theme.css
wenyan publish -f article.md -t my-theme
wenyan publish -f photos.md
---
title: 这周的九张图
type: image
---



把安装命令发给 Codex,让它执行 npm install -g @wenyan-md/cli。凭据放在环境变量里,不要写进口播和截图。想要自己的版式,让 Codex 安装 skills generate-wenyan-theme,用一句话生成 CSS,再注册成主题。之后直接说:把这周三条视频都改成公众号文章,每篇配三张截图,再挑九张图发一条小绿书。
| 做法 | 结果 |
|---|---|
| Markdown 直接粘进公众号编辑器 | 标题、引用、代码块样式经常掉,图片还要一张张上传 |
| 只让 AI 写出 Markdown | 稿子有了,排版和传图仍要自己做 |
| 文颜命令行 | 套上主题,图片进素材库,草稿箱里多一篇。小绿书用同一条命令 |
文颜先按主题把 Markdown 渲染成公众号富文本,并把图片换成素材库地址。手粘贴时标题和代码块最容易散,图片也要另外上传。
publish 创建的是微信公众号草稿,包括图文和小绿书。知乎、今日头条、掘金、CSDN、Medium 用桌面版排好后复制过去。
当前机器的 IP 不在公众号白名单里。把 IP 加进后台,或者改用 Server 模式,让一台固定地址的机器去调接口。也可以给命令加代理。
检查环境变量 WECHAT_APP_ID 和 WECHAT_APP_SECRET,或用 --env-file 指定文件。配了多个公众号时,用 wenyan credential -l 看凭据,发布时加上 --app-id。
不需要。排版在本机用 Node.js 完成。真正花时间的是改稿和截图,这两步交给 Codex 和 ffmpeg,不占显存。
公众号内置 8 套,wenyan theme -l 可以列出。视频里用的橙心,命令是 -t orangeheart。想要自己的风格,用 skills generate-wenyan-theme 生成 CSS,再 wenyan theme --add 注册。内置主题删不掉,只能删自己加的。
把 npm 安装命令发给 Codex。AppID 和密钥放环境变量,不要贴进对话。改写口播、截图、选择主题、执行 publish,都用一句人话。MCP 版是另一条路,对话里直接说「用橙心主题把这篇文章存进草稿箱」。
排版能力在核心库 wenyan-core。桌面版适合手点复制,命令行适合脚本和 Codex,MCP 适合在对话里直接发草稿。主题 CSS 三边通用。
Apache-2.0,可以用于自己的公众号和商业内容。保留许可证声明即可。发布出去的是你自己的文章,文颜只负责排版和存草稿。
先确认路径存在,格式是 jpg、png 或 gif。相对路径只在用 -f 读取本地文件时有效。封面不写时,会用正文第一张图。