[package]
edition = "2024"
rust-version = "1.85"
name = "html-to-markdown-rs"
version = "3.2.3"
authors = ["Na'aman Hirschfeld <naaman@kreuzberg.dev>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "High-performance HTML to Markdown converter using the astral-tl parser. Part of the Kreuzberg ecosystem."
homepage = "https://kreuzberg.dev"
documentation = "https://docs.rs/html-to-markdown-rs"
readme = "README.md"
keywords = [
"html",
"markdown",
"converter",
"astral-tl",
"doc-processing",
]
categories = [
"parsing",
"text-processing",
"web-programming",
]
license = "MIT"
repository = "https://github.com/kreuzberg-dev/html-to-markdown"
resolver = "2"
[package.metadata.cargo-machete]
ignored = [
"once_cell",
"ahash",
]
[features]
default = ["metadata"]
full = [
"inline-images",
"metadata",
"visitor",
"serde",
]
inline-images = ["dep:image"]
metadata = [
"dep:serde",
"dep:serde_json",
]
serde = [
"dep:serde",
"dep:serde_json",
]
visitor = []
[lib]
name = "html_to_markdown_rs"
crate-type = ["rlib"]
path = "src/lib.rs"
[[example]]
name = "basic"
path = "examples/basic.rs"
[[example]]
name = "table"
path = "examples/table.rs"
[[example]]
name = "test_deser"
path = "examples/test_deser.rs"
[[example]]
name = "test_escape"
path = "examples/test_escape.rs"
[[example]]
name = "test_inline_formatting"
path = "examples/test_inline_formatting.rs"
[[example]]
name = "test_lists"
path = "examples/test_lists.rs"
[[example]]
name = "test_semantic_tags"
path = "examples/test_semantic_tags.rs"
[[example]]
name = "test_tables"
path = "examples/test_tables.rs"
[[example]]
name = "test_task_lists"
path = "examples/test_task_lists.rs"
[[example]]
name = "test_whitespace"
path = "examples/test_whitespace.rs"
[[test]]
name = "br_in_inline_test"
path = "tests/br_in_inline_test.rs"
[[test]]
name = "commonmark_compliance_test"
path = "tests/commonmark_compliance_test.rs"
[[test]]
name = "djot_output_test"
path = "tests/djot_output_test.rs"
[[test]]
name = "integration_test"
path = "tests/integration_test.rs"
[[test]]
name = "issue_121_regressions"
path = "tests/issue_121_regressions.rs"
[[test]]
name = "issue_127_regressions"
path = "tests/issue_127_regressions.rs"
[[test]]
name = "issue_128_regressions"
path = "tests/issue_128_regressions.rs"
[[test]]
name = "issue_131_regressions"
path = "tests/issue_131_regressions.rs"
[[test]]
name = "issue_134_regressions"
path = "tests/issue_134_regressions.rs"
[[test]]
name = "issue_139_regressions"
path = "tests/issue_139_regressions.rs"
[[test]]
name = "issue_140_regressions"
path = "tests/issue_140_regressions.rs"
[[test]]
name = "issue_143_regressions"
path = "tests/issue_143_regressions.rs"
[[test]]
name = "issue_145_regressions"
path = "tests/issue_145_regressions.rs"
[[test]]
name = "issue_146_regressions"
path = "tests/issue_146_regressions.rs"
[[test]]
name = "issue_176_regressions"
path = "tests/issue_176_regressions.rs"
[[test]]
name = "issue_190_regressions"
path = "tests/issue_190_regressions.rs"
[[test]]
name = "issue_199_regressions"
path = "tests/issue_199_regressions.rs"
[[test]]
name = "issue_200_regressions"
path = "tests/issue_200_regressions.rs"
[[test]]
name = "issue_212_regressions"
path = "tests/issue_212_regressions.rs"
[[test]]
name = "issue_216_217_regressions"
path = "tests/issue_216_217_regressions.rs"
[[test]]
name = "json_ld_script_extraction"
path = "tests/json_ld_script_extraction.rs"
[[test]]
name = "lists_test"
path = "tests/lists_test.rs"
[[test]]
name = "plain_output_test"
path = "tests/plain_output_test.rs"
[[test]]
name = "preprocessing_tests"
path = "tests/preprocessing_tests.rs"
[[test]]
name = "reference_links_test"
path = "tests/reference_links_test.rs"
[[test]]
name = "skip_images_test"
path = "tests/skip_images_test.rs"
[[test]]
name = "tables_test"
path = "tests/tables_test.rs"
[[test]]
name = "test_custom_elements"
path = "tests/test_custom_elements.rs"
[[test]]
name = "test_issue_187"
path = "tests/test_issue_187.rs"
[[test]]
name = "test_issue_218"
path = "tests/test_issue_218.rs"
[[test]]
name = "test_nested_simple"
path = "tests/test_nested_simple.rs"
[[test]]
name = "test_script_style_stripping"
path = "tests/test_script_style_stripping.rs"
[[test]]
name = "test_spa_bisect"
path = "tests/test_spa_bisect.rs"
[[test]]
name = "visitor_code_integration_test"
path = "tests/visitor_code_integration_test.rs"
[[test]]
name = "visitor_integration_test"
path = "tests/visitor_integration_test.rs"
[[test]]
name = "xml_tables_test"
path = "tests/xml_tables_test.rs"
[dependencies.ahash]
version = "0.8"
features = [
"std",
"compile-time-rng",
]
default-features = false
[dependencies.base64]
version = "0.22"
[dependencies.html-escape]
version = "0.2.13"
[dependencies.html5ever]
version = "0.39.0"
[dependencies.image]
version = "0.25"
features = [
"gif",
"jpeg",
"png",
"bmp",
"webp",
]
optional = true
default-features = false
[dependencies.lru]
version = "0.17"
[dependencies.memchr]
version = "2"
[dependencies.once_cell]
version = "1.21"
[dependencies.regex]
version = "1.12"
[dependencies.serde]
version = "1.0"
features = ["derive"]
optional = true
[dependencies.serde_json]
version = "1.0"
optional = true
[dependencies.thiserror]
version = "2.0"
[dependencies.tl]
version = "0.7.11"
package = "astral-tl"
[dev-dependencies.serde]
version = "1.0"
features = ["derive"]
[dev-dependencies.serde_json]
version = "1.0"
[lints.clippy.all]
level = "deny"
priority = -1
[lints.clippy.cargo]
level = "warn"
priority = -1
[lints.clippy.multiple_crate_versions]
level = "allow"
priority = 1
[lints.clippy.nursery]
level = "warn"
priority = -1
[lints.clippy.pedantic]
level = "warn"
priority = -1
[lints.rust]
missing_docs = "warn"
unsafe_code = "forbid"
unused_must_use = "deny"