Agent SkillsNeverSight/learn-skills.dev › wechat-publisher

wechat-publisher

GitHub

封装 wenyan-cli 实现 Markdown 一键发布至微信公众号草稿箱,支持自动转码、图片上传及多主题配置。

data/skills-md/0731coderlee-sudo/wechat-publisher/wechat-publisher/SKILL.md NeverSight/learn-skills.dev

Trigger Scenarios

用户请求将 Markdown 文章发布到微信公众号 需要自动化处理公众号内容格式与图床上传

Install

npx skills add NeverSight/learn-skills.dev --skill wechat-publisher -g -y
More Options

Non-standard path

npx skills add https://github.com/NeverSight/learn-skills.dev/tree/main/data/skills-md/0731coderlee-sudo/wechat-publisher/wechat-publisher -g -y

Use without installing

npx skills use NeverSight/learn-skills.dev@wechat-publisher

指定 Agent (Claude Code)

npx skills add NeverSight/learn-skills.dev --skill wechat-publisher -a claude-code -g -y

安装 repo 全部 skill

npx skills add NeverSight/learn-skills.dev --all -g -y

预览 repo 内 skill

npx skills add NeverSight/learn-skills.dev --list

SKILL.md

Frontmatter
{
    "name": "wechat-publisher",
    "metadata": {
        "openclaw": {
            "emoji": "📱"
        }
    },
    "description": "一键发布 Markdown 到微信公众号草稿箱。基于 wenyan-cli,支持多主题、代码高亮、图片自动上传。"
}

wechat-publisher

一键发布 Markdown 文章到微信公众号草稿箱

基于 wenyan-cli 封装的 OpenClaw skill。

功能

  • ✅ Markdown 自动转换为微信公众号格式
  • ✅ 自动上传图片到微信图床
  • ✅ 一键推送到草稿箱
  • ✅ 多主题支持(代码高亮、Mac 风格代码块)
  • ✅ 支持本地和网络图片

快速开始

1. 安装 wenyan-cli

wenyan-cli 需要全局安装:

npm install -g @wenyan-md/cli

验证安装:

wenyan --help

注意: publish.sh 脚本会自动检测并安装 wenyan-cli(如果未安装)

2. 配置 API 凭证

API 凭证已保存在 /Users/leebot/.openclaw/workspace/TOOLS.md

确保环境变量已设置:

export WECHAT_APP_ID=your_wechat_app_id
export WECHAT_APP_SECRET=your_wechat_app_secret

重要: 确保你的 IP 已添加到微信公众号后台的白名单!

配置方法:https://yuzhi.tech/docs/wenyan/upload

3. 准备 Markdown 文件

文件顶部必须包含完整的 frontmatter(wenyan 强制要求):

---
title: 文章标题(必填!)
cover: https://example.com/cover.jpg  # 封面图(必填!)
---

# 正文开始

你的内容...

⚠️ 关键发现(实测):

  • titlecover 都是必填字段
  • 缺少任何一个都会报错:"未能找到文章封面"
  • 虽然文档说"正文有图可省略cover",但实际测试必须提供 cover
  • 所有图片(本地/网络)都会自动上传到微信图床

推荐封面图来源:

# 方案1: 相对路径(推荐,便于分享)
cover: ./assets/default-cover.jpg

# 方案2: 绝对路径
cover: /Users/bruce/photos/cover.jpg

# 方案3: 网络图片
cover: https://your-cdn.com/image.jpg

💡 提示: 使用相对路径时,从 Markdown 文件所在目录开始计算。

4. 发布文章

方式 1: 使用 publish.sh 脚本

cd /Users/leebot/.openclaw/workspace/wechat-publisher
./scripts/publish.sh /path/to/article.md

方式 2: 直接使用 wenyan-cli

wenyan publish -f article.md -t lapis -h solarized-light

方式 3: 在 OpenClaw 中使用

"帮我发布这篇文章到微信公众号" + 附带 Markdown 文件路径

主题选项

wenyan-cli 支持多种主题:

内置主题:

  • default - 默认主题
  • lapis - 青金石(推荐)
  • phycat - 物理猫
  • 更多主题见:https://github.com/caol64/wenyan-core/tree/main/src/assets/themes

代码高亮主题:

  • atom-one-dark / atom-one-light
  • dracula
  • github-dark / github
  • monokai
  • solarized-dark / solarized-light (推荐)
  • xcode

使用示例:

# 使用 lapis 主题 + solarized-light 代码高亮
wenyan publish -f article.md -t lapis -h solarized-light

# 使用 phycat 主题 + GitHub 代码高亮
wenyan publish -f article.md -t phycat -h github

# 关闭 Mac 风格代码块
wenyan publish -f article.md -t lapis --no-mac-style

# 关闭链接转脚注
wenyan publish -f article.md -t lapis --no-footnote

自定义主题

临时使用自定义主题

wenyan publish -f article.md -c /path/to/custom-theme.css

安装自定义主题(永久)

# 从本地文件安装
wenyan theme --add --name my-theme --path /path/to/theme.css

# 从网络安装
wenyan theme --add --name my-theme --path https://example.com/theme.css

# 使用已安装的主题
wenyan publish -f article.md -t my-theme

# 删除主题
wenyan theme --rm my-theme

列出所有主题

wenyan theme -l

工作流程

  1. 准备内容 - 用 Markdown 写作
  2. 运行脚本 - 一键发布到草稿箱
  3. 审核发布 - 到公众号后台审核并发布

Markdown 格式要求

必需的 Frontmatter

⚠️ 关键(实测结果):wenyan-cli 强制要求完整的 frontmatter!

---
title: 文章标题(必填!)
cover: 封面图片URL或路径(必填!)
---

示例 1:相对路径(推荐)

---
title: 我的技术文章
cover: ./assets/cover.jpg
---

# 正文...

示例 2:绝对路径

---
title: 我的技术文章
cover: /Users/bruce/photos/cover.jpg
---

# 正文...

示例 3:网络图片

---
title: 我的技术文章
cover: https://example.com/cover.jpg
---

# 正文...

❌ 错误示例(会报错):

# 只有 title,没有 cover
---
title: 我的文章
---

错误信息:未能找到文章封面
# 完全没有 frontmatter
# 我的文章

错误信息:未能找到文章封面

💡 重要发现:

  • 虽然 wenyan 官方文档说"正文有图片可省略cover"
  • 实际测试必须提供 cover,否则报错
  • title 和 cover 缺一不可

图片支持

  • ✅ 本地路径:![](./images/photo.jpg)
  • ✅ 绝对路径:![](/Users/bruce/photo.jpg)
  • ✅ 网络图片:![](https://example.com/photo.jpg)

所有图片会自动上传到微信图床!

代码块

```python
def hello():
    print("Hello, WeChat!")
```

会自动添加代码高亮和 Mac 风格装饰。

故障排查

1. 上传失败:IP 不在白名单

错误信息: ip not in whitelist

解决方法:

  1. 获取你的公网 IP:curl ifconfig.me
  2. 登录微信公众号后台:https://mp.weixin.qq.com/
  3. 开发 → 基本配置 → IP 白名单 → 添加你的 IP

2. wenyan-cli 未安装

错误信息: wenyan: command not found

解决方法:

npm install -g @wenyan-md/cli

3. 环境变量未设置

错误信息: WECHAT_APP_ID is required

解决方法:

export WECHAT_APP_ID=your_wechat_app_id
export WECHAT_APP_SECRET=your_wechat_app_secret

或在 ~/.zshrc / ~/.bashrc 中永久添加。

4. Frontmatter 缺失

错误信息: title is required in frontmatter

解决方法: 在 Markdown 文件顶部添加:

---
title: 你的文章标题
---

参考资料

更新日志

2026-02-05 - v1.0.0

  • ✅ 初始版本
  • ✅ 基于 wenyan-cli 封装
  • ✅ 支持一键发布到草稿箱
  • ✅ 多主题支持
  • ✅ 自动图片上传

License

Apache License 2.0 (继承自 wenyan-cli)

Version History

  • e0220ca Current 2026-07-05 20:28

Same Skill Collection

data/skills-md/00prabalk00/claude-skills/knowledge-base-gap-finder/SKILL.md
data/skills-md/01000001-01001110/agent-jira-skills/jira-agile/SKILL.md
data/skills-md/01000001-01001110/agent-jira-skills/jira-auth/SKILL.md
data/skills-md/01000001-01001110/agent-jira-skills/jira-issues/SKILL.md
data/skills-md/01000001-01001110/agent-jira-skills/jira-project-management/SKILL.md
data/skills-md/01000001-01001110/agent-jira-skills/jira-projects/SKILL.md
data/skills-md/01000001-01001110/agent-jira-skills/jira-safe/SKILL.md
data/skills-md/01000001-01001110/agent-jira-skills/jira-search/SKILL.md
data/skills-md/01000001-01001110/agent-jira-skills/jira-spaces/SKILL.md
data/skills-md/01000001-01001110/agent-jira-skills/jira-transitions/SKILL.md
data/skills-md/0froq/skills/conventionalcommits/SKILL.md
data/skills-md/0froq/skills/nuxt/SKILL.md
data/skills-md/0froq/skills/oq/SKILL.md
data/skills-md/0froq/skills/pinia/SKILL.md
data/skills-md/0froq/skills/pnpm/SKILL.md
data/skills-md/0froq/skills/slidev/SKILL.md
data/skills-md/0froq/skills/tsdown/SKILL.md
data/skills-md/0froq/skills/turborepo/SKILL.md
data/skills-md/0froq/skills/unocss/SKILL.md
data/skills-md/0froq/skills/vitepress/SKILL.md
data/skills-md/0froq/skills/vitest/SKILL.md
data/skills-md/0froq/skills/vue-best-practices/SKILL.md
data/skills-md/0froq/skills/vue-router-best-practices/SKILL.md
data/skills-md/0froq/skills/vue-testing-best-practices/SKILL.md
data/skills-md/0froq/skills/vue/SKILL.md
data/skills-md/0froq/skills/vueuse-functions/SKILL.md
data/skills-md/0froq/skills/web-design-guidelines/SKILL.md
data/skills-md/0juano/agent-skills/bondterminal-x402/SKILL.md
data/skills-md/0juano/agent-skills/edgeone-pages-deploy/SKILL.md
data/skills-md/0juano/agent-skills/ley-ar/SKILL.md
data/skills-md/0juano/agent-skills/ticktick/SKILL.md
data/skills-md/0juano/agent-skills/x-image-cards/SKILL.md
data/skills-md/0juano/x-image-cards/x-image-cards/SKILL.md
data/skills-md/0x0funky/agent-sprite-forge/generate2dsprite/SKILL.md
data/skills-md/0x0funky/agent-sprite-forge/video2dsprite/SKILL.md
data/skills-md/0x2e/superpowers/brainstorming/SKILL.md
data/skills-md/0x2e/superpowers/dispatching-parallel-agents/SKILL.md
data/skills-md/0x2e/superpowers/executing-plans/SKILL.md
data/skills-md/0x2e/superpowers/finishing-a-development-branch/SKILL.md
data/skills-md/0x2e/superpowers/receiving-code-review/SKILL.md
data/skills-md/0x2e/superpowers/requesting-code-review/SKILL.md
data/skills-md/0x2e/superpowers/subagent-driven-development/SKILL.md
data/skills-md/0x2e/superpowers/systematic-debugging/SKILL.md
data/skills-md/0x2e/superpowers/test-driven-development/SKILL.md
data/skills-md/0x2e/superpowers/using-git-worktrees/SKILL.md
data/skills-md/0x2e/superpowers/using-superpowers/SKILL.md
data/skills-md/0x2e/superpowers/verification-before-completion/SKILL.md
data/skills-md/0x2e/superpowers/writing-plans/SKILL.md
data/skills-md/0x2e/superpowers/writing-skills/SKILL.md

Metadata

Files
0
Version
e4a0f95
Hash
e0ecdadc
Indexed
2026-07-05 20:28

Home - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-08-04 10:30
浙ICP备14020137号-1 $Map of visitor$