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개의 다양한 프로그래밍 언어에 네이티브 바인딩을 통해 공개됩니다.

대상 사용자

웹 스크래퍼, 문서 처리 파이프라인, AI 기반 도구(RAG 시스템 등) 등을 개발하는 개발자들이 웹 콘텐츠를 LLM이 쉽게 활용할 수 있는 형식으로 변환해야 할 때 적합합니다.

주요 특징

  • 다국어 지원: Python, Node.js, Go, Java, Rust 등 16개 언어에 대한 네이티브 바인딩 제공.
  • 고성능: 표준 코퍼스에서 19–116 MB/s의 처리 속도 달성.
  • 메타데이터 추출: <head> 섹션을 구조화된 데이터(Open Graph, JSON-LD 등)로 파싱 가능.
  • 견고성: GFM 테이블의 정렬 및 파이프 이스케이프 지원.
  • AI 통합: Claude Code, Cursor, GitHub Copilot 등 주요 AI 코딩 어시스턴트를 위한 플러그인 제공.