← 返回
沟通协作 Key

md2WeChat-python

将 Markdown 文件转换为微信公众号兼容的内联样式 HTML,并一键发送到微信草稿箱。支持 Front Matter 元数据、表格、代码块、列表、图片自动上传等完整排版能力。
将 Markdown 文件转换为微信公众号兼容的内联样式 HTML,并一键发送到微信草稿箱。支持 Front Matter 元数据、表格、代码块、列表、图片自动上传等完整排版能力。
koraihub
沟通协作 clawhub v2.0.0 2 版本 99767.1 Key: 需要
★ 3
Stars
📥 1,225
下载
💾 303
安装
2
版本
#latest

概述

md2wechat-skill — Markdown 转微信草稿箱

将 Markdown 文件经过排版引擎转换为微信图文编辑器兼容的内联样式 HTML,并通过微信公众号 API 发送到草稿箱。

核心能力

  • Markdown → 微信 HTML:完整解析标准 Markdown 语法(标题、列表、表格、代码块、引用等),自动转换为微信兼容的内联样式
  • Front Matter 元数据:支持 YAML Front Matter 定义标题、作者、摘要、发布模式等
  • 图片自动处理:正文内嵌的本地图片自动上传到微信 CDN 并替换为永久链接
  • 封面图上传:支持指定封面图上传为微信永久素材
  • 代码块深色主题:代码块自动适配深色背景样式
  • 超长内容截断:超过微信 2MB 限制的内容自动安全截断

前置条件

依赖安装

pip install wechatpy markdown beautifulsoup4 requests python-dotenv pillow

微信公众号配置(仅草稿箱发布需要)

需要设置以下环境变量(可通过 .env 文件或系统环境变量):

WECHAT_APPID=你的公众号AppID
WECHAT_SECRET=你的公众号AppSecret

获取方式:登录 微信公众平台 →「开发」→「基本配置」→ 获取 AppID 和 AppSecret。

配置模板见 {baseDir}/resources/env_template.txt

> 提示:如果仅需要将 Markdown 转换为微信兼容 HTML(--convert-only 模式),则不需要配置微信密钥。

使用方式

模式一:仅转换 HTML(无需微信密钥)

将 Markdown 文件转换为微信兼容的内联样式 HTML,输出到本地文件:

python {baseDir}/scripts/md2wechat.py <markdown文件路径> --convert-only --output <输出HTML路径>

示例:

python {baseDir}/scripts/md2wechat.py ./article.md --convert-only --output ./preview.html

模式二:转换并上传到微信草稿箱

python {baseDir}/scripts/md2wechat.py <markdown文件路径> --draft --env-file <.env路径>

支持的可选参数:

  • --title "自定义标题":覆盖自动提取的标题
  • --author "作者名":指定作者
  • --cover ./cover.png:指定封面图
  • --output ./preview_dir/:同时保存本地预览 HTML
  • --env-file .env:指定环境变量配置文件

完整示例:

python {baseDir}/scripts/md2wechat.py ./my_article.md --draft \
    --title "我的文章标题" \
    --cover ./images/cover.png \
    --env-file ./.env \
    --output ./preview/

查看帮助

python {baseDir}/scripts/md2wechat.py --help

Markdown 文件格式

基本格式

标准的 GitHub Flavored Markdown 语法均受支持:

# 文章标题

正文段落...

## 二级标题

- 无序列表项
- 列表项

1. 有序列表项
2. 列表项

> 引用文本

**加粗** 和 *斜体*

| 表头1 | 表头2 |
|-------|-------|
| 单元格 | 单元格 |

Front Matter 元数据(可选)

在文件最顶部添加 YAML 格式的元数据块:

---
title: 自定义标题
author: 作者名
summary: 文章摘要描述
publish_mode: draft
---

正文内容...

支持的字段:titleauthorsummarycoverpublish_atpublish_modeaccount_id

图片引用

使用相对路径引用图片,上传草稿时会自动处理:

![图片描述](images/photo.png)

示例文件

示例 Markdown 文章:{baseDir}/examples/sample_article.md

脚本文件说明

文件说明
------------
scripts/md2wechat.py主入口脚本(CLI)
scripts/md_converter.pyMarkdown → 微信 HTML 转换引擎
scripts/html_formatter.pyHTML 内联样式适配器
scripts/wechat_client.py微信公众号 API 客户端

Rules

  1. 在执行 --draft 模式前,必须确认用户已正确配置 WECHAT_APPIDWECHAT_SECRET
  2. 如果用户只需要转换 HTML 而不需要上传,应使用 --convert-only 模式
  3. 所有脚本的工作目录应在 {baseDir}/scripts/ 下执行,以确保模块导入正确
  4. 转换生成的 HTML 使用内联样式,不依赖外部 CSS 文件,确保微信兼容性

版本历史

共 2 个版本

  • v2.0.0 当前
    2026-03-29 10:04 安全 安全
  • v1.0.0
    2026-03-26 22:23

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

communication-collaboration

Himalaya

lamelas
{"answer":"通过IMAP/SMTP管理邮件的CLI。可在终端使用 `himalaya` 收发、回复、转发、搜索及整理邮件。支持多账户与MML(MIME元语言)编写邮件。"}
★ 68 📥 45,584
communication-collaboration

Gmail

byungkyu
Gmail API 集成,托管 OAuth,支持读取、发送和管理邮件、线程、标签及草稿,适用于需要与 Gmail 交互的场景。
★ 72 📥 37,724
communication-collaboration

Slack

steipete
当需要通过 slack 工具从 Clawdbot 控制 Slack 时使用,包括在频道或私信中回复消息或置顶/取消置顶项目。
★ 157 📥 47,676