[package] name = "pter" version = "0.2.0" edition = "2024" description = "Plain Text Email Renderer — convert HTML email bodies into readable markdown" license = "MIT" repository = "https://makenot.work/git/max/pter" keywords = ["email", "html", "markdown", "plaintext", "converter"] categories = ["email", "text-processing", "parser-implementations"] [dependencies] scraper = "0.27" [dev-dependencies] proptest = "1" criterion = { version = "0.8", features = ["html_reports"] } [[bench]] name = "convert_bench" harness = false [lints.rust] unused = "warn" unreachable_pub = "warn" [lints.clippy] pedantic = { level = "warn", priority = -1 } # Allow-list tuned from a measured breakdown across server/multithreaded/pter # (2026-07-22). These are the high-churn / low-signal pedantic lints; everything # else in `pedantic` stays a warning. Keep this block identical across repos. module_name_repetitions = "allow" # Doc lints. No docs-completeness push is underway. missing_errors_doc = "allow" missing_panics_doc = "allow" doc_markdown = "allow" # Numeric casts. Endemic and mostly intentional in size and byte math. cast_possible_truncation = "allow" cast_sign_loss = "allow" cast_precision_loss = "allow" cast_possible_wrap = "allow" cast_lossless = "allow" # Subjective structure and style nags. High churn, low signal. must_use_candidate = "allow" too_many_lines = "allow" struct_excessive_bools = "allow" similar_names = "allow" items_after_statements = "allow" single_match_else = "allow" # Frequent false-positives in TUI and router-heavy code. match_same_arms = "allow" unnecessary_wraps = "allow" type_complexity = "allow"