rumdl 0.0.113__tar.gz → 0.0.115__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.

Files changed (384) hide show
  1. {rumdl-0.0.113 → rumdl-0.0.115}/.config/nextest.toml +24 -0
  2. {rumdl-0.0.113 → rumdl-0.0.115}/.pre-commit-config.yaml +9 -4
  3. {rumdl-0.0.113 → rumdl-0.0.115}/.rumdl.toml +7 -1
  4. {rumdl-0.0.113 → rumdl-0.0.115}/.rustfmt.toml +1 -1
  5. {rumdl-0.0.113 → rumdl-0.0.115}/CHANGELOG.md +7 -1
  6. {rumdl-0.0.113 → rumdl-0.0.115}/Cargo.lock +17 -17
  7. {rumdl-0.0.113 → rumdl-0.0.115}/Cargo.toml +1 -1
  8. {rumdl-0.0.113 → rumdl-0.0.115}/LICENSE +1 -1
  9. {rumdl-0.0.113 → rumdl-0.0.115}/MANIFEST.in +1 -1
  10. {rumdl-0.0.113 → rumdl-0.0.115}/Makefile +10 -0
  11. {rumdl-0.0.113 → rumdl-0.0.115}/PKG-INFO +47 -31
  12. {rumdl-0.0.113 → rumdl-0.0.115}/README.md +46 -30
  13. {rumdl-0.0.113 → rumdl-0.0.115}/docs/global-settings.md +6 -6
  14. {rumdl-0.0.113 → rumdl-0.0.115}/docs/md010.md +0 -33
  15. {rumdl-0.0.113 → rumdl-0.0.115}/docs/md013.md +2 -2
  16. {rumdl-0.0.113 → rumdl-0.0.115}/docs/md051.md +33 -1
  17. {rumdl-0.0.113 → rumdl-0.0.115}/docs/vscode-extension.md +5 -5
  18. {rumdl-0.0.113 → rumdl-0.0.115}/parity_check.py +1 -1
  19. {rumdl-0.0.113 → rumdl-0.0.115}/pyproject.toml +1 -1
  20. {rumdl-0.0.113 → rumdl-0.0.115}/python/MANIFEST.in +1 -1
  21. {rumdl-0.0.113 → rumdl-0.0.115}/python/rumdl/__main__.py +5 -5
  22. rumdl-0.0.115/python/rumdl/py.typed +0 -0
  23. {rumdl-0.0.113 → rumdl-0.0.115}/rumdl.toml.example +2 -2
  24. {rumdl-0.0.113 → rumdl-0.0.115}/scripts/extract-changelog.sh +1 -1
  25. {rumdl-0.0.113 → rumdl-0.0.115}/scripts/generate-downloads-table.sh +6 -6
  26. rumdl-0.0.115/scripts/pre-release.sh +127 -0
  27. {rumdl-0.0.113 → rumdl-0.0.115}/scripts/prepare-release.sh +1 -1
  28. {rumdl-0.0.113 → rumdl-0.0.115}/src/config.rs +112 -0
  29. {rumdl-0.0.113 → rumdl-0.0.115}/src/main.rs +66 -123
  30. {rumdl-0.0.113 → rumdl-0.0.115}/src/rules/md010_no_hard_tabs/md010_config.rs +0 -14
  31. {rumdl-0.0.113 → rumdl-0.0.115}/src/rules/md010_no_hard_tabs.rs +22 -136
  32. {rumdl-0.0.113 → rumdl-0.0.115}/src/rules/md025_single_title.rs +32 -5
  33. {rumdl-0.0.113 → rumdl-0.0.115}/src/rules/md029_ordered_list_prefix/md029_config.rs +1 -1
  34. {rumdl-0.0.113 → rumdl-0.0.115}/src/rules/md029_ordered_list_prefix.rs +53 -12
  35. {rumdl-0.0.113 → rumdl-0.0.115}/src/rules/md033_no_inline_html/md033_config.rs +1 -1
  36. {rumdl-0.0.113 → rumdl-0.0.115}/src/rules/md044_proper_names/md044_config.rs +2 -2
  37. {rumdl-0.0.113 → rumdl-0.0.115}/src/rules/md045_no_alt_text/md045_config.rs +5 -1
  38. rumdl-0.0.115/src/rules/md051_link_fragments.rs +938 -0
  39. {rumdl-0.0.113 → rumdl-0.0.115}/src/rules/md054_link_image_style/md054_config.rs +1 -2
  40. {rumdl-0.0.113 → rumdl-0.0.115}/src/rules/md057_existing_relative_links/md057_config.rs +5 -2
  41. {rumdl-0.0.113 → rumdl-0.0.115}/src/utils/markdown_elements.rs +34 -2
  42. {rumdl-0.0.113 → rumdl-0.0.115}/src/vscode.rs +14 -2
  43. {rumdl-0.0.113 → rumdl-0.0.115}/tests/advanced_integration_tests.rs +28 -11
  44. {rumdl-0.0.113 → rumdl-0.0.115}/tests/character_ranges/mod.rs +2 -2
  45. {rumdl-0.0.113 → rumdl-0.0.115}/tests/cli_integration_tests.rs +67 -37
  46. {rumdl-0.0.113 → rumdl-0.0.115}/tests/commonmark_compliance_tests.rs +4 -2
  47. {rumdl-0.0.113 → rumdl-0.0.115}/tests/comprehensive_integration_tests.rs +11 -11
  48. {rumdl-0.0.113 → rumdl-0.0.115}/tests/comprehensive_output_format_tests.rs +9 -7
  49. {rumdl-0.0.113 → rumdl-0.0.115}/tests/consistency_regression_tests.rs +4 -7
  50. {rumdl-0.0.113 → rumdl-0.0.115}/tests/deeply_nested_lists_performance_test.rs +2 -0
  51. rumdl-0.0.115/tests/fixable_unfixable_config_test.rs +227 -0
  52. {rumdl-0.0.113 → rumdl-0.0.115}/tests/kramdown_integration_test.rs +5 -5
  53. {rumdl-0.0.113 → rumdl-0.0.115}/tests/lsp_editor_integration_tests.rs +14 -7
  54. {rumdl-0.0.113 → rumdl-0.0.115}/tests/output_format_integration_tests.rs +18 -9
  55. {rumdl-0.0.113 → rumdl-0.0.115}/tests/output_format_tests.rs +26 -26
  56. {rumdl-0.0.113 → rumdl-0.0.115}/tests/performance_validation_tests.rs +5 -5
  57. {rumdl-0.0.113 → rumdl-0.0.115}/tests/pyproject_config_tests.rs +15 -7
  58. {rumdl-0.0.113 → rumdl-0.0.115}/tests/rules/list_rules_integration_test.rs +1 -0
  59. {rumdl-0.0.113 → rumdl-0.0.115}/tests/rules/md010_test.rs +31 -43
  60. {rumdl-0.0.113 → rumdl-0.0.115}/tests/rules/md014_test.rs +1 -1
  61. {rumdl-0.0.113 → rumdl-0.0.115}/tests/rules/md023_extended_test.rs +34 -2
  62. {rumdl-0.0.113 → rumdl-0.0.115}/tests/rules/md026_test.rs +3 -3
  63. {rumdl-0.0.113 → rumdl-0.0.115}/tests/rules/md051_test.rs +1 -1
  64. {rumdl-0.0.113 → rumdl-0.0.115}/tests/rules/md053_proptest.rs +1 -1
  65. {rumdl-0.0.113 → rumdl-0.0.115}/tests/rules/md054_unicode_test.rs +3 -3
  66. {rumdl-0.0.113 → rumdl-0.0.115}/tests/unicode_edge_case_tests.rs +1 -1
  67. {rumdl-0.0.113 → rumdl-0.0.115}/tests/utils/code_block_utils_extended_test.rs +1 -1
  68. {rumdl-0.0.113 → rumdl-0.0.115}/tests/utils_markdown_edge_cases.rs +5 -5
  69. {rumdl-0.0.113 → rumdl-0.0.115}/tests/vscode_extension_fixes.rs +1 -1
  70. rumdl-0.0.113/python/rumdl/py.typed +0 -1
  71. rumdl-0.0.113/src/rules/md051_link_fragments.rs +0 -739
  72. {rumdl-0.0.113 → rumdl-0.0.115}/.mise.toml +0 -0
  73. {rumdl-0.0.113 → rumdl-0.0.115}/assets/logo.png +0 -0
  74. {rumdl-0.0.113 → rumdl-0.0.115}/benches/fix_performance.rs +0 -0
  75. {rumdl-0.0.113 → rumdl-0.0.115}/benches/range_performance.rs +0 -0
  76. {rumdl-0.0.113 → rumdl-0.0.115}/benches/range_utils_benchmark.rs +0 -0
  77. {rumdl-0.0.113 → rumdl-0.0.115}/benches/rule_performance.rs +0 -0
  78. {rumdl-0.0.113 → rumdl-0.0.115}/benches/simple_fix_bench.rs +0 -0
  79. {rumdl-0.0.113 → rumdl-0.0.115}/benchmark/bin/bench_lint_context.rs +0 -0
  80. {rumdl-0.0.113 → rumdl-0.0.115}/benchmark/bin/benchmark.rs +0 -0
  81. {rumdl-0.0.113 → rumdl-0.0.115}/benchmark/bin/benchmark_rule.rs +0 -0
  82. {rumdl-0.0.113 → rumdl-0.0.115}/benchmark/bin/file_parallel_benchmark.rs +0 -0
  83. {rumdl-0.0.113 → rumdl-0.0.115}/benchmark/bin/measure_code_span_performance.rs +0 -0
  84. {rumdl-0.0.113 → rumdl-0.0.115}/docs/RULES.md +0 -0
  85. {rumdl-0.0.113 → rumdl-0.0.115}/docs/md001.md +0 -0
  86. {rumdl-0.0.113 → rumdl-0.0.115}/docs/md002.md +0 -0
  87. {rumdl-0.0.113 → rumdl-0.0.115}/docs/md003.md +0 -0
  88. {rumdl-0.0.113 → rumdl-0.0.115}/docs/md004.md +0 -0
  89. {rumdl-0.0.113 → rumdl-0.0.115}/docs/md005.md +0 -0
  90. {rumdl-0.0.113 → rumdl-0.0.115}/docs/md006.md +0 -0
  91. {rumdl-0.0.113 → rumdl-0.0.115}/docs/md007.md +0 -0
  92. {rumdl-0.0.113 → rumdl-0.0.115}/docs/md009.md +0 -0
  93. {rumdl-0.0.113 → rumdl-0.0.115}/docs/md011.md +0 -0
  94. {rumdl-0.0.113 → rumdl-0.0.115}/docs/md012.md +0 -0
  95. {rumdl-0.0.113 → rumdl-0.0.115}/docs/md014.md +0 -0
  96. {rumdl-0.0.113 → rumdl-0.0.115}/docs/md018.md +0 -0
  97. {rumdl-0.0.113 → rumdl-0.0.115}/docs/md019.md +0 -0
  98. {rumdl-0.0.113 → rumdl-0.0.115}/docs/md020.md +0 -0
  99. {rumdl-0.0.113 → rumdl-0.0.115}/docs/md021.md +0 -0
  100. {rumdl-0.0.113 → rumdl-0.0.115}/docs/md022.md +0 -0
  101. {rumdl-0.0.113 → rumdl-0.0.115}/docs/md023.md +0 -0
  102. {rumdl-0.0.113 → rumdl-0.0.115}/docs/md024.md +0 -0
  103. {rumdl-0.0.113 → rumdl-0.0.115}/docs/md025.md +0 -0
  104. {rumdl-0.0.113 → rumdl-0.0.115}/docs/md026.md +0 -0
  105. {rumdl-0.0.113 → rumdl-0.0.115}/docs/md027.md +0 -0
  106. {rumdl-0.0.113 → rumdl-0.0.115}/docs/md028.md +0 -0
  107. {rumdl-0.0.113 → rumdl-0.0.115}/docs/md029.md +0 -0
  108. {rumdl-0.0.113 → rumdl-0.0.115}/docs/md030.md +0 -0
  109. {rumdl-0.0.113 → rumdl-0.0.115}/docs/md031.md +0 -0
  110. {rumdl-0.0.113 → rumdl-0.0.115}/docs/md032.md +0 -0
  111. {rumdl-0.0.113 → rumdl-0.0.115}/docs/md033.md +0 -0
  112. {rumdl-0.0.113 → rumdl-0.0.115}/docs/md034.md +0 -0
  113. {rumdl-0.0.113 → rumdl-0.0.115}/docs/md035.md +0 -0
  114. {rumdl-0.0.113 → rumdl-0.0.115}/docs/md036.md +0 -0
  115. {rumdl-0.0.113 → rumdl-0.0.115}/docs/md037.md +0 -0
  116. {rumdl-0.0.113 → rumdl-0.0.115}/docs/md038.md +0 -0
  117. {rumdl-0.0.113 → rumdl-0.0.115}/docs/md039.md +0 -0
  118. {rumdl-0.0.113 → rumdl-0.0.115}/docs/md040.md +0 -0
  119. {rumdl-0.0.113 → rumdl-0.0.115}/docs/md041.md +0 -0
  120. {rumdl-0.0.113 → rumdl-0.0.115}/docs/md042.md +0 -0
  121. {rumdl-0.0.113 → rumdl-0.0.115}/docs/md043.md +0 -0
  122. {rumdl-0.0.113 → rumdl-0.0.115}/docs/md044.md +0 -0
  123. {rumdl-0.0.113 → rumdl-0.0.115}/docs/md045.md +0 -0
  124. {rumdl-0.0.113 → rumdl-0.0.115}/docs/md046.md +0 -0
  125. {rumdl-0.0.113 → rumdl-0.0.115}/docs/md047.md +0 -0
  126. {rumdl-0.0.113 → rumdl-0.0.115}/docs/md048.md +0 -0
  127. {rumdl-0.0.113 → rumdl-0.0.115}/docs/md049.md +0 -0
  128. {rumdl-0.0.113 → rumdl-0.0.115}/docs/md050.md +0 -0
  129. {rumdl-0.0.113 → rumdl-0.0.115}/docs/md052.md +0 -0
  130. {rumdl-0.0.113 → rumdl-0.0.115}/docs/md053.md +0 -0
  131. {rumdl-0.0.113 → rumdl-0.0.115}/docs/md054.md +0 -0
  132. {rumdl-0.0.113 → rumdl-0.0.115}/docs/md055.md +0 -0
  133. {rumdl-0.0.113 → rumdl-0.0.115}/docs/md056.md +0 -0
  134. {rumdl-0.0.113 → rumdl-0.0.115}/docs/md057.md +0 -0
  135. {rumdl-0.0.113 → rumdl-0.0.115}/docs/md058.md +0 -0
  136. {rumdl-0.0.113 → rumdl-0.0.115}/python/PYTHON-README.md +0 -0
  137. {rumdl-0.0.113 → rumdl-0.0.115}/python/rumdl/__init__.py +0 -0
  138. {rumdl-0.0.113 → rumdl-0.0.115}/rust-toolchain.toml +0 -0
  139. {rumdl-0.0.113 → rumdl-0.0.115}/scripts/setup-pre-commit.sh +0 -0
  140. {rumdl-0.0.113 → rumdl-0.0.115}/scripts/update-pre-commit-docs.sh +0 -0
  141. {rumdl-0.0.113 → rumdl-0.0.115}/src/exit_codes.rs +0 -0
  142. {rumdl-0.0.113 → rumdl-0.0.115}/src/inline_config.rs +0 -0
  143. {rumdl-0.0.113 → rumdl-0.0.115}/src/lib.rs +0 -0
  144. {rumdl-0.0.113 → rumdl-0.0.115}/src/lint_context.rs +0 -0
  145. {rumdl-0.0.113 → rumdl-0.0.115}/src/lsp/mod.rs +0 -0
  146. {rumdl-0.0.113 → rumdl-0.0.115}/src/lsp/server.rs +0 -0
  147. {rumdl-0.0.113 → rumdl-0.0.115}/src/lsp/types.rs +0 -0
  148. {rumdl-0.0.113 → rumdl-0.0.115}/src/markdownlint_config.rs +0 -0
  149. {rumdl-0.0.113 → rumdl-0.0.115}/src/output/formatters/azure.rs +0 -0
  150. {rumdl-0.0.113 → rumdl-0.0.115}/src/output/formatters/concise.rs +0 -0
  151. {rumdl-0.0.113 → rumdl-0.0.115}/src/output/formatters/github.rs +0 -0
  152. {rumdl-0.0.113 → rumdl-0.0.115}/src/output/formatters/gitlab.rs +0 -0
  153. {rumdl-0.0.113 → rumdl-0.0.115}/src/output/formatters/grouped.rs +0 -0
  154. {rumdl-0.0.113 → rumdl-0.0.115}/src/output/formatters/json.rs +0 -0
  155. {rumdl-0.0.113 → rumdl-0.0.115}/src/output/formatters/json_lines.rs +0 -0
  156. {rumdl-0.0.113 → rumdl-0.0.115}/src/output/formatters/junit.rs +0 -0
  157. {rumdl-0.0.113 → rumdl-0.0.115}/src/output/formatters/mod.rs +0 -0
  158. {rumdl-0.0.113 → rumdl-0.0.115}/src/output/formatters/pylint.rs +0 -0
  159. {rumdl-0.0.113 → rumdl-0.0.115}/src/output/formatters/sarif.rs +0 -0
  160. {rumdl-0.0.113 → rumdl-0.0.115}/src/output/formatters/text.rs +0 -0
  161. {rumdl-0.0.113 → rumdl-0.0.115}/src/output/mod.rs +0 -0
  162. {rumdl-0.0.113 → rumdl-0.0.115}/src/parallel.rs +0 -0
  163. {rumdl-0.0.113 → rumdl-0.0.115}/src/performance.rs +0 -0
  164. {rumdl-0.0.113 → rumdl-0.0.115}/src/profiling.rs +0 -0
  165. {rumdl-0.0.113 → rumdl-0.0.115}/src/python.rs +0 -0
  166. {rumdl-0.0.113 → rumdl-0.0.115}/src/rule.rs +0 -0
  167. {rumdl-0.0.113 → rumdl-0.0.115}/src/rule_config.rs +0 -0
  168. {rumdl-0.0.113 → rumdl-0.0.115}/src/rule_config_serde.rs +0 -0
  169. {rumdl-0.0.113 → rumdl-0.0.115}/src/rules/blockquote_utils.rs +0 -0
  170. {rumdl-0.0.113 → rumdl-0.0.115}/src/rules/code_block_utils.rs +0 -0
  171. {rumdl-0.0.113 → rumdl-0.0.115}/src/rules/code_fence_utils.rs +0 -0
  172. {rumdl-0.0.113 → rumdl-0.0.115}/src/rules/emphasis_style.rs +0 -0
  173. {rumdl-0.0.113 → rumdl-0.0.115}/src/rules/front_matter_utils.rs +0 -0
  174. {rumdl-0.0.113 → rumdl-0.0.115}/src/rules/heading_utils.rs +0 -0
  175. {rumdl-0.0.113 → rumdl-0.0.115}/src/rules/list_utils.rs +0 -0
  176. {rumdl-0.0.113 → rumdl-0.0.115}/src/rules/md001_heading_increment.rs +0 -0
  177. {rumdl-0.0.113 → rumdl-0.0.115}/src/rules/md002_first_heading_h1/md002_config.rs +0 -0
  178. {rumdl-0.0.113 → rumdl-0.0.115}/src/rules/md002_first_heading_h1.rs +0 -0
  179. {rumdl-0.0.113 → rumdl-0.0.115}/src/rules/md003_heading_style/md003_config.rs +0 -0
  180. {rumdl-0.0.113 → rumdl-0.0.115}/src/rules/md003_heading_style.rs +0 -0
  181. {rumdl-0.0.113 → rumdl-0.0.115}/src/rules/md004_unordered_list_style/md004_config.rs +0 -0
  182. {rumdl-0.0.113 → rumdl-0.0.115}/src/rules/md004_unordered_list_style.rs +0 -0
  183. {rumdl-0.0.113 → rumdl-0.0.115}/src/rules/md005_list_indent.rs +0 -0
  184. {rumdl-0.0.113 → rumdl-0.0.115}/src/rules/md006_start_bullets.rs +0 -0
  185. {rumdl-0.0.113 → rumdl-0.0.115}/src/rules/md007_ul_indent/md007_config.rs +0 -0
  186. {rumdl-0.0.113 → rumdl-0.0.115}/src/rules/md007_ul_indent.rs +0 -0
  187. {rumdl-0.0.113 → rumdl-0.0.115}/src/rules/md009_trailing_spaces/md009_config.rs +0 -0
  188. {rumdl-0.0.113 → rumdl-0.0.115}/src/rules/md009_trailing_spaces.rs +0 -0
  189. {rumdl-0.0.113 → rumdl-0.0.115}/src/rules/md011_no_reversed_links.rs +0 -0
  190. {rumdl-0.0.113 → rumdl-0.0.115}/src/rules/md012_no_multiple_blanks/md012_config.rs +0 -0
  191. {rumdl-0.0.113 → rumdl-0.0.115}/src/rules/md012_no_multiple_blanks.rs +0 -0
  192. {rumdl-0.0.113 → rumdl-0.0.115}/src/rules/md013_line_length/md013_config.rs +0 -0
  193. {rumdl-0.0.113 → rumdl-0.0.115}/src/rules/md013_line_length.rs +0 -0
  194. {rumdl-0.0.113 → rumdl-0.0.115}/src/rules/md014_commands_show_output/md014_config.rs +0 -0
  195. {rumdl-0.0.113 → rumdl-0.0.115}/src/rules/md014_commands_show_output.rs +0 -0
  196. {rumdl-0.0.113 → rumdl-0.0.115}/src/rules/md018_no_missing_space_atx.rs +0 -0
  197. {rumdl-0.0.113 → rumdl-0.0.115}/src/rules/md019_no_multiple_space_atx.rs +0 -0
  198. {rumdl-0.0.113 → rumdl-0.0.115}/src/rules/md020_no_missing_space_closed_atx.rs +0 -0
  199. {rumdl-0.0.113 → rumdl-0.0.115}/src/rules/md021_no_multiple_space_closed_atx.rs +0 -0
  200. {rumdl-0.0.113 → rumdl-0.0.115}/src/rules/md022_blanks_around_headings/md022_config.rs +0 -0
  201. {rumdl-0.0.113 → rumdl-0.0.115}/src/rules/md022_blanks_around_headings.rs +0 -0
  202. {rumdl-0.0.113 → rumdl-0.0.115}/src/rules/md023_heading_start_left.rs +0 -0
  203. {rumdl-0.0.113 → rumdl-0.0.115}/src/rules/md024_no_duplicate_heading/md024_config.rs +0 -0
  204. {rumdl-0.0.113 → rumdl-0.0.115}/src/rules/md024_no_duplicate_heading.rs +0 -0
  205. {rumdl-0.0.113 → rumdl-0.0.115}/src/rules/md025_single_title/md025_config.rs +0 -0
  206. {rumdl-0.0.113 → rumdl-0.0.115}/src/rules/md026_no_trailing_punctuation/md026_config.rs +0 -0
  207. {rumdl-0.0.113 → rumdl-0.0.115}/src/rules/md026_no_trailing_punctuation.rs +0 -0
  208. {rumdl-0.0.113 → rumdl-0.0.115}/src/rules/md027_multiple_spaces_blockquote.rs +0 -0
  209. {rumdl-0.0.113 → rumdl-0.0.115}/src/rules/md028_no_blanks_blockquote.rs +0 -0
  210. {rumdl-0.0.113 → rumdl-0.0.115}/src/rules/md030_list_marker_space/md030_config.rs +0 -0
  211. {rumdl-0.0.113 → rumdl-0.0.115}/src/rules/md030_list_marker_space.rs +0 -0
  212. {rumdl-0.0.113 → rumdl-0.0.115}/src/rules/md031_blanks_around_fences.rs +0 -0
  213. {rumdl-0.0.113 → rumdl-0.0.115}/src/rules/md032_blanks_around_lists.rs +0 -0
  214. {rumdl-0.0.113 → rumdl-0.0.115}/src/rules/md033_no_inline_html.rs +0 -0
  215. {rumdl-0.0.113 → rumdl-0.0.115}/src/rules/md034_no_bare_urls.rs +0 -0
  216. {rumdl-0.0.113 → rumdl-0.0.115}/src/rules/md035_hr_style/md035_config.rs +0 -0
  217. {rumdl-0.0.113 → rumdl-0.0.115}/src/rules/md035_hr_style.rs +0 -0
  218. {rumdl-0.0.113 → rumdl-0.0.115}/src/rules/md036_no_emphasis_only_first/md036_config.rs +0 -0
  219. {rumdl-0.0.113 → rumdl-0.0.115}/src/rules/md036_no_emphasis_only_first.rs +0 -0
  220. {rumdl-0.0.113 → rumdl-0.0.115}/src/rules/md037_spaces_around_emphasis.rs +0 -0
  221. {rumdl-0.0.113 → rumdl-0.0.115}/src/rules/md038_no_space_in_code.rs +0 -0
  222. {rumdl-0.0.113 → rumdl-0.0.115}/src/rules/md039_no_space_in_links.rs +0 -0
  223. {rumdl-0.0.113 → rumdl-0.0.115}/src/rules/md040_fenced_code_language.rs +0 -0
  224. {rumdl-0.0.113 → rumdl-0.0.115}/src/rules/md041_first_line_heading.rs +0 -0
  225. {rumdl-0.0.113 → rumdl-0.0.115}/src/rules/md042_no_empty_links.rs +0 -0
  226. {rumdl-0.0.113 → rumdl-0.0.115}/src/rules/md043_required_headings.rs +0 -0
  227. {rumdl-0.0.113 → rumdl-0.0.115}/src/rules/md044_proper_names.rs +0 -0
  228. {rumdl-0.0.113 → rumdl-0.0.115}/src/rules/md045_no_alt_text.rs +0 -0
  229. {rumdl-0.0.113 → rumdl-0.0.115}/src/rules/md046_code_block_style/md046_config.rs +0 -0
  230. {rumdl-0.0.113 → rumdl-0.0.115}/src/rules/md046_code_block_style.rs +0 -0
  231. {rumdl-0.0.113 → rumdl-0.0.115}/src/rules/md047_single_trailing_newline.rs +0 -0
  232. {rumdl-0.0.113 → rumdl-0.0.115}/src/rules/md048_code_fence_style/md048_config.rs +0 -0
  233. {rumdl-0.0.113 → rumdl-0.0.115}/src/rules/md048_code_fence_style.rs +0 -0
  234. {rumdl-0.0.113 → rumdl-0.0.115}/src/rules/md049_emphasis_style/md049_config.rs +0 -0
  235. {rumdl-0.0.113 → rumdl-0.0.115}/src/rules/md049_emphasis_style.rs +0 -0
  236. {rumdl-0.0.113 → rumdl-0.0.115}/src/rules/md050_strong_style/md050_config.rs +0 -0
  237. {rumdl-0.0.113 → rumdl-0.0.115}/src/rules/md050_strong_style.rs +0 -0
  238. {rumdl-0.0.113 → rumdl-0.0.115}/src/rules/md052_reference_links_images.rs +0 -0
  239. {rumdl-0.0.113 → rumdl-0.0.115}/src/rules/md053_link_image_reference_definitions.rs +0 -0
  240. {rumdl-0.0.113 → rumdl-0.0.115}/src/rules/md054_link_image_style.rs +0 -0
  241. {rumdl-0.0.113 → rumdl-0.0.115}/src/rules/md055_table_pipe_style/md055_config.rs +0 -0
  242. {rumdl-0.0.113 → rumdl-0.0.115}/src/rules/md055_table_pipe_style.rs +0 -0
  243. {rumdl-0.0.113 → rumdl-0.0.115}/src/rules/md056_table_column_count.rs +0 -0
  244. {rumdl-0.0.113 → rumdl-0.0.115}/src/rules/md057_existing_relative_links.rs +0 -0
  245. {rumdl-0.0.113 → rumdl-0.0.115}/src/rules/md058_blanks_around_tables.rs +0 -0
  246. {rumdl-0.0.113 → rumdl-0.0.115}/src/rules/mod.rs +0 -0
  247. {rumdl-0.0.113 → rumdl-0.0.115}/src/rules/strong_style.rs +0 -0
  248. {rumdl-0.0.113 → rumdl-0.0.115}/src/utils/ast_utils.rs +0 -0
  249. {rumdl-0.0.113 → rumdl-0.0.115}/src/utils/code_block_utils.rs +0 -0
  250. {rumdl-0.0.113 → rumdl-0.0.115}/src/utils/document_structure.rs +0 -0
  251. {rumdl-0.0.113 → rumdl-0.0.115}/src/utils/early_returns.rs +0 -0
  252. {rumdl-0.0.113 → rumdl-0.0.115}/src/utils/element_cache.rs +0 -0
  253. {rumdl-0.0.113 → rumdl-0.0.115}/src/utils/emphasis_utils.rs +0 -0
  254. {rumdl-0.0.113 → rumdl-0.0.115}/src/utils/fix_utils.rs +0 -0
  255. {rumdl-0.0.113 → rumdl-0.0.115}/src/utils/kramdown_utils.rs +0 -0
  256. {rumdl-0.0.113 → rumdl-0.0.115}/src/utils/mod.rs +0 -0
  257. {rumdl-0.0.113 → rumdl-0.0.115}/src/utils/range_utils.rs +0 -0
  258. {rumdl-0.0.113 → rumdl-0.0.115}/src/utils/regex_cache.rs +0 -0
  259. {rumdl-0.0.113 → rumdl-0.0.115}/src/utils/string_interner.rs +0 -0
  260. {rumdl-0.0.113 → rumdl-0.0.115}/src/utils/table_utils.rs +0 -0
  261. {rumdl-0.0.113 → rumdl-0.0.115}/src/utils/text_reflow.rs +0 -0
  262. {rumdl-0.0.113 → rumdl-0.0.115}/tests/character_ranges/additional_tests.rs +0 -0
  263. {rumdl-0.0.113 → rumdl-0.0.115}/tests/character_ranges/basic_tests.rs +0 -0
  264. {rumdl-0.0.113 → rumdl-0.0.115}/tests/character_ranges/comprehensive_tests.rs +0 -0
  265. {rumdl-0.0.113 → rumdl-0.0.115}/tests/character_ranges/extended_tests.rs +0 -0
  266. {rumdl-0.0.113 → rumdl-0.0.115}/tests/character_ranges/unicode_utils.rs +0 -0
  267. {rumdl-0.0.113 → rumdl-0.0.115}/tests/cli_duplication_test.rs +0 -0
  268. {rumdl-0.0.113 → rumdl-0.0.115}/tests/cli_explain_test.rs +0 -0
  269. {rumdl-0.0.113 → rumdl-0.0.115}/tests/cli_flag_precedence_test.rs +0 -0
  270. {rumdl-0.0.113 → rumdl-0.0.115}/tests/cli_lsp_fix_consistency.rs +0 -0
  271. {rumdl-0.0.113 → rumdl-0.0.115}/tests/cli_statistics_test.rs +0 -0
  272. {rumdl-0.0.113 → rumdl-0.0.115}/tests/common/cli_test_utils.rs +0 -0
  273. {rumdl-0.0.113 → rumdl-0.0.115}/tests/common/fixtures.rs +0 -0
  274. {rumdl-0.0.113 → rumdl-0.0.115}/tests/common/mod.rs +0 -0
  275. {rumdl-0.0.113 → rumdl-0.0.115}/tests/common/test_utils.rs +0 -0
  276. {rumdl-0.0.113 → rumdl-0.0.115}/tests/config_application_tests.rs +0 -0
  277. {rumdl-0.0.113 → rumdl-0.0.115}/tests/config_file_command_test.rs +0 -0
  278. {rumdl-0.0.113 → rumdl-0.0.115}/tests/config_tests.rs +0 -0
  279. {rumdl-0.0.113 → rumdl-0.0.115}/tests/configuration_inheritance_tests.rs +0 -0
  280. {rumdl-0.0.113 → rumdl-0.0.115}/tests/cross_platform_compatibility_tests.rs +0 -0
  281. {rumdl-0.0.113 → rumdl-0.0.115}/tests/escaped_brackets_test.rs +0 -0
  282. {rumdl-0.0.113 → rumdl-0.0.115}/tests/final_confidence_assessment.rs +0 -0
  283. {rumdl-0.0.113 → rumdl-0.0.115}/tests/init_command_test.rs +0 -0
  284. {rumdl-0.0.113 → rumdl-0.0.115}/tests/init_tests.rs +0 -0
  285. {rumdl-0.0.113 → rumdl-0.0.115}/tests/inline_config_blocks_test.rs +0 -0
  286. {rumdl-0.0.113 → rumdl-0.0.115}/tests/inline_config_test.rs +0 -0
  287. {rumdl-0.0.113 → rumdl-0.0.115}/tests/integration_tests.rs +0 -0
  288. {rumdl-0.0.113 → rumdl-0.0.115}/tests/json_output_test.rs +0 -0
  289. {rumdl-0.0.113 → rumdl-0.0.115}/tests/lib.rs +0 -0
  290. {rumdl-0.0.113 → rumdl-0.0.115}/tests/lsp_integration_tests.rs +0 -0
  291. {rumdl-0.0.113 → rumdl-0.0.115}/tests/lsp_memory_leak_tests.rs +0 -0
  292. {rumdl-0.0.113 → rumdl-0.0.115}/tests/lsp_tests.rs +0 -0
  293. {rumdl-0.0.113 → rumdl-0.0.115}/tests/malformed_markdown_stress_tests.rs +0 -0
  294. {rumdl-0.0.113 → rumdl-0.0.115}/tests/markdownlint_cli_integration.rs +0 -0
  295. {rumdl-0.0.113 → rumdl-0.0.115}/tests/markdownlint_config_test.rs +0 -0
  296. {rumdl-0.0.113 → rumdl-0.0.115}/tests/markdownlintignore_test.rs +0 -0
  297. {rumdl-0.0.113 → rumdl-0.0.115}/tests/md013_reflow_integration_test.rs +0 -0
  298. {rumdl-0.0.113 → rumdl-0.0.115}/tests/nested_code_block_test.rs +0 -0
  299. {rumdl-0.0.113 → rumdl-0.0.115}/tests/perf_check.rs +0 -0
  300. {rumdl-0.0.113 → rumdl-0.0.115}/tests/python_bindings_test.rs +0 -0
  301. {rumdl-0.0.113 → rumdl-0.0.115}/tests/real_world_repository_tests.rs +0 -0
  302. {rumdl-0.0.113 → rumdl-0.0.115}/tests/regression_prevention_tests.rs +0 -0
  303. {rumdl-0.0.113 → rumdl-0.0.115}/tests/rules/emphasis_edge_cases_test.rs +0 -0
  304. {rumdl-0.0.113 → rumdl-0.0.115}/tests/rules/heading_edge_cases_test.rs +0 -0
  305. {rumdl-0.0.113 → rumdl-0.0.115}/tests/rules/inline_content_edge_cases_test.rs +0 -0
  306. {rumdl-0.0.113 → rumdl-0.0.115}/tests/rules/link_edge_cases_test.rs +0 -0
  307. {rumdl-0.0.113 → rumdl-0.0.115}/tests/rules/md001_test.rs +0 -0
  308. {rumdl-0.0.113 → rumdl-0.0.115}/tests/rules/md001_unicode_test.rs +0 -0
  309. {rumdl-0.0.113 → rumdl-0.0.115}/tests/rules/md002_test.rs +0 -0
  310. {rumdl-0.0.113 → rumdl-0.0.115}/tests/rules/md003_test.rs +0 -0
  311. {rumdl-0.0.113 → rumdl-0.0.115}/tests/rules/md004_test.rs +0 -0
  312. {rumdl-0.0.113 → rumdl-0.0.115}/tests/rules/md005_test.rs +0 -0
  313. {rumdl-0.0.113 → rumdl-0.0.115}/tests/rules/md005_unicode_test.rs +0 -0
  314. {rumdl-0.0.113 → rumdl-0.0.115}/tests/rules/md006_test.rs +0 -0
  315. {rumdl-0.0.113 → rumdl-0.0.115}/tests/rules/md006_unicode_test.rs +0 -0
  316. {rumdl-0.0.113 → rumdl-0.0.115}/tests/rules/md007_test.rs +0 -0
  317. {rumdl-0.0.113 → rumdl-0.0.115}/tests/rules/md009_test.rs +0 -0
  318. {rumdl-0.0.113 → rumdl-0.0.115}/tests/rules/md011_test.rs +0 -0
  319. {rumdl-0.0.113 → rumdl-0.0.115}/tests/rules/md012_test.rs +0 -0
  320. {rumdl-0.0.113 → rumdl-0.0.115}/tests/rules/md013_test.rs +0 -0
  321. {rumdl-0.0.113 → rumdl-0.0.115}/tests/rules/md018_test.rs +0 -0
  322. {rumdl-0.0.113 → rumdl-0.0.115}/tests/rules/md019_test.rs +0 -0
  323. {rumdl-0.0.113 → rumdl-0.0.115}/tests/rules/md020_test.rs +0 -0
  324. {rumdl-0.0.113 → rumdl-0.0.115}/tests/rules/md021_test.rs +0 -0
  325. {rumdl-0.0.113 → rumdl-0.0.115}/tests/rules/md022_test.rs +0 -0
  326. {rumdl-0.0.113 → rumdl-0.0.115}/tests/rules/md023_test.rs +0 -0
  327. {rumdl-0.0.113 → rumdl-0.0.115}/tests/rules/md024_test.rs +0 -0
  328. {rumdl-0.0.113 → rumdl-0.0.115}/tests/rules/md025_test.rs +0 -0
  329. {rumdl-0.0.113 → rumdl-0.0.115}/tests/rules/md026_kramdown_test.rs +0 -0
  330. {rumdl-0.0.113 → rumdl-0.0.115}/tests/rules/md027_test.rs +0 -0
  331. {rumdl-0.0.113 → rumdl-0.0.115}/tests/rules/md028_test.rs +0 -0
  332. {rumdl-0.0.113 → rumdl-0.0.115}/tests/rules/md029_test.rs +0 -0
  333. {rumdl-0.0.113 → rumdl-0.0.115}/tests/rules/md029_unicode_test.rs +0 -0
  334. {rumdl-0.0.113 → rumdl-0.0.115}/tests/rules/md030_test.rs +0 -0
  335. {rumdl-0.0.113 → rumdl-0.0.115}/tests/rules/md031_kramdown_test.rs +0 -0
  336. {rumdl-0.0.113 → rumdl-0.0.115}/tests/rules/md031_test.rs +0 -0
  337. {rumdl-0.0.113 → rumdl-0.0.115}/tests/rules/md032_test.rs +0 -0
  338. {rumdl-0.0.113 → rumdl-0.0.115}/tests/rules/md033_extended_test.rs +0 -0
  339. {rumdl-0.0.113 → rumdl-0.0.115}/tests/rules/md033_kramdown_test.rs +0 -0
  340. {rumdl-0.0.113 → rumdl-0.0.115}/tests/rules/md033_test.rs +0 -0
  341. {rumdl-0.0.113 → rumdl-0.0.115}/tests/rules/md034_ipv6_test.rs +0 -0
  342. {rumdl-0.0.113 → rumdl-0.0.115}/tests/rules/md034_test.rs +0 -0
  343. {rumdl-0.0.113 → rumdl-0.0.115}/tests/rules/md035_test.rs +0 -0
  344. {rumdl-0.0.113 → rumdl-0.0.115}/tests/rules/md036_test.rs +0 -0
  345. {rumdl-0.0.113 → rumdl-0.0.115}/tests/rules/md037_kramdown_test.rs +0 -0
  346. {rumdl-0.0.113 → rumdl-0.0.115}/tests/rules/md037_test.rs +0 -0
  347. {rumdl-0.0.113 → rumdl-0.0.115}/tests/rules/md038_nested_backticks_test.rs +0 -0
  348. {rumdl-0.0.113 → rumdl-0.0.115}/tests/rules/md038_test.rs +0 -0
  349. {rumdl-0.0.113 → rumdl-0.0.115}/tests/rules/md039_test.rs +0 -0
  350. {rumdl-0.0.113 → rumdl-0.0.115}/tests/rules/md040_test.rs +0 -0
  351. {rumdl-0.0.113 → rumdl-0.0.115}/tests/rules/md041_test.rs +0 -0
  352. {rumdl-0.0.113 → rumdl-0.0.115}/tests/rules/md042_test.rs +0 -0
  353. {rumdl-0.0.113 → rumdl-0.0.115}/tests/rules/md043_test.rs +0 -0
  354. {rumdl-0.0.113 → rumdl-0.0.115}/tests/rules/md044_test.rs +0 -0
  355. {rumdl-0.0.113 → rumdl-0.0.115}/tests/rules/md045_test.rs +0 -0
  356. {rumdl-0.0.113 → rumdl-0.0.115}/tests/rules/md046_test.rs +0 -0
  357. {rumdl-0.0.113 → rumdl-0.0.115}/tests/rules/md047_test.rs +0 -0
  358. {rumdl-0.0.113 → rumdl-0.0.115}/tests/rules/md048_test.rs +0 -0
  359. {rumdl-0.0.113 → rumdl-0.0.115}/tests/rules/md049_test.rs +0 -0
  360. {rumdl-0.0.113 → rumdl-0.0.115}/tests/rules/md050_test.rs +0 -0
  361. {rumdl-0.0.113 → rumdl-0.0.115}/tests/rules/md051_unicode_test.rs +0 -0
  362. {rumdl-0.0.113 → rumdl-0.0.115}/tests/rules/md052_test.rs +0 -0
  363. {rumdl-0.0.113 → rumdl-0.0.115}/tests/rules/md053_additional_test.rs +0 -0
  364. {rumdl-0.0.113 → rumdl-0.0.115}/tests/rules/md053_test.rs +0 -0
  365. {rumdl-0.0.113 → rumdl-0.0.115}/tests/rules/md054_test.rs +0 -0
  366. {rumdl-0.0.113 → rumdl-0.0.115}/tests/rules/md055_test.rs +0 -0
  367. {rumdl-0.0.113 → rumdl-0.0.115}/tests/rules/md056_test.rs +0 -0
  368. {rumdl-0.0.113 → rumdl-0.0.115}/tests/rules/md057_test.rs +0 -0
  369. {rumdl-0.0.113 → rumdl-0.0.115}/tests/rules/md058_kramdown_test.rs +0 -0
  370. {rumdl-0.0.113 → rumdl-0.0.115}/tests/rules/md058_test.rs +0 -0
  371. {rumdl-0.0.113 → rumdl-0.0.115}/tests/rules/mod.rs +0 -0
  372. {rumdl-0.0.113 → rumdl-0.0.115}/tests/rules_mod_test.rs +0 -0
  373. {rumdl-0.0.113 → rumdl-0.0.115}/tests/thread_safety_tests.rs +0 -0
  374. {rumdl-0.0.113 → rumdl-0.0.115}/tests/utils/blockquote_utils_test.rs +0 -0
  375. {rumdl-0.0.113 → rumdl-0.0.115}/tests/utils/code_block_utils_test.rs +0 -0
  376. {rumdl-0.0.113 → rumdl-0.0.115}/tests/utils/core_utils_test.rs +0 -0
  377. {rumdl-0.0.113 → rumdl-0.0.115}/tests/utils/front_matter_utils_test.rs +0 -0
  378. {rumdl-0.0.113 → rumdl-0.0.115}/tests/utils/line_index_test.rs +0 -0
  379. {rumdl-0.0.113 → rumdl-0.0.115}/tests/utils/mod.rs +0 -0
  380. {rumdl-0.0.113 → rumdl-0.0.115}/tests/utils_tests.rs +0 -0
  381. {rumdl-0.0.113 → rumdl-0.0.115}/tests/vscode_test.rs +0 -0
  382. {rumdl-0.0.113 → rumdl-0.0.115}/tests/vscode_tests.rs +0 -0
  383. {rumdl-0.0.113 → rumdl-0.0.115}/tests/vscode_windows_comprehensive_test.rs +0 -0
  384. {rumdl-0.0.113 → rumdl-0.0.115}/tests/vscode_windows_test.rs +0 -0
@@ -22,6 +22,10 @@ status-level = "pass"
22
22
 
23
23
  [profile.ci]
24
24
 
25
+ # Skip performance tests in CI (they're flaky due to resource variability)
26
+ # Exclude specific integration test binaries and performance-related test functions
27
+ default-filter = 'not (package(rumdl) and binary(deeply_nested_lists_performance_test)) and not (package(rumdl) and binary(performance_validation_tests)) and not (package(rumdl) and binary(perf_check)) and not test(/performance|benchmark/)'
28
+
25
29
  # More conservative in CI
26
30
  test-threads = "num-cpus"
27
31
 
@@ -80,3 +84,23 @@ retries = 0
80
84
 
81
85
  # Fail fast on first failure
82
86
  fail-fast = true
87
+
88
+ # Performance testing profile - for scheduled/manual runs
89
+ [profile.performance]
90
+
91
+ # Only run performance and benchmark tests
92
+ default-filter = 'test(performance) or test(benchmark) or test(deeply_nested)'
93
+
94
+ # Run tests serially to reduce noise
95
+ test-threads = 1
96
+
97
+ # Show detailed output
98
+ failure-output = "immediate"
99
+ success-output = "immediate"
100
+ status-level = "all"
101
+
102
+ # Allow retries for flaky tests
103
+ retries = { backoff = "exponential", count = 3, delay = "1s", max-delay = "10s" }
104
+
105
+ # Don't fail fast - run all performance tests
106
+ fail-fast = false
@@ -37,7 +37,7 @@ repos:
37
37
  rev: v4.6.0
38
38
  hooks:
39
39
  - id: trailing-whitespace
40
- exclude: \.md$|tests/inline_config_test\.rs$
40
+ exclude: \.md$|tests/inline_config_test\.rs$|tests/output_format_integration_tests\.rs$|tests/lsp_editor_integration_tests\.rs$|tests/utils_markdown_edge_cases\.rs$
41
41
  - id: end-of-file-fixer
42
42
  exclude: \.md$
43
43
  - id: check-yaml
@@ -48,12 +48,17 @@ repos:
48
48
  - id: mixed-line-ending
49
49
  args: [--fix=lf]
50
50
 
51
- # Markdown linting using rumdl itself
52
- - repo: https://github.com/rvben/rumdl-pre-commit
53
- rev: v0.0.45
51
+ # Markdown linting using rumdl itself (local binary)
52
+ - repo: local
54
53
  hooks:
55
54
  - id: rumdl
55
+ name: rumdl check
56
+ entry: ./target/release/rumdl check
57
+ language: system
58
+ files: \.md$
56
59
  exclude: ^(test_tmp|benchmark/test-data|docs/temp|CHANGELOG\.md)
60
+ pass_filenames: true
61
+ require_serial: true
57
62
 
58
63
  # Pre-push hooks for comprehensive validation
59
64
  - repo: local
@@ -16,6 +16,9 @@ code_blocks = true
16
16
  tables = false
17
17
  headings = true
18
18
 
19
+ [MD029]
20
+ style = "ordered"
21
+
19
22
  [MD046]
20
23
  # Code block style
21
24
  style = "fenced"
@@ -32,6 +35,9 @@ style = "asterisk"
32
35
  # Strong emphasis style (** or __)
33
36
  style = "asterisk"
34
37
 
38
+ [MD051]
39
+ anchor-style = "github"
40
+
35
41
  [MD055]
36
42
  # Table pipe style (leading_and_trailing or no_leading_or_trailing)
37
- style = "leading_and_trailing"
43
+ style = "leading_and_trailing"
@@ -14,4 +14,4 @@ use_field_init_shorthand = true
14
14
  use_try_shorthand = true
15
15
 
16
16
  # Edition
17
- edition = "2021"
17
+ edition = "2024"
@@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.0.115] - 2025-08-12
11
+
12
+ ## [0.0.114] - 2025-08-09
13
+
10
14
  ## [0.0.113] - 2025-08-09
11
15
 
12
16
  ## [0.0.112] - 2025-08-08
@@ -306,7 +310,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
306
310
 
307
311
  - Initial implementation of remaining rules for markdownlint parity
308
312
 
309
- [Unreleased]: https://github.com/rvben/rumdl/compare/v0.0.113...HEAD
313
+ [Unreleased]: https://github.com/rvben/rumdl/compare/v0.0.115...HEAD
314
+ [0.0.115]: https://github.com/rvben/rumdl/compare/v0.0.114...v0.0.115
315
+ [0.0.114]: https://github.com/rvben/rumdl/compare/v0.0.113...v0.0.114
310
316
  [0.0.113]: https://github.com/rvben/rumdl/compare/v0.0.112...v0.0.113
311
317
  [0.0.112]: https://github.com/rvben/rumdl/compare/v0.0.111...v0.0.112
312
318
  [0.0.110]: https://github.com/rvben/rumdl/compare/v0.0.109...v0.0.110
@@ -99,9 +99,9 @@ dependencies = [
99
99
 
100
100
  [[package]]
101
101
  name = "anyhow"
102
- version = "1.0.98"
102
+ version = "1.0.99"
103
103
  source = "registry+https://github.com/rust-lang/crates.io-index"
104
- checksum = "e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487"
104
+ checksum = "b0674a1ddeecb70197781e945de4b3b8ffb61fa939a5597bcf48503737663100"
105
105
 
106
106
  [[package]]
107
107
  name = "assert_cmd"
@@ -277,9 +277,9 @@ dependencies = [
277
277
 
278
278
  [[package]]
279
279
  name = "clap"
280
- version = "4.5.43"
280
+ version = "4.5.45"
281
281
  source = "registry+https://github.com/rust-lang/crates.io-index"
282
- checksum = "50fd97c9dc2399518aa331917ac6f274280ec5eb34e555dd291899745c48ec6f"
282
+ checksum = "1fc0e74a703892159f5ae7d3aac52c8e6c392f5ae5f359c70b5881d60aaac318"
283
283
  dependencies = [
284
284
  "clap_builder",
285
285
  "clap_derive",
@@ -287,9 +287,9 @@ dependencies = [
287
287
 
288
288
  [[package]]
289
289
  name = "clap_builder"
290
- version = "4.5.43"
290
+ version = "4.5.44"
291
291
  source = "registry+https://github.com/rust-lang/crates.io-index"
292
- checksum = "c35b5830294e1fa0462034af85cc95225a4cb07092c088c55bda3147cfcd8f65"
292
+ checksum = "b3e7f4214277f3c7aa526a59dd3fbe306a370daee1f8b7b8c987069cd8e888a8"
293
293
  dependencies = [
294
294
  "anstream",
295
295
  "anstyle",
@@ -299,9 +299,9 @@ dependencies = [
299
299
 
300
300
  [[package]]
301
301
  name = "clap_derive"
302
- version = "4.5.41"
302
+ version = "4.5.45"
303
303
  source = "registry+https://github.com/rust-lang/crates.io-index"
304
- checksum = "ef4f52386a59ca4c860f7393bcf8abd8dfd91ecccc0f774635ff68e92eeef491"
304
+ checksum = "14cb31bb0a7d536caef2639baa7fad459e15c3144efefa6dbd1c84562c4739f6"
305
305
  dependencies = [
306
306
  "heck",
307
307
  "proc-macro2",
@@ -951,9 +951,9 @@ checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe"
951
951
 
952
952
  [[package]]
953
953
  name = "libc"
954
- version = "0.2.174"
954
+ version = "0.2.175"
955
955
  source = "registry+https://github.com/rust-lang/crates.io-index"
956
- checksum = "1171693293099992e19cddea4e8b849964e9846f4acee11b3948bcc337be8776"
956
+ checksum = "6a82ae493e598baaea5209805c49bbf2ea7de956d50d7da0da1164f9c6d28543"
957
957
 
958
958
  [[package]]
959
959
  name = "linux-raw-sys"
@@ -1265,9 +1265,9 @@ dependencies = [
1265
1265
 
1266
1266
  [[package]]
1267
1267
  name = "proc-macro2"
1268
- version = "1.0.95"
1268
+ version = "1.0.97"
1269
1269
  source = "registry+https://github.com/rust-lang/crates.io-index"
1270
- checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778"
1270
+ checksum = "d61789d7719defeb74ea5fe81f2fdfdbd28a803847077cecce2ff14e1472f6f1"
1271
1271
  dependencies = [
1272
1272
  "unicode-ident",
1273
1273
  ]
@@ -1493,7 +1493,7 @@ checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c"
1493
1493
 
1494
1494
  [[package]]
1495
1495
  name = "rumdl"
1496
- version = "0.0.113"
1496
+ version = "0.0.115"
1497
1497
  dependencies = [
1498
1498
  "anyhow",
1499
1499
  "assert_cmd",
@@ -1770,18 +1770,18 @@ checksum = "8f50febec83f5ee1df3015341d8bd429f2d1cc62bcba7ea2076759d315084683"
1770
1770
 
1771
1771
  [[package]]
1772
1772
  name = "thiserror"
1773
- version = "2.0.12"
1773
+ version = "2.0.14"
1774
1774
  source = "registry+https://github.com/rust-lang/crates.io-index"
1775
- checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708"
1775
+ checksum = "0b0949c3a6c842cbde3f1686d6eea5a010516deb7085f79db747562d4102f41e"
1776
1776
  dependencies = [
1777
1777
  "thiserror-impl",
1778
1778
  ]
1779
1779
 
1780
1780
  [[package]]
1781
1781
  name = "thiserror-impl"
1782
- version = "2.0.12"
1782
+ version = "2.0.14"
1783
1783
  source = "registry+https://github.com/rust-lang/crates.io-index"
1784
- checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d"
1784
+ checksum = "cc5b44b4ab9c2fdd0e0512e6bece8388e214c0749f5862b114cc5b7a25daf227"
1785
1785
  dependencies = [
1786
1786
  "proc-macro2",
1787
1787
  "quote",
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "rumdl"
3
- version = "0.0.113"
3
+ version = "0.0.115"
4
4
  edition = "2024"
5
5
  rust-version = "1.89.0"
6
6
  description = "A fast Markdown linter written in Rust (Ru(st) MarkDown Linter)"
@@ -18,4 +18,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
18
  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
19
  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
20
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
21
+ SOFTWARE.
@@ -1,4 +1,4 @@
1
1
  include python/rumdl/*.py
2
2
  include python/rumdl/py.typed
3
3
  global-exclude *.pyc
4
- global-exclude __pycache__/
4
+ global-exclude __pycache__/
@@ -101,6 +101,11 @@ test-push:
101
101
  test-ci:
102
102
  cargo nextest run --profile ci
103
103
 
104
+ test-performance:
105
+ @echo "Running performance tests (this may take a few minutes)..."
106
+ @echo "Tests run serially to reduce noise - be patient!"
107
+ cargo nextest run --profile performance
108
+
104
109
  clean:
105
110
  cargo clean
106
111
 
@@ -233,6 +238,11 @@ version-push:
233
238
  @git push origin $(LATEST_TAG)
234
239
  @echo "Release workflow triggered for $(LATEST_TAG)"
235
240
 
241
+ # Pre-release validation
242
+ pre-release:
243
+ @echo "Running pre-release validation..."
244
+ @./scripts/pre-release.sh
245
+
236
246
  # Combined targets for one-step release
237
247
  release-major: version-major version-push
238
248
  release-minor: version-minor version-push
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rumdl
3
- Version: 0.0.113
3
+ Version: 0.0.115
4
4
  Classifier: Development Status :: 4 - Beta
5
5
  Classifier: Environment :: Console
6
6
  Classifier: Intended Audience :: Developers
@@ -82,36 +82,52 @@ It offers:
82
82
 
83
83
  ## Table of Contents
84
84
 
85
- - [Quick Start](#quick-start)
86
- - [Overview](#overview)
87
- - [Installation](#installation)
88
- - [Using Homebrew (macOS/Linux)](#using-homebrew-macoslinux)
89
- - [Using Cargo (Rust)](#using-cargo-rust)
90
- - [Using pip (Python)](#using-pip-python)
91
- - [Using uv](#using-uv)
92
- - [Download binary](#download-binary)
93
- - [VS Code Extension](#vs-code-extension)
94
- - [Usage](#usage)
95
- - [Pre-commit Integration](#pre-commit-integration)
96
- - [Rules](#rules)
97
- - [Command-line Interface](#command-line-interface)
98
- - [Commands](#commands)
99
- - [Usage Examples](#usage-examples)
100
- - [Configuration](#configuration)
101
- - [Configuration File Example](#configuration-file-example)
102
- - [Initializing Configuration](#initializing-configuration)
103
- - [Configuration in pyproject.toml](#configuration-in-pyproject-toml)
104
- - [Configuration Output](#configuration-output)
105
- - [Effective Configuration (`rumdl config`)](#effective-configuration-rumdl-config)
106
- - [Example output](#example-output)
107
- - [Defaults Only (`rumdl config --defaults`)](#defaults-only-rumdl-config-defaults)
108
- - [Output Style](#output-style)
109
- - [Output Format](#output-format)
110
- - [Development](#development)
111
- - [Prerequisites](#prerequisites)
112
- - [Building](#building)
113
- - [Testing](#testing)
114
- - [License](#license)
85
+ - [rumdl - A high-performance Markdown linter, written in Rust](#rumdl---a-high-performance-markdown-linter-written-in-rust)
86
+ - [A modern Markdown linter and formatter, built for speed with Rust](#a-modern-markdown-linter-and-formatter-built-for-speed-with-rust)
87
+ - [Quick Start](#quick-start)
88
+ - [Overview](#overview)
89
+ - [Table of Contents](#table-of-contents)
90
+ - [Installation](#installation)
91
+ - [Using Homebrew (macOS/Linux)](#using-homebrew-macoslinux)
92
+ - [Using Cargo (Rust)](#using-cargo-rust)
93
+ - [Using pip (Python)](#using-pip-python)
94
+ - [Using uv](#using-uv)
95
+ - [Download binary](#download-binary)
96
+ - [VS Code Extension](#vs-code-extension)
97
+ - [Usage](#usage)
98
+ - [Pre-commit Integration](#pre-commit-integration)
99
+ - [Rules](#rules)
100
+ - [Command-line Interface](#command-line-interface)
101
+ - [Commands](#commands)
102
+ - [`check [PATHS...]`](#check-paths)
103
+ - [`init [OPTIONS]`](#init-options)
104
+ - [`import <FILE> [OPTIONS]`](#import-file-options)
105
+ - [`rule [<rule>]`](#rule-rule)
106
+ - [`config [OPTIONS] [COMMAND]`](#config-options-command)
107
+ - [`server [OPTIONS]`](#server-options)
108
+ - [`vscode [OPTIONS]`](#vscode-options)
109
+ - [`version`](#version)
110
+ - [Global Options](#global-options)
111
+ - [Exit Codes](#exit-codes)
112
+ - [Usage Examples](#usage-examples)
113
+ - [Configuration](#configuration)
114
+ - [Markdownlint Migration](#markdownlint-migration)
115
+ - [Configuration File Example](#configuration-file-example)
116
+ - [Initializing Configuration](#initializing-configuration)
117
+ - [Configuration in pyproject.toml](#configuration-in-pyprojecttoml)
118
+ - [Configuration Output](#configuration-output)
119
+ - [Effective Configuration (`rumdl config`)](#effective-configuration-rumdl-config)
120
+ - [Example output](#example-output)
121
+ - [Defaults Only (`rumdl config --defaults`)](#defaults-only-rumdl-config---defaults)
122
+ - [Output Style](#output-style)
123
+ - [Output Format](#output-format)
124
+ - [Text Output (Default)](#text-output-default)
125
+ - [JSON Output](#json-output)
126
+ - [Development](#development)
127
+ - [Prerequisites](#prerequisites)
128
+ - [Building](#building)
129
+ - [Testing](#testing)
130
+ - [License](#license)
115
131
 
116
132
  ## Installation
117
133
 
@@ -53,36 +53,52 @@ It offers:
53
53
 
54
54
  ## Table of Contents
55
55
 
56
- - [Quick Start](#quick-start)
57
- - [Overview](#overview)
58
- - [Installation](#installation)
59
- - [Using Homebrew (macOS/Linux)](#using-homebrew-macoslinux)
60
- - [Using Cargo (Rust)](#using-cargo-rust)
61
- - [Using pip (Python)](#using-pip-python)
62
- - [Using uv](#using-uv)
63
- - [Download binary](#download-binary)
64
- - [VS Code Extension](#vs-code-extension)
65
- - [Usage](#usage)
66
- - [Pre-commit Integration](#pre-commit-integration)
67
- - [Rules](#rules)
68
- - [Command-line Interface](#command-line-interface)
69
- - [Commands](#commands)
70
- - [Usage Examples](#usage-examples)
71
- - [Configuration](#configuration)
72
- - [Configuration File Example](#configuration-file-example)
73
- - [Initializing Configuration](#initializing-configuration)
74
- - [Configuration in pyproject.toml](#configuration-in-pyproject-toml)
75
- - [Configuration Output](#configuration-output)
76
- - [Effective Configuration (`rumdl config`)](#effective-configuration-rumdl-config)
77
- - [Example output](#example-output)
78
- - [Defaults Only (`rumdl config --defaults`)](#defaults-only-rumdl-config-defaults)
79
- - [Output Style](#output-style)
80
- - [Output Format](#output-format)
81
- - [Development](#development)
82
- - [Prerequisites](#prerequisites)
83
- - [Building](#building)
84
- - [Testing](#testing)
85
- - [License](#license)
56
+ - [rumdl - A high-performance Markdown linter, written in Rust](#rumdl---a-high-performance-markdown-linter-written-in-rust)
57
+ - [A modern Markdown linter and formatter, built for speed with Rust](#a-modern-markdown-linter-and-formatter-built-for-speed-with-rust)
58
+ - [Quick Start](#quick-start)
59
+ - [Overview](#overview)
60
+ - [Table of Contents](#table-of-contents)
61
+ - [Installation](#installation)
62
+ - [Using Homebrew (macOS/Linux)](#using-homebrew-macoslinux)
63
+ - [Using Cargo (Rust)](#using-cargo-rust)
64
+ - [Using pip (Python)](#using-pip-python)
65
+ - [Using uv](#using-uv)
66
+ - [Download binary](#download-binary)
67
+ - [VS Code Extension](#vs-code-extension)
68
+ - [Usage](#usage)
69
+ - [Pre-commit Integration](#pre-commit-integration)
70
+ - [Rules](#rules)
71
+ - [Command-line Interface](#command-line-interface)
72
+ - [Commands](#commands)
73
+ - [`check [PATHS...]`](#check-paths)
74
+ - [`init [OPTIONS]`](#init-options)
75
+ - [`import <FILE> [OPTIONS]`](#import-file-options)
76
+ - [`rule [<rule>]`](#rule-rule)
77
+ - [`config [OPTIONS] [COMMAND]`](#config-options-command)
78
+ - [`server [OPTIONS]`](#server-options)
79
+ - [`vscode [OPTIONS]`](#vscode-options)
80
+ - [`version`](#version)
81
+ - [Global Options](#global-options)
82
+ - [Exit Codes](#exit-codes)
83
+ - [Usage Examples](#usage-examples)
84
+ - [Configuration](#configuration)
85
+ - [Markdownlint Migration](#markdownlint-migration)
86
+ - [Configuration File Example](#configuration-file-example)
87
+ - [Initializing Configuration](#initializing-configuration)
88
+ - [Configuration in pyproject.toml](#configuration-in-pyprojecttoml)
89
+ - [Configuration Output](#configuration-output)
90
+ - [Effective Configuration (`rumdl config`)](#effective-configuration-rumdl-config)
91
+ - [Example output](#example-output)
92
+ - [Defaults Only (`rumdl config --defaults`)](#defaults-only-rumdl-config---defaults)
93
+ - [Output Style](#output-style)
94
+ - [Output Format](#output-format)
95
+ - [Text Output (Default)](#text-output-default)
96
+ - [JSON Output](#json-output)
97
+ - [Development](#development)
98
+ - [Prerequisites](#prerequisites)
99
+ - [Building](#building)
100
+ - [Testing](#testing)
101
+ - [License](#license)
86
102
 
87
103
  ## Installation
88
104
 
@@ -290,24 +290,24 @@ rumdl processes files using the following logic:
290
290
 
291
291
  1. **Start with candidate files**:
292
292
 
293
- - If paths are provided via CLI: use those files/directories
294
- - Otherwise: recursively scan current directory for `.md` and `.markdown` files
293
+ - If paths are provided via CLI: use those files/directories
294
+ - Otherwise: recursively scan current directory for `.md` and `.markdown` files
295
295
 
296
296
  2. **Apply .gitignore filtering** (if `respect_gitignore = true`):
297
297
 
298
- - Skip files/directories listed in `.gitignore` files
298
+ - Skip files/directories listed in `.gitignore` files
299
299
 
300
300
  3. **Apply include patterns** (if specified):
301
301
 
302
- - Keep only files matching at least one include pattern
302
+ - Keep only files matching at least one include pattern
303
303
 
304
304
  4. **Apply exclude patterns**:
305
305
 
306
- - Remove files matching any exclude pattern
306
+ - Remove files matching any exclude pattern
307
307
 
308
308
  5. **Apply rule filtering**:
309
309
 
310
- - Process remaining files with enabled rules only
310
+ - Process remaining files with enabled rules only
311
311
 
312
312
  ### Example: File Selection
313
313
 
@@ -63,45 +63,12 @@ Replaces tab characters with spaces to ensure consistent indentation across all
63
63
 
64
64
  ```yaml
65
65
  MD010:
66
- code_blocks: true # Check for tabs in code blocks (default: true)
67
66
  spaces_per_tab: 4 # Number of spaces to replace each tab with (default: 4)
68
- ignore_code_languages: [] # List of code languages to ignore (default: [])
69
67
  ```
70
68
 
71
69
  ### Configuration options explained
72
70
 
73
- - `code_blocks`: Whether to check for tabs inside code blocks
74
71
  - `spaces_per_tab`: How many spaces to use when replacing each tab character
75
- - `ignore_code_languages`: List of code block languages where tabs are allowed (useful for languages like Makefile where tabs are required)
76
-
77
- ### Example with ignored languages
78
-
79
- ```yaml
80
- MD010:
81
- code_blocks: true
82
- spaces_per_tab: 4
83
- ignore_code_languages:
84
- - makefile
85
- - make
86
- - Makefile
87
- - go.mod
88
- ```
89
-
90
- With this configuration, tabs will be allowed in code blocks marked with these languages:
91
-
92
- ````markdown
93
- ```makefile
94
- # Tabs are required in Makefiles
95
- target:
96
- command with tab
97
- ```
98
-
99
- ```python
100
- # Tabs will be replaced with spaces here
101
- def function():
102
- return value
103
- ```
104
- ````
105
72
 
106
73
  ## Automatic fixes
107
74
 
@@ -86,7 +86,7 @@ With this configuration:
86
86
  - Headings can extend up to 100 characters
87
87
  - Code blocks can have lines up to 120 characters
88
88
 
89
- ```markdown
89
+ ````markdown
90
90
  This regular paragraph text must wrap at 80 characters to comply with the rule.
91
91
 
92
92
  ## This heading can be longer and extend up to 100 characters without triggering a warning
@@ -96,7 +96,7 @@ This regular paragraph text must wrap at 80 characters to comply with the rule.
96
96
  def very_long_function_name_that_demonstrates_the_code_block_line_length_configuration_option():
97
97
  pass
98
98
  ```
99
- ```
99
+ ````
100
100
 
101
101
  ## Automatic fixes
102
102
 
@@ -50,13 +50,45 @@ See [external documentation](README.md#setup) for setup instructions.
50
50
  ### 🔧 Fixed
51
51
 
52
52
  This rule cannot automatically fix missing anchors - you need to either:
53
+
53
54
  - Add the missing heading
54
55
  - Update the link to point to an existing heading
55
56
  - Remove the broken link
56
57
 
57
58
  ## Configuration
58
59
 
59
- This rule has no configuration options.
60
+ This rule supports configuring the anchor generation style to match different Markdown processors:
61
+
62
+ ```toml
63
+ [MD051]
64
+ # Anchor generation style (default: "github")
65
+ # - "github": Preserves Unicode, underscores, and consecutive hyphens
66
+ # - "kramdown": ASCII-only with normalization, removes underscores
67
+ # - "bitbucket": Adds 'markdown-header-' prefix
68
+ anchor-style = "github"
69
+ ```
70
+
71
+ ### Anchor style differences
72
+
73
+ | Heading | GitHub | kramdown | Pandoc | Bitbucket |
74
+ |---------|--------|----------|--------|-----------|
75
+ | `Hello World` | `#hello-world` | `#hello-world` | `#hello-world` | `#markdown-header-hello-world` |
76
+ | `respect_gitignore` | `#respect_gitignore` | `#respectgitignore` | `#respect_gitignore` | `#markdown-header-respect_gitignore` |
77
+ | `snake_case_example` | `#snake_case_example` | `#snakecaseexample` | `#snake_case_example` | `#markdown-header-snake_case_example` |
78
+ | `123 Numbers` | `#123-numbers` | `#numbers` | `#numbers` | `#markdown-header-123-numbers` |
79
+ | `_underscore` | `#_underscore` | `#underscore` | `#underscore` | `#markdown-header-_underscore` |
80
+ | `The End - yay` | `#the-end---yay` | `#the-end---yay` | `#the-end---yay` | `#markdown-header-the-end-yay` |
81
+ | `CI/CD Migration` | `#cicd-migration` | `#cicd-migration` | `#cicd-migration` | `#markdown-header-cicd-migration` |
82
+ | `Café au Lait` | `#café-au-lait` | `#cafe-au-lait` | `#café-au-lait` | `#markdown-header-cafe-au-lait` |
83
+ | `Über uns` | `#über-uns` | `#uber-uns` | `#über-uns` | `#markdown-header-uber-uns` |
84
+ | `你好世界` | `#你好世界` | `#section` | `#你好世界` | `#markdown-header-` |
85
+ | `こんにちは` | `#こんにちは` | `#section` | `#こんにちは` | `#markdown-header-` |
86
+
87
+ **Key differences**:
88
+
89
+ - **GitHub**: Preserves Unicode characters (Chinese, Japanese, Arabic, accented Latin), underscores, and consecutive hyphens
90
+ - **kramdown**: Normalizes accented Latin to ASCII, converts non-Latin scripts to `#section`, removes underscores, preserves consecutive hyphens
91
+ - **Bitbucket**: Adds `markdown-header-` prefix, normalizes accented characters, preserves underscores, collapses consecutive hyphens
60
92
 
61
93
  ## Automatic fixes
62
94
 
@@ -73,14 +73,14 @@ The extension will automatically detect and use your project's `.rumdl.toml` con
73
73
 
74
74
  2. Ensure VS Code's `code` command is in your PATH:
75
75
 
76
- - On macOS: Open VS Code, press Cmd+Shift+P, and run "Shell Command: Install 'code' command in PATH"
77
- - On Windows: This should be automatic during VS Code installation
78
- - On Linux: Add VS Code's bin directory to your PATH
76
+ - On macOS: Open VS Code, press Cmd+Shift+P, and run "Shell Command: Install 'code' command in PATH"
77
+ - On Windows: This should be automatic during VS Code installation
78
+ - On Linux: Add VS Code's bin directory to your PATH
79
79
 
80
80
  3. Check the extension logs:
81
81
 
82
- - Open VS Code's Output panel (View → Output)
83
- - Select "rumdl" from the dropdown
82
+ - Open VS Code's Output panel (View → Output)
83
+ - Select "rumdl" from the dropdown
84
84
 
85
85
  ### VS Code Not Found
86
86
 
@@ -208,4 +208,4 @@ def main():
208
208
  sys.exit(1)
209
209
 
210
210
  if __name__ == "__main__":
211
- main()
211
+ main()
@@ -60,4 +60,4 @@ disallow_incomplete_defs = true
60
60
  [dependency-groups]
61
61
  dev = [
62
62
  "pre-commit>=2.21.0",
63
- ]
63
+ ]
@@ -6,4 +6,4 @@ recursive-exclude __pycache__ *
6
6
  recursive-exclude * *.py[cod]
7
7
  recursive-exclude * *.so
8
8
  recursive-exclude * *.dylib
9
- recursive-exclude * *.pyd
9
+ recursive-exclude * *.pyd