支持 .md 和 .docx 之间的双向转换,自动识别文件类型。
# Markdown → Word
python md2docx.py input.md output.docx
# Word → Markdown
python md2docx.py input.docx output.md
脚本根据文件扩展名自动判断转换方向。
粗体、斜体、` 代码 、链接` 直接嵌入 MD(绕过 MD 不支持合并的限制)- 图片提取:内联图片转为 MD 图片引用
- Mermaid 图表:代码块原样保留
合并单元格方案
Markdown 表格语法不支持 rowspan / colspan,本工具采用 HTML 嵌入方案:
DOCX → MD:mammoth 转 HTML → HTML <table> 嵌入 .md
MD → DOCX:解析 HTML <table> → 虚拟网格算法 → cell.merge() 还原
MD 文件中嵌入的 HTML 表格能被主流 Markdown 渲染器正确显示,反向还原时也能精确恢复合并结构。
依赖
Python 3.8+
pip install python-docx pygments pillow mammoth beautifulsoup4
包 必须 用途 --- --- --- python-docx是 生成/解析 Word 文档 mammoth是 DOCX → HTML 转换(保留合并单元格) beautifulsoup4是 HTML 表格解析 pygments否 代码块语法高亮(缺失时回退纯文本) pillow否 Mermaid 图片自动缩放(缺失时用默认宽度)
Node.js(Mermaid 渲染,可选)
如需 MD→DOCX 时渲染 Mermaid 图表:
cd <skill目录>
npm install
安装后 node_modules/.bin/mmdc.cmd 会被自动调用。
浏览器配置:脚本会自动检测系统已安装的 Chrome / Edge / Chromium,无需手动下载。若系统无浏览器,Mermaid 以文字占位符代替。
若不需要 Mermaid 支持,可跳过 npm install。
个性化配置
在 md2docx.py 顶部修改常量:
FONT_NAME = '微软雅黑' # 全文字体
BODY_FONT_SIZE = 10.5 # 正文字号
TABLE_FONT_SIZE = 9 # 表格字号
MIN_HEADING_SIZE = 12.5 # 最末级标题字号
HEADING_SIZE_STEP = 2 # 每升一级递增字号
文件结构
md2docx/
├── md2docx.py # 主转换脚本(双向)
├── code_block.py # 代码块样式渲染
├── SKILL.md # Skill 描述(本文件)
├── README.md # 详细文档
└── package.json # Node.js 依赖(Mermaid CLI)
版本历史
共 5 个版本
-
v2.0.0
**md2docx v2.0 更新说明**
**重大更新:新增双向转换 + 合并单元格支持**
1. **双向互转**:现在支持 MD↔DOCX 双向转换,脚本自动根据文件扩展名识别方向
- `python md2docx.py input.md output.docx` — Markdown 转 Word
- `python md2docx.py input.docx output.md` — Word 转 Markdown
2. **合并单元格(rowspan/colspan)**:采用 HTML 嵌入方案解决 Markdown 不支持合并单元格的限制
- DOCX→MD:mammoth 提取 HTML 表格(保留 rowspan/colspan),直接嵌入 .md 文件
- MD→DOCX:解析 HTML 表格 → 虚拟网格算法 → cell.merge() 精确还原合并结构
- 已通过 25×10 复杂表格验证,37 个 rowspan + 2 个 colspan 全部正确还原
3. **新增依赖**:`mammoth`、`beautifulsoup4`(用于 DOCX→MD 转换)
4. **DOCX→MD 功能**:
- 完整结构提取(标题、段落、列表、表格)
- 图片提取(内联图片转为 MD 引用)
- Mermaid 图表代码块原样保留 当前
2026-06-04 17:50 安全 安全
-
v1.0.3
本次更新核心增强了图片资源管理能力:
✅ ImageManager 图片管理器 - 支持网络 URL、绝对路径、相对路径三种引用方式 ✅ 智能路径解析 - 自动识别并下载网络图片,本地图片三级查找 ✅ 性能优化 - 两阶段处理机制,避免重复下载 ✅ 错误处理 - 图片缺失时显示友好提示,不影响文档生成 ✅ 临时文件管理 - 自动清理,无残留
适用于需要处理大量外部图片引用的场景,特别是从网络文章、技术博客转换为 Word 文档的工作流。(省流:解决了markdown中有图片引用时无法转word里的问题)
2026-05-25 14:04 安全 安全
-
v1.0.2
CHANGELOG.md
· Markdown
md2docx 更新说明
版本变更:本地渲染版 → 在线渲染版
为什么改
旧版本依赖 @mermaid-js/mermaid-cli + Puppeteer + Chrome,导致 node_modules 体积超过 200MB,无法直接打包发布。本次优化彻底去掉 Node.js 依赖,改为调用在线服务渲染 Mermaid 图表。
改了什么
项目 旧版本 新版本
Mermaid 渲染 本地 mmdc + Puppeteer Kroki.io 在线 POST API
依赖 Python + Node.js + Chrome 仅 Python
体积 > 200MB(含 node_modules) ~38 KB(纯脚本)
安装 pip install + npm install pip install 即可
离线可用 是 否(需联网渲染图表)
技术细节
旧方案的问题
mermaid-cli 依赖 Puppeteer,Puppeteer 又依赖 Chromium,一层层下来体积爆炸
Windows 下还要处理 .cmd 脚本路径、Chrome 可执行文件检测等兼容逻辑
首次使用需要下载 Chrome,耗时且不稳定
新方案
调用 https://kroki.io/ 的公开 POST API
请求体直接传 Mermaid 源码,响应即为 PNG 图片
无 URL 长度限制,复杂图表也能正常渲染
失败时自动降级为文字占位符,不中断整个转换流程
依赖清单
pip install python-docx pillow pygments
包 必须 用途
python-docx 是 生成 Word 文档
pillow 否 Mermaid 图片自动缩放(缺失时用默认宽度)
pygments 否 代码块语法高亮(缺失时回退纯文本)
文件结构
md2docx/
├── md2docx.py # 主转换脚本(33.9 KB)
├── code_block.py # 代码块样式渲染(3.1 KB)
├── SKILL.md # Skill 描述
└── CHANGELOG.md # 本文件
已知问题
需联网才能渲染 Mermaid 图表,离线环境下图表会以文字占位符形式呈现
本地图片引用(如 )需确保路径正确,否则显示"图片不存在"
若 Kroki.io 服务不可用,Mermaid 图表同样会降级为文字占位符
双版本策略
本项目维护两个版本:
在线版(本目录):D:\工作\工成商通\AIprojects\skills\md2docx\ — 轻量,适合发布
本地版:C:\Users\acmwo\.qoderwork\skills\md2docx\ — 保留完整本地渲染能力,适合离线使用
更新日期:2026-05-21
2026-05-21 17:08 安全 安全
-
v1.0.1
将本地依赖库改为云端调用。
2026-05-21 16:16 安全 安全
-
v1.0.0
Initial release
2026-04-02 10:14 安全 安全
🔗 相关推荐
office-efficiency
Word / DOCX
ivangdavila 创建、检查和编辑 Microsoft Word 文档及 DOCX 文件,支持样式、编号、修订记录、表格、分节符及兼容性检查等功能。
★ 453
📥 150,772
office-efficiency
Excel / XLSX
ivangdavila 创建、检查和编辑 Microsoft Excel 工作簿及 XLSX 文件,支持可靠的公式、日期、类型、格式、重算及模板保留功能。
★ 376
📥 143,393