FormatArc 將髒 HTML 轉換為乾淨 Markdown 的結果FormatArc 將髒 HTML 轉換為乾淨 Markdown 的結果
作者: FormatArc發布日期: 2026-09-02更新日期: 2026-10-13

HTML 貼上後轉 Markdown:去除網頁複製的 span 與 inline style

從 Microsoft Word、Google Docs 或網頁複製文字,貼到編輯器裡卻看到一堆 <span style="...">、class="c3"、<o:p> 標籤,這種情況你一定遇過。內容明明都在,但被不必要的裝飾標籤埋沒,Markdown 渲染器根本不需要這些東西。這篇整理如何把手上的髒 HTML 一次貼上就轉成乾淨的 Markdown。

先講結論

把髒 HTML 貼到 HTML to Markdown 轉換器 按下執行按鈕即可。<span>、行內 style 屬性、class 名稱、<font> 標籤、Word 專屬標記在 Markdown 中沒有對應語法,會被自動移除,只剩標題、列表、連結、表格等文件結構。所有轉換在瀏覽器內完成,貼上機密文件也不會有資料傳到外部。

跟 HTML 清理工具的差別

一般 HTML 清理工具(HTML Cleaner)或「去除行內樣式」的工具,回傳的是乾淨的 HTML。裝飾性的東西會被拿掉,但 <p>、<ul>、<div> 這些標籤本身還在。

如果你的目標是 README、GitHub issue、Notion、Obsidian、Wiki 或是餵給 LLM 的 prompt,需要的格式是 Markdown 不是 HTML,所以還差一步。

轉換工具一次做兩件事:去除裝飾雜訊,同時輸出 #、-、[文字](URL) 等 Markdown 語法。不需要先清理 HTML 再另外轉一次。

貼上的 HTML 為什麼會髒

髒的方式取決於從哪裡複製。不同來源混入的雜訊類型不同。

Microsoft Word

Word 會用 Office 專屬的標記包起來。style 屬性裡的 mso-* 屬性、代表段落的 <o:p> 標籤、條件式註解(<!--[if gte mso 9]>)、<font face="..."> 標籤都是典型例子。這些對讀者和 Markdown 渲染器來說沒有任何意義。

另外,混入的標記會因複製路徑而不同。從 Word 桌面版直接複製、經過 Outlook、或從瀏覽器開啟的 Word 線上文件複製,三種路徑產生的標籤量和種類都有差異。

Google Docs

Google Docs 傾向產出行內 CSS 而非語意化標籤。粗體文字常用 <span style="font-weight:700"> 而非 <strong>,文件裡還充斥大量自動產生的 class 名稱,以及包裹文字片段的空 span。class 名稱是自動生成的,沒有固定規則可以依賴。

網頁複製

在瀏覽器中選取網頁的某個區域複製時,該網站用來排版的元素會跟著一起進來。包裝用的 <div>、utility class 屬性、行內 style,甚至旁邊的導覽連結、分享按鈕、廣告區塊都可能混進來。轉成 Markdown 後,這些排版層會被丟掉,只剩可讀的內容結構。

同樣是網頁複製,混進來的東西會因為網站怎麼做而不同。WordPress 文章會在正文前後排上作者資訊、分類和相關文章連結,佈景主題加的 wp-block- 系列 class 也會落在正文段落上。文件網站會在每個標題旁邊放錨點連結、每個程式碼區塊上放複製按鈕,選取範圍包含它們時就會當成文字留下來。新聞網站會在段落之間插入相關報導卡片和分享按鈕,於是段落之間會出現既不是標題也不是正文的短行。這三種情況轉換都能通過,變的是轉換之後要刪掉的東西。

ChatGPT 與豐富文字編輯器

從 ChatGPT 介面或 WYSIWYG 編輯器複製有格式的回應時,常會得到包含編輯器專屬 span 或 data-* 屬性的 HTML。直接貼到別的工具會把雜訊一起帶過去,轉成 Markdown 則只保留純內容。

常被問到的是 <div style="..."> 這類外層容器會不會留下來。按下面 什麼會被刪掉,什麼會保留 表裡的說明,外層容器只留下裡面的文字,行內 style 和 data-* 屬性也會一併去掉。顏色、框線、間距都不會帶過來,進入 Markdown 的只有標題、粗體、連結、列表這些結構。如果需要保留外觀,就別轉成 Markdown,直接按 HTML 處理。

PDF 檢視器複製

從 PDF 檢視器選取複製的文字,本來就不是 HTML。沒有 span、style、class,只有純文字,所以「去除裝飾雜訊」這個步驟對它根本不適用。

PDF 只儲存文字在頁面上的座標位置,沒有區分標題和正文的資訊,所以段落中途可能出現任意換行,雙欄版面可能左右交錯。特別是表格容易因為欄位錯位而變形,直接修改貼上的文字不如把 PDF 檔案本身餵給 PDF 轉檔工具來得可靠。表格格式崩壞的具體原因與對策詳見 PDF 轉 Markdown 時表格格式崩壞的原因。

什麼會被刪掉,什麼會保留

以下是常見的髒標記與轉換結果對照:

原始標記範例Markdown 轉換結果
行內樣式<span style="color:#333">text</span>text(style 移除)
class 名稱<p class="c3 c7">text</p>text(class 移除)
Word Office 標記<o:p></o:p>、mso-* style完全刪除
font 標籤<font face="Calibri">text</font>text
包裝容器<div><span>text</span></div>text
空 span<span></span>刪除
data 屬性<p data-id="9">text</p>text
標題<h2>Title</h2>## Title
粗體(語意 / style 指定)<strong>x</strong> 或 <span style="font-weight:700">x</span>**x**
連結<a href="/p" class="btn">go</a>[go](/p)
列表<ul><li>a</li></ul>- a

有兩點需要注意:

  • Markdown 是比 HTML 表達範圍更小的語言。有結構對應物的元素(標題、列表、連結、強調、表格、圖片)會保留,純裝飾性的全部丟掉。
  • 「轉成 Markdown」不等於「HTML 變零」。Markdown 規格允許行內 HTML,所以轉換工具會把無法對應的標籤(複雜表格、不支援的元素等)以原始 HTML 片段的形式保留,而不是把內容丟掉。結果是夠乾淨,但不能保證所有情況下每個 <span> 都一定會消失。

用 FormatArc 轉換髒 HTML

HTML to Markdown 轉換器 直接接收貼上的 HTML 並產出 Markdown。不需要安裝任何軟體,也不會上傳任何檔案。

  1. 打開 HTML to Markdown 轉換器。
  2. 在左側輸入區貼上髒 HTML,Word 的雜物、空 span 都不用管,直接貼。
  3. 按下執行按鈕,右側立即顯示整理後的 Markdown,點擊複製按鈕即可存到剪貼簿。

貼上前後的核對範例

例如,輸入 <h2>步驟</h2><p class="c3"><span style="color:red">檢查設定</span></p><ul><li><a href="/help">說明</a></li></ul> 時,期望輸出是 ## 步驟、檢查設定、- [說明](/help)。確認標題、正文、連結目標與清單順序都保留,而 class 和 style 消失。如果複製的範圍連選單一起帶進來,轉換就分不清它與正文,轉換後請重新檢查選取範圍。

註:此例已在現行工具上執行,並以輸出一致的形式確定。

FormatArc 將髒 HTML 轉換為乾淨 Markdown 的結果FormatArc 將髒 HTML 轉換為乾淨 Markdown 的結果

HTML 解析和 Markdown 生成都跑在瀏覽器內的 JavaScript 引擎上,所以從 Word 貼上的機密合約或 CMS 未公開草稿都會留在你的裝置上,不會傳到 FormatArc 或任何第三方伺服器。線上轉換的隱私檢查清單詳見 線上安全:轉換工具使用前必做的 5 項隱私檢查。

轉換沒有完全乾淨時怎麼處理

有些複雜格式需要再手動整理一下。

Word 的表格與框線

從 Word 或試算表複製的表格常帶有 colspan(合併欄)、rowspan(合併列)或框線樣式,這些在 Markdown 的 pipe table 語法中沒有對應寫法。合併儲存格會被攤平,整個表格也可能以行內 <table> 標籤的形式保留。如果只是要處理表格,建議先簡化儲存格結構再轉換。表格的邊緣案例(直線、換行、欄位數不符)詳見 HTML 表格轉 Markdown 表格。

深層巢狀列表與換行

多層巢狀的列表、列表項目內的 <br> 標籤、有序無序列表交錯的結構,可能會產生多餘空行或縮層錯位。轉換後檢查輸出結果,如果渲染器顯示不對,手動調整縮排即可。

輸出中殘留的行內 HTML

結果中如果還有 <sub>、<details> 區塊或複雜表格等 HTML 標籤,這是正常行為。轉換工具為了不丟失內容而故意保留。GitHub 和大多數靜態網站產生器都支援 Markdown 內的行內 HTML,所以留著沒問題,不需要也可以手動刪掉。

網頁複製混入的導覽元素

如果只複製了一篇文章,正文前後卻混進了選單項目、分享按鈕或相關文章連結,複製時就縮小選取範圍,或從 Markdown 輸出中刪掉多餘的連結列表。沒有自動方法能區分哪個連結是導覽、哪個是正文。輸出開頭和結尾連著一串短連結的那幾段通常就是,把第一個標題之前和最後一段之後整塊刪掉最快。

如果這個動作要在幾十篇文章上重複,就有別於一頁一頁複製的另一條路。WordPress 匯出 Markdown 裡講了從匯出到批次轉換的步驟。

常見問題

為什麼 span 和 style 屬性會被刪掉?

Markdown 沒有表達行內 CSS、class 名稱或包裝 span 的語法,所以轉換工具會移除它們、只保留結構性內容。目的是取得不綁定特定編輯器、任何渲染器都能讀的高可攜性 Markdown。

Microsoft Word 的 mso- 標記也會被移除嗎?

會。mso-* 形式的 style 屬性、<o:p> 段落標籤、<font> 標籤、條件式註解在 Markdown 中沒有對應物,全部會被移除。不管 Word 以哪種路徑輸出標記,Markdown 結果中都不會殘留。

可以保留 class 名稱或樣式嗎?

不行。Markdown 無法表達這些樣式,所以會被刻意移除。如果需要保留樣式,把原始 HTML 另存一份,結構轉成 Markdown 後,在渲染階段再套用 CSS。渲染細節可參考 Markdown 轉 HTML 完整指南。

貼上機密文件安全嗎?

安全。轉換完全在瀏覽器內的 JavaScript 執行,貼上的 HTML 不會上傳到 FormatArc 或任何第三方伺服器。即使斷網離線狀態也能正常運作。

轉換後的 Markdown 為什麼還有 HTML?

因為 Markdown 規格本身允許行內 HTML。轉換工具遇到無法對應的結構(複雜表格、不支援的標籤)時,會以原始 HTML 片段保留而不是刪除內容。留著或手動刪掉都可以,大多數渲染器都能正常顯示。

總結

從 Word、Google Docs、ChatGPT 或網頁複製的髒 HTML,貼到 HTML to Markdown 轉換器就能變成乾淨的 Markdown。span、行內 style、class、Office 專屬標記會被清除,標題和列表等核心結構會保留。下次複製貼上時被格式問題卡住,試試瀏覽器內的安全轉換。HTML 轉 Markdown 的完整指南(含 CLI 方法)可參考 HTML 轉 Markdown 指南。