我用 OpenClaw 搭了个自动发布工作流:Markdown 写完,手机发消息3秒自动排版和发布
以前写完文章,想到还要排版和公众号编辑器编辑就头大,经常拖着不发。现在写完Markdown,顺手敲个命令,3 秒后去公众号后台直接点发布,心情都不一样了。上篇展示 OpenClaw 工作流效果的时候,其中有一个工作流是: Markdown 文章写完直接自动排版并发布到公众号草稿箱。一篇文章排版 1 小时起步。我现在写完 Markdown,一条命令,3 秒后文章已经躺在公众号草稿箱里,排版精美,格式
大家好,我是木川
上篇展示 OpenClaw 工作流效果的时候,其中有一个工作流是: Markdown 文章写完直接自动排版并发布到公众号草稿箱
手动排版公众号太痛苦,Markdown 写好了还要逐段复制到编辑器,调字体、改间距、对齐样式……一篇文章排版 1 小时起步
我现在写完 Markdown,一条命令,3 秒后文章已经躺在公众号草稿箱里,排版精美,格式不乱
今天把这套「一键排版+自动发布」的完整配置拆给你——从样式模板设置到公众号 API 接入,跟着做就能复现
一、效果展示
快捷发布指令

指定路径指定样式发布指令

二、前置准备
OpenClaw :安装参考我上一篇文章 刷过 100 个 OpenClaw 视频还没动手?这篇带截图的,真的能跑通
微信公众号 API key、API Secret:登录微信开发者平台获取
三、实现步骤
0、方案选型
方案 A:远程 MCP 服务(简单,但有限制)
优点:配置简单
缺点:无法自定义代码块样式
方案 B:本地 wenyan-cli(推荐,完全控制)
优点:完全控制主题、代码高亮、所有参数
缺点:需要本地安装 node.js 和 wenyan-cli
推荐:使用 方案 B(本地 wenyan-cli)
1、安装 node.js
# 检查是否已安装
node --version # 需要 v18+,推荐 v22+
# 如未安装,使用 nvm 安装
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
nvm install 22
nvm use 22
2、安装 wenyan-cli
在 OpenClaw 所在的机器的命令行执行如下命令,通过 npm 安装 wenyan-cli
npm install -g @wenyan-md/cli
3、配置微信凭证
登录微信开发者平台,获取 AppId 和 AppSecret
https://developers.weixin.qq.com/console/product/mp/wx809d32b836a943ad?tab1=basicInfo&tab2=dev

命令行执行如下内容,将微信 AppId 和 AppSecret 写入 ~/.bashrc
echo 'export WECHAT_APP_ID="your-app-id"' >> ~/.bashrc
echo 'export WECHAT_APP_SECRET="your-app-secret"' >> ~/.bashrc
source ~/.bashrc
添加服务器 ip 到公众号白名单
找到 openclaw 部署的服务器 ip,添加到 API IP 白名单;如果你用的腾讯云服务器部署的 openclaw,打开 https://console.cloud.tencent.com/lighthouse/instance/index?rid=15

4、样式模板配置
1)内置排版主题
wenyan theme -l
|
主题 |
风格 |
推荐场景 |
|---|---|---|
default |
简洁经典 |
通用文章 |
lapis |
青蓝色 |
技术文档 |
orangeheart |
暖橙色 |
温暖风格 |
purple |
优雅紫 |
品牌宣传 |
phycat |
薄荷绿 |
清新风格 |
pie |
现代时尚 |
时尚内容 |
2)代码高亮主题
浅色背景:
|
主题 |
背景色 |
特点 |
|---|---|---|
github |
白色 |
GitHub 官方风格 |
solarized-light |
浅黄 |
护眼柔和 |
atom-one-light |
浅灰 |
Atom 编辑器风格 |
深色背景(推荐):
|
主题 |
背景色 |
特点 |
|---|---|---|
github-dark |
深灰 |
GitHub 深色 |
dracula |
深紫 |
流行深色主题 |
monokai |
深灰 |
经典深色 |
solarized-dark |
深青 |
护眼深色 |
atom-one-dark |
深灰 |
Atom 深色 |
4、自定义样式
如果你觉得内置主题不满足要求,可以自定义样式,注册后就可以使用了
创建 CSS 文件 :~/.openclaw/workspace/themes/style-purple.css
:root {
--primary-color: #8e44ad;
--text-color: #2c3e50;
--block-bg-color: #f5eef8;
--bg-color: #ffffff;
}
#wenyan {
line-height: 1.75;
font-size: 16px;
color: var(--text-color);
background: var(--bg-color);
padding: 20px;
}
#wenyanh1 {
font-size: 1.8em;
text-align: center;
color: var(--primary-color);
margin: 1.5em01em;
border-bottom: 2px solid var(--primary-color);
padding-bottom: 0.5em;
}
#wenyanh2 {
font-size: 1.4em;
color: var(--bg-color);
background: var(--primary-color);
padding: 8px16px;
border-radius: 4px;
margin: 1.5em00.8em;
display: inline-block;
}
#wenyanh3 {
font-size: 1.2em;
color: var(--primary-color);
margin: 1.2em00.6em;
}
#wenyanstrong {
color: var(--primary-color);
font-weight: 600;
}
#wenyana {
color: var(--primary-color);
text-decoration: none;
border-bottom: 1px solid var(--primary-color);
}
#wenyana:hover {
opacity: 0.8;
}
#wenyanblockquote {
border-left: 4px solid var(--primary-color);
background: var(--block-bg-color);
padding: 1em1.5em;
margin: 1em0;
border-radius: 04px4px0;
}
#wenyancode {
color: var(--primary-color);
background: var(--block-bg-color);
padding: 2px6px;
border-radius: 3px;
font-family: monospace;
font-size: 0.9em;
}
#wenyanul, #wenyanol {
margin: 1em0;
padding-left: 2em;
}
#wenyanli {
margin: 0.5em0;
}
#wenyantable {
width: 100%;
border-collapse: collapse;
margin: 1.5em0;
}
#wenyanth {
background: var(--primary-color);
color: var(--bg-color);
padding: 12px;
text-align: left;
font-weight: 600;
}
#wenyantd {
padding: 10px12px;
border-bottom: 1px solid #e0e0e0;
}
#wenyantr:nth-child(even) {
background: var(--block-bg-color);
}
#wenyanp {
margin: 1em0;
}
/* 代码块样式 */
#wenyan pre {
background: var(--block-bg-color);
border-radius: 6px;
padding: 16px;
overflow-x: auto;
margin: 1em0;
border: 1px solid rgba(0,0,0,0.05);
}
#wenyan pre code {
background: transparent;
padding: 0;
color: var(--text-color);
font-size: 14px;
line-height: 1.6;
font-family: 'Consolas', 'Monaco', 'Courier New', monospace;
}
/* 代码高亮颜色 */
#wenyan.keyword { color: #d73a49; font-weight: bold; }
#wenyan.string { color: #032f62; }
#wenyan.number { color: #005cc5; }
#wenyan.comment { color: #6a737d; font-style: italic; }
#wenyan.function { color: #6f42c1; }
#wenyan.operator { color: #d73a49; }
注册主题
wenyan theme --add --name style-purple --path ~/.openclaw/workspace/themes/style-purple.css
重新执行查看可用主题命令,就会看到自定义主题了
wenyan theme -l

5、添加快捷指令

/root/. Openclaw/workspace/Tools.md 增加如下内容:
## 公众号发布
**触发词**:"发布公众号"
**标准命令**:
```bash
wenyan publish -f {文件} -t style_blue -h github-dark --no-mac-style --no-footnote
**常用变体**:
- 默认文件:article.md
- 如需 Mac 风格:去掉 --no-mac-style
- 如需脚注:去掉 --no-footnote
四、使用
1、准备 markdown 文件
注意事项:必须包含 title(标题) 和 cover (封面图)
---
author: 作者
title: 我的文章标题
cover: https://example.com/cover.jpg
summary: 文章摘要
---
# 一级标题
## 二级标题
### 三级标题
正文内容,支持 **加粗**、*斜体*、[链接](https://example.com)
## 代码示例
```python
def hello():
print("Hello World")
2、命令行触发
命令行执行如下命令,手动排版和发布
wenyan publish -f file.md -t style_blue -h github-dark --no-mac-style --no-footnote
|
参数 |
说明 |
示例值 |
|---|---|---|
-f, --file |
Markdown 文件路径 |
-f article.md |
-t, --theme |
排版主题 |
lapis
, |
-h, --highlight |
代码高亮主题,默认使用 |
github-dark
, |
--no-mac-style |
禁用 Mac 风格代码块 |
无值 |
--no-footnote |
禁用链接转脚注 |
无值 |
-c, --custom-theme |
自定义 CSS 路径 |
-c style.css |
这个命令会完成调用 wenyan 排版引擎应用指定样式排版、自动上传图片到微信素材库、发布文章到公众号草稿箱多个步骤,一气呵成
3、自然语言触发
在飞书群上传要发布的 markdown 文件,直接告诉 AI 发布这篇公众号文章就行

五、常见问题
1、代码块背景是黄色,想改白色/深色
问题原因:wenyan 默认使用 solarized-light 主题(浅黄背景)
解决方案:
# 使用深色背景高亮(推荐)
wenyan publish -f article.md -h github-dark
2、文章末尾有引用链接 [1] [2],想去掉
问题原因:wenyan 默认将链接转为脚注
解决方案:
wenyan publish -f article.md --no-footnote
3、代码块有 Mac 窗口样式,想去掉
问题原因:默认开启 Mac 风格代码块
解决方案:
wenyan publish -f article.md --no-mac-style
4、找不到文章标题
问题原因:Frontmatter 格式错误
解决方案:
markdown 开头确认包含如下内容,并大小写正确
---
author:作者
title: 文章标题
cover: 封面图像链接
summary:文章摘要
---
六、写在最后
装完这套工作流,我最大的感受是:写作和发布之间那道烦人的沟,现在真的只是一条命令的事。
以前写完文章,想到还要排版和公众号编辑器编辑就头大,经常拖着不发。现在写完 Markdown,顺手敲个命令,3 秒后去公众号后台直接点发布,心情都不一样了。
如果配置过程中遇到问题,也欢迎留言,我尽量帮你排查。
更多推荐


所有评论(0)