把网页 AI(ChatGPT / Claude / DeepSeek / 文心 / 通义……)的回答 直接复制,转成可编辑的
.docx: 表格变 三线表,公式变 可编辑的 Word 公式,#变 Word 标题样式。✨
AI 网页端给出的内容看着是 Markdown,但复制到 Word 里往往一团糟 😩:
- 表格变成一堆
| --- | --- |竖线文字 - 公式变成乱码,或只能截图,不能编辑
#、##标题原样保留,没有变成 Word 的标题样式- 网页 AI 输出的还不是纯正 Markdown:行内公式写成
(z_T)、块公式用\[...\]或裸[...]、下标写成*{LL}、有时混入全角竖线|或中文破折号……
MD To Word 把这些「脏」Markdown 自动修好,再交给 Pandoc 生成排版规范、可继续编辑的 Word 文档。👇
| 功能 | 说明 |
|---|---|
| 📋 直接复制即用 | 从 AI 网页复制内容,粘进侧边栏,点一下就能导出 .docx,无需手动整理格式 |
| 📊 表格 → 三线表 | Markdown 表格自动转成学术规范的三线表(上下粗线 + 表头下细线、无内部网格),可直接用于论文/报告 |
| 🧮 公式可编辑 | 行内/块级公式转成 Word 原生公式(OMML),不是图片,能在 Word 里继续编辑 |
| 🔀 Mermaid 流程图 | Mermaid 源码在后端本地渲染为 PNG 后嵌入 Word(图像不可继续编辑) |
| 🔠 标题映射 | # → Word 一级标题、## → 二级…… ###### → 六级;超过六级自动降为正文 |
| 🇨🇳 中文排版 | 正文宋体、标题黑体、1.5 倍行距等中文论文常用样式(基于 reference.docx) |
| 🛡️ 脏 Markdown 兜底 | 自动修复网页 AI 输出的非标准写法(见下) |
| 👀 实时预览 | 侧边栏内用 KaTeX + markdown-it 实时预览,所见接近所得 |
| 🗂️ 文件夹管理 | 多对话、多文件夹组织内容,支持批量选择与导出顺序 |
| 💬 问题反馈 | 内置反馈入口,可提交转换失败的内容或功能建议,帮助持续改进 |
为了让「网页 AI 输出」也能稳定转换,转换前会自动归一化以下常见问题:
- 🔧 块公式
\[...\]和裸括号块[ \n ... \n ]→ 标准$$...$$ - 🔧 行内 AI 公式
(z_T)、\(...\)→$z_T$(普通文字如(注)不动) - 🔧 AI 下标错误
*{LL}、*2→_{LL}、_2 - 🔧 表格紧贴标题缺空行、全角竖线
|、分隔行用中文破折号——→ 自动补空行、转半角、转- - 🔧 列表紧贴段落无空行(开启 Pandoc
lists_without_preceding_blankline) - 🔧 标题缺空格
#标题→# 标题 - 🔧 独立
---行 → 转义为\---,防止被 Pandoc 误判为 YAML 元数据导致转换失败 - 🔧 高大括号 / 分数 / 范数等定界符自动放大,避免 Word 公式显示过小
- 🩺 导出后自检:若仍有未被解析的表格残留,会在后端日志告警,便于排查
📐 预览(前端
extension/src/normalizer.ts)与导出(后端backend/app/normalizer.py)使用一致的归一化规则,保证「预览长啥样,Word 就是啥样」。
- 🏗️ 构建扩展:在
extension/下执行npm install && npm run build - 🧩 打开浏览器扩展页:
chrome://extensions或edge://extensions - 🛠️ 打开「开发者模式」
- 📂 选择「加载已解压的扩展程序」,指向
extension/dist - 🖱️ 点击扩展图标,打开侧边栏
- 📋 把 AI 回答复制进去 → 预览确认 → 点击 导出 Word 🎉
默认连接线上转换服务。 本地自建后端时,把服务地址改为
http://127.0.0.1:8000。
backend/ 🐍 FastAPI + Pandoc 转换服务(归一化 → Pandoc → 三线表后处理)
extension/ 🧩 浏览器扩展(React + TypeScript + Manifest V3 侧边栏)
agent/ 🤖 用户反馈分类、复现、修复、验证与 PR 发布
docs/ 📚 权威设计、部署说明和分阶段问题复盘
logs/ 🧪 调试样例与效果图
AI 网页内容
│ 复制粘贴
▼
扩展侧边栏 ──(实时预览: markdown-it + KaTeX)
│ POST /convert
▼
后端 normalize_markdown() 🛡️ 修复脏 Markdown
│
▼
本地 Mermaid CLI + Chromium(仅流程图,输出 PNG)
│
▼
Pandoc(math + tables + 图片 + reference.docx 中文样式)
│
▼
三线表后处理 + 导出自检 🩺
│
▼
可编辑的 .docx 📄✅
cd backend
uv venv .venv
uv pip install -e ".[dev]"
.venv/bin/uvicorn app.main:app --reload # 启动服务
.venv/bin/python -m pytest -v # 运行测试Pandoc 用于
.docx转换。开发依赖含pypandoc_binary,本地非 Mermaid 测试无需单独 安装 Pandoc。Mermaid 真实转换请使用后端 Docker 镜像,以确保 CLI、Chromium 和中文 字体版本与生产一致。
cd extension
npm install
npm run dev # 开发预览
npm run build # 构建 dist(tsc + vite)cd backend
docker build -t md-to-word-backend .用 Microsoft Word 打开导出的 .docx,确认:
- 📝 正文文字可读、样式正常
- 📊 表格是 Word 原生表格,且为三线表样式
- 🧮 公式是可编辑的 Word 公式(不是图片)
- 🔀 Mermaid 流程图显示为清晰图片(流程图本身不可编辑)
- 🔠 标题层级映射正确(
#→ 一级标题……)
- 后端从
backend/部署到 Render,健康检查路径/health。 - 扩展不部署到 Render:构建
extension/dist后在浏览器刷新「已解压扩展」即可。 - Render 后端容器已经包含 Mermaid CLI 与 Chromium;使用线上插件时不需要开启本地 Docker。
- Agent Sandbox 当前由本地 Docker Desktop/WSL 提供,仅在运行自动复现、修复、发布或 Docker 集成测试时需要开启。7×24 小时自动处理反馈时,应另行部署带 Docker Engine 的 私有 Agent 主机,不与公开转换后端混合部署。
Agent 总体方案和完整流程见 部署与运行方式,历史问题复盘见 AgentProblem。
- 🎓 写论文 / 课程作业:让 AI 生成内容,复制即得规范 Word(三线表 + 可编辑公式)
- 📑 写报告 / 文档:免去手动调格式
- 🧑🏫 教学演示:Markdown 转 Word 的工程实践参考