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