Added
-
Universal wiki-link and Obsidian block reference support
- Added recognition of
[[wiki-links]]across all rules - Added support for Obsidian block references
[[note#^block-id]] - Prevents false positives in link/heading detection rules
- Works with all extended markdown flavors that support wiki-links
- Added recognition of
-
Type-safe configuration wrappers
- Added
HeadingLeveltype with validation (1-6 range) - Added type-safe wrappers for MD007, MD009, MD010 configuration
- Added type-safe configuration for MD013 and MD030
- Added type-safe configuration for MD022, MD012, MD060
- Compile-time validation prevents invalid configuration values
- Backward compatible with snake_case field names via serde aliases
- Added
-
Memory profiling for non-Linux platforms
- Added cross-platform memory profiling support
- Uses physical memory instead of virtual memory for benchmarking
- Enables performance analysis on macOS and Windows
Fixed
-
MD041: mdBook preprocessor directive false positives
- MD041 now skips files containing only mdBook preprocessor directives (e.g.,
{{#include file.md}}) - These composition/routing files are not standalone content and don't require headings
- Eliminates false positives on mdBook include-only files
- Supports all mdBook directives:
{{#include}},{{#playground}},{{#rustdoc_include}}, etc. - Handles files with directives mixed with HTML comments
- Added comprehensive test coverage for mdBook directive patterns
- MD041 now skips files containing only mdBook preprocessor directives (e.g.,
-
MD042: Inline code in link text false positives
- Fixed incorrect flagging of code spans within link text
- MD042 now correctly handles patterns like
[code with \backticks`](url)` - Prevents false positives when links contain inline code
- Added regression test covering this case
-
Config import: markdownlint option mapping (#137)
rumdl importnow correctly maps markdownlint-specific option names to rumdl equivalents- MD013: Maps
stern→strict, warns about incompatible options (code_block_line_length, heading_line_length) - MD054: Warns about incompatible
style/stylesoptions (rumdl uses individual boolean flags) - Prevents "Unknown option" warnings when importing markdownlint configs
- Added helpful warnings explaining config model differences
-
MD011: Footnote reference false positives (#147)
- Fixed incorrect flagging of valid markdown:
[link](url)[^footnote] - MD011 now skips footnote references (starting with
^) - Already had support for reference links, now extended to footnotes
- Added regression test covering this case
- Fixed incorrect flagging of valid markdown:
-
MD013: Front matter line length (#146)
- MD013 now correctly skips YAML/TOML front matter blocks
- Prevents false positives on long lines in document metadata
- Works with both
---(YAML) and+++(TOML) front matter delimiters - Added regression test covering this case
-
Config system: kebab-case support
- MD041: Converted to serde-based config with kebab-case support
- Added backward compatibility aliases for snake_case field names
- Now properly supports both
front-matter-titleandfront_matter_title - Removed undocumented config options from MD032 and MD038
-
MD004: Simplified configuration
- Refactored to use derives instead of manual implementation
- Cleaner code while maintaining full functionality
-
Test infrastructure improvements
- Migrated from deprecated
Command::cargo_bintocargo_bin_cmd!macro - Fixed Homebrew installation docs (removed unnecessary
brew tap)
- Migrated from deprecated
Changed
-
Consistency checking: Prevalence-based style detection
- Converted MD003, MD004, MD046, MD048, MD049, MD050, MD055 from "first-found" to "prevalence-based" logic
- Rules now count ALL occurrences and enforce the most commonly used style
- Tie-breakers prefer industry standards (GitHub, CommonMark recommendations)
- More accurate representation of document's actual style intent
- Better user experience: rules adapt to what you mostly use, not just the first instance
- Affected rules:
- MD003 (heading-style): ATX vs Setext vs Closed ATX
- MD004 (ul-style): dash, asterisk, plus, or consistent
- MD046 (code-block-style): fenced vs indented
- MD048 (code-fence-style): backticks vs tildes
- MD049 (emphasis-style): asterisk vs underscore
- MD050 (strong-style): asterisk vs underscore
- MD055 (table-pipe-style): leading/trailing pipe consistency
- Updated documentation to reflect prevalence-based behavior
-
Dependencies
- Upgraded schemars from 0.8 to 1.1
- Updated all dependencies to latest compatible versions
- Updated dependencies to latest patch versions
Downloads
| File | Platform | Checksum |
|---|---|---|
| rumdl-v0.0.175-x86_64-unknown-linux-gnu.tar.gz | Linux x86_64 | checksum |
| rumdl-v0.0.175-x86_64-unknown-linux-musl.tar.gz | Linux x86_64 (musl) | checksum |
| rumdl-v0.0.175-aarch64-unknown-linux-gnu.tar.gz | Linux ARM64 | checksum |
| rumdl-v0.0.175-aarch64-unknown-linux-musl.tar.gz | Linux ARM64 (musl) | checksum |
| rumdl-v0.0.175-x86_64-apple-darwin.tar.gz | macOS x86_64 | checksum |
| rumdl-v0.0.175-aarch64-apple-darwin.tar.gz | macOS ARM64 (Apple Silicon) | checksum |
| rumdl-v0.0.175-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.