FormatArc 在瀏覽器中將 WordPress Gutenberg HTML 轉換為 Markdown 的結果畫面FormatArc 在瀏覽器中將 WordPress Gutenberg HTML 轉換為 Markdown 的結果畫面
作者: FormatArc 編輯部發布日期: 2026-09-02更新日期: 2026-09-02

WordPress 匯出 Markdown:三條路徑比較,瀏覽器內免上傳

把 WordPress 部落格遷移到 Hugo、11ty 或 Obsidian 時,在後台「工具」裡按下「匯出」,得到的卻是一個 XML 檔案而不是 Markdown。很多人卡在這一步。遷移的路徑不只一條,最快的路取決於你有多少篇文章、手上有什麼環境。這篇文章比較三條路徑,帶你看每一步操作,也整理那些容易忽略的後處理。

選哪條路徑遷移

先給結論判斷:

  • 數十到數百篇要一次搬完,本機能跑 Node.js — 路徑 A(wordpress-export-to-markdown)
  • 想在伺服器端全搞定,有管理者權限可以裝外掛 — 路徑 B(匯出外掛)
  • 只有幾篇文章,沒有 Node.js 也不能裝外掛,或內容不能外洩 — 路徑 C(瀏覽器內轉換,免費、免註冊、不上傳)

路徑 C 與其說是「遷移」,不如說是「轉換」——靈活度高的手段。但如果只是想先搬一篇草稿,或從離職同事留下的內部 WordPress 裡救回幾篇文章,路徑 C 最快。

為什麼匯出的 XML 不是 Markdown

WordPress 後台的「工具」→「匯出」會下載一個 WordPress eXtended RSS(WXR)XML 檔案在新分頁中開啟。這個格式把文章、固定頁面、分類、標籤、留言等全部包在一起,而文章正文是以 HTML 形式嵌在 XML 裡面。也就是說,匯出完的狀態是「XML 殼裡的 HTML」,要變成 Markdown 需要兩道轉換。

另外,用區塊編輯器(Gutenberg)寫的文章,正文中區塊的分隔以 HTML 註解的形式序列化。WordPress 官方區塊編輯器架構文件在新分頁中開啟中說明,一個段落的儲存形式如下:

<!-- wp:paragraph -->
<p>歡迎來到區塊的世界。</p>
<!-- /wp:paragraph -->

[gallery] 這類 Shortcode 也原封不動地留在正文中。這三層(XML 殼、區塊註解、Shortcode)怎麼處理,才是選擇路徑的核心。

遷移前確認 — 什麼保留、什麼消失

無論走哪條路徑,文章正文(標題、段落、列表、連結、表格、程式碼區塊)都會變成 Markdown。差異在 metadata。

  • 發布日期、slug、分類、標籤都在 WXR 裡。路徑 A 會把它們寫進 frontmatter,但路徑 C 只處理你複製的正文 HTML,frontmatter 要自己加
  • 讀者留言在哪條路徑都不會變成 Markdown 檔案。如果遷移後要保留顯示,需要另外遷到靜態網站的留言服務
  • 自訂欄位的處理視工具而定。如果遷移後會用到特定欄位,先列清單確認你在用哪些欄位

路徑 A — wordpress-export-to-markdown 批次轉換

事實上的標準工具是 wordpress-export-to-markdown在新分頁中開啟。它接收 WXR 檔案作為輸入,為每篇文章產生帶 frontmatter 的 Markdown 檔案,同時下載正文中的圖片並改寫引用路徑(功能清單見 repo 的 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 執行。

FormatArc 在瀏覽器中將 WordPress Gutenberg HTML 轉換為 Markdown 的結果畫面FormatArc 在瀏覽器中將 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、inline style 都會被移除,標題和圖片轉為 Markdown 語法。figcaption 的文字會以純文字留在圖片下方。<pre class="wp-block-code"> 程式碼區塊變成圍欄程式碼,表格變成管線表格。Shortcode 不是 HTML,所以不會被轉換,會以 \[gallery ids="12,13,14"\] 這樣轉義過的純文字形式留下(後處理節會講)。去除網頁複製的 span 與 inline style 的方法,可參考 HTML 貼上後轉 Markdown

轉換全程在瀏覽器內的 JavaScript 中完成,貼上的內容不會傳送到任何外部伺服器。處理內部 WordPress 的文章或未公開草稿時,這個差別就很重要了。線上轉換的安全判斷基準見 轉換工具使用前必做的 5 項隱私檢查,HTML 轉 Markdown 的常見步驟整理在 HTML 轉 Markdown 指南

遷移後後處理清單

不管走哪條路徑,以下四項最後都會要你動手:

  • Shortcode 清理。[gallery][caption] 或外掛自訂的 Shortcode 不會變成 Markdown,會原樣留下。它們的形態不固定(有無屬性、包裹結構不同),比起一鍵全替換,在編輯器中搜尋 [ 逐一判斷比較安全
  • 圖片搬移。路徑 C 中圖片 URL 仍指向 wp-content/uploads。把圖片下載到新站並改寫 URL。srcsetloading="lazy" 屬性在轉換時會被移除,需要的話在新平台上重新加
  • 內部連結改寫。指向舊網域或舊永久連結結構(如 ?p=123 格式)的連結,要改成新站的 URL 規則
  • 加上 frontmatter。把標題、日期、標籤以 YAML 形式放在檔案最前面。各 SSG 的格式不同,查你目標 SSG 的官方文件即可。frontmatter 的 YAML 語法與常見陷阱詳見 Markdown frontmatter 格式與語法:YAML 轉 JSON 的 5 個陷阱

比較 — 三條路徑怎麼選

路徑適合規模需要的環境Metadata圖片
A: wordpress-export-to-markdown在新分頁中開啟數十到數百篇批次遷移Node.js + WXR 匯出自動寫入 frontmatter下載並改寫引用
B: 匯出外掛想在伺服器端搞定管理者權限(裝外掛)自動寫入 frontmatter視外掛而定
C: HTML 轉 Markdown幾篇的臨時遷移只要瀏覽器(免費、免註冊)手動加上URL 保留,手動搬移

常見問題

不用 Node.js 也能把 WordPress 文章轉成 Markdown 嗎?

可以。能裝外掛就走路徑 B,不能就走路徑 C。把文章切到程式碼編輯器檢視、複製 HTML、貼到 HTML 轉 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 的瀏覽器內轉換。無論選哪條路徑,把 Shortcode 清理、圖片搬移、內部連結改寫、frontmatter 加上都納入遷移計畫中,不要留到最後才想起來。從 Notion 做類似遷移的話,Notion 匯出 Markdown 整理 也可參考。