rumdl 0.0.123__tar.gz → 0.0.124__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of rumdl might be problematic. Click here for more details.
- {rumdl-0.0.123 → rumdl-0.0.124}/CHANGELOG.md +48 -9
- {rumdl-0.0.123 → rumdl-0.0.124}/Cargo.lock +19 -19
- {rumdl-0.0.123 → rumdl-0.0.124}/Cargo.toml +1 -1
- {rumdl-0.0.123 → rumdl-0.0.124}/Makefile +4 -4
- {rumdl-0.0.123 → rumdl-0.0.124}/PKG-INFO +98 -11
- {rumdl-0.0.123 → rumdl-0.0.124}/README.md +97 -10
- {rumdl-0.0.123 → rumdl-0.0.124}/scripts/pre-release.sh +1 -1
- {rumdl-0.0.123 → rumdl-0.0.124}/src/config.rs +95 -35
- {rumdl-0.0.123 → rumdl-0.0.124}/src/main.rs +161 -20
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md009_trailing_spaces.rs +10 -1
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md052_reference_links_images.rs +78 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/cli_integration_tests.rs +197 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/config_file_command_test.rs +28 -9
- rumdl-0.0.124/tests/config_upward_traversal_test.rs +207 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md009_test.rs +2 -1
- {rumdl-0.0.123 → rumdl-0.0.124}/.config/nextest.toml +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/.mise.toml +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/.pre-commit-config.yaml +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/.rumdl.toml +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/.rustfmt.toml +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/LICENSE +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/MANIFEST.in +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/assets/logo.png +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/benches/fix_performance.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/benches/range_performance.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/benches/range_utils_benchmark.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/benches/rule_performance.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/benches/simple_fix_bench.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/benchmark/bin/bench_lint_context.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/benchmark/bin/benchmark.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/benchmark/bin/benchmark_rule.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/benchmark/bin/file_parallel_benchmark.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/benchmark/bin/measure_code_span_performance.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/docs/RULES.md +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/docs/global-settings.md +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/docs/md001.md +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/docs/md002.md +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/docs/md003.md +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/docs/md004.md +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/docs/md005.md +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/docs/md006.md +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/docs/md007.md +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/docs/md009.md +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/docs/md010.md +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/docs/md011.md +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/docs/md012.md +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/docs/md013.md +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/docs/md014.md +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/docs/md018.md +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/docs/md019.md +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/docs/md020.md +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/docs/md021.md +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/docs/md022.md +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/docs/md023.md +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/docs/md024.md +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/docs/md025.md +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/docs/md026.md +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/docs/md027.md +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/docs/md028.md +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/docs/md029.md +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/docs/md030.md +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/docs/md031.md +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/docs/md032.md +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/docs/md033.md +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/docs/md034.md +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/docs/md035.md +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/docs/md036.md +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/docs/md037.md +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/docs/md038.md +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/docs/md039.md +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/docs/md040.md +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/docs/md041.md +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/docs/md042.md +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/docs/md043.md +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/docs/md044.md +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/docs/md045.md +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/docs/md046.md +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/docs/md047.md +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/docs/md048.md +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/docs/md049.md +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/docs/md050.md +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/docs/md051.md +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/docs/md052.md +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/docs/md053.md +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/docs/md054.md +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/docs/md055.md +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/docs/md056.md +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/docs/md057.md +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/docs/md058.md +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/docs/vscode-extension.md +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/parity_check.py +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/pyproject.toml +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/python/MANIFEST.in +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/python/PYTHON-README.md +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/python/rumdl/__init__.py +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/python/rumdl/__main__.py +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/python/rumdl/py.typed +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/rumdl.toml.example +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/rust-toolchain.toml +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/scripts/extract-changelog.sh +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/scripts/generate-downloads-table.sh +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/scripts/prepare-release.sh +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/scripts/setup-pre-commit.sh +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/scripts/update-pre-commit-docs.sh +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/exit_codes.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/inline_config.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/lib.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/lint_context.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/lsp/mod.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/lsp/server.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/lsp/types.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/markdownlint_config.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/output/formatters/azure.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/output/formatters/concise.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/output/formatters/github.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/output/formatters/gitlab.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/output/formatters/grouped.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/output/formatters/json.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/output/formatters/json_lines.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/output/formatters/junit.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/output/formatters/mod.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/output/formatters/pylint.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/output/formatters/sarif.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/output/formatters/text.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/output/mod.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/parallel.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/performance.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/profiling.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/python.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rule.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rule_config.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rule_config_serde.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/blockquote_utils.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/code_block_utils.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/code_fence_utils.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/emphasis_style.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/front_matter_utils.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/heading_utils.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/list_utils.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md001_heading_increment.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md002_first_heading_h1/md002_config.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md002_first_heading_h1.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md003_heading_style/md003_config.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md003_heading_style.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md004_unordered_list_style/md004_config.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md004_unordered_list_style.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md005_list_indent.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md006_start_bullets.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md007_ul_indent/md007_config.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md007_ul_indent.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md009_trailing_spaces/md009_config.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md010_no_hard_tabs/md010_config.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md010_no_hard_tabs.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md011_no_reversed_links.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md012_no_multiple_blanks/md012_config.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md012_no_multiple_blanks.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md013_line_length/md013_config.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md013_line_length.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md014_commands_show_output/md014_config.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md014_commands_show_output.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md018_no_missing_space_atx.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md019_no_multiple_space_atx.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md020_no_missing_space_closed_atx.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md021_no_multiple_space_closed_atx.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md022_blanks_around_headings/md022_config.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md022_blanks_around_headings.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md023_heading_start_left.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md024_no_duplicate_heading/md024_config.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md024_no_duplicate_heading.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md025_single_title/md025_config.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md025_single_title.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md026_no_trailing_punctuation/md026_config.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md026_no_trailing_punctuation.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md027_multiple_spaces_blockquote.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md028_no_blanks_blockquote.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md029_ordered_list_prefix/md029_config.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md029_ordered_list_prefix.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md030_list_marker_space/md030_config.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md030_list_marker_space.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md031_blanks_around_fences.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md032_blanks_around_lists.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md033_no_inline_html/md033_config.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md033_no_inline_html.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md034_no_bare_urls.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md035_hr_style/md035_config.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md035_hr_style.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md036_no_emphasis_only_first/md036_config.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md036_no_emphasis_only_first.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md037_spaces_around_emphasis.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md038_no_space_in_code.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md039_no_space_in_links.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md040_fenced_code_language.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md041_first_line_heading.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md042_no_empty_links.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md043_required_headings.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md044_proper_names/md044_config.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md044_proper_names.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md045_no_alt_text/md045_config.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md045_no_alt_text.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md046_code_block_style/md046_config.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md046_code_block_style.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md047_single_trailing_newline.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md048_code_fence_style/md048_config.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md048_code_fence_style.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md049_emphasis_style/md049_config.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md049_emphasis_style.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md050_strong_style/md050_config.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md050_strong_style.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md051_link_fragments.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md053_link_image_reference_definitions.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md054_link_image_style/md054_config.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md054_link_image_style.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md055_table_pipe_style/md055_config.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md055_table_pipe_style.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md056_table_column_count.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md057_existing_relative_links/md057_config.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md057_existing_relative_links.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md058_blanks_around_tables.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/mod.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/strong_style.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/utils/anchor_styles/github.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/utils/anchor_styles/jekyll.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/utils/anchor_styles/kramdown.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/utils/anchor_styles/kramdown_gfm.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/utils/anchor_styles/mod.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/utils/ast_utils.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/utils/code_block_utils.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/utils/document_structure.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/utils/early_returns.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/utils/element_cache.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/utils/emphasis_utils.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/utils/fix_utils.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/utils/header_id_utils.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/utils/kramdown_utils.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/utils/markdown_elements.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/utils/mod.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/utils/range_utils.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/utils/regex_cache.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/utils/skip_context.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/utils/string_interner.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/utils/table_utils.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/utils/text_reflow.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/src/vscode.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/advanced_integration_tests.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/character_ranges/additional_tests.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/character_ranges/basic_tests.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/character_ranges/comprehensive_tests.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/character_ranges/extended_tests.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/character_ranges/mod.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/character_ranges/unicode_utils.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/cli_duplication_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/cli_explain_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/cli_flag_precedence_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/cli_lsp_fix_consistency.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/cli_statistics_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/common/cli_test_utils.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/common/fixtures.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/common/mod.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/common/test_utils.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/commonmark_compliance_tests.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/comprehensive_integration_tests.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/comprehensive_output_format_tests.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/config_application_tests.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/config_tests.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/configuration_inheritance_tests.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/consistency_regression_tests.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/cross_platform_compatibility_tests.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/deeply_nested_lists_performance_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/escaped_brackets_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/final_confidence_assessment.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/fixable_unfixable_config_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/init_command_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/init_tests.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/inline_config_blocks_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/inline_config_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/integration_tests.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/json_output_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/kramdown_integration_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/lib.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/lsp_editor_integration_tests.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/lsp_integration_tests.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/lsp_memory_leak_tests.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/lsp_tests.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/malformed_markdown_stress_tests.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/markdownlint_cli_integration.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/markdownlint_config_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/markdownlintignore_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/md013_reflow_integration_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/md051_issue_39_regression_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/nested_code_block_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/output_format_integration_tests.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/output_format_tests.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/perf_check.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/performance_validation_tests.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/pyproject_config_tests.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/python_bindings_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/real_world_repository_tests.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/regression_prevention_tests.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/emphasis_edge_cases_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/heading_edge_cases_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/inline_content_edge_cases_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/link_edge_cases_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/list_rules_integration_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md001_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md001_unicode_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md002_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md003_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md004_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md005_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md005_unicode_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md006_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md006_unicode_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md007_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md010_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md011_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md012_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md013_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md014_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md018_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md019_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md020_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md021_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md022_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md023_extended_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md023_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md024_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md025_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md026_kramdown_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md026_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md027_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md028_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md029_code_block_separation_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md029_issue42_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md029_pathological_edge_cases_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md029_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md029_unicode_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md030_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md031_kramdown_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md031_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md032_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md033_extended_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md033_kramdown_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md033_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md034_ipv6_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md034_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md035_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md036_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md037_kramdown_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md037_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md038_nested_backticks_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md038_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md039_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md040_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md041_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md042_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md043_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md044_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md045_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md046_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md047_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md048_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md049_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md050_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md051_comprehensive_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md051_critical_edge_cases_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md051_edge_cases_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md051_issue_39_regression_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md051_performance_edge_cases_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md051_property_based_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md051_regression_prevention_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md051_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md051_unicode_security_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md052_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md053_additional_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md053_proptest.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md053_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md054_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md054_unicode_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md055_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md056_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md057_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md058_kramdown_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md058_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/mod.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules_mod_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/skip_context_tests.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/test_underscore_edge_cases.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/thread_safety_tests.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/unfixable_rules_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/unicode_edge_case_tests.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/utils/blockquote_utils_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/utils/code_block_utils_extended_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/utils/code_block_utils_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/utils/core_utils_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/utils/front_matter_utils_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/utils/line_index_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/utils/mod.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/utils_markdown_edge_cases.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/utils_tests.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/vscode_extension_fixes.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/vscode_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/vscode_tests.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/vscode_windows_comprehensive_test.rs +0 -0
- {rumdl-0.0.123 → rumdl-0.0.124}/tests/vscode_windows_test.rs +0 -0
|
@@ -7,7 +7,24 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
-
## [0.0.
|
|
10
|
+
## [0.0.124] - 2025-08-22
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
- **Formatting**: Added stdin/stdout formatting support (closes #59)
|
|
14
|
+
- `rumdl fmt` command for formatting markdown files (alias for `check --fix`)
|
|
15
|
+
- `--stdin` with `--fix` now outputs formatted content to stdout
|
|
16
|
+
- Support for `-` as stdin indicator (Unix convention: `rumdl fmt -`)
|
|
17
|
+
- Clear separation between linting (diagnostics to stderr) and formatting (content to stdout)
|
|
18
|
+
- Documentation updated with formatting examples
|
|
19
|
+
|
|
20
|
+
### Fixed
|
|
21
|
+
- **MD052**: Don't flag GitHub alerts as undefined references (closes #60)
|
|
22
|
+
- GitHub alert syntax (`[!NOTE]`, `[!TIP]`, `[!WARNING]`, `[!IMPORTANT]`, `[!CAUTION]`) no longer flagged
|
|
23
|
+
- Improved compatibility with GitHub-flavored markdown
|
|
24
|
+
- **MD009**: Fixed heading trailing space removal
|
|
25
|
+
- Headings now have ALL trailing spaces removed (they serve no purpose in headings)
|
|
26
|
+
- **CLI**: Fixed stdin diagnostics output in check mode
|
|
27
|
+
- Diagnostics now correctly output to stderr by default in check mode without `--fix`
|
|
11
28
|
|
|
12
29
|
## [0.0.123] - 2025-08-21
|
|
13
30
|
|
|
@@ -33,6 +50,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
33
50
|
|
|
34
51
|
## [0.0.122] - 2025-08-19
|
|
35
52
|
|
|
53
|
+
### Added
|
|
54
|
+
- **Configuration Discovery**: Automatic upward directory traversal to find configuration files (closes #58)
|
|
55
|
+
- Searches parent directories for `.rumdl.toml`, `rumdl.toml`, or `pyproject.toml`
|
|
56
|
+
- Similar behavior to `git`, `ruff`, and `eslint`
|
|
57
|
+
- Stops at `.git` directory boundaries
|
|
58
|
+
- **--isolated flag**: New flag to disable all configuration discovery (Ruff-compatible)
|
|
59
|
+
- Alias for `--no-config` for better ecosystem compatibility
|
|
60
|
+
|
|
36
61
|
## [0.0.121] - 2025-08-19
|
|
37
62
|
|
|
38
63
|
### Fixed
|
|
@@ -52,6 +77,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
52
77
|
|
|
53
78
|
## [0.0.120] - 2025-08-16
|
|
54
79
|
|
|
80
|
+
### Performance
|
|
81
|
+
- Incremental improvements to various rule implementations
|
|
82
|
+
|
|
55
83
|
## [0.0.119] - 2025-08-15
|
|
56
84
|
|
|
57
85
|
### Fixed
|
|
@@ -68,6 +96,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
68
96
|
|
|
69
97
|
## [0.0.118] - 2025-08-14
|
|
70
98
|
|
|
99
|
+
### Performance
|
|
100
|
+
- Incremental improvements to various rule implementations
|
|
101
|
+
|
|
71
102
|
## [0.0.117] - 2025-08-14
|
|
72
103
|
|
|
73
104
|
### Fixed
|
|
@@ -95,17 +126,28 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
95
126
|
|
|
96
127
|
## [0.0.115] - 2025-08-12
|
|
97
128
|
|
|
129
|
+
### Fixed
|
|
130
|
+
- Various bug fixes and improvements
|
|
131
|
+
|
|
98
132
|
## [0.0.114] - 2025-08-09
|
|
99
133
|
|
|
134
|
+
### Fixed
|
|
135
|
+
- Various bug fixes and improvements
|
|
136
|
+
|
|
100
137
|
## [0.0.113] - 2025-08-09
|
|
101
138
|
|
|
139
|
+
### Fixed
|
|
140
|
+
- Various bug fixes and improvements
|
|
141
|
+
|
|
102
142
|
## [0.0.112] - 2025-08-08
|
|
103
143
|
|
|
104
|
-
|
|
144
|
+
### Fixed
|
|
145
|
+
- Various bug fixes and improvements
|
|
105
146
|
|
|
106
147
|
## [0.0.110] - 2025-08-08
|
|
107
148
|
|
|
108
|
-
|
|
149
|
+
### Changed
|
|
150
|
+
- Various bug fixes and improvements
|
|
109
151
|
|
|
110
152
|
## [0.0.107] - 2025-08-06
|
|
111
153
|
|
|
@@ -125,8 +167,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
125
167
|
|
|
126
168
|
## [0.0.105] - 2025-08-05
|
|
127
169
|
|
|
128
|
-
## [0.0.105] - 2025-08-05
|
|
129
|
-
|
|
130
170
|
### Fixed
|
|
131
171
|
- MD029: Fixed list continuation detection to properly handle variable marker widths (fixes #16)
|
|
132
172
|
- List items with double-digit markers (e.g., "10. ") now correctly require 4+ spaces for continuation
|
|
@@ -396,7 +436,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
396
436
|
|
|
397
437
|
- Initial implementation of remaining rules for markdownlint parity
|
|
398
438
|
|
|
399
|
-
[Unreleased]: https://github.com/rvben/rumdl/compare/v0.0.
|
|
439
|
+
[Unreleased]: https://github.com/rvben/rumdl/compare/v0.0.124...HEAD
|
|
440
|
+
[0.0.124]: https://github.com/rvben/rumdl/compare/v0.0.123...v0.0.124
|
|
400
441
|
[0.0.123]: https://github.com/rvben/rumdl/compare/v0.0.122...v0.0.123
|
|
401
442
|
[0.0.122]: https://github.com/rvben/rumdl/compare/v0.0.121...v0.0.122
|
|
402
443
|
[0.0.121]: https://github.com/rvben/rumdl/compare/v0.0.120...v0.0.121
|
|
@@ -410,10 +451,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
410
451
|
[0.0.113]: https://github.com/rvben/rumdl/compare/v0.0.112...v0.0.113
|
|
411
452
|
[0.0.112]: https://github.com/rvben/rumdl/compare/v0.0.111...v0.0.112
|
|
412
453
|
[0.0.110]: https://github.com/rvben/rumdl/compare/v0.0.109...v0.0.110
|
|
413
|
-
[0.0.110]: https://github.com/rvben/rumdl/compare/v0.0.109...v0.0.110
|
|
414
|
-
[0.0.107]: https://github.com/rvben/rumdl/compare/v0.0.106...v0.0.107
|
|
415
454
|
[0.0.107]: https://github.com/rvben/rumdl/compare/v0.0.106...v0.0.107
|
|
416
|
-
[0.0.
|
|
455
|
+
[0.0.106]: https://github.com/rvben/rumdl/compare/v0.0.105...v0.0.106
|
|
417
456
|
[0.0.105]: https://github.com/rvben/rumdl/compare/v0.0.104...v0.0.105
|
|
418
457
|
[0.0.104]: https://github.com/rvben/rumdl/compare/v0.0.103...v0.0.104
|
|
419
458
|
[0.0.102]: https://github.com/rvben/rumdl/compare/v0.0.101...v0.0.102
|
|
@@ -185,9 +185,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
|
|
|
185
185
|
|
|
186
186
|
[[package]]
|
|
187
187
|
name = "bitflags"
|
|
188
|
-
version = "2.9.
|
|
188
|
+
version = "2.9.3"
|
|
189
189
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
190
|
-
checksum = "
|
|
190
|
+
checksum = "34efbcccd345379ca2868b2b2c9d3782e9cc58ba87bc7d79d5b53d9c9ae6f25d"
|
|
191
191
|
|
|
192
192
|
[[package]]
|
|
193
193
|
name = "bstr"
|
|
@@ -220,9 +220,9 @@ checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5"
|
|
|
220
220
|
|
|
221
221
|
[[package]]
|
|
222
222
|
name = "cc"
|
|
223
|
-
version = "1.2.
|
|
223
|
+
version = "1.2.34"
|
|
224
224
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
225
|
-
checksum = "
|
|
225
|
+
checksum = "42bc4aea80032b7bf409b0bc7ccad88853858911b7713a8062fdc0623867bedc"
|
|
226
226
|
dependencies = [
|
|
227
227
|
"shlex",
|
|
228
228
|
]
|
|
@@ -843,9 +843,9 @@ dependencies = [
|
|
|
843
843
|
|
|
844
844
|
[[package]]
|
|
845
845
|
name = "indexmap"
|
|
846
|
-
version = "2.
|
|
846
|
+
version = "2.11.0"
|
|
847
847
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
848
|
-
checksum = "
|
|
848
|
+
checksum = "f2481980430f9f78649238835720ddccc57e52df14ffce1c6f37391d61b563e9"
|
|
849
849
|
dependencies = [
|
|
850
850
|
"equivalent",
|
|
851
851
|
"hashbrown 0.15.5",
|
|
@@ -859,11 +859,11 @@ checksum = "f4c7245a08504955605670dbf141fceab975f15ca21570696aebe9d2e71576bd"
|
|
|
859
859
|
|
|
860
860
|
[[package]]
|
|
861
861
|
name = "io-uring"
|
|
862
|
-
version = "0.7.
|
|
862
|
+
version = "0.7.10"
|
|
863
863
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
864
|
-
checksum = "
|
|
864
|
+
checksum = "046fa2d4d00aea763528b4950358d0ead425372445dc8ff86312b3c69ff7727b"
|
|
865
865
|
dependencies = [
|
|
866
|
-
"bitflags 2.9.
|
|
866
|
+
"bitflags 2.9.3",
|
|
867
867
|
"cfg-if",
|
|
868
868
|
"libc",
|
|
869
869
|
]
|
|
@@ -1013,9 +1013,9 @@ checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0"
|
|
|
1013
1013
|
|
|
1014
1014
|
[[package]]
|
|
1015
1015
|
name = "memmap2"
|
|
1016
|
-
version = "0.9.
|
|
1016
|
+
version = "0.9.8"
|
|
1017
1017
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1018
|
-
checksum = "
|
|
1018
|
+
checksum = "843a98750cd611cc2965a8213b53b43e715f13c37a9e096c6408e69990961db7"
|
|
1019
1019
|
dependencies = [
|
|
1020
1020
|
"libc",
|
|
1021
1021
|
]
|
|
@@ -1280,7 +1280,7 @@ checksum = "6fcdab19deb5195a31cf7726a210015ff1496ba1464fd42cb4f537b8b01b471f"
|
|
|
1280
1280
|
dependencies = [
|
|
1281
1281
|
"bit-set",
|
|
1282
1282
|
"bit-vec",
|
|
1283
|
-
"bitflags 2.9.
|
|
1283
|
+
"bitflags 2.9.3",
|
|
1284
1284
|
"lazy_static",
|
|
1285
1285
|
"num-traits",
|
|
1286
1286
|
"rand",
|
|
@@ -1298,7 +1298,7 @@ version = "0.12.2"
|
|
|
1298
1298
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1299
1299
|
checksum = "f86ba2052aebccc42cbbb3ed234b8b13ce76f75c3551a303cb2bcffcff12bb14"
|
|
1300
1300
|
dependencies = [
|
|
1301
|
-
"bitflags 2.9.
|
|
1301
|
+
"bitflags 2.9.3",
|
|
1302
1302
|
"getopts",
|
|
1303
1303
|
"memchr",
|
|
1304
1304
|
"pulldown-cmark-escape",
|
|
@@ -1459,7 +1459,7 @@ version = "0.5.17"
|
|
|
1459
1459
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1460
1460
|
checksum = "5407465600fb0548f1442edf71dd20683c6ed326200ace4b1ef0763521bb3b77"
|
|
1461
1461
|
dependencies = [
|
|
1462
|
-
"bitflags 2.9.
|
|
1462
|
+
"bitflags 2.9.3",
|
|
1463
1463
|
]
|
|
1464
1464
|
|
|
1465
1465
|
[[package]]
|
|
@@ -1493,7 +1493,7 @@ checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c"
|
|
|
1493
1493
|
|
|
1494
1494
|
[[package]]
|
|
1495
1495
|
name = "rumdl"
|
|
1496
|
-
version = "0.0.
|
|
1496
|
+
version = "0.0.124"
|
|
1497
1497
|
dependencies = [
|
|
1498
1498
|
"anyhow",
|
|
1499
1499
|
"assert_cmd",
|
|
@@ -1555,7 +1555,7 @@ version = "1.0.8"
|
|
|
1555
1555
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1556
1556
|
checksum = "11181fbabf243db407ef8df94a6ce0b2f9a733bd8be4ad02b4eda9602296cac8"
|
|
1557
1557
|
dependencies = [
|
|
1558
|
-
"bitflags 2.9.
|
|
1558
|
+
"bitflags 2.9.3",
|
|
1559
1559
|
"errno",
|
|
1560
1560
|
"libc",
|
|
1561
1561
|
"linux-raw-sys",
|
|
@@ -2421,9 +2421,9 @@ checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486"
|
|
|
2421
2421
|
|
|
2422
2422
|
[[package]]
|
|
2423
2423
|
name = "winnow"
|
|
2424
|
-
version = "0.7.
|
|
2424
|
+
version = "0.7.13"
|
|
2425
2425
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2426
|
-
checksum = "
|
|
2426
|
+
checksum = "21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf"
|
|
2427
2427
|
dependencies = [
|
|
2428
2428
|
"memchr",
|
|
2429
2429
|
]
|
|
@@ -2434,7 +2434,7 @@ version = "0.39.0"
|
|
|
2434
2434
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2435
2435
|
checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1"
|
|
2436
2436
|
dependencies = [
|
|
2437
|
-
"bitflags 2.9.
|
|
2437
|
+
"bitflags 2.9.3",
|
|
2438
2438
|
]
|
|
2439
2439
|
|
|
2440
2440
|
[[package]]
|
|
@@ -334,7 +334,7 @@ update-rust-version:
|
|
|
334
334
|
cargo check || (echo "Warning: cargo check failed. You may need to fix compatibility issues."; exit 1); \
|
|
335
335
|
fi
|
|
336
336
|
|
|
337
|
-
|
|
337
|
+
prepare-release:
|
|
338
338
|
@echo "Preparing for release..."
|
|
339
339
|
@echo "===================="
|
|
340
340
|
@$(MAKE) update-rust-version
|
|
@@ -354,6 +354,6 @@ pre-release:
|
|
|
354
354
|
@echo "Please review changes and commit if satisfied."
|
|
355
355
|
|
|
356
356
|
# Full release targets that include pre-release preparation
|
|
357
|
-
release-major-full:
|
|
358
|
-
release-minor-full:
|
|
359
|
-
release-patch-full:
|
|
357
|
+
release-major-full: prepare-release version-major version-push
|
|
358
|
+
release-minor-full: prepare-release version-minor version-push
|
|
359
|
+
release-patch-full: prepare-release version-patch version-push
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: rumdl
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.124
|
|
4
4
|
Classifier: Development Status :: 4 - Beta
|
|
5
5
|
Classifier: Environment :: Console
|
|
6
6
|
Classifier: Intended Audience :: Developers
|
|
@@ -55,8 +55,9 @@ cargo install rumdl
|
|
|
55
55
|
# Lint Markdown files in the current directory
|
|
56
56
|
rumdl check .
|
|
57
57
|
|
|
58
|
-
#
|
|
59
|
-
rumdl
|
|
58
|
+
# Format files (automatically fix issues)
|
|
59
|
+
rumdl fmt .
|
|
60
|
+
# Alternative: rumdl check --fix .
|
|
60
61
|
|
|
61
62
|
# Create a default configuration file
|
|
62
63
|
rumdl init
|
|
@@ -64,7 +65,7 @@ rumdl init
|
|
|
64
65
|
|
|
65
66
|
## Overview
|
|
66
67
|
|
|
67
|
-
rumdl is a high-performance Markdown linter and
|
|
68
|
+
rumdl is a high-performance Markdown linter and formatter that helps ensure consistency and best practices
|
|
68
69
|
in your Markdown files. Inspired by [ruff](https://github.com/astral-sh/ruff)'s approach to Python linting,
|
|
69
70
|
rumdl brings similar speed and developer experience improvements to the Markdown ecosystem.
|
|
70
71
|
|
|
@@ -72,7 +73,7 @@ It offers:
|
|
|
72
73
|
|
|
73
74
|
- ⚡️ **Built for speed** with Rust - significantly faster than alternatives
|
|
74
75
|
- 🔍 **54 lint rules** covering common Markdown issues
|
|
75
|
-
- 🛠️ **Automatic
|
|
76
|
+
- 🛠️ **Automatic formatting** with `--fix` for files and stdin/stdout
|
|
76
77
|
- 📦 **Zero dependencies** - single binary with no runtime requirements
|
|
77
78
|
- 🔧 **Highly configurable** with TOML-based config files
|
|
78
79
|
- 🌐 **Multiple installation options** - Rust, Python, standalone binaries
|
|
@@ -95,6 +96,8 @@ It offers:
|
|
|
95
96
|
- [Download binary](#download-binary)
|
|
96
97
|
- [VS Code Extension](#vs-code-extension)
|
|
97
98
|
- [Usage](#usage)
|
|
99
|
+
- [Stdin/Stdout Formatting](#stdinstdout-formatting)
|
|
100
|
+
- [Editor Integration](#editor-integration)
|
|
98
101
|
- [Pre-commit Integration](#pre-commit-integration)
|
|
99
102
|
- [CI/CD Integration](#cicd-integration)
|
|
100
103
|
- [GitHub Actions](#github-actions)
|
|
@@ -102,6 +105,7 @@ It offers:
|
|
|
102
105
|
- [Command-line Interface](#command-line-interface)
|
|
103
106
|
- [Commands](#commands)
|
|
104
107
|
- [`check [PATHS...]`](#check-paths)
|
|
108
|
+
- [`fmt [PATHS...]`](#fmt-paths)
|
|
105
109
|
- [`init [OPTIONS]`](#init-options)
|
|
106
110
|
- [`import <FILE> [OPTIONS]`](#import-file-options)
|
|
107
111
|
- [`rule [<rule>]`](#rule-rule)
|
|
@@ -213,8 +217,8 @@ rumdl check README.md
|
|
|
213
217
|
# Lint all Markdown files in current directory and subdirectories
|
|
214
218
|
rumdl check .
|
|
215
219
|
|
|
216
|
-
#
|
|
217
|
-
rumdl
|
|
220
|
+
# Format a specific file
|
|
221
|
+
rumdl fmt README.md
|
|
218
222
|
|
|
219
223
|
# Create a default configuration file
|
|
220
224
|
rumdl init
|
|
@@ -245,6 +249,35 @@ rumdl check --include "docs/**/*.md" --exclude "docs/temp,docs/drafts" .
|
|
|
245
249
|
rumdl check --respect-gitignore=false .
|
|
246
250
|
```
|
|
247
251
|
|
|
252
|
+
### Stdin/Stdout Formatting
|
|
253
|
+
|
|
254
|
+
rumdl supports formatting via stdin/stdout, making it ideal for editor integrations and CI pipelines:
|
|
255
|
+
|
|
256
|
+
```bash
|
|
257
|
+
# Format content from stdin and output to stdout
|
|
258
|
+
cat README.md | rumdl fmt - > README_formatted.md
|
|
259
|
+
# Alternative: cat README.md | rumdl fmt --stdin > README_formatted.md
|
|
260
|
+
|
|
261
|
+
# Use in a pipeline
|
|
262
|
+
echo "# Title " | rumdl fmt -
|
|
263
|
+
# Output: # Title
|
|
264
|
+
|
|
265
|
+
# Format clipboard content (macOS example)
|
|
266
|
+
pbpaste | rumdl fmt - | pbcopy
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
### Editor Integration
|
|
270
|
+
|
|
271
|
+
For editor integration, use stdin/stdout mode with the `--quiet` flag to suppress diagnostic messages:
|
|
272
|
+
|
|
273
|
+
```bash
|
|
274
|
+
# Format selection in editor (example for vim)
|
|
275
|
+
:'<,'>!rumdl fmt - --quiet
|
|
276
|
+
|
|
277
|
+
# Format entire buffer
|
|
278
|
+
:%!rumdl fmt - --quiet
|
|
279
|
+
```
|
|
280
|
+
|
|
248
281
|
## Pre-commit Integration
|
|
249
282
|
|
|
250
283
|
You can use `rumdl` as a pre-commit hook to check and fix your Markdown files.
|
|
@@ -337,6 +370,37 @@ Lint Markdown files and print warnings/errors (main subcommand)
|
|
|
337
370
|
- `-o, --output <format>`: Output format: `text` (default) or `json`
|
|
338
371
|
- `--stdin`: Read from stdin instead of files
|
|
339
372
|
|
|
373
|
+
#### `fmt [PATHS...]`
|
|
374
|
+
|
|
375
|
+
Format Markdown files (alias for `check --fix`)
|
|
376
|
+
|
|
377
|
+
**Arguments:**
|
|
378
|
+
|
|
379
|
+
- `[PATHS...]`: Files or directories to format. If provided, these paths take precedence over include patterns
|
|
380
|
+
|
|
381
|
+
**Options:**
|
|
382
|
+
|
|
383
|
+
All the same options as `check` are available (except `--fix` which is always enabled), including:
|
|
384
|
+
- `--stdin`: Format content from stdin and output to stdout
|
|
385
|
+
- `-d, --disable <rules>`: Disable specific rules during formatting
|
|
386
|
+
- `-e, --enable <rules>`: Format using only specific rules
|
|
387
|
+
- `--exclude/--include`: Control which files to format
|
|
388
|
+
- `-q, --quiet`: Suppress diagnostic output
|
|
389
|
+
|
|
390
|
+
**Examples:**
|
|
391
|
+
|
|
392
|
+
```bash
|
|
393
|
+
# Format all Markdown files in current directory
|
|
394
|
+
rumdl fmt
|
|
395
|
+
|
|
396
|
+
# Format specific file
|
|
397
|
+
rumdl fmt README.md
|
|
398
|
+
|
|
399
|
+
# Format from stdin (using dash syntax)
|
|
400
|
+
cat README.md | rumdl fmt - > formatted.md
|
|
401
|
+
# Alternative: cat README.md | rumdl fmt --stdin > formatted.md
|
|
402
|
+
```
|
|
403
|
+
|
|
340
404
|
#### `init [OPTIONS]`
|
|
341
405
|
|
|
342
406
|
Create a default configuration file in the current directory
|
|
@@ -428,8 +492,9 @@ This allows scripts and CI/CD systems to distinguish between "the tool found pro
|
|
|
428
492
|
# Lint all Markdown files in the current directory
|
|
429
493
|
rumdl check .
|
|
430
494
|
|
|
431
|
-
#
|
|
432
|
-
rumdl
|
|
495
|
+
# Format files (automatically fix issues)
|
|
496
|
+
rumdl fmt .
|
|
497
|
+
# Alternative: rumdl check --fix .
|
|
433
498
|
|
|
434
499
|
# Create a default configuration file
|
|
435
500
|
rumdl init
|
|
@@ -484,11 +549,33 @@ rumdl version
|
|
|
484
549
|
|
|
485
550
|
rumdl can be configured in several ways:
|
|
486
551
|
|
|
487
|
-
1. Using a `.rumdl.toml` file in your project directory
|
|
552
|
+
1. Using a `.rumdl.toml` file in your project directory or parent directories
|
|
488
553
|
2. Using the `[tool.rumdl]` section in your project's `pyproject.toml` file (for Python projects)
|
|
489
554
|
3. Using command-line arguments
|
|
490
555
|
4. **Automatic markdownlint compatibility**: rumdl automatically discovers and loads existing markdownlint config files (`.markdownlint.json`, `.markdownlint.yaml`, etc.)
|
|
491
556
|
|
|
557
|
+
### Configuration Discovery
|
|
558
|
+
|
|
559
|
+
rumdl automatically searches for configuration files by traversing up the directory tree from the current
|
|
560
|
+
working directory, similar to tools like `git`, `ruff`, and `eslint`. This means you can run rumdl from any
|
|
561
|
+
subdirectory of your project and it will find the configuration file at the project root.
|
|
562
|
+
|
|
563
|
+
The search follows these rules:
|
|
564
|
+
- Searches upward for `.rumdl.toml`, `rumdl.toml`, or `pyproject.toml` (with `[tool.rumdl]` section)
|
|
565
|
+
- Stops at the first configuration file found
|
|
566
|
+
- Stops searching when it encounters a `.git` directory (project boundary)
|
|
567
|
+
- Maximum traversal depth of 100 directories
|
|
568
|
+
|
|
569
|
+
To disable all configuration discovery and use only built-in defaults, use the `--isolated` flag:
|
|
570
|
+
|
|
571
|
+
```bash
|
|
572
|
+
# Use discovered configuration (default behavior)
|
|
573
|
+
rumdl check .
|
|
574
|
+
|
|
575
|
+
# Ignore all configuration files
|
|
576
|
+
rumdl check --isolated .
|
|
577
|
+
```
|
|
578
|
+
|
|
492
579
|
### Markdownlint Migration
|
|
493
580
|
|
|
494
581
|
rumdl provides seamless compatibility with existing markdownlint configurations:
|
|
@@ -660,7 +747,7 @@ README.md:24:5: [MD037] Spaces inside emphasis markers: "* incorrect *" [*]
|
|
|
660
747
|
README.md:42:3: [MD010] Hard tabs found, use spaces instead [*]
|
|
661
748
|
|
|
662
749
|
Found 3 issues in 1 file (2 files checked)
|
|
663
|
-
Run
|
|
750
|
+
Run `rumdl fmt` to automatically fix issues
|
|
664
751
|
```
|
|
665
752
|
|
|
666
753
|
### Output Format
|
|
@@ -26,8 +26,9 @@ cargo install rumdl
|
|
|
26
26
|
# Lint Markdown files in the current directory
|
|
27
27
|
rumdl check .
|
|
28
28
|
|
|
29
|
-
#
|
|
30
|
-
rumdl
|
|
29
|
+
# Format files (automatically fix issues)
|
|
30
|
+
rumdl fmt .
|
|
31
|
+
# Alternative: rumdl check --fix .
|
|
31
32
|
|
|
32
33
|
# Create a default configuration file
|
|
33
34
|
rumdl init
|
|
@@ -35,7 +36,7 @@ rumdl init
|
|
|
35
36
|
|
|
36
37
|
## Overview
|
|
37
38
|
|
|
38
|
-
rumdl is a high-performance Markdown linter and
|
|
39
|
+
rumdl is a high-performance Markdown linter and formatter that helps ensure consistency and best practices
|
|
39
40
|
in your Markdown files. Inspired by [ruff](https://github.com/astral-sh/ruff)'s approach to Python linting,
|
|
40
41
|
rumdl brings similar speed and developer experience improvements to the Markdown ecosystem.
|
|
41
42
|
|
|
@@ -43,7 +44,7 @@ It offers:
|
|
|
43
44
|
|
|
44
45
|
- ⚡️ **Built for speed** with Rust - significantly faster than alternatives
|
|
45
46
|
- 🔍 **54 lint rules** covering common Markdown issues
|
|
46
|
-
- 🛠️ **Automatic
|
|
47
|
+
- 🛠️ **Automatic formatting** with `--fix` for files and stdin/stdout
|
|
47
48
|
- 📦 **Zero dependencies** - single binary with no runtime requirements
|
|
48
49
|
- 🔧 **Highly configurable** with TOML-based config files
|
|
49
50
|
- 🌐 **Multiple installation options** - Rust, Python, standalone binaries
|
|
@@ -66,6 +67,8 @@ It offers:
|
|
|
66
67
|
- [Download binary](#download-binary)
|
|
67
68
|
- [VS Code Extension](#vs-code-extension)
|
|
68
69
|
- [Usage](#usage)
|
|
70
|
+
- [Stdin/Stdout Formatting](#stdinstdout-formatting)
|
|
71
|
+
- [Editor Integration](#editor-integration)
|
|
69
72
|
- [Pre-commit Integration](#pre-commit-integration)
|
|
70
73
|
- [CI/CD Integration](#cicd-integration)
|
|
71
74
|
- [GitHub Actions](#github-actions)
|
|
@@ -73,6 +76,7 @@ It offers:
|
|
|
73
76
|
- [Command-line Interface](#command-line-interface)
|
|
74
77
|
- [Commands](#commands)
|
|
75
78
|
- [`check [PATHS...]`](#check-paths)
|
|
79
|
+
- [`fmt [PATHS...]`](#fmt-paths)
|
|
76
80
|
- [`init [OPTIONS]`](#init-options)
|
|
77
81
|
- [`import <FILE> [OPTIONS]`](#import-file-options)
|
|
78
82
|
- [`rule [<rule>]`](#rule-rule)
|
|
@@ -184,8 +188,8 @@ rumdl check README.md
|
|
|
184
188
|
# Lint all Markdown files in current directory and subdirectories
|
|
185
189
|
rumdl check .
|
|
186
190
|
|
|
187
|
-
#
|
|
188
|
-
rumdl
|
|
191
|
+
# Format a specific file
|
|
192
|
+
rumdl fmt README.md
|
|
189
193
|
|
|
190
194
|
# Create a default configuration file
|
|
191
195
|
rumdl init
|
|
@@ -216,6 +220,35 @@ rumdl check --include "docs/**/*.md" --exclude "docs/temp,docs/drafts" .
|
|
|
216
220
|
rumdl check --respect-gitignore=false .
|
|
217
221
|
```
|
|
218
222
|
|
|
223
|
+
### Stdin/Stdout Formatting
|
|
224
|
+
|
|
225
|
+
rumdl supports formatting via stdin/stdout, making it ideal for editor integrations and CI pipelines:
|
|
226
|
+
|
|
227
|
+
```bash
|
|
228
|
+
# Format content from stdin and output to stdout
|
|
229
|
+
cat README.md | rumdl fmt - > README_formatted.md
|
|
230
|
+
# Alternative: cat README.md | rumdl fmt --stdin > README_formatted.md
|
|
231
|
+
|
|
232
|
+
# Use in a pipeline
|
|
233
|
+
echo "# Title " | rumdl fmt -
|
|
234
|
+
# Output: # Title
|
|
235
|
+
|
|
236
|
+
# Format clipboard content (macOS example)
|
|
237
|
+
pbpaste | rumdl fmt - | pbcopy
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
### Editor Integration
|
|
241
|
+
|
|
242
|
+
For editor integration, use stdin/stdout mode with the `--quiet` flag to suppress diagnostic messages:
|
|
243
|
+
|
|
244
|
+
```bash
|
|
245
|
+
# Format selection in editor (example for vim)
|
|
246
|
+
:'<,'>!rumdl fmt - --quiet
|
|
247
|
+
|
|
248
|
+
# Format entire buffer
|
|
249
|
+
:%!rumdl fmt - --quiet
|
|
250
|
+
```
|
|
251
|
+
|
|
219
252
|
## Pre-commit Integration
|
|
220
253
|
|
|
221
254
|
You can use `rumdl` as a pre-commit hook to check and fix your Markdown files.
|
|
@@ -308,6 +341,37 @@ Lint Markdown files and print warnings/errors (main subcommand)
|
|
|
308
341
|
- `-o, --output <format>`: Output format: `text` (default) or `json`
|
|
309
342
|
- `--stdin`: Read from stdin instead of files
|
|
310
343
|
|
|
344
|
+
#### `fmt [PATHS...]`
|
|
345
|
+
|
|
346
|
+
Format Markdown files (alias for `check --fix`)
|
|
347
|
+
|
|
348
|
+
**Arguments:**
|
|
349
|
+
|
|
350
|
+
- `[PATHS...]`: Files or directories to format. If provided, these paths take precedence over include patterns
|
|
351
|
+
|
|
352
|
+
**Options:**
|
|
353
|
+
|
|
354
|
+
All the same options as `check` are available (except `--fix` which is always enabled), including:
|
|
355
|
+
- `--stdin`: Format content from stdin and output to stdout
|
|
356
|
+
- `-d, --disable <rules>`: Disable specific rules during formatting
|
|
357
|
+
- `-e, --enable <rules>`: Format using only specific rules
|
|
358
|
+
- `--exclude/--include`: Control which files to format
|
|
359
|
+
- `-q, --quiet`: Suppress diagnostic output
|
|
360
|
+
|
|
361
|
+
**Examples:**
|
|
362
|
+
|
|
363
|
+
```bash
|
|
364
|
+
# Format all Markdown files in current directory
|
|
365
|
+
rumdl fmt
|
|
366
|
+
|
|
367
|
+
# Format specific file
|
|
368
|
+
rumdl fmt README.md
|
|
369
|
+
|
|
370
|
+
# Format from stdin (using dash syntax)
|
|
371
|
+
cat README.md | rumdl fmt - > formatted.md
|
|
372
|
+
# Alternative: cat README.md | rumdl fmt --stdin > formatted.md
|
|
373
|
+
```
|
|
374
|
+
|
|
311
375
|
#### `init [OPTIONS]`
|
|
312
376
|
|
|
313
377
|
Create a default configuration file in the current directory
|
|
@@ -399,8 +463,9 @@ This allows scripts and CI/CD systems to distinguish between "the tool found pro
|
|
|
399
463
|
# Lint all Markdown files in the current directory
|
|
400
464
|
rumdl check .
|
|
401
465
|
|
|
402
|
-
#
|
|
403
|
-
rumdl
|
|
466
|
+
# Format files (automatically fix issues)
|
|
467
|
+
rumdl fmt .
|
|
468
|
+
# Alternative: rumdl check --fix .
|
|
404
469
|
|
|
405
470
|
# Create a default configuration file
|
|
406
471
|
rumdl init
|
|
@@ -455,11 +520,33 @@ rumdl version
|
|
|
455
520
|
|
|
456
521
|
rumdl can be configured in several ways:
|
|
457
522
|
|
|
458
|
-
1. Using a `.rumdl.toml` file in your project directory
|
|
523
|
+
1. Using a `.rumdl.toml` file in your project directory or parent directories
|
|
459
524
|
2. Using the `[tool.rumdl]` section in your project's `pyproject.toml` file (for Python projects)
|
|
460
525
|
3. Using command-line arguments
|
|
461
526
|
4. **Automatic markdownlint compatibility**: rumdl automatically discovers and loads existing markdownlint config files (`.markdownlint.json`, `.markdownlint.yaml`, etc.)
|
|
462
527
|
|
|
528
|
+
### Configuration Discovery
|
|
529
|
+
|
|
530
|
+
rumdl automatically searches for configuration files by traversing up the directory tree from the current
|
|
531
|
+
working directory, similar to tools like `git`, `ruff`, and `eslint`. This means you can run rumdl from any
|
|
532
|
+
subdirectory of your project and it will find the configuration file at the project root.
|
|
533
|
+
|
|
534
|
+
The search follows these rules:
|
|
535
|
+
- Searches upward for `.rumdl.toml`, `rumdl.toml`, or `pyproject.toml` (with `[tool.rumdl]` section)
|
|
536
|
+
- Stops at the first configuration file found
|
|
537
|
+
- Stops searching when it encounters a `.git` directory (project boundary)
|
|
538
|
+
- Maximum traversal depth of 100 directories
|
|
539
|
+
|
|
540
|
+
To disable all configuration discovery and use only built-in defaults, use the `--isolated` flag:
|
|
541
|
+
|
|
542
|
+
```bash
|
|
543
|
+
# Use discovered configuration (default behavior)
|
|
544
|
+
rumdl check .
|
|
545
|
+
|
|
546
|
+
# Ignore all configuration files
|
|
547
|
+
rumdl check --isolated .
|
|
548
|
+
```
|
|
549
|
+
|
|
463
550
|
### Markdownlint Migration
|
|
464
551
|
|
|
465
552
|
rumdl provides seamless compatibility with existing markdownlint configurations:
|
|
@@ -631,7 +718,7 @@ README.md:24:5: [MD037] Spaces inside emphasis markers: "* incorrect *" [*]
|
|
|
631
718
|
README.md:42:3: [MD010] Hard tabs found, use spaces instead [*]
|
|
632
719
|
|
|
633
720
|
Found 3 issues in 1 file (2 files checked)
|
|
634
|
-
Run
|
|
721
|
+
Run `rumdl fmt` to automatically fix issues
|
|
635
722
|
```
|
|
636
723
|
|
|
637
724
|
### Output Format
|
|
@@ -55,7 +55,7 @@ fi
|
|
|
55
55
|
# 2. Run clippy with exact CI flags
|
|
56
56
|
echo "2. Running Clippy (all targets, all features)..."
|
|
57
57
|
echo " This may take 1-2 minutes..."
|
|
58
|
-
run_check "Clippy" "cargo clippy --all-targets --all-features -- -D warnings" "false"
|
|
58
|
+
run_check "Clippy" "cargo clippy --all-targets --all-features -- -D warnings -D clippy::uninlined_format_args" "false"
|
|
59
59
|
|
|
60
60
|
# 3. Check formatting
|
|
61
61
|
echo "3. Checking code formatting..."
|