rumdl 0.0.134__tar.gz → 0.0.135__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.134 → rumdl-0.0.135}/CHANGELOG.md +4 -1
- {rumdl-0.0.134 → rumdl-0.0.135}/Cargo.lock +7 -7
- {rumdl-0.0.134 → rumdl-0.0.135}/Cargo.toml +1 -1
- {rumdl-0.0.134 → rumdl-0.0.135}/PKG-INFO +46 -18
- {rumdl-0.0.134 → rumdl-0.0.135}/README.md +45 -17
- {rumdl-0.0.134 → rumdl-0.0.135}/src/config.rs +52 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/main.rs +38 -3
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/cli_integration_tests.rs +114 -0
- rumdl-0.0.135/tests/md037_xxxx_regression_test.rs +91 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/.config/nextest.toml +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/.mise.toml +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/.pre-commit-config.yaml +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/.rumdl.toml +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/.rustfmt.toml +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/LICENSE +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/MANIFEST.in +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/Makefile +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/assets/logo.png +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/benches/fix_performance.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/benches/range_performance.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/benches/range_utils_benchmark.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/benches/rule_performance.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/benches/simple_fix_bench.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/benchmark/bin/bench_lint_context.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/benchmark/bin/benchmark.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/benchmark/bin/benchmark_rule.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/benchmark/bin/file_parallel_benchmark.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/benchmark/bin/measure_code_span_performance.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/docs/RULES.md +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/docs/global-settings.md +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/docs/md001.md +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/docs/md002.md +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/docs/md003.md +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/docs/md004.md +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/docs/md005.md +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/docs/md006.md +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/docs/md007.md +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/docs/md009.md +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/docs/md010.md +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/docs/md011.md +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/docs/md012.md +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/docs/md013.md +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/docs/md014.md +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/docs/md018.md +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/docs/md019.md +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/docs/md020.md +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/docs/md021.md +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/docs/md022.md +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/docs/md023.md +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/docs/md024.md +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/docs/md025.md +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/docs/md026.md +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/docs/md027.md +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/docs/md028.md +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/docs/md029.md +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/docs/md030.md +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/docs/md031.md +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/docs/md032.md +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/docs/md033.md +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/docs/md034.md +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/docs/md035.md +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/docs/md036.md +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/docs/md037.md +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/docs/md038.md +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/docs/md039.md +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/docs/md040.md +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/docs/md041.md +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/docs/md042.md +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/docs/md043.md +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/docs/md044.md +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/docs/md045.md +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/docs/md046.md +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/docs/md047.md +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/docs/md048.md +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/docs/md049.md +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/docs/md050.md +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/docs/md051.md +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/docs/md052.md +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/docs/md053.md +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/docs/md054.md +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/docs/md055.md +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/docs/md056.md +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/docs/md057.md +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/docs/md058.md +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/docs/vscode-extension.md +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/parity_check.py +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/pyproject.toml +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/python/MANIFEST.in +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/python/PYTHON-README.md +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/python/rumdl/__init__.py +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/python/rumdl/__main__.py +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/python/rumdl/py.typed +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/rumdl.toml.example +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/rust-toolchain.toml +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/scripts/extract-changelog.sh +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/scripts/generate-downloads-table.sh +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/scripts/pre-release.sh +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/scripts/prepare-release.sh +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/scripts/setup-pre-commit.sh +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/scripts/update-pre-commit-docs.sh +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/exit_codes.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/inline_config.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/lib.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/lint_context.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/lsp/mod.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/lsp/server.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/lsp/types.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/markdownlint_config.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/output/formatters/azure.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/output/formatters/concise.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/output/formatters/github.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/output/formatters/gitlab.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/output/formatters/grouped.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/output/formatters/json.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/output/formatters/json_lines.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/output/formatters/junit.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/output/formatters/mod.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/output/formatters/pylint.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/output/formatters/sarif.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/output/formatters/text.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/output/mod.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/parallel.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/performance.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/profiling.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/python.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rule.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rule_config.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rule_config_serde.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/blockquote_utils.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/code_block_utils.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/code_fence_utils.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/emphasis_style.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/front_matter_utils.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/heading_utils.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/list_utils.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/md001_heading_increment.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/md002_first_heading_h1/md002_config.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/md002_first_heading_h1.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/md003_heading_style/md003_config.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/md003_heading_style.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/md004_unordered_list_style/md004_config.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/md004_unordered_list_style.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/md005_list_indent.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/md006_start_bullets.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/md007_ul_indent/md007_config.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/md007_ul_indent.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/md009_trailing_spaces/md009_config.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/md009_trailing_spaces.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/md010_no_hard_tabs/md010_config.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/md010_no_hard_tabs.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/md011_no_reversed_links.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/md012_no_multiple_blanks/md012_config.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/md012_no_multiple_blanks.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/md013_line_length/md013_config.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/md013_line_length.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/md014_commands_show_output/md014_config.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/md014_commands_show_output.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/md018_no_missing_space_atx.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/md019_no_multiple_space_atx.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/md020_no_missing_space_closed_atx.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/md021_no_multiple_space_closed_atx.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/md022_blanks_around_headings/md022_config.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/md022_blanks_around_headings.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/md023_heading_start_left.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/md024_no_duplicate_heading/md024_config.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/md024_no_duplicate_heading.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/md025_single_title/md025_config.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/md025_single_title.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/md026_no_trailing_punctuation/md026_config.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/md026_no_trailing_punctuation.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/md027_multiple_spaces_blockquote.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/md028_no_blanks_blockquote.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/md029_ordered_list_prefix/md029_config.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/md029_ordered_list_prefix.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/md030_list_marker_space/md030_config.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/md030_list_marker_space.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/md031_blanks_around_fences.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/md032_blanks_around_lists.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/md033_no_inline_html/md033_config.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/md033_no_inline_html.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/md034_no_bare_urls.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/md035_hr_style/md035_config.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/md035_hr_style.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/md036_no_emphasis_only_first/md036_config.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/md036_no_emphasis_only_first.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/md037_spaces_around_emphasis.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/md038_no_space_in_code.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/md039_no_space_in_links.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/md040_fenced_code_language.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/md041_first_line_heading.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/md042_no_empty_links.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/md043_required_headings.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/md044_proper_names/md044_config.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/md044_proper_names.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/md045_no_alt_text/md045_config.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/md045_no_alt_text.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/md046_code_block_style/md046_config.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/md046_code_block_style.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/md047_single_trailing_newline.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/md048_code_fence_style/md048_config.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/md048_code_fence_style.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/md049_emphasis_style/md049_config.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/md049_emphasis_style.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/md050_strong_style/md050_config.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/md050_strong_style.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/md051_link_fragments.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/md052_reference_links_images.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/md053_link_image_reference_definitions.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/md054_link_image_style/md054_config.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/md054_link_image_style.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/md055_table_pipe_style/md055_config.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/md055_table_pipe_style.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/md056_table_column_count.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/md057_existing_relative_links/md057_config.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/md057_existing_relative_links.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/md058_blanks_around_tables.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/mod.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/rules/strong_style.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/utils/anchor_styles/github.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/utils/anchor_styles/jekyll.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/utils/anchor_styles/kramdown.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/utils/anchor_styles/kramdown_gfm.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/utils/anchor_styles/mod.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/utils/ast_utils.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/utils/code_block_utils.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/utils/document_structure.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/utils/early_returns.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/utils/element_cache.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/utils/emphasis_utils.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/utils/fix_utils.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/utils/header_id_utils.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/utils/kramdown_utils.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/utils/line_ending.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/utils/markdown_elements.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/utils/mkdocs_admonitions.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/utils/mkdocs_common.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/utils/mkdocs_critic.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/utils/mkdocs_footnotes.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/utils/mkdocs_patterns.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/utils/mkdocs_snippets.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/utils/mkdocs_tabs.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/utils/mkdocs_test_utils.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/utils/mkdocstrings_refs.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/utils/mod.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/utils/range_utils.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/utils/regex_cache.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/utils/skip_context.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/utils/string_interner.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/utils/table_utils.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/utils/text_reflow.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/src/vscode.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/advanced_integration_tests.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/character_ranges/additional_tests.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/character_ranges/basic_tests.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/character_ranges/comprehensive_tests.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/character_ranges/extended_tests.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/character_ranges/mod.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/character_ranges/unicode_utils.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/cli_duplication_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/cli_explain_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/cli_flag_precedence_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/cli_lsp_fix_consistency.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/cli_statistics_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/common/cli_test_utils.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/common/fixtures.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/common/mod.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/common/test_utils.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/commonmark_compliance_tests.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/comprehensive_integration_tests.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/comprehensive_output_format_tests.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/config_application_tests.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/config_file_command_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/config_tests.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/config_upward_traversal_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/configuration_inheritance_tests.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/consistency_regression_tests.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/cross_platform_compatibility_tests.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/deeply_nested_lists_performance_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/escaped_brackets_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/final_confidence_assessment.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/fixable_unfixable_config_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/init_command_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/init_tests.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/inline_config_blocks_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/inline_config_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/integration_tests.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/json_output_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/kramdown_integration_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/lib.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/lsp_editor_integration_tests.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/lsp_formatting_tests.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/lsp_initialization_options_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/lsp_integration_tests.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/lsp_memory_leak_tests.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/lsp_mkdocs_flavor_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/lsp_tests.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/malformed_markdown_stress_tests.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/markdownlint_cli_integration.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/markdownlint_config_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/markdownlintignore_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/md013_reflow_integration_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/md051_issue_39_regression_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/nested_code_block_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/output_format_integration_tests.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/output_format_tests.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/perf_check.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/performance_validation_tests.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/pyproject_config_tests.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/python_bindings_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/real_world_repository_tests.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/regression_prevention_tests.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/emphasis_edge_cases_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/heading_edge_cases_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/inline_content_edge_cases_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/link_edge_cases_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/list_rules_integration_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/md001_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/md001_unicode_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/md002_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/md003_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/md004_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/md005_dynamic_indent_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/md005_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/md005_unicode_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/md006_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/md006_unicode_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/md007_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/md009_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/md010_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/md011_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/md012_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/md013_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/md014_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/md018_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/md019_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/md020_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/md021_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/md022_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/md023_extended_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/md023_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/md024_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/md025_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/md026_kramdown_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/md026_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/md027_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/md028_md009_interaction_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/md028_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/md029_code_block_separation_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/md029_fix_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/md029_issue42_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/md029_markdownlint_parity_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/md029_pathological_edge_cases_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/md029_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/md029_unicode_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/md030_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/md031_kramdown_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/md031_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/md032_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/md033_extended_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/md033_kramdown_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/md033_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/md034_ipv6_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/md034_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/md035_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/md036_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/md037_kramdown_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/md037_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/md038_nested_backticks_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/md038_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/md039_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/md040_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/md041_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/md042_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/md043_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/md044_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/md045_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/md046_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/md047_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/md048_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/md049_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/md050_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/md051_comprehensive_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/md051_critical_edge_cases_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/md051_edge_cases_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/md051_issue_39_regression_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/md051_performance_edge_cases_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/md051_property_based_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/md051_regression_prevention_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/md051_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/md051_unicode_security_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/md052_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/md053_additional_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/md053_proptest.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/md053_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/md054_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/md054_unicode_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/md055_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/md056_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/md057_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/md058_kramdown_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/md058_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/mkdocs_admonitions_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/mkdocs_edge_cases_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/mkdocs_extensions_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/mkdocs_snippets_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/mod.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules/rule_interaction_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/rules_mod_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/skip_context_tests.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/test_underscore_edge_cases.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/thread_safety_tests.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/unfixable_rules_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/unicode_edge_case_tests.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/utils/blockquote_utils_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/utils/code_block_utils_extended_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/utils/code_block_utils_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/utils/core_utils_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/utils/front_matter_utils_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/utils/line_index_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/utils/mod.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/utils_markdown_edge_cases.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/utils_tests.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/vscode_extension_fixes.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/vscode_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/vscode_tests.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/vscode_windows_comprehensive_test.rs +0 -0
- {rumdl-0.0.134 → rumdl-0.0.135}/tests/vscode_windows_test.rs +0 -0
|
@@ -7,6 +7,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.0.135] - 2025-09-03
|
|
11
|
+
|
|
10
12
|
## [0.0.134] - 2025-09-02
|
|
11
13
|
|
|
12
14
|
### Added
|
|
@@ -558,7 +560,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
558
560
|
|
|
559
561
|
- Initial implementation of remaining rules for markdownlint parity
|
|
560
562
|
|
|
561
|
-
[Unreleased]: https://github.com/rvben/rumdl/compare/v0.0.
|
|
563
|
+
[Unreleased]: https://github.com/rvben/rumdl/compare/v0.0.135...HEAD
|
|
564
|
+
[0.0.135]: https://github.com/rvben/rumdl/compare/v0.0.134...v0.0.135
|
|
562
565
|
[0.0.134]: https://github.com/rvben/rumdl/compare/v0.0.133...v0.0.134
|
|
563
566
|
[0.0.133]: https://github.com/rvben/rumdl/compare/v0.0.132...v0.0.133
|
|
564
567
|
[0.0.132]: https://github.com/rvben/rumdl/compare/v0.0.131...v0.0.132
|
|
@@ -278,9 +278,9 @@ dependencies = [
|
|
|
278
278
|
|
|
279
279
|
[[package]]
|
|
280
280
|
name = "clap"
|
|
281
|
-
version = "4.5.
|
|
281
|
+
version = "4.5.47"
|
|
282
282
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
283
|
-
checksum = "
|
|
283
|
+
checksum = "7eac00902d9d136acd712710d71823fb8ac8004ca445a89e73a41d45aa712931"
|
|
284
284
|
dependencies = [
|
|
285
285
|
"clap_builder",
|
|
286
286
|
"clap_derive",
|
|
@@ -288,9 +288,9 @@ dependencies = [
|
|
|
288
288
|
|
|
289
289
|
[[package]]
|
|
290
290
|
name = "clap_builder"
|
|
291
|
-
version = "4.5.
|
|
291
|
+
version = "4.5.47"
|
|
292
292
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
293
|
-
checksum = "
|
|
293
|
+
checksum = "2ad9bbf750e73b5884fb8a211a9424a1906c1e156724260fdae972f31d70e1d6"
|
|
294
294
|
dependencies = [
|
|
295
295
|
"anstream",
|
|
296
296
|
"anstyle",
|
|
@@ -300,9 +300,9 @@ dependencies = [
|
|
|
300
300
|
|
|
301
301
|
[[package]]
|
|
302
302
|
name = "clap_derive"
|
|
303
|
-
version = "4.5.
|
|
303
|
+
version = "4.5.47"
|
|
304
304
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
305
|
-
checksum = "
|
|
305
|
+
checksum = "bbfd7eae0b0f1a6e63d4b13c9c478de77c2eb546fba158ad50b4203dc24b9f9c"
|
|
306
306
|
dependencies = [
|
|
307
307
|
"heck",
|
|
308
308
|
"proc-macro2",
|
|
@@ -1632,7 +1632,7 @@ checksum = "caf4aa5b0f434c91fe5c7f1ecb6a5ece2130b02ad2a590589dda5146df959001"
|
|
|
1632
1632
|
|
|
1633
1633
|
[[package]]
|
|
1634
1634
|
name = "rumdl"
|
|
1635
|
-
version = "0.0.
|
|
1635
|
+
version = "0.0.135"
|
|
1636
1636
|
dependencies = [
|
|
1637
1637
|
"anyhow",
|
|
1638
1638
|
"assert_cmd",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: rumdl
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.135
|
|
4
4
|
Classifier: Development Status :: 4 - Beta
|
|
5
5
|
Classifier: Environment :: Console
|
|
6
6
|
Classifier: Intended Audience :: Developers
|
|
@@ -34,11 +34,8 @@ Project-URL: Repository, https://github.com/rvben/rumdl.git
|
|
|
34
34
|

|
|
35
35
|
|
|
36
36
|
[](https://github.com/rvben/rumdl/actions)
|
|
37
|
-
[](https://opensource.org/licenses/MIT)
|
|
38
|
-
[](https://pypi.org/project/rumdl/)
|
|
40
|
-
[](https://github.com/rvben/rumdl/releases/latest)
|
|
41
|
-
[](https://github.com/rvben/rumdl/stargazers)
|
|
37
|
+
[](https://opensource.org/licenses/MIT) [](https://crates.io/crates/rumdl)
|
|
38
|
+
[](https://pypi.org/project/rumdl/) [](https://github.com/rvben/rumdl/releases/latest) [](https://github.com/rvben/rumdl/stargazers)
|
|
42
39
|
|
|
43
40
|
## A modern Markdown linter and formatter, built for speed with Rust
|
|
44
41
|
|
|
@@ -65,9 +62,8 @@ rumdl init
|
|
|
65
62
|
|
|
66
63
|
## Overview
|
|
67
64
|
|
|
68
|
-
rumdl is a high-performance Markdown linter and formatter that helps ensure consistency and best practices
|
|
69
|
-
|
|
70
|
-
rumdl brings similar speed and developer experience improvements to the Markdown ecosystem.
|
|
65
|
+
rumdl is a high-performance Markdown linter and formatter that helps ensure consistency and best practices in your Markdown files. Inspired by [ruff](https://github.com/astral-sh/ruff) 's approach to
|
|
66
|
+
Python linting, rumdl brings similar speed and developer experience improvements to the Markdown ecosystem.
|
|
71
67
|
|
|
72
68
|
It offers:
|
|
73
69
|
|
|
@@ -206,7 +202,8 @@ The extension provides:
|
|
|
206
202
|
- 📋 Hover tooltips with rule documentation
|
|
207
203
|
- ⚡ Lightning-fast performance with zero lag
|
|
208
204
|
|
|
209
|
-
The CLI will automatically detect VS Code, Cursor, or Windsurf and install the appropriate extension. See the
|
|
205
|
+
The CLI will automatically detect VS Code, Cursor, or Windsurf and install the appropriate extension. See the
|
|
206
|
+
[VS Code extension documentation](https://github.com/rvben/rumdl/blob/main/docs/vscode-extension.md) for more details.
|
|
210
207
|
|
|
211
208
|
## Usage
|
|
212
209
|
|
|
@@ -252,6 +249,9 @@ rumdl check --include "docs/**/*.md" --exclude "docs/temp,docs/drafts" .
|
|
|
252
249
|
|
|
253
250
|
# Don't respect gitignore files (note: --respect-gitignore defaults to true)
|
|
254
251
|
rumdl check --respect-gitignore=false .
|
|
252
|
+
|
|
253
|
+
# Force exclude patterns even for explicitly specified files (useful for pre-commit)
|
|
254
|
+
rumdl check excluded.md --force-exclude # Will respect exclude patterns in config
|
|
255
255
|
```
|
|
256
256
|
|
|
257
257
|
### Stdin/Stdout Formatting
|
|
@@ -313,6 +313,33 @@ repos:
|
|
|
313
313
|
|
|
314
314
|
When you run `pre-commit install` or `pre-commit run`, pre-commit will automatically install `rumdl` in an isolated Python environment using pip. You do **not** need to install rumdl manually.
|
|
315
315
|
|
|
316
|
+
### Excluding Files in Pre-commit
|
|
317
|
+
|
|
318
|
+
By default, when pre-commit passes files explicitly to rumdl, the exclude patterns in your `.rumdl.toml` configuration file are ignored. This is intentional behavior - if you explicitly specify a
|
|
319
|
+
file, it gets checked.
|
|
320
|
+
|
|
321
|
+
However, for pre-commit workflows where you want to exclude certain files even when they're passed explicitly, you have two options:
|
|
322
|
+
|
|
323
|
+
1. **Use `force_exclude` in your configuration file:**
|
|
324
|
+
|
|
325
|
+
```toml
|
|
326
|
+
# .rumdl.toml
|
|
327
|
+
[global]
|
|
328
|
+
exclude = ["generated/*.md", "vendor/**"]
|
|
329
|
+
force_exclude = true # Enforce excludes even for explicitly provided files
|
|
330
|
+
```
|
|
331
|
+
|
|
332
|
+
2. **Use the `--force-exclude` flag in your pre-commit config:**
|
|
333
|
+
|
|
334
|
+
```yaml
|
|
335
|
+
repos:
|
|
336
|
+
- repo: https://github.com/rvben/rumdl-pre-commit
|
|
337
|
+
rev: v0.0.99
|
|
338
|
+
hooks:
|
|
339
|
+
- id: rumdl
|
|
340
|
+
args: [--force-exclude] # Respect exclude patterns from config
|
|
341
|
+
```
|
|
342
|
+
|
|
316
343
|
## CI/CD Integration
|
|
317
344
|
|
|
318
345
|
### GitHub Actions
|
|
@@ -373,6 +400,7 @@ Lint Markdown files and print warnings/errors (main subcommand)
|
|
|
373
400
|
- `--exclude <patterns>`: Exclude specific files or directories (comma-separated glob patterns)
|
|
374
401
|
- `--include <patterns>`: Include only specific files or directories (comma-separated glob patterns)
|
|
375
402
|
- `--respect-gitignore`: Respect .gitignore files when scanning directories (does not apply to explicitly provided paths)
|
|
403
|
+
- `--force-exclude`: Enforce exclude patterns even for explicitly specified files (useful for pre-commit hooks)
|
|
376
404
|
- `-v, --verbose`: Show detailed output
|
|
377
405
|
- `--profile`: Show profiling information
|
|
378
406
|
- `--statistics`: Show rule violation statistics summary
|
|
@@ -569,9 +597,8 @@ rumdl can be configured in several ways:
|
|
|
569
597
|
|
|
570
598
|
### Configuration Discovery
|
|
571
599
|
|
|
572
|
-
rumdl automatically searches for configuration files by traversing up the directory tree from the current
|
|
573
|
-
|
|
574
|
-
subdirectory of your project and it will find the configuration file at the project root.
|
|
600
|
+
rumdl automatically searches for configuration files by traversing up the directory tree from the current working directory, similar to tools like `git` , `ruff` , and `eslint` . This means you can
|
|
601
|
+
run rumdl from any subdirectory of your project and it will find the configuration file at the project root.
|
|
575
602
|
|
|
576
603
|
The search follows these rules:
|
|
577
604
|
- Searches upward for `.rumdl.toml`, `rumdl.toml`, or `pyproject.toml` (with `[tool.rumdl]` section)
|
|
@@ -624,13 +651,13 @@ indent = 2
|
|
|
624
651
|
|
|
625
652
|
rumdl provides seamless compatibility with existing markdownlint configurations:
|
|
626
653
|
|
|
627
|
-
**Automatic Discovery**: rumdl automatically detects and loads markdownlint config files:
|
|
654
|
+
** Automatic Discovery**: rumdl automatically detects and loads markdownlint config files:
|
|
628
655
|
|
|
629
656
|
- `.markdownlint.json` / `.markdownlint.jsonc`
|
|
630
657
|
- `.markdownlint.yaml` / `.markdownlint.yml`
|
|
631
658
|
- `markdownlint.json` / `markdownlint.yaml`
|
|
632
659
|
|
|
633
|
-
**Explicit Import**: Convert markdownlint configs to rumdl format:
|
|
660
|
+
** Explicit Import**: Convert markdownlint configs to rumdl format:
|
|
634
661
|
|
|
635
662
|
```bash
|
|
636
663
|
# Convert to .rumdl.toml
|
|
@@ -718,8 +745,8 @@ Both kebab-case (`line-length`, `ignore-gitignore`) and snake_case (`line_length
|
|
|
718
745
|
|
|
719
746
|
#### Effective Configuration (`rumdl config`)
|
|
720
747
|
|
|
721
|
-
The `rumdl config` command prints the **full effective configuration** (defaults + all overrides), showing every key and its value, annotated with the source of each value.
|
|
722
|
-
|
|
748
|
+
The `rumdl config` command prints the **full effective configuration** (defaults + all overrides), showing every key and its value, annotated with the source of each value. The output is colorized and
|
|
749
|
+
the `[from ...]` annotation is globally aligned for easy scanning.
|
|
723
750
|
|
|
724
751
|
#### Example output
|
|
725
752
|
|
|
@@ -736,7 +763,7 @@ The output is colorized and the `[from ...]` annotation is globally aligned for
|
|
|
736
763
|
...
|
|
737
764
|
```
|
|
738
765
|
|
|
739
|
-
- **Keys** are cyan, **values** are yellow, and the `[from ...]` annotation is colored by source:
|
|
766
|
+
- ** Keys** are cyan, **values** are yellow, and the `[from ...]` annotation is colored by source:
|
|
740
767
|
- Green: CLI
|
|
741
768
|
- Blue: `.rumdl.toml`
|
|
742
769
|
- Magenta: `pyproject.toml`
|
|
@@ -754,6 +781,7 @@ disable = []
|
|
|
754
781
|
exclude = []
|
|
755
782
|
include = []
|
|
756
783
|
respect_gitignore = true
|
|
784
|
+
force_exclude = false # Set to true to exclude files even when explicitly specified
|
|
757
785
|
|
|
758
786
|
[MD013]
|
|
759
787
|
line_length = 80
|
|
@@ -5,11 +5,8 @@
|
|
|
5
5
|

|
|
6
6
|
|
|
7
7
|
[](https://github.com/rvben/rumdl/actions)
|
|
8
|
-
[](https://opensource.org/licenses/MIT)
|
|
9
|
-
[](https://pypi.org/project/rumdl/)
|
|
11
|
-
[](https://github.com/rvben/rumdl/releases/latest)
|
|
12
|
-
[](https://github.com/rvben/rumdl/stargazers)
|
|
8
|
+
[](https://opensource.org/licenses/MIT) [](https://crates.io/crates/rumdl)
|
|
9
|
+
[](https://pypi.org/project/rumdl/) [](https://github.com/rvben/rumdl/releases/latest) [](https://github.com/rvben/rumdl/stargazers)
|
|
13
10
|
|
|
14
11
|
## A modern Markdown linter and formatter, built for speed with Rust
|
|
15
12
|
|
|
@@ -36,9 +33,8 @@ rumdl init
|
|
|
36
33
|
|
|
37
34
|
## Overview
|
|
38
35
|
|
|
39
|
-
rumdl is a high-performance Markdown linter and formatter that helps ensure consistency and best practices
|
|
40
|
-
|
|
41
|
-
rumdl brings similar speed and developer experience improvements to the Markdown ecosystem.
|
|
36
|
+
rumdl is a high-performance Markdown linter and formatter that helps ensure consistency and best practices in your Markdown files. Inspired by [ruff](https://github.com/astral-sh/ruff) 's approach to
|
|
37
|
+
Python linting, rumdl brings similar speed and developer experience improvements to the Markdown ecosystem.
|
|
42
38
|
|
|
43
39
|
It offers:
|
|
44
40
|
|
|
@@ -177,7 +173,8 @@ The extension provides:
|
|
|
177
173
|
- 📋 Hover tooltips with rule documentation
|
|
178
174
|
- ⚡ Lightning-fast performance with zero lag
|
|
179
175
|
|
|
180
|
-
The CLI will automatically detect VS Code, Cursor, or Windsurf and install the appropriate extension. See the
|
|
176
|
+
The CLI will automatically detect VS Code, Cursor, or Windsurf and install the appropriate extension. See the
|
|
177
|
+
[VS Code extension documentation](https://github.com/rvben/rumdl/blob/main/docs/vscode-extension.md) for more details.
|
|
181
178
|
|
|
182
179
|
## Usage
|
|
183
180
|
|
|
@@ -223,6 +220,9 @@ rumdl check --include "docs/**/*.md" --exclude "docs/temp,docs/drafts" .
|
|
|
223
220
|
|
|
224
221
|
# Don't respect gitignore files (note: --respect-gitignore defaults to true)
|
|
225
222
|
rumdl check --respect-gitignore=false .
|
|
223
|
+
|
|
224
|
+
# Force exclude patterns even for explicitly specified files (useful for pre-commit)
|
|
225
|
+
rumdl check excluded.md --force-exclude # Will respect exclude patterns in config
|
|
226
226
|
```
|
|
227
227
|
|
|
228
228
|
### Stdin/Stdout Formatting
|
|
@@ -284,6 +284,33 @@ repos:
|
|
|
284
284
|
|
|
285
285
|
When you run `pre-commit install` or `pre-commit run`, pre-commit will automatically install `rumdl` in an isolated Python environment using pip. You do **not** need to install rumdl manually.
|
|
286
286
|
|
|
287
|
+
### Excluding Files in Pre-commit
|
|
288
|
+
|
|
289
|
+
By default, when pre-commit passes files explicitly to rumdl, the exclude patterns in your `.rumdl.toml` configuration file are ignored. This is intentional behavior - if you explicitly specify a
|
|
290
|
+
file, it gets checked.
|
|
291
|
+
|
|
292
|
+
However, for pre-commit workflows where you want to exclude certain files even when they're passed explicitly, you have two options:
|
|
293
|
+
|
|
294
|
+
1. **Use `force_exclude` in your configuration file:**
|
|
295
|
+
|
|
296
|
+
```toml
|
|
297
|
+
# .rumdl.toml
|
|
298
|
+
[global]
|
|
299
|
+
exclude = ["generated/*.md", "vendor/**"]
|
|
300
|
+
force_exclude = true # Enforce excludes even for explicitly provided files
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
2. **Use the `--force-exclude` flag in your pre-commit config:**
|
|
304
|
+
|
|
305
|
+
```yaml
|
|
306
|
+
repos:
|
|
307
|
+
- repo: https://github.com/rvben/rumdl-pre-commit
|
|
308
|
+
rev: v0.0.99
|
|
309
|
+
hooks:
|
|
310
|
+
- id: rumdl
|
|
311
|
+
args: [--force-exclude] # Respect exclude patterns from config
|
|
312
|
+
```
|
|
313
|
+
|
|
287
314
|
## CI/CD Integration
|
|
288
315
|
|
|
289
316
|
### GitHub Actions
|
|
@@ -344,6 +371,7 @@ Lint Markdown files and print warnings/errors (main subcommand)
|
|
|
344
371
|
- `--exclude <patterns>`: Exclude specific files or directories (comma-separated glob patterns)
|
|
345
372
|
- `--include <patterns>`: Include only specific files or directories (comma-separated glob patterns)
|
|
346
373
|
- `--respect-gitignore`: Respect .gitignore files when scanning directories (does not apply to explicitly provided paths)
|
|
374
|
+
- `--force-exclude`: Enforce exclude patterns even for explicitly specified files (useful for pre-commit hooks)
|
|
347
375
|
- `-v, --verbose`: Show detailed output
|
|
348
376
|
- `--profile`: Show profiling information
|
|
349
377
|
- `--statistics`: Show rule violation statistics summary
|
|
@@ -540,9 +568,8 @@ rumdl can be configured in several ways:
|
|
|
540
568
|
|
|
541
569
|
### Configuration Discovery
|
|
542
570
|
|
|
543
|
-
rumdl automatically searches for configuration files by traversing up the directory tree from the current
|
|
544
|
-
|
|
545
|
-
subdirectory of your project and it will find the configuration file at the project root.
|
|
571
|
+
rumdl automatically searches for configuration files by traversing up the directory tree from the current working directory, similar to tools like `git` , `ruff` , and `eslint` . This means you can
|
|
572
|
+
run rumdl from any subdirectory of your project and it will find the configuration file at the project root.
|
|
546
573
|
|
|
547
574
|
The search follows these rules:
|
|
548
575
|
- Searches upward for `.rumdl.toml`, `rumdl.toml`, or `pyproject.toml` (with `[tool.rumdl]` section)
|
|
@@ -595,13 +622,13 @@ indent = 2
|
|
|
595
622
|
|
|
596
623
|
rumdl provides seamless compatibility with existing markdownlint configurations:
|
|
597
624
|
|
|
598
|
-
**Automatic Discovery**: rumdl automatically detects and loads markdownlint config files:
|
|
625
|
+
** Automatic Discovery**: rumdl automatically detects and loads markdownlint config files:
|
|
599
626
|
|
|
600
627
|
- `.markdownlint.json` / `.markdownlint.jsonc`
|
|
601
628
|
- `.markdownlint.yaml` / `.markdownlint.yml`
|
|
602
629
|
- `markdownlint.json` / `markdownlint.yaml`
|
|
603
630
|
|
|
604
|
-
**Explicit Import**: Convert markdownlint configs to rumdl format:
|
|
631
|
+
** Explicit Import**: Convert markdownlint configs to rumdl format:
|
|
605
632
|
|
|
606
633
|
```bash
|
|
607
634
|
# Convert to .rumdl.toml
|
|
@@ -689,8 +716,8 @@ Both kebab-case (`line-length`, `ignore-gitignore`) and snake_case (`line_length
|
|
|
689
716
|
|
|
690
717
|
#### Effective Configuration (`rumdl config`)
|
|
691
718
|
|
|
692
|
-
The `rumdl config` command prints the **full effective configuration** (defaults + all overrides), showing every key and its value, annotated with the source of each value.
|
|
693
|
-
|
|
719
|
+
The `rumdl config` command prints the **full effective configuration** (defaults + all overrides), showing every key and its value, annotated with the source of each value. The output is colorized and
|
|
720
|
+
the `[from ...]` annotation is globally aligned for easy scanning.
|
|
694
721
|
|
|
695
722
|
#### Example output
|
|
696
723
|
|
|
@@ -707,7 +734,7 @@ The output is colorized and the `[from ...]` annotation is globally aligned for
|
|
|
707
734
|
...
|
|
708
735
|
```
|
|
709
736
|
|
|
710
|
-
- **Keys** are cyan, **values** are yellow, and the `[from ...]` annotation is colored by source:
|
|
737
|
+
- ** Keys** are cyan, **values** are yellow, and the `[from ...]` annotation is colored by source:
|
|
711
738
|
- Green: CLI
|
|
712
739
|
- Blue: `.rumdl.toml`
|
|
713
740
|
- Magenta: `pyproject.toml`
|
|
@@ -725,6 +752,7 @@ disable = []
|
|
|
725
752
|
exclude = []
|
|
726
753
|
include = []
|
|
727
754
|
respect_gitignore = true
|
|
755
|
+
force_exclude = false # Set to true to exclude files even when explicitly specified
|
|
728
756
|
|
|
729
757
|
[MD013]
|
|
730
758
|
line_length = 80
|
|
@@ -174,6 +174,13 @@ pub struct GlobalConfig {
|
|
|
174
174
|
/// When set, adjusts parsing and validation rules for that specific Markdown variant
|
|
175
175
|
#[serde(default)]
|
|
176
176
|
pub flavor: MarkdownFlavor,
|
|
177
|
+
|
|
178
|
+
/// Whether to enforce exclude and extend-exclude patterns even for paths that are passed explicitly.
|
|
179
|
+
/// By default (false), rumdl will lint any paths passed in directly, even if they would typically be excluded.
|
|
180
|
+
/// Setting this to true will cause rumdl to respect exclusions unequivocally.
|
|
181
|
+
/// This is useful for pre-commit, which explicitly passes all changed files.
|
|
182
|
+
#[serde(default)]
|
|
183
|
+
pub force_exclude: bool,
|
|
177
184
|
}
|
|
178
185
|
|
|
179
186
|
fn default_respect_gitignore() -> bool {
|
|
@@ -198,6 +205,7 @@ impl Default for GlobalConfig {
|
|
|
198
205
|
fixable: Vec::new(),
|
|
199
206
|
unfixable: Vec::new(),
|
|
200
207
|
flavor: MarkdownFlavor::default(),
|
|
208
|
+
force_exclude: false,
|
|
201
209
|
}
|
|
202
210
|
}
|
|
203
211
|
}
|
|
@@ -1115,6 +1123,7 @@ pub struct SourcedGlobalConfig {
|
|
|
1115
1123
|
pub fixable: SourcedValue<Vec<String>>,
|
|
1116
1124
|
pub unfixable: SourcedValue<Vec<String>>,
|
|
1117
1125
|
pub flavor: SourcedValue<MarkdownFlavor>,
|
|
1126
|
+
pub force_exclude: SourcedValue<bool>,
|
|
1118
1127
|
}
|
|
1119
1128
|
|
|
1120
1129
|
impl Default for SourcedGlobalConfig {
|
|
@@ -1130,6 +1139,7 @@ impl Default for SourcedGlobalConfig {
|
|
|
1130
1139
|
fixable: SourcedValue::new(Vec::new(), ConfigSource::Default),
|
|
1131
1140
|
unfixable: SourcedValue::new(Vec::new(), ConfigSource::Default),
|
|
1132
1141
|
flavor: SourcedValue::new(MarkdownFlavor::default(), ConfigSource::Default),
|
|
1142
|
+
force_exclude: SourcedValue::new(false, ConfigSource::Default),
|
|
1133
1143
|
}
|
|
1134
1144
|
}
|
|
1135
1145
|
}
|
|
@@ -1228,6 +1238,19 @@ impl SourcedConfig {
|
|
|
1228
1238
|
fragment.global.flavor.overrides.first().and_then(|o| o.line),
|
|
1229
1239
|
);
|
|
1230
1240
|
|
|
1241
|
+
// Merge force_exclude
|
|
1242
|
+
self.global.force_exclude.merge_override(
|
|
1243
|
+
fragment.global.force_exclude.value,
|
|
1244
|
+
fragment.global.force_exclude.source,
|
|
1245
|
+
fragment
|
|
1246
|
+
.global
|
|
1247
|
+
.force_exclude
|
|
1248
|
+
.overrides
|
|
1249
|
+
.first()
|
|
1250
|
+
.and_then(|o| o.file.clone()),
|
|
1251
|
+
fragment.global.force_exclude.overrides.first().and_then(|o| o.line),
|
|
1252
|
+
);
|
|
1253
|
+
|
|
1231
1254
|
// Merge output_format if present
|
|
1232
1255
|
if let Some(output_format_fragment) = fragment.global.output_format {
|
|
1233
1256
|
if let Some(ref mut output_format) = self.global.output_format {
|
|
@@ -1608,6 +1631,7 @@ impl From<SourcedConfig> for Config {
|
|
|
1608
1631
|
fixable: sourced.global.fixable.value,
|
|
1609
1632
|
unfixable: sourced.global.unfixable.value,
|
|
1610
1633
|
flavor: sourced.global.flavor.value,
|
|
1634
|
+
force_exclude: sourced.global.force_exclude.value,
|
|
1611
1635
|
};
|
|
1612
1636
|
Config { global, rules }
|
|
1613
1637
|
}
|
|
@@ -1886,6 +1910,15 @@ fn parse_pyproject_toml(content: &str, path: &str) -> Result<Option<SourcedConfi
|
|
|
1886
1910
|
.push_override(value, source, file.clone(), None);
|
|
1887
1911
|
}
|
|
1888
1912
|
|
|
1913
|
+
if let Some(force_exclude) = table.get("force-exclude").or_else(|| table.get("force_exclude"))
|
|
1914
|
+
&& let Ok(value) = bool::deserialize(force_exclude.clone())
|
|
1915
|
+
{
|
|
1916
|
+
fragment
|
|
1917
|
+
.global
|
|
1918
|
+
.force_exclude
|
|
1919
|
+
.push_override(value, source, file.clone(), None);
|
|
1920
|
+
}
|
|
1921
|
+
|
|
1889
1922
|
if let Some(output_format) = table.get("output-format").or_else(|| table.get("output_format"))
|
|
1890
1923
|
&& let Ok(value) = String::deserialize(output_format.clone())
|
|
1891
1924
|
{
|
|
@@ -1968,6 +2001,8 @@ fn parse_pyproject_toml(content: &str, path: &str) -> Result<Option<SourcedConfi
|
|
|
1968
2001
|
"exclude",
|
|
1969
2002
|
"respect_gitignore",
|
|
1970
2003
|
"respect-gitignore", // Added kebab-case here too
|
|
2004
|
+
"force_exclude",
|
|
2005
|
+
"force-exclude",
|
|
1971
2006
|
"line_length",
|
|
1972
2007
|
"line-length",
|
|
1973
2008
|
"output_format",
|
|
@@ -2167,6 +2202,23 @@ fn parse_rumdl_toml(content: &str, path: &str) -> Result<SourcedConfigFragment,
|
|
|
2167
2202
|
);
|
|
2168
2203
|
}
|
|
2169
2204
|
}
|
|
2205
|
+
"force_exclude" | "force-exclude" => {
|
|
2206
|
+
// Handle both cases
|
|
2207
|
+
if let Some(toml_edit::Value::Boolean(formatted_bool)) = value_item.as_value() {
|
|
2208
|
+
let val = *formatted_bool.value();
|
|
2209
|
+
fragment
|
|
2210
|
+
.global
|
|
2211
|
+
.force_exclude
|
|
2212
|
+
.push_override(val, source, file.clone(), None);
|
|
2213
|
+
} else {
|
|
2214
|
+
log::warn!(
|
|
2215
|
+
"[WARN] Expected boolean for global key '{}' in {}, found {}",
|
|
2216
|
+
key,
|
|
2217
|
+
path,
|
|
2218
|
+
value_item.type_name()
|
|
2219
|
+
);
|
|
2220
|
+
}
|
|
2221
|
+
}
|
|
2170
2222
|
"line_length" | "line-length" => {
|
|
2171
2223
|
// Handle both cases
|
|
2172
2224
|
if let Some(toml_edit::Value::Integer(formatted_int)) = value_item.as_value() {
|
|
@@ -300,6 +300,13 @@ struct CheckArgs {
|
|
|
300
300
|
/// Run in watch mode by re-running whenever files change
|
|
301
301
|
#[arg(short, long, help = "Run in watch mode by re-running whenever files change")]
|
|
302
302
|
watch: bool,
|
|
303
|
+
|
|
304
|
+
/// Enforce exclude patterns even for paths that are passed explicitly.
|
|
305
|
+
/// By default, rumdl will lint any paths passed in directly, even if they would typically be excluded.
|
|
306
|
+
/// Setting this flag will cause rumdl to respect exclusions unequivocally.
|
|
307
|
+
/// This is useful for pre-commit, which explicitly passes all changed files.
|
|
308
|
+
#[arg(long, help = "Enforce exclude patterns even for explicitly specified files")]
|
|
309
|
+
force_exclude: bool,
|
|
303
310
|
}
|
|
304
311
|
|
|
305
312
|
// Get a complete set of enabled rules based on CLI options and config
|
|
@@ -591,12 +598,15 @@ fn find_markdown_files(
|
|
|
591
598
|
// --- Pre-check for explicit file paths ---
|
|
592
599
|
// If not in discovery mode, validate that specified paths exist
|
|
593
600
|
if !is_discovery_mode {
|
|
601
|
+
// Check if we should apply excludes to explicitly provided files
|
|
602
|
+
let should_force_exclude = args.force_exclude || config.global.force_exclude;
|
|
603
|
+
|
|
594
604
|
for path_str in paths {
|
|
595
605
|
let path = Path::new(path_str);
|
|
596
606
|
if !path.exists() {
|
|
597
607
|
return Err(format!("File not found: {path_str}").into());
|
|
598
608
|
}
|
|
599
|
-
// If it's a file, check if it's a markdown file
|
|
609
|
+
// If it's a file, check if it's a markdown file
|
|
600
610
|
if path.is_file()
|
|
601
611
|
&& let Some(ext) = path.extension()
|
|
602
612
|
&& (ext == "md" || ext == "markdown")
|
|
@@ -606,12 +616,37 @@ fn find_markdown_files(
|
|
|
606
616
|
} else {
|
|
607
617
|
path_str.clone()
|
|
608
618
|
};
|
|
609
|
-
|
|
619
|
+
|
|
620
|
+
// If force_exclude is enabled, check if this file should be excluded
|
|
621
|
+
if should_force_exclude && !final_exclude_patterns.is_empty() {
|
|
622
|
+
let mut should_exclude = false;
|
|
623
|
+
for pattern in &final_exclude_patterns {
|
|
624
|
+
// Use globset for pattern matching
|
|
625
|
+
if let Ok(glob) = globset::Glob::new(pattern) {
|
|
626
|
+
let matcher = glob.compile_matcher();
|
|
627
|
+
if matcher.is_match(&cleaned_path) {
|
|
628
|
+
should_exclude = true;
|
|
629
|
+
if args.verbose {
|
|
630
|
+
eprintln!(
|
|
631
|
+
"Excluding explicitly provided file due to force_exclude: {cleaned_path}"
|
|
632
|
+
);
|
|
633
|
+
}
|
|
634
|
+
break;
|
|
635
|
+
}
|
|
636
|
+
}
|
|
637
|
+
}
|
|
638
|
+
if !should_exclude {
|
|
639
|
+
file_paths.push(cleaned_path);
|
|
640
|
+
}
|
|
641
|
+
} else {
|
|
642
|
+
// Default behavior: add all explicitly provided files
|
|
643
|
+
file_paths.push(cleaned_path);
|
|
644
|
+
}
|
|
610
645
|
}
|
|
611
646
|
}
|
|
612
647
|
|
|
613
648
|
// If we found files directly, skip the walker
|
|
614
|
-
if !file_paths.is_empty() {
|
|
649
|
+
if !file_paths.is_empty() || should_force_exclude {
|
|
615
650
|
file_paths.sort();
|
|
616
651
|
file_paths.dedup();
|
|
617
652
|
return Ok(file_paths);
|