mdtablefix 0.6.1

`mdtablefix` unb0rks and reflows Markdown tables so that each column has a uniform width. When the `--wrap` option is used, it also wraps paragraphs and list items to 80 columns.
Documentation
[package]
name = "mdtablefix"
version = "0.6.1"
edition = "2024"
rust-version = "1.89"
license = "ISC"
repository = "https://github.com/leynos/mdtablefix"
description = """
`mdtablefix` unb0rks and reflows Markdown tables so that each column has a uniform width. When \
the `--wrap` option is used, it also wraps paragraphs and list items to 80 columns."""

[workspace]
members = [".", "test-macros"]
resolver = "3"

# Applies to every target: the release workflow publishes one archive shape for
# Linux, macOS and Windows alike, so no per-target override is needed. `bin-dir`
# names the binary at the archive root; `.` resolves to an empty source path and
# makes cargo-binstall refuse the package.
[package.metadata.binstall]
pkg-url = "{ repo }/releases/download/v{ version }/{ name }-{ version }-{ target }.tar.gz"
bin-dir = "{ bin }{ binary-ext }"
pkg-fmt = "tgz"

[dependencies]
anyhow = "1"
camino = "1.2.4"
cap-std = { version = "4.0.2", features = ["fs_utf8"] }
clap = { version = "4", features = ["derive"] }
regex = "1"
once_cell = "1"
rayon = "1.11"
similar = "3.2"
html5ever = "0.39.0"
# `markup5ever_rcdom` must stay on the same parser stack as `html5ever`
# because `RcDom` implements `TreeSink` from that shared `markup5ever` line.
markup5ever_rcdom = "0.39.0"
textwrap = "0.16.2"
metrics = "0.24"
# Domain error enums for the binary's file-selection tree. `AGENTS.md` mandates
# a concrete error type over an opaque one, and `thiserror` derives the
# `Display` impl that keeps the diagnostics in one place we own.
thiserror = "2"
tracing = "0.1"
unicode-width = "0.2"


[dev-dependencies]
rstest = "0.27"
assert_cmd = "2"
insta = "1.47"
# Only the debugging recorder is wanted, so the default `recency` feature (and
# its clock dependency) stays out of the test build.
metrics-util = { version = "0.20", default-features = false, features = ["debugging"] }
proptest = "1.11.0"
serde_yaml = "0.9"
tempfile = "3"
libc = "0.2.174"
predicates = "3"
trybuild = "1"
tracing-test = "0.2"
test-macros = { path = "test-macros" }
googletest = "0.14"
pretty_assertions = "1"
rstest-bdd = "0.6.0"
rstest-bdd-macros = { version = "0.6.0", features = ["strict-compile-time-validation"] }
toml = "1.1.2"
syn = { version = "3.0.3", features = ["full", "visit", "extra-traits"] }
proc-macro2 = "1.0.106"

[workspace.lints.clippy]
# A lower group priority lets the explicit contract deny override its warning
# level; Cargo does not use table order to resolve overlapping lint settings.
pedantic = { level = "warn", priority = -1 }
# Private helpers carry parsing and layout invariants that public API docs do
# not expose. Check every workspace member so the proc-macro crate cannot
# become an undocumented exception.
missing_docs_in_private_items = "deny"
# Enforce the environment-access policy in every target of every member.
# See `clippy.toml` and `docs/adrs/0012-environment-seam-taxonomy.md`.
disallowed_methods = "deny"
# Keep `#[allow]` from silently defeating the deny above: a suppression must
# be an `#[expect]` carrying a reason, so it warns once it stops applying.
allow_attributes = "deny"
allow_attributes_without_reason = "deny"

[workspace.lints.rust]
# Production kernels select Verus contracts only while the pinned verifier
# compiles their shared source. Cargo must recognise that verifier cfg.
unexpected_cfgs = { level = "warn", check-cfg = ["cfg(verus_keep_ghost)"] }

[lints]
workspace = true