github rvben/rumdl v0.0.175

11 hours ago

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
  • Type-safe configuration wrappers

    • Added HeadingLevel type 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
  • 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
  • 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 import now correctly maps markdownlint-specific option names to rumdl equivalents
    • MD013: Maps sternstrict, warns about incompatible options (code_block_line_length, heading_line_length)
    • MD054: Warns about incompatible style/styles options (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
  • 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-title and front_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_bin to cargo_bin_cmd! macro
    • Fixed Homebrew installation docs (removed unnecessary brew tap)

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 rumdl

Using pip

pip install rumdl

Using pipx

pipx install rumdl

Direct Download

Download the appropriate binary for your platform from the table above, extract it, and add it to your PATH.

Don't miss a new rumdl release

NewReleases is sending notifications on new releases.