rumdl 0.0.82__tar.gz → 0.0.83__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.82 → rumdl-0.0.83}/Cargo.lock +39 -39
- {rumdl-0.0.82 → rumdl-0.0.83}/Cargo.toml +1 -1
- {rumdl-0.0.82 → rumdl-0.0.83}/PKG-INFO +2 -1
- {rumdl-0.0.82 → rumdl-0.0.83}/README.md +1 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/benches/fix_performance.rs +1 -1
- {rumdl-0.0.82 → rumdl-0.0.83}/docs/md031.md +4 -1
- {rumdl-0.0.82 → rumdl-0.0.83}/docs/md037.md +1 -1
- {rumdl-0.0.82 → rumdl-0.0.83}/docs/md040.md +1 -1
- {rumdl-0.0.82 → rumdl-0.0.83}/docs/md043.md +4 -5
- {rumdl-0.0.82 → rumdl-0.0.83}/docs/md045.md +1 -1
- {rumdl-0.0.82 → rumdl-0.0.83}/docs/md046.md +7 -7
- {rumdl-0.0.82 → rumdl-0.0.83}/docs/md047.md +4 -1
- {rumdl-0.0.82 → rumdl-0.0.83}/docs/md048.md +1 -1
- {rumdl-0.0.82 → rumdl-0.0.83}/src/lint_context.rs +17 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/src/rules/md004_unordered_list_style.rs +4 -14
- {rumdl-0.0.82 → rumdl-0.0.83}/src/rules/md005_list_indent.rs +1 -5
- {rumdl-0.0.82 → rumdl-0.0.83}/src/rules/md006_start_bullets.rs +4 -4
- {rumdl-0.0.82 → rumdl-0.0.83}/src/rules/md009_trailing_spaces.rs +15 -17
- {rumdl-0.0.82 → rumdl-0.0.83}/src/rules/md010_no_hard_tabs.rs +25 -20
- {rumdl-0.0.82 → rumdl-0.0.83}/src/rules/md011_no_reversed_links.rs +33 -17
- {rumdl-0.0.82 → rumdl-0.0.83}/src/rules/md027_multiple_spaces_blockquote.rs +1 -1
- {rumdl-0.0.82 → rumdl-0.0.83}/src/rules/md029_ordered_list_prefix.rs +32 -14
- {rumdl-0.0.82 → rumdl-0.0.83}/src/rules/md030_list_marker_space.rs +12 -31
- {rumdl-0.0.82 → rumdl-0.0.83}/src/rules/md031_blanks_around_fences.rs +128 -68
- {rumdl-0.0.82 → rumdl-0.0.83}/src/rules/md037_spaces_around_emphasis.rs +18 -18
- {rumdl-0.0.82 → rumdl-0.0.83}/src/rules/md039_no_space_in_links.rs +8 -14
- {rumdl-0.0.82 → rumdl-0.0.83}/src/rules/md040_fenced_code_language.rs +93 -72
- {rumdl-0.0.82 → rumdl-0.0.83}/src/rules/md043_required_headings.rs +19 -57
- {rumdl-0.0.82 → rumdl-0.0.83}/src/rules/md044_proper_names.rs +16 -14
- {rumdl-0.0.82 → rumdl-0.0.83}/src/rules/md045_no_alt_text.rs +41 -10
- {rumdl-0.0.82 → rumdl-0.0.83}/src/rules/md046_code_block_style.rs +180 -3
- rumdl-0.0.83/src/rules/md048_code_fence_style.rs +306 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/src/rules/md050_strong_style.rs +35 -8
- {rumdl-0.0.82 → rumdl-0.0.83}/src/rules/md052_reference_links_images.rs +7 -19
- {rumdl-0.0.82 → rumdl-0.0.83}/src/rules/md055_table_pipe_style.rs +2 -2
- {rumdl-0.0.82 → rumdl-0.0.83}/src/rules/md056_table_column_count.rs +1 -1
- {rumdl-0.0.82 → rumdl-0.0.83}/src/rules/md058_blanks_around_tables.rs +1 -1
- {rumdl-0.0.82 → rumdl-0.0.83}/src/utils/code_block_utils.rs +51 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/src/utils/fix_utils.rs +4 -2
- {rumdl-0.0.82 → rumdl-0.0.83}/src/utils/table_utils.rs +3 -8
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/commonmark_compliance_tests.rs +11 -5
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/cross_platform_compatibility_tests.rs +7 -7
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/rules/md010_test.rs +68 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/rules/md029_test.rs +58 -0
- rumdl-0.0.83/tests/rules/md031_test.rs +221 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/rules/md040_test.rs +32 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/rules/md044_test.rs +93 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/rules/md045_test.rs +62 -6
- rumdl-0.0.83/tests/rules/md046_test.rs +385 -0
- rumdl-0.0.83/tests/rules/md048_test.rs +239 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/rules/md050_test.rs +46 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/thread_safety_tests.rs +4 -3
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/utils/code_block_utils_test.rs +73 -0
- rumdl-0.0.82/src/rules/md048_code_fence_style.rs +0 -167
- rumdl-0.0.82/tests/rules/md031_test.rs +0 -45
- rumdl-0.0.82/tests/rules/md046_test.rs +0 -144
- rumdl-0.0.82/tests/rules/md048_test.rs +0 -95
- {rumdl-0.0.82 → rumdl-0.0.83}/.rumdl.toml +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/MANIFEST.in +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/Makefile +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/assets/logo.png +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/benches/range_performance.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/benches/range_utils_benchmark.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/benches/rule_performance.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/benches/simple_fix_bench.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/docs/RULES.md +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/docs/global-settings.md +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/docs/md001.md +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/docs/md002.md +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/docs/md003.md +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/docs/md004.md +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/docs/md005.md +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/docs/md006.md +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/docs/md007.md +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/docs/md009.md +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/docs/md010.md +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/docs/md011.md +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/docs/md012.md +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/docs/md013.md +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/docs/md014.md +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/docs/md018.md +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/docs/md019.md +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/docs/md020.md +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/docs/md021.md +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/docs/md022.md +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/docs/md023.md +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/docs/md024.md +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/docs/md025.md +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/docs/md026.md +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/docs/md027.md +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/docs/md028.md +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/docs/md029.md +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/docs/md030.md +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/docs/md032.md +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/docs/md033.md +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/docs/md034.md +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/docs/md035.md +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/docs/md036.md +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/docs/md038.md +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/docs/md039.md +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/docs/md041.md +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/docs/md042.md +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/docs/md044.md +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/docs/md049.md +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/docs/md050.md +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/docs/md051.md +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/docs/md052.md +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/docs/md053.md +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/docs/md054.md +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/docs/md055.md +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/docs/md056.md +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/docs/md057.md +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/docs/md058.md +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/issues/plan-rule-parity-with-markdownlint.md +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/parity_check.py +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/pyproject.toml +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/python/MANIFEST.in +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/python/PYTHON-README.md +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/python/rumdl/__init__.py +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/python/rumdl/__main__.py +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/python/rumdl/py.typed +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/rumdl.toml.example +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/src/config.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/src/init.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/src/lib.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/src/lsp/mod.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/src/lsp/server.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/src/lsp/types.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/src/main.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/src/markdownlint_config.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/src/parallel.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/src/performance.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/src/profiling.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/src/python.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/src/rule.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/src/rules/blockquote_utils.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/src/rules/code_block_utils.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/src/rules/code_fence_utils.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/src/rules/emphasis_style.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/src/rules/front_matter_utils.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/src/rules/heading_utils.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/src/rules/list_utils.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/src/rules/md001_heading_increment.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/src/rules/md002_first_heading_h1.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/src/rules/md003_heading_style.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/src/rules/md007_ul_indent.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/src/rules/md012_no_multiple_blanks.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/src/rules/md013_line_length.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/src/rules/md014_commands_show_output.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/src/rules/md018_no_missing_space_atx.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/src/rules/md019_no_multiple_space_atx.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/src/rules/md020_no_missing_space_closed_atx.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/src/rules/md021_no_multiple_space_closed_atx.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/src/rules/md022_blanks_around_headings.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/src/rules/md023_heading_start_left.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/src/rules/md024_no_duplicate_heading.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/src/rules/md025_single_title.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/src/rules/md026_no_trailing_punctuation.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/src/rules/md028_no_blanks_blockquote.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/src/rules/md032_blanks_around_lists.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/src/rules/md033_no_inline_html.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/src/rules/md034_no_bare_urls.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/src/rules/md035_hr_style.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/src/rules/md036_no_emphasis_only_first.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/src/rules/md038_no_space_in_code.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/src/rules/md041_first_line_heading.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/src/rules/md042_no_empty_links.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/src/rules/md047_single_trailing_newline.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/src/rules/md049_emphasis_style.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/src/rules/md051_link_fragments.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/src/rules/md053_link_image_reference_definitions.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/src/rules/md054_link_image_style.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/src/rules/md057_existing_relative_links.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/src/rules/mod.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/src/rules/strong_style.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/src/utils/ast_utils.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/src/utils/document_structure.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/src/utils/early_returns.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/src/utils/element_cache.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/src/utils/markdown_elements.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/src/utils/mod.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/src/utils/range_utils.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/src/utils/regex_cache.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/src/utils/string_interner.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/advanced_integration_tests.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/character_ranges/additional_tests.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/character_ranges/basic_tests.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/character_ranges/comprehensive_tests.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/character_ranges/extended_tests.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/character_ranges/mod.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/character_ranges/unicode_utils.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/cli_duplication_test.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/cli_integration_tests.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/cli_lsp_fix_consistency.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/comprehensive_integration_tests.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/config_application_tests.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/config_file_command_test.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/config_tests.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/configuration_inheritance_tests.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/consistency_regression_tests.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/final_confidence_assessment.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/init_command_test.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/init_tests.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/integration_tests.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/json_output_test.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/lib.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/lsp_editor_integration_tests.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/lsp_integration_tests.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/lsp_memory_leak_tests.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/lsp_tests.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/malformed_markdown_stress_tests.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/markdownlint_cli_integration.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/markdownlint_config_test.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/md030_edge_cases.md +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/output_format_tests.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/perf_check.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/performance_validation_tests.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/pyproject_config_tests.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/real_world_repository_tests.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/regression_prevention_tests.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/rules/md001_test.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/rules/md001_unicode_test.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/rules/md002_test.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/rules/md003_test.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/rules/md004_test.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/rules/md005_test.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/rules/md006_test.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/rules/md006_unicode_test.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/rules/md007_test.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/rules/md009_test.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/rules/md011_test.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/rules/md012_test.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/rules/md013_test.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/rules/md014_test.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/rules/md018_test.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/rules/md019_test.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/rules/md020_test.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/rules/md021_test.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/rules/md022_test.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/rules/md023_extended_test.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/rules/md023_test.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/rules/md024_test.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/rules/md025_test.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/rules/md026_test.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/rules/md027_test.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/rules/md028_test.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/rules/md030_test.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/rules/md032_test.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/rules/md033_extended_test.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/rules/md033_test.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/rules/md034_test.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/rules/md035_test.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/rules/md036_test.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/rules/md037_test.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/rules/md038_test.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/rules/md039_test.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/rules/md041_test.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/rules/md042_test.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/rules/md043_test.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/rules/md047_test.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/rules/md049_test.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/rules/md051_test.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/rules/md052_test.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/rules/md053_additional_test.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/rules/md053_proptest.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/rules/md053_test.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/rules/md054_test.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/rules/md054_unicode_test.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/rules/md055_test.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/rules/md056_test.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/rules/md057_test.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/rules/md058_test.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/rules/mod.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/unicode_edge_case_tests.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/utils/blockquote_utils_test.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/utils/code_block_utils_extended_test.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/utils/core_utils_test.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/utils/front_matter_utils_test.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/utils/line_index_test.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/utils/mod.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/utils_markdown_edge_cases.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/utils_tests.rs +0 -0
- {rumdl-0.0.82 → rumdl-0.0.83}/tests/vscode_extension_fixes.rs +0 -0
|
@@ -49,9 +49,9 @@ checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299"
|
|
|
49
49
|
|
|
50
50
|
[[package]]
|
|
51
51
|
name = "anstream"
|
|
52
|
-
version = "0.6.
|
|
52
|
+
version = "0.6.19"
|
|
53
53
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
54
|
-
checksum = "
|
|
54
|
+
checksum = "301af1932e46185686725e0fad2f8f2aa7da69dd70bf6ecc44d6b703844a3933"
|
|
55
55
|
dependencies = [
|
|
56
56
|
"anstyle",
|
|
57
57
|
"anstyle-parse",
|
|
@@ -64,33 +64,33 @@ dependencies = [
|
|
|
64
64
|
|
|
65
65
|
[[package]]
|
|
66
66
|
name = "anstyle"
|
|
67
|
-
version = "1.0.
|
|
67
|
+
version = "1.0.11"
|
|
68
68
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
69
|
-
checksum = "
|
|
69
|
+
checksum = "862ed96ca487e809f1c8e5a8447f6ee2cf102f846893800b20cebdf541fc6bbd"
|
|
70
70
|
|
|
71
71
|
[[package]]
|
|
72
72
|
name = "anstyle-parse"
|
|
73
|
-
version = "0.2.
|
|
73
|
+
version = "0.2.7"
|
|
74
74
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
75
|
-
checksum = "
|
|
75
|
+
checksum = "4e7644824f0aa2c7b9384579234ef10eb7efb6a0deb83f9630a49594dd9c15c2"
|
|
76
76
|
dependencies = [
|
|
77
77
|
"utf8parse",
|
|
78
78
|
]
|
|
79
79
|
|
|
80
80
|
[[package]]
|
|
81
81
|
name = "anstyle-query"
|
|
82
|
-
version = "1.1.
|
|
82
|
+
version = "1.1.3"
|
|
83
83
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
84
|
-
checksum = "
|
|
84
|
+
checksum = "6c8bdeb6047d8983be085bab0ba1472e6dc604e7041dbf6fcd5e71523014fae9"
|
|
85
85
|
dependencies = [
|
|
86
86
|
"windows-sys 0.59.0",
|
|
87
87
|
]
|
|
88
88
|
|
|
89
89
|
[[package]]
|
|
90
90
|
name = "anstyle-wincon"
|
|
91
|
-
version = "3.0.
|
|
91
|
+
version = "3.0.9"
|
|
92
92
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
93
|
-
checksum = "
|
|
93
|
+
checksum = "403f75924867bb1033c59fbf0797484329750cfbe3c4325cd33127941fabc882"
|
|
94
94
|
dependencies = [
|
|
95
95
|
"anstyle",
|
|
96
96
|
"once_cell_polyfill",
|
|
@@ -226,9 +226,9 @@ dependencies = [
|
|
|
226
226
|
|
|
227
227
|
[[package]]
|
|
228
228
|
name = "bumpalo"
|
|
229
|
-
version = "3.
|
|
229
|
+
version = "3.18.1"
|
|
230
230
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
231
|
-
checksum = "
|
|
231
|
+
checksum = "793db76d6187cd04dff33004d8e6c9cc4e05cd330500379d2394209271b4aeee"
|
|
232
232
|
|
|
233
233
|
[[package]]
|
|
234
234
|
name = "bytes"
|
|
@@ -244,9 +244,9 @@ checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5"
|
|
|
244
244
|
|
|
245
245
|
[[package]]
|
|
246
246
|
name = "cc"
|
|
247
|
-
version = "1.2.
|
|
247
|
+
version = "1.2.26"
|
|
248
248
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
249
|
-
checksum = "
|
|
249
|
+
checksum = "956a5e21988b87f372569b66183b78babf23ebc2e744b733e4350a752c4dafac"
|
|
250
250
|
dependencies = [
|
|
251
251
|
"shlex",
|
|
252
252
|
]
|
|
@@ -341,9 +341,9 @@ checksum = "f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6"
|
|
|
341
341
|
|
|
342
342
|
[[package]]
|
|
343
343
|
name = "colorchoice"
|
|
344
|
-
version = "1.0.
|
|
344
|
+
version = "1.0.4"
|
|
345
345
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
346
|
-
checksum = "
|
|
346
|
+
checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75"
|
|
347
347
|
|
|
348
348
|
[[package]]
|
|
349
349
|
name = "colored"
|
|
@@ -847,9 +847,9 @@ checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
|
|
|
847
847
|
|
|
848
848
|
[[package]]
|
|
849
849
|
name = "hashbrown"
|
|
850
|
-
version = "0.15.
|
|
850
|
+
version = "0.15.4"
|
|
851
851
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
852
|
-
checksum = "
|
|
852
|
+
checksum = "5971ac85611da7067dbfcabef3c70ebb5606018acd9e2a3903a0da507521e0d5"
|
|
853
853
|
dependencies = [
|
|
854
854
|
"foldhash",
|
|
855
855
|
]
|
|
@@ -860,7 +860,7 @@ version = "0.10.0"
|
|
|
860
860
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
861
861
|
checksum = "7382cf6263419f2d8df38c55d7da83da5c18aef87fc7a7fc1fb1e344edfe14c1"
|
|
862
862
|
dependencies = [
|
|
863
|
-
"hashbrown 0.15.
|
|
863
|
+
"hashbrown 0.15.4",
|
|
864
864
|
]
|
|
865
865
|
|
|
866
866
|
[[package]]
|
|
@@ -1035,7 +1035,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
1035
1035
|
checksum = "cea70ddb795996207ad57735b50c5982d8844f38ba9ee5f1aedcfb708a2aa11e"
|
|
1036
1036
|
dependencies = [
|
|
1037
1037
|
"equivalent",
|
|
1038
|
-
"hashbrown 0.15.
|
|
1038
|
+
"hashbrown 0.15.4",
|
|
1039
1039
|
]
|
|
1040
1040
|
|
|
1041
1041
|
[[package]]
|
|
@@ -1459,9 +1459,9 @@ dependencies = [
|
|
|
1459
1459
|
|
|
1460
1460
|
[[package]]
|
|
1461
1461
|
name = "portable-atomic"
|
|
1462
|
-
version = "1.11.
|
|
1462
|
+
version = "1.11.1"
|
|
1463
1463
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1464
|
-
checksum = "
|
|
1464
|
+
checksum = "f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483"
|
|
1465
1465
|
|
|
1466
1466
|
[[package]]
|
|
1467
1467
|
name = "portable-atomic-util"
|
|
@@ -1783,7 +1783,7 @@ dependencies = [
|
|
|
1783
1783
|
|
|
1784
1784
|
[[package]]
|
|
1785
1785
|
name = "rumdl"
|
|
1786
|
-
version = "0.0.
|
|
1786
|
+
version = "0.0.83"
|
|
1787
1787
|
dependencies = [
|
|
1788
1788
|
"anyhow",
|
|
1789
1789
|
"assert_cmd",
|
|
@@ -1958,9 +1958,9 @@ dependencies = [
|
|
|
1958
1958
|
|
|
1959
1959
|
[[package]]
|
|
1960
1960
|
name = "serde_spanned"
|
|
1961
|
-
version = "0.6.
|
|
1961
|
+
version = "0.6.9"
|
|
1962
1962
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1963
|
-
checksum = "
|
|
1963
|
+
checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3"
|
|
1964
1964
|
dependencies = [
|
|
1965
1965
|
"serde",
|
|
1966
1966
|
]
|
|
@@ -2021,9 +2021,9 @@ dependencies = [
|
|
|
2021
2021
|
|
|
2022
2022
|
[[package]]
|
|
2023
2023
|
name = "smallvec"
|
|
2024
|
-
version = "1.15.
|
|
2024
|
+
version = "1.15.1"
|
|
2025
2025
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2026
|
-
checksum = "
|
|
2026
|
+
checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03"
|
|
2027
2027
|
|
|
2028
2028
|
[[package]]
|
|
2029
2029
|
name = "socket2"
|
|
@@ -2222,9 +2222,9 @@ dependencies = [
|
|
|
2222
2222
|
|
|
2223
2223
|
[[package]]
|
|
2224
2224
|
name = "toml"
|
|
2225
|
-
version = "0.8.
|
|
2225
|
+
version = "0.8.23"
|
|
2226
2226
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2227
|
-
checksum = "
|
|
2227
|
+
checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362"
|
|
2228
2228
|
dependencies = [
|
|
2229
2229
|
"serde",
|
|
2230
2230
|
"serde_spanned",
|
|
@@ -2234,18 +2234,18 @@ dependencies = [
|
|
|
2234
2234
|
|
|
2235
2235
|
[[package]]
|
|
2236
2236
|
name = "toml_datetime"
|
|
2237
|
-
version = "0.6.
|
|
2237
|
+
version = "0.6.11"
|
|
2238
2238
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2239
|
-
checksum = "
|
|
2239
|
+
checksum = "22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c"
|
|
2240
2240
|
dependencies = [
|
|
2241
2241
|
"serde",
|
|
2242
2242
|
]
|
|
2243
2243
|
|
|
2244
2244
|
[[package]]
|
|
2245
2245
|
name = "toml_edit"
|
|
2246
|
-
version = "0.22.
|
|
2246
|
+
version = "0.22.27"
|
|
2247
2247
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2248
|
-
checksum = "
|
|
2248
|
+
checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a"
|
|
2249
2249
|
dependencies = [
|
|
2250
2250
|
"indexmap",
|
|
2251
2251
|
"serde",
|
|
@@ -2257,9 +2257,9 @@ dependencies = [
|
|
|
2257
2257
|
|
|
2258
2258
|
[[package]]
|
|
2259
2259
|
name = "toml_write"
|
|
2260
|
-
version = "0.1.
|
|
2260
|
+
version = "0.1.2"
|
|
2261
2261
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2262
|
-
checksum = "
|
|
2262
|
+
checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801"
|
|
2263
2263
|
|
|
2264
2264
|
[[package]]
|
|
2265
2265
|
name = "tower"
|
|
@@ -2344,9 +2344,9 @@ dependencies = [
|
|
|
2344
2344
|
|
|
2345
2345
|
[[package]]
|
|
2346
2346
|
name = "tracing-attributes"
|
|
2347
|
-
version = "0.1.
|
|
2347
|
+
version = "0.1.29"
|
|
2348
2348
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2349
|
-
checksum = "
|
|
2349
|
+
checksum = "1b1ffbcf9c6f6b99d386e7444eb608ba646ae452a36b39737deb9663b610f662"
|
|
2350
2350
|
dependencies = [
|
|
2351
2351
|
"proc-macro2",
|
|
2352
2352
|
"quote",
|
|
@@ -2355,9 +2355,9 @@ dependencies = [
|
|
|
2355
2355
|
|
|
2356
2356
|
[[package]]
|
|
2357
2357
|
name = "tracing-core"
|
|
2358
|
-
version = "0.1.
|
|
2358
|
+
version = "0.1.34"
|
|
2359
2359
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2360
|
-
checksum = "
|
|
2360
|
+
checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678"
|
|
2361
2361
|
dependencies = [
|
|
2362
2362
|
"once_cell",
|
|
2363
2363
|
]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: rumdl
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.83
|
|
4
4
|
Classifier: Development Status :: 4 - Beta
|
|
5
5
|
Classifier: Environment :: Console
|
|
6
6
|
Classifier: Intended Audience :: Developers
|
|
@@ -389,6 +389,7 @@ rumdl provides seamless compatibility with existing markdownlint configurations:
|
|
|
389
389
|
- `markdownlint.json` / `markdownlint.yaml`
|
|
390
390
|
|
|
391
391
|
**Explicit Import**: Convert markdownlint configs to rumdl format:
|
|
392
|
+
|
|
392
393
|
```bash
|
|
393
394
|
# Convert to .rumdl.toml
|
|
394
395
|
rumdl import .markdownlint.json
|
|
@@ -359,6 +359,7 @@ rumdl provides seamless compatibility with existing markdownlint configurations:
|
|
|
359
359
|
- `markdownlint.json` / `markdownlint.yaml`
|
|
360
360
|
|
|
361
361
|
**Explicit Import**: Convert markdownlint configs to rumdl format:
|
|
362
|
+
|
|
362
363
|
```bash
|
|
363
364
|
# Convert to .rumdl.toml
|
|
364
365
|
rumdl import .markdownlint.json
|
|
@@ -337,7 +337,7 @@ fn bench_fix_performance(c: &mut Criterion) {
|
|
|
337
337
|
|
|
338
338
|
// MD032 - Blanks around lists
|
|
339
339
|
c.bench_function("MD032 fix", |b| {
|
|
340
|
-
let rule = MD032BlanksAroundLists;
|
|
340
|
+
let rule = MD032BlanksAroundLists::default();
|
|
341
341
|
b.iter(|| rule.fix(black_box(&ctx)))
|
|
342
342
|
});
|
|
343
343
|
|
|
@@ -72,6 +72,7 @@ When `list_items` is true (default):
|
|
|
72
72
|
```
|
|
73
73
|
|
|
74
74
|
2. Second item
|
|
75
|
+
|
|
75
76
|
```
|
|
76
77
|
|
|
77
78
|
When `list_items` is false:
|
|
@@ -81,7 +82,9 @@ When `list_items` is false:
|
|
|
81
82
|
```python
|
|
82
83
|
code_in_list()
|
|
83
84
|
```
|
|
85
|
+
|
|
84
86
|
2. Second item
|
|
87
|
+
|
|
85
88
|
```
|
|
86
89
|
|
|
87
90
|
## Automatic fixes
|
|
@@ -99,4 +102,4 @@ This rule automatically adds blank lines:
|
|
|
99
102
|
|
|
100
103
|
- [MD032](md032.md) - Lists should be surrounded by blank lines
|
|
101
104
|
- [MD040](md040.md) - Code blocks should have a language specified
|
|
102
|
-
- [MD046](md046.md) - Code block style should be consistent
|
|
105
|
+
- [MD046](md046.md) - Code block style should be consistent
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
## What this rule does
|
|
4
4
|
|
|
5
|
-
Removes unnecessary spaces between emphasis markers (*asterisks* or
|
|
5
|
+
Removes unnecessary spaces between emphasis markers (*asterisks* or *underscores*) and the text they format.
|
|
6
6
|
|
|
7
7
|
## Why this matters
|
|
8
8
|
|
|
@@ -78,4 +78,4 @@ This rule automatically adds `text` as the language specifier for code blocks wi
|
|
|
78
78
|
|
|
79
79
|
- [MD046](md046.md) - Code block style should be consistent
|
|
80
80
|
- [MD048](md048.md) - Code fence style should be consistent
|
|
81
|
-
- [MD031](md031.md) - Code blocks should be surrounded by blank lines
|
|
81
|
+
- [MD031](md031.md) - Code blocks should be surrounded by blank lines
|
|
@@ -25,7 +25,6 @@ This tool helps you lint Markdown files...
|
|
|
25
25
|
## Installation
|
|
26
26
|
|
|
27
27
|
Install using npm:
|
|
28
|
-
```
|
|
29
28
|
|
|
30
29
|
## Usage
|
|
31
30
|
|
|
@@ -36,7 +35,7 @@ Run the following command...
|
|
|
36
35
|
MIT License
|
|
37
36
|
```
|
|
38
37
|
|
|
39
|
-
### ❌ Incorrect
|
|
38
|
+
### ❌ Incorrect
|
|
40
39
|
|
|
41
40
|
```markdown
|
|
42
41
|
# Getting Started <!-- Wrong heading text -->
|
|
@@ -67,7 +66,7 @@ This tool helps you...
|
|
|
67
66
|
|
|
68
67
|
Install using npm...
|
|
69
68
|
|
|
70
|
-
## Usage <!-- Corrected heading -->
|
|
69
|
+
## Usage <!-- Corrected heading -->
|
|
71
70
|
|
|
72
71
|
Run the following...
|
|
73
72
|
|
|
@@ -82,7 +81,7 @@ MIT License
|
|
|
82
81
|
MD043:
|
|
83
82
|
headings: # Required heading patterns
|
|
84
83
|
- "# Overview"
|
|
85
|
-
- "## Installation"
|
|
84
|
+
- "## Installation"
|
|
86
85
|
- "## Usage"
|
|
87
86
|
- "/## .*License/" # Regex patterns supported
|
|
88
87
|
match_case: false # Case-sensitive matching (default: false)
|
|
@@ -111,4 +110,4 @@ When enabled, this rule will:
|
|
|
111
110
|
|
|
112
111
|
- [MD001](md001.md) - Keep heading levels organized
|
|
113
112
|
- [MD003](md003.md) - Use consistent heading styles
|
|
114
|
-
- [MD025](md025.md) - Use only one main title
|
|
113
|
+
- [MD025](md025.md) - Use only one main title
|
|
@@ -15,7 +15,7 @@ Ensures all code blocks in your document use the same style - either fenced (wit
|
|
|
15
15
|
|
|
16
16
|
### ✅ Correct (Fenced style)
|
|
17
17
|
|
|
18
|
-
|
|
18
|
+
````markdown
|
|
19
19
|
Here's how to use our API:
|
|
20
20
|
|
|
21
21
|
```javascript
|
|
@@ -31,11 +31,11 @@ And here's the response format:
|
|
|
31
31
|
"data": {}
|
|
32
32
|
}
|
|
33
33
|
```
|
|
34
|
-
|
|
34
|
+
````
|
|
35
35
|
|
|
36
36
|
### ❌ Incorrect (Mixed styles)
|
|
37
37
|
|
|
38
|
-
|
|
38
|
+
````markdown
|
|
39
39
|
Here's how to use our API:
|
|
40
40
|
|
|
41
41
|
```javascript
|
|
@@ -49,11 +49,11 @@ And here's the response format:
|
|
|
49
49
|
"status": "success",
|
|
50
50
|
"data": {}
|
|
51
51
|
}
|
|
52
|
-
|
|
52
|
+
````
|
|
53
53
|
|
|
54
54
|
### 🔧 Fixed
|
|
55
55
|
|
|
56
|
-
|
|
56
|
+
````markdown
|
|
57
57
|
Here's how to use our API:
|
|
58
58
|
|
|
59
59
|
```javascript
|
|
@@ -69,7 +69,7 @@ And here's the response format:
|
|
|
69
69
|
"data": {}
|
|
70
70
|
}
|
|
71
71
|
```
|
|
72
|
-
|
|
72
|
+
````
|
|
73
73
|
|
|
74
74
|
## Configuration
|
|
75
75
|
|
|
@@ -114,4 +114,4 @@ When enabled, this rule will:
|
|
|
114
114
|
|
|
115
115
|
- [MD031](md031.md) - Add blank lines around code blocks
|
|
116
116
|
- [MD040](md040.md) - Specify languages for code blocks
|
|
117
|
-
- [MD048](md048.md) - Use consistent fence markers (backticks vs tildes)
|
|
117
|
+
- [MD048](md048.md) - Use consistent fence markers (backticks vs tildes)
|
|
@@ -22,6 +22,7 @@ This is the content of my document.
|
|
|
22
22
|
|
|
23
23
|
The last line ends with a single newline.
|
|
24
24
|
```
|
|
25
|
+
|
|
25
26
|
(Note: There's an invisible newline after "newline.")
|
|
26
27
|
|
|
27
28
|
### ❌ Incorrect
|
|
@@ -43,6 +44,7 @@ The last line has multiple newlines.
|
|
|
43
44
|
|
|
44
45
|
|
|
45
46
|
```
|
|
47
|
+
|
|
46
48
|
(Note: Multiple blank lines at the end)
|
|
47
49
|
|
|
48
50
|
### 🔧 Fixed
|
|
@@ -54,6 +56,7 @@ This is the content of my document.
|
|
|
54
56
|
|
|
55
57
|
The last line now ends with a single newline.
|
|
56
58
|
```
|
|
59
|
+
|
|
57
60
|
(Note: Exactly one newline added at the end)
|
|
58
61
|
|
|
59
62
|
## Configuration
|
|
@@ -89,4 +92,4 @@ When enabled, this rule will:
|
|
|
89
92
|
|
|
90
93
|
- [MD012](md012.md) - Remove multiple consecutive blank lines
|
|
91
94
|
- [MD022](md022.md) - Add blank lines around headings
|
|
92
|
-
- [MD031](md031.md) - Add blank lines around code blocks
|
|
95
|
+
- [MD031](md031.md) - Add blank lines around code blocks
|
|
@@ -102,4 +102,4 @@ This rule automatically converts all code fence markers to match your configured
|
|
|
102
102
|
|
|
103
103
|
- [MD031](md031.md) - Code blocks need blank lines around them
|
|
104
104
|
- [MD040](md040.md) - Code blocks should have a language specified
|
|
105
|
-
- [MD046](md046.md) - Code block style should be consistent
|
|
105
|
+
- [MD046](md046.md) - Code block style should be consistent
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
use log::warn;
|
|
2
2
|
use markdown::{mdast::Node, to_mdast, ParseOptions};
|
|
3
3
|
use std::panic;
|
|
4
|
+
use crate::utils::code_block_utils::CodeBlockUtils;
|
|
4
5
|
|
|
5
6
|
pub struct LintContext<'a> {
|
|
6
7
|
pub content: &'a str,
|
|
7
8
|
pub ast: Node, // The root of the AST
|
|
8
9
|
pub line_offsets: Vec<usize>,
|
|
10
|
+
pub code_blocks: Vec<(usize, usize)>, // Cached code block and code span ranges
|
|
9
11
|
}
|
|
10
12
|
|
|
11
13
|
impl<'a> LintContext<'a> {
|
|
@@ -24,10 +26,15 @@ impl<'a> LintContext<'a> {
|
|
|
24
26
|
line_offsets.push(i + 1);
|
|
25
27
|
}
|
|
26
28
|
}
|
|
29
|
+
|
|
30
|
+
// Detect code blocks once and cache them
|
|
31
|
+
let code_blocks = CodeBlockUtils::detect_code_blocks(content);
|
|
32
|
+
|
|
27
33
|
return Self {
|
|
28
34
|
content,
|
|
29
35
|
ast,
|
|
30
36
|
line_offsets,
|
|
37
|
+
code_blocks,
|
|
31
38
|
};
|
|
32
39
|
}
|
|
33
40
|
|
|
@@ -63,10 +70,15 @@ impl<'a> LintContext<'a> {
|
|
|
63
70
|
line_offsets.push(i + 1);
|
|
64
71
|
}
|
|
65
72
|
}
|
|
73
|
+
|
|
74
|
+
// Detect code blocks once and cache them
|
|
75
|
+
let code_blocks = CodeBlockUtils::detect_code_blocks(content);
|
|
76
|
+
|
|
66
77
|
Self {
|
|
67
78
|
content,
|
|
68
79
|
ast,
|
|
69
80
|
line_offsets,
|
|
81
|
+
code_blocks,
|
|
70
82
|
}
|
|
71
83
|
}
|
|
72
84
|
|
|
@@ -84,6 +96,11 @@ impl<'a> LintContext<'a> {
|
|
|
84
96
|
}
|
|
85
97
|
}
|
|
86
98
|
}
|
|
99
|
+
|
|
100
|
+
/// Check if a position is within a code block or code span
|
|
101
|
+
pub fn is_in_code_block_or_span(&self, pos: usize) -> bool {
|
|
102
|
+
CodeBlockUtils::is_in_code_block_or_span(&self.code_blocks, pos)
|
|
103
|
+
}
|
|
87
104
|
}
|
|
88
105
|
|
|
89
106
|
/// Check if content contains patterns that cause the markdown crate to panic
|
|
@@ -122,7 +122,6 @@ impl Rule for MD004UnorderedListStyle {
|
|
|
122
122
|
|
|
123
123
|
let mut warnings = Vec::new();
|
|
124
124
|
let content = &ctx.content;
|
|
125
|
-
let mut in_code_block = false;
|
|
126
125
|
let mut in_front_matter = false;
|
|
127
126
|
let mut first_marker: Option<char> = None;
|
|
128
127
|
|
|
@@ -136,12 +135,8 @@ impl Rule for MD004UnorderedListStyle {
|
|
|
136
135
|
}
|
|
137
136
|
|
|
138
137
|
for (i, line) in lines.iter().enumerate() {
|
|
139
|
-
//
|
|
140
|
-
if
|
|
141
|
-
in_code_block = !in_code_block;
|
|
142
|
-
continue;
|
|
143
|
-
}
|
|
144
|
-
if in_code_block {
|
|
138
|
+
// Skip if in code block
|
|
139
|
+
if ctx.is_in_code_block_or_span(line_positions[i]) {
|
|
145
140
|
continue;
|
|
146
141
|
}
|
|
147
142
|
|
|
@@ -245,7 +240,6 @@ impl Rule for MD004UnorderedListStyle {
|
|
|
245
240
|
fn fix(&self, ctx: &LintContext) -> Result<String, LintError> {
|
|
246
241
|
let content = &ctx.content;
|
|
247
242
|
let mut result = content.to_string();
|
|
248
|
-
let mut in_code_block = false;
|
|
249
243
|
let mut in_front_matter = false;
|
|
250
244
|
let mut first_marker: Option<char> = None;
|
|
251
245
|
let mut edits = Vec::new();
|
|
@@ -260,12 +254,8 @@ impl Rule for MD004UnorderedListStyle {
|
|
|
260
254
|
}
|
|
261
255
|
|
|
262
256
|
for (i, line) in lines.iter().enumerate() {
|
|
263
|
-
//
|
|
264
|
-
if
|
|
265
|
-
in_code_block = !in_code_block;
|
|
266
|
-
continue;
|
|
267
|
-
}
|
|
268
|
-
if in_code_block {
|
|
257
|
+
// Skip if in code block
|
|
258
|
+
if ctx.is_in_code_block_or_span(line_positions[i]) {
|
|
269
259
|
continue;
|
|
270
260
|
}
|
|
271
261
|
|
|
@@ -341,11 +341,7 @@ impl Rule for MD005ListIndent {
|
|
|
341
341
|
let mut warnings_with_fixes: Vec<_> = warnings
|
|
342
342
|
.into_iter()
|
|
343
343
|
.filter_map(|w| {
|
|
344
|
-
|
|
345
|
-
Some((w, fix))
|
|
346
|
-
} else {
|
|
347
|
-
None
|
|
348
|
-
}
|
|
344
|
+
w.fix.clone().map(|fix| (w, fix))
|
|
349
345
|
})
|
|
350
346
|
.collect();
|
|
351
347
|
warnings_with_fixes.sort_by_key(|(_, fix)| std::cmp::Reverse(fix.range.start));
|
|
@@ -59,13 +59,13 @@ impl MD006StartBullets {
|
|
|
59
59
|
// Found a potential parent or sibling
|
|
60
60
|
// Check if there's any non-list content between this potential parent and current item
|
|
61
61
|
let mut has_breaking_content = false;
|
|
62
|
-
for
|
|
63
|
-
if Self::is_blank_line(
|
|
62
|
+
for check_line in &lines[(i + 1)..line_idx] {
|
|
63
|
+
if Self::is_blank_line(check_line) {
|
|
64
64
|
continue;
|
|
65
65
|
}
|
|
66
|
-
if Self::is_bullet_list_item(
|
|
66
|
+
if Self::is_bullet_list_item(check_line).is_none() {
|
|
67
67
|
// Found non-list content - check if it breaks the list structure
|
|
68
|
-
let content_indent =
|
|
68
|
+
let content_indent = check_line.len() - check_line.trim_start().len();
|
|
69
69
|
|
|
70
70
|
// Content is acceptable if:
|
|
71
71
|
// 1. It's indented at least as much as the current item (continuation of parent)
|
|
@@ -30,20 +30,6 @@ impl MD009TrailingSpaces {
|
|
|
30
30
|
Self { br_spaces, strict }
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
-
fn is_in_code_block(lines: &[&str], current_line: usize) -> bool {
|
|
34
|
-
let mut fence_count = 0;
|
|
35
|
-
for (i, line) in lines.iter().enumerate() {
|
|
36
|
-
if i == current_line {
|
|
37
|
-
// Check if we're inside a code block at this point
|
|
38
|
-
return fence_count % 2 == 1;
|
|
39
|
-
}
|
|
40
|
-
let trimmed = line.trim_start();
|
|
41
|
-
if trimmed.starts_with("```") || trimmed.starts_with("~~~") {
|
|
42
|
-
fence_count += 1;
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
false
|
|
46
|
-
}
|
|
47
33
|
|
|
48
34
|
fn is_empty_blockquote_line(line: &str) -> bool {
|
|
49
35
|
let trimmed = line.trim_start();
|
|
@@ -113,8 +99,15 @@ impl Rule for MD009TrailingSpaces {
|
|
|
113
99
|
}
|
|
114
100
|
|
|
115
101
|
// Handle code blocks if not in strict mode
|
|
116
|
-
if !self.strict
|
|
117
|
-
|
|
102
|
+
if !self.strict {
|
|
103
|
+
// Calculate byte position for this line
|
|
104
|
+
let mut byte_pos = 0;
|
|
105
|
+
for line in &lines[..line_num] {
|
|
106
|
+
byte_pos += line.len() + 1; // +1 for newline
|
|
107
|
+
}
|
|
108
|
+
if ctx.is_in_code_block_or_span(byte_pos) {
|
|
109
|
+
continue;
|
|
110
|
+
}
|
|
118
111
|
}
|
|
119
112
|
|
|
120
113
|
// Check if it's a valid line break
|
|
@@ -209,7 +202,12 @@ impl Rule for MD009TrailingSpaces {
|
|
|
209
202
|
}
|
|
210
203
|
|
|
211
204
|
// Handle code blocks if not in strict mode
|
|
212
|
-
|
|
205
|
+
// Calculate byte position for this line
|
|
206
|
+
let mut byte_pos = 0;
|
|
207
|
+
for prev_line in &lines[..i] {
|
|
208
|
+
byte_pos += prev_line.len() + 1; // +1 for newline
|
|
209
|
+
}
|
|
210
|
+
if ctx.is_in_code_block_or_span(byte_pos) {
|
|
213
211
|
result.push_str(line);
|
|
214
212
|
result.push('\n');
|
|
215
213
|
continue;
|