md2wx
🚀 轻量、确定性、高保真度的 Markdown 转微信公众号排版 CLI 工具。
深度支持全内联 CSS 注入、5 大精选排版主题、多主题画廊一键对比、微信推文一键抓取逆向、主题智能提取、公众号官方 API 直传草稿箱与排版体检诊断。
✨ 核心特性
- 🎨 极简现代排版与精选主题栈:
default(默认):现代极简杂志编辑风(Noto Serif 宋体衬线大标题、Slate-600 通透正文、曜石黑字重层次、居中浅蓝高亮胶囊、实心品牌色横幅与图片弥散阴影)。github-tech:经典 GitHub 开发者科技风(深炭黑标题、底边细分割线、OneDark 代码高亮)。bauhaus:包豪斯艺术几何设计风。bold-green:清新高对比度科技绿。bold-navy:深邃藏青商务编辑风。
- 🖼️ 多主题交互式对比画廊 (
gallery):一键生成全主题交互式 HTML 预览画廊,直接在浏览器中秒级切换对比排版效果。 - 📥 微信推文一键抓取与逆向 (
fetch):输入任意微信公众号文章 URL,自动下载全部配图并逆向转换为纯净 Markdown,自动识别居中高亮卡片、白底项目卡片与实心横幅。 - 🪄 主题深度逆向提取 (
learn-theme):支持从本地目录、HTML 文件或推文 URL 自动提取双字体栈、标题边框、加粗字重、Callout 风格与图片阴影,缺失组件由github-tech安全兜底。 - 🚀 原生官方 API 直传微信草稿箱 (
-p / --publish):直接集成微信公众平台官方接口,自动将本地配图上传至微信永久素材图床,一键推送到公众号草稿箱(支持~/.md2wx/config.yaml免密保存)。 - 📋 系统剪贴板一键直达 (
-c):直接将富文本 HTML 写入系统剪贴板(含 WindowsCF_HTML协议与span[leaf]防样式丢失保护),进入微信公众号编辑器Ctrl+V即可完美粘贴。 - 🩺 微信排版兼容性与合规体检 (
check):内置 16+ 条微信富文本平台硬规则检测(拦截非法 CSS、缺失图片、未脚注外链等)。
📦 快速安装与即用
1. 免安装即用(推荐)
uvx md2wx article.md -c
2. 全局标准安装
pip install md2wx
3. 本地源码安装
git clone https://github.com/your-name/md2wx.git
cd md2wx
pip install -e .
📖 核心命令与用法
1. 基础转换与排版
# 转换 Markdown 为微信 HTML 片段并直接复制到系统剪贴板(默认使用 default 杂志风)
md2wx article.md -c
# 输出为 HTML 文件
md2wx article.md -o output.html
# 指定精选主题(如 github-tech)
md2wx article.md -t github-tech -c
# 生成包含完整 <html> 骨架的独立全页面(适合本地双击预览)
md2wx article.md -o preview.html --full-page
# 支持标准输入管道
cat article.md | md2wx -c
2. 多主题交互式画廊对比 (gallery)
# 一键生成全主题交互式对比页面并在默认浏览器打开
md2wx gallery article.md -o gallery.html --open
3. 抓取微信推文并逆向为 Markdown (fetch)
# 从微信推文在线 URL 抓取正文与图片,生成高质量 Markdown
md2wx fetch "https://mp.weixin.qq.com/s/xxxxxx" -o "article.md"
4. 学习与逆向提取主题 (learn-theme)
# 从本地设计快照目录提取主题并保存
md2wx learn-theme --dir ./my_design_folder -n "my-custom-theme"
# 从单个 HTML 文件提取主题
md2wx learn-theme ./index.html -n "my-custom-theme"
# 直接从微信推文 URL 提取主题
md2wx learn-theme "https://mp.weixin.qq.com/s/xxxxxx" -n "my-custom-theme"
# 使用刚刚提取的主题进行排版
md2wx article.md -t my-custom-theme -c
5. 原生发布至微信公众号草稿箱 (-p / --publish)
# 首次配置微信凭据(永久保存在 ~/.md2wx/config.yaml)
md2wx config set wechat.appid "wx8d2b2afcxxxxxx"
md2wx config set wechat.secret "df7fcf8f6xxxxxx"
# 一键上传本地配图并直传草稿箱
md2wx article.md -p
# 自定义草稿标题、作者与封面图
md2wx article.md -p --title "文章大标题" --author "归藏" --cover "assets/cover.png"
6. 排版兼容性与合规体检 (check)
# 检查 Markdown 或 HTML 在微信平台上的兼容性与合规隐患
md2wx check article.md
7. 查看主题与版本信息
# 列出所有已安装的排版主题
md2wx themes
# 查看全局帮助
md2wx --help
# 查询版本号
md2wx --version
🎨 扩展排版语法支持
md2wx 除了标准 Markdown 语法外,还原生支持现代推文所需的扩展容器组件:
1. 居中高亮卡片(纯净无图标)
> 运行中的系统,就是一棵由配置组装出来的插件树。
2. 白底描边项目卡片 (::: card)
::: card 所以我做了 Pilot Harness。
https://github.com/op7418/pilot-harness
:::
3. 实心品牌色引导横幅 (::: banner)
::: banner 如果觉得有需要,或者是想尝试一下,可以到这里试试:
https://github.com/op7418/pilot-harness
:::
4. 结尾星标装帧分隔符
在独立一行输入 ✦ 或 ✧,将自动渲染为微淡居中装帧效果。
📄 开源协议
MIT License
Metadata
Release files for md2wx-cli 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| md2wx_cli-0.2.0.tar.gz | 41.5 kB | Without provenance | Details for md2wx_cli-0.2.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| md2wx_cli-0.2.0-py3-none-any.whl | Python 3 | none | any | Details for md2wx_cli-0.2.0-py3-none-any.whl |
Total release size: 88.9 kB
Release files / md2wx_cli-0.2.0.tar.gz
| Download URL | md2wx_cli-0.2.0.tar.gz |
|---|---|
| Size | 41.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
78d5ba0f456b5956fac1fcb64778518d95dc348fe4d9683028c876765b9ce032
|
|
BLAKE2b-256 checksum How to use checksums |
a0dc560ad4a8bc3185fc549ff20dd10169e640386ffc2f2b11354245980119e9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / md2wx_cli-0.2.0-py3-none-any.whl
| Download URL | md2wx_cli-0.2.0-py3-none-any.whl |
|---|---|
| Size | 47.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f85b98f2692121e41da92d8f43144819be1ca990a16ee06108bdbf51fdb6288f
|
|
BLAKE2b-256 checksum How to use checksums |
15c7de25687685892ac0780a1240ea28f2ba5fba95da2592a7fe2bd07dc1cbb5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Security for md2wx-cli 0.2.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.