将任意文件(PDF、Word、Excel、PPT、图片、音频、网页等)转换为 Markdown,再生成为精美的微信公众号文章并发布到草稿箱。组合 markitdown + md_to_wechat_html + publish_to_wechat 三阶段流水线。Use when the user wants to...
File to WeChat是一项面向实际任务的技能,主要用于将 任意格式的文件 (PDF、Word、Excel、PPT、图片、音频、网页等)一站式转换为精美的微信公众号文章,并发布到草稿箱;User-Facing Promise;
"把这个 Excel 报表发布到微信";"把这张图片变成微信文章"。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。
将任意格式的文件(PDF、Word、Excel、PPT、图片、音频、网页等)一站式转换为精美的微信公众号文章,并发布到草稿箱。
支持如下请求形式:
直接返回已发布的草稿(位于微信草稿箱中),而非仅提供方案或预览。
anything-to-wechat 的区别| anything-to-wechat | file-to-wechat | |
|---|---|---|
| 输入类型 | DOCX、PDF、CSV、Markdown、HTML、URL | 25+ 种格式:PDF、DOCX、PPTX、XLSX、图片、音频、EPUB、HTML、YouTube、ZIP 等 |
| Markdown 转换步骤 | 直接读取文件 | 优先通过 MarkItDown(本地)或 Markdown Anything API(云端)将文件转为 Markdown |
| 适用场景 | 文档类与数据类文件 | 所有文件类型,包括幻灯片、电子表格、图片、音频等 |
当用户提供 anything-to-wechat 不原生支持的文件类型(如 PPTX、XLSX、图片、音频、EPUB、ZIP)时,请使用本技能。
python -m pip install markitdown markdown beautifulsoup4 requests
本技能依赖 anything-to-wechat 技能中的 publish_to_wechat.py。请通过 ClawHub 安装:
clawhub install anything-to-wechat
你需要一个具备 API 权限的微信服务号或订阅号(需开通开发者权限)。
获取凭证步骤:
设置环境变量(推荐方式):
在 macOS / Linux 上 —— 将以下内容添加至 ~/.bashrc 或 ~/.zshrc:
export WECHAT_APP_ID="your_appid_here" export WECHAT_APP_SECRET="your_appsecret_here"
在 Windows 上 —— 使用 PowerShell 执行:
[Environment]::SetEnvironmentVariable("WECHAT_APP_ID", "your_appid_here", "User")
[Environment]::SetEnvironmentVariable("WECHAT_APP_SECRET", "your_appsecret_here", "User")
未设置环境变量? 发布脚本会在首次运行时交互式提示 —— 只需按提示粘贴 AppID 和 AppSecret 即可。
python -c "from markitdown import MarkItDown; print('markitdown OK')"
python -c "import markdown; print('markdown OK')"
| 依赖项 | 是否必需 | 用途 |
|---|---|---|
markitdown(pip) |
是 | 文件 → Markdown 转换(本地、免费) |
markdown(pip) |
是 | Markdown → HTML(由 md_to_wechat_html.py 调用) |
beautifulsoup4(pip) |
是 | HTML 处理 |
requests(pip) |
是 | 调用微信 API |
| anything-to-wechat 技能 | 是 | 提供 publish_to_wechat.py |
all-to-markdown 技能 |
可选 | 替代性文件 → Markdown 封装器 |
html-anything 技能 |
可选 | 更丰富的 HTML 设计(仅适用于 Approach B) |
markdown-anything 技能 |
可选 | 云端 Markdown API 回退方案 |
若用户尚未提供源文件,请使用 AskUserQuestion 主动询问:
Question: "请提供你想发布到微信公众号的文件" Options: - "提供文件路径" (PDF, DOCX, PPTX, XLSX, images, audio, etc.) - "粘贴 URL" (web page or YouTube video) - "选择文件夹" (batch convert)
若用户已提供文件路径或 URL,则跳过此步,直接进入下一阶段。
重要:务必全程使用 UTF-8 编码。 Windows 控制台默认编码为 GBK,会导致中文乱码。请在 Python 中对所有文件 I/O 显式指定 encoding='utf-8',并在控制台输出前调用 sys.stdout.reconfigure(encoding='utf-8')。
首选方式:markitdown pip 包(免费、无需 API Key、始终可用)
python -c " import sys; sys.stdout.reconfigure(encoding='utf-8') from markitdown import MarkItDown md = MarkItDown() result = md.convert(r'') with open(r' /article.md', 'w', encoding='utf-8') as f: f.write(result.text_content) print('Done, length:', len(result.text_content)) "
备选方式:all-to-markdown 技能(如已安装)
bash "/scripts/run.sh" " " -o " /article.md"
回退方式:markdown-anything(云端 API,需 MDA_API_TOKEN)
MDA_API_TOKEN="" bash " /scripts/convert.sh" " " > " /article.md"
转换完成后:以 encoding='utf-8' 读取 Markdown 输出;检查其结构(标题层级、表格、图片、代码块等),用于指导后续 HTML 生成风格。
两种实现方式,请根据内容复杂度选择:
方式 A:使用 md_to_wechat_html.py(快速、适合结构化文档)—— 推荐首选
python "/scripts/md_to_wechat_html.py" --input " /article.md" --output " /wechat_article.html" --title " "
该脚本将 Markdown 直接转换为适配微信的内联样式 HTML,并内置 Clockless 设计规范,无需额外 CSS 内联步骤。
方式 B:使用 html-anything(设计更丰富,适合复杂内容)
html-anything 技能。html-anything 工作流,并严格遵守微信兼容规则(仅允许内联样式、浅色背景、禁用 CSS 变量、最大宽度 680px、系统字体)。anything-to-wechat 提供的转换脚本:python "/scripts/convert_for_wechat.py" --input " /wechat_article.html" --output " /wechat_article_final.html"
选择指南:
使用 ImageGen 工具,基于文章主题与核心内容生成提示词(prompt)。
wechat_cover.png 至 workspace 目录。1024x768(符合微信封面图 4:3 比例)。重要:Windows 系统下,请使用 Python subprocess 传递环境变量。
set VAR=val && python ... 在 Windows CMD 中不可靠。
跨平台推荐方式:
python -c " import os, subprocess, sys os.environ['WECHAT_APP_ID'] = '' os.environ['WECHAT_APP_SECRET'] = ' ' result = subprocess.run([ sys.executable, r' /scripts/publish_to_wechat.py', '--file', r' /wechat_article.html', '--title', ' ', '--cover', r' /wechat_cover.png', '--digest', ' ' ], capture_output=True, text=True, encoding='utf-8') print(result.stdout) print(result.stderr) "
或已在系统中设置了环境变量:
python "/scripts/publish_to_wechat.py" --file " /wechat_article.html" --title " " --cover " /wechat_cover.png" --digest " "
凭证说明:publish_to_wechat.py 从 WECHAT_APP_ID / WECHAT_APP_SECRET 环境变量读取凭证。若未设置,脚本将交互式提示,用户只需粘贴 AppID 和 AppSecret 即可。
成功发布后,报告 Media ID 并附上微信公众平台链接:https://mp.weixin.qq.com/。
向用户明确告知:“文章已发送到你的微信公众号草稿箱,请登录微信公众平台审核后一键发布。”
与 anything-to-wechat 完全一致:
标签)#ffffff)position: fixed/stickymax-width: 680px| 错误类型 | 应对措施 |
|---|---|
markitdown 未安装 |
执行 python -m pip install markitdown |
all-to-markdown 未安装 |
直接使用 markitdown pip 包(主流程) |
markdown-anything 缺少 token |
改用 markitdown(免费)或向用户索取 MDA_API_TOKEN |
| MarkItDown 不支持该格式 | 尝试 markdown-anything 云端 API |
| 扫描版 PDF(无文本层) | 启用 markdown-anything 的 MDA_ENHANCED_AI=true 模式 |
| Markdown 内容超出微信限制 | 进行摘要压缩,控制在 5000 字以内 |
| 中文乱码(GBK 编码问题) | 添加 sys.stdout.reconfigure(encoding='utf-8'),并对所有文件 I/O 显式指定 encoding='utf-8' |
Windows 下 set VAR=val 失效 |
改用 Python subprocess + os.environ 传参 |
| 微信凭证缺失 | publish_to_wechat.py 会交互式提示 —— 用户粘贴 AppID/AppSecret 即可 |
| 服务器 IP 不在白名单中 | 从错误信息中提取当前 IP,引导用户前往 mp.weixin.qq.com 添加并重试 |
anything-to-wechat 技能缺失 |
执行安装命令:clawhub install anything-to-wechat |
| 类别 | 格式 |
|---|---|
| 文档 | PDF、DOCX、PPTX、EPUB、MSG |
| 数据 | XLSX、XLS、CSV、JSON、XML |
| 图片 | JPG、PNG、GIF、BMP、TIFF(支持 EXIF 元数据,可选 OCR) |
| 音频 | WAV、MP3(支持语音转文字) |
| 网页 | HTML 页面、YouTube URL(支持字幕提取) |
| 归档包 | ZIP(自动解压并逐个转换内部文件) |
| 脚本 | 来源 | 用途 |
|---|---|---|
markitdown(pip) |
Microsoft MarkItDown | 文件/URL → Markdown(本地、免费) |
scripts/md_to_wechat_html.py |
本技能 | Markdown → 微信兼容内联 HTML |
anything-to-wechat/scripts/convert_for_wechat.py |
anything-to-wechat 技能 | CSS 内联与微信适配清理 |
anything-to-wechat/scripts/publish_to_wechat.py |
anything-to-wechat 技能 | 上传至微信草稿箱 |
| 变量名 | 是否必需 | 说明 |
|---|---|---|
WECHAT_APP_ID |
是 | 微信公众号 AppID(若未设置,将交互式提示) |
WECHAT_APP_SECRET |
是 | 微信公众号 AppSecret(若未设置,将交互式提示) |
MDA_API_TOKEN |
否 | Markdown Anything API Token(仅在启用云端回退时需要) |
相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 133.9万人学习
共49课时 | 82.5万人学习