md2docx
功能强大的 Markdown → DOCX 转换工具:标准语法、Mermaid 图表、LaTeX 公式、Web 界面与 CLI 批量转换,本地处理保护隐私。PyPI 包名 mddocx。
特性
- 标题、列表、代码块、表格、引用、图片、任务列表、分隔线
- Mermaid(graph / flowchart / sequence / gantt 等)经 mermaid.ink 渲染为 PNG 嵌入 DOCX
- LaTeX 行内
$…$与块级$$…$$,支持\label/\ref编号引用 - WebUI:上传、实时预览、批量 ZIP 下载、响应式布局
- CLI:单文件与目录批量转换
- 可选
pip install mddocx[html]处理复杂 HTML 块(依赖 html-for-docx)
环境要求
- Python 3.8+
- 依赖见仓库
pyproject.toml(核心:python-docx、markdown-it-py) - Mermaid / LaTeX 转换需访问外网(mermaid.ink、latex.codecogs.com)
安装
PyPI(推荐)
bash
pip install mddocx安装后可用:
- 命令行:
mddocx - Web 界面:
mddocx-webui
开发环境
bash
git clone https://github.com/wangqiqi/md2docx.git
cd md2docx
python -m venv venv && source venv/bin/activate
pip install -e .[dev]快速开始
Web 界面(推荐)
bash
mddocx-webui
# 浏览器打开 http://localhost:5000支持拖拽上传 .md / .markdown / .txt,实时预览(800ms 防抖),Ctrl+Enter 提交转换。
生产环境可设:
bash
export FLASK_ENV=production
export SECRET_KEY=your-secret-key
export PORT=8000命令行
bash
# 单文件
mddocx input.md output.docx
# 批量(源码仓库脚本)
python scripts/batch_convert.py --input-dir ./md --output-dir ./docxMermaid 示例
markdown
```mermaid
graph TD
A[开始] --> B[结束]
```LaTeX 示例
markdown
行内 $E=mc^2$;块级公式:
$$
\sum_{i=1}^n i = \frac{n(n+1)}{2}
$$配置说明
| 项 | 说明 |
|---|---|
mddocx[html] | 启用复杂 HTML 表格/块级标签 |
FLASK_ENV | WebUI 开发/生产模式 |
SECRET_KEY | WebUI 会话密钥(生产必设) |
测试与质量
bash
pytest tests/ src/mddocx/webui/tests/
bash scripts/verify_release_candidate.sh # 发布前预检项目含 300+ 测试用例、GitHub Actions 多 Python 版本 CI、pre-commit(black / isort / flake8)。
常见问题
Q: Mermaid 图未嵌入 DOCX?
需网络访问 mermaid.ink;不支持的图表类型会回退为源码并附提示。
Q: LaTeX 显示为源码?
检查 codecogs 可达性;复杂 align 等环境可能首版回退。
Q: 与 cursor-ai-rules 的关系?
仓库集成 Cursor AI 协作规则 v3.0,便于文档 Sprint 与发布流程。
源码
- 仓库:wangqiqi/md2docx
- 架构文档:docs/01_架构设计.md
- 许可证:MIT




