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 コーディングアシスタント向けプラグインを提供。