rumdl 0.0.81__tar.gz → 0.0.82__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.81 → rumdl-0.0.82}/Cargo.lock +1 -1
- {rumdl-0.0.81 → rumdl-0.0.82}/Cargo.toml +1 -1
- {rumdl-0.0.81 → rumdl-0.0.82}/PKG-INFO +1 -1
- {rumdl-0.0.81 → rumdl-0.0.82}/docs/global-settings.md +21 -7
- rumdl-0.0.82/docs/md001.md +60 -0
- rumdl-0.0.82/docs/md002.md +68 -0
- rumdl-0.0.82/docs/md003.md +85 -0
- rumdl-0.0.82/docs/md004.md +84 -0
- rumdl-0.0.82/docs/md005.md +79 -0
- rumdl-0.0.82/docs/md006.md +72 -0
- rumdl-0.0.82/docs/md007.md +75 -0
- rumdl-0.0.82/docs/md009.md +64 -0
- rumdl-0.0.82/docs/md010.md +83 -0
- rumdl-0.0.82/docs/md011.md +63 -0
- rumdl-0.0.82/docs/md012.md +92 -0
- rumdl-0.0.82/docs/md013.md +69 -0
- rumdl-0.0.82/docs/md014.md +79 -0
- rumdl-0.0.82/docs/md018.md +69 -0
- rumdl-0.0.82/docs/md019.md +69 -0
- rumdl-0.0.82/docs/md020.md +70 -0
- rumdl-0.0.82/docs/md021.md +70 -0
- rumdl-0.0.82/docs/md022.md +92 -0
- rumdl-0.0.82/docs/md023.md +68 -0
- rumdl-0.0.82/docs/md024.md +96 -0
- rumdl-0.0.82/docs/md025.md +81 -0
- rumdl-0.0.82/docs/md026.md +78 -0
- rumdl-0.0.82/docs/md027.md +68 -0
- rumdl-0.0.82/docs/md028.md +79 -0
- rumdl-0.0.82/docs/md029.md +76 -0
- rumdl-0.0.82/docs/md030.md +77 -0
- rumdl-0.0.82/docs/md031.md +102 -0
- rumdl-0.0.82/docs/md032.md +75 -0
- rumdl-0.0.82/docs/md033.md +99 -0
- rumdl-0.0.82/docs/md034.md +62 -0
- rumdl-0.0.82/docs/md035.md +95 -0
- rumdl-0.0.82/docs/md036.md +92 -0
- rumdl-0.0.82/docs/md037.md +81 -0
- rumdl-0.0.82/docs/md038.md +74 -0
- rumdl-0.0.82/docs/md039.md +84 -0
- rumdl-0.0.82/docs/md040.md +81 -0
- rumdl-0.0.82/docs/md041.md +87 -0
- rumdl-0.0.82/docs/md042.md +78 -0
- rumdl-0.0.82/docs/md043.md +114 -0
- rumdl-0.0.82/docs/md044.md +86 -0
- rumdl-0.0.82/docs/md045.md +86 -0
- rumdl-0.0.82/docs/md046.md +117 -0
- rumdl-0.0.82/docs/md047.md +92 -0
- rumdl-0.0.82/docs/md048.md +105 -0
- rumdl-0.0.82/docs/md049.md +89 -0
- rumdl-0.0.82/docs/md050.md +89 -0
- rumdl-0.0.82/docs/md051.md +80 -0
- rumdl-0.0.82/docs/md052.md +76 -0
- rumdl-0.0.82/docs/md053.md +84 -0
- rumdl-0.0.82/docs/md054.md +104 -0
- rumdl-0.0.82/docs/md055.md +88 -0
- rumdl-0.0.82/docs/md056.md +80 -0
- rumdl-0.0.82/docs/md057.md +73 -0
- rumdl-0.0.82/docs/md058.md +85 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/src/main.rs +31 -21
- {rumdl-0.0.81 → rumdl-0.0.82}/src/rule.rs +2 -2
- {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md003_heading_style.rs +15 -2
- {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md004_unordered_list_style.rs +2 -2
- {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md010_no_hard_tabs.rs +8 -8
- {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md018_no_missing_space_atx.rs +3 -3
- {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md019_no_multiple_space_atx.rs +2 -2
- {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md020_no_missing_space_closed_atx.rs +7 -7
- {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md021_no_multiple_space_closed_atx.rs +7 -7
- {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md027_multiple_spaces_blockquote.rs +8 -8
- {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md033_no_inline_html.rs +2 -2
- {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md034_no_bare_urls.rs +7 -7
- {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md040_fenced_code_language.rs +139 -120
- {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md048_code_fence_style.rs +2 -2
- {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md049_emphasis_style.rs +1 -2
- {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md050_strong_style.rs +2 -2
- {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md051_link_fragments.rs +4 -4
- {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md053_link_image_reference_definitions.rs +1 -1
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/output_format_tests.rs +1 -1
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md010_test.rs +4 -4
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md018_test.rs +1 -1
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md019_test.rs +3 -3
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md020_test.rs +2 -2
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md021_test.rs +3 -3
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md034_test.rs +6 -6
- rumdl-0.0.81/docs/md001.md +0 -42
- rumdl-0.0.81/docs/md002.md +0 -104
- rumdl-0.0.81/docs/md003.md +0 -91
- rumdl-0.0.81/docs/md004.md +0 -108
- rumdl-0.0.81/docs/md005.md +0 -108
- rumdl-0.0.81/docs/md006.md +0 -107
- rumdl-0.0.81/docs/md007.md +0 -57
- rumdl-0.0.81/docs/md009.md +0 -51
- rumdl-0.0.81/docs/md010.md +0 -56
- rumdl-0.0.81/docs/md011.md +0 -71
- rumdl-0.0.81/docs/md012.md +0 -59
- rumdl-0.0.81/docs/md013.md +0 -53
- rumdl-0.0.81/docs/md014.md +0 -84
- rumdl-0.0.81/docs/md018.md +0 -58
- rumdl-0.0.81/docs/md019.md +0 -58
- rumdl-0.0.81/docs/md020.md +0 -58
- rumdl-0.0.81/docs/md021.md +0 -59
- rumdl-0.0.81/docs/md022.md +0 -72
- rumdl-0.0.81/docs/md023.md +0 -49
- rumdl-0.0.81/docs/md024.md +0 -85
- rumdl-0.0.81/docs/md025.md +0 -68
- rumdl-0.0.81/docs/md026.md +0 -76
- rumdl-0.0.81/docs/md027.md +0 -50
- rumdl-0.0.81/docs/md028.md +0 -83
- rumdl-0.0.81/docs/md029.md +0 -68
- rumdl-0.0.81/docs/md030.md +0 -69
- rumdl-0.0.81/docs/md031.md +0 -63
- rumdl-0.0.81/docs/md032.md +0 -75
- rumdl-0.0.81/docs/md033.md +0 -105
- rumdl-0.0.81/docs/md034.md +0 -52
- rumdl-0.0.81/docs/md035.md +0 -79
- rumdl-0.0.81/docs/md036.md +0 -108
- rumdl-0.0.81/docs/md037.md +0 -64
- rumdl-0.0.81/docs/md038.md +0 -46
- rumdl-0.0.81/docs/md039.md +0 -62
- rumdl-0.0.81/docs/md040.md +0 -72
- rumdl-0.0.81/docs/md041.md +0 -65
- rumdl-0.0.81/docs/md042.md +0 -62
- rumdl-0.0.81/docs/md043.md +0 -110
- rumdl-0.0.81/docs/md044.md +0 -76
- rumdl-0.0.81/docs/md045.md +0 -59
- rumdl-0.0.81/docs/md046.md +0 -64
- rumdl-0.0.81/docs/md047.md +0 -58
- rumdl-0.0.81/docs/md048.md +0 -80
- rumdl-0.0.81/docs/md049.md +0 -65
- rumdl-0.0.81/docs/md050.md +0 -65
- rumdl-0.0.81/docs/md051.md +0 -80
- rumdl-0.0.81/docs/md052.md +0 -115
- rumdl-0.0.81/docs/md053.md +0 -102
- rumdl-0.0.81/docs/md054.md +0 -96
- rumdl-0.0.81/docs/md055.md +0 -112
- rumdl-0.0.81/docs/md056.md +0 -68
- rumdl-0.0.81/docs/md057.md +0 -77
- rumdl-0.0.81/docs/md058.md +0 -92
- {rumdl-0.0.81 → rumdl-0.0.82}/.rumdl.toml +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/MANIFEST.in +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/Makefile +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/README.md +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/assets/logo.png +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/benches/fix_performance.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/benches/range_performance.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/benches/range_utils_benchmark.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/benches/rule_performance.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/benches/simple_fix_bench.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/docs/RULES.md +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/issues/plan-rule-parity-with-markdownlint.md +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/parity_check.py +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/pyproject.toml +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/python/MANIFEST.in +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/python/PYTHON-README.md +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/python/rumdl/__init__.py +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/python/rumdl/__main__.py +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/python/rumdl/py.typed +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/rumdl.toml.example +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/src/config.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/src/init.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/src/lib.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/src/lint_context.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/src/lsp/mod.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/src/lsp/server.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/src/lsp/types.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/src/markdownlint_config.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/src/parallel.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/src/performance.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/src/profiling.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/src/python.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/blockquote_utils.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/code_block_utils.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/code_fence_utils.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/emphasis_style.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/front_matter_utils.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/heading_utils.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/list_utils.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md001_heading_increment.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md002_first_heading_h1.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md005_list_indent.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md006_start_bullets.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md007_ul_indent.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md009_trailing_spaces.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md011_no_reversed_links.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md012_no_multiple_blanks.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md013_line_length.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md014_commands_show_output.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md022_blanks_around_headings.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md023_heading_start_left.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md024_no_duplicate_heading.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md025_single_title.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md026_no_trailing_punctuation.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md028_no_blanks_blockquote.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md029_ordered_list_prefix.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md030_list_marker_space.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md031_blanks_around_fences.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md032_blanks_around_lists.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md035_hr_style.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md036_no_emphasis_only_first.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md037_spaces_around_emphasis.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md038_no_space_in_code.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md039_no_space_in_links.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md041_first_line_heading.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md042_no_empty_links.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md043_required_headings.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md044_proper_names.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md045_no_alt_text.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md046_code_block_style.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md047_single_trailing_newline.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md052_reference_links_images.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md054_link_image_style.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md055_table_pipe_style.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md056_table_column_count.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md057_existing_relative_links.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md058_blanks_around_tables.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/mod.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/strong_style.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/src/utils/ast_utils.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/src/utils/code_block_utils.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/src/utils/document_structure.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/src/utils/early_returns.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/src/utils/element_cache.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/src/utils/fix_utils.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/src/utils/markdown_elements.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/src/utils/mod.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/src/utils/range_utils.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/src/utils/regex_cache.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/src/utils/string_interner.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/src/utils/table_utils.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/advanced_integration_tests.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/character_ranges/additional_tests.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/character_ranges/basic_tests.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/character_ranges/comprehensive_tests.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/character_ranges/extended_tests.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/character_ranges/mod.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/character_ranges/unicode_utils.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/cli_duplication_test.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/cli_integration_tests.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/cli_lsp_fix_consistency.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/commonmark_compliance_tests.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/comprehensive_integration_tests.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/config_application_tests.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/config_file_command_test.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/config_tests.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/configuration_inheritance_tests.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/consistency_regression_tests.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/cross_platform_compatibility_tests.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/final_confidence_assessment.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/init_command_test.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/init_tests.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/integration_tests.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/json_output_test.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/lib.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/lsp_editor_integration_tests.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/lsp_integration_tests.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/lsp_memory_leak_tests.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/lsp_tests.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/malformed_markdown_stress_tests.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/markdownlint_cli_integration.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/markdownlint_config_test.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/md030_edge_cases.md +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/perf_check.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/performance_validation_tests.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/pyproject_config_tests.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/real_world_repository_tests.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/regression_prevention_tests.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md001_test.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md001_unicode_test.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md002_test.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md003_test.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md004_test.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md005_test.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md006_test.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md006_unicode_test.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md007_test.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md009_test.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md011_test.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md012_test.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md013_test.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md014_test.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md022_test.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md023_extended_test.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md023_test.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md024_test.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md025_test.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md026_test.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md027_test.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md028_test.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md029_test.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md030_test.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md031_test.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md032_test.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md033_extended_test.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md033_test.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md035_test.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md036_test.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md037_test.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md038_test.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md039_test.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md040_test.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md041_test.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md042_test.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md043_test.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md044_test.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md045_test.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md046_test.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md047_test.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md048_test.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md049_test.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md050_test.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md051_test.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md052_test.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md053_additional_test.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md053_proptest.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md053_test.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md054_test.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md054_unicode_test.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md055_test.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md056_test.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md057_test.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md058_test.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/mod.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/thread_safety_tests.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/unicode_edge_case_tests.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/utils/blockquote_utils_test.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/utils/code_block_utils_extended_test.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/utils/code_block_utils_test.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/utils/core_utils_test.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/utils/front_matter_utils_test.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/utils/line_index_test.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/utils/mod.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/utils_markdown_edge_cases.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/utils_tests.rs +0 -0
- {rumdl-0.0.81 → rumdl-0.0.82}/tests/vscode_extension_fixes.rs +0 -0
|
@@ -87,6 +87,7 @@ enable = ["MD001", "MD003", "MD013", "MD022"]
|
|
|
87
87
|
- Useful for gradually adopting rumdl or focusing on specific rule categories
|
|
88
88
|
|
|
89
89
|
**Example CLI usage**:
|
|
90
|
+
|
|
90
91
|
```bash
|
|
91
92
|
rumdl check --enable MD001,MD003,MD013 .
|
|
92
93
|
```
|
|
@@ -113,6 +114,7 @@ disable = ["MD013", "MD033", "MD041"]
|
|
|
113
114
|
- Can be combined with rule-specific configuration to fine-tune behavior
|
|
114
115
|
|
|
115
116
|
**Example CLI usage**:
|
|
117
|
+
|
|
116
118
|
```bash
|
|
117
119
|
rumdl check --disable MD013,MD033 .
|
|
118
120
|
```
|
|
@@ -150,6 +152,7 @@ exclude = [
|
|
|
150
152
|
- Useful for excluding generated files, dependencies, and temporary files
|
|
151
153
|
|
|
152
154
|
**Example CLI usage**:
|
|
155
|
+
|
|
153
156
|
```bash
|
|
154
157
|
rumdl check --exclude "node_modules,build,*.tmp.md" .
|
|
155
158
|
```
|
|
@@ -180,6 +183,7 @@ include = [
|
|
|
180
183
|
- Useful for limiting linting to specific documentation areas
|
|
181
184
|
|
|
182
185
|
**Example CLI usage**:
|
|
186
|
+
|
|
183
187
|
```bash
|
|
184
188
|
rumdl check --include "docs/**/*.md,README.md" .
|
|
185
189
|
```
|
|
@@ -210,6 +214,7 @@ respect_gitignore = false # Ignore .gitignore files
|
|
|
210
214
|
- Respects `.gitignore` files at any level in the directory tree
|
|
211
215
|
|
|
212
216
|
**Example CLI usage**:
|
|
217
|
+
|
|
213
218
|
```bash
|
|
214
219
|
# Don't respect .gitignore files
|
|
215
220
|
rumdl check --respect-gitignore=false .
|
|
@@ -240,6 +245,7 @@ line_length = 120 # Set global line length to 120 characters
|
|
|
240
245
|
- When importing from markdownlint configs, top-level `line-length` is mapped to this setting
|
|
241
246
|
|
|
242
247
|
**Example with rule override**:
|
|
248
|
+
|
|
243
249
|
```toml
|
|
244
250
|
[global]
|
|
245
251
|
line_length = 100 # Global default
|
|
@@ -259,6 +265,7 @@ Settings are applied in the following order (later sources override earlier ones
|
|
|
259
265
|
### Example: Precedence in Action
|
|
260
266
|
|
|
261
267
|
Given this configuration file:
|
|
268
|
+
|
|
262
269
|
```toml
|
|
263
270
|
[global]
|
|
264
271
|
disable = ["MD013", "MD033"]
|
|
@@ -266,6 +273,7 @@ exclude = ["node_modules", "build"]
|
|
|
266
273
|
```
|
|
267
274
|
|
|
268
275
|
And this command:
|
|
276
|
+
|
|
269
277
|
```bash
|
|
270
278
|
rumdl check --disable MD001,MD013 --exclude "temp/**" docs/
|
|
271
279
|
```
|
|
@@ -280,24 +288,30 @@ The final configuration will be:
|
|
|
280
288
|
rumdl processes files using the following logic:
|
|
281
289
|
|
|
282
290
|
1. **Start with candidate files**:
|
|
283
|
-
|
|
284
|
-
|
|
291
|
+
|
|
292
|
+
- If paths are provided via CLI: use those files/directories
|
|
293
|
+
- Otherwise: recursively scan current directory for `.md` and `.markdown` files
|
|
285
294
|
|
|
286
295
|
2. **Apply .gitignore filtering** (if `respect_gitignore = true`):
|
|
287
|
-
|
|
296
|
+
|
|
297
|
+
- Skip files/directories listed in `.gitignore` files
|
|
288
298
|
|
|
289
299
|
3. **Apply include patterns** (if specified):
|
|
290
|
-
|
|
300
|
+
|
|
301
|
+
- Keep only files matching at least one include pattern
|
|
291
302
|
|
|
292
303
|
4. **Apply exclude patterns**:
|
|
293
|
-
|
|
304
|
+
|
|
305
|
+
- Remove files matching any exclude pattern
|
|
294
306
|
|
|
295
307
|
5. **Apply rule filtering**:
|
|
296
|
-
|
|
308
|
+
|
|
309
|
+
- Process remaining files with enabled rules only
|
|
297
310
|
|
|
298
311
|
### Example: File Selection
|
|
299
312
|
|
|
300
313
|
Given this configuration:
|
|
314
|
+
|
|
301
315
|
```toml
|
|
302
316
|
[global]
|
|
303
317
|
include = ["docs/**/*.md", "README.md"]
|
|
@@ -488,4 +502,4 @@ find . -name "*.md" -o -name "*.markdown" | head -10
|
|
|
488
502
|
- [Configuration Guide](../README.md#configuration) - Basic configuration setup
|
|
489
503
|
- [Rules Reference](RULES.md) - Complete list of available rules
|
|
490
504
|
- [CLI Reference](../README.md#command-line-interface) - Command-line options
|
|
491
|
-
- [Rule-specific Configuration](../README.md#configuration-file-example) - Configuring individual rules
|
|
505
|
+
- [Rule-specific Configuration](../README.md#configuration-file-example) - Configuring individual rules
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# MD001 - Heading levels should only increment by one
|
|
2
|
+
|
|
3
|
+
## What this rule does
|
|
4
|
+
|
|
5
|
+
Prevents skipping heading levels (like jumping from # to ### without ##).
|
|
6
|
+
|
|
7
|
+
## Why this matters
|
|
8
|
+
|
|
9
|
+
- **Document structure**: Logical heading hierarchy makes documents easier to navigate
|
|
10
|
+
- **Accessibility**: Screen readers rely on proper heading order to help users
|
|
11
|
+
- **Table of contents**: Automated TOC generators need correct heading levels
|
|
12
|
+
- **SEO**: Search engines use heading structure to understand content
|
|
13
|
+
|
|
14
|
+
## Examples
|
|
15
|
+
|
|
16
|
+
### ✅ Correct
|
|
17
|
+
|
|
18
|
+
```markdown
|
|
19
|
+
# Title
|
|
20
|
+
## Chapter 1
|
|
21
|
+
### Section 1.1
|
|
22
|
+
### Section 1.2
|
|
23
|
+
## Chapter 2
|
|
24
|
+
### Section 2.1
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
### ❌ Incorrect
|
|
28
|
+
|
|
29
|
+
```markdown
|
|
30
|
+
# Title
|
|
31
|
+
### Section 1.1 (skipped level 2)
|
|
32
|
+
##### Subsection (skipped levels 2, 3, and 4)
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
### 🔧 Fixed
|
|
36
|
+
|
|
37
|
+
```markdown
|
|
38
|
+
# Title
|
|
39
|
+
## Section 1.1
|
|
40
|
+
### Subsection
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## Configuration
|
|
44
|
+
|
|
45
|
+
This rule has no configuration options.
|
|
46
|
+
|
|
47
|
+
## Automatic fixes
|
|
48
|
+
|
|
49
|
+
This rule automatically adjusts heading levels to maintain proper hierarchy, changing skipped levels to the next appropriate level.
|
|
50
|
+
|
|
51
|
+
## Learn more
|
|
52
|
+
|
|
53
|
+
- [Web Content Accessibility Guidelines - Headings](https://www.w3.org/WAI/tutorials/page-structure/headings/) - Why heading structure matters
|
|
54
|
+
- [CommonMark headings](https://spec.commonmark.org/0.31.2/#atx-headings) - Technical specification
|
|
55
|
+
|
|
56
|
+
## Related rules
|
|
57
|
+
|
|
58
|
+
- [MD002](md002.md) - First heading should be a top-level heading
|
|
59
|
+
- [MD003](md003.md) - Heading style should be consistent
|
|
60
|
+
- [MD022](md022.md) - Headings should be surrounded by blank lines
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# MD002 - First heading should be a top-level heading
|
|
2
|
+
|
|
3
|
+
## What this rule does
|
|
4
|
+
|
|
5
|
+
Ensures the first heading in your document is a level 1 heading (# Title).
|
|
6
|
+
|
|
7
|
+
## Why this matters
|
|
8
|
+
|
|
9
|
+
- **Document structure**: Every document needs a clear main title
|
|
10
|
+
- **Accessibility**: Screen readers expect documents to start with a main heading
|
|
11
|
+
- **Navigation**: Table of contents generators need a top-level heading
|
|
12
|
+
- **SEO**: Search engines look for a main H1 heading
|
|
13
|
+
|
|
14
|
+
## Examples
|
|
15
|
+
|
|
16
|
+
### ✅ Correct
|
|
17
|
+
|
|
18
|
+
```markdown
|
|
19
|
+
# Document Title
|
|
20
|
+
|
|
21
|
+
## Section 1
|
|
22
|
+
|
|
23
|
+
### Subsection 1.1
|
|
24
|
+
|
|
25
|
+
## Section 2
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
### ❌ Incorrect
|
|
29
|
+
|
|
30
|
+
```markdown
|
|
31
|
+
## Document Title (starts with level 2)
|
|
32
|
+
|
|
33
|
+
### Section 1
|
|
34
|
+
|
|
35
|
+
# Main Heading (H1 appears later)
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
### 🔧 Fixed
|
|
39
|
+
|
|
40
|
+
```markdown
|
|
41
|
+
# Document Title
|
|
42
|
+
|
|
43
|
+
## Section 1
|
|
44
|
+
|
|
45
|
+
### Subsection 1.1
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## Configuration
|
|
49
|
+
|
|
50
|
+
```yaml
|
|
51
|
+
MD002:
|
|
52
|
+
level: 1 # The level the first heading should be (default: 1)
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## Automatic fixes
|
|
56
|
+
|
|
57
|
+
This rule automatically changes the first heading to the configured level (default: H1).
|
|
58
|
+
|
|
59
|
+
## Learn more
|
|
60
|
+
|
|
61
|
+
- [Web Content Accessibility Guidelines - Page Title](https://www.w3.org/WAI/WCAG21/Understanding/page-titled.html) - Why documents need titles
|
|
62
|
+
- [CommonMark headings](https://spec.commonmark.org/0.31.2/#atx-headings) - Technical specification
|
|
63
|
+
|
|
64
|
+
## Related rules
|
|
65
|
+
|
|
66
|
+
- [MD001](md001.md) - Heading levels should only increment by one
|
|
67
|
+
- [MD003](md003.md) - Heading style should be consistent
|
|
68
|
+
- [MD025](md025.md) - Only one top-level heading allowed
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
# MD003 - Heading style should be consistent
|
|
2
|
+
|
|
3
|
+
## What this rule does
|
|
4
|
+
|
|
5
|
+
Ensures all headings in your document use the same formatting style.
|
|
6
|
+
|
|
7
|
+
## Why this matters
|
|
8
|
+
|
|
9
|
+
- **Readability**: Consistent heading styles make documents easier to scan and navigate
|
|
10
|
+
- **Professionalism**: Mixed heading styles look unprofessional and unpolished
|
|
11
|
+
- **Tool compatibility**: Some tools expect consistent heading formats for navigation features
|
|
12
|
+
|
|
13
|
+
## Examples
|
|
14
|
+
|
|
15
|
+
### ✅ Correct (using # style)
|
|
16
|
+
|
|
17
|
+
```markdown
|
|
18
|
+
# First Level Heading
|
|
19
|
+
## Second Level Heading
|
|
20
|
+
### Third Level Heading
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
### ✅ Correct (using underline style)
|
|
24
|
+
|
|
25
|
+
```markdown
|
|
26
|
+
First Level Heading
|
|
27
|
+
==================
|
|
28
|
+
|
|
29
|
+
Second Level Heading
|
|
30
|
+
------------------
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
### ❌ Incorrect (mixed styles)
|
|
34
|
+
|
|
35
|
+
<!-- rumdl-disable MD003 -->
|
|
36
|
+
|
|
37
|
+
```markdown
|
|
38
|
+
# First Level Heading
|
|
39
|
+
|
|
40
|
+
Second Level Heading
|
|
41
|
+
------------------
|
|
42
|
+
|
|
43
|
+
### Third Level Heading
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
<!-- rumdl-enable MD003 -->
|
|
47
|
+
|
|
48
|
+
### 🔧 Fixed
|
|
49
|
+
|
|
50
|
+
```markdown
|
|
51
|
+
# First Level Heading
|
|
52
|
+
## Second Level Heading
|
|
53
|
+
### Third Level Heading
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## Configuration
|
|
57
|
+
|
|
58
|
+
```yaml
|
|
59
|
+
MD003:
|
|
60
|
+
style: "consistent" # Options: "consistent", "atx", "atx_closed", "setext"
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### Style options explained
|
|
64
|
+
|
|
65
|
+
- `"consistent"` (default): Use whatever style appears first in your document
|
|
66
|
+
- `"atx"`: Use # symbols (`# Heading`)
|
|
67
|
+
- `"atx_closed"`: Use # symbols at both ends (`# Heading #`)
|
|
68
|
+
- `"setext"`: Use underlines (equals for level 1, dashes for level 2)
|
|
69
|
+
|
|
70
|
+
> **Note**: Underline style only works for level 1 and 2 headings. Level 3 and below must use # symbols.
|
|
71
|
+
|
|
72
|
+
## Automatic fixes
|
|
73
|
+
|
|
74
|
+
This rule can automatically convert all headings to match your configured style or the first style found in the document.
|
|
75
|
+
|
|
76
|
+
## Learn more
|
|
77
|
+
|
|
78
|
+
- [CommonMark specification for headings](https://spec.commonmark.org/0.31.2/#atx-headings) - Technical details about heading syntax
|
|
79
|
+
- [Setext headings](https://spec.commonmark.org/0.31.2/#setext-headings) - Details about underline-style headings
|
|
80
|
+
|
|
81
|
+
## Related rules
|
|
82
|
+
|
|
83
|
+
- [MD001](md001.md) - Heading levels should only increment by one
|
|
84
|
+
- [MD022](md022.md) - Headings should be surrounded by blank lines
|
|
85
|
+
- [MD023](md023.md) - Headings must start at the beginning of the line
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
# MD004 - Unordered list style should be consistent
|
|
2
|
+
|
|
3
|
+
## What this rule does
|
|
4
|
+
|
|
5
|
+
Ensures all unordered lists use the same marker (* or + or -) throughout your document.
|
|
6
|
+
|
|
7
|
+
## Why this matters
|
|
8
|
+
|
|
9
|
+
- **Visual consistency**: Mixed list markers look unprofessional and disorganized
|
|
10
|
+
- **Readability**: Consistent markers make it easier to scan lists
|
|
11
|
+
- **Maintenance**: One style is easier to remember and apply
|
|
12
|
+
- **Style guides**: Most organizations standardize on one list marker
|
|
13
|
+
|
|
14
|
+
## Examples
|
|
15
|
+
|
|
16
|
+
### ✅ Correct (using * throughout)
|
|
17
|
+
|
|
18
|
+
```markdown
|
|
19
|
+
* Item 1
|
|
20
|
+
* Item 2
|
|
21
|
+
* Nested item 1
|
|
22
|
+
* Nested item 2
|
|
23
|
+
* Item 3
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
### ✅ Correct (using - throughout)
|
|
27
|
+
|
|
28
|
+
```markdown
|
|
29
|
+
- Item 1
|
|
30
|
+
- Item 2
|
|
31
|
+
- Nested item 1
|
|
32
|
+
- Nested item 2
|
|
33
|
+
- Item 3
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
### ❌ Incorrect
|
|
37
|
+
|
|
38
|
+
```markdown
|
|
39
|
+
* Item 1
|
|
40
|
+
+ Item 2 (different marker)
|
|
41
|
+
- Nested item 1
|
|
42
|
+
* Nested item 2
|
|
43
|
+
- Item 3 (yet another marker)
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### 🔧 Fixed
|
|
47
|
+
|
|
48
|
+
```markdown
|
|
49
|
+
* Item 1
|
|
50
|
+
* Item 2
|
|
51
|
+
* Nested item 1
|
|
52
|
+
* Nested item 2
|
|
53
|
+
* Item 3
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## Configuration
|
|
57
|
+
|
|
58
|
+
```yaml
|
|
59
|
+
MD004:
|
|
60
|
+
style: "consistent" # Options: "consistent", "asterisk", "plus", "dash"
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### Style options
|
|
64
|
+
|
|
65
|
+
- `"consistent"` (default): Use whatever marker appears first in your document
|
|
66
|
+
- `"asterisk"`: Always use * markers
|
|
67
|
+
- `"plus"`: Always use + markers
|
|
68
|
+
- `"dash"`: Always use - markers
|
|
69
|
+
|
|
70
|
+
## Automatic fixes
|
|
71
|
+
|
|
72
|
+
This rule automatically converts all list markers to match your configured style or the first marker found.
|
|
73
|
+
|
|
74
|
+
## Learn more
|
|
75
|
+
|
|
76
|
+
- [CommonMark lists](https://spec.commonmark.org/0.31.2/#lists) - Technical specification
|
|
77
|
+
- [Markdown Guide - Lists](https://www.markdownguide.org/basic-syntax/#lists) - List best practices
|
|
78
|
+
|
|
79
|
+
## Related rules
|
|
80
|
+
|
|
81
|
+
- [MD005](md005.md) - List indentation
|
|
82
|
+
- [MD007](md007.md) - Unordered list indentation
|
|
83
|
+
- [MD030](md030.md) - List marker spacing
|
|
84
|
+
- [MD032](md032.md) - Lists should be surrounded by blank lines
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
# MD005 - List indentation should be consistent
|
|
2
|
+
|
|
3
|
+
## What this rule does
|
|
4
|
+
|
|
5
|
+
Ensures all list items at the same level use the same indentation (0 spaces for top level, 2 spaces per nested level).
|
|
6
|
+
|
|
7
|
+
## Why this matters
|
|
8
|
+
|
|
9
|
+
- **Visual alignment**: Consistent indentation makes lists easier to scan
|
|
10
|
+
- **Readability**: Clear hierarchy helps readers understand list structure
|
|
11
|
+
- **Rendering**: Some Markdown processors require specific indentation
|
|
12
|
+
- **Maintenance**: Consistent spacing is easier to edit and update
|
|
13
|
+
|
|
14
|
+
## Examples
|
|
15
|
+
|
|
16
|
+
### ✅ Correct
|
|
17
|
+
|
|
18
|
+
```markdown
|
|
19
|
+
* Item 1
|
|
20
|
+
* Item 2
|
|
21
|
+
* Nested item (2 spaces)
|
|
22
|
+
* Another nested item
|
|
23
|
+
* Deep nested (4 spaces)
|
|
24
|
+
* Item 3
|
|
25
|
+
|
|
26
|
+
1. First item
|
|
27
|
+
2. Second item
|
|
28
|
+
1. Nested ordered (2 spaces)
|
|
29
|
+
2. Another nested
|
|
30
|
+
3. Third item
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
### ❌ Incorrect
|
|
34
|
+
|
|
35
|
+
```markdown
|
|
36
|
+
* Item 1
|
|
37
|
+
* Item 2 (wrong: 1 space)
|
|
38
|
+
* Nested (wrong: 3 spaces)
|
|
39
|
+
* Another (wrong: 4 spaces for level 2)
|
|
40
|
+
|
|
41
|
+
1. First item
|
|
42
|
+
2. Second item (wrong: 1 space)
|
|
43
|
+
1. Nested (wrong: 4 spaces)
|
|
44
|
+
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### 🔧 Fixed
|
|
48
|
+
|
|
49
|
+
```markdown
|
|
50
|
+
* Item 1
|
|
51
|
+
* Item 2
|
|
52
|
+
* Nested
|
|
53
|
+
* Another
|
|
54
|
+
|
|
55
|
+
1. First item
|
|
56
|
+
2. Second item
|
|
57
|
+
1. Nested
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## Configuration
|
|
61
|
+
|
|
62
|
+
This rule has no configuration options. It enforces:
|
|
63
|
+
- 0 spaces for top-level items
|
|
64
|
+
- 2 spaces per nested level
|
|
65
|
+
|
|
66
|
+
## Automatic fixes
|
|
67
|
+
|
|
68
|
+
This rule automatically adjusts list item indentation to the correct number of spaces for each level.
|
|
69
|
+
|
|
70
|
+
## Learn more
|
|
71
|
+
|
|
72
|
+
- [CommonMark lists](https://spec.commonmark.org/0.31.2/#lists) - Technical specification
|
|
73
|
+
- [Markdown Guide - Lists](https://www.markdownguide.org/basic-syntax/#lists) - List formatting guide
|
|
74
|
+
|
|
75
|
+
## Related rules
|
|
76
|
+
|
|
77
|
+
- [MD004](md004.md) - Unordered list style should be consistent
|
|
78
|
+
- [MD007](md007.md) - Unordered list indentation
|
|
79
|
+
- [MD030](md030.md) - Spaces after list markers
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
# MD006 - Consider starting lists at the beginning of the line
|
|
2
|
+
|
|
3
|
+
## What this rule does
|
|
4
|
+
|
|
5
|
+
Ensures top-level list items start at the beginning of the line (no indentation).
|
|
6
|
+
|
|
7
|
+
## Why this matters
|
|
8
|
+
|
|
9
|
+
- **Clarity**: Indented top-level lists can be confused with nested lists
|
|
10
|
+
- **Consistency**: All documents should start lists the same way
|
|
11
|
+
- **Readability**: Clear distinction between top-level and nested items
|
|
12
|
+
- **Standards**: Most Markdown style guides require lists to start at column 0
|
|
13
|
+
|
|
14
|
+
## Examples
|
|
15
|
+
|
|
16
|
+
### ✅ Correct
|
|
17
|
+
|
|
18
|
+
```markdown
|
|
19
|
+
* Item 1
|
|
20
|
+
* Item 2
|
|
21
|
+
* Nested item
|
|
22
|
+
* Another nested item
|
|
23
|
+
* Item 3
|
|
24
|
+
|
|
25
|
+
- First item
|
|
26
|
+
- Second item
|
|
27
|
+
- Nested under second
|
|
28
|
+
- Third item
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### ❌ Incorrect
|
|
32
|
+
|
|
33
|
+
```markdown
|
|
34
|
+
* Item 1 (indented 2 spaces)
|
|
35
|
+
* Item 2 (indented 2 spaces)
|
|
36
|
+
* Nested item
|
|
37
|
+
* Item 3 (indented 2 spaces)
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
### 🔧 Fixed
|
|
41
|
+
|
|
42
|
+
```markdown
|
|
43
|
+
* Item 1
|
|
44
|
+
* Item 2
|
|
45
|
+
* Nested item
|
|
46
|
+
* Item 3
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## Configuration
|
|
50
|
+
|
|
51
|
+
This rule has no configuration options. Top-level lists must start at the beginning of the line.
|
|
52
|
+
|
|
53
|
+
## Automatic fixes
|
|
54
|
+
|
|
55
|
+
This rule automatically removes indentation from top-level list items.
|
|
56
|
+
|
|
57
|
+
## Special notes
|
|
58
|
+
|
|
59
|
+
- Only applies to unordered lists (*, -, +)
|
|
60
|
+
- Ordered lists (1., 2., etc.) are not affected
|
|
61
|
+
- Each list in a document is evaluated separately
|
|
62
|
+
|
|
63
|
+
## Learn more
|
|
64
|
+
|
|
65
|
+
- [CommonMark lists](https://spec.commonmark.org/0.31.2/#lists) - Technical specification
|
|
66
|
+
- [Markdown Guide - Lists](https://www.markdownguide.org/basic-syntax/#lists) - List best practices
|
|
67
|
+
|
|
68
|
+
## Related rules
|
|
69
|
+
|
|
70
|
+
- [MD004](md004.md) - Unordered list style should be consistent
|
|
71
|
+
- [MD005](md005.md) - List indentation should be consistent
|
|
72
|
+
- [MD007](md007.md) - Unordered list indentation
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# MD007 - Keep list indentation consistent
|
|
2
|
+
|
|
3
|
+
## What this rule does
|
|
4
|
+
|
|
5
|
+
Ensures nested list items are indented with exactly 2 spaces per level for consistent formatting.
|
|
6
|
+
|
|
7
|
+
## Why this matters
|
|
8
|
+
|
|
9
|
+
- **Readability**: Consistent indentation makes nested lists easy to scan and understand
|
|
10
|
+
- **Professional appearance**: Well-formatted lists look polished and organized
|
|
11
|
+
- **Tool compatibility**: Many Markdown tools expect 2-space indentation for proper rendering
|
|
12
|
+
- **Team consistency**: Standard indentation prevents formatting conflicts in shared documents
|
|
13
|
+
|
|
14
|
+
## Examples
|
|
15
|
+
|
|
16
|
+
### ✅ Correct
|
|
17
|
+
|
|
18
|
+
```markdown
|
|
19
|
+
* Chapter 1
|
|
20
|
+
* Section 1.1
|
|
21
|
+
* Subsection 1.1.1
|
|
22
|
+
* Subsection 1.1.2
|
|
23
|
+
* Section 1.2
|
|
24
|
+
* Chapter 2
|
|
25
|
+
* Section 2.1
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
### ❌ Incorrect
|
|
29
|
+
|
|
30
|
+
<!-- rumdl-disable MD007 -->
|
|
31
|
+
|
|
32
|
+
```markdown
|
|
33
|
+
* Chapter 1
|
|
34
|
+
* Section 1.1 (3 spaces - too many!)
|
|
35
|
+
* Subsection 1.1.1 (6 spaces)
|
|
36
|
+
* Section 1.2 (1 space - too few!)
|
|
37
|
+
* Chapter 2
|
|
38
|
+
* Section 2.1 (4 spaces - inconsistent)
|
|
39
|
+
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
<!-- rumdl-enable MD007 -->
|
|
43
|
+
|
|
44
|
+
### 🔧 Fixed
|
|
45
|
+
|
|
46
|
+
```markdown
|
|
47
|
+
* Chapter 1
|
|
48
|
+
* Section 1.1
|
|
49
|
+
* Subsection 1.1.1
|
|
50
|
+
* Section 1.2
|
|
51
|
+
* Chapter 2
|
|
52
|
+
* Section 2.1
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## Configuration
|
|
56
|
+
|
|
57
|
+
```yaml
|
|
58
|
+
MD007:
|
|
59
|
+
indent: 2 # Number of spaces per indentation level (default: 2)
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## Automatic fixes
|
|
63
|
+
|
|
64
|
+
This rule automatically adjusts the indentation of nested list items to use exactly 2 spaces (or your configured value) per nesting level.
|
|
65
|
+
|
|
66
|
+
## Learn more
|
|
67
|
+
|
|
68
|
+
- [Lists in Markdown](https://www.markdownguide.org/basic-syntax/#lists-1) - How to create well-formatted lists
|
|
69
|
+
- [CommonMark specification](https://spec.commonmark.org/0.31.2/#list-items) - Technical details about list formatting
|
|
70
|
+
|
|
71
|
+
## Related rules
|
|
72
|
+
|
|
73
|
+
- [MD004](md004.md) - Use consistent markers for unordered lists
|
|
74
|
+
- [MD005](md005.md) - Keep list indentation consistent
|
|
75
|
+
- [MD006](md006.md) - Start lists at the beginning of the line
|