MD 转 Word
参考 Cherry Studio 开源实现 思路,使用 markdown-it-py 解析 Markdown 为 token,再用 python-docx 生成 Word 文档。
依赖
python-docx(~1.2.0) — 已安装markdown-it-py(~4.0.0) — 已安装
使用方法
调用 scripts/md_to_word.py 脚本:
python "scripts/md_to_word.py" <input.md> [output.docx]
如果需要直接传入 Markdown 字符串而非文件:
python "scripts/md_to_word.py" --inline "<markdown字符串>" output.docx
支持的 Markdown 语法
| 语法 | 说明 |
|------|------|
| # ~ ###### | 标题 h1~h6 |
| **text** / __text__ | 粗体 |
| *text* / _text_ | 斜体 |
| `code` | 行内代码(Consolas 字体) |
| ```lang ... ``` | 代码块(灰色背景 + 边框) |
| - item / * item | 无序列表 |
| 1. item | 有序列表 |
| - [ ] / - [x] | 任务列表 |
| > quote | 引用块(左侧灰线) |
| --- / *** | 水平分割线 |
| | A | B | | 表格(三线表风格) |
| [text](url) | 超链接 |
|  | 图片 |
| ~~text~~ | 删除线 |
工作流程
- 读取用户指定的 Markdown 文件(或直接使用对话中的 Markdown 内容)
- 用
markdown-it-py解析为 token 流 - 遍历 token,用
python-docx构建对应的 Word 元素 - 弹出保存对话框,保存为
.docx文件
参考实现
本技能参考了 Cherry Studio src/main/services/ExportService.ts 的实现思路:
- 使用
markdown-it(JS版)/markdown-it-py(Python版)解析 Markdown - 遍历 token 流构建文档元素
- 表格采用三线表风格(表头粗体、顶部底部有边框)
已知限制
- 表格中的嵌套复杂格式(如表格内代码块)支持有限
- 图片需要本地文件路径才能嵌入
- 数学公式(LaTeX)暂不支持,建议在 Cherry Studio 中使用其内置导出功能
开源协议
本技能基于 GNU Affero General Public License v3.0 (AGPL-3.0) 发布。
本项目参考了 Cherry Studio(AGPL-3.0)的 ExportService.ts 实现思路。
根据 AGPL-3.0 第5节的要求,特此声明:
- ✅ 本作品基于 Cherry Studio 的思路进行修改和移植
- ✅ 修改时间:2026年5月
- ✅ 修改内容:从 TypeScript (Electron) 移植到 Python 3,替换了所有依赖库
- ✅ 本作品同样以 AGPL-3.0 协议发布
详细信息请参阅 LICENSE 文件。
微信扫一扫