tutorial formatting word markdown

Word 到 Markdown 格式指南:保留每种风格

Word 到 Markdown 格式的综合指南 - 什么会自动转换,什么需要手动修复,以及如何每次都能获得完美的输出。

W
WordToMD 团队
·

格式是大多数 Word 到 Markdown 转换出错的地方。粗体文本显示为纯文本。桌子倒塌了。标题变成无样式的段落。本指南准确解释了期间发生的情况 Word 转 Markdown 转换以及如何控制输出。

了解转换管道

当您将 Word 文档转换为 Markdown 时,会发生两件事:

  1. DOCX → HTML — mammoth.js 解析 Word XML 并将每个元素映射到 HTML
  2. 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,但默认行为是在转换注释中注明它们的存在。转换后:

  1. 从 Word 导出图像:文件 → 另存为 → 网页 (HTML)
  2. 在 Markdown 中引用它们: ![Alt text](path/to/image.png)

特殊字符和符号

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.