Metadata-Version: 2.4
Name: md2wx-cli
Version: 0.2.0
Summary: 轻量级 Markdown 转微信公众号 HTML CLI 工具（支持剪贴板直达、主题提取、WeChatSync 联动）
License-Expression: MIT
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: markdown>=3.10
Requires-Dist: beautifulsoup4>=4.14
Requires-Dist: cssutils>=2.11
Requires-Dist: pyyaml>=6.0
Requires-Dist: Pygments>=2.17
Dynamic: license-file

# 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 写入系统剪贴板（含 Windows `CF_HTML` 协议与 `span[leaf]` 防样式丢失保护），进入微信公众号编辑器 `Ctrl+V` 即可完美粘贴。
- 🩺 **微信排版兼容性与合规体检 (`check`)**：内置 16+ 条微信富文本平台硬规则检测（拦截非法 CSS、缺失图片、未脚注外链等）。

---

## 📦 快速安装与即用

### 1. 免安装即用（推荐）
```bash
uvx md2wx article.md -c
```

### 2. 全局标准安装
```bash
pip install md2wx
```

### 3. 本地源码安装
```bash
git clone https://github.com/your-name/md2wx.git
cd md2wx
pip install -e .
```

---

## 📖 核心命令与用法

### 1. 基础转换与排版
```bash
# 转换 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`)
```bash
# 一键生成全主题交互式对比页面并在默认浏览器打开
md2wx gallery article.md -o gallery.html --open
```

---

### 3. 抓取微信推文并逆向为 Markdown (`fetch`)
```bash
# 从微信推文在线 URL 抓取正文与图片，生成高质量 Markdown
md2wx fetch "https://mp.weixin.qq.com/s/xxxxxx" -o "article.md"
```

---

### 4. 学习与逆向提取主题 (`learn-theme`)
```bash
# 从本地设计快照目录提取主题并保存
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`)
```bash
# 首次配置微信凭据（永久保存在 ~/.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`)
```bash
# 检查 Markdown 或 HTML 在微信平台上的兼容性与合规隐患
md2wx check article.md
```

---

### 7. 查看主题与版本信息
```bash
# 列出所有已安装的排版主题
md2wx themes

# 查看全局帮助
md2wx --help

# 查询版本号
md2wx --version
```

---

## 🎨 扩展排版语法支持

`md2wx` 除了标准 Markdown 语法外，还原生支持现代推文所需的扩展容器组件：

### 1. 居中高亮卡片（纯净无图标）
```markdown
> 运行中的系统，就是一棵由配置组装出来的插件树。
```

### 2. 白底描边项目卡片 (`::: card`)
```markdown
::: card 所以我做了 Pilot Harness。
https://github.com/op7418/pilot-harness
:::
```

### 3. 实心品牌色引导横幅 (`::: banner`)
```markdown
::: banner 如果觉得有需要，或者是想尝试一下，可以到这里试试：
https://github.com/op7418/pilot-harness
:::
```

### 4. 结尾星标装帧分隔符
在独立一行输入 `✦` 或 `✧`，将自动渲染为微淡居中装帧效果。

---

## 📄 开源协议

MIT License
