html-to-markdown

高效能且符合 CommonMark 規範的 HTML 轉 Markdown 轉換器。由 Kreuzberg 團隊維護。

html-to-markdown 是什麼?

高效能且符合 CommonMark 規範的 HTML 轉 Markdown 轉換器。由 Kreuzberg 團隊維護。Kreuzberg 是一款以 Rust 為核心、支援多語言的快速文件智能引擎,可透過串流解析器與內建 OCR 從超過 98 種文件格式中擷取結構化資料。

html-to-markdown 概覽

這是什麼

一個高效能、符合 CommonMark 規範的 HTML 轉 Markdown 轉換器。它能處理現實中常見的 HTML——包含未閉合標籤、CDATA、自訂元素、格式錯誤的實體、巢狀表格與混合編碼——並輸出乾淨的 CommonMark 或 Djot 格式。此函式庫基於 Rust 核心建構,並以原生繫結方式提供給 16 種語言:Rust、Python、Node.js、WASM、Java、Go、C#、PHP、Ruby、Elixir、R、Dart、Kotlin (Android)、Swift、Zig,以及 C ABI。在同一次轉換中,它還能提取頁面元資料(Open Graph、Twitter、JSON-LD)與結構化表格。

主要功能

  • 16 種語言,同一個 Rust 核心:任何支援的語言都能得到相同的結果。
  • 分層派發:位元組掃描器 → DOM 走訪器 → html5ever 修復,各層輸出位元組相等。
  • 強固的 HTML 處理:處理未閉合標籤、CDATA、自訂元素、格式錯誤的實體、巢狀表格、混合編碼,不遺失內容。
  • GFM 表格:填充儲存格、對齊、管線跳脫。
  • Djot 輸出:設定 output_format = “djot” 即可輸出 Djot 格式。
  • 元資料提取:解析 為結構化元資料(Open Graph、Twitter、JSON-LD、微資料、RDFa、標題層級)。
  • 訪問器 API:透過功能閘控的走訪,轉換已轉換的 Markdown AST。
  • 可設定的預處理:提供標準、嚴格與寬鬆三種預設模式。

使用情境

  • 將混亂的正式環境 HTML 轉換為乾淨的 Markdown,適用於文件編寫、內容遷移或分析。
  • 在同一次處理中同時提取內容與結構化元資料,例如用於網頁爬取或文件智慧管線。
  • 批次轉換大型語料庫,其效能(在 Wikipedia/mdream 語料庫上為 19–116 MB/s)至關重要。
  • 將 HTML 轉 Markdown 功能整合到以 16 種支援語言之一撰寫的應用程式中。

快速開始

Rustshcargo add html-to-markdown-rs完整文件請參閱 Rust README。Pythonshpip install html-to-markdown完整文件請參閱 Python README。Node.jsshpnpm add @xberg-io/html-to-markdown完整文件請參閱 Node.js README。Goshgo get github.com/xberg-io/html-to-markdown/packages/go/v3完整文件請參閱 Go README。Java可從 Maven Central 取得,artifactId 為 io.xberg:html-to-markdown。相依性程式碼片段與目前版本請參閱 Java README。C#shdotnet add package XbergIo.HtmlToMarkdown完整文件請參閱 C# README。Rubyshgem install html-to-markdown完整文件請參閱 Ruby README。PHP這是一個原生 PHP 擴充(Rust ext-php-rs),因此請使用 PIE 安裝,而非 composer require:shpie install xberg-io/html-to-markdown完整文件請參閱 PHP README。Elixir在 mix.exs 的 dependencies 中加入 {:html_to_markdown, “~> 3.6”}。完整文件請參閱 Elixir README。Rrinstall.packages(“htmltomarkdown”, repos = “https://xberg-io.r-universe.dev”)完整文件請參閱 R README。Dart / Fluttershdart pub add h2m完整文件請參閱 Dart README。Kotlin (Android)可從 Maven Central 取得,artifactId 為 io.xberg:html-to-markdown-android。相依性程式碼片段與目前版本請參閱 Kotlin README。Swift透過 Swift Package Manager 加入。完整文件請參閱 Swift README。Zig安裝與使用方式請參閱 Zig README。WebAssemblyshpnpm add @xberg-io/html-to-markdown-wasm完整文件請參閱 WebAssembly README。C/C++ (FFI)從 GitHub Releases 取得預先建置的 .so / .dll / .dylib。完整文件請參閱 FFI crate。CLIshcargo install html-to-markdown-cli或透過 cargo-binstall 安裝預先建置的二進位檔:shcargo binstall html-to-markdown-cli或透過 Homebrew:shbrew install xberg-io/tap/html-to-markdownWindows 使用者可透過 Scoop 安裝:powershellscoop bucket add xberg https://github.com/xberg-io/scoop-bucketscoop install html-to-markdown完整文件請參閱 CLI 使用說明。

授權與價格

採用 MIT 授權。定價類型為開源軟體。

內容整理自該專案公開的 README 與儲存庫資訊。

將此徽章加入你的 README

Featured on YunoDB 徽章樣式與說明

你是這個專案的維護者嗎?展示它已收錄於 YunoDB。

Markdown[![Featured on YunoDB](https://yunodb.com/badge/xberg-iohtml-to-markdown.svg)](https://yunodb.com/tools/xberg-iohtml-to-markdown?utm_source=github&utm_medium=badge)
HTML<a href="https://yunodb.com/tools/xberg-iohtml-to-markdown?utm_source=github&utm_medium=badge"><img src="https://yunodb.com/badge/xberg-iohtml-to-markdown.svg" alt="Featured on YunoDB" height="20"></a>