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)兼容的插件。