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 的核心,搭配分層分派系統,會自動為給定的輸入選擇最有效的路徑:
- Byte Scanner:單次掃描的乾淨 HTML 處理器。
- DOM Walker:對複雜輸入具容錯能力的遍歷器。
- 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)相容的插件。