从 Word 迁移到 Markdown:完整指南
把文档从 Word 迁到 Markdown 大部分是机械操作,但失败点完全可以预判、预防成本很低。每一个坑都源于把转换当成一步到位的魔法,而不是一条需要做几个决策的小流水线。
本指南按顺序讲清这些决策:你到底在迁移多少东西、什么能活过转换什么不能、脚注表格公式怎么走,以及怎样让最终文件被静态站点或 wiki 一次接收。
转换之前先定范围
单篇活跃文档和十年的存档是两个项目。单篇的目标是一次忠实的转换,一个下午手工润色完;存档的目标换成可重复:同一组选项一致地套用,人来抽查样本而不是逐篇细读。
无论哪种,都从样本开始。挑两三篇有代表性的文档,表格最烂、图最多的那种,仔细检查输出。样本会告诉你哪些选项真正重要、剩下的文档需要多少清理,然后才值得放全量。
什么能转干净,什么不能
真正的 Word 标题样式会变成 Markdown 标题,简单表格变成表格,脚注变成脚注,内嵌图片解包成文件。活在正常文档流里的内容都能顺利迁移,而那正是一篇文档的大部分。
例外都聚在边缘。直接刷格式的做法,比如用加粗行冒充标题,不会变成结构,所以先在 Word 里套真正的标题样式。修订会被当作全部接受来转换,删掉的文字你在意的话就先解决修订。批注、文本框、浮动图形不可靠地丢失,里面的内容要先挪进正文或单独留存。
脚注会跟着走
Word 脚注是迁移里让人愉快的意外。Pandoc 能读出它,Markdown 输出用的是真正的脚注语法:文中每个标记都会变成带脱字符的方括号引用,所有脚注定义会集中到文档末尾,并和标记互相链接。
转换后有两处细节仍值得检查:互相引用或内含表格、图片的脚注,顺序和形态都可能与原文不同;尾注和脚注的转法是一样的,而在 Markdown 里这通常正是你想要的效果。
表格及其边界
目标是 GitHub、Obsidian 或多数 wiki 时,记得开启 GFM 选项,简单表格会转成管道表格:一行表头、一行分隔线、每行数据占一行。这种格式处处都能渲染,纯文本状态下也保持可读。
边界在结构上。合并单元格、装着多段落的单元格、嵌套表格没有管道表格的对应写法,pandoc 会退回到那些平台不认识的 Markdown 方言。诚实的解法在上游:在 Word 里把复杂表格拆平,或者接受少数表格迁移后需要手工重做。
数学变成 LaTeX
用 Word 公式编辑器输入的公式以结构化数学存储,pandoc 会转换而不是丢弃。Markdown 输出用美元符号定界符包住行内公式、展示公式单独成行;LaTeX 输出格式直接产生原生数学环境,供期待它们的渲染管线使用。
转换后扫两处弱点:Word 里显示含混的行内公式,以及多年前以图片形式粘进 Word 的公式——它现在是图片,不是数学。这些需要重录,迁移前知道这点,排期才不会失真。
一个可预测的图片策略
每张内嵌图片都会解包到转换文件旁边的 media 文件夹,文件名沿用 docx 包内分配的名字:image1.png 和它的兄弟们。Markdown 引用这些相对路径,ZIP 下载把两者一起交付,每个转换出的文档都是自洽的一对。
跑全量之前就定好:各文档保留自己的 media 文件夹,还是合并成共享的 assets 目录。分开是安全且自动的;合并则要加前缀重命名并同步更新引用。真正要避免的是几个 image1.png 已经互相覆盖之后才发现撞名。
给静态站点生成 front matter
Hugo、Jekyll 这类静态站点生成器都期待每个文件顶部有 YAML front matter:title、author、date。转换器则可以直接从 docx 内部存储的文档属性生成这一块,文件落地时就自带元数据,不必再事后手工补录。
前提是属性是真的。从旧格式整批转过来的 Word 文件,Title 字段常常是空的,作者一栏还挂着某位离职员工的账号。跑批之前花十分钟,在 Word 的文件信息里把每一篇都填好,决定了 front matter 是可用数据还是占位符。
批量迁移这一遍
选项在样本上校准好之后,全量跑是波澜不惊的。把整个 docx 文件夹加进本站转换器,让队列逐个处理并显示各自状态,最后下载 ZIP。批量输出给每个文档独立子目录,一篇论文的图片永远不会盖住另一篇的。
迁移验收之前要保留好原始 docx 文件。它们是转换过程中被抹平之处的唯一事实来源,用调整后的选项重新转换一遍,永远比凭记忆重建一篇文档便宜。
迁移完成的校验清单
每篇文档核对六件事:标题层级连续不跳级、每个图片引用都能解析到真实存在的文件、表格在目标平台能正常渲染、脚注是真脚注、该渲染的数学都渲染、front matter 字段有值而不是空的。
最后,挑一篇在真实目的地完整走一遍:构建静态站点、预览 wiki 页面、在 Obsidian 里打开笔记。目标系统渲染通过才算迁移完成,而不是转换器报成功。最后这步花几分钟,能抓住文件级检查漏掉的一切。