rumdl 0.0.91__tar.gz → 0.0.93__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 (348) hide show
  1. {rumdl-0.0.91 → rumdl-0.0.93}/CHANGELOG.md +26 -2
  2. {rumdl-0.0.91 → rumdl-0.0.93}/Cargo.lock +16 -3
  3. {rumdl-0.0.91 → rumdl-0.0.93}/Cargo.toml +1 -1
  4. {rumdl-0.0.91 → rumdl-0.0.93}/PKG-INFO +60 -43
  5. {rumdl-0.0.91 → rumdl-0.0.93}/README.md +59 -42
  6. {rumdl-0.0.91 → rumdl-0.0.93}/docs/global-settings.md +2 -1
  7. {rumdl-0.0.91 → rumdl-0.0.93}/docs/md003.md +29 -1
  8. {rumdl-0.0.91 → rumdl-0.0.93}/docs/md004.md +15 -1
  9. {rumdl-0.0.91 → rumdl-0.0.93}/docs/md007.md +29 -1
  10. {rumdl-0.0.91 → rumdl-0.0.93}/docs/md010.md +38 -2
  11. {rumdl-0.0.91 → rumdl-0.0.93}/docs/md013.md +47 -4
  12. {rumdl-0.0.91 → rumdl-0.0.93}/docs/md018.md +7 -0
  13. {rumdl-0.0.91 → rumdl-0.0.93}/docs/md040.md +2 -2
  14. {rumdl-0.0.91 → rumdl-0.0.93}/docs/md041.md +11 -0
  15. {rumdl-0.0.91 → rumdl-0.0.93}/docs/md045.md +25 -5
  16. {rumdl-0.0.91 → rumdl-0.0.93}/docs/md046.md +4 -0
  17. {rumdl-0.0.91 → rumdl-0.0.93}/docs/md048.md +2 -2
  18. {rumdl-0.0.91 → rumdl-0.0.93}/docs/vscode-extension.md +13 -7
  19. {rumdl-0.0.91 → rumdl-0.0.93}/src/config.rs +20 -6
  20. {rumdl-0.0.91 → rumdl-0.0.93}/src/lsp/server.rs +135 -5
  21. {rumdl-0.0.91 → rumdl-0.0.93}/src/main.rs +151 -0
  22. {rumdl-0.0.91 → rumdl-0.0.93}/src/performance.rs +108 -1
  23. {rumdl-0.0.91 → rumdl-0.0.93}/src/rules/heading_utils.rs +48 -0
  24. {rumdl-0.0.91 → rumdl-0.0.93}/src/rules/md001_heading_increment.rs +18 -14
  25. {rumdl-0.0.91 → rumdl-0.0.93}/src/rules/md003_heading_style.rs +75 -16
  26. {rumdl-0.0.91 → rumdl-0.0.93}/src/rules/md004_unordered_list_style/md004_config.rs +2 -0
  27. {rumdl-0.0.91 → rumdl-0.0.93}/src/rules/md004_unordered_list_style.rs +76 -0
  28. {rumdl-0.0.91 → rumdl-0.0.93}/src/rules/md005_list_indent.rs +11 -12
  29. {rumdl-0.0.91 → rumdl-0.0.93}/src/rules/md007_ul_indent/md007_config.rs +14 -0
  30. {rumdl-0.0.91 → rumdl-0.0.93}/src/rules/md007_ul_indent.rs +82 -7
  31. {rumdl-0.0.91 → rumdl-0.0.93}/src/rules/md009_trailing_spaces/md009_config.rs +5 -0
  32. {rumdl-0.0.91 → rumdl-0.0.93}/src/rules/md009_trailing_spaces.rs +81 -1
  33. {rumdl-0.0.91 → rumdl-0.0.93}/src/rules/md010_no_hard_tabs/md010_config.rs +5 -0
  34. {rumdl-0.0.91 → rumdl-0.0.93}/src/rules/md010_no_hard_tabs.rs +120 -0
  35. {rumdl-0.0.91 → rumdl-0.0.93}/src/rules/md011_no_reversed_links.rs +128 -12
  36. {rumdl-0.0.91 → rumdl-0.0.93}/src/rules/md012_no_multiple_blanks.rs +125 -205
  37. {rumdl-0.0.91 → rumdl-0.0.93}/src/rules/md013_line_length/md013_config.rs +15 -0
  38. {rumdl-0.0.91 → rumdl-0.0.93}/src/rules/md013_line_length.rs +37 -12
  39. {rumdl-0.0.91 → rumdl-0.0.93}/src/rules/md014_commands_show_output.rs +5 -0
  40. {rumdl-0.0.91 → rumdl-0.0.93}/src/rules/md018_no_missing_space_atx.rs +47 -2
  41. {rumdl-0.0.91 → rumdl-0.0.93}/src/rules/md025_single_title.rs +4 -2
  42. {rumdl-0.0.91 → rumdl-0.0.93}/src/rules/md027_multiple_spaces_blockquote.rs +5 -0
  43. {rumdl-0.0.91 → rumdl-0.0.93}/src/rules/md031_blanks_around_fences.rs +68 -2
  44. {rumdl-0.0.91 → rumdl-0.0.93}/src/rules/md032_blanks_around_lists.rs +1 -1
  45. {rumdl-0.0.91 → rumdl-0.0.93}/src/rules/md033_no_inline_html.rs +20 -20
  46. {rumdl-0.0.91 → rumdl-0.0.93}/src/rules/md034_no_bare_urls.rs +50 -10
  47. {rumdl-0.0.91 → rumdl-0.0.93}/src/rules/md035_hr_style.rs +5 -0
  48. {rumdl-0.0.91 → rumdl-0.0.93}/src/rules/md036_no_emphasis_only_first.rs +68 -24
  49. {rumdl-0.0.91 → rumdl-0.0.93}/src/rules/md038_no_space_in_code.rs +90 -1
  50. {rumdl-0.0.91 → rumdl-0.0.93}/src/rules/md041_first_line_heading.rs +97 -4
  51. {rumdl-0.0.91 → rumdl-0.0.93}/src/rules/md044_proper_names/md044_config.rs +8 -0
  52. {rumdl-0.0.91 → rumdl-0.0.93}/src/rules/md044_proper_names.rs +122 -6
  53. rumdl-0.0.93/src/rules/md045_no_alt_text/md045_config.rs +24 -0
  54. {rumdl-0.0.91 → rumdl-0.0.93}/src/rules/md045_no_alt_text.rs +55 -6
  55. {rumdl-0.0.91 → rumdl-0.0.93}/src/rules/md049_emphasis_style.rs +5 -0
  56. {rumdl-0.0.91 → rumdl-0.0.93}/src/rules/md050_strong_style.rs +5 -0
  57. {rumdl-0.0.91 → rumdl-0.0.93}/src/rules/md051_link_fragments.rs +14 -2
  58. {rumdl-0.0.91 → rumdl-0.0.93}/src/rules/mod.rs +1 -1
  59. {rumdl-0.0.91 → rumdl-0.0.93}/tests/advanced_integration_tests.rs +120 -10
  60. {rumdl-0.0.91 → rumdl-0.0.93}/tests/character_ranges/mod.rs +1 -1
  61. {rumdl-0.0.91 → rumdl-0.0.93}/tests/commonmark_compliance_tests.rs +12 -6
  62. {rumdl-0.0.91 → rumdl-0.0.93}/tests/comprehensive_integration_tests.rs +72 -20
  63. rumdl-0.0.93/tests/nested_code_block_test.rs +144 -0
  64. {rumdl-0.0.91 → rumdl-0.0.93}/tests/output_format_tests.rs +3 -2
  65. {rumdl-0.0.91 → rumdl-0.0.93}/tests/rules/md001_test.rs +1 -1
  66. {rumdl-0.0.91 → rumdl-0.0.93}/tests/rules/md001_unicode_test.rs +1 -1
  67. {rumdl-0.0.91 → rumdl-0.0.93}/tests/rules/md007_test.rs +2 -2
  68. {rumdl-0.0.91 → rumdl-0.0.93}/tests/rules/md013_test.rs +114 -0
  69. {rumdl-0.0.91 → rumdl-0.0.93}/tests/rules/md018_test.rs +37 -0
  70. rumdl-0.0.93/tests/rules/md034_ipv6_test.rs +180 -0
  71. {rumdl-0.0.91 → rumdl-0.0.93}/tests/rules/md036_test.rs +160 -15
  72. rumdl-0.0.93/tests/rules/md038_nested_backticks_test.rs +82 -0
  73. rumdl-0.0.93/tests/rules/md041_test.rs +157 -0
  74. rumdl-0.0.93/tests/rules/md051_unicode_test.rs +155 -0
  75. {rumdl-0.0.91 → rumdl-0.0.93}/tests/rules/mod.rs +3 -0
  76. rumdl-0.0.93/tests/rules_mod_test.rs +206 -0
  77. {rumdl-0.0.91 → rumdl-0.0.93}/tests/utils/core_utils_test.rs +46 -0
  78. {rumdl-0.0.91 → rumdl-0.0.93}/tests/vscode_extension_fixes.rs +1 -1
  79. rumdl-0.0.93/tests/vscode_tests.rs +241 -0
  80. rumdl-0.0.91/issues/plan-rule-parity-with-markdownlint.md +0 -69
  81. rumdl-0.0.91/tests/md030_edge_cases.md +0 -160
  82. rumdl-0.0.91/tests/rules/md041_test.rs +0 -68
  83. {rumdl-0.0.91 → rumdl-0.0.93}/.config/nextest.toml +0 -0
  84. {rumdl-0.0.91 → rumdl-0.0.93}/.mise.toml +0 -0
  85. {rumdl-0.0.91 → rumdl-0.0.93}/.rumdl.toml +0 -0
  86. {rumdl-0.0.91 → rumdl-0.0.93}/.rustfmt.toml +0 -0
  87. {rumdl-0.0.91 → rumdl-0.0.93}/LICENSE +0 -0
  88. {rumdl-0.0.91 → rumdl-0.0.93}/MANIFEST.in +0 -0
  89. {rumdl-0.0.91 → rumdl-0.0.93}/Makefile +0 -0
  90. {rumdl-0.0.91 → rumdl-0.0.93}/assets/logo.png +0 -0
  91. {rumdl-0.0.91 → rumdl-0.0.93}/benches/fix_performance.rs +0 -0
  92. {rumdl-0.0.91 → rumdl-0.0.93}/benches/range_performance.rs +0 -0
  93. {rumdl-0.0.91 → rumdl-0.0.93}/benches/range_utils_benchmark.rs +0 -0
  94. {rumdl-0.0.91 → rumdl-0.0.93}/benches/rule_performance.rs +0 -0
  95. {rumdl-0.0.91 → rumdl-0.0.93}/benches/simple_fix_bench.rs +0 -0
  96. {rumdl-0.0.91 → rumdl-0.0.93}/docs/RULES.md +0 -0
  97. {rumdl-0.0.91 → rumdl-0.0.93}/docs/md001.md +0 -0
  98. {rumdl-0.0.91 → rumdl-0.0.93}/docs/md002.md +0 -0
  99. {rumdl-0.0.91 → rumdl-0.0.93}/docs/md005.md +0 -0
  100. {rumdl-0.0.91 → rumdl-0.0.93}/docs/md006.md +0 -0
  101. {rumdl-0.0.91 → rumdl-0.0.93}/docs/md009.md +0 -0
  102. {rumdl-0.0.91 → rumdl-0.0.93}/docs/md011.md +0 -0
  103. {rumdl-0.0.91 → rumdl-0.0.93}/docs/md012.md +0 -0
  104. {rumdl-0.0.91 → rumdl-0.0.93}/docs/md014.md +0 -0
  105. {rumdl-0.0.91 → rumdl-0.0.93}/docs/md019.md +0 -0
  106. {rumdl-0.0.91 → rumdl-0.0.93}/docs/md020.md +0 -0
  107. {rumdl-0.0.91 → rumdl-0.0.93}/docs/md021.md +0 -0
  108. {rumdl-0.0.91 → rumdl-0.0.93}/docs/md022.md +0 -0
  109. {rumdl-0.0.91 → rumdl-0.0.93}/docs/md023.md +0 -0
  110. {rumdl-0.0.91 → rumdl-0.0.93}/docs/md024.md +0 -0
  111. {rumdl-0.0.91 → rumdl-0.0.93}/docs/md025.md +0 -0
  112. {rumdl-0.0.91 → rumdl-0.0.93}/docs/md026.md +0 -0
  113. {rumdl-0.0.91 → rumdl-0.0.93}/docs/md027.md +0 -0
  114. {rumdl-0.0.91 → rumdl-0.0.93}/docs/md028.md +0 -0
  115. {rumdl-0.0.91 → rumdl-0.0.93}/docs/md029.md +0 -0
  116. {rumdl-0.0.91 → rumdl-0.0.93}/docs/md030.md +0 -0
  117. {rumdl-0.0.91 → rumdl-0.0.93}/docs/md031.md +0 -0
  118. {rumdl-0.0.91 → rumdl-0.0.93}/docs/md032.md +0 -0
  119. {rumdl-0.0.91 → rumdl-0.0.93}/docs/md033.md +0 -0
  120. {rumdl-0.0.91 → rumdl-0.0.93}/docs/md034.md +0 -0
  121. {rumdl-0.0.91 → rumdl-0.0.93}/docs/md035.md +0 -0
  122. {rumdl-0.0.91 → rumdl-0.0.93}/docs/md036.md +0 -0
  123. {rumdl-0.0.91 → rumdl-0.0.93}/docs/md037.md +0 -0
  124. {rumdl-0.0.91 → rumdl-0.0.93}/docs/md038.md +0 -0
  125. {rumdl-0.0.91 → rumdl-0.0.93}/docs/md039.md +0 -0
  126. {rumdl-0.0.91 → rumdl-0.0.93}/docs/md042.md +0 -0
  127. {rumdl-0.0.91 → rumdl-0.0.93}/docs/md043.md +0 -0
  128. {rumdl-0.0.91 → rumdl-0.0.93}/docs/md044.md +0 -0
  129. {rumdl-0.0.91 → rumdl-0.0.93}/docs/md047.md +0 -0
  130. {rumdl-0.0.91 → rumdl-0.0.93}/docs/md049.md +0 -0
  131. {rumdl-0.0.91 → rumdl-0.0.93}/docs/md050.md +0 -0
  132. {rumdl-0.0.91 → rumdl-0.0.93}/docs/md051.md +0 -0
  133. {rumdl-0.0.91 → rumdl-0.0.93}/docs/md052.md +0 -0
  134. {rumdl-0.0.91 → rumdl-0.0.93}/docs/md053.md +0 -0
  135. {rumdl-0.0.91 → rumdl-0.0.93}/docs/md054.md +0 -0
  136. {rumdl-0.0.91 → rumdl-0.0.93}/docs/md055.md +0 -0
  137. {rumdl-0.0.91 → rumdl-0.0.93}/docs/md056.md +0 -0
  138. {rumdl-0.0.91 → rumdl-0.0.93}/docs/md057.md +0 -0
  139. {rumdl-0.0.91 → rumdl-0.0.93}/docs/md058.md +0 -0
  140. {rumdl-0.0.91 → rumdl-0.0.93}/parity_check.py +0 -0
  141. {rumdl-0.0.91 → rumdl-0.0.93}/pyproject.toml +0 -0
  142. {rumdl-0.0.91 → rumdl-0.0.93}/python/MANIFEST.in +0 -0
  143. {rumdl-0.0.91 → rumdl-0.0.93}/python/PYTHON-README.md +0 -0
  144. {rumdl-0.0.91 → rumdl-0.0.93}/python/rumdl/__init__.py +0 -0
  145. {rumdl-0.0.91 → rumdl-0.0.93}/python/rumdl/__main__.py +0 -0
  146. {rumdl-0.0.91 → rumdl-0.0.93}/python/rumdl/py.typed +0 -0
  147. {rumdl-0.0.91 → rumdl-0.0.93}/rumdl.toml.example +0 -0
  148. {rumdl-0.0.91 → rumdl-0.0.93}/rust-toolchain.toml +0 -0
  149. {rumdl-0.0.91 → rumdl-0.0.93}/scripts/extract-changelog.sh +0 -0
  150. {rumdl-0.0.91 → rumdl-0.0.93}/scripts/prepare-release.sh +0 -0
  151. {rumdl-0.0.91 → rumdl-0.0.93}/src/bin/benchmark.rs +0 -0
  152. {rumdl-0.0.91 → rumdl-0.0.93}/src/bin/file_parallel_benchmark.rs +0 -0
  153. {rumdl-0.0.91 → rumdl-0.0.93}/src/bin/measure_code_span_performance.rs +0 -0
  154. {rumdl-0.0.91 → rumdl-0.0.93}/src/init.rs +0 -0
  155. {rumdl-0.0.91 → rumdl-0.0.93}/src/inline_config.rs +0 -0
  156. {rumdl-0.0.91 → rumdl-0.0.93}/src/lib.rs +0 -0
  157. {rumdl-0.0.91 → rumdl-0.0.93}/src/lint_context.rs +0 -0
  158. {rumdl-0.0.91 → rumdl-0.0.93}/src/lsp/mod.rs +0 -0
  159. {rumdl-0.0.91 → rumdl-0.0.93}/src/lsp/types.rs +0 -0
  160. {rumdl-0.0.91 → rumdl-0.0.93}/src/markdownlint_config.rs +0 -0
  161. {rumdl-0.0.91 → rumdl-0.0.93}/src/output/formatters/azure.rs +0 -0
  162. {rumdl-0.0.91 → rumdl-0.0.93}/src/output/formatters/concise.rs +0 -0
  163. {rumdl-0.0.91 → rumdl-0.0.93}/src/output/formatters/github.rs +0 -0
  164. {rumdl-0.0.91 → rumdl-0.0.93}/src/output/formatters/gitlab.rs +0 -0
  165. {rumdl-0.0.91 → rumdl-0.0.93}/src/output/formatters/grouped.rs +0 -0
  166. {rumdl-0.0.91 → rumdl-0.0.93}/src/output/formatters/json.rs +0 -0
  167. {rumdl-0.0.91 → rumdl-0.0.93}/src/output/formatters/json_lines.rs +0 -0
  168. {rumdl-0.0.91 → rumdl-0.0.93}/src/output/formatters/junit.rs +0 -0
  169. {rumdl-0.0.91 → rumdl-0.0.93}/src/output/formatters/mod.rs +0 -0
  170. {rumdl-0.0.91 → rumdl-0.0.93}/src/output/formatters/pylint.rs +0 -0
  171. {rumdl-0.0.91 → rumdl-0.0.93}/src/output/formatters/sarif.rs +0 -0
  172. {rumdl-0.0.91 → rumdl-0.0.93}/src/output/formatters/text.rs +0 -0
  173. {rumdl-0.0.91 → rumdl-0.0.93}/src/output/mod.rs +0 -0
  174. {rumdl-0.0.91 → rumdl-0.0.93}/src/parallel.rs +0 -0
  175. {rumdl-0.0.91 → rumdl-0.0.93}/src/profiling.rs +0 -0
  176. {rumdl-0.0.91 → rumdl-0.0.93}/src/python.rs +0 -0
  177. {rumdl-0.0.91 → rumdl-0.0.93}/src/rule.rs +0 -0
  178. {rumdl-0.0.91 → rumdl-0.0.93}/src/rule_config.rs +0 -0
  179. {rumdl-0.0.91 → rumdl-0.0.93}/src/rule_config_serde.rs +0 -0
  180. {rumdl-0.0.91 → rumdl-0.0.93}/src/rules/blockquote_utils.rs +0 -0
  181. {rumdl-0.0.91 → rumdl-0.0.93}/src/rules/code_block_utils.rs +0 -0
  182. {rumdl-0.0.91 → rumdl-0.0.93}/src/rules/code_fence_utils.rs +0 -0
  183. {rumdl-0.0.91 → rumdl-0.0.93}/src/rules/emphasis_style.rs +0 -0
  184. {rumdl-0.0.91 → rumdl-0.0.93}/src/rules/front_matter_utils.rs +0 -0
  185. {rumdl-0.0.91 → rumdl-0.0.93}/src/rules/list_utils.rs +0 -0
  186. {rumdl-0.0.91 → rumdl-0.0.93}/src/rules/md002_first_heading_h1/md002_config.rs +0 -0
  187. {rumdl-0.0.91 → rumdl-0.0.93}/src/rules/md002_first_heading_h1.rs +0 -0
  188. {rumdl-0.0.91 → rumdl-0.0.93}/src/rules/md003_heading_style/md003_config.rs +0 -0
  189. {rumdl-0.0.91 → rumdl-0.0.93}/src/rules/md006_start_bullets.rs +0 -0
  190. {rumdl-0.0.91 → rumdl-0.0.93}/src/rules/md012_no_multiple_blanks/md012_config.rs +0 -0
  191. {rumdl-0.0.91 → rumdl-0.0.93}/src/rules/md014_commands_show_output/md014_config.rs +0 -0
  192. {rumdl-0.0.91 → rumdl-0.0.93}/src/rules/md019_no_multiple_space_atx.rs +0 -0
  193. {rumdl-0.0.91 → rumdl-0.0.93}/src/rules/md020_no_missing_space_closed_atx.rs +0 -0
  194. {rumdl-0.0.91 → rumdl-0.0.93}/src/rules/md021_no_multiple_space_closed_atx.rs +0 -0
  195. {rumdl-0.0.91 → rumdl-0.0.93}/src/rules/md022_blanks_around_headings/md022_config.rs +0 -0
  196. {rumdl-0.0.91 → rumdl-0.0.93}/src/rules/md022_blanks_around_headings.rs +0 -0
  197. {rumdl-0.0.91 → rumdl-0.0.93}/src/rules/md023_heading_start_left.rs +0 -0
  198. {rumdl-0.0.91 → rumdl-0.0.93}/src/rules/md024_no_duplicate_heading/md024_config.rs +0 -0
  199. {rumdl-0.0.91 → rumdl-0.0.93}/src/rules/md024_no_duplicate_heading.rs +0 -0
  200. {rumdl-0.0.91 → rumdl-0.0.93}/src/rules/md025_single_title/md025_config.rs +0 -0
  201. {rumdl-0.0.91 → rumdl-0.0.93}/src/rules/md026_no_trailing_punctuation/md026_config.rs +0 -0
  202. {rumdl-0.0.91 → rumdl-0.0.93}/src/rules/md026_no_trailing_punctuation.rs +0 -0
  203. {rumdl-0.0.91 → rumdl-0.0.93}/src/rules/md028_no_blanks_blockquote.rs +0 -0
  204. {rumdl-0.0.91 → rumdl-0.0.93}/src/rules/md029_ordered_list_prefix.rs +0 -0
  205. {rumdl-0.0.91 → rumdl-0.0.93}/src/rules/md030_list_marker_space/md030_config.rs +0 -0
  206. {rumdl-0.0.91 → rumdl-0.0.93}/src/rules/md030_list_marker_space.rs +0 -0
  207. {rumdl-0.0.91 → rumdl-0.0.93}/src/rules/md033_no_inline_html/md033_config.rs +0 -0
  208. {rumdl-0.0.91 → rumdl-0.0.93}/src/rules/md035_hr_style/md035_config.rs +0 -0
  209. {rumdl-0.0.91 → rumdl-0.0.93}/src/rules/md036_no_emphasis_only_first/md036_config.rs +0 -0
  210. {rumdl-0.0.91 → rumdl-0.0.93}/src/rules/md037_spaces_around_emphasis.rs +0 -0
  211. {rumdl-0.0.91 → rumdl-0.0.93}/src/rules/md039_no_space_in_links.rs +0 -0
  212. {rumdl-0.0.91 → rumdl-0.0.93}/src/rules/md040_fenced_code_language.rs +0 -0
  213. {rumdl-0.0.91 → rumdl-0.0.93}/src/rules/md042_no_empty_links.rs +0 -0
  214. {rumdl-0.0.91 → rumdl-0.0.93}/src/rules/md043_required_headings.rs +0 -0
  215. {rumdl-0.0.91 → rumdl-0.0.93}/src/rules/md046_code_block_style/md046_config.rs +0 -0
  216. {rumdl-0.0.91 → rumdl-0.0.93}/src/rules/md046_code_block_style.rs +0 -0
  217. {rumdl-0.0.91 → rumdl-0.0.93}/src/rules/md047_single_trailing_newline.rs +0 -0
  218. {rumdl-0.0.91 → rumdl-0.0.93}/src/rules/md048_code_fence_style/md048_config.rs +0 -0
  219. {rumdl-0.0.91 → rumdl-0.0.93}/src/rules/md048_code_fence_style.rs +0 -0
  220. {rumdl-0.0.91 → rumdl-0.0.93}/src/rules/md049_emphasis_style/md049_config.rs +0 -0
  221. {rumdl-0.0.91 → rumdl-0.0.93}/src/rules/md050_strong_style/md050_config.rs +0 -0
  222. {rumdl-0.0.91 → rumdl-0.0.93}/src/rules/md052_reference_links_images.rs +0 -0
  223. {rumdl-0.0.91 → rumdl-0.0.93}/src/rules/md053_link_image_reference_definitions.rs +0 -0
  224. {rumdl-0.0.91 → rumdl-0.0.93}/src/rules/md054_link_image_style/md054_config.rs +0 -0
  225. {rumdl-0.0.91 → rumdl-0.0.93}/src/rules/md054_link_image_style.rs +0 -0
  226. {rumdl-0.0.91 → rumdl-0.0.93}/src/rules/md055_table_pipe_style/md055_config.rs +0 -0
  227. {rumdl-0.0.91 → rumdl-0.0.93}/src/rules/md055_table_pipe_style.rs +0 -0
  228. {rumdl-0.0.91 → rumdl-0.0.93}/src/rules/md056_table_column_count.rs +0 -0
  229. {rumdl-0.0.91 → rumdl-0.0.93}/src/rules/md057_existing_relative_links/md057_config.rs +0 -0
  230. {rumdl-0.0.91 → rumdl-0.0.93}/src/rules/md057_existing_relative_links.rs +0 -0
  231. {rumdl-0.0.91 → rumdl-0.0.93}/src/rules/md058_blanks_around_tables.rs +0 -0
  232. {rumdl-0.0.91 → rumdl-0.0.93}/src/rules/strong_style.rs +0 -0
  233. {rumdl-0.0.91 → rumdl-0.0.93}/src/utils/ast_utils.rs +0 -0
  234. {rumdl-0.0.91 → rumdl-0.0.93}/src/utils/code_block_utils.rs +0 -0
  235. {rumdl-0.0.91 → rumdl-0.0.93}/src/utils/document_structure.rs +0 -0
  236. {rumdl-0.0.91 → rumdl-0.0.93}/src/utils/early_returns.rs +0 -0
  237. {rumdl-0.0.91 → rumdl-0.0.93}/src/utils/element_cache.rs +0 -0
  238. {rumdl-0.0.91 → rumdl-0.0.93}/src/utils/emphasis_utils.rs +0 -0
  239. {rumdl-0.0.91 → rumdl-0.0.93}/src/utils/fix_utils.rs +0 -0
  240. {rumdl-0.0.91 → rumdl-0.0.93}/src/utils/markdown_elements.rs +0 -0
  241. {rumdl-0.0.91 → rumdl-0.0.93}/src/utils/mod.rs +0 -0
  242. {rumdl-0.0.91 → rumdl-0.0.93}/src/utils/range_utils.rs +0 -0
  243. {rumdl-0.0.91 → rumdl-0.0.93}/src/utils/regex_cache.rs +0 -0
  244. {rumdl-0.0.91 → rumdl-0.0.93}/src/utils/string_interner.rs +0 -0
  245. {rumdl-0.0.91 → rumdl-0.0.93}/src/utils/table_utils.rs +0 -0
  246. {rumdl-0.0.91 → rumdl-0.0.93}/src/vscode.rs +0 -0
  247. {rumdl-0.0.91 → rumdl-0.0.93}/tests/character_ranges/additional_tests.rs +0 -0
  248. {rumdl-0.0.91 → rumdl-0.0.93}/tests/character_ranges/basic_tests.rs +0 -0
  249. {rumdl-0.0.91 → rumdl-0.0.93}/tests/character_ranges/comprehensive_tests.rs +0 -0
  250. {rumdl-0.0.91 → rumdl-0.0.93}/tests/character_ranges/extended_tests.rs +0 -0
  251. {rumdl-0.0.91 → rumdl-0.0.93}/tests/character_ranges/unicode_utils.rs +0 -0
  252. {rumdl-0.0.91 → rumdl-0.0.93}/tests/cli_duplication_test.rs +0 -0
  253. {rumdl-0.0.91 → rumdl-0.0.93}/tests/cli_integration_tests.rs +0 -0
  254. {rumdl-0.0.91 → rumdl-0.0.93}/tests/cli_lsp_fix_consistency.rs +0 -0
  255. {rumdl-0.0.91 → rumdl-0.0.93}/tests/cli_statistics_test.rs +0 -0
  256. {rumdl-0.0.91 → rumdl-0.0.93}/tests/comprehensive_output_format_tests.rs +0 -0
  257. {rumdl-0.0.91 → rumdl-0.0.93}/tests/config_application_tests.rs +0 -0
  258. {rumdl-0.0.91 → rumdl-0.0.93}/tests/config_file_command_test.rs +0 -0
  259. {rumdl-0.0.91 → rumdl-0.0.93}/tests/config_tests.rs +0 -0
  260. {rumdl-0.0.91 → rumdl-0.0.93}/tests/configuration_inheritance_tests.rs +0 -0
  261. {rumdl-0.0.91 → rumdl-0.0.93}/tests/consistency_regression_tests.rs +0 -0
  262. {rumdl-0.0.91 → rumdl-0.0.93}/tests/cross_platform_compatibility_tests.rs +0 -0
  263. {rumdl-0.0.91 → rumdl-0.0.93}/tests/final_confidence_assessment.rs +0 -0
  264. {rumdl-0.0.91 → rumdl-0.0.93}/tests/init_command_test.rs +0 -0
  265. {rumdl-0.0.91 → rumdl-0.0.93}/tests/init_tests.rs +0 -0
  266. {rumdl-0.0.91 → rumdl-0.0.93}/tests/inline_config_test.rs +0 -0
  267. {rumdl-0.0.91 → rumdl-0.0.93}/tests/integration_tests.rs +0 -0
  268. {rumdl-0.0.91 → rumdl-0.0.93}/tests/json_output_test.rs +0 -0
  269. {rumdl-0.0.91 → rumdl-0.0.93}/tests/lib.rs +0 -0
  270. {rumdl-0.0.91 → rumdl-0.0.93}/tests/lsp_editor_integration_tests.rs +0 -0
  271. {rumdl-0.0.91 → rumdl-0.0.93}/tests/lsp_integration_tests.rs +0 -0
  272. {rumdl-0.0.91 → rumdl-0.0.93}/tests/lsp_memory_leak_tests.rs +0 -0
  273. {rumdl-0.0.91 → rumdl-0.0.93}/tests/lsp_tests.rs +0 -0
  274. {rumdl-0.0.91 → rumdl-0.0.93}/tests/malformed_markdown_stress_tests.rs +0 -0
  275. {rumdl-0.0.91 → rumdl-0.0.93}/tests/markdownlint_cli_integration.rs +0 -0
  276. {rumdl-0.0.91 → rumdl-0.0.93}/tests/markdownlint_config_test.rs +0 -0
  277. {rumdl-0.0.91 → rumdl-0.0.93}/tests/markdownlintignore_test.rs +0 -0
  278. {rumdl-0.0.91 → rumdl-0.0.93}/tests/output_format_integration_tests.rs +0 -0
  279. {rumdl-0.0.91 → rumdl-0.0.93}/tests/perf_check.rs +0 -0
  280. {rumdl-0.0.91 → rumdl-0.0.93}/tests/performance_validation_tests.rs +0 -0
  281. {rumdl-0.0.91 → rumdl-0.0.93}/tests/pyproject_config_tests.rs +0 -0
  282. {rumdl-0.0.91 → rumdl-0.0.93}/tests/real_world_repository_tests.rs +0 -0
  283. {rumdl-0.0.91 → rumdl-0.0.93}/tests/regression_prevention_tests.rs +0 -0
  284. {rumdl-0.0.91 → rumdl-0.0.93}/tests/rules/md002_test.rs +0 -0
  285. {rumdl-0.0.91 → rumdl-0.0.93}/tests/rules/md003_test.rs +0 -0
  286. {rumdl-0.0.91 → rumdl-0.0.93}/tests/rules/md004_test.rs +0 -0
  287. {rumdl-0.0.91 → rumdl-0.0.93}/tests/rules/md005_test.rs +0 -0
  288. {rumdl-0.0.91 → rumdl-0.0.93}/tests/rules/md006_test.rs +0 -0
  289. {rumdl-0.0.91 → rumdl-0.0.93}/tests/rules/md006_unicode_test.rs +0 -0
  290. {rumdl-0.0.91 → rumdl-0.0.93}/tests/rules/md009_test.rs +0 -0
  291. {rumdl-0.0.91 → rumdl-0.0.93}/tests/rules/md010_test.rs +0 -0
  292. {rumdl-0.0.91 → rumdl-0.0.93}/tests/rules/md011_test.rs +0 -0
  293. {rumdl-0.0.91 → rumdl-0.0.93}/tests/rules/md012_test.rs +0 -0
  294. {rumdl-0.0.91 → rumdl-0.0.93}/tests/rules/md014_test.rs +0 -0
  295. {rumdl-0.0.91 → rumdl-0.0.93}/tests/rules/md019_test.rs +0 -0
  296. {rumdl-0.0.91 → rumdl-0.0.93}/tests/rules/md020_test.rs +0 -0
  297. {rumdl-0.0.91 → rumdl-0.0.93}/tests/rules/md021_test.rs +0 -0
  298. {rumdl-0.0.91 → rumdl-0.0.93}/tests/rules/md022_test.rs +0 -0
  299. {rumdl-0.0.91 → rumdl-0.0.93}/tests/rules/md023_extended_test.rs +0 -0
  300. {rumdl-0.0.91 → rumdl-0.0.93}/tests/rules/md023_test.rs +0 -0
  301. {rumdl-0.0.91 → rumdl-0.0.93}/tests/rules/md024_test.rs +0 -0
  302. {rumdl-0.0.91 → rumdl-0.0.93}/tests/rules/md025_test.rs +0 -0
  303. {rumdl-0.0.91 → rumdl-0.0.93}/tests/rules/md026_test.rs +0 -0
  304. {rumdl-0.0.91 → rumdl-0.0.93}/tests/rules/md027_test.rs +0 -0
  305. {rumdl-0.0.91 → rumdl-0.0.93}/tests/rules/md028_test.rs +0 -0
  306. {rumdl-0.0.91 → rumdl-0.0.93}/tests/rules/md029_test.rs +0 -0
  307. {rumdl-0.0.91 → rumdl-0.0.93}/tests/rules/md030_test.rs +0 -0
  308. {rumdl-0.0.91 → rumdl-0.0.93}/tests/rules/md031_test.rs +0 -0
  309. {rumdl-0.0.91 → rumdl-0.0.93}/tests/rules/md032_test.rs +0 -0
  310. {rumdl-0.0.91 → rumdl-0.0.93}/tests/rules/md033_extended_test.rs +0 -0
  311. {rumdl-0.0.91 → rumdl-0.0.93}/tests/rules/md033_test.rs +0 -0
  312. {rumdl-0.0.91 → rumdl-0.0.93}/tests/rules/md034_test.rs +0 -0
  313. {rumdl-0.0.91 → rumdl-0.0.93}/tests/rules/md035_test.rs +0 -0
  314. {rumdl-0.0.91 → rumdl-0.0.93}/tests/rules/md037_test.rs +0 -0
  315. {rumdl-0.0.91 → rumdl-0.0.93}/tests/rules/md038_test.rs +0 -0
  316. {rumdl-0.0.91 → rumdl-0.0.93}/tests/rules/md039_test.rs +0 -0
  317. {rumdl-0.0.91 → rumdl-0.0.93}/tests/rules/md040_test.rs +0 -0
  318. {rumdl-0.0.91 → rumdl-0.0.93}/tests/rules/md042_test.rs +0 -0
  319. {rumdl-0.0.91 → rumdl-0.0.93}/tests/rules/md043_test.rs +0 -0
  320. {rumdl-0.0.91 → rumdl-0.0.93}/tests/rules/md044_test.rs +0 -0
  321. {rumdl-0.0.91 → rumdl-0.0.93}/tests/rules/md045_test.rs +0 -0
  322. {rumdl-0.0.91 → rumdl-0.0.93}/tests/rules/md046_test.rs +0 -0
  323. {rumdl-0.0.91 → rumdl-0.0.93}/tests/rules/md047_test.rs +0 -0
  324. {rumdl-0.0.91 → rumdl-0.0.93}/tests/rules/md048_test.rs +0 -0
  325. {rumdl-0.0.91 → rumdl-0.0.93}/tests/rules/md049_test.rs +0 -0
  326. {rumdl-0.0.91 → rumdl-0.0.93}/tests/rules/md050_test.rs +0 -0
  327. {rumdl-0.0.91 → rumdl-0.0.93}/tests/rules/md051_test.rs +0 -0
  328. {rumdl-0.0.91 → rumdl-0.0.93}/tests/rules/md052_test.rs +0 -0
  329. {rumdl-0.0.91 → rumdl-0.0.93}/tests/rules/md053_additional_test.rs +0 -0
  330. {rumdl-0.0.91 → rumdl-0.0.93}/tests/rules/md053_proptest.rs +0 -0
  331. {rumdl-0.0.91 → rumdl-0.0.93}/tests/rules/md053_test.rs +0 -0
  332. {rumdl-0.0.91 → rumdl-0.0.93}/tests/rules/md054_test.rs +0 -0
  333. {rumdl-0.0.91 → rumdl-0.0.93}/tests/rules/md054_unicode_test.rs +0 -0
  334. {rumdl-0.0.91 → rumdl-0.0.93}/tests/rules/md055_test.rs +0 -0
  335. {rumdl-0.0.91 → rumdl-0.0.93}/tests/rules/md056_test.rs +0 -0
  336. {rumdl-0.0.91 → rumdl-0.0.93}/tests/rules/md057_test.rs +0 -0
  337. {rumdl-0.0.91 → rumdl-0.0.93}/tests/rules/md058_test.rs +0 -0
  338. {rumdl-0.0.91 → rumdl-0.0.93}/tests/thread_safety_tests.rs +0 -0
  339. {rumdl-0.0.91 → rumdl-0.0.93}/tests/unicode_edge_case_tests.rs +0 -0
  340. {rumdl-0.0.91 → rumdl-0.0.93}/tests/utils/blockquote_utils_test.rs +0 -0
  341. {rumdl-0.0.91 → rumdl-0.0.93}/tests/utils/code_block_utils_extended_test.rs +0 -0
  342. {rumdl-0.0.91 → rumdl-0.0.93}/tests/utils/code_block_utils_test.rs +0 -0
  343. {rumdl-0.0.91 → rumdl-0.0.93}/tests/utils/front_matter_utils_test.rs +0 -0
  344. {rumdl-0.0.91 → rumdl-0.0.93}/tests/utils/line_index_test.rs +0 -0
  345. {rumdl-0.0.91 → rumdl-0.0.93}/tests/utils/mod.rs +0 -0
  346. {rumdl-0.0.91 → rumdl-0.0.93}/tests/utils_markdown_edge_cases.rs +0 -0
  347. {rumdl-0.0.91 → rumdl-0.0.93}/tests/utils_tests.rs +0 -0
  348. {rumdl-0.0.91 → rumdl-0.0.93}/tests/vscode_test.rs +0 -0
@@ -7,6 +7,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.0.93] - 2025-07-03
11
+
12
+ ## [0.0.92] - 2025-07-02
13
+
14
+ ### Fixed
15
+
16
+ - MD036: Align with markdownlint behavior - emphasis ending with punctuation (e.g., `**Note:**`) is no longer flagged
17
+
10
18
  ## [0.0.91] - 2025-07-02
11
19
 
12
20
  ## [0.0.90] - 2025-07-01
@@ -14,6 +22,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
14
22
  ## [0.0.89] - 2025-07-01
15
23
 
16
24
  ### Added
25
+
17
26
  - Comprehensive unit test coverage for all 54 linting rules (~742 new tests)
18
27
  - Unit tests for LSP server functionality
19
28
  - Unit tests for all 11 output formatters
@@ -21,6 +30,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
21
30
  - Test coverage improved from 75.4% to 77.1%
22
31
 
23
32
  ### Fixed
33
+
24
34
  - MD005: Fixed blockquote handling to correctly ignore intentional separations
25
35
  - MD054: Fixed overlapping match detection for link/image styles
26
36
  - Strong style utility module refactored to remove unused code
@@ -29,12 +39,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
29
39
  - MD013: Fixed line length calculation to intelligently handle URLs in non-strict mode
30
40
 
31
41
  ### Improved
42
+
32
43
  - Test infrastructure now includes both unit and integration tests
33
44
  - Better test organization with inline unit tests in implementation files
34
45
 
35
46
  ## [0.0.88] - 2025-06-28
36
47
 
37
48
  ### Added
49
+
38
50
  - 11 new output formatters for enhanced compatibility:
39
51
  - `grouped` - Groups violations by file
40
52
  - `pylint` - Pylint-compatible format
@@ -49,14 +61,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
49
61
  - `text` - Default human-readable format with colors
50
62
 
51
63
  ### Changed
64
+
52
65
  - **BREAKING**: Upgraded to Rust 2024 edition (requires Rust 1.87.0+)
53
66
  - Improved code quality by fixing all 283 clippy warnings
54
67
 
55
68
  ### Fixed
69
+
56
70
  - Config `output_format` field now properly merges from configuration files
57
71
  - Pylint formatter now outputs correct `CMD` codes instead of generic `C` codes
58
72
 
59
73
  ### Optimized
74
+
60
75
  - Removed unused dependencies (`glob`, `walkdir`)
61
76
  - Reduced binary size with aggressive compilation flags (LTO, strip, opt-level=z)
62
77
  - Improved performance through better regex compilation and caching
@@ -70,12 +85,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
70
85
  ## [0.0.84] - 2025-06-10
71
86
 
72
87
  ### Added
88
+
73
89
  - Type-safe serde-based configuration system for all 24 configurable rules
74
90
  - Dedicated config modules for each rule with compile-time validation
75
91
  - Full IDE support with autocomplete for configuration options
76
92
  - Centralized utilities for common parsing patterns
77
93
 
78
94
  ### Changed
95
+
79
96
  - **BREAKING**: Internal configuration structure refactored (external API unchanged)
80
97
  - Migrated all rules from manual TOML parsing to serde deserialization
81
98
  - Improved performance through centralized parsing for:
@@ -87,9 +104,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
87
104
  - ~40% reduction in configuration boilerplate code
88
105
 
89
106
  ### Fixed
107
+
90
108
  - MD030: Correct handling of tab characters in list items
91
109
 
92
110
  ### Performance
111
+
93
112
  - Significant performance improvements across multiple rules through:
94
113
  - Centralized regex compilation and caching
95
114
  - Reduced redundant parsing operations
@@ -99,19 +118,24 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
99
118
  ## [0.0.83] - 2025-06-07
100
119
 
101
120
  ### Fixed
121
+
102
122
  - Various bug fixes and performance improvements
103
123
 
104
124
  ## [0.0.82] - 2025-06-06
105
125
 
106
126
  ### Fixed
127
+
107
128
  - Various bug fixes and stability improvements
108
129
 
109
130
  ## [0.0.81] - 2025-06-04
110
131
 
111
132
  ### Added
133
+
112
134
  - Initial implementation of remaining rules for markdownlint parity
113
135
 
114
- [Unreleased]: https://github.com/rvben/rumdl/compare/v0.0.91...HEAD
136
+ [Unreleased]: https://github.com/rvben/rumdl/compare/v0.0.93...HEAD
137
+ [0.0.93]: https://github.com/rvben/rumdl/compare/v0.0.92...v0.0.93
138
+ [0.0.92]: https://github.com/rvben/rumdl/compare/v0.0.91...v0.0.92
115
139
  [0.0.91]: https://github.com/rvben/rumdl/compare/v0.0.90...v0.0.91
116
140
  [0.0.90]: https://github.com/rvben/rumdl/compare/v0.0.89...v0.0.90
117
141
  [0.0.89]: https://github.com/rvben/rumdl/compare/v0.0.88...v0.0.89
@@ -122,4 +146,4 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
122
146
  [0.0.84]: https://github.com/rvben/rumdl/compare/v0.0.83...v0.0.84
123
147
  [0.0.83]: https://github.com/rvben/rumdl/compare/v0.0.82...v0.0.83
124
148
  [0.0.82]: https://github.com/rvben/rumdl/compare/v0.0.81...v0.0.82
125
- [0.0.81]: https://github.com/rvben/rumdl/releases/tag/v0.0.81
149
+ [0.0.81]: https://github.com/rvben/rumdl/releases/tag/v0.0.81
@@ -848,6 +848,17 @@ version = "2.0.6"
848
848
  source = "registry+https://github.com/rust-lang/crates.io-index"
849
849
  checksum = "f4c7245a08504955605670dbf141fceab975f15ca21570696aebe9d2e71576bd"
850
850
 
851
+ [[package]]
852
+ name = "io-uring"
853
+ version = "0.7.8"
854
+ source = "registry+https://github.com/rust-lang/crates.io-index"
855
+ checksum = "b86e202f00093dcba4275d4636b93ef9dd75d025ae560d2521b45ea28ab49013"
856
+ dependencies = [
857
+ "bitflags 2.9.1",
858
+ "cfg-if",
859
+ "libc",
860
+ ]
861
+
851
862
  [[package]]
852
863
  name = "is-terminal"
853
864
  version = "0.4.16"
@@ -1454,7 +1465,7 @@ checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c"
1454
1465
 
1455
1466
  [[package]]
1456
1467
  name = "rumdl"
1457
- version = "0.0.91"
1468
+ version = "0.0.93"
1458
1469
  dependencies = [
1459
1470
  "anyhow",
1460
1471
  "assert_cmd",
@@ -1785,17 +1796,19 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
1785
1796
 
1786
1797
  [[package]]
1787
1798
  name = "tokio"
1788
- version = "1.45.1"
1799
+ version = "1.46.0"
1789
1800
  source = "registry+https://github.com/rust-lang/crates.io-index"
1790
- checksum = "75ef51a33ef1da925cea3e4eb122833cb377c61439ca401b770f54902b806779"
1801
+ checksum = "1140bb80481756a8cbe10541f37433b459c5aa1e727b4c020fbfebdc25bf3ec4"
1791
1802
  dependencies = [
1792
1803
  "backtrace",
1793
1804
  "bytes",
1805
+ "io-uring",
1794
1806
  "libc",
1795
1807
  "mio",
1796
1808
  "parking_lot",
1797
1809
  "pin-project-lite",
1798
1810
  "signal-hook-registry",
1811
+ "slab",
1799
1812
  "socket2",
1800
1813
  "tokio-macros",
1801
1814
  "windows-sys 0.52.0",
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "rumdl"
3
- version = "0.0.91"
3
+ version = "0.0.93"
4
4
  edition = "2024"
5
5
  rust-version = "1.88.0"
6
6
  description = "A fast Markdown linter written in Rust (Ru(st) MarkDown Linter)"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rumdl
3
- Version: 0.0.91
3
+ Version: 0.0.93
4
4
  Classifier: Development Status :: 4 - Beta
5
5
  Classifier: Environment :: Console
6
6
  Classifier: Intended Audience :: Developers
@@ -48,41 +48,6 @@ Project-URL: Repository, https://github.com/rvben/rumdl.git
48
48
 
49
49
  </div>
50
50
 
51
- ## Table of Contents
52
-
53
- - [rumdl - A high-performance Markdown linter, written in Rust](#rumdl---a-high-performance-markdown-linter-written-in-rust)
54
- - [A modern Markdown linter and formatter, built for speed with Rust](#a-modern-markdown-linter-and-formatter-built-for-speed-with-rust)
55
- - [Table of Contents](#table-of-contents)
56
- - [Quick Start](#quick-start)
57
- - [Overview](#overview)
58
- - [Performance](#performance)
59
- - [Installation](#installation)
60
- - [Using Cargo (Rust)](#using-cargo-rust)
61
- - [Using pip (Python)](#using-pip-python)
62
- - [Download binary](#download-binary)
63
- - [VS Code Extension](#vs-code-extension)
64
- - [Usage](#usage)
65
- - [Pre-commit Integration](#pre-commit-integration)
66
- - [Rules](#rules)
67
- - [Command-line Interface](#command-line-interface)
68
- - [Commands](#commands)
69
- - [Usage Examples](#usage-examples)
70
- - [Configuration](#configuration)
71
- - [Configuration File Example](#configuration-file-example)
72
- - [Initializing Configuration](#initializing-configuration)
73
- - [Configuration in pyproject.toml](#configuration-in-pyprojecttoml)
74
- - [Configuration Output](#configuration-output)
75
- - [Effective Configuration (`rumdl config`)](#effective-configuration-rumdl-config)
76
- - [Example output](#example-output)
77
- - [Defaults Only (`rumdl config --defaults`)](#defaults-only-rumdl-config---defaults)
78
- - [Output Style](#output-style)
79
- - [Output Format](#output-format)
80
- - [Development](#development)
81
- - [Prerequisites](#prerequisites)
82
- - [Building](#building)
83
- - [Testing](#testing)
84
- - [License](#license)
85
-
86
51
  ## Quick Start
87
52
 
88
53
  ```bash
@@ -101,7 +66,11 @@ rumdl init
101
66
 
102
67
  ## Overview
103
68
 
104
- rumdl is a high-performance Markdown linter and fixer that helps ensure consistency and best practices in your Markdown files. It offers:
69
+ rumdl is a high-performance Markdown linter and fixer that helps ensure consistency and best practices
70
+ in your Markdown files. Inspired by [ruff](https://github.com/astral-sh/ruff)'s approach to Python linting,
71
+ rumdl brings similar speed and developer experience improvements to the Markdown ecosystem.
72
+
73
+ It offers:
105
74
 
106
75
  - ⚡️ **Built for speed** with Rust - significantly faster than alternatives
107
76
  - 🔍 **54 lint rules** covering common Markdown issues
@@ -113,13 +82,37 @@ rumdl is a high-performance Markdown linter and fixer that helps ensure consiste
113
82
  - 📏 **Modern CLI** with detailed error reporting
114
83
  - 🔄 **CI/CD friendly** with non-zero exit code on errors
115
84
 
116
- ## Performance
117
-
118
- rumdl is designed for speed and efficiency:
119
-
120
- ![Performance Comparison](assets/performance_overview.png)
85
+ ## Table of Contents
121
86
 
122
- rumdl is **4.3x faster** on average than markdownlint for typical markdown files, with performance improvements ranging from 3.4x to 5.4x depending on project size.
87
+ - [Quick Start](#quick-start)
88
+ - [Overview](#overview)
89
+ - [Installation](#installation)
90
+ - [Using Cargo (Rust)](#using-cargo-rust)
91
+ - [Using pip (Python)](#using-pip-python)
92
+ - [Using uv](#using-uv)
93
+ - [Download binary](#download-binary)
94
+ - [VS Code Extension](#vs-code-extension)
95
+ - [Usage](#usage)
96
+ - [Pre-commit Integration](#pre-commit-integration)
97
+ - [Rules](#rules)
98
+ - [Command-line Interface](#command-line-interface)
99
+ - [Commands](#commands)
100
+ - [Usage Examples](#usage-examples)
101
+ - [Configuration](#configuration)
102
+ - [Configuration File Example](#configuration-file-example)
103
+ - [Initializing Configuration](#initializing-configuration)
104
+ - [Configuration in pyproject.toml](#configuration-in-pyproject-toml)
105
+ - [Configuration Output](#configuration-output)
106
+ - [Effective Configuration (`rumdl config`)](#effective-configuration-rumdl-config)
107
+ - [Example output](#example-output)
108
+ - [Defaults Only (`rumdl config --defaults`)](#defaults-only-rumdl-config-defaults)
109
+ - [Output Style](#output-style)
110
+ - [Output Format](#output-format)
111
+ - [Development](#development)
112
+ - [Prerequisites](#prerequisites)
113
+ - [Building](#building)
114
+ - [Testing](#testing)
115
+ - [License](#license)
123
116
 
124
117
  ## Installation
125
118
 
@@ -137,6 +130,18 @@ cargo install rumdl
137
130
  pip install rumdl
138
131
  ```
139
132
 
133
+ ### Using uv
134
+
135
+ For faster installation and better dependency management with [uv](https://github.com/astral-sh/uv):
136
+
137
+ ```bash
138
+ # Install directly
139
+ uv tool install rumdl
140
+
141
+ # Or run without installing
142
+ uv tool run rumdl check .
143
+ ```
144
+
140
145
  ### Download binary
141
146
 
142
147
  ```bash
@@ -164,6 +169,7 @@ rumdl vscode --force
164
169
  ```
165
170
 
166
171
  The extension provides:
172
+
167
173
  - 🔍 Real-time linting as you type
168
174
  - 💡 Quick fixes for common issues
169
175
  - 🎨 Code formatting on save
@@ -275,9 +281,11 @@ rumdl <command> [options] [file or directory...]
275
281
  Lint Markdown files and print warnings/errors (main subcommand)
276
282
 
277
283
  **Arguments:**
284
+
278
285
  - `[PATHS...]`: Files or directories to lint. If provided, these paths take precedence over include patterns
279
286
 
280
287
  **Options:**
288
+
281
289
  - `-f, --fix`: Automatically fix issues where possible
282
290
  - `-l, --list-rules`: List all available rules
283
291
  - `-d, --disable <rules>`: Disable specific rules (comma-separated)
@@ -297,6 +305,7 @@ Lint Markdown files and print warnings/errors (main subcommand)
297
305
  Create a default configuration file in the current directory
298
306
 
299
307
  **Options:**
308
+
300
309
  - `--pyproject`: Generate configuration for `pyproject.toml` instead of `.rumdl.toml`
301
310
 
302
311
  #### `import <FILE> [OPTIONS]`
@@ -304,9 +313,11 @@ Create a default configuration file in the current directory
304
313
  Import and convert markdownlint configuration files to rumdl format
305
314
 
306
315
  **Arguments:**
316
+
307
317
  - `<FILE>`: Path to markdownlint config file (JSON/YAML)
308
318
 
309
319
  **Options:**
320
+
310
321
  - `-o, --output <path>`: Output file path (default: `.rumdl.toml`)
311
322
  - `--format <format>`: Output format: `toml` or `json` (default: `toml`)
312
323
  - `--dry-run`: Show converted config without writing to file
@@ -316,6 +327,7 @@ Import and convert markdownlint configuration files to rumdl format
316
327
  Show information about a rule or list all rules
317
328
 
318
329
  **Arguments:**
330
+
319
331
  - `[rule]`: Rule name or ID (optional). If provided, shows details for that rule. If omitted, lists all available rules
320
332
 
321
333
  #### `config [OPTIONS] [COMMAND]`
@@ -323,10 +335,12 @@ Show information about a rule or list all rules
323
335
  Show configuration or query a specific key
324
336
 
325
337
  **Options:**
338
+
326
339
  - `--defaults`: Show only the default configuration values
327
340
  - `--output <format>`: Output format (e.g. `toml`, `json`)
328
341
 
329
342
  **Subcommands:**
343
+
330
344
  - `get <key>`: Query a specific config key (e.g. `global.exclude` or `MD013.line_length`)
331
345
  - `file`: Show the absolute path of the configuration file that was loaded
332
346
 
@@ -335,6 +349,7 @@ Show configuration or query a specific key
335
349
  Start the Language Server Protocol server for editor integration
336
350
 
337
351
  **Options:**
352
+
338
353
  - `--port <PORT>`: TCP port to listen on (for debugging)
339
354
  - `--stdio`: Use stdio for communication (default)
340
355
  - `-v, --verbose`: Enable verbose logging
@@ -344,6 +359,7 @@ Start the Language Server Protocol server for editor integration
344
359
  Install the rumdl VS Code extension
345
360
 
346
361
  **Options:**
362
+
347
363
  - `--force`: Force reinstall even if already installed
348
364
  - `--status`: Show installation status without installing
349
365
 
@@ -431,6 +447,7 @@ rumdl can be configured in several ways:
431
447
  rumdl provides seamless compatibility with existing markdownlint configurations:
432
448
 
433
449
  **Automatic Discovery**: rumdl automatically detects and loads markdownlint config files:
450
+
434
451
  - `.markdownlint.json` / `.markdownlint.jsonc`
435
452
  - `.markdownlint.yaml` / `.markdownlint.yml`
436
453
  - `markdownlint.json` / `markdownlint.yaml`
@@ -17,41 +17,6 @@
17
17
 
18
18
  </div>
19
19
 
20
- ## Table of Contents
21
-
22
- - [rumdl - A high-performance Markdown linter, written in Rust](#rumdl---a-high-performance-markdown-linter-written-in-rust)
23
- - [A modern Markdown linter and formatter, built for speed with Rust](#a-modern-markdown-linter-and-formatter-built-for-speed-with-rust)
24
- - [Table of Contents](#table-of-contents)
25
- - [Quick Start](#quick-start)
26
- - [Overview](#overview)
27
- - [Performance](#performance)
28
- - [Installation](#installation)
29
- - [Using Cargo (Rust)](#using-cargo-rust)
30
- - [Using pip (Python)](#using-pip-python)
31
- - [Download binary](#download-binary)
32
- - [VS Code Extension](#vs-code-extension)
33
- - [Usage](#usage)
34
- - [Pre-commit Integration](#pre-commit-integration)
35
- - [Rules](#rules)
36
- - [Command-line Interface](#command-line-interface)
37
- - [Commands](#commands)
38
- - [Usage Examples](#usage-examples)
39
- - [Configuration](#configuration)
40
- - [Configuration File Example](#configuration-file-example)
41
- - [Initializing Configuration](#initializing-configuration)
42
- - [Configuration in pyproject.toml](#configuration-in-pyprojecttoml)
43
- - [Configuration Output](#configuration-output)
44
- - [Effective Configuration (`rumdl config`)](#effective-configuration-rumdl-config)
45
- - [Example output](#example-output)
46
- - [Defaults Only (`rumdl config --defaults`)](#defaults-only-rumdl-config---defaults)
47
- - [Output Style](#output-style)
48
- - [Output Format](#output-format)
49
- - [Development](#development)
50
- - [Prerequisites](#prerequisites)
51
- - [Building](#building)
52
- - [Testing](#testing)
53
- - [License](#license)
54
-
55
20
  ## Quick Start
56
21
 
57
22
  ```bash
@@ -70,7 +35,11 @@ rumdl init
70
35
 
71
36
  ## Overview
72
37
 
73
- rumdl is a high-performance Markdown linter and fixer that helps ensure consistency and best practices in your Markdown files. It offers:
38
+ rumdl is a high-performance Markdown linter and fixer that helps ensure consistency and best practices
39
+ in your Markdown files. Inspired by [ruff](https://github.com/astral-sh/ruff)'s approach to Python linting,
40
+ rumdl brings similar speed and developer experience improvements to the Markdown ecosystem.
41
+
42
+ It offers:
74
43
 
75
44
  - ⚡️ **Built for speed** with Rust - significantly faster than alternatives
76
45
  - 🔍 **54 lint rules** covering common Markdown issues
@@ -82,13 +51,37 @@ rumdl is a high-performance Markdown linter and fixer that helps ensure consiste
82
51
  - 📏 **Modern CLI** with detailed error reporting
83
52
  - 🔄 **CI/CD friendly** with non-zero exit code on errors
84
53
 
85
- ## Performance
86
-
87
- rumdl is designed for speed and efficiency:
88
-
89
- ![Performance Comparison](assets/performance_overview.png)
54
+ ## Table of Contents
90
55
 
91
- rumdl is **4.3x faster** on average than markdownlint for typical markdown files, with performance improvements ranging from 3.4x to 5.4x depending on project size.
56
+ - [Quick Start](#quick-start)
57
+ - [Overview](#overview)
58
+ - [Installation](#installation)
59
+ - [Using Cargo (Rust)](#using-cargo-rust)
60
+ - [Using pip (Python)](#using-pip-python)
61
+ - [Using uv](#using-uv)
62
+ - [Download binary](#download-binary)
63
+ - [VS Code Extension](#vs-code-extension)
64
+ - [Usage](#usage)
65
+ - [Pre-commit Integration](#pre-commit-integration)
66
+ - [Rules](#rules)
67
+ - [Command-line Interface](#command-line-interface)
68
+ - [Commands](#commands)
69
+ - [Usage Examples](#usage-examples)
70
+ - [Configuration](#configuration)
71
+ - [Configuration File Example](#configuration-file-example)
72
+ - [Initializing Configuration](#initializing-configuration)
73
+ - [Configuration in pyproject.toml](#configuration-in-pyproject-toml)
74
+ - [Configuration Output](#configuration-output)
75
+ - [Effective Configuration (`rumdl config`)](#effective-configuration-rumdl-config)
76
+ - [Example output](#example-output)
77
+ - [Defaults Only (`rumdl config --defaults`)](#defaults-only-rumdl-config-defaults)
78
+ - [Output Style](#output-style)
79
+ - [Output Format](#output-format)
80
+ - [Development](#development)
81
+ - [Prerequisites](#prerequisites)
82
+ - [Building](#building)
83
+ - [Testing](#testing)
84
+ - [License](#license)
92
85
 
93
86
  ## Installation
94
87
 
@@ -106,6 +99,18 @@ cargo install rumdl
106
99
  pip install rumdl
107
100
  ```
108
101
 
102
+ ### Using uv
103
+
104
+ For faster installation and better dependency management with [uv](https://github.com/astral-sh/uv):
105
+
106
+ ```bash
107
+ # Install directly
108
+ uv tool install rumdl
109
+
110
+ # Or run without installing
111
+ uv tool run rumdl check .
112
+ ```
113
+
109
114
  ### Download binary
110
115
 
111
116
  ```bash
@@ -133,6 +138,7 @@ rumdl vscode --force
133
138
  ```
134
139
 
135
140
  The extension provides:
141
+
136
142
  - 🔍 Real-time linting as you type
137
143
  - 💡 Quick fixes for common issues
138
144
  - 🎨 Code formatting on save
@@ -244,9 +250,11 @@ rumdl <command> [options] [file or directory...]
244
250
  Lint Markdown files and print warnings/errors (main subcommand)
245
251
 
246
252
  **Arguments:**
253
+
247
254
  - `[PATHS...]`: Files or directories to lint. If provided, these paths take precedence over include patterns
248
255
 
249
256
  **Options:**
257
+
250
258
  - `-f, --fix`: Automatically fix issues where possible
251
259
  - `-l, --list-rules`: List all available rules
252
260
  - `-d, --disable <rules>`: Disable specific rules (comma-separated)
@@ -266,6 +274,7 @@ Lint Markdown files and print warnings/errors (main subcommand)
266
274
  Create a default configuration file in the current directory
267
275
 
268
276
  **Options:**
277
+
269
278
  - `--pyproject`: Generate configuration for `pyproject.toml` instead of `.rumdl.toml`
270
279
 
271
280
  #### `import <FILE> [OPTIONS]`
@@ -273,9 +282,11 @@ Create a default configuration file in the current directory
273
282
  Import and convert markdownlint configuration files to rumdl format
274
283
 
275
284
  **Arguments:**
285
+
276
286
  - `<FILE>`: Path to markdownlint config file (JSON/YAML)
277
287
 
278
288
  **Options:**
289
+
279
290
  - `-o, --output <path>`: Output file path (default: `.rumdl.toml`)
280
291
  - `--format <format>`: Output format: `toml` or `json` (default: `toml`)
281
292
  - `--dry-run`: Show converted config without writing to file
@@ -285,6 +296,7 @@ Import and convert markdownlint configuration files to rumdl format
285
296
  Show information about a rule or list all rules
286
297
 
287
298
  **Arguments:**
299
+
288
300
  - `[rule]`: Rule name or ID (optional). If provided, shows details for that rule. If omitted, lists all available rules
289
301
 
290
302
  #### `config [OPTIONS] [COMMAND]`
@@ -292,10 +304,12 @@ Show information about a rule or list all rules
292
304
  Show configuration or query a specific key
293
305
 
294
306
  **Options:**
307
+
295
308
  - `--defaults`: Show only the default configuration values
296
309
  - `--output <format>`: Output format (e.g. `toml`, `json`)
297
310
 
298
311
  **Subcommands:**
312
+
299
313
  - `get <key>`: Query a specific config key (e.g. `global.exclude` or `MD013.line_length`)
300
314
  - `file`: Show the absolute path of the configuration file that was loaded
301
315
 
@@ -304,6 +318,7 @@ Show configuration or query a specific key
304
318
  Start the Language Server Protocol server for editor integration
305
319
 
306
320
  **Options:**
321
+
307
322
  - `--port <PORT>`: TCP port to listen on (for debugging)
308
323
  - `--stdio`: Use stdio for communication (default)
309
324
  - `-v, --verbose`: Enable verbose logging
@@ -313,6 +328,7 @@ Start the Language Server Protocol server for editor integration
313
328
  Install the rumdl VS Code extension
314
329
 
315
330
  **Options:**
331
+
316
332
  - `--force`: Force reinstall even if already installed
317
333
  - `--status`: Show installation status without installing
318
334
 
@@ -400,6 +416,7 @@ rumdl can be configured in several ways:
400
416
  rumdl provides seamless compatibility with existing markdownlint configurations:
401
417
 
402
418
  **Automatic Discovery**: rumdl automatically detects and loads markdownlint config files:
419
+
403
420
  - `.markdownlint.json` / `.markdownlint.jsonc`
404
421
  - `.markdownlint.yaml` / `.markdownlint.yml`
405
422
  - `markdownlint.json` / `markdownlint.yaml`
@@ -4,7 +4,8 @@ This document provides a comprehensive reference for rumdl's global configuratio
4
4
 
5
5
  ## Overview
6
6
 
7
- Global settings are configured in the `[global]` section of your configuration file (`.rumdl.toml` or `pyproject.toml`). These settings control file selection, rule enablement, and general linting behavior.
7
+ Global settings are configured in the `[global]` section of your configuration file (`.rumdl.toml` or
8
+ `pyproject.toml`). These settings control file selection, rule enablement, and general linting behavior.
8
9
 
9
10
  ## Quick Reference
10
11
 
@@ -30,6 +30,32 @@ Second Level Heading
30
30
  ------------------
31
31
  ```
32
32
 
33
+ ### ✅ Correct (using setext_with_atx style)
34
+
35
+ ```markdown
36
+ First Level Heading
37
+ ==================
38
+
39
+ Second Level Heading
40
+ ------------------
41
+
42
+ ### Third Level Heading
43
+ #### Fourth Level Heading
44
+ ```
45
+
46
+ ### ✅ Correct (using setext_with_atx_closed style)
47
+
48
+ ```markdown
49
+ First Level Heading
50
+ ==================
51
+
52
+ Second Level Heading
53
+ ------------------
54
+
55
+ ### Third Level Heading ###
56
+ #### Fourth Level Heading ####
57
+ ```
58
+
33
59
  ### ❌ Incorrect (mixed styles)
34
60
 
35
61
  <!-- rumdl-disable MD003 -->
@@ -57,7 +83,7 @@ Second Level Heading
57
83
 
58
84
  ```yaml
59
85
  MD003:
60
- style: "consistent" # Options: "consistent", "atx", "atx_closed", "setext"
86
+ style: "consistent" # Options: "consistent", "atx", "atx_closed", "setext", "setext_with_atx", "setext_with_atx_closed"
61
87
  ```
62
88
 
63
89
  ### Style options explained
@@ -66,6 +92,8 @@ MD003:
66
92
  - `"atx"`: Use # symbols (`# Heading`)
67
93
  - `"atx_closed"`: Use # symbols at both ends (`# Heading #`)
68
94
  - `"setext"`: Use underlines (equals for level 1, dashes for level 2)
95
+ - `"setext_with_atx"`: Use underlines for level 1-2, # symbols for level 3-6
96
+ - `"setext_with_atx_closed"`: Use underlines for level 1-2, # symbols with closing # for level 3-6
69
97
 
70
98
  > **Note**: Underline style only works for level 1 and 2 headings. Level 3 and below must use # symbols.
71
99
 
@@ -33,6 +33,19 @@ Ensures all unordered lists use the same marker (* or + or -) throughout your do
33
33
  - Item 3
34
34
  ```
35
35
 
36
+ ### ✅ Correct (using sublist style)
37
+
38
+ ```markdown
39
+ * Item 1
40
+ * Item 2
41
+ + Nested item 1
42
+ + Nested item 2
43
+ - Deep nested item 1
44
+ - Deep nested item 2
45
+ * Even deeper (cycles back to *)
46
+ * Item 3
47
+ ```
48
+
36
49
  ### ❌ Incorrect
37
50
 
38
51
  ```markdown
@@ -57,7 +70,7 @@ Ensures all unordered lists use the same marker (* or + or -) throughout your do
57
70
 
58
71
  ```yaml
59
72
  MD004:
60
- style: "consistent" # Options: "consistent", "asterisk", "plus", "dash"
73
+ style: "consistent" # Options: "consistent", "asterisk", "plus", "dash", "sublist"
61
74
  ```
62
75
 
63
76
  ### Style options
@@ -66,6 +79,7 @@ MD004:
66
79
  - `"asterisk"`: Always use * markers
67
80
  - `"plus"`: Always use + markers
68
81
  - `"dash"`: Always use - markers
82
+ - `"sublist"`: Each nesting level uses a different marker (cycles through *, +, -)
69
83
 
70
84
  ## Automatic fixes
71
85