rumdl 0.0.92__tar.gz → 0.0.94__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.92 → rumdl-0.0.94}/CHANGELOG.md +26 -2
- {rumdl-0.0.92 → rumdl-0.0.94}/Cargo.lock +3 -3
- {rumdl-0.0.92 → rumdl-0.0.94}/Cargo.toml +1 -1
- {rumdl-0.0.92 → rumdl-0.0.94}/PKG-INFO +6 -4
- {rumdl-0.0.92 → rumdl-0.0.94}/README.md +5 -3
- {rumdl-0.0.92 → rumdl-0.0.94}/docs/global-settings.md +2 -1
- {rumdl-0.0.92 → rumdl-0.0.94}/docs/md003.md +29 -1
- {rumdl-0.0.92 → rumdl-0.0.94}/docs/md004.md +15 -1
- {rumdl-0.0.92 → rumdl-0.0.94}/docs/md007.md +29 -1
- {rumdl-0.0.92 → rumdl-0.0.94}/docs/md010.md +38 -2
- {rumdl-0.0.92 → rumdl-0.0.94}/docs/md013.md +47 -4
- {rumdl-0.0.92 → rumdl-0.0.94}/docs/md018.md +7 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/docs/md040.md +2 -2
- {rumdl-0.0.92 → rumdl-0.0.94}/docs/md041.md +11 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/docs/md046.md +4 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/docs/md048.md +2 -2
- {rumdl-0.0.92 → rumdl-0.0.94}/docs/vscode-extension.md +13 -7
- rumdl-0.0.94/src/bin/benchmark_rule.rs +156 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/bin/measure_code_span_performance.rs +1 -1
- {rumdl-0.0.92 → rumdl-0.0.94}/src/lint_context.rs +22 -6
- {rumdl-0.0.92 → rumdl-0.0.94}/src/main.rs +151 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rules/heading_utils.rs +48 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rules/md001_heading_increment.rs +18 -14
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rules/md003_heading_style.rs +75 -16
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rules/md004_unordered_list_style/md004_config.rs +2 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rules/md004_unordered_list_style.rs +76 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rules/md005_list_indent.rs +11 -12
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rules/md007_ul_indent/md007_config.rs +14 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rules/md007_ul_indent.rs +82 -7
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rules/md009_trailing_spaces/md009_config.rs +5 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rules/md009_trailing_spaces.rs +89 -11
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rules/md010_no_hard_tabs/md010_config.rs +5 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rules/md010_no_hard_tabs.rs +120 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rules/md011_no_reversed_links.rs +128 -12
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rules/md012_no_multiple_blanks.rs +125 -205
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rules/md013_line_length/md013_config.rs +15 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rules/md013_line_length.rs +155 -45
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rules/md014_commands_show_output.rs +5 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rules/md018_no_missing_space_atx.rs +47 -2
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rules/md025_single_title.rs +4 -2
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rules/md027_multiple_spaces_blockquote.rs +5 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rules/md031_blanks_around_fences.rs +68 -2
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rules/md032_blanks_around_lists.rs +1 -1
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rules/md033_no_inline_html.rs +20 -20
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rules/md034_no_bare_urls.rs +122 -103
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rules/md035_hr_style.rs +5 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rules/md038_no_space_in_code.rs +117 -7
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rules/md041_first_line_heading.rs +97 -4
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rules/md044_proper_names.rs +93 -89
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rules/md047_single_trailing_newline.rs +36 -21
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rules/md049_emphasis_style.rs +5 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rules/md050_strong_style.rs +5 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rules/md051_link_fragments.rs +14 -2
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rules/md052_reference_links_images.rs +7 -3
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rules/md053_link_image_reference_definitions.rs +62 -48
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rules/mod.rs +1 -1
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/advanced_integration_tests.rs +120 -10
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/commonmark_compliance_tests.rs +12 -6
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/comprehensive_integration_tests.rs +72 -20
- rumdl-0.0.94/tests/nested_code_block_test.rs +144 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/output_format_tests.rs +3 -2
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/rules/md001_test.rs +1 -1
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/rules/md001_unicode_test.rs +1 -1
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/rules/md007_test.rs +2 -2
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/rules/md013_test.rs +114 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/rules/md018_test.rs +37 -0
- rumdl-0.0.94/tests/rules/md034_ipv6_test.rs +180 -0
- rumdl-0.0.94/tests/rules/md038_nested_backticks_test.rs +82 -0
- rumdl-0.0.94/tests/rules/md041_test.rs +157 -0
- rumdl-0.0.94/tests/rules/md051_unicode_test.rs +155 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/rules/mod.rs +3 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/vscode_tests.rs +15 -4
- rumdl-0.0.92/issues/plan-rule-parity-with-markdownlint.md +0 -69
- rumdl-0.0.92/tests/md030_edge_cases.md +0 -160
- rumdl-0.0.92/tests/rules/md041_test.rs +0 -68
- {rumdl-0.0.92 → rumdl-0.0.94}/.config/nextest.toml +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/.mise.toml +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/.rumdl.toml +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/.rustfmt.toml +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/LICENSE +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/MANIFEST.in +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/Makefile +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/assets/logo.png +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/benches/fix_performance.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/benches/range_performance.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/benches/range_utils_benchmark.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/benches/rule_performance.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/benches/simple_fix_bench.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/docs/RULES.md +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/docs/md001.md +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/docs/md002.md +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/docs/md005.md +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/docs/md006.md +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/docs/md009.md +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/docs/md011.md +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/docs/md012.md +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/docs/md014.md +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/docs/md019.md +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/docs/md020.md +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/docs/md021.md +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/docs/md022.md +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/docs/md023.md +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/docs/md024.md +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/docs/md025.md +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/docs/md026.md +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/docs/md027.md +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/docs/md028.md +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/docs/md029.md +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/docs/md030.md +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/docs/md031.md +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/docs/md032.md +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/docs/md033.md +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/docs/md034.md +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/docs/md035.md +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/docs/md036.md +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/docs/md037.md +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/docs/md038.md +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/docs/md039.md +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/docs/md042.md +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/docs/md043.md +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/docs/md044.md +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/docs/md045.md +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/docs/md047.md +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/docs/md049.md +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/docs/md050.md +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/docs/md051.md +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/docs/md052.md +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/docs/md053.md +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/docs/md054.md +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/docs/md055.md +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/docs/md056.md +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/docs/md057.md +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/docs/md058.md +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/parity_check.py +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/pyproject.toml +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/python/MANIFEST.in +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/python/PYTHON-README.md +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/python/rumdl/__init__.py +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/python/rumdl/__main__.py +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/python/rumdl/py.typed +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/rumdl.toml.example +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/rust-toolchain.toml +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/scripts/extract-changelog.sh +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/scripts/prepare-release.sh +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/bin/benchmark.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/bin/file_parallel_benchmark.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/config.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/init.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/inline_config.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/lib.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/lsp/mod.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/lsp/server.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/lsp/types.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/markdownlint_config.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/output/formatters/azure.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/output/formatters/concise.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/output/formatters/github.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/output/formatters/gitlab.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/output/formatters/grouped.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/output/formatters/json.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/output/formatters/json_lines.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/output/formatters/junit.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/output/formatters/mod.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/output/formatters/pylint.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/output/formatters/sarif.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/output/formatters/text.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/output/mod.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/parallel.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/performance.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/profiling.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/python.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rule.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rule_config.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rule_config_serde.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rules/blockquote_utils.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rules/code_block_utils.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rules/code_fence_utils.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rules/emphasis_style.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rules/front_matter_utils.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rules/list_utils.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rules/md002_first_heading_h1/md002_config.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rules/md002_first_heading_h1.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rules/md003_heading_style/md003_config.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rules/md006_start_bullets.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rules/md012_no_multiple_blanks/md012_config.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rules/md014_commands_show_output/md014_config.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rules/md019_no_multiple_space_atx.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rules/md020_no_missing_space_closed_atx.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rules/md021_no_multiple_space_closed_atx.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rules/md022_blanks_around_headings/md022_config.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rules/md022_blanks_around_headings.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rules/md023_heading_start_left.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rules/md024_no_duplicate_heading/md024_config.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rules/md024_no_duplicate_heading.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rules/md025_single_title/md025_config.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rules/md026_no_trailing_punctuation/md026_config.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rules/md026_no_trailing_punctuation.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rules/md028_no_blanks_blockquote.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rules/md029_ordered_list_prefix.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rules/md030_list_marker_space/md030_config.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rules/md030_list_marker_space.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rules/md033_no_inline_html/md033_config.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rules/md035_hr_style/md035_config.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rules/md036_no_emphasis_only_first/md036_config.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rules/md036_no_emphasis_only_first.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rules/md037_spaces_around_emphasis.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rules/md039_no_space_in_links.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rules/md040_fenced_code_language.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rules/md042_no_empty_links.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rules/md043_required_headings.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rules/md044_proper_names/md044_config.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rules/md045_no_alt_text/md045_config.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rules/md045_no_alt_text.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rules/md046_code_block_style/md046_config.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rules/md046_code_block_style.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rules/md048_code_fence_style/md048_config.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rules/md048_code_fence_style.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rules/md049_emphasis_style/md049_config.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rules/md050_strong_style/md050_config.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rules/md054_link_image_style/md054_config.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rules/md054_link_image_style.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rules/md055_table_pipe_style/md055_config.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rules/md055_table_pipe_style.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rules/md056_table_column_count.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rules/md057_existing_relative_links/md057_config.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rules/md057_existing_relative_links.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rules/md058_blanks_around_tables.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/rules/strong_style.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/utils/ast_utils.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/utils/code_block_utils.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/utils/document_structure.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/utils/early_returns.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/utils/element_cache.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/utils/emphasis_utils.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/utils/fix_utils.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/utils/markdown_elements.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/utils/mod.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/utils/range_utils.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/utils/regex_cache.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/utils/string_interner.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/utils/table_utils.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/src/vscode.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/character_ranges/additional_tests.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/character_ranges/basic_tests.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/character_ranges/comprehensive_tests.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/character_ranges/extended_tests.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/character_ranges/mod.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/character_ranges/unicode_utils.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/cli_duplication_test.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/cli_integration_tests.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/cli_lsp_fix_consistency.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/cli_statistics_test.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/comprehensive_output_format_tests.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/config_application_tests.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/config_file_command_test.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/config_tests.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/configuration_inheritance_tests.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/consistency_regression_tests.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/cross_platform_compatibility_tests.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/final_confidence_assessment.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/init_command_test.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/init_tests.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/inline_config_test.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/integration_tests.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/json_output_test.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/lib.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/lsp_editor_integration_tests.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/lsp_integration_tests.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/lsp_memory_leak_tests.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/lsp_tests.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/malformed_markdown_stress_tests.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/markdownlint_cli_integration.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/markdownlint_config_test.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/markdownlintignore_test.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/output_format_integration_tests.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/perf_check.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/performance_validation_tests.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/pyproject_config_tests.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/real_world_repository_tests.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/regression_prevention_tests.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/rules/md002_test.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/rules/md003_test.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/rules/md004_test.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/rules/md005_test.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/rules/md006_test.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/rules/md006_unicode_test.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/rules/md009_test.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/rules/md010_test.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/rules/md011_test.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/rules/md012_test.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/rules/md014_test.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/rules/md019_test.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/rules/md020_test.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/rules/md021_test.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/rules/md022_test.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/rules/md023_extended_test.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/rules/md023_test.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/rules/md024_test.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/rules/md025_test.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/rules/md026_test.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/rules/md027_test.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/rules/md028_test.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/rules/md029_test.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/rules/md030_test.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/rules/md031_test.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/rules/md032_test.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/rules/md033_extended_test.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/rules/md033_test.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/rules/md034_test.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/rules/md035_test.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/rules/md036_test.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/rules/md037_test.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/rules/md038_test.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/rules/md039_test.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/rules/md040_test.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/rules/md042_test.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/rules/md043_test.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/rules/md044_test.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/rules/md045_test.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/rules/md046_test.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/rules/md047_test.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/rules/md048_test.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/rules/md049_test.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/rules/md050_test.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/rules/md051_test.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/rules/md052_test.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/rules/md053_additional_test.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/rules/md053_proptest.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/rules/md053_test.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/rules/md054_test.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/rules/md054_unicode_test.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/rules/md055_test.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/rules/md056_test.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/rules/md057_test.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/rules/md058_test.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/rules_mod_test.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/thread_safety_tests.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/unicode_edge_case_tests.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/utils/blockquote_utils_test.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/utils/code_block_utils_extended_test.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/utils/code_block_utils_test.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/utils/core_utils_test.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/utils/front_matter_utils_test.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/utils/line_index_test.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/utils/mod.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/utils_markdown_edge_cases.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/utils_tests.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/vscode_extension_fixes.rs +0 -0
- {rumdl-0.0.92 → rumdl-0.0.94}/tests/vscode_test.rs +0 -0
|
@@ -7,8 +7,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.0.94] - 2025-07-04
|
|
11
|
+
|
|
12
|
+
## [0.0.93] - 2025-07-03
|
|
13
|
+
|
|
10
14
|
## [0.0.92] - 2025-07-02
|
|
11
15
|
|
|
16
|
+
### Fixed
|
|
17
|
+
|
|
18
|
+
- MD036: Align with markdownlint behavior - emphasis ending with punctuation (e.g., `**Note:**`) is no longer flagged
|
|
19
|
+
|
|
12
20
|
## [0.0.91] - 2025-07-02
|
|
13
21
|
|
|
14
22
|
## [0.0.90] - 2025-07-01
|
|
@@ -16,6 +24,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
16
24
|
## [0.0.89] - 2025-07-01
|
|
17
25
|
|
|
18
26
|
### Added
|
|
27
|
+
|
|
19
28
|
- Comprehensive unit test coverage for all 54 linting rules (~742 new tests)
|
|
20
29
|
- Unit tests for LSP server functionality
|
|
21
30
|
- Unit tests for all 11 output formatters
|
|
@@ -23,6 +32,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
23
32
|
- Test coverage improved from 75.4% to 77.1%
|
|
24
33
|
|
|
25
34
|
### Fixed
|
|
35
|
+
|
|
26
36
|
- MD005: Fixed blockquote handling to correctly ignore intentional separations
|
|
27
37
|
- MD054: Fixed overlapping match detection for link/image styles
|
|
28
38
|
- Strong style utility module refactored to remove unused code
|
|
@@ -31,12 +41,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
31
41
|
- MD013: Fixed line length calculation to intelligently handle URLs in non-strict mode
|
|
32
42
|
|
|
33
43
|
### Improved
|
|
44
|
+
|
|
34
45
|
- Test infrastructure now includes both unit and integration tests
|
|
35
46
|
- Better test organization with inline unit tests in implementation files
|
|
36
47
|
|
|
37
48
|
## [0.0.88] - 2025-06-28
|
|
38
49
|
|
|
39
50
|
### Added
|
|
51
|
+
|
|
40
52
|
- 11 new output formatters for enhanced compatibility:
|
|
41
53
|
- `grouped` - Groups violations by file
|
|
42
54
|
- `pylint` - Pylint-compatible format
|
|
@@ -51,14 +63,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
51
63
|
- `text` - Default human-readable format with colors
|
|
52
64
|
|
|
53
65
|
### Changed
|
|
66
|
+
|
|
54
67
|
- **BREAKING**: Upgraded to Rust 2024 edition (requires Rust 1.87.0+)
|
|
55
68
|
- Improved code quality by fixing all 283 clippy warnings
|
|
56
69
|
|
|
57
70
|
### Fixed
|
|
71
|
+
|
|
58
72
|
- Config `output_format` field now properly merges from configuration files
|
|
59
73
|
- Pylint formatter now outputs correct `CMD` codes instead of generic `C` codes
|
|
60
74
|
|
|
61
75
|
### Optimized
|
|
76
|
+
|
|
62
77
|
- Removed unused dependencies (`glob`, `walkdir`)
|
|
63
78
|
- Reduced binary size with aggressive compilation flags (LTO, strip, opt-level=z)
|
|
64
79
|
- Improved performance through better regex compilation and caching
|
|
@@ -72,12 +87,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
72
87
|
## [0.0.84] - 2025-06-10
|
|
73
88
|
|
|
74
89
|
### Added
|
|
90
|
+
|
|
75
91
|
- Type-safe serde-based configuration system for all 24 configurable rules
|
|
76
92
|
- Dedicated config modules for each rule with compile-time validation
|
|
77
93
|
- Full IDE support with autocomplete for configuration options
|
|
78
94
|
- Centralized utilities for common parsing patterns
|
|
79
95
|
|
|
80
96
|
### Changed
|
|
97
|
+
|
|
81
98
|
- **BREAKING**: Internal configuration structure refactored (external API unchanged)
|
|
82
99
|
- Migrated all rules from manual TOML parsing to serde deserialization
|
|
83
100
|
- Improved performance through centralized parsing for:
|
|
@@ -89,9 +106,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
89
106
|
- ~40% reduction in configuration boilerplate code
|
|
90
107
|
|
|
91
108
|
### Fixed
|
|
109
|
+
|
|
92
110
|
- MD030: Correct handling of tab characters in list items
|
|
93
111
|
|
|
94
112
|
### Performance
|
|
113
|
+
|
|
95
114
|
- Significant performance improvements across multiple rules through:
|
|
96
115
|
- Centralized regex compilation and caching
|
|
97
116
|
- Reduced redundant parsing operations
|
|
@@ -101,19 +120,24 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
101
120
|
## [0.0.83] - 2025-06-07
|
|
102
121
|
|
|
103
122
|
### Fixed
|
|
123
|
+
|
|
104
124
|
- Various bug fixes and performance improvements
|
|
105
125
|
|
|
106
126
|
## [0.0.82] - 2025-06-06
|
|
107
127
|
|
|
108
128
|
### Fixed
|
|
129
|
+
|
|
109
130
|
- Various bug fixes and stability improvements
|
|
110
131
|
|
|
111
132
|
## [0.0.81] - 2025-06-04
|
|
112
133
|
|
|
113
134
|
### Added
|
|
135
|
+
|
|
114
136
|
- Initial implementation of remaining rules for markdownlint parity
|
|
115
137
|
|
|
116
|
-
[Unreleased]: https://github.com/rvben/rumdl/compare/v0.0.
|
|
138
|
+
[Unreleased]: https://github.com/rvben/rumdl/compare/v0.0.94...HEAD
|
|
139
|
+
[0.0.94]: https://github.com/rvben/rumdl/compare/v0.0.93...v0.0.94
|
|
140
|
+
[0.0.93]: https://github.com/rvben/rumdl/compare/v0.0.92...v0.0.93
|
|
117
141
|
[0.0.92]: https://github.com/rvben/rumdl/compare/v0.0.91...v0.0.92
|
|
118
142
|
[0.0.91]: https://github.com/rvben/rumdl/compare/v0.0.90...v0.0.91
|
|
119
143
|
[0.0.90]: https://github.com/rvben/rumdl/compare/v0.0.89...v0.0.90
|
|
@@ -125,4 +149,4 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
125
149
|
[0.0.84]: https://github.com/rvben/rumdl/compare/v0.0.83...v0.0.84
|
|
126
150
|
[0.0.83]: https://github.com/rvben/rumdl/compare/v0.0.82...v0.0.83
|
|
127
151
|
[0.0.82]: https://github.com/rvben/rumdl/compare/v0.0.81...v0.0.82
|
|
128
|
-
[0.0.81]: https://github.com/rvben/rumdl/releases/tag/v0.0.81
|
|
152
|
+
[0.0.81]: https://github.com/rvben/rumdl/releases/tag/v0.0.81
|
|
@@ -220,9 +220,9 @@ checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5"
|
|
|
220
220
|
|
|
221
221
|
[[package]]
|
|
222
222
|
name = "cc"
|
|
223
|
-
version = "1.2.
|
|
223
|
+
version = "1.2.28"
|
|
224
224
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
225
|
-
checksum = "
|
|
225
|
+
checksum = "4ad45f4f74e4e20eaa392913b7b33a7091c87e59628f4dd27888205ad888843c"
|
|
226
226
|
dependencies = [
|
|
227
227
|
"shlex",
|
|
228
228
|
]
|
|
@@ -1465,7 +1465,7 @@ checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c"
|
|
|
1465
1465
|
|
|
1466
1466
|
[[package]]
|
|
1467
1467
|
name = "rumdl"
|
|
1468
|
-
version = "0.0.
|
|
1468
|
+
version = "0.0.94"
|
|
1469
1469
|
dependencies = [
|
|
1470
1470
|
"anyhow",
|
|
1471
1471
|
"assert_cmd",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: rumdl
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.94
|
|
4
4
|
Classifier: Development Status :: 4 - Beta
|
|
5
5
|
Classifier: Environment :: Console
|
|
6
6
|
Classifier: Intended Audience :: Developers
|
|
@@ -66,7 +66,9 @@ rumdl init
|
|
|
66
66
|
|
|
67
67
|
## Overview
|
|
68
68
|
|
|
69
|
-
rumdl is a high-performance Markdown linter and fixer that helps ensure consistency and best practices
|
|
69
|
+
rumdl is a high-performance Markdown linter and fixer that helps ensure consistency and best practices
|
|
70
|
+
in your Markdown files. Inspired by [ruff](https://github.com/astral-sh/ruff)'s approach to Python linting,
|
|
71
|
+
rumdl brings similar speed and developer experience improvements to the Markdown ecosystem.
|
|
70
72
|
|
|
71
73
|
It offers:
|
|
72
74
|
|
|
@@ -99,11 +101,11 @@ It offers:
|
|
|
99
101
|
- [Configuration](#configuration)
|
|
100
102
|
- [Configuration File Example](#configuration-file-example)
|
|
101
103
|
- [Initializing Configuration](#initializing-configuration)
|
|
102
|
-
- [Configuration in pyproject.toml](#configuration-in-
|
|
104
|
+
- [Configuration in pyproject.toml](#configuration-in-pyproject-toml)
|
|
103
105
|
- [Configuration Output](#configuration-output)
|
|
104
106
|
- [Effective Configuration (`rumdl config`)](#effective-configuration-rumdl-config)
|
|
105
107
|
- [Example output](#example-output)
|
|
106
|
-
- [Defaults Only (`rumdl config --defaults`)](#defaults-only-rumdl-config
|
|
108
|
+
- [Defaults Only (`rumdl config --defaults`)](#defaults-only-rumdl-config-defaults)
|
|
107
109
|
- [Output Style](#output-style)
|
|
108
110
|
- [Output Format](#output-format)
|
|
109
111
|
- [Development](#development)
|
|
@@ -35,7 +35,9 @@ rumdl init
|
|
|
35
35
|
|
|
36
36
|
## Overview
|
|
37
37
|
|
|
38
|
-
rumdl is a high-performance Markdown linter and fixer that helps ensure consistency and best practices
|
|
38
|
+
rumdl is a high-performance Markdown linter and fixer that helps ensure consistency and best practices
|
|
39
|
+
in your Markdown files. Inspired by [ruff](https://github.com/astral-sh/ruff)'s approach to Python linting,
|
|
40
|
+
rumdl brings similar speed and developer experience improvements to the Markdown ecosystem.
|
|
39
41
|
|
|
40
42
|
It offers:
|
|
41
43
|
|
|
@@ -68,11 +70,11 @@ It offers:
|
|
|
68
70
|
- [Configuration](#configuration)
|
|
69
71
|
- [Configuration File Example](#configuration-file-example)
|
|
70
72
|
- [Initializing Configuration](#initializing-configuration)
|
|
71
|
-
- [Configuration in pyproject.toml](#configuration-in-
|
|
73
|
+
- [Configuration in pyproject.toml](#configuration-in-pyproject-toml)
|
|
72
74
|
- [Configuration Output](#configuration-output)
|
|
73
75
|
- [Effective Configuration (`rumdl config`)](#effective-configuration-rumdl-config)
|
|
74
76
|
- [Example output](#example-output)
|
|
75
|
-
- [Defaults Only (`rumdl config --defaults`)](#defaults-only-rumdl-config
|
|
77
|
+
- [Defaults Only (`rumdl config --defaults`)](#defaults-only-rumdl-config-defaults)
|
|
76
78
|
- [Output Style](#output-style)
|
|
77
79
|
- [Output Format](#output-format)
|
|
78
80
|
- [Development](#development)
|
|
@@ -4,7 +4,8 @@ This document provides a comprehensive reference for rumdl's global configuratio
|
|
|
4
4
|
|
|
5
5
|
## Overview
|
|
6
6
|
|
|
7
|
-
Global settings are configured in the `[global]` section of your configuration file (`.rumdl.toml` or
|
|
7
|
+
Global settings are configured in the `[global]` section of your configuration file (`.rumdl.toml` or
|
|
8
|
+
`pyproject.toml`). These settings control file selection, rule enablement, and general linting behavior.
|
|
8
9
|
|
|
9
10
|
## Quick Reference
|
|
10
11
|
|
|
@@ -30,6 +30,32 @@ Second Level Heading
|
|
|
30
30
|
------------------
|
|
31
31
|
```
|
|
32
32
|
|
|
33
|
+
### ✅ Correct (using setext_with_atx style)
|
|
34
|
+
|
|
35
|
+
```markdown
|
|
36
|
+
First Level Heading
|
|
37
|
+
==================
|
|
38
|
+
|
|
39
|
+
Second Level Heading
|
|
40
|
+
------------------
|
|
41
|
+
|
|
42
|
+
### Third Level Heading
|
|
43
|
+
#### Fourth Level Heading
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### ✅ Correct (using setext_with_atx_closed style)
|
|
47
|
+
|
|
48
|
+
```markdown
|
|
49
|
+
First Level Heading
|
|
50
|
+
==================
|
|
51
|
+
|
|
52
|
+
Second Level Heading
|
|
53
|
+
------------------
|
|
54
|
+
|
|
55
|
+
### Third Level Heading ###
|
|
56
|
+
#### Fourth Level Heading ####
|
|
57
|
+
```
|
|
58
|
+
|
|
33
59
|
### ❌ Incorrect (mixed styles)
|
|
34
60
|
|
|
35
61
|
<!-- rumdl-disable MD003 -->
|
|
@@ -57,7 +83,7 @@ Second Level Heading
|
|
|
57
83
|
|
|
58
84
|
```yaml
|
|
59
85
|
MD003:
|
|
60
|
-
style: "consistent" # Options: "consistent", "atx", "atx_closed", "setext"
|
|
86
|
+
style: "consistent" # Options: "consistent", "atx", "atx_closed", "setext", "setext_with_atx", "setext_with_atx_closed"
|
|
61
87
|
```
|
|
62
88
|
|
|
63
89
|
### Style options explained
|
|
@@ -66,6 +92,8 @@ MD003:
|
|
|
66
92
|
- `"atx"`: Use # symbols (`# Heading`)
|
|
67
93
|
- `"atx_closed"`: Use # symbols at both ends (`# Heading #`)
|
|
68
94
|
- `"setext"`: Use underlines (equals for level 1, dashes for level 2)
|
|
95
|
+
- `"setext_with_atx"`: Use underlines for level 1-2, # symbols for level 3-6
|
|
96
|
+
- `"setext_with_atx_closed"`: Use underlines for level 1-2, # symbols with closing # for level 3-6
|
|
69
97
|
|
|
70
98
|
> **Note**: Underline style only works for level 1 and 2 headings. Level 3 and below must use # symbols.
|
|
71
99
|
|
|
@@ -33,6 +33,19 @@ Ensures all unordered lists use the same marker (* or + or -) throughout your do
|
|
|
33
33
|
- Item 3
|
|
34
34
|
```
|
|
35
35
|
|
|
36
|
+
### ✅ Correct (using sublist style)
|
|
37
|
+
|
|
38
|
+
```markdown
|
|
39
|
+
* Item 1
|
|
40
|
+
* Item 2
|
|
41
|
+
+ Nested item 1
|
|
42
|
+
+ Nested item 2
|
|
43
|
+
- Deep nested item 1
|
|
44
|
+
- Deep nested item 2
|
|
45
|
+
* Even deeper (cycles back to *)
|
|
46
|
+
* Item 3
|
|
47
|
+
```
|
|
48
|
+
|
|
36
49
|
### ❌ Incorrect
|
|
37
50
|
|
|
38
51
|
```markdown
|
|
@@ -57,7 +70,7 @@ Ensures all unordered lists use the same marker (* or + or -) throughout your do
|
|
|
57
70
|
|
|
58
71
|
```yaml
|
|
59
72
|
MD004:
|
|
60
|
-
style: "consistent" # Options: "consistent", "asterisk", "plus", "dash"
|
|
73
|
+
style: "consistent" # Options: "consistent", "asterisk", "plus", "dash", "sublist"
|
|
61
74
|
```
|
|
62
75
|
|
|
63
76
|
### Style options
|
|
@@ -66,6 +79,7 @@ MD004:
|
|
|
66
79
|
- `"asterisk"`: Always use * markers
|
|
67
80
|
- `"plus"`: Always use + markers
|
|
68
81
|
- `"dash"`: Always use - markers
|
|
82
|
+
- `"sublist"`: Each nesting level uses a different marker (cycles through *, +, -)
|
|
69
83
|
|
|
70
84
|
## Automatic fixes
|
|
71
85
|
|
|
@@ -56,7 +56,35 @@ Ensures nested list items are indented with exactly 2 spaces per level for consi
|
|
|
56
56
|
|
|
57
57
|
```yaml
|
|
58
58
|
MD007:
|
|
59
|
-
indent: 2
|
|
59
|
+
indent: 2 # Number of spaces per indentation level (default: 2)
|
|
60
|
+
start_indented: false # Allow first level lists to start indented (default: false)
|
|
61
|
+
start_indent: 2 # Number of spaces for first level when start_indented is true (default: 2)
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### Configuration options explained
|
|
65
|
+
|
|
66
|
+
- `indent`: The number of spaces to use for each level of list nesting
|
|
67
|
+
- `start_indented`: When `true`, allows the first level of lists to be indented instead of starting at column 0
|
|
68
|
+
- `start_indent`: When `start_indented` is `true`, this specifies how many spaces the first level should be indented
|
|
69
|
+
|
|
70
|
+
### Example with start_indented: true
|
|
71
|
+
|
|
72
|
+
```yaml
|
|
73
|
+
MD007:
|
|
74
|
+
indent: 2
|
|
75
|
+
start_indented: true
|
|
76
|
+
start_indent: 4
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
With this configuration, the following is valid:
|
|
80
|
+
|
|
81
|
+
```markdown
|
|
82
|
+
Some paragraph text.
|
|
83
|
+
|
|
84
|
+
* First level item (4 spaces indent)
|
|
85
|
+
* Second level item (6 spaces total: 4 + 2)
|
|
86
|
+
* Third level item (8 spaces total: 4 + 2 + 2)
|
|
87
|
+
* Another first level item
|
|
60
88
|
```
|
|
61
89
|
|
|
62
90
|
## Automatic fixes
|
|
@@ -63,10 +63,46 @@ Replaces tab characters with spaces to ensure consistent indentation across all
|
|
|
63
63
|
|
|
64
64
|
```yaml
|
|
65
65
|
MD010:
|
|
66
|
-
code_blocks: true
|
|
67
|
-
spaces_per_tab: 4
|
|
66
|
+
code_blocks: true # Check for tabs in code blocks (default: true)
|
|
67
|
+
spaces_per_tab: 4 # Number of spaces to replace each tab with (default: 4)
|
|
68
|
+
ignore_code_languages: [] # List of code languages to ignore (default: [])
|
|
68
69
|
```
|
|
69
70
|
|
|
71
|
+
### Configuration options explained
|
|
72
|
+
|
|
73
|
+
- `code_blocks`: Whether to check for tabs inside code blocks
|
|
74
|
+
- `spaces_per_tab`: How many spaces to use when replacing each tab character
|
|
75
|
+
- `ignore_code_languages`: List of code block languages where tabs are allowed (useful for languages like Makefile where tabs are required)
|
|
76
|
+
|
|
77
|
+
### Example with ignored languages
|
|
78
|
+
|
|
79
|
+
```yaml
|
|
80
|
+
MD010:
|
|
81
|
+
code_blocks: true
|
|
82
|
+
spaces_per_tab: 4
|
|
83
|
+
ignore_code_languages:
|
|
84
|
+
- makefile
|
|
85
|
+
- make
|
|
86
|
+
- Makefile
|
|
87
|
+
- go.mod
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
With this configuration, tabs will be allowed in code blocks marked with these languages:
|
|
91
|
+
|
|
92
|
+
````markdown
|
|
93
|
+
```makefile
|
|
94
|
+
# Tabs are required in Makefiles
|
|
95
|
+
target:
|
|
96
|
+
command with tab
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
```python
|
|
100
|
+
# Tabs will be replaced with spaces here
|
|
101
|
+
def function():
|
|
102
|
+
return value
|
|
103
|
+
```
|
|
104
|
+
````
|
|
105
|
+
|
|
70
106
|
## Automatic fixes
|
|
71
107
|
|
|
72
108
|
This rule automatically replaces each tab character with the configured number of spaces (default: 4). This ensures your document looks the same in every editor.
|
|
@@ -47,10 +47,53 @@ and work with in various contexts.
|
|
|
47
47
|
|
|
48
48
|
```yaml
|
|
49
49
|
MD013:
|
|
50
|
-
line_length: 100
|
|
51
|
-
code_blocks: false
|
|
52
|
-
tables: false
|
|
53
|
-
headings: true
|
|
50
|
+
line_length: 100 # Maximum characters per line (default: 80)
|
|
51
|
+
code_blocks: false # Don't check code blocks (default: true)
|
|
52
|
+
tables: false # Don't check tables (default: true)
|
|
53
|
+
headings: true # Check headings (default: true)
|
|
54
|
+
heading_line_length: 120 # Different limit for headings (default: uses line_length)
|
|
55
|
+
code_block_line_length: 150 # Different limit for code blocks (default: uses line_length)
|
|
56
|
+
stern: false # Stricter checking without exceptions (default: false)
|
|
57
|
+
strict: false # Disables exceptions for URLs, etc. (default: false)
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
### Configuration options explained
|
|
61
|
+
|
|
62
|
+
- `line_length`: The maximum number of characters allowed per line
|
|
63
|
+
- `code_blocks`: Whether to check line length in code blocks
|
|
64
|
+
- `tables`: Whether to check line length in tables
|
|
65
|
+
- `headings`: Whether to check line length in headings
|
|
66
|
+
- `heading_line_length`: Optional separate limit for headings (useful since headings often need to be longer)
|
|
67
|
+
- `code_block_line_length`: Optional separate limit for code blocks
|
|
68
|
+
- `stern`: When true, applies stricter checking without common exceptions
|
|
69
|
+
- `strict`: When true, disables exceptions for URLs and other special content
|
|
70
|
+
|
|
71
|
+
### Example with different limits
|
|
72
|
+
|
|
73
|
+
```yaml
|
|
74
|
+
MD013:
|
|
75
|
+
line_length: 80
|
|
76
|
+
heading_line_length: 100
|
|
77
|
+
code_block_line_length: 120
|
|
78
|
+
code_blocks: true
|
|
79
|
+
headings: true
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
With this configuration:
|
|
83
|
+
- Regular text must stay within 80 characters
|
|
84
|
+
- Headings can extend up to 100 characters
|
|
85
|
+
- Code blocks can have lines up to 120 characters
|
|
86
|
+
|
|
87
|
+
```markdown
|
|
88
|
+
This regular paragraph text must wrap at 80 characters to comply with the rule.
|
|
89
|
+
|
|
90
|
+
## This heading can be longer and extend up to 100 characters without triggering a warning
|
|
91
|
+
|
|
92
|
+
```python
|
|
93
|
+
# This code block can have longer lines up to 120 characters
|
|
94
|
+
def very_long_function_name_that_demonstrates_the_code_block_line_length_configuration_option():
|
|
95
|
+
pass
|
|
96
|
+
```
|
|
54
97
|
```
|
|
55
98
|
|
|
56
99
|
## Automatic fixes
|
|
@@ -53,6 +53,13 @@ Ensures there's a space between the # symbols and the heading text.
|
|
|
53
53
|
|
|
54
54
|
This rule has no configuration options.
|
|
55
55
|
|
|
56
|
+
## Special cases
|
|
57
|
+
|
|
58
|
+
This rule correctly handles:
|
|
59
|
+
- Emoji hashtags like #️⃣ and #⃣ (not treated as headings)
|
|
60
|
+
- Regular hashtags like #tag or #123 (not treated as headings)
|
|
61
|
+
- Only actual heading syntax triggers this rule
|
|
62
|
+
|
|
56
63
|
## Automatic fixes
|
|
57
64
|
|
|
58
65
|
This rule automatically adds a space after the # symbols to properly format the heading.
|
|
@@ -31,7 +31,7 @@ echo "Hello, world!"
|
|
|
31
31
|
|
|
32
32
|
### ❌ Incorrect
|
|
33
33
|
|
|
34
|
-
<!-- rumdl-disable MD040 -->
|
|
34
|
+
<!-- rumdl-disable MD040 MD031 -->
|
|
35
35
|
|
|
36
36
|
````markdown
|
|
37
37
|
```
|
|
@@ -44,7 +44,7 @@ console.log("Hello, world!");
|
|
|
44
44
|
```
|
|
45
45
|
````
|
|
46
46
|
|
|
47
|
-
<!-- rumdl-enable MD040 -->
|
|
47
|
+
<!-- rumdl-enable MD040 MD031 -->
|
|
48
48
|
|
|
49
49
|
### 🔧 Fixed
|
|
50
50
|
|
|
@@ -27,6 +27,14 @@ Welcome to our documentation! This guide will help you...
|
|
|
27
27
|
This project provides tools for...
|
|
28
28
|
```
|
|
29
29
|
|
|
30
|
+
Also correct with HTML headings:
|
|
31
|
+
|
|
32
|
+
```markdown
|
|
33
|
+
<h1>Getting Started Guide</h1>
|
|
34
|
+
|
|
35
|
+
Welcome to our documentation! This guide will help you...
|
|
36
|
+
```
|
|
37
|
+
|
|
30
38
|
### ❌ Incorrect
|
|
31
39
|
|
|
32
40
|
```markdown
|
|
@@ -61,6 +69,7 @@ First, install the dependencies...
|
|
|
61
69
|
MD041:
|
|
62
70
|
level: 1 # Heading level required (1-6, default: 1)
|
|
63
71
|
front_matter_title: "title" # Front matter field to use as title
|
|
72
|
+
front_matter_title_pattern: "^(title|header):" # Regex pattern to match title fields in front matter
|
|
64
73
|
```
|
|
65
74
|
|
|
66
75
|
## Automatic fixes
|
|
@@ -74,6 +83,8 @@ When enabled, this rule will:
|
|
|
74
83
|
- Documents with front matter containing a title field are considered valid
|
|
75
84
|
- Empty documents are not checked
|
|
76
85
|
- HTML comments at the start are ignored when checking
|
|
86
|
+
- HTML heading tags (e.g., `<h1>Title</h1>`) are recognized as valid headings
|
|
87
|
+
- The `front_matter_title_pattern` allows custom regex patterns for matching title fields
|
|
77
88
|
|
|
78
89
|
## Learn more
|
|
79
90
|
|
|
@@ -35,6 +35,8 @@ And here's the response format:
|
|
|
35
35
|
|
|
36
36
|
### ❌ Incorrect (Mixed styles)
|
|
37
37
|
|
|
38
|
+
<!-- rumdl-disable MD031 MD040 -->
|
|
39
|
+
|
|
38
40
|
````markdown
|
|
39
41
|
Here's how to use our API:
|
|
40
42
|
|
|
@@ -51,6 +53,8 @@ And here's the response format:
|
|
|
51
53
|
}
|
|
52
54
|
````
|
|
53
55
|
|
|
56
|
+
<!-- rumdl-enable MD031 MD040 -->
|
|
57
|
+
|
|
54
58
|
### 🔧 Fixed
|
|
55
59
|
|
|
56
60
|
````markdown
|
|
@@ -44,7 +44,7 @@ def hello():
|
|
|
44
44
|
|
|
45
45
|
### ❌ Incorrect (mixed styles)
|
|
46
46
|
|
|
47
|
-
<!-- rumdl-disable MD048 -->
|
|
47
|
+
<!-- rumdl-disable MD048 MD031 MD040 -->
|
|
48
48
|
|
|
49
49
|
````markdown
|
|
50
50
|
```javascript
|
|
@@ -59,7 +59,7 @@ def hello():
|
|
|
59
59
|
~~~
|
|
60
60
|
````
|
|
61
61
|
|
|
62
|
-
<!-- rumdl-enable MD048 -->
|
|
62
|
+
<!-- rumdl-enable MD048 MD031 MD040 -->
|
|
63
63
|
|
|
64
64
|
### 🔧 Fixed
|
|
65
65
|
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
# Rumdl VS Code Extension
|
|
2
2
|
|
|
3
|
-
The rumdl VS Code extension provides real-time Markdown linting directly in your editor, powered by the
|
|
3
|
+
The rumdl VS Code extension provides real-time Markdown linting directly in your editor, powered by the
|
|
4
|
+
same fast Rust-based engine as the rumdl CLI. With the new `rumdl vscode` command, you can install and
|
|
5
|
+
manage the extension directly from your terminal.
|
|
4
6
|
|
|
5
7
|
## Installation
|
|
6
8
|
|
|
@@ -64,18 +66,21 @@ The extension will automatically detect and use your project's `.rumdl.toml` con
|
|
|
64
66
|
### Extension Not Working
|
|
65
67
|
|
|
66
68
|
1. Check if the extension is installed:
|
|
69
|
+
|
|
67
70
|
```bash
|
|
68
71
|
rumdl vscode --status
|
|
69
72
|
```
|
|
70
73
|
|
|
71
74
|
2. Ensure VS Code's `code` command is in your PATH:
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
+
|
|
76
|
+
- On macOS: Open VS Code, press Cmd+Shift+P, and run "Shell Command: Install 'code' command in PATH"
|
|
77
|
+
- On Windows: This should be automatic during VS Code installation
|
|
78
|
+
- On Linux: Add VS Code's bin directory to your PATH
|
|
75
79
|
|
|
76
80
|
3. Check the extension logs:
|
|
77
|
-
|
|
78
|
-
|
|
81
|
+
|
|
82
|
+
- Open VS Code's Output panel (View → Output)
|
|
83
|
+
- Select "rumdl" from the dropdown
|
|
79
84
|
|
|
80
85
|
### VS Code Not Found
|
|
81
86
|
|
|
@@ -83,6 +88,7 @@ If you get a "VS Code not found" error, make sure:
|
|
|
83
88
|
|
|
84
89
|
1. VS Code is installed
|
|
85
90
|
2. The `code` command is available in your terminal:
|
|
91
|
+
|
|
86
92
|
```bash
|
|
87
93
|
code --version
|
|
88
94
|
```
|
|
@@ -91,4 +97,4 @@ If you get a "VS Code not found" error, make sure:
|
|
|
91
97
|
|
|
92
98
|
- [rumdl GitHub Repository](https://github.com/rvben/rumdl)
|
|
93
99
|
- [VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=rumdl.rumdl)
|
|
94
|
-
- [Configuration Guide](./global-settings.md)
|
|
100
|
+
- [Configuration Guide](./global-settings.md)
|