xberg-io/html-to-markdown

High performance and CommonMark compliant HTML to Markdown converter. Maintained by the Kreuzberg team. Kreuzberg is a fast, polyglot document intelligence engine with a Rust core. It extracts structured data from 98+ document formats using streaming parsers and built-in OCR.

它解決了什麼問題

它能將真實世界中常見且格式錯誤的 HTML 轉換為乾淨的 CommonMark 或 Djot,且不會遺失內容。特別能處理諸如未關閉的標籤、CDATA、自訂元素、巢狀表格以及混合編碼等,這些情況通常會讓較簡單的轉換器失效。

它如何運作

此專案使用基於 Rust 的核心,搭配分層分派系統,會自動為給定的輸入選擇最有效的路徑:

  1. Byte Scanner:單次掃描的乾淨 HTML 處理器。
  2. DOM Walker:對複雜輸入具容錯能力的遍歷器。
  3. html5ever Repair:針對嚴重錯誤的 HTML 進行最終修復。

此架構確保所有層級產生的輸出在位元上完全相同。核心透過原生綁定向 16 種不同程式語言公開。

目標使用者

開發需要將網頁內容轉換為 LLM 易於消化格式的開發者,例如建構網路爬蟲、文件處理管線或 AI 驅動工具(如 RAG 系統)。

重點特色

  • 多語言支援:提供包括 Python、Node.js、Go、Java、Rust 在內的 16 種語言原生綁定。
  • 高效能:在標準語料庫上達到 19–116 MB/s 的處理速度。
  • 中繼資料抽取:能將 <head> 區段解析為結構化資料(Open Graph、JSON-LD 等)。
  • 韌性:支援 GFM 表格的對齊與管道字元跳脫。
  • AI 整合:提供與主要 AI 程式碼助理(如 Claude Code、Cursor、GitHub Copilot)相容的插件。