[package]
name = "markkit"
version.workspace = true
edition.workspace = true
license.workspace = true
authors.workspace = true
repository.workspace = true
keywords.workspace = true
categories.workspace = true
description = "Extract clean markdown from any format – HTML, PDF, DOCX, and more"
readme = "../../README.md"
[features]
default = ["html", "http_client"]
html = ["dep:scraper", "dep:html5ever", "dep:lol_html"]
pdf = []
docx = ["dep:zip", "dep:quick-xml"]
spreadsheet = ["dep:calamine", "dep:zip", "dep:quick-xml", "dep:cfb"]
http_client = ["dep:reqwest"]
logging = ["dep:tracing", "dep:tracing-subscriber"]
all_formats = ["html", "pdf", "docx", "spreadsheet"]
[dependencies]
tokio = { workspace = true, features = ["sync", "io-util"] }
async-trait.workspace = true
futures.workspace = true
thiserror.workspace = true
anyhow.workspace = true
serde.workspace = true
serde_json.workspace = true
regex.workspace = true
unicode-segmentation.workspace = true
encoding_rs.workspace = true
base64.workspace = true
mime.workspace = true
scraper = { workspace = true, optional = true }
html5ever = { workspace = true, optional = true }
lol_html = { workspace = true, optional = true }
zip = { workspace = true, optional = true }
quick-xml = { workspace = true, optional = true }
calamine = { workspace = true, optional = true }
cfb = { workspace = true, optional = true }
reqwest = { workspace = true, optional = true }
tracing = { workspace = true, optional = true }
tracing-subscriber = { workspace = true, optional = true }
[dev-dependencies]
tokio = { workspace = true, features = ["macros", "rt-multi-thread"] }
tempfile.workspace = true
proptest.workspace = true
criterion.workspace = true
zip = { workspace = true }
cfb = { workspace = true }
[[example]]
name = "basic"
path = "../../examples/basic.rs"
required-features = ["html"]
[[example]]
name = "custom_selectors"
path = "../../examples/custom_selectors.rs"
required-features = ["html"]
[[example]]
name = "ir_access"
path = "../../examples/ir_access.rs"
required-features = ["html"]
[[example]]
name = "configuration"
path = "../../examples/configuration.rs"
required-features = ["html"]
[[bench]]
name = "extraction"
harness = false