Fixed
-
MD041 (first-line-heading): Fixed multiline HTML detection for headings
- Replace manual HTML parsing with centralized
ctx.html_tags()parser - Correctly handles nested HTML elements with multiline attributes
- Fixes Issue #152: No longer incorrectly flags headings when preceded by multiline HTML
- Replace manual HTML parsing with centralized
-
MD037 (no-space-in-emphasis): Improved warning message clarity
- Truncate long emphasis text in warning messages to prevent display issues
- Long emphasis spans are now shown with ellipsis for better readability
Performance
-
MD005 (list-indent): Eliminated O(n²) complexity by pre-computing parent relationships
- Pre-compute parent list item relationships during initial parsing
- Reduces algorithmic complexity from O(n²) to O(n) for deeply nested lists
- Improves performance for files with complex list structures
-
Optimized link/image regex patterns to prevent catastrophic backtracking
- Added atomic grouping and possessive quantifiers to regex patterns in
lint_context.rs - Prevents regex engine from exponential backtracking on pathological inputs
- Improves parsing speed for files with many links and images
- Added atomic grouping and possessive quantifiers to regex patterns in
Changed
- MD033 (no-inline-html): Refactored to use centralized HTML parser
- Removed 109 lines of broken
find_multiline_html_tags()function that detected 0 multiline HTML tags - Replaced two-pass approach (single-line regex + multiline detection) with single-pass using
ctx.html_tags() - Now correctly detects all multiline HTML tags (previously missed 100% of them)
- Follows pattern from MD041 refactoring for consistency
- Preserves all existing filters (code blocks, kramdown, comments, etc.)
- Removed 109 lines of broken
Added
- Comprehensive MD005 test coverage
- Added 21 new edge case tests for list indentation detection
- Updated unicode test to verify dynamic parent relationship detection
- Ensures robustness for nested and complex list structures
Downloads
| File | Platform | Checksum |
|---|---|---|
| rumdl-v0.0.179-x86_64-unknown-linux-gnu.tar.gz | Linux x86_64 | checksum |
| rumdl-v0.0.179-x86_64-unknown-linux-musl.tar.gz | Linux x86_64 (musl) | checksum |
| rumdl-v0.0.179-aarch64-unknown-linux-gnu.tar.gz | Linux ARM64 | checksum |
| rumdl-v0.0.179-aarch64-unknown-linux-musl.tar.gz | Linux ARM64 (musl) | checksum |
| rumdl-v0.0.179-x86_64-apple-darwin.tar.gz | macOS x86_64 | checksum |
| rumdl-v0.0.179-aarch64-apple-darwin.tar.gz | macOS ARM64 (Apple Silicon) | checksum |
| rumdl-v0.0.179-x86_64-pc-windows-msvc.zip | Windows x86_64 | checksum |
Installation
Using uv (Recommended)
uv tool install rumdlUsing pip
pip install rumdlUsing pipx
pipx install rumdlDirect Download
Download the appropriate binary for your platform from the table above, extract it, and add it to your PATH.