FormatArc 在浏览器内将 WordPress Gutenberg HTML 转换为 MarkdownFormatArc 在浏览器内将 WordPress Gutenberg HTML 转换为 Markdown
作者: FormatArc 编辑部发布日期: 2026-09-02更新日期: 2026-09-02

WordPress 导出 Markdown 的三种方法:无需 Node.js 的浏览器转换

如果你打算把 WordPress 博客迁移到 Hugo、11ty 或 Obsidian,在后台点「工具」再点「导出」,得到的却不是 Markdown,而是一个 XML 文件。很多人就停在了这一步。迁移的路径不止一条,文章数量和手上的环境不同,最快的路也不同。这篇文章比较三条路径,并整理各自的操作步骤和容易遗漏的后处理。

选哪条路径迁移

先看结论判断表。

  • 想一次性迁移几十到几百篇,本地能运行 Node.js — 路径 A(wordpress-export-to-markdown)
  • 想在服务器侧完成,有管理员权限安装插件 — 路径 B(导出插件)
  • 目标只有几篇,既不能用 Node.js 也不能装插件,或者处理不能外传的文章 — 路径 C(浏览器内转换,免费、无需注册、不上传)

路径 C 与其说是「迁移」,不如说是「转换」这种灵活的手段。但如果只想先移一篇草稿,或从离职者留下的公司 WordPress 里救回文章,它是最快的。

导出的 XML 为什么不是 Markdown

在 WordPress 后台执行「工具」里的「导出」,会下载 WordPress eXtended RSS(WXR)格式的 XML 文件在新标签页中打开。这个格式把文章、固定页面、分类、标签、评论等打包在一起,正文以 HTML 形式嵌在 XML 里。也就是说,导出后的状态是「XML 壳子里的 HTML」,到 Markdown 需要两次转换。

另外,用区块编辑器(Gutenberg)写的文章,区块分隔会以 HTML 注释的形式序列化保存。按照 WordPress 官方区块编辑器设计文档在新标签页中打开,一个段落是这样保存的:

<!-- wp:paragraph -->
<p>欢迎来到区块的世界。</p>
<!-- /wp:paragraph -->

[gallery] 这样的短代码也会原样留在正文里。这三层(XML 壳子、区块注释、短代码)如何处理,是选择路径的关键。

迁移前确认 — 什么保留、什么消失

无论哪条路径,正文(标题、段落、列表、链接、表格、代码块)都会变成 Markdown。差别在元数据。

  • 发布日期、slug、分类、标签都在 WXR 里。路径 A 会写成 frontmatter,路径 C 只处理复制的正文 HTML,所以 frontmatter 要自己加
  • 读者评论在任何路径下都不会变成 Markdown 文件。迁移后还想显示的话,需要另外切换到静态站点的评论服务
  • 自定义字段的处理依赖工具。如果迁移后需要某些值,提前整理一下用了哪些字段

路径 A — 用 wordpress-export-to-markdown 批量转换

事实上的标准工具是 wordpress-export-to-markdown在新标签页中打开。它接收 WXR 文件作为输入,为每篇文章生成带 frontmatter 的 Markdown 文件,同时下载正文中引用的图片并改写引用(功能列表见仓库 README)。

  1. 在后台「工具」里打开「导出」,选择「所有内容」下载 XML。
  2. 在安装了 Node.js 的环境运行命令。
npx wordpress-export-to-markdown

交互式向导会运行,可以选择输入文件位置、输出位置、文件夹结构(--post-folders / --date-folders)、文件名加日期(--prefix-date)、图片保存方式(--save-images)、frontmatter 包含的字段(--frontmatter-fields)等。文章越多,这个批量处理的效果越大。

路径 B — 用插件导出

想在服务器侧完成的话,有 Static Site Exporter(原 Jekyll Exporter)在新标签页中打开 这类导出插件。它把文章和固定页面转成带 YAML frontmatter 的 Markdown,打包成 ZIP,便于直接导入 Jekyll 或 Hugo。

注意两点。添加插件需要管理员权限;而且正如插件页面所写,规模较大的站点在网页运行容易超时,推荐使用命令行运行。部分托管会碰到 PHP 内存上限。

路径 C — 只用浏览器转换

如果只有几篇,不需要环境搭建的浏览器内转换最快。获取输入有两种方法。

  • 在区块编辑器打开文章,从右上角选项切到「代码编辑器」,复制正文 HTML。这个 HTML 里有 <!-- wp:paragraph --> 这样的区块注释
  • 在浏览器打开已发布页面,用开发者工具等复制文章部分的 HTML。因为是渲染后的 HTML,没有区块注释,但会带着主题的包装元素

复制后,粘贴到 HTML 转 Markdown 运行即可。工具的一般用法见HTML 转 Markdown 指南

FormatArc 在浏览器内将 WordPress Gutenberg HTML 转换为 MarkdownFormatArc 在浏览器内将 WordPress Gutenberg HTML 转换为 Markdown

例如从代码编辑器复制下面的 HTML 粘贴后,

<!-- wp:heading -->
<h2 class="wp-block-heading">迁移归档</h2>
<!-- /wp:heading -->
<!-- wp:image -->
<figure class="wp-block-image size-large"><img src="https://example.com/wp-content/uploads/2024/03/diagram.png" alt="架构示意图" class="wp-image-42"/><figcaption class="wp-element-caption">图 1:旧架构</figcaption></figure>
<!-- /wp:image -->

输出是这样。

## 迁移归档

![架构示意图](https://example.com/wp-content/uploads/2024/03/diagram.png)

图 1:旧架构

区块注释、wp-block-* 的 class、内联 style 会消失,标题、图片会变成 Markdown 语法。HTML 粘贴时去除内联样式的通用模式见HTML 粘贴 Markdown 化figcaption 的说明文字以纯文本形式留在图片下方。<pre class="wp-block-code"> 代码块变成围栏代码,表格变成管道表。短代码不是 HTML,所以不会转换,会像 \[gallery ids="12,13,14"\] 这样方括号被转义的纯文本留下(后处理章节会讲)。

转换完全在浏览器内的 JavaScript 完成,粘贴的内容不会发送到任何地方。处理公司 WordPress 的文章或未公开草稿时,这一点和上传型转换服务不同。

迁移后处理检查清单

无论走哪条路径,下面 4 点最后都要动手。

  • 短代码清理。[gallery][caption] 或插件特有的短代码不会变成 Markdown 而留下。形状不固定(有没有属性、包裹形式等),安全做法是在编辑器里搜索 [ 逐个判断,而不是一键替换
  • 图片迁移。路径 C 里图片 URL 仍指向 wp-content/uploads。把目标里的图片下载并改写 URL。srcsetloading="lazy" 属性在转换时会消失,需要的话在目标侧重新加
  • 内部链接改写。把指向旧域名或固定链接结构(?p=123 格式等)的链接改成目标 URL 规则
  • frontmatter 添加。把标题、日期、标签用 YAML 加在开头。静态站点生成器(SSG)格式各不相同,查目标 SSG 的文档。frontmatter 格式的细节见Markdown frontmatter 的 YAML 与 JSON

比较 — 三条路径的区别

路径适合规模需要环境元数据图片
A: wordpress-export-to-markdown在新标签页中打开几十到几百篇批量迁移Node.js + WXR 导出自动写进 frontmatter下载并改写引用
B: 导出插件想在服务器侧完成管理员权限(装插件)自动写进 frontmatter取决于插件
C: HTML 转 Markdown只迁移几篇只需浏览器(免费、无需注册)手动添加URL 保留,手动迁移

常见问题

不用 Node.js 能把 WordPress 文章转成 Markdown 吗?

可以。能装插件就用路径 B,不能就用路径 C。把文章切到代码编辑器视图复制 HTML,粘贴到 HTML 转 Markdown,不搭建环境也能得到 Markdown。

Gutenberg 的区块注释转换后还留吗?

FormatArc 转换中,<!-- wp:paragraph --> 这样的 HTML 注释不会留在输出里。注意,这种注释只存在于代码编辑器复制的 HTML 中,从已发布页面复制的 HTML 本来就没有。

图片也能一起迁移吗?

路径 A 有下载正文图片并改写引用的功能(README在新标签页中打开 有说明)。路径 C 只转换,图片 URL 仍指向原站点。只有几篇的话,手动保存图片并改写 URL 更实际。

把未公开草稿或公司 WordPress 文章粘贴到外部工具安全吗?

向服务器发送的工具,粘贴的瞬间内容就脱离了控制。FormatArc 只在浏览器内处理,不会发生发送。判断标准在在线工具安全检测中整理。

用经典编辑器写的旧文章也能用同样步骤迁移吗?

可以。经典编辑器正文是没有区块注释的纯 HTML,转换反而简单。路径 A、B、C 都能处理经典编辑器的文章。

总结

WordPress 到 Markdown 的迁移由规模和环境决定。几百篇批量迁移用 wordpress-export-to-markdown,服务器侧完成用导出插件,只有几篇、不搭环境、还涉及机密内容时,HTML 转 Markdown 的浏览器内转换最快。无论选哪条路径,把短代码清理、图片迁移、内部链接改写、frontmatter 添加都纳入迁移范围来计划。如果从 Notion 等平台迁移时使用同样的做法,Notion 导出 Markdown 也可参考。