rumdl 0.0.113__tar.gz → 0.0.114__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 (383) hide show
  1. {rumdl-0.0.113 → rumdl-0.0.114}/.pre-commit-config.yaml +9 -4
  2. {rumdl-0.0.113 → rumdl-0.0.114}/.rumdl.toml +7 -1
  3. {rumdl-0.0.113 → rumdl-0.0.114}/.rustfmt.toml +1 -1
  4. {rumdl-0.0.113 → rumdl-0.0.114}/CHANGELOG.md +4 -1
  5. {rumdl-0.0.113 → rumdl-0.0.114}/Cargo.lock +1 -1
  6. {rumdl-0.0.113 → rumdl-0.0.114}/Cargo.toml +1 -1
  7. {rumdl-0.0.113 → rumdl-0.0.114}/LICENSE +1 -1
  8. {rumdl-0.0.113 → rumdl-0.0.114}/MANIFEST.in +1 -1
  9. {rumdl-0.0.113 → rumdl-0.0.114}/Makefile +5 -0
  10. {rumdl-0.0.113 → rumdl-0.0.114}/PKG-INFO +47 -31
  11. {rumdl-0.0.113 → rumdl-0.0.114}/README.md +46 -30
  12. {rumdl-0.0.113 → rumdl-0.0.114}/docs/global-settings.md +6 -6
  13. {rumdl-0.0.113 → rumdl-0.0.114}/docs/md010.md +0 -33
  14. {rumdl-0.0.113 → rumdl-0.0.114}/docs/md013.md +2 -2
  15. {rumdl-0.0.113 → rumdl-0.0.114}/docs/md051.md +33 -1
  16. {rumdl-0.0.113 → rumdl-0.0.114}/docs/vscode-extension.md +5 -5
  17. {rumdl-0.0.113 → rumdl-0.0.114}/parity_check.py +1 -1
  18. {rumdl-0.0.113 → rumdl-0.0.114}/pyproject.toml +1 -1
  19. {rumdl-0.0.113 → rumdl-0.0.114}/python/MANIFEST.in +1 -1
  20. {rumdl-0.0.113 → rumdl-0.0.114}/python/rumdl/__main__.py +5 -5
  21. rumdl-0.0.114/python/rumdl/py.typed +0 -0
  22. {rumdl-0.0.113 → rumdl-0.0.114}/rumdl.toml.example +2 -2
  23. {rumdl-0.0.113 → rumdl-0.0.114}/scripts/extract-changelog.sh +1 -1
  24. {rumdl-0.0.113 → rumdl-0.0.114}/scripts/generate-downloads-table.sh +6 -6
  25. rumdl-0.0.114/scripts/pre-release.sh +127 -0
  26. {rumdl-0.0.113 → rumdl-0.0.114}/scripts/prepare-release.sh +1 -1
  27. {rumdl-0.0.113 → rumdl-0.0.114}/src/main.rs +40 -122
  28. {rumdl-0.0.113 → rumdl-0.0.114}/src/rules/md010_no_hard_tabs/md010_config.rs +0 -14
  29. {rumdl-0.0.113 → rumdl-0.0.114}/src/rules/md010_no_hard_tabs.rs +22 -136
  30. {rumdl-0.0.113 → rumdl-0.0.114}/src/rules/md025_single_title.rs +32 -5
  31. {rumdl-0.0.113 → rumdl-0.0.114}/src/rules/md029_ordered_list_prefix/md029_config.rs +1 -1
  32. {rumdl-0.0.113 → rumdl-0.0.114}/src/rules/md029_ordered_list_prefix.rs +53 -12
  33. {rumdl-0.0.113 → rumdl-0.0.114}/src/rules/md033_no_inline_html/md033_config.rs +1 -1
  34. {rumdl-0.0.113 → rumdl-0.0.114}/src/rules/md044_proper_names/md044_config.rs +2 -2
  35. {rumdl-0.0.113 → rumdl-0.0.114}/src/rules/md045_no_alt_text/md045_config.rs +5 -1
  36. rumdl-0.0.114/src/rules/md051_link_fragments.rs +753 -0
  37. {rumdl-0.0.113 → rumdl-0.0.114}/src/rules/md054_link_image_style/md054_config.rs +1 -2
  38. {rumdl-0.0.113 → rumdl-0.0.114}/src/rules/md057_existing_relative_links/md057_config.rs +5 -2
  39. {rumdl-0.0.113 → rumdl-0.0.114}/src/utils/markdown_elements.rs +34 -2
  40. {rumdl-0.0.113 → rumdl-0.0.114}/src/vscode.rs +14 -2
  41. {rumdl-0.0.113 → rumdl-0.0.114}/tests/advanced_integration_tests.rs +28 -11
  42. {rumdl-0.0.113 → rumdl-0.0.114}/tests/character_ranges/mod.rs +2 -2
  43. {rumdl-0.0.113 → rumdl-0.0.114}/tests/cli_integration_tests.rs +67 -37
  44. {rumdl-0.0.113 → rumdl-0.0.114}/tests/commonmark_compliance_tests.rs +4 -2
  45. {rumdl-0.0.113 → rumdl-0.0.114}/tests/comprehensive_integration_tests.rs +11 -11
  46. {rumdl-0.0.113 → rumdl-0.0.114}/tests/consistency_regression_tests.rs +4 -7
  47. {rumdl-0.0.113 → rumdl-0.0.114}/tests/deeply_nested_lists_performance_test.rs +2 -0
  48. {rumdl-0.0.113 → rumdl-0.0.114}/tests/kramdown_integration_test.rs +5 -5
  49. {rumdl-0.0.113 → rumdl-0.0.114}/tests/lsp_editor_integration_tests.rs +14 -7
  50. {rumdl-0.0.113 → rumdl-0.0.114}/tests/output_format_integration_tests.rs +18 -9
  51. {rumdl-0.0.113 → rumdl-0.0.114}/tests/output_format_tests.rs +26 -26
  52. {rumdl-0.0.113 → rumdl-0.0.114}/tests/performance_validation_tests.rs +5 -5
  53. {rumdl-0.0.113 → rumdl-0.0.114}/tests/pyproject_config_tests.rs +15 -7
  54. {rumdl-0.0.113 → rumdl-0.0.114}/tests/rules/list_rules_integration_test.rs +1 -0
  55. {rumdl-0.0.113 → rumdl-0.0.114}/tests/rules/md010_test.rs +31 -43
  56. {rumdl-0.0.113 → rumdl-0.0.114}/tests/rules/md014_test.rs +1 -1
  57. {rumdl-0.0.113 → rumdl-0.0.114}/tests/rules/md023_extended_test.rs +34 -2
  58. {rumdl-0.0.113 → rumdl-0.0.114}/tests/rules/md051_test.rs +1 -1
  59. {rumdl-0.0.113 → rumdl-0.0.114}/tests/rules/md053_proptest.rs +1 -1
  60. {rumdl-0.0.113 → rumdl-0.0.114}/tests/rules/md054_unicode_test.rs +3 -3
  61. {rumdl-0.0.113 → rumdl-0.0.114}/tests/unicode_edge_case_tests.rs +1 -1
  62. {rumdl-0.0.113 → rumdl-0.0.114}/tests/utils/code_block_utils_extended_test.rs +1 -1
  63. {rumdl-0.0.113 → rumdl-0.0.114}/tests/utils_markdown_edge_cases.rs +5 -5
  64. {rumdl-0.0.113 → rumdl-0.0.114}/tests/vscode_extension_fixes.rs +1 -1
  65. rumdl-0.0.113/python/rumdl/py.typed +0 -1
  66. rumdl-0.0.113/src/rules/md051_link_fragments.rs +0 -739
  67. {rumdl-0.0.113 → rumdl-0.0.114}/.config/nextest.toml +0 -0
  68. {rumdl-0.0.113 → rumdl-0.0.114}/.mise.toml +0 -0
  69. {rumdl-0.0.113 → rumdl-0.0.114}/assets/logo.png +0 -0
  70. {rumdl-0.0.113 → rumdl-0.0.114}/benches/fix_performance.rs +0 -0
  71. {rumdl-0.0.113 → rumdl-0.0.114}/benches/range_performance.rs +0 -0
  72. {rumdl-0.0.113 → rumdl-0.0.114}/benches/range_utils_benchmark.rs +0 -0
  73. {rumdl-0.0.113 → rumdl-0.0.114}/benches/rule_performance.rs +0 -0
  74. {rumdl-0.0.113 → rumdl-0.0.114}/benches/simple_fix_bench.rs +0 -0
  75. {rumdl-0.0.113 → rumdl-0.0.114}/benchmark/bin/bench_lint_context.rs +0 -0
  76. {rumdl-0.0.113 → rumdl-0.0.114}/benchmark/bin/benchmark.rs +0 -0
  77. {rumdl-0.0.113 → rumdl-0.0.114}/benchmark/bin/benchmark_rule.rs +0 -0
  78. {rumdl-0.0.113 → rumdl-0.0.114}/benchmark/bin/file_parallel_benchmark.rs +0 -0
  79. {rumdl-0.0.113 → rumdl-0.0.114}/benchmark/bin/measure_code_span_performance.rs +0 -0
  80. {rumdl-0.0.113 → rumdl-0.0.114}/docs/RULES.md +0 -0
  81. {rumdl-0.0.113 → rumdl-0.0.114}/docs/md001.md +0 -0
  82. {rumdl-0.0.113 → rumdl-0.0.114}/docs/md002.md +0 -0
  83. {rumdl-0.0.113 → rumdl-0.0.114}/docs/md003.md +0 -0
  84. {rumdl-0.0.113 → rumdl-0.0.114}/docs/md004.md +0 -0
  85. {rumdl-0.0.113 → rumdl-0.0.114}/docs/md005.md +0 -0
  86. {rumdl-0.0.113 → rumdl-0.0.114}/docs/md006.md +0 -0
  87. {rumdl-0.0.113 → rumdl-0.0.114}/docs/md007.md +0 -0
  88. {rumdl-0.0.113 → rumdl-0.0.114}/docs/md009.md +0 -0
  89. {rumdl-0.0.113 → rumdl-0.0.114}/docs/md011.md +0 -0
  90. {rumdl-0.0.113 → rumdl-0.0.114}/docs/md012.md +0 -0
  91. {rumdl-0.0.113 → rumdl-0.0.114}/docs/md014.md +0 -0
  92. {rumdl-0.0.113 → rumdl-0.0.114}/docs/md018.md +0 -0
  93. {rumdl-0.0.113 → rumdl-0.0.114}/docs/md019.md +0 -0
  94. {rumdl-0.0.113 → rumdl-0.0.114}/docs/md020.md +0 -0
  95. {rumdl-0.0.113 → rumdl-0.0.114}/docs/md021.md +0 -0
  96. {rumdl-0.0.113 → rumdl-0.0.114}/docs/md022.md +0 -0
  97. {rumdl-0.0.113 → rumdl-0.0.114}/docs/md023.md +0 -0
  98. {rumdl-0.0.113 → rumdl-0.0.114}/docs/md024.md +0 -0
  99. {rumdl-0.0.113 → rumdl-0.0.114}/docs/md025.md +0 -0
  100. {rumdl-0.0.113 → rumdl-0.0.114}/docs/md026.md +0 -0
  101. {rumdl-0.0.113 → rumdl-0.0.114}/docs/md027.md +0 -0
  102. {rumdl-0.0.113 → rumdl-0.0.114}/docs/md028.md +0 -0
  103. {rumdl-0.0.113 → rumdl-0.0.114}/docs/md029.md +0 -0
  104. {rumdl-0.0.113 → rumdl-0.0.114}/docs/md030.md +0 -0
  105. {rumdl-0.0.113 → rumdl-0.0.114}/docs/md031.md +0 -0
  106. {rumdl-0.0.113 → rumdl-0.0.114}/docs/md032.md +0 -0
  107. {rumdl-0.0.113 → rumdl-0.0.114}/docs/md033.md +0 -0
  108. {rumdl-0.0.113 → rumdl-0.0.114}/docs/md034.md +0 -0
  109. {rumdl-0.0.113 → rumdl-0.0.114}/docs/md035.md +0 -0
  110. {rumdl-0.0.113 → rumdl-0.0.114}/docs/md036.md +0 -0
  111. {rumdl-0.0.113 → rumdl-0.0.114}/docs/md037.md +0 -0
  112. {rumdl-0.0.113 → rumdl-0.0.114}/docs/md038.md +0 -0
  113. {rumdl-0.0.113 → rumdl-0.0.114}/docs/md039.md +0 -0
  114. {rumdl-0.0.113 → rumdl-0.0.114}/docs/md040.md +0 -0
  115. {rumdl-0.0.113 → rumdl-0.0.114}/docs/md041.md +0 -0
  116. {rumdl-0.0.113 → rumdl-0.0.114}/docs/md042.md +0 -0
  117. {rumdl-0.0.113 → rumdl-0.0.114}/docs/md043.md +0 -0
  118. {rumdl-0.0.113 → rumdl-0.0.114}/docs/md044.md +0 -0
  119. {rumdl-0.0.113 → rumdl-0.0.114}/docs/md045.md +0 -0
  120. {rumdl-0.0.113 → rumdl-0.0.114}/docs/md046.md +0 -0
  121. {rumdl-0.0.113 → rumdl-0.0.114}/docs/md047.md +0 -0
  122. {rumdl-0.0.113 → rumdl-0.0.114}/docs/md048.md +0 -0
  123. {rumdl-0.0.113 → rumdl-0.0.114}/docs/md049.md +0 -0
  124. {rumdl-0.0.113 → rumdl-0.0.114}/docs/md050.md +0 -0
  125. {rumdl-0.0.113 → rumdl-0.0.114}/docs/md052.md +0 -0
  126. {rumdl-0.0.113 → rumdl-0.0.114}/docs/md053.md +0 -0
  127. {rumdl-0.0.113 → rumdl-0.0.114}/docs/md054.md +0 -0
  128. {rumdl-0.0.113 → rumdl-0.0.114}/docs/md055.md +0 -0
  129. {rumdl-0.0.113 → rumdl-0.0.114}/docs/md056.md +0 -0
  130. {rumdl-0.0.113 → rumdl-0.0.114}/docs/md057.md +0 -0
  131. {rumdl-0.0.113 → rumdl-0.0.114}/docs/md058.md +0 -0
  132. {rumdl-0.0.113 → rumdl-0.0.114}/python/PYTHON-README.md +0 -0
  133. {rumdl-0.0.113 → rumdl-0.0.114}/python/rumdl/__init__.py +0 -0
  134. {rumdl-0.0.113 → rumdl-0.0.114}/rust-toolchain.toml +0 -0
  135. {rumdl-0.0.113 → rumdl-0.0.114}/scripts/setup-pre-commit.sh +0 -0
  136. {rumdl-0.0.113 → rumdl-0.0.114}/scripts/update-pre-commit-docs.sh +0 -0
  137. {rumdl-0.0.113 → rumdl-0.0.114}/src/config.rs +0 -0
  138. {rumdl-0.0.113 → rumdl-0.0.114}/src/exit_codes.rs +0 -0
  139. {rumdl-0.0.113 → rumdl-0.0.114}/src/inline_config.rs +0 -0
  140. {rumdl-0.0.113 → rumdl-0.0.114}/src/lib.rs +0 -0
  141. {rumdl-0.0.113 → rumdl-0.0.114}/src/lint_context.rs +0 -0
  142. {rumdl-0.0.113 → rumdl-0.0.114}/src/lsp/mod.rs +0 -0
  143. {rumdl-0.0.113 → rumdl-0.0.114}/src/lsp/server.rs +0 -0
  144. {rumdl-0.0.113 → rumdl-0.0.114}/src/lsp/types.rs +0 -0
  145. {rumdl-0.0.113 → rumdl-0.0.114}/src/markdownlint_config.rs +0 -0
  146. {rumdl-0.0.113 → rumdl-0.0.114}/src/output/formatters/azure.rs +0 -0
  147. {rumdl-0.0.113 → rumdl-0.0.114}/src/output/formatters/concise.rs +0 -0
  148. {rumdl-0.0.113 → rumdl-0.0.114}/src/output/formatters/github.rs +0 -0
  149. {rumdl-0.0.113 → rumdl-0.0.114}/src/output/formatters/gitlab.rs +0 -0
  150. {rumdl-0.0.113 → rumdl-0.0.114}/src/output/formatters/grouped.rs +0 -0
  151. {rumdl-0.0.113 → rumdl-0.0.114}/src/output/formatters/json.rs +0 -0
  152. {rumdl-0.0.113 → rumdl-0.0.114}/src/output/formatters/json_lines.rs +0 -0
  153. {rumdl-0.0.113 → rumdl-0.0.114}/src/output/formatters/junit.rs +0 -0
  154. {rumdl-0.0.113 → rumdl-0.0.114}/src/output/formatters/mod.rs +0 -0
  155. {rumdl-0.0.113 → rumdl-0.0.114}/src/output/formatters/pylint.rs +0 -0
  156. {rumdl-0.0.113 → rumdl-0.0.114}/src/output/formatters/sarif.rs +0 -0
  157. {rumdl-0.0.113 → rumdl-0.0.114}/src/output/formatters/text.rs +0 -0
  158. {rumdl-0.0.113 → rumdl-0.0.114}/src/output/mod.rs +0 -0
  159. {rumdl-0.0.113 → rumdl-0.0.114}/src/parallel.rs +0 -0
  160. {rumdl-0.0.113 → rumdl-0.0.114}/src/performance.rs +0 -0
  161. {rumdl-0.0.113 → rumdl-0.0.114}/src/profiling.rs +0 -0
  162. {rumdl-0.0.113 → rumdl-0.0.114}/src/python.rs +0 -0
  163. {rumdl-0.0.113 → rumdl-0.0.114}/src/rule.rs +0 -0
  164. {rumdl-0.0.113 → rumdl-0.0.114}/src/rule_config.rs +0 -0
  165. {rumdl-0.0.113 → rumdl-0.0.114}/src/rule_config_serde.rs +0 -0
  166. {rumdl-0.0.113 → rumdl-0.0.114}/src/rules/blockquote_utils.rs +0 -0
  167. {rumdl-0.0.113 → rumdl-0.0.114}/src/rules/code_block_utils.rs +0 -0
  168. {rumdl-0.0.113 → rumdl-0.0.114}/src/rules/code_fence_utils.rs +0 -0
  169. {rumdl-0.0.113 → rumdl-0.0.114}/src/rules/emphasis_style.rs +0 -0
  170. {rumdl-0.0.113 → rumdl-0.0.114}/src/rules/front_matter_utils.rs +0 -0
  171. {rumdl-0.0.113 → rumdl-0.0.114}/src/rules/heading_utils.rs +0 -0
  172. {rumdl-0.0.113 → rumdl-0.0.114}/src/rules/list_utils.rs +0 -0
  173. {rumdl-0.0.113 → rumdl-0.0.114}/src/rules/md001_heading_increment.rs +0 -0
  174. {rumdl-0.0.113 → rumdl-0.0.114}/src/rules/md002_first_heading_h1/md002_config.rs +0 -0
  175. {rumdl-0.0.113 → rumdl-0.0.114}/src/rules/md002_first_heading_h1.rs +0 -0
  176. {rumdl-0.0.113 → rumdl-0.0.114}/src/rules/md003_heading_style/md003_config.rs +0 -0
  177. {rumdl-0.0.113 → rumdl-0.0.114}/src/rules/md003_heading_style.rs +0 -0
  178. {rumdl-0.0.113 → rumdl-0.0.114}/src/rules/md004_unordered_list_style/md004_config.rs +0 -0
  179. {rumdl-0.0.113 → rumdl-0.0.114}/src/rules/md004_unordered_list_style.rs +0 -0
  180. {rumdl-0.0.113 → rumdl-0.0.114}/src/rules/md005_list_indent.rs +0 -0
  181. {rumdl-0.0.113 → rumdl-0.0.114}/src/rules/md006_start_bullets.rs +0 -0
  182. {rumdl-0.0.113 → rumdl-0.0.114}/src/rules/md007_ul_indent/md007_config.rs +0 -0
  183. {rumdl-0.0.113 → rumdl-0.0.114}/src/rules/md007_ul_indent.rs +0 -0
  184. {rumdl-0.0.113 → rumdl-0.0.114}/src/rules/md009_trailing_spaces/md009_config.rs +0 -0
  185. {rumdl-0.0.113 → rumdl-0.0.114}/src/rules/md009_trailing_spaces.rs +0 -0
  186. {rumdl-0.0.113 → rumdl-0.0.114}/src/rules/md011_no_reversed_links.rs +0 -0
  187. {rumdl-0.0.113 → rumdl-0.0.114}/src/rules/md012_no_multiple_blanks/md012_config.rs +0 -0
  188. {rumdl-0.0.113 → rumdl-0.0.114}/src/rules/md012_no_multiple_blanks.rs +0 -0
  189. {rumdl-0.0.113 → rumdl-0.0.114}/src/rules/md013_line_length/md013_config.rs +0 -0
  190. {rumdl-0.0.113 → rumdl-0.0.114}/src/rules/md013_line_length.rs +0 -0
  191. {rumdl-0.0.113 → rumdl-0.0.114}/src/rules/md014_commands_show_output/md014_config.rs +0 -0
  192. {rumdl-0.0.113 → rumdl-0.0.114}/src/rules/md014_commands_show_output.rs +0 -0
  193. {rumdl-0.0.113 → rumdl-0.0.114}/src/rules/md018_no_missing_space_atx.rs +0 -0
  194. {rumdl-0.0.113 → rumdl-0.0.114}/src/rules/md019_no_multiple_space_atx.rs +0 -0
  195. {rumdl-0.0.113 → rumdl-0.0.114}/src/rules/md020_no_missing_space_closed_atx.rs +0 -0
  196. {rumdl-0.0.113 → rumdl-0.0.114}/src/rules/md021_no_multiple_space_closed_atx.rs +0 -0
  197. {rumdl-0.0.113 → rumdl-0.0.114}/src/rules/md022_blanks_around_headings/md022_config.rs +0 -0
  198. {rumdl-0.0.113 → rumdl-0.0.114}/src/rules/md022_blanks_around_headings.rs +0 -0
  199. {rumdl-0.0.113 → rumdl-0.0.114}/src/rules/md023_heading_start_left.rs +0 -0
  200. {rumdl-0.0.113 → rumdl-0.0.114}/src/rules/md024_no_duplicate_heading/md024_config.rs +0 -0
  201. {rumdl-0.0.113 → rumdl-0.0.114}/src/rules/md024_no_duplicate_heading.rs +0 -0
  202. {rumdl-0.0.113 → rumdl-0.0.114}/src/rules/md025_single_title/md025_config.rs +0 -0
  203. {rumdl-0.0.113 → rumdl-0.0.114}/src/rules/md026_no_trailing_punctuation/md026_config.rs +0 -0
  204. {rumdl-0.0.113 → rumdl-0.0.114}/src/rules/md026_no_trailing_punctuation.rs +0 -0
  205. {rumdl-0.0.113 → rumdl-0.0.114}/src/rules/md027_multiple_spaces_blockquote.rs +0 -0
  206. {rumdl-0.0.113 → rumdl-0.0.114}/src/rules/md028_no_blanks_blockquote.rs +0 -0
  207. {rumdl-0.0.113 → rumdl-0.0.114}/src/rules/md030_list_marker_space/md030_config.rs +0 -0
  208. {rumdl-0.0.113 → rumdl-0.0.114}/src/rules/md030_list_marker_space.rs +0 -0
  209. {rumdl-0.0.113 → rumdl-0.0.114}/src/rules/md031_blanks_around_fences.rs +0 -0
  210. {rumdl-0.0.113 → rumdl-0.0.114}/src/rules/md032_blanks_around_lists.rs +0 -0
  211. {rumdl-0.0.113 → rumdl-0.0.114}/src/rules/md033_no_inline_html.rs +0 -0
  212. {rumdl-0.0.113 → rumdl-0.0.114}/src/rules/md034_no_bare_urls.rs +0 -0
  213. {rumdl-0.0.113 → rumdl-0.0.114}/src/rules/md035_hr_style/md035_config.rs +0 -0
  214. {rumdl-0.0.113 → rumdl-0.0.114}/src/rules/md035_hr_style.rs +0 -0
  215. {rumdl-0.0.113 → rumdl-0.0.114}/src/rules/md036_no_emphasis_only_first/md036_config.rs +0 -0
  216. {rumdl-0.0.113 → rumdl-0.0.114}/src/rules/md036_no_emphasis_only_first.rs +0 -0
  217. {rumdl-0.0.113 → rumdl-0.0.114}/src/rules/md037_spaces_around_emphasis.rs +0 -0
  218. {rumdl-0.0.113 → rumdl-0.0.114}/src/rules/md038_no_space_in_code.rs +0 -0
  219. {rumdl-0.0.113 → rumdl-0.0.114}/src/rules/md039_no_space_in_links.rs +0 -0
  220. {rumdl-0.0.113 → rumdl-0.0.114}/src/rules/md040_fenced_code_language.rs +0 -0
  221. {rumdl-0.0.113 → rumdl-0.0.114}/src/rules/md041_first_line_heading.rs +0 -0
  222. {rumdl-0.0.113 → rumdl-0.0.114}/src/rules/md042_no_empty_links.rs +0 -0
  223. {rumdl-0.0.113 → rumdl-0.0.114}/src/rules/md043_required_headings.rs +0 -0
  224. {rumdl-0.0.113 → rumdl-0.0.114}/src/rules/md044_proper_names.rs +0 -0
  225. {rumdl-0.0.113 → rumdl-0.0.114}/src/rules/md045_no_alt_text.rs +0 -0
  226. {rumdl-0.0.113 → rumdl-0.0.114}/src/rules/md046_code_block_style/md046_config.rs +0 -0
  227. {rumdl-0.0.113 → rumdl-0.0.114}/src/rules/md046_code_block_style.rs +0 -0
  228. {rumdl-0.0.113 → rumdl-0.0.114}/src/rules/md047_single_trailing_newline.rs +0 -0
  229. {rumdl-0.0.113 → rumdl-0.0.114}/src/rules/md048_code_fence_style/md048_config.rs +0 -0
  230. {rumdl-0.0.113 → rumdl-0.0.114}/src/rules/md048_code_fence_style.rs +0 -0
  231. {rumdl-0.0.113 → rumdl-0.0.114}/src/rules/md049_emphasis_style/md049_config.rs +0 -0
  232. {rumdl-0.0.113 → rumdl-0.0.114}/src/rules/md049_emphasis_style.rs +0 -0
  233. {rumdl-0.0.113 → rumdl-0.0.114}/src/rules/md050_strong_style/md050_config.rs +0 -0
  234. {rumdl-0.0.113 → rumdl-0.0.114}/src/rules/md050_strong_style.rs +0 -0
  235. {rumdl-0.0.113 → rumdl-0.0.114}/src/rules/md052_reference_links_images.rs +0 -0
  236. {rumdl-0.0.113 → rumdl-0.0.114}/src/rules/md053_link_image_reference_definitions.rs +0 -0
  237. {rumdl-0.0.113 → rumdl-0.0.114}/src/rules/md054_link_image_style.rs +0 -0
  238. {rumdl-0.0.113 → rumdl-0.0.114}/src/rules/md055_table_pipe_style/md055_config.rs +0 -0
  239. {rumdl-0.0.113 → rumdl-0.0.114}/src/rules/md055_table_pipe_style.rs +0 -0
  240. {rumdl-0.0.113 → rumdl-0.0.114}/src/rules/md056_table_column_count.rs +0 -0
  241. {rumdl-0.0.113 → rumdl-0.0.114}/src/rules/md057_existing_relative_links.rs +0 -0
  242. {rumdl-0.0.113 → rumdl-0.0.114}/src/rules/md058_blanks_around_tables.rs +0 -0
  243. {rumdl-0.0.113 → rumdl-0.0.114}/src/rules/mod.rs +0 -0
  244. {rumdl-0.0.113 → rumdl-0.0.114}/src/rules/strong_style.rs +0 -0
  245. {rumdl-0.0.113 → rumdl-0.0.114}/src/utils/ast_utils.rs +0 -0
  246. {rumdl-0.0.113 → rumdl-0.0.114}/src/utils/code_block_utils.rs +0 -0
  247. {rumdl-0.0.113 → rumdl-0.0.114}/src/utils/document_structure.rs +0 -0
  248. {rumdl-0.0.113 → rumdl-0.0.114}/src/utils/early_returns.rs +0 -0
  249. {rumdl-0.0.113 → rumdl-0.0.114}/src/utils/element_cache.rs +0 -0
  250. {rumdl-0.0.113 → rumdl-0.0.114}/src/utils/emphasis_utils.rs +0 -0
  251. {rumdl-0.0.113 → rumdl-0.0.114}/src/utils/fix_utils.rs +0 -0
  252. {rumdl-0.0.113 → rumdl-0.0.114}/src/utils/kramdown_utils.rs +0 -0
  253. {rumdl-0.0.113 → rumdl-0.0.114}/src/utils/mod.rs +0 -0
  254. {rumdl-0.0.113 → rumdl-0.0.114}/src/utils/range_utils.rs +0 -0
  255. {rumdl-0.0.113 → rumdl-0.0.114}/src/utils/regex_cache.rs +0 -0
  256. {rumdl-0.0.113 → rumdl-0.0.114}/src/utils/string_interner.rs +0 -0
  257. {rumdl-0.0.113 → rumdl-0.0.114}/src/utils/table_utils.rs +0 -0
  258. {rumdl-0.0.113 → rumdl-0.0.114}/src/utils/text_reflow.rs +0 -0
  259. {rumdl-0.0.113 → rumdl-0.0.114}/tests/character_ranges/additional_tests.rs +0 -0
  260. {rumdl-0.0.113 → rumdl-0.0.114}/tests/character_ranges/basic_tests.rs +0 -0
  261. {rumdl-0.0.113 → rumdl-0.0.114}/tests/character_ranges/comprehensive_tests.rs +0 -0
  262. {rumdl-0.0.113 → rumdl-0.0.114}/tests/character_ranges/extended_tests.rs +0 -0
  263. {rumdl-0.0.113 → rumdl-0.0.114}/tests/character_ranges/unicode_utils.rs +0 -0
  264. {rumdl-0.0.113 → rumdl-0.0.114}/tests/cli_duplication_test.rs +0 -0
  265. {rumdl-0.0.113 → rumdl-0.0.114}/tests/cli_explain_test.rs +0 -0
  266. {rumdl-0.0.113 → rumdl-0.0.114}/tests/cli_flag_precedence_test.rs +0 -0
  267. {rumdl-0.0.113 → rumdl-0.0.114}/tests/cli_lsp_fix_consistency.rs +0 -0
  268. {rumdl-0.0.113 → rumdl-0.0.114}/tests/cli_statistics_test.rs +0 -0
  269. {rumdl-0.0.113 → rumdl-0.0.114}/tests/common/cli_test_utils.rs +0 -0
  270. {rumdl-0.0.113 → rumdl-0.0.114}/tests/common/fixtures.rs +0 -0
  271. {rumdl-0.0.113 → rumdl-0.0.114}/tests/common/mod.rs +0 -0
  272. {rumdl-0.0.113 → rumdl-0.0.114}/tests/common/test_utils.rs +0 -0
  273. {rumdl-0.0.113 → rumdl-0.0.114}/tests/comprehensive_output_format_tests.rs +0 -0
  274. {rumdl-0.0.113 → rumdl-0.0.114}/tests/config_application_tests.rs +0 -0
  275. {rumdl-0.0.113 → rumdl-0.0.114}/tests/config_file_command_test.rs +0 -0
  276. {rumdl-0.0.113 → rumdl-0.0.114}/tests/config_tests.rs +0 -0
  277. {rumdl-0.0.113 → rumdl-0.0.114}/tests/configuration_inheritance_tests.rs +0 -0
  278. {rumdl-0.0.113 → rumdl-0.0.114}/tests/cross_platform_compatibility_tests.rs +0 -0
  279. {rumdl-0.0.113 → rumdl-0.0.114}/tests/escaped_brackets_test.rs +0 -0
  280. {rumdl-0.0.113 → rumdl-0.0.114}/tests/final_confidence_assessment.rs +0 -0
  281. {rumdl-0.0.113 → rumdl-0.0.114}/tests/init_command_test.rs +0 -0
  282. {rumdl-0.0.113 → rumdl-0.0.114}/tests/init_tests.rs +0 -0
  283. {rumdl-0.0.113 → rumdl-0.0.114}/tests/inline_config_blocks_test.rs +0 -0
  284. {rumdl-0.0.113 → rumdl-0.0.114}/tests/inline_config_test.rs +0 -0
  285. {rumdl-0.0.113 → rumdl-0.0.114}/tests/integration_tests.rs +0 -0
  286. {rumdl-0.0.113 → rumdl-0.0.114}/tests/json_output_test.rs +0 -0
  287. {rumdl-0.0.113 → rumdl-0.0.114}/tests/lib.rs +0 -0
  288. {rumdl-0.0.113 → rumdl-0.0.114}/tests/lsp_integration_tests.rs +0 -0
  289. {rumdl-0.0.113 → rumdl-0.0.114}/tests/lsp_memory_leak_tests.rs +0 -0
  290. {rumdl-0.0.113 → rumdl-0.0.114}/tests/lsp_tests.rs +0 -0
  291. {rumdl-0.0.113 → rumdl-0.0.114}/tests/malformed_markdown_stress_tests.rs +0 -0
  292. {rumdl-0.0.113 → rumdl-0.0.114}/tests/markdownlint_cli_integration.rs +0 -0
  293. {rumdl-0.0.113 → rumdl-0.0.114}/tests/markdownlint_config_test.rs +0 -0
  294. {rumdl-0.0.113 → rumdl-0.0.114}/tests/markdownlintignore_test.rs +0 -0
  295. {rumdl-0.0.113 → rumdl-0.0.114}/tests/md013_reflow_integration_test.rs +0 -0
  296. {rumdl-0.0.113 → rumdl-0.0.114}/tests/nested_code_block_test.rs +0 -0
  297. {rumdl-0.0.113 → rumdl-0.0.114}/tests/perf_check.rs +0 -0
  298. {rumdl-0.0.113 → rumdl-0.0.114}/tests/python_bindings_test.rs +0 -0
  299. {rumdl-0.0.113 → rumdl-0.0.114}/tests/real_world_repository_tests.rs +0 -0
  300. {rumdl-0.0.113 → rumdl-0.0.114}/tests/regression_prevention_tests.rs +0 -0
  301. {rumdl-0.0.113 → rumdl-0.0.114}/tests/rules/emphasis_edge_cases_test.rs +0 -0
  302. {rumdl-0.0.113 → rumdl-0.0.114}/tests/rules/heading_edge_cases_test.rs +0 -0
  303. {rumdl-0.0.113 → rumdl-0.0.114}/tests/rules/inline_content_edge_cases_test.rs +0 -0
  304. {rumdl-0.0.113 → rumdl-0.0.114}/tests/rules/link_edge_cases_test.rs +0 -0
  305. {rumdl-0.0.113 → rumdl-0.0.114}/tests/rules/md001_test.rs +0 -0
  306. {rumdl-0.0.113 → rumdl-0.0.114}/tests/rules/md001_unicode_test.rs +0 -0
  307. {rumdl-0.0.113 → rumdl-0.0.114}/tests/rules/md002_test.rs +0 -0
  308. {rumdl-0.0.113 → rumdl-0.0.114}/tests/rules/md003_test.rs +0 -0
  309. {rumdl-0.0.113 → rumdl-0.0.114}/tests/rules/md004_test.rs +0 -0
  310. {rumdl-0.0.113 → rumdl-0.0.114}/tests/rules/md005_test.rs +0 -0
  311. {rumdl-0.0.113 → rumdl-0.0.114}/tests/rules/md005_unicode_test.rs +0 -0
  312. {rumdl-0.0.113 → rumdl-0.0.114}/tests/rules/md006_test.rs +0 -0
  313. {rumdl-0.0.113 → rumdl-0.0.114}/tests/rules/md006_unicode_test.rs +0 -0
  314. {rumdl-0.0.113 → rumdl-0.0.114}/tests/rules/md007_test.rs +0 -0
  315. {rumdl-0.0.113 → rumdl-0.0.114}/tests/rules/md009_test.rs +0 -0
  316. {rumdl-0.0.113 → rumdl-0.0.114}/tests/rules/md011_test.rs +0 -0
  317. {rumdl-0.0.113 → rumdl-0.0.114}/tests/rules/md012_test.rs +0 -0
  318. {rumdl-0.0.113 → rumdl-0.0.114}/tests/rules/md013_test.rs +0 -0
  319. {rumdl-0.0.113 → rumdl-0.0.114}/tests/rules/md018_test.rs +0 -0
  320. {rumdl-0.0.113 → rumdl-0.0.114}/tests/rules/md019_test.rs +0 -0
  321. {rumdl-0.0.113 → rumdl-0.0.114}/tests/rules/md020_test.rs +0 -0
  322. {rumdl-0.0.113 → rumdl-0.0.114}/tests/rules/md021_test.rs +0 -0
  323. {rumdl-0.0.113 → rumdl-0.0.114}/tests/rules/md022_test.rs +0 -0
  324. {rumdl-0.0.113 → rumdl-0.0.114}/tests/rules/md023_test.rs +0 -0
  325. {rumdl-0.0.113 → rumdl-0.0.114}/tests/rules/md024_test.rs +0 -0
  326. {rumdl-0.0.113 → rumdl-0.0.114}/tests/rules/md025_test.rs +0 -0
  327. {rumdl-0.0.113 → rumdl-0.0.114}/tests/rules/md026_kramdown_test.rs +0 -0
  328. {rumdl-0.0.113 → rumdl-0.0.114}/tests/rules/md026_test.rs +0 -0
  329. {rumdl-0.0.113 → rumdl-0.0.114}/tests/rules/md027_test.rs +0 -0
  330. {rumdl-0.0.113 → rumdl-0.0.114}/tests/rules/md028_test.rs +0 -0
  331. {rumdl-0.0.113 → rumdl-0.0.114}/tests/rules/md029_test.rs +0 -0
  332. {rumdl-0.0.113 → rumdl-0.0.114}/tests/rules/md029_unicode_test.rs +0 -0
  333. {rumdl-0.0.113 → rumdl-0.0.114}/tests/rules/md030_test.rs +0 -0
  334. {rumdl-0.0.113 → rumdl-0.0.114}/tests/rules/md031_kramdown_test.rs +0 -0
  335. {rumdl-0.0.113 → rumdl-0.0.114}/tests/rules/md031_test.rs +0 -0
  336. {rumdl-0.0.113 → rumdl-0.0.114}/tests/rules/md032_test.rs +0 -0
  337. {rumdl-0.0.113 → rumdl-0.0.114}/tests/rules/md033_extended_test.rs +0 -0
  338. {rumdl-0.0.113 → rumdl-0.0.114}/tests/rules/md033_kramdown_test.rs +0 -0
  339. {rumdl-0.0.113 → rumdl-0.0.114}/tests/rules/md033_test.rs +0 -0
  340. {rumdl-0.0.113 → rumdl-0.0.114}/tests/rules/md034_ipv6_test.rs +0 -0
  341. {rumdl-0.0.113 → rumdl-0.0.114}/tests/rules/md034_test.rs +0 -0
  342. {rumdl-0.0.113 → rumdl-0.0.114}/tests/rules/md035_test.rs +0 -0
  343. {rumdl-0.0.113 → rumdl-0.0.114}/tests/rules/md036_test.rs +0 -0
  344. {rumdl-0.0.113 → rumdl-0.0.114}/tests/rules/md037_kramdown_test.rs +0 -0
  345. {rumdl-0.0.113 → rumdl-0.0.114}/tests/rules/md037_test.rs +0 -0
  346. {rumdl-0.0.113 → rumdl-0.0.114}/tests/rules/md038_nested_backticks_test.rs +0 -0
  347. {rumdl-0.0.113 → rumdl-0.0.114}/tests/rules/md038_test.rs +0 -0
  348. {rumdl-0.0.113 → rumdl-0.0.114}/tests/rules/md039_test.rs +0 -0
  349. {rumdl-0.0.113 → rumdl-0.0.114}/tests/rules/md040_test.rs +0 -0
  350. {rumdl-0.0.113 → rumdl-0.0.114}/tests/rules/md041_test.rs +0 -0
  351. {rumdl-0.0.113 → rumdl-0.0.114}/tests/rules/md042_test.rs +0 -0
  352. {rumdl-0.0.113 → rumdl-0.0.114}/tests/rules/md043_test.rs +0 -0
  353. {rumdl-0.0.113 → rumdl-0.0.114}/tests/rules/md044_test.rs +0 -0
  354. {rumdl-0.0.113 → rumdl-0.0.114}/tests/rules/md045_test.rs +0 -0
  355. {rumdl-0.0.113 → rumdl-0.0.114}/tests/rules/md046_test.rs +0 -0
  356. {rumdl-0.0.113 → rumdl-0.0.114}/tests/rules/md047_test.rs +0 -0
  357. {rumdl-0.0.113 → rumdl-0.0.114}/tests/rules/md048_test.rs +0 -0
  358. {rumdl-0.0.113 → rumdl-0.0.114}/tests/rules/md049_test.rs +0 -0
  359. {rumdl-0.0.113 → rumdl-0.0.114}/tests/rules/md050_test.rs +0 -0
  360. {rumdl-0.0.113 → rumdl-0.0.114}/tests/rules/md051_unicode_test.rs +0 -0
  361. {rumdl-0.0.113 → rumdl-0.0.114}/tests/rules/md052_test.rs +0 -0
  362. {rumdl-0.0.113 → rumdl-0.0.114}/tests/rules/md053_additional_test.rs +0 -0
  363. {rumdl-0.0.113 → rumdl-0.0.114}/tests/rules/md053_test.rs +0 -0
  364. {rumdl-0.0.113 → rumdl-0.0.114}/tests/rules/md054_test.rs +0 -0
  365. {rumdl-0.0.113 → rumdl-0.0.114}/tests/rules/md055_test.rs +0 -0
  366. {rumdl-0.0.113 → rumdl-0.0.114}/tests/rules/md056_test.rs +0 -0
  367. {rumdl-0.0.113 → rumdl-0.0.114}/tests/rules/md057_test.rs +0 -0
  368. {rumdl-0.0.113 → rumdl-0.0.114}/tests/rules/md058_kramdown_test.rs +0 -0
  369. {rumdl-0.0.113 → rumdl-0.0.114}/tests/rules/md058_test.rs +0 -0
  370. {rumdl-0.0.113 → rumdl-0.0.114}/tests/rules/mod.rs +0 -0
  371. {rumdl-0.0.113 → rumdl-0.0.114}/tests/rules_mod_test.rs +0 -0
  372. {rumdl-0.0.113 → rumdl-0.0.114}/tests/thread_safety_tests.rs +0 -0
  373. {rumdl-0.0.113 → rumdl-0.0.114}/tests/utils/blockquote_utils_test.rs +0 -0
  374. {rumdl-0.0.113 → rumdl-0.0.114}/tests/utils/code_block_utils_test.rs +0 -0
  375. {rumdl-0.0.113 → rumdl-0.0.114}/tests/utils/core_utils_test.rs +0 -0
  376. {rumdl-0.0.113 → rumdl-0.0.114}/tests/utils/front_matter_utils_test.rs +0 -0
  377. {rumdl-0.0.113 → rumdl-0.0.114}/tests/utils/line_index_test.rs +0 -0
  378. {rumdl-0.0.113 → rumdl-0.0.114}/tests/utils/mod.rs +0 -0
  379. {rumdl-0.0.113 → rumdl-0.0.114}/tests/utils_tests.rs +0 -0
  380. {rumdl-0.0.113 → rumdl-0.0.114}/tests/vscode_test.rs +0 -0
  381. {rumdl-0.0.113 → rumdl-0.0.114}/tests/vscode_tests.rs +0 -0
  382. {rumdl-0.0.113 → rumdl-0.0.114}/tests/vscode_windows_comprehensive_test.rs +0 -0
  383. {rumdl-0.0.113 → rumdl-0.0.114}/tests/vscode_windows_test.rs +0 -0
@@ -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,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.114] - 2025-08-09
11
+
10
12
  ## [0.0.113] - 2025-08-09
11
13
 
12
14
  ## [0.0.112] - 2025-08-08
@@ -306,7 +308,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
306
308
 
307
309
  - Initial implementation of remaining rules for markdownlint parity
308
310
 
309
- [Unreleased]: https://github.com/rvben/rumdl/compare/v0.0.113...HEAD
311
+ [Unreleased]: https://github.com/rvben/rumdl/compare/v0.0.114...HEAD
312
+ [0.0.114]: https://github.com/rvben/rumdl/compare/v0.0.113...v0.0.114
310
313
  [0.0.113]: https://github.com/rvben/rumdl/compare/v0.0.112...v0.0.113
311
314
  [0.0.112]: https://github.com/rvben/rumdl/compare/v0.0.111...v0.0.112
312
315
  [0.0.110]: https://github.com/rvben/rumdl/compare/v0.0.109...v0.0.110
@@ -1493,7 +1493,7 @@ checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c"
1493
1493
 
1494
1494
  [[package]]
1495
1495
  name = "rumdl"
1496
- version = "0.0.113"
1496
+ version = "0.0.114"
1497
1497
  dependencies = [
1498
1498
  "anyhow",
1499
1499
  "assert_cmd",
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "rumdl"
3
- version = "0.0.113"
3
+ version = "0.0.114"
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__/
@@ -233,6 +233,11 @@ version-push:
233
233
  @git push origin $(LATEST_TAG)
234
234
  @echo "Release workflow triggered for $(LATEST_TAG)"
235
235
 
236
+ # Pre-release validation
237
+ pre-release:
238
+ @echo "Running pre-release validation..."
239
+ @./scripts/pre-release.sh
240
+
236
241
  # Combined targets for one-step release
237
242
  release-major: version-major version-push
238
243
  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.114
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
@@ -16,13 +16,13 @@ def find_native_binary() -> str:
16
16
  target_binary = project_root / "target" / "release" / "rumdl"
17
17
  if target_binary.exists() and not target_binary.is_dir():
18
18
  return str(target_binary)
19
-
19
+
20
20
  # For Windows, check for .exe extension
21
21
  if sys.platform == "win32":
22
22
  target_binary = project_root / "target" / "release" / "rumdl.exe"
23
23
  if target_binary.exists() and not target_binary.is_dir():
24
24
  return str(target_binary)
25
-
25
+
26
26
  # If we can't find the binary, raise an error
27
27
  raise FileNotFoundError(
28
28
  "Could not find the native rumdl binary. "
@@ -34,10 +34,10 @@ def main() -> int:
34
34
  try:
35
35
  # Find the native binary
36
36
  native_binary = find_native_binary()
37
-
37
+
38
38
  # Simply forward all arguments to the Rust binary
39
39
  args = [native_binary] + sys.argv[1:]
40
-
40
+
41
41
  # Run the binary
42
42
  if sys.platform == "win32":
43
43
  completed_process = subprocess.run(args)
@@ -54,4 +54,4 @@ def main() -> int:
54
54
  return 1
55
55
 
56
56
  if __name__ == "__main__":
57
- sys.exit(main())
57
+ sys.exit(main())
File without changes
@@ -17,7 +17,7 @@ exclude = [
17
17
  "vendor",
18
18
  "dist",
19
19
  "build",
20
-
20
+
21
21
  # Specific files or patterns
22
22
  "CHANGELOG.md",
23
23
  "LICENSE.md",
@@ -49,4 +49,4 @@ headings = true # Exclude headings from line length check
49
49
 
50
50
  [MD044]
51
51
  names = ["rumdl", "Markdown", "GitHub"] # Proper names that should be capitalized correctly
52
- code_blocks_excluded = true # Exclude code blocks from proper name check
52
+ code_blocks_excluded = true # Exclude code blocks from proper name check
@@ -14,4 +14,4 @@ awk -v version="$VERSION" '
14
14
  /^## \['"$VERSION"'\]/ { found = 1; next }
15
15
  found && /^## \[/ { exit }
16
16
  found { print }
17
- ' CHANGELOG.md
17
+ ' CHANGELOG.md
@@ -20,27 +20,27 @@ EOF
20
20
  generate_row() {
21
21
  local target="$1"
22
22
  local platform="$2"
23
-
23
+
24
24
  # Determine file extension based on platform
25
25
  if [[ "$target" == *"windows"* ]]; then
26
26
  ext="zip"
27
27
  else
28
28
  ext="tar.gz"
29
29
  fi
30
-
30
+
31
31
  filename="rumdl-${VERSION}-${target}.${ext}"
32
32
  checksum_file="${filename}.sha256"
33
-
33
+
34
34
  # Generate download URLs
35
35
  download_url="https://github.com/rvben/rumdl/releases/download/${VERSION}/${filename}"
36
36
  checksum_url="https://github.com/rvben/rumdl/releases/download/${VERSION}/${checksum_file}"
37
-
37
+
38
38
  # Output table row
39
39
  echo "| [${filename}](${download_url}) | ${platform} | [checksum](${checksum_url}) |"
40
40
  }
41
41
 
42
42
  # Generate rows for each platform
43
- generate_row "x86_64-unknown-linux-gnu" "Linux x86_64"
43
+ generate_row "x86_64-unknown-linux-gnu" "Linux x86_64"
44
44
  generate_row "x86_64-unknown-linux-musl" "Linux x86_64 (musl)"
45
45
  generate_row "aarch64-unknown-linux-gnu" "Linux ARM64"
46
46
  generate_row "aarch64-unknown-linux-musl" "Linux ARM64 (musl)"
@@ -67,4 +67,4 @@ echo 'pipx install rumdl'
67
67
  echo '```'
68
68
  echo ""
69
69
  echo "### Direct Download"
70
- echo "Download the appropriate binary for your platform from the table above, extract it, and add it to your PATH."
70
+ echo "Download the appropriate binary for your platform from the table above, extract it, and add it to your PATH."