格式是大多数 Word 到 Markdown 转换出错的地方。粗体文本显示为纯文本。桌子倒塌了。标题变成无样式的段落。本指南准确解释了期间发生的情况 Word 转 Markdown 转换以及如何控制输出。
了解转换管道
当您将 Word 文档转换为 Markdown 时,会发生两件事:
- DOCX → HTML — mammoth.js 解析 Word XML 并将每个元素映射到 HTML
- HTML → Markdown —turndown 将 HTML 转换为 Markdown 语法
如果 HTML 是干净的,那么第二步是无损的。第一步是格式复杂性很重要——Word 的样式需要映射到已知的 HTML 等效项。
使用 WordToMD 转换器 准确查看文档如何实时转换。
标题样式
Word 中最重要的格式决定是使用内置标题样式。
| 字型 | Markdown 输出 |
|---|---|
| 标题 1 | # Heading |
| 标题 2 | ## Heading |
| 标题 3 | ### Heading |
| 正常(粗体文本) | **text** (不是标题) |
常见错误: 手动将文本格式设置为大且粗体,而不是应用标题样式。这看起来像 Word 中的标题,但在 Markdown 中转换为粗体文本,而不是 ##.
有关完整的标题参考,请参阅 Markdown 标题指南.
文本强调
| Word格式 | Markdown 输出 |
|---|---|
| 粗体 | **Bold** |
| 斜体 | *Italic* |
| 粗体斜体 | ***Bold Italic*** |
~~Strikethrough~~ | |
| 下划线 | (无 Markdown 等效项 — 省略) |
| 突出显示 | (无标准 Markdown — 省略) |
下划线和突出显示在标准语法中没有 Markdown 等效项。转换后,使用HTML <u> 标签或自定义 CSS 类(如果您的发布平台支持)。
列表
Word 的自动列表格式转换干净:
- Bullet item one
- Bullet item two
- Nested bullet (indent 2 spaces)
1. First item
2. Second item
1. Nested numbered item
破坏列表的因素: 手动输入的破折号或数字不是实际的 Word 列表项。这些在视觉上看起来像列表,但 Word 将它们视为纯文本段落。解决方法:在 Word 中选择它们并应用列表项目符号或列表编号样式。
表格
标准表转换为 GitHub 风格的 Markdown 表语法:
| Column 1 | Column 2 | Column 3 |
|---|---|---|
| Cell A | Cell B | Cell C |
| Cell D | Cell E | Cell F |
什么破坏了桌子:
- 合并单元格 — 跨越多列或多行的单元格将被折叠
- 多行单元格内容 — 单元格内的换行符被去除
- 嵌套表 — 内部表被展平为纯文本
有关完整的详细信息,请参阅 Markdown 表:完整指南.
代码和预格式化文本
Word 中使用等宽字体(Courier New、Consolas)格式化的文本映射到内联代码:
Use `console.log()` to debug.
对于具有语法突出显示的隔离代码块,请应用 Word 的“代码”段落样式(如果您的模板有),或者在转换后手动添加三重反引号隔离。参见 Markdown 代码块指南 获取完整语法。
超链接
Word超链接完美转换:
Visit [WordToMD](https://wordtomd.org) for instant conversion.
链接文本和 URL 均被保留。如果 Markdown 中不存在目标,则书签(同一文档中的内部链接)可能无法转换。
图像
图像是 Word 到 Markdown 转换始终不足的地方。mammoth.js 可以将嵌入图像提取为 base64 数据 URI,但默认行为是在转换注释中注明它们的存在。转换后:
- 从 Word 导出图像:文件 → 另存为 → 网页 (HTML)
- 在 Markdown 中引用它们:

特殊字符和符号
Word 经常自动插入特殊的 Unicode 字符:
- 智能报价 (
"...") → 保留为 Unicode 字符 - Em破折号(
—) → 保留 - 不间断空格 → 转换为常规空格
- 版权符号(
©) → 保留
如果您需要仅 ASCII 输出,请在转换后在文本编辑器中执行查找和替换。
自定义Word样式
如果您的 Word 文档使用自定义段落样式(例如“标注”或“警告”),mammoth.js 会将它们记录为转换注释。您会看到类似“无法识别的段落样式:标注”之类的消息。WordToMD 默认情况下会过滤掉这些信息性消息。
要处理自定义样式,您需要一个带有自定义过滤器的本地 Pandoc 设置 - 请参阅 Pandoc Word到 Markdown 针对该方法。
转换前的格式检查表
在转换之前将此清单应用于您的 Word 文档:
- 所有标题均使用 Word 内置的标题 1/2/3 样式(非手动格式)
- 列表是使用 Word 的列表工具创建的(不是键入破折号/数字)
- 表格是简单的网格(没有合并单元格)
- 代码使用等宽字体
- 超链接是真正的超链接(不仅仅是蓝色下划线文本)
FAQ
为什么我的标题转换为粗体文本? 您应用了手动粗体 + 字体大小格式而不是标题样式。在 Word 中,单击该段落并查看“样式”面板 - 它应该显示“标题 1”而不是“普通”。
我的编号列表在错误的位置从 1 重新开始 — 我该如何修复它? 在 Word 中设置列表延续:右键单击列表 → 继续编号。或者转换后直接编辑 Markdown。
Markdown 中的表格对齐方式看起来不正确。发生了什么?
GFM 表使用 |---| 用于对齐分隔符。WordToMD 自动生成这些。如果渲染看起来不正常,请检查单元格中是否没有管道字符(|) 在其内容中 — 将其转义为 \|.
结论
保持清洁 Word 到 Markdown 格式 主要是关于正确使用 Word。应用内置标题样式,使用 Word 的列表和表格工具,您将获得近乎完美的输出 WordToMD 转换器. For edge cases — custom styles, complex tables, images — the tips above will get you the rest of the way there.