Word 转 Markdown

把 .docx 里的标题层级、加粗斜体、链接、表格和编号列表提取成 Markdown,转换在本机完成。

.docx 会在这里解压、读 XML、再拼成 Markdown,文件不上传。老式的 .doc 请先用 Word 另存为 .docx。

选择一份 .docx 文件,或者直接拖到这块区域里

关于 Word 转 Markdown

.docx 就是一个装 XML 的 ZIP。把任意 .docx 后缀改成 .zip 再解开,会看到 word/document.xml、styles.xml、numbering.xml 这些文件。正文、样式、编号各自独立,所以「Word 转 Markdown」本质上就是把 document.xml 里的段落属性翻译成 Markdown 语法。这也解释了为什么转换总是丢东西:文本框、批注、修订痕迹、域代码、嵌入对象都各有自己的 XML 分支,不在正文流里。

标题级别来自样式名而不是字号。Word 里的「标题 1」是一个段落样式(pStyle w:val="Heading1"),不是「加大加粗的一行字」。所以有人手动把正文调大加粗来当标题时,转换工具只能看到普通段落,转出来就是普通段落。反过来也一样:从 Markdown 转出去的 Word,标题带的是真正的标题样式,导航窗格和大纲级别都能用。

编号定义在 numbering.xml 里。段落本身只记「我用第几个编号定义的第几层」(numPr 里的 numId 和 ilvl),具体是圆点还是数字、从几开始、缩进多少,全在 numbering.xml 里。所以光看 document.xml 判断不了一个列表是项目符号还是数字编号,必须把两份 XML 对照着读。

往哪边转都会掉信息。Markdown 的表达能力是 Word 的子集:没有分栏、页眉页脚、字体、颜色、批注。Word 的表达能力又超出 Markdown:脚注、交叉引用、域、样式继承都没地方放。所以这两个方向都适合「把内容搬过去继续编辑」,不适合当无损存档。需要严格的格式还原,还是得用 PDF 或者原文件。