轉換器

Markdown 轉 HTML 轉換器

Markdown 轉 HTML 是一款瀏覽器轉換器,把 CommonMark 與 GitHub Flavored Markdown 變成經過淨化的 HTML——包含標題、表格、任務列表和圍欄程式碼塊。不上傳任何檔案;同一個渲染器也在 POST /v1/convert/markdown/html 背後執行。

# markitdown-ai

Convert documents to clean Markdown.

## Features

- PDF, Word, and slides
- [x] Tables stay tables
- [ ] Mermaid coming later

## Install

```bash
pnpm add @markitdown-ai/sdk
```

## API

| Method | Path |
| --- | --- |
| POST | /v1/convert/{name} |
| GET | /v1/conversions/{id} |

如何操作

如何把 Markdown 轉 HTML

可以貼上什麼

  • 支援任意 Markdown:CommonMark,外加 GitHub Flavored Markdown 的表格、任務列表和刪除線
  • 渲染在你的瀏覽器中進行 —— 輸入時不會上傳任何內容
  • 預覽、複製或下載都無需帳號
  • 沒有固定大小上限;超大的文件受瀏覽器記憶體限制
Markdown 轉 HTML 轉換器:把 Markdown 渲染成 HTML 頁面

為什麼使用

為什麼用這款 Markdown 轉 HTML 轉換器

CMS 欄位、靜態網站和郵件編輯器要的都是標記,而不是 Markdown 原始碼。這款轉換器保留承載意義的部分,去掉會讓原始 HTML 不安全的成分。

在你的瀏覽器裡執行

貼上 Markdown,HTML 預覽會在本機更新。不上傳任何檔案,預覽、複製或下載都不需要帳號。

CommonMark 加 GFM

標題、列表、連結、引用塊和圍欄程式碼遵循 CommonMark;表格、任務列表和刪除線遵循 GitHub Flavored Markdown。

預設淨化

script 標籤、內嵌事件處理器以及不安全的 href 或 src scheme 都會被去掉,所以這段 HTML 可以安全地貼上進你不完全掌控的頁面。

片段或完整文件

只複製渲染出的標記,用於已經自己定義好版式的頁面;或下載一份帶預覽樣式的完整 HTML 文件。

標題錨點

每個標題都會得到一個穩定、URL 安全的 id,生成方式與 API 相同,所以你發布之後目錄或深層連結仍然有效。

與 API 同一個引擎

這個預覽和 POST /v1/convert/markdown/html 執行同一個渲染器,所以這裡複製出的 HTML 與自動化呼叫逐位元組一致。

問題所在

為什麼原始 Markdown 不能直接放進網頁

Markdown 語法不是 HTML

CMS 欄位、郵件範本或靜態網站主題要的是標記,而不是 Markdown 原始碼,所以原始文字必須先轉換,才能被樣式化或嵌入。

普通解析器會漏掉 GFM

表格、任務列表和刪除線是 GitHub Flavored Markdown 擴充功能;只支援 CommonMark 的解析器會把它們渲染成字面的豎線和波浪號,而不是結構。

不受信任的 Markdown 可能夾帶指令碼

Markdown 可以內嵌原始 HTML,包括 <script> 標籤和內嵌事件處理器,在輸出安全地插入你不完全掌控的頁面之前,必須把它們去掉。

轉換 Markdown 為 HTML:複製貼上後的錯亂文字與乾淨的 Markdown 結構對比

保留什麼

這款 Markdown 轉 HTML 轉換器保留什麼

標題與內嵌文字
ATX 和 setext 標題、強調、連結和引用塊遵循 CommonMark;每個標題還會得到一個由其文字生成的 URL 安全 id。Source: CommonMark Spec
表格、任務列表與刪除線
GitHub Flavored Markdown 的表格變成 <table> 元素,[ ] 和 [x] 專案變成核取方塊輸入,~~text~~ 變成 <del>。Source: GitHub Flavored Markdown Spec
淨化後的標記
原始 <script> 標籤、內嵌事件處理器,以及 http、https 和 mailto 之外的 href 或 src 值,都會在 HTML 返回之前被去掉。Source: HTML Living Standard
圍欄程式碼
圍欄程式碼塊保留其內容和語言標籤;瀏覽器預覽本身不應用任何語法高亮主題。Source: CommonMark Spec
原始檔裡的原始 HTML
內嵌其它原始 HTML 標籤的 Markdown 會經過同一個淨化器,所以嵌入的標籤永遠不會被當作可信標記。Source: HTML Living Standard

經過核驗的 Markdown 轉 HTML 節選· https://markitdown.ai/blog/why-pdfs-break-llms

<h2 id="what-actually-goes-wrong">What actually goes wrong</h2><p>When teams pipe documents straight into an LLM or a retrieval index, a few failure modes show up again and again:</p><ul><li><strong>Reading order breaks.</strong> Multi-column layouts interleave. A two-column page becomes "line 1 left, line 1 right, line 2 left, line 2 right…", so a sentence a human reads top-to-bottom arrives at the model scrambled.</li><li><strong>Tables collapse.</strong> Copy-paste turns a table into a loose run of numbers. The relationship between a header and its cell — the entire point of a table — is gone.</li><li><strong>Headings disappear.</strong> The visual hierarchy (this is a section, this is a subsection) is encoded as font size and weight, not structure. Strip the styling and you get one undifferentiated wall of text.</li><li><strong>Noise creeps in.</strong> Page numbers, running headers, hyphenated line breaks, and stray ligatures end up inline, polluting prompts and embeddings alike.</li></ul><p>Read more in the <a href="https://markitdown.ai/blog/why-pdfs-break-llms">full article</a>.</p>

使用場景

Markdown 轉 HTML 的使用場景

凡是目標要標記、而來源保持 Markdown 的地方,這款轉換器就是中間那一步。

文件與靜態網站

把 README 或 Markdown 知識庫文章變成靜態網站生成器或 CMS 欄位所期望的 HTML。

郵件與通訊草稿

用 Markdown 起草一封郵件,轉成 HTML,再把片段貼上進你真正用來傳送的郵件編輯器。

清理 LLM 回答

ChatGPT、Claude 和 Gemini 返回的是 Markdown;當目標——一張工單、一個 wiki 頁面——渲染的是標記而不是未渲染的星號時,就把它轉成 HTML。

自動化渲染的開發者

從儲存 Markdown、卻對外提供 HTML 的流水線裡呼叫渲染端點,不必給每個服務都加一個 Markdown 庫。

Markdown 轉 HTML 線上:把渲染結果用於網站、電子郵件與文件

API

專為開發者的 Markdown 轉 HTML API

渲染同步執行,消耗 0 credit——它仍然計入你套餐的每分鐘限速。把 Markdown 作為文字傳送,或引用一個已儲存的 .md 檔案,POST 到 /v1/convert/markdown/html 並帶上 API key;淨化後的 HTML 會直接返回。

閱讀 API 指南
curl -X POST https://api.markitdown.ai/v1/convert/markdown/html \  -H "x-api-key: mdai_…" \  -H "Content-Type: application/json" \  -d '{ "text": "# Notes\n\nHello **world**." }'

文件與靜態網站

大多數文件工具都把 Markdown 當作可編輯的來源,只在建構或預覽時才生成 HTML。這款轉換器讓你可以單獨檢查那一步生成:貼上你的網站生成器將要讀取的同一段 Markdown,在提交改動之前確認標題、表格和程式碼塊的產出方式符合你主題的預期。當 CMS 欄位接受 HTML、而你的寫作者又用 Markdown 工作時,它也有用——轉換一次,貼上片段,下一版繼續編輯 Markdown 原始檔,而不是手工改生成出來的標記。

  • 把 Markdown 檔案當作你的真源;把 HTML 當成建構產物。
  • 把渲染結果與你網站真實的主題對照,而不只是本頁預覽的樣式。
  • 每次改動原始檔後重跑轉換,而不是手工修補生成的 HTML。

淨化

Markdown 可以內嵌原始 HTML,而這些原始 HTML 裡可能帶 <script> 標籤或 onclick 這樣的內嵌事件處理器。在這款轉換器返回結果之前,這些標記會經過一個淨化器:移除 script 元素、剝掉任何以 "on" 開頭的屬性,並且只允許 http、https 和 mailto 連結以及圖片來源。留下來的只有語義結構——標題、段落、列表、表格、連結、圖片和程式碼——而不是裝飾性樣式。轉換器不會往片段輸出裡注入 class 或 CSS 檔案;完整文件下載會加上你在預覽裡看到的主題,讓檔案能獨立正確開啟。

片段還是完整頁面

片段是內部的標記——標題、段落和表格——外面沒有 <html> 或 <head>。它屬於一個已經定義好自身文件結構和樣式的頁面,比如 CMS 內容欄位或渲染子元素的元件。完整文件會加上 doctype、一個標題和一小段樣式表,讓檔案可以直接在瀏覽器裡開啟或單獨儲存。把一個完整文件貼上進期望片段的欄位是常見錯誤:瀏覽器可能仍會渲染它,但巢狀的 <html> 和 <head> 標籤在那裡是非法的,還可能讓期望片段的工具鏈混淆。

FAQ

Markdown 轉 HTML 常見問題

Markdown 轉 HTML 是怎麼工作的?

貼上或輸入 Markdown,轉換器會在你的瀏覽器本機渲染出淨化後的 HTML,使用的是與 POST /v1/convert/markdown/html 相同的渲染器。你輸入時不會上傳任何內容。

Markdown 轉 HTML 支援 GitHub Flavored Markdown 嗎?

支援。表格、任務列表和刪除線遵循 GitHub Flavored Markdown 規範,與 CommonMark 的標題、列表、連結和程式碼並存。

輸出的 HTML 經過淨化嗎?

是的。script 標籤、內嵌事件處理器和不安全的 href 或 src scheme 都會被去掉,所以這段 HTML 可以安全地貼上進你不完全掌控的頁面。

可以要完整 HTML 文件而不是片段嗎?

可以。選擇帶預覽樣式的完整文件,或只複製片段,用於已經自己定義好版式的頁面。

把 Markdown 轉 HTML 需要帳號嗎?

不需要。預覽、複製和下載都不需要登入,因為渲染在你的瀏覽器本機執行。

我輸入時會呼叫 API 嗎?

不會。輸入過程完全在本機。只有在你直接呼叫 POST /v1/convert/markdown/html 時(例如從指令碼里)API 才會執行。

我轉換的 Markdown 有大小限制嗎?

沒有固定的上傳上限,因為不上傳任何內容;實際限制取決於你的瀏覽器記憶體能處理多大的文件。

可以從程式碼裡把 Markdown 轉 HTML 嗎?

可以。把 Markdown 作為文字、或一個已儲存的 .md 檔案,POST 到 /v1/convert/markdown/html 並帶上 API key。它消耗 0 credit。見 /developers。

隨時將 Markdown 轉換為 HTML。

免費試用——無需註冊。