BritishCheeseTT

pw-post-to-wechat

0
0
# Install this skill:
npx skills add BritishCheeseTT/pw-skills --skill "pw-post-to-wechat"

Install specific skill from multi-skill repository

# Description

|

# SKILL.md


name: pw-post-to-wechat
description: |
发布内容到微信公众号的自动化工具。

核心功能:
- 图文发表: 多图配文模式, 支持最多 9 张图片
- 文章发表: 完整 Markdown 格式化, 保留样式和排版
- 自动化流程: 使用 Chrome CDP 自动登录、填充、发布
- 智能压缩: 标题和内容超限时自动压缩
- 主题支持: 文章发表支持 default、grace、simple 三种主题

使用时机:
- 用户明确要求 "发布到微信公众号"、"发送到公众号"
- 用户提供 markdown 文件或内容需要发布
- 用户需要批量发布图文内容

不适用场景:
- 用户只是询问如何发布 (提供建议即可)
- 用户需要编辑现有公众号文章 (手动操作)
- 用户需要发布到其他平台 (使用对应平台工具)


微信公众号发布工具

自动化发布内容到微信公众号, 支持图文和文章两种模式。

使用方法

图文发表 (多图配文)

# 从 markdown 文件和图片目录生成
npx -y bun ${SKILL_DIR}/scripts/wechat-browser.ts --markdown article.md --images ./images/

# 使用明确的参数
npx -y bun ${SKILL_DIR}/scripts/wechat-browser.ts --title "标题" --content "内容" --image img1.png --image img2.png --submit

# 仅预览不保存
npx -y bun ${SKILL_DIR}/scripts/wechat-browser.ts --markdown article.md --images ./images/

文章发表 (完整 Markdown)

# 发布 markdown 文章 (默认主题)
npx -y bun ${SKILL_DIR}/scripts/wechat-article.ts --markdown article.md

# 指定主题
npx -y bun ${SKILL_DIR}/scripts/wechat-article.ts --markdown article.md --theme grace
npx -y bun ${SKILL_DIR}/scripts/wechat-article.ts --markdown article.md --theme simple

# 覆盖标题和作者
npx -y bun ${SKILL_DIR}/scripts/wechat-article.ts --markdown article.md --title "自定义标题" --author "作者名"

说明: ${SKILL_DIR} 代表本技能的安装目录, Agent 会在运行时替换为实际路径。

参数说明

图文发表参数

--markdown

指定 Markdown 文件路径, 自动提取标题和内容。

参数类型: 文件路径 (可选)

功能说明:
- 解析 frontmatter 获取标题和作者
- 如果没有 frontmatter, 使用第一个 H1 标题
- 提取首段作为内容 (最多 1000 字)
- 标题超过 20 字时自动压缩

使用示例:

npx -y bun ${SKILL_DIR}/scripts/wechat-browser.ts --markdown ./article.md --images ./pics/

Markdown 格式:

---
title: 文章标题
author: 作者名
---

# 这是标题 (如果没有 frontmatter)

这是首段内容, 会被提取为图文内容...

最佳实践:
- 使用 frontmatter 明确指定标题和作者
- 首段内容应简洁有力, 吸引读者
- 标题控制在 20 字以内避免压缩

--images

指定图片目录, 上传目录中所有图片。

参数类型: 目录路径 (可选)

功能说明:
- 上传目录中所有 PNG/JPG 文件
- 按文件名字母顺序排序
- 最多支持 9 张图片 (微信限制)

使用示例:

npx -y bun ${SKILL_DIR}/scripts/wechat-browser.ts --markdown article.md --images ./images/

最佳实践:
- 使用数字前缀命名: 01-cover.png, 02-content.png
- 确保图片清晰度适合移动端查看
- 控制图片数量在 9 张以内

--title

直接指定文章标题。

参数类型: 字符串 (可选)

限制: 最多 20 字, 超出自动压缩

使用示例:

npx -y bun ${SKILL_DIR}/scripts/wechat-browser.ts --title "如何提升效率" --content "内容..." --image cover.png

压缩规则:
- 原始: "如何在一天内彻底重塑你的人生"
- 压缩: "一天内重塑你的人生"

最佳实践:
- 标题简洁有力, 突出核心价值
- 避免冗余词汇 (如何、怎样等)
- 使用数字和动词增强吸引力

--content

直接指定文章内容。

参数类型: 字符串 (可选)

限制: 最多 1000 字, 超出自动压缩

使用示例:

npx -y bun ${SKILL_DIR}/scripts/wechat-browser.ts --title "标题" --content "这是内容..." --image img.png

最佳实践:
- 内容应简洁明了, 引导用户点击查看
- 突出文章核心价值和亮点
- 控制在 1000 字以内避免压缩

--image

指定单个图片文件, 可重复使用添加多张图片。

参数类型: 文件路径 (可选, 可重复)

限制: 最多 9 张图片

使用示例:

npx -y bun ${SKILL_DIR}/scripts/wechat-browser.ts --title "标题" --content "内容" --image img1.png --image img2.png --image img3.png

最佳实践:
- 第一张图片作为封面, 应最具吸引力
- 图片顺序影响展示效果
- 确保图片格式为 PNG 或 JPG

--submit

保存为草稿, 默认仅预览不保存。

参数类型: 布尔标志 (可选)

默认行为: 不保存, 仅预览

使用场景:
- 确认内容无误后再添加此参数保存
- 批量发布时使用

使用示例:

# 仅预览
npx -y bun ${SKILL_DIR}/scripts/wechat-browser.ts --markdown article.md --images ./pics/

# 保存为草稿
npx -y bun ${SKILL_DIR}/scripts/wechat-browser.ts --markdown article.md --images ./pics/ --submit

注意事项:
- 保存后需要在微信公众号后台手动发布
- 建议先预览确认无误再保存

--profile

指定 Chrome 配置文件目录, 保持登录状态。

参数类型: 目录路径 (可选)

默认行为: 使用临时配置文件

使用场景:
- 避免每次都需要扫码登录
- 多账号管理

使用示例:

npx -y bun ${SKILL_DIR}/scripts/wechat-browser.ts --markdown article.md --images ./pics/ --profile ~/.chrome-wechat

最佳实践:
- 为不同公众号账号创建不同的配置文件目录
- 定期清理配置文件避免占用过多空间

文章发表参数

--markdown

指定要转换和发布的 Markdown 文件。

参数类型: 文件路径 (必需)

功能说明:
- 完整解析 Markdown 格式
- 保留标题、列表、引用、代码块等样式
- 自动处理图片占位符和替换

使用示例:

npx -y bun ${SKILL_DIR}/scripts/wechat-article.ts --markdown article.md

支持的 Markdown 语法:
- 标题: #, ##, ###
- 粗体: **text**
- 斜体: *text*
- 列表: -, 1.
- 引用: >
- 代码块: ```
- 链接: [text](url)
- 图片: ![alt](path)

最佳实践:
- 使用标准 Markdown 语法
- 图片使用相对路径
- 避免使用过于复杂的嵌套结构

--theme

指定文章主题样式。

参数类型: 字符串 (可选)

可选值:
- default - 默认主题, 简洁大方
- grace - 优雅主题, 适合正式内容
- simple - 极简主题, 突出内容本身

默认值: default

使用示例:

npx -y bun ${SKILL_DIR}/scripts/wechat-article.ts --markdown article.md --theme grace

主题特点:

主题 适用场景 特点
default 通用内容 平衡美观和可读性
grace 正式文章、专业内容 优雅排版, 强调层次
simple 技术文档、教程 极简风格, 突出内容

最佳实践:
- 技术文章推荐 simple
- 品牌内容推荐 grace
- 日常内容使用 default

--title

覆盖从 Markdown 提取的标题。

参数类型: 字符串 (可选)

默认行为: 从 Markdown frontmatter 或 H1 提取

使用示例:

npx -y bun ${SKILL_DIR}/scripts/wechat-article.ts --markdown article.md --title "自定义标题"

使用场景:
- Markdown 文件没有标题
- 需要使用不同于文件中的标题
- 针对不同平台使用不同标题

--author

指定文章作者名。

参数类型: 字符串 (可选)

默认值: 宝玉

使用示例:

npx -y bun ${SKILL_DIR}/scripts/wechat-article.ts --markdown article.md --author "张三"

最佳实践:
- 使用真实作者名增强可信度
- 团队账号可使用团队名称

--summary

指定文章摘要。

参数类型: 字符串 (可选)

使用示例:

npx -y bun ${SKILL_DIR}/scripts/wechat-article.ts --markdown article.md --summary "这是一篇关于..."

最佳实践:
- 摘要应简洁明了, 概括文章核心
- 控制在 100 字以内
- 突出文章价值和亮点

--html

使用预渲染的 HTML 文件替代 Markdown。

参数类型: 文件路径 (可选)

使用场景:
- 已有渲染好的 HTML 内容
- 需要使用自定义样式
- 复杂排版需求

使用示例:

npx -y bun ${SKILL_DIR}/scripts/wechat-article.ts --html article.html

注意事项:
- HTML 需要符合微信公众号编辑器要求
- 图片仍需使用占位符处理

--profile

指定 Chrome 配置文件目录。

参数类型: 目录路径 (可选)

功能: 与图文发表的 --profile 参数相同

功能对比

功能 图文发表 文章发表
多图支持 支持 (最多 9 张) 支持 (内联图片)
Markdown 支持 标题/内容提取 完整格式化
自动标题压缩 支持 (压缩到 20 字) 不支持
内容压缩 支持 (压缩到 1000 字) 不支持
主题支持 不支持 支持 (default, grace, simple)
适用场景 快速发布多图内容 长文章、技术文档

工作流程

图文发表流程

  1. 解析内容:
  2. 从 Markdown 文件提取标题和内容
  3. 或使用 --title 和 --content 直接指定

  4. 处理图片:

  5. 从 --images 目录读取所有图片
  6. 或使用多个 --image 参数指定图片
  7. 按文件名排序

  8. 自动化发布:

  9. 打开 Chrome 浏览器
  10. 导航到微信公众号图文编辑器
  11. 上传所有图片
  12. 填充标题和内容
  13. 根据 --submit 参数决定是否保存

  14. 输出结果:

  15. 报告发布状态
  16. 显示图片数量
  17. 提示后续操作

文章发表流程

  1. 解析 Markdown:
  2. 读取 Markdown 文件
  3. 提取标题、作者等元数据
  4. 识别所有图片引用

  5. 生成 HTML:

  6. 将 Markdown 转换为 HTML
  7. 应用选定的主题样式
  8. 图片替换为占位符 [[IMAGE_PLACEHOLDER_N]]

  9. 自动化发布:

  10. 打开 Chrome 浏览器
  11. 导航到微信公众号文章编辑器
  12. 粘贴 HTML 内容到编辑器

  13. 替换图片:

  14. 对每个占位符:

    • 查找并选中占位符文本
    • 滚动到可见区域
    • 按 Backspace 删除占位符
    • 从剪贴板粘贴图片
  15. 输出结果:

  16. 报告发布状态
  17. 显示图片数量
  18. 提示后续操作

前置要求

  • 已安装 Google Chrome
  • bun 运行时 (通过 npx -y bun 自动安装)
  • 首次运行需要在打开的浏览器窗口中登录微信公众号

常见问题

登录相关

问题: 每次运行都需要扫码登录

解决方案: 使用 --profile 参数指定配置文件目录

npx -y bun ${SKILL_DIR}/scripts/wechat-browser.ts --markdown article.md --images ./pics/ --profile ~/.chrome-wechat

问题: 登录后立即退出

解决方案:
- 检查网络连接
- 确保微信公众号账号状态正常
- 尝试清除配置文件重新登录

图片相关

问题: 图片上传失败

解决方案:
- 检查图片格式 (仅支持 PNG/JPG)
- 检查图片大小 (建议小于 5MB)
- 确保图片路径正确

问题: 图片顺序错误

解决方案:
- 使用数字前缀命名: 01-, 02-, 03-
- 或使用多个 --image 参数按顺序指定

内容相关

问题: 标题被压缩

解决方案:
- 标题控制在 20 字以内
- 或手动编辑压缩后的标题

问题: 内容被压缩

解决方案:
- 内容控制在 1000 字以内
- 或使用文章发表模式发布完整内容

浏览器相关

问题: 找不到 Chrome

解决方案: 设置环境变量

export WECHAT_BROWSER_CHROME_PATH="/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"

问题: 粘贴失败

解决方案:
- 检查系统剪贴板权限
- 确保 Chrome 有权限访问剪贴板
- macOS 需要在系统设置中授予权限

脚本参考

所有脚本位于本技能的 scripts/ 子目录中。

Agent 执行说明:
1. 确定此 SKILL.md 文件的目录路径为 SKILL_DIR
2. 脚本路径 = ${SKILL_DIR}/scripts/<script-name>.ts
3. 将文档中所有 ${SKILL_DIR} 替换为实际路径

可用脚本:

脚本 用途 说明
wechat-browser.ts 图文发表 多图配文模式
wechat-article.ts 文章发表 完整 Markdown 格式
md-to-wechat.ts Markdown 转换 转换为微信 HTML
copy-to-clipboard.ts 剪贴板操作 复制内容到剪贴板
paste-from-clipboard.ts 粘贴操作 发送真实粘贴按键

使用示例

示例 1: 快速发布图文

# 场景: 有一篇 markdown 文章和一个图片目录
npx -y bun ${SKILL_DIR}/scripts/wechat-browser.ts --markdown ./article.md --images ./xhs-images/

# 执行流程:
# 1. 解析 markdown 元数据:
#    - 标题: "如何在一天内彻底重塑你的人生" → "一天内重塑你的人生"
#    - 作者: 从 frontmatter 或使用默认值
# 2. 从首段提取内容
# 3. 在 xhs-images/ 中找到 7 张图片
# 4. 打开 Chrome, 导航到微信"图文"编辑器
# 5. 上传所有图片
# 6. 填充标题和内容
# 7. 报告: "图文已发布, 包含 7 张图片。"

示例 2: 发布完整文章

# 场景: 发布一篇技术文章, 使用 simple 主题
npx -y bun ${SKILL_DIR}/scripts/wechat-article.ts --markdown ./tech-article.md --theme simple

# 执行流程:
# 1. 解析 markdown, 找到 5 张图片
# 2. 生成带占位符的 HTML
# 3. 打开 Chrome, 导航到微信编辑器
# 4. 粘贴 HTML 内容
# 5. 对每张图片:
#    - 选中 [[IMAGE_PLACEHOLDER_1]]
#    - 滚动到可见区域
#    - 按 Backspace 删除
#    - 粘贴图片
# 6. 报告: "文章已编排, 包含 5 张图片。"

示例 3: 批量发布

# 场景: 批量发布多篇文章
for file in articles/*.md; do
  npx -y bun ${SKILL_DIR}/scripts/wechat-browser.ts \
    --markdown "$file" \
    --images "images/$(basename $file .md)/" \
    --submit \
    --profile ~/.chrome-wechat
done

示例 4: 自定义参数发布

# 场景: 完全自定义标题、内容和图片
npx -y bun ${SKILL_DIR}/scripts/wechat-browser.ts \
  --title "2024 年度总结" \
  --content "回顾这一年的成长与收获..." \
  --image cover.png \
  --image chart1.png \
  --image chart2.png \
  --submit

扩展支持

通过 EXTEND.md 自定义配置。

检查路径 (优先级顺序):
1. .pw-skills/pw-post-to-wechat/EXTEND.md (项目级)
2. ~/.pw-skills/pw-post-to-wechat/EXTEND.md (用户级)

如果找到, 在工作流之前加载。扩展内容会覆盖默认值。

参考文档

  • 图文发表: 查看 references/image-text-posting.md 了解详细的图文发表指南
  • 文章发表: 查看 references/article-posting.md 了解详细的文章发表指南

注意事项

  • 图文发表标题最多 20 字, 内容最多 1000 字
  • 图片最多 9 张 (微信限制)
  • 首次运行需要扫码登录
  • 使用 --profile 参数可以保持登录状态
  • 建议先预览确认无误再使用 --submit 保存
  • 文章发表支持完整 Markdown 格式
  • 图片处理需要系统剪贴板权限
  • macOS 需要在系统设置中授予 Chrome 剪贴板权限

# Supported AI Coding Agents

This skill is compatible with the SKILL.md standard and works with all major AI coding agents:

Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.