Skip to content

md2docx

功能强大的 Markdown → DOCX 转换工具:标准语法、Mermaid 图表、LaTeX 公式、Web 界面与 CLI 批量转换,本地处理保护隐私。PyPI 包名 mddocx

Python 3.8+50★MIT

特性

  • 标题、列表、代码块、表格、引用、图片、任务列表、分隔线
  • 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-docxmarkdown-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 ./docx

Mermaid 示例

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_ENVWebUI 开发/生产模式
SECRET_KEYWebUI 会话密钥(生产必设)

测试与质量

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 与发布流程。

源码

© 2026 老周有AI. All rights reserved.