rumdl 0.0.99__tar.gz → 0.0.100__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.99 → rumdl-0.0.100}/CHANGELOG.md +4 -1
- {rumdl-0.0.99 → rumdl-0.0.100}/Cargo.lock +7 -7
- {rumdl-0.0.99 → rumdl-0.0.100}/Cargo.toml +1 -1
- {rumdl-0.0.99 → rumdl-0.0.100}/Makefile +12 -6
- {rumdl-0.0.99 → rumdl-0.0.100}/PKG-INFO +2 -2
- {rumdl-0.0.99 → rumdl-0.0.100}/README.md +1 -1
- {rumdl-0.0.99 → rumdl-0.0.100}/docs/global-settings.md +1 -1
- rumdl-0.0.100/scripts/update-pre-commit-docs.sh +35 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/lint_context.rs +119 -41
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rules/md032_blanks_around_lists.rs +62 -73
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rules/md045_no_alt_text.rs +108 -11
- {rumdl-0.0.99 → rumdl-0.0.100}/src/utils/document_structure.rs +147 -107
- rumdl-0.0.100/tests/deeply_nested_lists_performance_test.rs +455 -0
- rumdl-0.0.100/tests/escaped_brackets_test.rs +89 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/rules/inline_content_edge_cases_test.rs +2 -2
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/rules/md045_test.rs +27 -12
- {rumdl-0.0.99 → rumdl-0.0.100}/.config/nextest.toml +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/.mise.toml +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/.pre-commit-config.yaml +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/.rumdl.toml +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/.rustfmt.toml +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/LICENSE +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/MANIFEST.in +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/assets/logo.png +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/benches/fix_performance.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/benches/range_performance.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/benches/range_utils_benchmark.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/benches/rule_performance.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/benches/simple_fix_bench.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/docs/RULES.md +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/docs/md001.md +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/docs/md002.md +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/docs/md003.md +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/docs/md004.md +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/docs/md005.md +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/docs/md006.md +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/docs/md007.md +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/docs/md009.md +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/docs/md010.md +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/docs/md011.md +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/docs/md012.md +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/docs/md013.md +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/docs/md014.md +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/docs/md018.md +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/docs/md019.md +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/docs/md020.md +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/docs/md021.md +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/docs/md022.md +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/docs/md023.md +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/docs/md024.md +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/docs/md025.md +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/docs/md026.md +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/docs/md027.md +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/docs/md028.md +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/docs/md029.md +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/docs/md030.md +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/docs/md031.md +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/docs/md032.md +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/docs/md033.md +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/docs/md034.md +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/docs/md035.md +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/docs/md036.md +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/docs/md037.md +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/docs/md038.md +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/docs/md039.md +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/docs/md040.md +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/docs/md041.md +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/docs/md042.md +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/docs/md043.md +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/docs/md044.md +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/docs/md045.md +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/docs/md046.md +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/docs/md047.md +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/docs/md048.md +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/docs/md049.md +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/docs/md050.md +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/docs/md051.md +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/docs/md052.md +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/docs/md053.md +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/docs/md054.md +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/docs/md055.md +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/docs/md056.md +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/docs/md057.md +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/docs/md058.md +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/docs/vscode-extension.md +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/parity_check.py +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/pyproject.toml +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/python/MANIFEST.in +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/python/PYTHON-README.md +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/python/rumdl/__init__.py +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/python/rumdl/__main__.py +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/python/rumdl/py.typed +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/rumdl.toml.example +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/rust-toolchain.toml +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/scripts/extract-changelog.sh +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/scripts/prepare-release.sh +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/scripts/setup-pre-commit.sh +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/bin/benchmark.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/bin/benchmark_rule.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/bin/file_parallel_benchmark.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/bin/measure_code_span_performance.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/config.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/exit_codes.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/init.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/inline_config.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/lib.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/lsp/mod.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/lsp/server.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/lsp/types.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/main.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/markdownlint_config.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/output/formatters/azure.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/output/formatters/concise.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/output/formatters/github.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/output/formatters/gitlab.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/output/formatters/grouped.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/output/formatters/json.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/output/formatters/json_lines.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/output/formatters/junit.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/output/formatters/mod.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/output/formatters/pylint.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/output/formatters/sarif.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/output/formatters/text.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/output/mod.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/parallel.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/performance.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/profiling.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/python.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rule.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rule_config.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rule_config_serde.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rules/blockquote_utils.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rules/code_block_utils.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rules/code_fence_utils.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rules/emphasis_style.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rules/front_matter_utils.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rules/heading_utils.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rules/list_utils.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rules/md001_heading_increment.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rules/md002_first_heading_h1/md002_config.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rules/md002_first_heading_h1.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rules/md003_heading_style/md003_config.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rules/md003_heading_style.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rules/md004_unordered_list_style/md004_config.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rules/md004_unordered_list_style.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rules/md005_list_indent.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rules/md006_start_bullets.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rules/md007_ul_indent/md007_config.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rules/md007_ul_indent.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rules/md009_trailing_spaces/md009_config.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rules/md009_trailing_spaces.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rules/md010_no_hard_tabs/md010_config.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rules/md010_no_hard_tabs.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rules/md011_no_reversed_links.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rules/md012_no_multiple_blanks/md012_config.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rules/md012_no_multiple_blanks.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rules/md013_line_length/md013_config.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rules/md013_line_length.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rules/md014_commands_show_output/md014_config.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rules/md014_commands_show_output.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rules/md018_no_missing_space_atx.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rules/md019_no_multiple_space_atx.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rules/md020_no_missing_space_closed_atx.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rules/md021_no_multiple_space_closed_atx.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rules/md022_blanks_around_headings/md022_config.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rules/md022_blanks_around_headings.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rules/md023_heading_start_left.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rules/md024_no_duplicate_heading/md024_config.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rules/md024_no_duplicate_heading.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rules/md025_single_title/md025_config.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rules/md025_single_title.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rules/md026_no_trailing_punctuation/md026_config.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rules/md026_no_trailing_punctuation.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rules/md027_multiple_spaces_blockquote.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rules/md028_no_blanks_blockquote.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rules/md029_ordered_list_prefix.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rules/md030_list_marker_space/md030_config.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rules/md030_list_marker_space.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rules/md031_blanks_around_fences.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rules/md033_no_inline_html/md033_config.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rules/md033_no_inline_html.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rules/md034_no_bare_urls.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rules/md035_hr_style/md035_config.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rules/md035_hr_style.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rules/md036_no_emphasis_only_first/md036_config.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rules/md036_no_emphasis_only_first.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rules/md037_spaces_around_emphasis.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rules/md038_no_space_in_code.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rules/md039_no_space_in_links.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rules/md040_fenced_code_language.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rules/md041_first_line_heading.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rules/md042_no_empty_links.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rules/md043_required_headings.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rules/md044_proper_names/md044_config.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rules/md044_proper_names.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rules/md045_no_alt_text/md045_config.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rules/md046_code_block_style/md046_config.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rules/md046_code_block_style.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rules/md047_single_trailing_newline.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rules/md048_code_fence_style/md048_config.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rules/md048_code_fence_style.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rules/md049_emphasis_style/md049_config.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rules/md049_emphasis_style.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rules/md050_strong_style/md050_config.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rules/md050_strong_style.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rules/md051_link_fragments.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rules/md052_reference_links_images.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rules/md053_link_image_reference_definitions.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rules/md054_link_image_style/md054_config.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rules/md054_link_image_style.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rules/md055_table_pipe_style/md055_config.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rules/md055_table_pipe_style.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rules/md056_table_column_count.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rules/md057_existing_relative_links/md057_config.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rules/md057_existing_relative_links.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rules/md058_blanks_around_tables.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rules/mod.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/rules/strong_style.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/utils/ast_utils.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/utils/code_block_utils.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/utils/early_returns.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/utils/element_cache.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/utils/emphasis_utils.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/utils/fix_utils.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/utils/markdown_elements.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/utils/mod.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/utils/range_utils.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/utils/regex_cache.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/utils/string_interner.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/utils/table_utils.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/utils/text_reflow.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/src/vscode.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/advanced_integration_tests.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/character_ranges/additional_tests.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/character_ranges/basic_tests.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/character_ranges/comprehensive_tests.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/character_ranges/extended_tests.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/character_ranges/mod.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/character_ranges/unicode_utils.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/cli_duplication_test.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/cli_explain_test.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/cli_flag_precedence_test.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/cli_integration_tests.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/cli_lsp_fix_consistency.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/cli_statistics_test.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/commonmark_compliance_tests.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/comprehensive_integration_tests.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/comprehensive_output_format_tests.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/config_application_tests.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/config_file_command_test.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/config_tests.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/configuration_inheritance_tests.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/consistency_regression_tests.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/cross_platform_compatibility_tests.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/final_confidence_assessment.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/init_command_test.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/init_tests.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/inline_config_test.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/integration_tests.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/json_output_test.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/lib.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/lsp_editor_integration_tests.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/lsp_integration_tests.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/lsp_memory_leak_tests.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/lsp_tests.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/malformed_markdown_stress_tests.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/markdownlint_cli_integration.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/markdownlint_config_test.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/markdownlintignore_test.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/md013_reflow_integration_test.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/nested_code_block_test.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/output_format_integration_tests.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/output_format_tests.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/perf_check.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/performance_validation_tests.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/pyproject_config_tests.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/python_bindings_test.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/real_world_repository_tests.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/regression_prevention_tests.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/rules/emphasis_edge_cases_test.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/rules/heading_edge_cases_test.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/rules/link_edge_cases_test.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/rules/list_rules_integration_test.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/rules/md001_test.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/rules/md001_unicode_test.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/rules/md002_test.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/rules/md003_test.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/rules/md004_test.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/rules/md005_test.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/rules/md005_unicode_test.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/rules/md006_test.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/rules/md006_unicode_test.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/rules/md007_test.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/rules/md009_test.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/rules/md010_test.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/rules/md011_test.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/rules/md012_test.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/rules/md013_test.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/rules/md014_test.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/rules/md018_test.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/rules/md019_test.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/rules/md020_test.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/rules/md021_test.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/rules/md022_test.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/rules/md023_extended_test.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/rules/md023_test.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/rules/md024_test.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/rules/md025_test.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/rules/md026_test.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/rules/md027_test.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/rules/md028_test.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/rules/md029_test.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/rules/md029_unicode_test.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/rules/md030_test.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/rules/md031_test.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/rules/md032_test.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/rules/md033_extended_test.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/rules/md033_test.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/rules/md034_ipv6_test.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/rules/md034_test.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/rules/md035_test.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/rules/md036_test.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/rules/md037_test.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/rules/md038_nested_backticks_test.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/rules/md038_test.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/rules/md039_test.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/rules/md040_test.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/rules/md041_test.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/rules/md042_test.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/rules/md043_test.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/rules/md044_test.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/rules/md046_test.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/rules/md047_test.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/rules/md048_test.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/rules/md049_test.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/rules/md050_test.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/rules/md051_test.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/rules/md051_unicode_test.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/rules/md052_test.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/rules/md053_additional_test.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/rules/md053_proptest.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/rules/md053_test.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/rules/md054_test.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/rules/md054_unicode_test.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/rules/md055_test.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/rules/md056_test.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/rules/md057_test.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/rules/md058_test.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/rules/mod.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/rules_mod_test.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/thread_safety_tests.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/unicode_edge_case_tests.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/utils/blockquote_utils_test.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/utils/code_block_utils_extended_test.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/utils/code_block_utils_test.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/utils/core_utils_test.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/utils/front_matter_utils_test.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/utils/line_index_test.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/utils/mod.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/utils_markdown_edge_cases.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/utils_tests.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/vscode_extension_fixes.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/vscode_test.rs +0 -0
- {rumdl-0.0.99 → rumdl-0.0.100}/tests/vscode_tests.rs +0 -0
|
@@ -7,6 +7,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.0.100] - 2025-07-22
|
|
11
|
+
|
|
10
12
|
## [0.0.99] - 2025-07-22
|
|
11
13
|
|
|
12
14
|
### Fixed
|
|
@@ -223,7 +225,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
223
225
|
|
|
224
226
|
- Initial implementation of remaining rules for markdownlint parity
|
|
225
227
|
|
|
226
|
-
[Unreleased]: https://github.com/rvben/rumdl/compare/v0.0.
|
|
228
|
+
[Unreleased]: https://github.com/rvben/rumdl/compare/v0.0.100...HEAD
|
|
229
|
+
[0.0.100]: https://github.com/rvben/rumdl/compare/v0.0.99...v0.0.100
|
|
227
230
|
[0.0.99]: https://github.com/rvben/rumdl/compare/v0.0.98...v0.0.99
|
|
228
231
|
[0.0.98]: https://github.com/rvben/rumdl/compare/v0.0.97...v0.0.98
|
|
229
232
|
[0.0.97]: https://github.com/rvben/rumdl/compare/v0.0.96...v0.0.97
|
|
@@ -859,9 +859,9 @@ checksum = "f4c7245a08504955605670dbf141fceab975f15ca21570696aebe9d2e71576bd"
|
|
|
859
859
|
|
|
860
860
|
[[package]]
|
|
861
861
|
name = "io-uring"
|
|
862
|
-
version = "0.7.
|
|
862
|
+
version = "0.7.9"
|
|
863
863
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
864
|
-
checksum = "
|
|
864
|
+
checksum = "d93587f37623a1a17d94ef2bc9ada592f5465fe7732084ab7beefabe5c77c0c4"
|
|
865
865
|
dependencies = [
|
|
866
866
|
"bitflags 2.9.1",
|
|
867
867
|
"cfg-if",
|
|
@@ -1397,9 +1397,9 @@ checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f"
|
|
|
1397
1397
|
|
|
1398
1398
|
[[package]]
|
|
1399
1399
|
name = "rand"
|
|
1400
|
-
version = "0.9.
|
|
1400
|
+
version = "0.9.2"
|
|
1401
1401
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1402
|
-
checksum = "
|
|
1402
|
+
checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1"
|
|
1403
1403
|
dependencies = [
|
|
1404
1404
|
"rand_chacha",
|
|
1405
1405
|
"rand_core",
|
|
@@ -1455,9 +1455,9 @@ dependencies = [
|
|
|
1455
1455
|
|
|
1456
1456
|
[[package]]
|
|
1457
1457
|
name = "redox_syscall"
|
|
1458
|
-
version = "0.5.
|
|
1458
|
+
version = "0.5.15"
|
|
1459
1459
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1460
|
-
checksum = "
|
|
1460
|
+
checksum = "7e8af0dde094006011e6a740d4879319439489813bd0bcdc7d821beaeeff48ec"
|
|
1461
1461
|
dependencies = [
|
|
1462
1462
|
"bitflags 2.9.1",
|
|
1463
1463
|
]
|
|
@@ -1493,7 +1493,7 @@ checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c"
|
|
|
1493
1493
|
|
|
1494
1494
|
[[package]]
|
|
1495
1495
|
name = "rumdl"
|
|
1496
|
-
version = "0.0.
|
|
1496
|
+
version = "0.0.100"
|
|
1497
1497
|
dependencies = [
|
|
1498
1498
|
"anyhow",
|
|
1499
1499
|
"assert_cmd",
|
|
@@ -124,6 +124,12 @@ update-readme-version:
|
|
|
124
124
|
@rm -f README.md.bak
|
|
125
125
|
@echo "README.md updated to rev $(NEW_TAG)"
|
|
126
126
|
|
|
127
|
+
update-all-docs-version:
|
|
128
|
+
@echo "Updating all documentation to use $(NEW_TAG)..."
|
|
129
|
+
@perl -i.bak -E 's/rev: v[0-9]+\.[0-9]+\.[0-9]+/rev: $(NEW_TAG)/g' README.md docs/global-settings.md ../rumdl-pre-commit/README.md 2>/dev/null || true
|
|
130
|
+
@rm -f README.md.bak docs/global-settings.md.bak ../rumdl-pre-commit/README.md.bak 2>/dev/null || true
|
|
131
|
+
@echo "All documentation updated to rev $(NEW_TAG)"
|
|
132
|
+
|
|
127
133
|
update-changelog:
|
|
128
134
|
@echo "Updating CHANGELOG.md for $(NEW_TAG)..."
|
|
129
135
|
@if [ -f CHANGELOG.md ]; then \
|
|
@@ -145,9 +151,9 @@ version-major:
|
|
|
145
151
|
$(eval VERSION_NO_V := $(NEW_MAJOR).0.0)
|
|
146
152
|
@echo "Current: $(CURRENT) -> New: $(NEW_TAG)"
|
|
147
153
|
@$(MAKE) update-cargo-version VERSION_NO_V=$(VERSION_NO_V)
|
|
148
|
-
@$(MAKE) update-
|
|
154
|
+
@$(MAKE) update-all-docs-version NEW_TAG=$(NEW_TAG)
|
|
149
155
|
@$(MAKE) update-changelog NEW_TAG=$(NEW_TAG) VERSION_NO_V=$(VERSION_NO_V) CURRENT=$(CURRENT)
|
|
150
|
-
@git add Cargo.toml Cargo.lock README.md CHANGELOG.md
|
|
156
|
+
@git add Cargo.toml Cargo.lock README.md docs/global-settings.md CHANGELOG.md
|
|
151
157
|
@git commit -m "Bump version to $(NEW_TAG)"
|
|
152
158
|
@git tag -a $(NEW_TAG) -m "Release $(NEW_TAG)"
|
|
153
159
|
@echo "Version $(NEW_TAG) created and committed. Run 'git push && git push origin $(NEW_TAG)' to trigger release workflow."
|
|
@@ -162,9 +168,9 @@ version-minor:
|
|
|
162
168
|
$(eval VERSION_NO_V := $(MAJOR).$(NEW_MINOR).0)
|
|
163
169
|
@echo "Current: $(CURRENT) -> New: $(NEW_TAG)"
|
|
164
170
|
@$(MAKE) update-cargo-version VERSION_NO_V=$(VERSION_NO_V)
|
|
165
|
-
@$(MAKE) update-
|
|
171
|
+
@$(MAKE) update-all-docs-version NEW_TAG=$(NEW_TAG)
|
|
166
172
|
@$(MAKE) update-changelog NEW_TAG=$(NEW_TAG) VERSION_NO_V=$(VERSION_NO_V) CURRENT=$(CURRENT)
|
|
167
|
-
@git add Cargo.toml Cargo.lock README.md CHANGELOG.md
|
|
173
|
+
@git add Cargo.toml Cargo.lock README.md docs/global-settings.md CHANGELOG.md
|
|
168
174
|
@git commit -m "Bump version to $(NEW_TAG)"
|
|
169
175
|
@git tag -a $(NEW_TAG) -m "Release $(NEW_TAG)"
|
|
170
176
|
@echo "Version $(NEW_TAG) created and committed. Run 'git push && git push origin $(NEW_TAG)' to trigger release workflow."
|
|
@@ -180,9 +186,9 @@ version-patch:
|
|
|
180
186
|
$(eval VERSION_NO_V := $(MAJOR).$(MINOR).$(NEW_PATCH))
|
|
181
187
|
@echo "Current: $(CURRENT) -> New: $(NEW_TAG)"
|
|
182
188
|
@$(MAKE) update-cargo-version VERSION_NO_V=$(VERSION_NO_V)
|
|
183
|
-
@$(MAKE) update-
|
|
189
|
+
@$(MAKE) update-all-docs-version NEW_TAG=$(NEW_TAG)
|
|
184
190
|
@$(MAKE) update-changelog NEW_TAG=$(NEW_TAG) VERSION_NO_V=$(VERSION_NO_V) CURRENT=$(CURRENT)
|
|
185
|
-
@git add Cargo.toml Cargo.lock README.md CHANGELOG.md
|
|
191
|
+
@git add Cargo.toml Cargo.lock README.md docs/global-settings.md CHANGELOG.md
|
|
186
192
|
@git commit -m "Bump version to $(NEW_TAG)"
|
|
187
193
|
@git tag -a $(NEW_TAG) -m "Release $(NEW_TAG)"
|
|
188
194
|
@echo "Version $(NEW_TAG) created and committed. Run 'git push && git push origin $(NEW_TAG)' to trigger release workflow."
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: rumdl
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.100
|
|
4
4
|
Classifier: Development Status :: 4 - Beta
|
|
5
5
|
Classifier: Environment :: Console
|
|
6
6
|
Classifier: Intended Audience :: Developers
|
|
@@ -242,7 +242,7 @@ Add the following to your `.pre-commit-config.yaml`:
|
|
|
242
242
|
```yaml
|
|
243
243
|
repos:
|
|
244
244
|
- repo: https://github.com/rvben/rumdl-pre-commit
|
|
245
|
-
rev: v0.0.
|
|
245
|
+
rev: v0.0.99 # Use the latest release tag
|
|
246
246
|
hooks:
|
|
247
247
|
- id: rumdl
|
|
248
248
|
# To only check (default):
|
|
@@ -211,7 +211,7 @@ Add the following to your `.pre-commit-config.yaml`:
|
|
|
211
211
|
```yaml
|
|
212
212
|
repos:
|
|
213
213
|
- repo: https://github.com/rvben/rumdl-pre-commit
|
|
214
|
-
rev: v0.0.
|
|
214
|
+
rev: v0.0.99 # Use the latest release tag
|
|
215
215
|
hooks:
|
|
216
216
|
- id: rumdl
|
|
217
217
|
# To only check (default):
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# Script to update rumdl-pre-commit version references in documentation
|
|
3
|
+
|
|
4
|
+
set -e
|
|
5
|
+
|
|
6
|
+
# Get the latest release version
|
|
7
|
+
LATEST_VERSION=$(gh release list --repo rvben/rumdl --limit 1 | awk '{print $1}')
|
|
8
|
+
|
|
9
|
+
if [ -z "$LATEST_VERSION" ]; then
|
|
10
|
+
echo "Error: Could not determine latest version"
|
|
11
|
+
exit 1
|
|
12
|
+
fi
|
|
13
|
+
|
|
14
|
+
echo "Latest rumdl version: $LATEST_VERSION"
|
|
15
|
+
|
|
16
|
+
# Update version in all documentation files
|
|
17
|
+
FILES=(
|
|
18
|
+
"README.md"
|
|
19
|
+
"docs/global-settings.md"
|
|
20
|
+
"../rumdl-pre-commit/README.md"
|
|
21
|
+
)
|
|
22
|
+
|
|
23
|
+
for file in "${FILES[@]}"; do
|
|
24
|
+
if [ -f "$file" ]; then
|
|
25
|
+
echo "Updating $file..."
|
|
26
|
+
# Update rev: vX.X.X patterns
|
|
27
|
+
sed -i.bak -E "s/rev: v[0-9]+\.[0-9]+\.[0-9]+/rev: $LATEST_VERSION/g" "$file"
|
|
28
|
+
# Clean up backup files
|
|
29
|
+
rm -f "${file}.bak"
|
|
30
|
+
else
|
|
31
|
+
echo "Warning: $file not found"
|
|
32
|
+
fi
|
|
33
|
+
done
|
|
34
|
+
|
|
35
|
+
echo "Documentation updated to use $LATEST_VERSION"
|
|
@@ -1263,52 +1263,130 @@ fn merge_adjacent_list_blocks(list_blocks: &mut Vec<ListBlock>, lines: &[LineInf
|
|
|
1263
1263
|
return;
|
|
1264
1264
|
}
|
|
1265
1265
|
|
|
1266
|
-
let mut
|
|
1267
|
-
|
|
1268
|
-
|
|
1269
|
-
|
|
1270
|
-
|
|
1271
|
-
|
|
1272
|
-
|
|
1273
|
-
|
|
1274
|
-
|
|
1275
|
-
|
|
1276
|
-
|
|
1277
|
-
|
|
1278
|
-
|
|
1279
|
-
|
|
1280
|
-
|
|
1281
|
-
|
|
1282
|
-
|
|
1283
|
-
|
|
1284
|
-
|
|
1285
|
-
|
|
1286
|
-
|
|
1287
|
-
|
|
1288
|
-
|
|
1289
|
-
|
|
1290
|
-
|
|
1291
|
-
if should_merge {
|
|
1292
|
-
// Merge blocks
|
|
1293
|
-
current.end_line = next.end_line;
|
|
1294
|
-
current.item_lines.extend_from_slice(&next.item_lines);
|
|
1295
|
-
|
|
1296
|
-
// Update marker consistency
|
|
1297
|
-
if !current.is_ordered && current.marker.is_some() && next.marker.is_some() && current.marker != next.marker
|
|
1298
|
-
{
|
|
1299
|
-
current.marker = None; // Mixed markers
|
|
1266
|
+
let mut merger = ListBlockMerger::new(lines);
|
|
1267
|
+
*list_blocks = merger.merge(list_blocks);
|
|
1268
|
+
}
|
|
1269
|
+
|
|
1270
|
+
/// Helper struct to manage the complex logic of merging list blocks
|
|
1271
|
+
struct ListBlockMerger<'a> {
|
|
1272
|
+
lines: &'a [LineInfo],
|
|
1273
|
+
}
|
|
1274
|
+
|
|
1275
|
+
impl<'a> ListBlockMerger<'a> {
|
|
1276
|
+
fn new(lines: &'a [LineInfo]) -> Self {
|
|
1277
|
+
Self { lines }
|
|
1278
|
+
}
|
|
1279
|
+
|
|
1280
|
+
fn merge(&mut self, list_blocks: &[ListBlock]) -> Vec<ListBlock> {
|
|
1281
|
+
let mut merged = Vec::with_capacity(list_blocks.len());
|
|
1282
|
+
let mut current = list_blocks[0].clone();
|
|
1283
|
+
|
|
1284
|
+
for next in list_blocks.iter().skip(1) {
|
|
1285
|
+
if self.should_merge_blocks(¤t, next) {
|
|
1286
|
+
current = self.merge_two_blocks(current, next);
|
|
1287
|
+
} else {
|
|
1288
|
+
merged.push(current);
|
|
1289
|
+
current = next.clone();
|
|
1300
1290
|
}
|
|
1301
|
-
} else {
|
|
1302
|
-
// Save current and start new
|
|
1303
|
-
merged.push(current);
|
|
1304
|
-
current = next.clone();
|
|
1305
1291
|
}
|
|
1292
|
+
|
|
1293
|
+
merged.push(current);
|
|
1294
|
+
merged
|
|
1295
|
+
}
|
|
1296
|
+
|
|
1297
|
+
/// Determine if two adjacent list blocks should be merged
|
|
1298
|
+
fn should_merge_blocks(&self, current: &ListBlock, next: &ListBlock) -> bool {
|
|
1299
|
+
// Basic compatibility checks
|
|
1300
|
+
if !self.blocks_are_compatible(current, next) {
|
|
1301
|
+
return false;
|
|
1302
|
+
}
|
|
1303
|
+
|
|
1304
|
+
// Check spacing and content between blocks
|
|
1305
|
+
let spacing = self.analyze_spacing_between(current, next);
|
|
1306
|
+
match spacing {
|
|
1307
|
+
BlockSpacing::Consecutive => true,
|
|
1308
|
+
BlockSpacing::SingleBlank => self.can_merge_with_blank_between(current, next),
|
|
1309
|
+
BlockSpacing::MultipleBlanks | BlockSpacing::ContentBetween => {
|
|
1310
|
+
self.can_merge_with_content_between(current, next)
|
|
1311
|
+
}
|
|
1312
|
+
}
|
|
1313
|
+
}
|
|
1314
|
+
|
|
1315
|
+
/// Check if blocks have compatible structure for merging
|
|
1316
|
+
fn blocks_are_compatible(&self, current: &ListBlock, next: &ListBlock) -> bool {
|
|
1317
|
+
current.is_ordered == next.is_ordered
|
|
1318
|
+
&& current.blockquote_prefix == next.blockquote_prefix
|
|
1319
|
+
&& current.nesting_level == next.nesting_level
|
|
1306
1320
|
}
|
|
1307
1321
|
|
|
1308
|
-
|
|
1309
|
-
|
|
1322
|
+
/// Analyze the spacing between two list blocks
|
|
1323
|
+
fn analyze_spacing_between(&self, current: &ListBlock, next: &ListBlock) -> BlockSpacing {
|
|
1324
|
+
let gap = next.start_line - current.end_line;
|
|
1325
|
+
|
|
1326
|
+
match gap {
|
|
1327
|
+
1 => BlockSpacing::Consecutive,
|
|
1328
|
+
2 => BlockSpacing::SingleBlank,
|
|
1329
|
+
_ if gap > 2 => {
|
|
1330
|
+
if self.has_only_blank_lines_between(current, next) {
|
|
1331
|
+
BlockSpacing::MultipleBlanks
|
|
1332
|
+
} else {
|
|
1333
|
+
BlockSpacing::ContentBetween
|
|
1334
|
+
}
|
|
1335
|
+
}
|
|
1336
|
+
_ => BlockSpacing::Consecutive, // gap == 0, overlapping (shouldn't happen)
|
|
1337
|
+
}
|
|
1338
|
+
}
|
|
1339
|
+
|
|
1340
|
+
/// Check if unordered lists can be merged with a single blank line between
|
|
1341
|
+
fn can_merge_with_blank_between(&self, current: &ListBlock, next: &ListBlock) -> bool {
|
|
1342
|
+
// Only merge unordered lists with same marker across single blank
|
|
1343
|
+
!current.is_ordered && current.marker == next.marker
|
|
1344
|
+
}
|
|
1345
|
+
|
|
1346
|
+
/// Check if ordered lists can be merged when there's content between them
|
|
1347
|
+
fn can_merge_with_content_between(&self, current: &ListBlock, next: &ListBlock) -> bool {
|
|
1348
|
+
// Only consider merging ordered lists with meaningful content between
|
|
1349
|
+
current.is_ordered && next.is_ordered && has_meaningful_content_between(current, next, self.lines)
|
|
1350
|
+
}
|
|
1351
|
+
|
|
1352
|
+
/// Check if there are only blank lines between blocks
|
|
1353
|
+
fn has_only_blank_lines_between(&self, current: &ListBlock, next: &ListBlock) -> bool {
|
|
1354
|
+
for line_num in (current.end_line + 1)..next.start_line {
|
|
1355
|
+
if let Some(line_info) = self.lines.get(line_num - 1) {
|
|
1356
|
+
if !line_info.content.trim().is_empty() {
|
|
1357
|
+
return false;
|
|
1358
|
+
}
|
|
1359
|
+
}
|
|
1360
|
+
}
|
|
1361
|
+
true
|
|
1362
|
+
}
|
|
1363
|
+
|
|
1364
|
+
/// Merge two compatible list blocks into one
|
|
1365
|
+
fn merge_two_blocks(&self, mut current: ListBlock, next: &ListBlock) -> ListBlock {
|
|
1366
|
+
current.end_line = next.end_line;
|
|
1367
|
+
current.item_lines.extend_from_slice(&next.item_lines);
|
|
1368
|
+
|
|
1369
|
+
// Handle marker consistency for unordered lists
|
|
1370
|
+
if !current.is_ordered && self.markers_differ(¤t, next) {
|
|
1371
|
+
current.marker = None; // Mixed markers
|
|
1372
|
+
}
|
|
1373
|
+
|
|
1374
|
+
current
|
|
1375
|
+
}
|
|
1376
|
+
|
|
1377
|
+
/// Check if two blocks have different markers
|
|
1378
|
+
fn markers_differ(&self, current: &ListBlock, next: &ListBlock) -> bool {
|
|
1379
|
+
current.marker.is_some() && next.marker.is_some() && current.marker != next.marker
|
|
1380
|
+
}
|
|
1381
|
+
}
|
|
1310
1382
|
|
|
1311
|
-
|
|
1383
|
+
/// Types of spacing between list blocks
|
|
1384
|
+
#[derive(Debug, PartialEq)]
|
|
1385
|
+
enum BlockSpacing {
|
|
1386
|
+
Consecutive, // No gap between blocks
|
|
1387
|
+
SingleBlank, // One blank line between blocks
|
|
1388
|
+
MultipleBlanks, // Multiple blank lines but no content
|
|
1389
|
+
ContentBetween, // Content exists between blocks
|
|
1312
1390
|
}
|
|
1313
1391
|
|
|
1314
1392
|
/// Check if there's meaningful content (not just blank lines) between two list blocks
|
|
@@ -369,33 +369,10 @@ impl Rule for MD032BlanksAroundLists {
|
|
|
369
369
|
}
|
|
370
370
|
|
|
371
371
|
fn check(&self, ctx: &crate::lint_context::LintContext) -> LintResult {
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
return Ok(Vec::new());
|
|
377
|
-
}
|
|
378
|
-
|
|
379
|
-
// Quick check for list markers
|
|
380
|
-
if !content.contains('-')
|
|
381
|
-
&& !content.contains('*')
|
|
382
|
-
&& !content.contains('+')
|
|
383
|
-
&& !content.chars().any(|c| c.is_numeric())
|
|
384
|
-
{
|
|
385
|
-
return Ok(Vec::new());
|
|
386
|
-
}
|
|
387
|
-
|
|
388
|
-
let structure = document_structure_from_str(content);
|
|
389
|
-
let lines: Vec<&str> = content.lines().collect();
|
|
390
|
-
let line_index = LineIndex::new(content.to_string());
|
|
391
|
-
|
|
392
|
-
let list_blocks = self.convert_list_blocks(ctx);
|
|
393
|
-
|
|
394
|
-
if list_blocks.is_empty() {
|
|
395
|
-
return Ok(Vec::new());
|
|
396
|
-
}
|
|
397
|
-
|
|
398
|
-
self.perform_checks(ctx, &structure, &lines, &list_blocks, &line_index)
|
|
372
|
+
// Delegate to optimized check_with_structure by creating a temporary DocumentStructure
|
|
373
|
+
// This fallback path should rarely be used since the main lint engine calls check_with_structure
|
|
374
|
+
let structure = document_structure_from_str(ctx.content);
|
|
375
|
+
self.check_with_structure(ctx, &structure)
|
|
399
376
|
}
|
|
400
377
|
|
|
401
378
|
/// Optimized check using pre-computed document structure
|
|
@@ -423,7 +400,64 @@ impl Rule for MD032BlanksAroundLists {
|
|
|
423
400
|
}
|
|
424
401
|
|
|
425
402
|
fn fix(&self, ctx: &crate::lint_context::LintContext) -> Result<String, LintError> {
|
|
403
|
+
// Delegate to helper method with temporary DocumentStructure
|
|
426
404
|
let structure = document_structure_from_str(ctx.content);
|
|
405
|
+
self.fix_with_structure(ctx, &structure)
|
|
406
|
+
}
|
|
407
|
+
|
|
408
|
+
fn should_skip(&self, ctx: &crate::lint_context::LintContext) -> bool {
|
|
409
|
+
ctx.content.is_empty() || ctx.list_blocks.is_empty()
|
|
410
|
+
}
|
|
411
|
+
|
|
412
|
+
fn category(&self) -> RuleCategory {
|
|
413
|
+
RuleCategory::List
|
|
414
|
+
}
|
|
415
|
+
|
|
416
|
+
fn as_any(&self) -> &dyn std::any::Any {
|
|
417
|
+
self
|
|
418
|
+
}
|
|
419
|
+
|
|
420
|
+
fn default_config_section(&self) -> Option<(String, toml::Value)> {
|
|
421
|
+
let mut map = toml::map::Map::new();
|
|
422
|
+
map.insert(
|
|
423
|
+
"allow_after_headings".to_string(),
|
|
424
|
+
toml::Value::Boolean(self.allow_after_headings),
|
|
425
|
+
);
|
|
426
|
+
map.insert(
|
|
427
|
+
"allow_after_colons".to_string(),
|
|
428
|
+
toml::Value::Boolean(self.allow_after_colons),
|
|
429
|
+
);
|
|
430
|
+
Some((self.name().to_string(), toml::Value::Table(map)))
|
|
431
|
+
}
|
|
432
|
+
|
|
433
|
+
fn from_config(config: &crate::config::Config) -> Box<dyn Rule>
|
|
434
|
+
where
|
|
435
|
+
Self: Sized,
|
|
436
|
+
{
|
|
437
|
+
let allow_after_headings =
|
|
438
|
+
crate::config::get_rule_config_value::<bool>(config, "MD032", "allow_after_headings").unwrap_or(true); // Default to true for better UX
|
|
439
|
+
|
|
440
|
+
let allow_after_colons =
|
|
441
|
+
crate::config::get_rule_config_value::<bool>(config, "MD032", "allow_after_colons").unwrap_or(true);
|
|
442
|
+
|
|
443
|
+
Box::new(MD032BlanksAroundLists {
|
|
444
|
+
allow_after_headings,
|
|
445
|
+
allow_after_colons,
|
|
446
|
+
})
|
|
447
|
+
}
|
|
448
|
+
|
|
449
|
+
fn as_maybe_document_structure(&self) -> Option<&dyn crate::rule::MaybeDocumentStructure> {
|
|
450
|
+
Some(self)
|
|
451
|
+
}
|
|
452
|
+
}
|
|
453
|
+
|
|
454
|
+
impl MD032BlanksAroundLists {
|
|
455
|
+
/// Helper method for fixing with a pre-computed DocumentStructure
|
|
456
|
+
fn fix_with_structure(
|
|
457
|
+
&self,
|
|
458
|
+
ctx: &crate::lint_context::LintContext,
|
|
459
|
+
structure: &DocumentStructure,
|
|
460
|
+
) -> Result<String, LintError> {
|
|
427
461
|
let lines: Vec<&str> = ctx.content.lines().collect();
|
|
428
462
|
let num_lines = lines.len();
|
|
429
463
|
if num_lines == 0 {
|
|
@@ -452,7 +486,7 @@ impl Rule for MD032BlanksAroundLists {
|
|
|
452
486
|
let should_require = self.should_require_blank_line_before(
|
|
453
487
|
lines[prev_line_actual_idx_0],
|
|
454
488
|
ctx,
|
|
455
|
-
|
|
489
|
+
structure,
|
|
456
490
|
prev_line_actual_idx_1,
|
|
457
491
|
);
|
|
458
492
|
if !is_prev_excluded
|
|
@@ -510,51 +544,6 @@ impl Rule for MD032BlanksAroundLists {
|
|
|
510
544
|
}
|
|
511
545
|
Ok(result)
|
|
512
546
|
}
|
|
513
|
-
|
|
514
|
-
fn should_skip(&self, ctx: &crate::lint_context::LintContext) -> bool {
|
|
515
|
-
ctx.content.is_empty() || ctx.list_blocks.is_empty()
|
|
516
|
-
}
|
|
517
|
-
|
|
518
|
-
fn category(&self) -> RuleCategory {
|
|
519
|
-
RuleCategory::List
|
|
520
|
-
}
|
|
521
|
-
|
|
522
|
-
fn as_any(&self) -> &dyn std::any::Any {
|
|
523
|
-
self
|
|
524
|
-
}
|
|
525
|
-
|
|
526
|
-
fn default_config_section(&self) -> Option<(String, toml::Value)> {
|
|
527
|
-
let mut map = toml::map::Map::new();
|
|
528
|
-
map.insert(
|
|
529
|
-
"allow_after_headings".to_string(),
|
|
530
|
-
toml::Value::Boolean(self.allow_after_headings),
|
|
531
|
-
);
|
|
532
|
-
map.insert(
|
|
533
|
-
"allow_after_colons".to_string(),
|
|
534
|
-
toml::Value::Boolean(self.allow_after_colons),
|
|
535
|
-
);
|
|
536
|
-
Some((self.name().to_string(), toml::Value::Table(map)))
|
|
537
|
-
}
|
|
538
|
-
|
|
539
|
-
fn from_config(config: &crate::config::Config) -> Box<dyn Rule>
|
|
540
|
-
where
|
|
541
|
-
Self: Sized,
|
|
542
|
-
{
|
|
543
|
-
let allow_after_headings =
|
|
544
|
-
crate::config::get_rule_config_value::<bool>(config, "MD032", "allow_after_headings").unwrap_or(true); // Default to true for better UX
|
|
545
|
-
|
|
546
|
-
let allow_after_colons =
|
|
547
|
-
crate::config::get_rule_config_value::<bool>(config, "MD032", "allow_after_colons").unwrap_or(true);
|
|
548
|
-
|
|
549
|
-
Box::new(MD032BlanksAroundLists {
|
|
550
|
-
allow_after_headings,
|
|
551
|
-
allow_after_colons,
|
|
552
|
-
})
|
|
553
|
-
}
|
|
554
|
-
|
|
555
|
-
fn as_maybe_document_structure(&self) -> Option<&dyn crate::rule::MaybeDocumentStructure> {
|
|
556
|
-
Some(self)
|
|
557
|
-
}
|
|
558
547
|
}
|
|
559
548
|
|
|
560
549
|
impl DocumentStructureExtensions for MD032BlanksAroundLists {
|