rumdl 0.0.162__tar.gz → 0.0.163__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.162 → rumdl-0.0.163}/CHANGELOG.md +59 -1
- {rumdl-0.0.162 → rumdl-0.0.163}/Cargo.lock +1 -1
- {rumdl-0.0.162 → rumdl-0.0.163}/Cargo.toml +1 -1
- {rumdl-0.0.162 → rumdl-0.0.163}/PKG-INFO +14 -1
- {rumdl-0.0.162 → rumdl-0.0.163}/README.md +13 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/docs/md024.md +7 -4
- {rumdl-0.0.162 → rumdl-0.0.163}/src/filtered_lines.rs +22 -1
- {rumdl-0.0.162 → rumdl-0.0.163}/src/lint_context.rs +101 -76
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md013_line_length.rs +87 -68
- rumdl-0.0.163/src/rules/md024_no_duplicate_heading/md024_config.rs +38 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md024_no_duplicate_heading.rs +56 -14
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md045_no_alt_text.rs +2 -1
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md046_code_block_style.rs +38 -11
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md049_emphasis_style.rs +7 -2
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md052_reference_links_images.rs +47 -3
- rumdl-0.0.163/tests/html_comments_test.rs +224 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/inline_config_blocks_test.rs +8 -9
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/md052_literal_brackets_test.rs +34 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/heading_edge_cases_test.rs +3 -1
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/inline_content_edge_cases_test.rs +6 -1
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md024_test.rs +2 -2
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md046_test.rs +29 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md050_test.rs +88 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/sentence_per_line_test.rs +1 -4
- rumdl-0.0.162/src/rules/md024_no_duplicate_heading/md024_config.rs +0 -19
- {rumdl-0.0.162 → rumdl-0.0.163}/.config/nextest.toml +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/.mise.toml +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/.pre-commit-config.yaml +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/.rumdl.toml +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/.rustfmt.toml +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/LICENSE +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/MANIFEST.in +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/Makefile +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/assets/logo.png +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/benches/fix_performance.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/benches/range_performance.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/benches/range_utils_benchmark.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/benches/rule_performance.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/benches/simple_fix_bench.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/benchmark/bin/bench_lint_context.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/benchmark/bin/benchmark.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/benchmark/bin/benchmark_rule.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/benchmark/bin/file_parallel_benchmark.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/benchmark/bin/measure_code_span_performance.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/docs/RULES.md +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/docs/global-settings.md +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/docs/inline-configuration.md +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/docs/md001.md +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/docs/md002.md +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/docs/md003.md +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/docs/md004.md +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/docs/md005.md +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/docs/md006.md +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/docs/md007.md +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/docs/md009.md +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/docs/md010.md +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/docs/md011.md +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/docs/md012.md +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/docs/md013.md +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/docs/md014.md +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/docs/md018.md +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/docs/md019.md +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/docs/md020.md +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/docs/md021.md +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/docs/md022.md +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/docs/md023.md +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/docs/md025.md +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/docs/md026.md +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/docs/md027.md +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/docs/md028.md +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/docs/md029.md +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/docs/md030.md +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/docs/md031.md +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/docs/md032.md +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/docs/md033.md +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/docs/md034.md +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/docs/md035.md +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/docs/md036.md +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/docs/md037.md +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/docs/md038.md +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/docs/md039.md +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/docs/md040.md +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/docs/md041.md +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/docs/md042.md +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/docs/md043.md +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/docs/md044.md +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/docs/md045.md +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/docs/md046.md +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/docs/md047.md +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/docs/md048.md +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/docs/md049.md +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/docs/md050.md +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/docs/md051.md +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/docs/md052.md +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/docs/md053.md +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/docs/md054.md +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/docs/md055.md +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/docs/md056.md +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/docs/md057.md +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/docs/md058.md +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/docs/vscode-extension.md +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/pyproject.toml +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/rumdl/__init__.py +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/rumdl/__main__.py +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/rumdl/py.typed +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/rumdl.schema.json +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/rumdl.toml.example +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/rust-toolchain.toml +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/scripts/extract-changelog.sh +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/scripts/generate-downloads-table.sh +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/scripts/pre-release.sh +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/scripts/prepare-release.sh +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/scripts/setup-pre-commit.sh +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/scripts/update-pre-commit-docs.sh +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/config.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/exit_codes.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/file_processor.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/fix_coordinator.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/formatter.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/inline_config.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/lib.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/lsp/mod.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/lsp/server.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/lsp/types.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/main.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/markdownlint_config.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/output/formatters/azure.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/output/formatters/concise.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/output/formatters/github.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/output/formatters/gitlab.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/output/formatters/grouped.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/output/formatters/json.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/output/formatters/json_lines.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/output/formatters/junit.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/output/formatters/mod.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/output/formatters/pylint.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/output/formatters/sarif.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/output/formatters/text.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/output/mod.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/parallel.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/performance.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/profiling.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rule.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rule_config.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rule_config_serde.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/blockquote_utils.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/code_block_utils.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/code_fence_utils.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/emphasis_style.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/front_matter_utils.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/heading_utils.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/list_utils.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md001_heading_increment.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md002_first_heading_h1/md002_config.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md002_first_heading_h1.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md003_heading_style/md003_config.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md003_heading_style.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md004_unordered_list_style/md004_config.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md004_unordered_list_style.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md005_list_indent.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md006_start_bullets.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md007_ul_indent/md007_config.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md007_ul_indent.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md009_trailing_spaces/md009_config.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md009_trailing_spaces.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md010_no_hard_tabs/md010_config.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md010_no_hard_tabs.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md011_no_reversed_links.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md012_no_multiple_blanks/md012_config.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md012_no_multiple_blanks.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md013_line_length/md013_config.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md014_commands_show_output/md014_config.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md014_commands_show_output.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md018_no_missing_space_atx.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md019_no_multiple_space_atx.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md020_no_missing_space_closed_atx.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md021_no_multiple_space_closed_atx.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md022_blanks_around_headings/md022_config.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md022_blanks_around_headings.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md023_heading_start_left.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md025_single_title/md025_config.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md025_single_title.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md026_no_trailing_punctuation/md026_config.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md026_no_trailing_punctuation.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md027_multiple_spaces_blockquote.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md028_no_blanks_blockquote.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md029_ordered_list_prefix/md029_config.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md029_ordered_list_prefix.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md030_list_marker_space/md030_config.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md030_list_marker_space.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md031_blanks_around_fences.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md032_blanks_around_lists.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md033_no_inline_html/md033_config.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md033_no_inline_html.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md034_no_bare_urls.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md035_hr_style/md035_config.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md035_hr_style.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md036_no_emphasis_only_first/md036_config.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md036_no_emphasis_only_first.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md037_spaces_around_emphasis.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md038_no_space_in_code.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md039_no_space_in_links.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md040_fenced_code_language.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md041_first_line_heading.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md042_no_empty_links.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md043_required_headings.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md044_proper_names/md044_config.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md044_proper_names.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md045_no_alt_text/md045_config.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md046_code_block_style/md046_config.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md047_single_trailing_newline.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md048_code_fence_style/md048_config.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md048_code_fence_style.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md049_emphasis_style/md049_config.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md050_strong_style/md050_config.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md050_strong_style.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md051_link_fragments.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md053_link_image_reference_definitions.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md054_link_image_style/md054_config.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md054_link_image_style.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md055_table_pipe_style/md055_config.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md055_table_pipe_style.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md056_table_column_count.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md057_existing_relative_links/md057_config.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md057_existing_relative_links.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md058_blanks_around_tables.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/mod.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/strong_style.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/stdin_processor.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/utils/anchor_styles/github.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/utils/anchor_styles/jekyll.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/utils/anchor_styles/kramdown.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/utils/anchor_styles/kramdown_gfm.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/utils/anchor_styles/mod.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/utils/ast_utils.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/utils/code_block_utils.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/utils/document_structure.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/utils/early_returns.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/utils/element_cache.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/utils/emphasis_utils.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/utils/fix_utils.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/utils/header_id_utils.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/utils/jinja_utils.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/utils/kramdown_utils.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/utils/line_ending.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/utils/markdown_elements.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/utils/mkdocs_admonitions.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/utils/mkdocs_common.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/utils/mkdocs_critic.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/utils/mkdocs_footnotes.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/utils/mkdocs_patterns.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/utils/mkdocs_snippets.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/utils/mkdocs_tabs.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/utils/mkdocs_test_utils.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/utils/mkdocstrings_refs.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/utils/mod.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/utils/range_utils.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/utils/regex_cache.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/utils/skip_context.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/utils/string_interner.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/utils/table_utils.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/utils/text_reflow.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/vscode.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/src/watch.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/advanced_integration_tests.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/character_ranges/additional_tests.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/character_ranges/basic_tests.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/character_ranges/comprehensive_tests.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/character_ranges/extended_tests.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/character_ranges/mod.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/character_ranges/unicode_utils.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/cli_duplication_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/cli_explain_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/cli_flag_precedence_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/cli_integration_tests.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/cli_lsp_fix_consistency.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/cli_statistics_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/code_block_blockquote_edge_cases.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/common/cli_test_utils.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/common/fixtures.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/common/mod.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/common/test_utils.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/commonmark_compliance_tests.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/comprehensive_integration_tests.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/comprehensive_output_format_tests.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/config_application_tests.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/config_file_command_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/config_tests.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/config_upward_traversal_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/configuration_inheritance_tests.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/consistency_regression_tests.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/crlf_line_endings_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/cross_platform_compatibility_tests.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/deeply_nested_lists_performance_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/escaped_brackets_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/exclude_with_explicit_paths_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/final_confidence_assessment.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/fix_counting_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/fix_performance_baseline_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/fixable_unfixable_config_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/init_command_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/init_tests.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/inline_config_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/integration_tests.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/json_output_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/kramdown_integration_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/lib.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/lsp_editor_integration_tests.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/lsp_formatting_tests.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/lsp_initialization_options_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/lsp_integration_tests.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/lsp_memory_leak_tests.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/lsp_mkdocs_flavor_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/lsp_tests.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/lsp_unopened_document_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/malformed_markdown_stress_tests.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/markdownlint_cli_integration.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/markdownlint_config_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/markdownlintignore_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/md009_md013_integration_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/md009_md013_order_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/md013_hard_breaks_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/md013_reflow_integration_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/md013_reflow_nested_lists_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/md032_edge_cases_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/md032_ordered_list_bug_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/md033_edge_cases_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/md037_xxxx_regression_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/md038_false_positive_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/md051_issue_39_regression_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/md051_readme_bug_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/md051_toc_bug_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/md054_code_span_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/mkdocs_anchor_edge_cases_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/mkdocs_anchor_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/nested_code_block_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/output_format_integration_tests.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/output_format_tests.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/per_file_ignores_integration_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/perf_check.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/performance_validation_tests.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/pyproject_config_tests.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/real_world_repository_tests.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/regression_prevention_tests.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/emphasis_edge_cases_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/link_edge_cases_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/list_rules_integration_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md001_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md001_unicode_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md002_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md003_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md004_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md005_dynamic_indent_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md005_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md005_unicode_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md006_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md006_unicode_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md007_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md009_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md010_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md011_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md012_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md013_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md014_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md018_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md019_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md020_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md021_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md022_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md023_extended_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md023_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md025_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md026_kramdown_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md026_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md027_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md028_md009_interaction_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md028_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md029_code_block_separation_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md029_fix_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md029_issue42_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md029_markdownlint_parity_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md029_nested_list_continuation_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md029_pathological_edge_cases_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md029_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md029_unicode_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md030_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md031_kramdown_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md031_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md032_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md033_blockquote_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md033_extended_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md033_kramdown_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md033_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md034_ipv6_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md034_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md035_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md036_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md037_kramdown_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md037_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md038_nested_backticks_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md038_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md039_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md040_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md041_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md042_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md043_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md044_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md045_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md047_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md048_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md049_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md051_comprehensive_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md051_critical_edge_cases_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md051_edge_cases_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md051_issue_39_regression_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md051_performance_edge_cases_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md051_property_based_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md051_regression_prevention_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md051_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md051_unicode_security_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md052_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md053_additional_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md053_proptest.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md053_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md054_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md054_unicode_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md055_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md056_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md057_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md058_kramdown_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md058_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/mkdocs_admonitions_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/mkdocs_edge_cases_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/mkdocs_extensions_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/mkdocs_snippets_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/mod.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/rule_interaction_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules_mod_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/schema_validation_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/skip_context_tests.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/test_ast_code_block_issue.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/test_gfm_vs_default_parsing.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/test_lint_context_flow.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/test_list_ast_structure.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/test_multiline_ast.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/test_underscore_edge_cases.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/thread_safety_tests.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/unfixable_rules_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/unicode_edge_case_tests.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/utf8_boundary_tests.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/utils/blockquote_utils_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/utils/code_block_utils_extended_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/utils/code_block_utils_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/utils/core_utils_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/utils/front_matter_utils_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/utils/line_index_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/utils/mod.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/utils_markdown_edge_cases.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/utils_tests.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/vscode_extension_fixes.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/vscode_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/vscode_tests.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/vscode_windows_comprehensive_test.rs +0 -0
- {rumdl-0.0.162 → rumdl-0.0.163}/tests/vscode_windows_test.rs +0 -0
|
@@ -7,6 +7,45 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.0.163] - 2025-10-20
|
|
11
|
+
|
|
12
|
+
### Changed
|
|
13
|
+
|
|
14
|
+
- **MD024**: Default `siblings_only` to true for better usability
|
|
15
|
+
- Multiple headings with same text now only flagged if they're direct siblings
|
|
16
|
+
- Reduces false positives in documents with common section headings
|
|
17
|
+
- More intuitive default behavior matching common use cases
|
|
18
|
+
|
|
19
|
+
### Fixed
|
|
20
|
+
|
|
21
|
+
- **MD013**: Enforce line length in sentence_per_line mode (fixes #111)
|
|
22
|
+
- Previously, sentence_per_line mode completely ignored line_length setting
|
|
23
|
+
- Now warns about single sentences exceeding configured line_length
|
|
24
|
+
- No auto-fix for long single sentences (requires manual rephrasing)
|
|
25
|
+
- Still auto-fixes multi-sentence lines by splitting on sentence boundaries
|
|
26
|
+
- Cleaned up warning messages by removing verbose parentheticals
|
|
27
|
+
- Maintains semantic integrity (won't split mid-sentence) while respecting configured line_length
|
|
28
|
+
|
|
29
|
+
- **HTML Comments**: Complete fix to ignore all content inside HTML comments (fixes #119, #20)
|
|
30
|
+
- All rules now properly ignore content within HTML comment blocks (`<!-- ... -->`)
|
|
31
|
+
- Added `in_html_comment` field to `LineInfo` for comprehensive tracking
|
|
32
|
+
- Extended filtered lines API with `skip_html_comments()` method
|
|
33
|
+
- Updated MD013, MD049, and other rules to skip HTML comment content
|
|
34
|
+
- Prevents false positives from commented-out markdown (MD013, MD049, MD005, MD006, MD039, MD042)
|
|
35
|
+
- Better handling of multi-line HTML comments across all linting rules
|
|
36
|
+
|
|
37
|
+
- **MD046**: Resolve false positives from Issue #118
|
|
38
|
+
- Fixed incorrect flagging of valid code block syntax
|
|
39
|
+
- Improved code block style detection accuracy
|
|
40
|
+
|
|
41
|
+
- **MD050**: Resolve false positives from Issue #118
|
|
42
|
+
- Fixed incorrect strong style detection in edge cases
|
|
43
|
+
- Better handling of emphasis patterns
|
|
44
|
+
|
|
45
|
+
- **Tests**: Fixed sentence_per_line_detection test assertion
|
|
46
|
+
- Updated test to match simplified warning message from MD013
|
|
47
|
+
- Test was expecting verbose message after message was simplified in earlier commit
|
|
48
|
+
|
|
10
49
|
## [0.0.162] - 2025-10-16
|
|
11
50
|
|
|
12
51
|
### Added
|
|
@@ -1108,7 +1147,26 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
1108
1147
|
|
|
1109
1148
|
- Initial implementation of remaining rules for markdownlint parity
|
|
1110
1149
|
|
|
1111
|
-
[Unreleased]: https://github.com/rvben/rumdl/compare/v0.0.
|
|
1150
|
+
[Unreleased]: https://github.com/rvben/rumdl/compare/v0.0.163...HEAD
|
|
1151
|
+
[0.0.163]: https://github.com/rvben/rumdl/compare/v0.0.162...v0.0.163
|
|
1152
|
+
[0.0.162]: https://github.com/rvben/rumdl/compare/v0.0.161...v0.0.162
|
|
1153
|
+
[0.0.161]: https://github.com/rvben/rumdl/compare/v0.0.160...v0.0.161
|
|
1154
|
+
[0.0.160]: https://github.com/rvben/rumdl/compare/v0.0.159...v0.0.160
|
|
1155
|
+
[0.0.159]: https://github.com/rvben/rumdl/compare/v0.0.158...v0.0.159
|
|
1156
|
+
[0.0.158]: https://github.com/rvben/rumdl/compare/v0.0.157...v0.0.158
|
|
1157
|
+
[0.0.157]: https://github.com/rvben/rumdl/compare/v0.0.156...v0.0.157
|
|
1158
|
+
[0.0.156]: https://github.com/rvben/rumdl/compare/v0.0.155...v0.0.156
|
|
1159
|
+
[0.0.155]: https://github.com/rvben/rumdl/compare/v0.0.154...v0.0.155
|
|
1160
|
+
[0.0.154]: https://github.com/rvben/rumdl/compare/v0.0.153...v0.0.154
|
|
1161
|
+
[0.0.153]: https://github.com/rvben/rumdl/compare/v0.0.152...v0.0.153
|
|
1162
|
+
[0.0.152]: https://github.com/rvben/rumdl/compare/v0.0.151...v0.0.152
|
|
1163
|
+
[0.0.151]: https://github.com/rvben/rumdl/compare/v0.0.150...v0.0.151
|
|
1164
|
+
[0.0.150]: https://github.com/rvben/rumdl/compare/v0.0.149...v0.0.150
|
|
1165
|
+
[0.0.149]: https://github.com/rvben/rumdl/compare/v0.0.148...v0.0.149
|
|
1166
|
+
[0.0.148]: https://github.com/rvben/rumdl/compare/v0.0.147...v0.0.148
|
|
1167
|
+
[0.0.147]: https://github.com/rvben/rumdl/compare/v0.0.146...v0.0.147
|
|
1168
|
+
[0.0.146]: https://github.com/rvben/rumdl/compare/v0.0.145...v0.0.146
|
|
1169
|
+
[0.0.145]: https://github.com/rvben/rumdl/compare/v0.0.144...v0.0.145
|
|
1112
1170
|
[0.0.144]: https://github.com/rvben/rumdl/compare/v0.0.143...v0.0.144
|
|
1113
1171
|
[0.0.142]: https://github.com/rvben/rumdl/compare/v0.0.141...v0.0.142
|
|
1114
1172
|
[0.0.140]: https://github.com/rvben/rumdl/compare/v0.0.139...v0.0.140
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: rumdl
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.163
|
|
4
4
|
Classifier: Development Status :: 4 - Beta
|
|
5
5
|
Classifier: Environment :: Console
|
|
6
6
|
Classifier: Intended Audience :: Developers
|
|
@@ -172,6 +172,19 @@ uv tool install rumdl
|
|
|
172
172
|
uv tool run rumdl check .
|
|
173
173
|
```
|
|
174
174
|
|
|
175
|
+
### Using Nix (macOS/Linux)
|
|
176
|
+
|
|
177
|
+
```bash
|
|
178
|
+
nix-channel --update
|
|
179
|
+
nix-env --install --attr nixpkgs.rumdl
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
Alternatively, you can use flakes to run it without installation.
|
|
183
|
+
|
|
184
|
+
```bash
|
|
185
|
+
nix run --extra-experimental-features 'flakes nix-command' nixpkgs/nixpkgs-unstable#rumdl -- --version
|
|
186
|
+
```
|
|
187
|
+
|
|
175
188
|
### Download binary
|
|
176
189
|
|
|
177
190
|
```bash
|
|
@@ -143,6 +143,19 @@ uv tool install rumdl
|
|
|
143
143
|
uv tool run rumdl check .
|
|
144
144
|
```
|
|
145
145
|
|
|
146
|
+
### Using Nix (macOS/Linux)
|
|
147
|
+
|
|
148
|
+
```bash
|
|
149
|
+
nix-channel --update
|
|
150
|
+
nix-env --install --attr nixpkgs.rumdl
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
Alternatively, you can use flakes to run it without installation.
|
|
154
|
+
|
|
155
|
+
```bash
|
|
156
|
+
nix run --extra-experimental-features 'flakes nix-command' nixpkgs/nixpkgs-unstable#rumdl -- --version
|
|
157
|
+
```
|
|
158
|
+
|
|
146
159
|
### Download binary
|
|
147
160
|
|
|
148
161
|
```bash
|
|
@@ -73,12 +73,15 @@ How to run the test suite...
|
|
|
73
73
|
|
|
74
74
|
## Configuration
|
|
75
75
|
|
|
76
|
-
```
|
|
77
|
-
MD024
|
|
78
|
-
|
|
79
|
-
|
|
76
|
+
```toml
|
|
77
|
+
[MD024]
|
|
78
|
+
allow-different-nesting = false # Allow duplicates at different levels (default: false)
|
|
79
|
+
siblings-only = true # Only check siblings at same level (default: true)
|
|
80
80
|
```
|
|
81
81
|
|
|
82
|
+
**Note:** rumdl defaults `siblings-only` to `true` (unlike markdownlint's `false` ) to reduce false positives in CHANGELOGs and structured documentation. To match markdownlint's stricter behavior, set
|
|
83
|
+
`siblings-only = false` .
|
|
84
|
+
|
|
82
85
|
## Automatic fixes
|
|
83
86
|
|
|
84
87
|
This rule cannot be automatically fixed because changing heading text requires understanding the content's meaning. You'll need to manually update duplicate headings to be more descriptive.
|
|
@@ -55,7 +55,8 @@ pub struct FilteredLine<'a> {
|
|
|
55
55
|
/// let config = LineFilterConfig::new()
|
|
56
56
|
/// .skip_front_matter()
|
|
57
57
|
/// .skip_code_blocks()
|
|
58
|
-
/// .skip_html_blocks()
|
|
58
|
+
/// .skip_html_blocks()
|
|
59
|
+
/// .skip_html_comments();
|
|
59
60
|
/// ```
|
|
60
61
|
#[derive(Debug, Clone, Default)]
|
|
61
62
|
pub struct LineFilterConfig {
|
|
@@ -65,6 +66,8 @@ pub struct LineFilterConfig {
|
|
|
65
66
|
pub skip_code_blocks: bool,
|
|
66
67
|
/// Skip lines inside HTML blocks
|
|
67
68
|
pub skip_html_blocks: bool,
|
|
69
|
+
/// Skip lines inside HTML comments
|
|
70
|
+
pub skip_html_comments: bool,
|
|
68
71
|
}
|
|
69
72
|
|
|
70
73
|
impl LineFilterConfig {
|
|
@@ -104,11 +107,22 @@ impl LineFilterConfig {
|
|
|
104
107
|
self
|
|
105
108
|
}
|
|
106
109
|
|
|
110
|
+
/// Skip lines inside HTML comments
|
|
111
|
+
///
|
|
112
|
+
/// HTML comments (<!-- ... -->) are metadata and should not be processed
|
|
113
|
+
/// by most markdown linting rules.
|
|
114
|
+
#[must_use]
|
|
115
|
+
pub fn skip_html_comments(mut self) -> Self {
|
|
116
|
+
self.skip_html_comments = true;
|
|
117
|
+
self
|
|
118
|
+
}
|
|
119
|
+
|
|
107
120
|
/// Check if a line should be filtered out based on this configuration
|
|
108
121
|
fn should_filter(&self, line_info: &LineInfo) -> bool {
|
|
109
122
|
(self.skip_front_matter && line_info.in_front_matter)
|
|
110
123
|
|| (self.skip_code_blocks && line_info.in_code_block)
|
|
111
124
|
|| (self.skip_html_blocks && line_info.in_html_block)
|
|
125
|
+
|| (self.skip_html_comments && line_info.in_html_comment)
|
|
112
126
|
}
|
|
113
127
|
}
|
|
114
128
|
|
|
@@ -245,6 +259,13 @@ impl<'a> FilteredLinesBuilder<'a> {
|
|
|
245
259
|
self.config = self.config.skip_html_blocks();
|
|
246
260
|
self
|
|
247
261
|
}
|
|
262
|
+
|
|
263
|
+
/// Skip lines inside HTML comments
|
|
264
|
+
#[must_use]
|
|
265
|
+
pub fn skip_html_comments(mut self) -> Self {
|
|
266
|
+
self.config = self.config.skip_html_comments();
|
|
267
|
+
self
|
|
268
|
+
}
|
|
248
269
|
}
|
|
249
270
|
|
|
250
271
|
impl<'a> IntoIterator for FilteredLinesBuilder<'a> {
|
|
@@ -10,25 +10,25 @@ lazy_static! {
|
|
|
10
10
|
// Comprehensive link pattern that captures both inline and reference links
|
|
11
11
|
// Use (?s) flag to make . match newlines
|
|
12
12
|
static ref LINK_PATTERN: Regex = Regex::new(
|
|
13
|
-
r"(?sx)
|
|
13
|
+
r#"(?sx)
|
|
14
14
|
\[((?:[^\[\]\\]|\\.|\[[^\]]*\])*)\] # Link text in group 1 (handles nested brackets)
|
|
15
15
|
(?:
|
|
16
|
-
\(([^)]*)
|
|
16
|
+
\((?:<([^<>\n]*)>|([^)"']*))(?:\s+(?:"([^"]*)"|'([^']*)'))?\) # URL in group 2 (angle) or 3 (bare), title in 4/5
|
|
17
17
|
|
|
|
18
|
-
\[([^\]]*)\] # Reference ID in group
|
|
19
|
-
)"
|
|
18
|
+
\[([^\]]*)\] # Reference ID in group 6
|
|
19
|
+
)"#
|
|
20
20
|
).unwrap();
|
|
21
21
|
|
|
22
22
|
// Image pattern (similar to links but with ! prefix)
|
|
23
23
|
// Use (?s) flag to make . match newlines
|
|
24
24
|
static ref IMAGE_PATTERN: Regex = Regex::new(
|
|
25
|
-
r"(?sx)
|
|
25
|
+
r#"(?sx)
|
|
26
26
|
!\[((?:[^\[\]\\]|\\.|\[[^\]]*\])*)\] # Alt text in group 1 (handles nested brackets)
|
|
27
27
|
(?:
|
|
28
|
-
\(([^)]*)
|
|
28
|
+
\((?:<([^<>\n]*)>|([^)"']*))(?:\s+(?:"([^"]*)"|'([^']*)'))?\) # URL in group 2 (angle) or 3 (bare), title in 4/5
|
|
29
29
|
|
|
|
30
|
-
\[([^\]]*)\] # Reference ID in group
|
|
31
|
-
)"
|
|
30
|
+
\[([^\]]*)\] # Reference ID in group 6
|
|
31
|
+
)"#
|
|
32
32
|
).unwrap();
|
|
33
33
|
|
|
34
34
|
// Reference definition pattern
|
|
@@ -78,6 +78,8 @@ pub struct LineInfo {
|
|
|
78
78
|
pub in_front_matter: bool,
|
|
79
79
|
/// Whether this line is inside an HTML block
|
|
80
80
|
pub in_html_block: bool,
|
|
81
|
+
/// Whether this line is inside an HTML comment
|
|
82
|
+
pub in_html_comment: bool,
|
|
81
83
|
/// List item information if this line starts a list item
|
|
82
84
|
pub list_item: Option<ListItemInfo>,
|
|
83
85
|
/// Heading information if this line is a heading
|
|
@@ -751,7 +753,7 @@ impl<'a> LintContext<'a> {
|
|
|
751
753
|
code_spans: &[CodeSpan],
|
|
752
754
|
flavor: MarkdownFlavor,
|
|
753
755
|
) -> Vec<ParsedLink> {
|
|
754
|
-
use crate::utils::skip_context::is_mkdocs_snippet_line;
|
|
756
|
+
use crate::utils::skip_context::{is_in_html_comment, is_mkdocs_snippet_line};
|
|
755
757
|
|
|
756
758
|
// Pre-size based on a heuristic: most markdown files have relatively few links
|
|
757
759
|
let mut links = Vec::with_capacity(content.len() / 500); // ~1 link per 500 chars
|
|
@@ -785,6 +787,11 @@ impl<'a> LintContext<'a> {
|
|
|
785
787
|
continue;
|
|
786
788
|
}
|
|
787
789
|
|
|
790
|
+
// Skip if in HTML comment
|
|
791
|
+
if is_in_html_comment(content, match_start) {
|
|
792
|
+
continue;
|
|
793
|
+
}
|
|
794
|
+
|
|
788
795
|
// Skip if this link is on a MkDocs snippet line
|
|
789
796
|
// Find which line this link is on
|
|
790
797
|
let line_idx = lines
|
|
@@ -832,7 +839,10 @@ impl<'a> LintContext<'a> {
|
|
|
832
839
|
|
|
833
840
|
let text = cap.get(1).map_or("", |m| m.as_str()).to_string();
|
|
834
841
|
|
|
835
|
-
|
|
842
|
+
// URL can be in group 2 (angle brackets) or group 3 (bare)
|
|
843
|
+
let inline_url = cap.get(2).or_else(|| cap.get(3));
|
|
844
|
+
|
|
845
|
+
if let Some(url_match) = inline_url {
|
|
836
846
|
// Inline link
|
|
837
847
|
links.push(ParsedLink {
|
|
838
848
|
line: line_num,
|
|
@@ -841,11 +851,11 @@ impl<'a> LintContext<'a> {
|
|
|
841
851
|
byte_offset: match_start,
|
|
842
852
|
byte_end: match_end,
|
|
843
853
|
text,
|
|
844
|
-
url:
|
|
854
|
+
url: url_match.as_str().to_string(),
|
|
845
855
|
is_reference: false,
|
|
846
856
|
reference_id: None,
|
|
847
857
|
});
|
|
848
|
-
} else if let Some(ref_id) = cap.get(
|
|
858
|
+
} else if let Some(ref_id) = cap.get(6) {
|
|
849
859
|
// Reference link
|
|
850
860
|
let ref_id_str = ref_id.as_str();
|
|
851
861
|
let normalized_ref = if ref_id_str.is_empty() {
|
|
@@ -878,6 +888,8 @@ impl<'a> LintContext<'a> {
|
|
|
878
888
|
code_blocks: &[(usize, usize)],
|
|
879
889
|
code_spans: &[CodeSpan],
|
|
880
890
|
) -> Vec<ParsedImage> {
|
|
891
|
+
use crate::utils::skip_context::is_in_html_comment;
|
|
892
|
+
|
|
881
893
|
// Pre-size based on a heuristic: images are less common than links
|
|
882
894
|
let mut images = Vec::with_capacity(content.len() / 1000); // ~1 image per 1000 chars
|
|
883
895
|
|
|
@@ -905,6 +917,11 @@ impl<'a> LintContext<'a> {
|
|
|
905
917
|
continue;
|
|
906
918
|
}
|
|
907
919
|
|
|
920
|
+
// Skip if in HTML comment
|
|
921
|
+
if is_in_html_comment(content, match_start) {
|
|
922
|
+
continue;
|
|
923
|
+
}
|
|
924
|
+
|
|
908
925
|
// Find which line this image starts on
|
|
909
926
|
let mut line_num = 1;
|
|
910
927
|
let mut col_start = match_start;
|
|
@@ -939,7 +956,10 @@ impl<'a> LintContext<'a> {
|
|
|
939
956
|
|
|
940
957
|
let alt_text = cap.get(1).map_or("", |m| m.as_str()).to_string();
|
|
941
958
|
|
|
942
|
-
|
|
959
|
+
// URL can be in group 2 (angle brackets) or group 3 (bare)
|
|
960
|
+
let inline_url = cap.get(2).or_else(|| cap.get(3));
|
|
961
|
+
|
|
962
|
+
if let Some(url_match) = inline_url {
|
|
943
963
|
// Inline image
|
|
944
964
|
images.push(ParsedImage {
|
|
945
965
|
line: line_num,
|
|
@@ -948,11 +968,11 @@ impl<'a> LintContext<'a> {
|
|
|
948
968
|
byte_offset: match_start,
|
|
949
969
|
byte_end: match_end,
|
|
950
970
|
alt_text,
|
|
951
|
-
url:
|
|
971
|
+
url: url_match.as_str().to_string(),
|
|
952
972
|
is_reference: false,
|
|
953
973
|
reference_id: None,
|
|
954
974
|
});
|
|
955
|
-
} else if let Some(ref_id) = cap.get(
|
|
975
|
+
} else if let Some(ref_id) = cap.get(6) {
|
|
956
976
|
// Reference image
|
|
957
977
|
let ref_id_str = ref_id.as_str();
|
|
958
978
|
let normalized_ref = if ref_id_str.is_empty() {
|
|
@@ -1090,75 +1110,79 @@ impl<'a> LintContext<'a> {
|
|
|
1090
1110
|
byte_offset >= start && byte_offset < end && (is_multiline || is_fenced || is_indented)
|
|
1091
1111
|
});
|
|
1092
1112
|
|
|
1093
|
-
// Detect list items (skip if in frontmatter or in
|
|
1113
|
+
// Detect list items (skip if in frontmatter, in mkdocstrings block, or in HTML comment)
|
|
1094
1114
|
let in_mkdocstrings = flavor == MarkdownFlavor::MkDocs
|
|
1095
1115
|
&& crate::utils::mkdocstrings_refs::is_within_autodoc_block(content, byte_offset);
|
|
1096
|
-
let
|
|
1097
|
-
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
|
|
1103
|
-
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
|
|
1116
|
+
let in_html_comment = crate::utils::skip_context::is_in_html_comment(content, byte_offset);
|
|
1117
|
+
let list_item = if !(in_code_block
|
|
1118
|
+
|| is_blank
|
|
1119
|
+
|| in_mkdocstrings
|
|
1120
|
+
|| in_html_comment
|
|
1121
|
+
|| (front_matter_end > 0 && i < front_matter_end))
|
|
1122
|
+
{
|
|
1123
|
+
// Strip blockquote prefix if present for list detection
|
|
1124
|
+
let (line_for_list_check, blockquote_prefix_len) = if let Some(caps) = BLOCKQUOTE_REGEX.captures(line) {
|
|
1125
|
+
let prefix = caps.get(1).unwrap().as_str();
|
|
1126
|
+
let content = caps.get(2).unwrap().as_str();
|
|
1127
|
+
(content, prefix.len())
|
|
1128
|
+
} else {
|
|
1129
|
+
(&**line, 0)
|
|
1130
|
+
};
|
|
1107
1131
|
|
|
1108
|
-
|
|
1109
|
-
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
|
|
1113
|
-
|
|
1114
|
-
|
|
1115
|
-
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
|
|
1119
|
-
|
|
1120
|
-
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
} else {
|
|
1125
|
-
Some(ListItemInfo {
|
|
1126
|
-
marker: marker.to_string(),
|
|
1127
|
-
is_ordered: false,
|
|
1128
|
-
number: None,
|
|
1129
|
-
marker_column,
|
|
1130
|
-
content_column,
|
|
1131
|
-
})
|
|
1132
|
-
}
|
|
1133
|
-
} else if let Some(caps) = ORDERED_REGEX.captures(line_for_list_check) {
|
|
1134
|
-
let leading_spaces = caps.get(1).map_or("", |m| m.as_str());
|
|
1135
|
-
let number_str = caps.get(2).map_or("", |m| m.as_str());
|
|
1136
|
-
let delimiter = caps.get(3).map_or("", |m| m.as_str());
|
|
1137
|
-
let spacing = caps.get(4).map_or("", |m| m.as_str());
|
|
1138
|
-
let _content = caps.get(5).map_or("", |m| m.as_str());
|
|
1139
|
-
let marker = format!("{number_str}{delimiter}");
|
|
1140
|
-
let marker_column = blockquote_prefix_len + leading_spaces.len();
|
|
1141
|
-
let content_column = marker_column + marker.len() + spacing.len();
|
|
1142
|
-
|
|
1143
|
-
// According to CommonMark spec, ordered list items MUST have at least one space
|
|
1144
|
-
// after the marker (period or parenthesis). Without a space, it's not a list item.
|
|
1145
|
-
if spacing.is_empty() {
|
|
1146
|
-
None
|
|
1147
|
-
} else {
|
|
1148
|
-
Some(ListItemInfo {
|
|
1149
|
-
marker,
|
|
1150
|
-
is_ordered: true,
|
|
1151
|
-
number: number_str.parse().ok(),
|
|
1152
|
-
marker_column,
|
|
1153
|
-
content_column,
|
|
1154
|
-
})
|
|
1155
|
-
}
|
|
1132
|
+
if let Some(caps) = UNORDERED_REGEX.captures(line_for_list_check) {
|
|
1133
|
+
let leading_spaces = caps.get(1).map_or("", |m| m.as_str());
|
|
1134
|
+
let marker = caps.get(2).map_or("", |m| m.as_str());
|
|
1135
|
+
let spacing = caps.get(3).map_or("", |m| m.as_str());
|
|
1136
|
+
let _content = caps.get(4).map_or("", |m| m.as_str());
|
|
1137
|
+
let marker_column = blockquote_prefix_len + leading_spaces.len();
|
|
1138
|
+
let content_column = marker_column + marker.len() + spacing.len();
|
|
1139
|
+
|
|
1140
|
+
// According to CommonMark spec, unordered list items MUST have at least one space
|
|
1141
|
+
// after the marker (-, *, or +). Without a space, it's not a list item.
|
|
1142
|
+
// This also naturally handles cases like:
|
|
1143
|
+
// - *emphasis* (not a list)
|
|
1144
|
+
// - **bold** (not a list)
|
|
1145
|
+
// - --- (horizontal rule, not a list)
|
|
1146
|
+
if spacing.is_empty() {
|
|
1147
|
+
None
|
|
1156
1148
|
} else {
|
|
1149
|
+
Some(ListItemInfo {
|
|
1150
|
+
marker: marker.to_string(),
|
|
1151
|
+
is_ordered: false,
|
|
1152
|
+
number: None,
|
|
1153
|
+
marker_column,
|
|
1154
|
+
content_column,
|
|
1155
|
+
})
|
|
1156
|
+
}
|
|
1157
|
+
} else if let Some(caps) = ORDERED_REGEX.captures(line_for_list_check) {
|
|
1158
|
+
let leading_spaces = caps.get(1).map_or("", |m| m.as_str());
|
|
1159
|
+
let number_str = caps.get(2).map_or("", |m| m.as_str());
|
|
1160
|
+
let delimiter = caps.get(3).map_or("", |m| m.as_str());
|
|
1161
|
+
let spacing = caps.get(4).map_or("", |m| m.as_str());
|
|
1162
|
+
let _content = caps.get(5).map_or("", |m| m.as_str());
|
|
1163
|
+
let marker = format!("{number_str}{delimiter}");
|
|
1164
|
+
let marker_column = blockquote_prefix_len + leading_spaces.len();
|
|
1165
|
+
let content_column = marker_column + marker.len() + spacing.len();
|
|
1166
|
+
|
|
1167
|
+
// According to CommonMark spec, ordered list items MUST have at least one space
|
|
1168
|
+
// after the marker (period or parenthesis). Without a space, it's not a list item.
|
|
1169
|
+
if spacing.is_empty() {
|
|
1157
1170
|
None
|
|
1171
|
+
} else {
|
|
1172
|
+
Some(ListItemInfo {
|
|
1173
|
+
marker,
|
|
1174
|
+
is_ordered: true,
|
|
1175
|
+
number: number_str.parse().ok(),
|
|
1176
|
+
marker_column,
|
|
1177
|
+
content_column,
|
|
1178
|
+
})
|
|
1158
1179
|
}
|
|
1159
1180
|
} else {
|
|
1160
1181
|
None
|
|
1161
|
-
}
|
|
1182
|
+
}
|
|
1183
|
+
} else {
|
|
1184
|
+
None
|
|
1185
|
+
};
|
|
1162
1186
|
|
|
1163
1187
|
lines.push(LineInfo {
|
|
1164
1188
|
content: line.to_string(),
|
|
@@ -1168,6 +1192,7 @@ impl<'a> LintContext<'a> {
|
|
|
1168
1192
|
in_code_block,
|
|
1169
1193
|
in_front_matter: front_matter_end > 0 && i < front_matter_end,
|
|
1170
1194
|
in_html_block: false, // Will be populated after line creation
|
|
1195
|
+
in_html_comment,
|
|
1171
1196
|
list_item,
|
|
1172
1197
|
heading: None, // Will be populated in second pass for Setext headings
|
|
1173
1198
|
blockquote: None, // Will be populated after line creation
|