rumdl 0.0.81__tar.gz → 0.0.82__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 (333) hide show
  1. {rumdl-0.0.81 → rumdl-0.0.82}/Cargo.lock +1 -1
  2. {rumdl-0.0.81 → rumdl-0.0.82}/Cargo.toml +1 -1
  3. {rumdl-0.0.81 → rumdl-0.0.82}/PKG-INFO +1 -1
  4. {rumdl-0.0.81 → rumdl-0.0.82}/docs/global-settings.md +21 -7
  5. rumdl-0.0.82/docs/md001.md +60 -0
  6. rumdl-0.0.82/docs/md002.md +68 -0
  7. rumdl-0.0.82/docs/md003.md +85 -0
  8. rumdl-0.0.82/docs/md004.md +84 -0
  9. rumdl-0.0.82/docs/md005.md +79 -0
  10. rumdl-0.0.82/docs/md006.md +72 -0
  11. rumdl-0.0.82/docs/md007.md +75 -0
  12. rumdl-0.0.82/docs/md009.md +64 -0
  13. rumdl-0.0.82/docs/md010.md +83 -0
  14. rumdl-0.0.82/docs/md011.md +63 -0
  15. rumdl-0.0.82/docs/md012.md +92 -0
  16. rumdl-0.0.82/docs/md013.md +69 -0
  17. rumdl-0.0.82/docs/md014.md +79 -0
  18. rumdl-0.0.82/docs/md018.md +69 -0
  19. rumdl-0.0.82/docs/md019.md +69 -0
  20. rumdl-0.0.82/docs/md020.md +70 -0
  21. rumdl-0.0.82/docs/md021.md +70 -0
  22. rumdl-0.0.82/docs/md022.md +92 -0
  23. rumdl-0.0.82/docs/md023.md +68 -0
  24. rumdl-0.0.82/docs/md024.md +96 -0
  25. rumdl-0.0.82/docs/md025.md +81 -0
  26. rumdl-0.0.82/docs/md026.md +78 -0
  27. rumdl-0.0.82/docs/md027.md +68 -0
  28. rumdl-0.0.82/docs/md028.md +79 -0
  29. rumdl-0.0.82/docs/md029.md +76 -0
  30. rumdl-0.0.82/docs/md030.md +77 -0
  31. rumdl-0.0.82/docs/md031.md +102 -0
  32. rumdl-0.0.82/docs/md032.md +75 -0
  33. rumdl-0.0.82/docs/md033.md +99 -0
  34. rumdl-0.0.82/docs/md034.md +62 -0
  35. rumdl-0.0.82/docs/md035.md +95 -0
  36. rumdl-0.0.82/docs/md036.md +92 -0
  37. rumdl-0.0.82/docs/md037.md +81 -0
  38. rumdl-0.0.82/docs/md038.md +74 -0
  39. rumdl-0.0.82/docs/md039.md +84 -0
  40. rumdl-0.0.82/docs/md040.md +81 -0
  41. rumdl-0.0.82/docs/md041.md +87 -0
  42. rumdl-0.0.82/docs/md042.md +78 -0
  43. rumdl-0.0.82/docs/md043.md +114 -0
  44. rumdl-0.0.82/docs/md044.md +86 -0
  45. rumdl-0.0.82/docs/md045.md +86 -0
  46. rumdl-0.0.82/docs/md046.md +117 -0
  47. rumdl-0.0.82/docs/md047.md +92 -0
  48. rumdl-0.0.82/docs/md048.md +105 -0
  49. rumdl-0.0.82/docs/md049.md +89 -0
  50. rumdl-0.0.82/docs/md050.md +89 -0
  51. rumdl-0.0.82/docs/md051.md +80 -0
  52. rumdl-0.0.82/docs/md052.md +76 -0
  53. rumdl-0.0.82/docs/md053.md +84 -0
  54. rumdl-0.0.82/docs/md054.md +104 -0
  55. rumdl-0.0.82/docs/md055.md +88 -0
  56. rumdl-0.0.82/docs/md056.md +80 -0
  57. rumdl-0.0.82/docs/md057.md +73 -0
  58. rumdl-0.0.82/docs/md058.md +85 -0
  59. {rumdl-0.0.81 → rumdl-0.0.82}/src/main.rs +31 -21
  60. {rumdl-0.0.81 → rumdl-0.0.82}/src/rule.rs +2 -2
  61. {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md003_heading_style.rs +15 -2
  62. {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md004_unordered_list_style.rs +2 -2
  63. {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md010_no_hard_tabs.rs +8 -8
  64. {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md018_no_missing_space_atx.rs +3 -3
  65. {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md019_no_multiple_space_atx.rs +2 -2
  66. {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md020_no_missing_space_closed_atx.rs +7 -7
  67. {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md021_no_multiple_space_closed_atx.rs +7 -7
  68. {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md027_multiple_spaces_blockquote.rs +8 -8
  69. {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md033_no_inline_html.rs +2 -2
  70. {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md034_no_bare_urls.rs +7 -7
  71. {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md040_fenced_code_language.rs +139 -120
  72. {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md048_code_fence_style.rs +2 -2
  73. {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md049_emphasis_style.rs +1 -2
  74. {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md050_strong_style.rs +2 -2
  75. {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md051_link_fragments.rs +4 -4
  76. {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md053_link_image_reference_definitions.rs +1 -1
  77. {rumdl-0.0.81 → rumdl-0.0.82}/tests/output_format_tests.rs +1 -1
  78. {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md010_test.rs +4 -4
  79. {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md018_test.rs +1 -1
  80. {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md019_test.rs +3 -3
  81. {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md020_test.rs +2 -2
  82. {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md021_test.rs +3 -3
  83. {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md034_test.rs +6 -6
  84. rumdl-0.0.81/docs/md001.md +0 -42
  85. rumdl-0.0.81/docs/md002.md +0 -104
  86. rumdl-0.0.81/docs/md003.md +0 -91
  87. rumdl-0.0.81/docs/md004.md +0 -108
  88. rumdl-0.0.81/docs/md005.md +0 -108
  89. rumdl-0.0.81/docs/md006.md +0 -107
  90. rumdl-0.0.81/docs/md007.md +0 -57
  91. rumdl-0.0.81/docs/md009.md +0 -51
  92. rumdl-0.0.81/docs/md010.md +0 -56
  93. rumdl-0.0.81/docs/md011.md +0 -71
  94. rumdl-0.0.81/docs/md012.md +0 -59
  95. rumdl-0.0.81/docs/md013.md +0 -53
  96. rumdl-0.0.81/docs/md014.md +0 -84
  97. rumdl-0.0.81/docs/md018.md +0 -58
  98. rumdl-0.0.81/docs/md019.md +0 -58
  99. rumdl-0.0.81/docs/md020.md +0 -58
  100. rumdl-0.0.81/docs/md021.md +0 -59
  101. rumdl-0.0.81/docs/md022.md +0 -72
  102. rumdl-0.0.81/docs/md023.md +0 -49
  103. rumdl-0.0.81/docs/md024.md +0 -85
  104. rumdl-0.0.81/docs/md025.md +0 -68
  105. rumdl-0.0.81/docs/md026.md +0 -76
  106. rumdl-0.0.81/docs/md027.md +0 -50
  107. rumdl-0.0.81/docs/md028.md +0 -83
  108. rumdl-0.0.81/docs/md029.md +0 -68
  109. rumdl-0.0.81/docs/md030.md +0 -69
  110. rumdl-0.0.81/docs/md031.md +0 -63
  111. rumdl-0.0.81/docs/md032.md +0 -75
  112. rumdl-0.0.81/docs/md033.md +0 -105
  113. rumdl-0.0.81/docs/md034.md +0 -52
  114. rumdl-0.0.81/docs/md035.md +0 -79
  115. rumdl-0.0.81/docs/md036.md +0 -108
  116. rumdl-0.0.81/docs/md037.md +0 -64
  117. rumdl-0.0.81/docs/md038.md +0 -46
  118. rumdl-0.0.81/docs/md039.md +0 -62
  119. rumdl-0.0.81/docs/md040.md +0 -72
  120. rumdl-0.0.81/docs/md041.md +0 -65
  121. rumdl-0.0.81/docs/md042.md +0 -62
  122. rumdl-0.0.81/docs/md043.md +0 -110
  123. rumdl-0.0.81/docs/md044.md +0 -76
  124. rumdl-0.0.81/docs/md045.md +0 -59
  125. rumdl-0.0.81/docs/md046.md +0 -64
  126. rumdl-0.0.81/docs/md047.md +0 -58
  127. rumdl-0.0.81/docs/md048.md +0 -80
  128. rumdl-0.0.81/docs/md049.md +0 -65
  129. rumdl-0.0.81/docs/md050.md +0 -65
  130. rumdl-0.0.81/docs/md051.md +0 -80
  131. rumdl-0.0.81/docs/md052.md +0 -115
  132. rumdl-0.0.81/docs/md053.md +0 -102
  133. rumdl-0.0.81/docs/md054.md +0 -96
  134. rumdl-0.0.81/docs/md055.md +0 -112
  135. rumdl-0.0.81/docs/md056.md +0 -68
  136. rumdl-0.0.81/docs/md057.md +0 -77
  137. rumdl-0.0.81/docs/md058.md +0 -92
  138. {rumdl-0.0.81 → rumdl-0.0.82}/.rumdl.toml +0 -0
  139. {rumdl-0.0.81 → rumdl-0.0.82}/MANIFEST.in +0 -0
  140. {rumdl-0.0.81 → rumdl-0.0.82}/Makefile +0 -0
  141. {rumdl-0.0.81 → rumdl-0.0.82}/README.md +0 -0
  142. {rumdl-0.0.81 → rumdl-0.0.82}/assets/logo.png +0 -0
  143. {rumdl-0.0.81 → rumdl-0.0.82}/benches/fix_performance.rs +0 -0
  144. {rumdl-0.0.81 → rumdl-0.0.82}/benches/range_performance.rs +0 -0
  145. {rumdl-0.0.81 → rumdl-0.0.82}/benches/range_utils_benchmark.rs +0 -0
  146. {rumdl-0.0.81 → rumdl-0.0.82}/benches/rule_performance.rs +0 -0
  147. {rumdl-0.0.81 → rumdl-0.0.82}/benches/simple_fix_bench.rs +0 -0
  148. {rumdl-0.0.81 → rumdl-0.0.82}/docs/RULES.md +0 -0
  149. {rumdl-0.0.81 → rumdl-0.0.82}/issues/plan-rule-parity-with-markdownlint.md +0 -0
  150. {rumdl-0.0.81 → rumdl-0.0.82}/parity_check.py +0 -0
  151. {rumdl-0.0.81 → rumdl-0.0.82}/pyproject.toml +0 -0
  152. {rumdl-0.0.81 → rumdl-0.0.82}/python/MANIFEST.in +0 -0
  153. {rumdl-0.0.81 → rumdl-0.0.82}/python/PYTHON-README.md +0 -0
  154. {rumdl-0.0.81 → rumdl-0.0.82}/python/rumdl/__init__.py +0 -0
  155. {rumdl-0.0.81 → rumdl-0.0.82}/python/rumdl/__main__.py +0 -0
  156. {rumdl-0.0.81 → rumdl-0.0.82}/python/rumdl/py.typed +0 -0
  157. {rumdl-0.0.81 → rumdl-0.0.82}/rumdl.toml.example +0 -0
  158. {rumdl-0.0.81 → rumdl-0.0.82}/src/config.rs +0 -0
  159. {rumdl-0.0.81 → rumdl-0.0.82}/src/init.rs +0 -0
  160. {rumdl-0.0.81 → rumdl-0.0.82}/src/lib.rs +0 -0
  161. {rumdl-0.0.81 → rumdl-0.0.82}/src/lint_context.rs +0 -0
  162. {rumdl-0.0.81 → rumdl-0.0.82}/src/lsp/mod.rs +0 -0
  163. {rumdl-0.0.81 → rumdl-0.0.82}/src/lsp/server.rs +0 -0
  164. {rumdl-0.0.81 → rumdl-0.0.82}/src/lsp/types.rs +0 -0
  165. {rumdl-0.0.81 → rumdl-0.0.82}/src/markdownlint_config.rs +0 -0
  166. {rumdl-0.0.81 → rumdl-0.0.82}/src/parallel.rs +0 -0
  167. {rumdl-0.0.81 → rumdl-0.0.82}/src/performance.rs +0 -0
  168. {rumdl-0.0.81 → rumdl-0.0.82}/src/profiling.rs +0 -0
  169. {rumdl-0.0.81 → rumdl-0.0.82}/src/python.rs +0 -0
  170. {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/blockquote_utils.rs +0 -0
  171. {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/code_block_utils.rs +0 -0
  172. {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/code_fence_utils.rs +0 -0
  173. {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/emphasis_style.rs +0 -0
  174. {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/front_matter_utils.rs +0 -0
  175. {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/heading_utils.rs +0 -0
  176. {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/list_utils.rs +0 -0
  177. {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md001_heading_increment.rs +0 -0
  178. {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md002_first_heading_h1.rs +0 -0
  179. {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md005_list_indent.rs +0 -0
  180. {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md006_start_bullets.rs +0 -0
  181. {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md007_ul_indent.rs +0 -0
  182. {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md009_trailing_spaces.rs +0 -0
  183. {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md011_no_reversed_links.rs +0 -0
  184. {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md012_no_multiple_blanks.rs +0 -0
  185. {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md013_line_length.rs +0 -0
  186. {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md014_commands_show_output.rs +0 -0
  187. {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md022_blanks_around_headings.rs +0 -0
  188. {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md023_heading_start_left.rs +0 -0
  189. {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md024_no_duplicate_heading.rs +0 -0
  190. {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md025_single_title.rs +0 -0
  191. {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md026_no_trailing_punctuation.rs +0 -0
  192. {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md028_no_blanks_blockquote.rs +0 -0
  193. {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md029_ordered_list_prefix.rs +0 -0
  194. {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md030_list_marker_space.rs +0 -0
  195. {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md031_blanks_around_fences.rs +0 -0
  196. {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md032_blanks_around_lists.rs +0 -0
  197. {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md035_hr_style.rs +0 -0
  198. {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md036_no_emphasis_only_first.rs +0 -0
  199. {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md037_spaces_around_emphasis.rs +0 -0
  200. {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md038_no_space_in_code.rs +0 -0
  201. {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md039_no_space_in_links.rs +0 -0
  202. {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md041_first_line_heading.rs +0 -0
  203. {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md042_no_empty_links.rs +0 -0
  204. {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md043_required_headings.rs +0 -0
  205. {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md044_proper_names.rs +0 -0
  206. {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md045_no_alt_text.rs +0 -0
  207. {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md046_code_block_style.rs +0 -0
  208. {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md047_single_trailing_newline.rs +0 -0
  209. {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md052_reference_links_images.rs +0 -0
  210. {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md054_link_image_style.rs +0 -0
  211. {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md055_table_pipe_style.rs +0 -0
  212. {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md056_table_column_count.rs +0 -0
  213. {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md057_existing_relative_links.rs +0 -0
  214. {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/md058_blanks_around_tables.rs +0 -0
  215. {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/mod.rs +0 -0
  216. {rumdl-0.0.81 → rumdl-0.0.82}/src/rules/strong_style.rs +0 -0
  217. {rumdl-0.0.81 → rumdl-0.0.82}/src/utils/ast_utils.rs +0 -0
  218. {rumdl-0.0.81 → rumdl-0.0.82}/src/utils/code_block_utils.rs +0 -0
  219. {rumdl-0.0.81 → rumdl-0.0.82}/src/utils/document_structure.rs +0 -0
  220. {rumdl-0.0.81 → rumdl-0.0.82}/src/utils/early_returns.rs +0 -0
  221. {rumdl-0.0.81 → rumdl-0.0.82}/src/utils/element_cache.rs +0 -0
  222. {rumdl-0.0.81 → rumdl-0.0.82}/src/utils/fix_utils.rs +0 -0
  223. {rumdl-0.0.81 → rumdl-0.0.82}/src/utils/markdown_elements.rs +0 -0
  224. {rumdl-0.0.81 → rumdl-0.0.82}/src/utils/mod.rs +0 -0
  225. {rumdl-0.0.81 → rumdl-0.0.82}/src/utils/range_utils.rs +0 -0
  226. {rumdl-0.0.81 → rumdl-0.0.82}/src/utils/regex_cache.rs +0 -0
  227. {rumdl-0.0.81 → rumdl-0.0.82}/src/utils/string_interner.rs +0 -0
  228. {rumdl-0.0.81 → rumdl-0.0.82}/src/utils/table_utils.rs +0 -0
  229. {rumdl-0.0.81 → rumdl-0.0.82}/tests/advanced_integration_tests.rs +0 -0
  230. {rumdl-0.0.81 → rumdl-0.0.82}/tests/character_ranges/additional_tests.rs +0 -0
  231. {rumdl-0.0.81 → rumdl-0.0.82}/tests/character_ranges/basic_tests.rs +0 -0
  232. {rumdl-0.0.81 → rumdl-0.0.82}/tests/character_ranges/comprehensive_tests.rs +0 -0
  233. {rumdl-0.0.81 → rumdl-0.0.82}/tests/character_ranges/extended_tests.rs +0 -0
  234. {rumdl-0.0.81 → rumdl-0.0.82}/tests/character_ranges/mod.rs +0 -0
  235. {rumdl-0.0.81 → rumdl-0.0.82}/tests/character_ranges/unicode_utils.rs +0 -0
  236. {rumdl-0.0.81 → rumdl-0.0.82}/tests/cli_duplication_test.rs +0 -0
  237. {rumdl-0.0.81 → rumdl-0.0.82}/tests/cli_integration_tests.rs +0 -0
  238. {rumdl-0.0.81 → rumdl-0.0.82}/tests/cli_lsp_fix_consistency.rs +0 -0
  239. {rumdl-0.0.81 → rumdl-0.0.82}/tests/commonmark_compliance_tests.rs +0 -0
  240. {rumdl-0.0.81 → rumdl-0.0.82}/tests/comprehensive_integration_tests.rs +0 -0
  241. {rumdl-0.0.81 → rumdl-0.0.82}/tests/config_application_tests.rs +0 -0
  242. {rumdl-0.0.81 → rumdl-0.0.82}/tests/config_file_command_test.rs +0 -0
  243. {rumdl-0.0.81 → rumdl-0.0.82}/tests/config_tests.rs +0 -0
  244. {rumdl-0.0.81 → rumdl-0.0.82}/tests/configuration_inheritance_tests.rs +0 -0
  245. {rumdl-0.0.81 → rumdl-0.0.82}/tests/consistency_regression_tests.rs +0 -0
  246. {rumdl-0.0.81 → rumdl-0.0.82}/tests/cross_platform_compatibility_tests.rs +0 -0
  247. {rumdl-0.0.81 → rumdl-0.0.82}/tests/final_confidence_assessment.rs +0 -0
  248. {rumdl-0.0.81 → rumdl-0.0.82}/tests/init_command_test.rs +0 -0
  249. {rumdl-0.0.81 → rumdl-0.0.82}/tests/init_tests.rs +0 -0
  250. {rumdl-0.0.81 → rumdl-0.0.82}/tests/integration_tests.rs +0 -0
  251. {rumdl-0.0.81 → rumdl-0.0.82}/tests/json_output_test.rs +0 -0
  252. {rumdl-0.0.81 → rumdl-0.0.82}/tests/lib.rs +0 -0
  253. {rumdl-0.0.81 → rumdl-0.0.82}/tests/lsp_editor_integration_tests.rs +0 -0
  254. {rumdl-0.0.81 → rumdl-0.0.82}/tests/lsp_integration_tests.rs +0 -0
  255. {rumdl-0.0.81 → rumdl-0.0.82}/tests/lsp_memory_leak_tests.rs +0 -0
  256. {rumdl-0.0.81 → rumdl-0.0.82}/tests/lsp_tests.rs +0 -0
  257. {rumdl-0.0.81 → rumdl-0.0.82}/tests/malformed_markdown_stress_tests.rs +0 -0
  258. {rumdl-0.0.81 → rumdl-0.0.82}/tests/markdownlint_cli_integration.rs +0 -0
  259. {rumdl-0.0.81 → rumdl-0.0.82}/tests/markdownlint_config_test.rs +0 -0
  260. {rumdl-0.0.81 → rumdl-0.0.82}/tests/md030_edge_cases.md +0 -0
  261. {rumdl-0.0.81 → rumdl-0.0.82}/tests/perf_check.rs +0 -0
  262. {rumdl-0.0.81 → rumdl-0.0.82}/tests/performance_validation_tests.rs +0 -0
  263. {rumdl-0.0.81 → rumdl-0.0.82}/tests/pyproject_config_tests.rs +0 -0
  264. {rumdl-0.0.81 → rumdl-0.0.82}/tests/real_world_repository_tests.rs +0 -0
  265. {rumdl-0.0.81 → rumdl-0.0.82}/tests/regression_prevention_tests.rs +0 -0
  266. {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md001_test.rs +0 -0
  267. {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md001_unicode_test.rs +0 -0
  268. {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md002_test.rs +0 -0
  269. {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md003_test.rs +0 -0
  270. {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md004_test.rs +0 -0
  271. {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md005_test.rs +0 -0
  272. {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md006_test.rs +0 -0
  273. {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md006_unicode_test.rs +0 -0
  274. {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md007_test.rs +0 -0
  275. {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md009_test.rs +0 -0
  276. {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md011_test.rs +0 -0
  277. {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md012_test.rs +0 -0
  278. {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md013_test.rs +0 -0
  279. {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md014_test.rs +0 -0
  280. {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md022_test.rs +0 -0
  281. {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md023_extended_test.rs +0 -0
  282. {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md023_test.rs +0 -0
  283. {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md024_test.rs +0 -0
  284. {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md025_test.rs +0 -0
  285. {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md026_test.rs +0 -0
  286. {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md027_test.rs +0 -0
  287. {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md028_test.rs +0 -0
  288. {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md029_test.rs +0 -0
  289. {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md030_test.rs +0 -0
  290. {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md031_test.rs +0 -0
  291. {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md032_test.rs +0 -0
  292. {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md033_extended_test.rs +0 -0
  293. {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md033_test.rs +0 -0
  294. {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md035_test.rs +0 -0
  295. {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md036_test.rs +0 -0
  296. {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md037_test.rs +0 -0
  297. {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md038_test.rs +0 -0
  298. {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md039_test.rs +0 -0
  299. {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md040_test.rs +0 -0
  300. {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md041_test.rs +0 -0
  301. {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md042_test.rs +0 -0
  302. {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md043_test.rs +0 -0
  303. {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md044_test.rs +0 -0
  304. {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md045_test.rs +0 -0
  305. {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md046_test.rs +0 -0
  306. {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md047_test.rs +0 -0
  307. {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md048_test.rs +0 -0
  308. {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md049_test.rs +0 -0
  309. {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md050_test.rs +0 -0
  310. {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md051_test.rs +0 -0
  311. {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md052_test.rs +0 -0
  312. {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md053_additional_test.rs +0 -0
  313. {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md053_proptest.rs +0 -0
  314. {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md053_test.rs +0 -0
  315. {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md054_test.rs +0 -0
  316. {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md054_unicode_test.rs +0 -0
  317. {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md055_test.rs +0 -0
  318. {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md056_test.rs +0 -0
  319. {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md057_test.rs +0 -0
  320. {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/md058_test.rs +0 -0
  321. {rumdl-0.0.81 → rumdl-0.0.82}/tests/rules/mod.rs +0 -0
  322. {rumdl-0.0.81 → rumdl-0.0.82}/tests/thread_safety_tests.rs +0 -0
  323. {rumdl-0.0.81 → rumdl-0.0.82}/tests/unicode_edge_case_tests.rs +0 -0
  324. {rumdl-0.0.81 → rumdl-0.0.82}/tests/utils/blockquote_utils_test.rs +0 -0
  325. {rumdl-0.0.81 → rumdl-0.0.82}/tests/utils/code_block_utils_extended_test.rs +0 -0
  326. {rumdl-0.0.81 → rumdl-0.0.82}/tests/utils/code_block_utils_test.rs +0 -0
  327. {rumdl-0.0.81 → rumdl-0.0.82}/tests/utils/core_utils_test.rs +0 -0
  328. {rumdl-0.0.81 → rumdl-0.0.82}/tests/utils/front_matter_utils_test.rs +0 -0
  329. {rumdl-0.0.81 → rumdl-0.0.82}/tests/utils/line_index_test.rs +0 -0
  330. {rumdl-0.0.81 → rumdl-0.0.82}/tests/utils/mod.rs +0 -0
  331. {rumdl-0.0.81 → rumdl-0.0.82}/tests/utils_markdown_edge_cases.rs +0 -0
  332. {rumdl-0.0.81 → rumdl-0.0.82}/tests/utils_tests.rs +0 -0
  333. {rumdl-0.0.81 → rumdl-0.0.82}/tests/vscode_extension_fixes.rs +0 -0
@@ -1783,7 +1783,7 @@ dependencies = [
1783
1783
 
1784
1784
  [[package]]
1785
1785
  name = "rumdl"
1786
- version = "0.0.81"
1786
+ version = "0.0.82"
1787
1787
  dependencies = [
1788
1788
  "anyhow",
1789
1789
  "assert_cmd",
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "rumdl"
3
- version = "0.0.81"
3
+ version = "0.0.82"
4
4
  edition = "2021"
5
5
  description = "A fast Markdown linter written in Rust (Ru(st) MarkDown Linter)"
6
6
  authors = ["Ruben J. Jongejan <ruben.jongejan@gmail.com>"]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rumdl
3
- Version: 0.0.81
3
+ Version: 0.0.82
4
4
  Classifier: Development Status :: 4 - Beta
5
5
  Classifier: Environment :: Console
6
6
  Classifier: Intended Audience :: Developers
@@ -87,6 +87,7 @@ enable = ["MD001", "MD003", "MD013", "MD022"]
87
87
  - Useful for gradually adopting rumdl or focusing on specific rule categories
88
88
 
89
89
  **Example CLI usage**:
90
+
90
91
  ```bash
91
92
  rumdl check --enable MD001,MD003,MD013 .
92
93
  ```
@@ -113,6 +114,7 @@ disable = ["MD013", "MD033", "MD041"]
113
114
  - Can be combined with rule-specific configuration to fine-tune behavior
114
115
 
115
116
  **Example CLI usage**:
117
+
116
118
  ```bash
117
119
  rumdl check --disable MD013,MD033 .
118
120
  ```
@@ -150,6 +152,7 @@ exclude = [
150
152
  - Useful for excluding generated files, dependencies, and temporary files
151
153
 
152
154
  **Example CLI usage**:
155
+
153
156
  ```bash
154
157
  rumdl check --exclude "node_modules,build,*.tmp.md" .
155
158
  ```
@@ -180,6 +183,7 @@ include = [
180
183
  - Useful for limiting linting to specific documentation areas
181
184
 
182
185
  **Example CLI usage**:
186
+
183
187
  ```bash
184
188
  rumdl check --include "docs/**/*.md,README.md" .
185
189
  ```
@@ -210,6 +214,7 @@ respect_gitignore = false # Ignore .gitignore files
210
214
  - Respects `.gitignore` files at any level in the directory tree
211
215
 
212
216
  **Example CLI usage**:
217
+
213
218
  ```bash
214
219
  # Don't respect .gitignore files
215
220
  rumdl check --respect-gitignore=false .
@@ -240,6 +245,7 @@ line_length = 120 # Set global line length to 120 characters
240
245
  - When importing from markdownlint configs, top-level `line-length` is mapped to this setting
241
246
 
242
247
  **Example with rule override**:
248
+
243
249
  ```toml
244
250
  [global]
245
251
  line_length = 100 # Global default
@@ -259,6 +265,7 @@ Settings are applied in the following order (later sources override earlier ones
259
265
  ### Example: Precedence in Action
260
266
 
261
267
  Given this configuration file:
268
+
262
269
  ```toml
263
270
  [global]
264
271
  disable = ["MD013", "MD033"]
@@ -266,6 +273,7 @@ exclude = ["node_modules", "build"]
266
273
  ```
267
274
 
268
275
  And this command:
276
+
269
277
  ```bash
270
278
  rumdl check --disable MD001,MD013 --exclude "temp/**" docs/
271
279
  ```
@@ -280,24 +288,30 @@ The final configuration will be:
280
288
  rumdl processes files using the following logic:
281
289
 
282
290
  1. **Start with candidate files**:
283
- - If paths are provided via CLI: use those files/directories
284
- - Otherwise: recursively scan current directory for `.md` and `.markdown` files
291
+
292
+ - If paths are provided via CLI: use those files/directories
293
+ - Otherwise: recursively scan current directory for `.md` and `.markdown` files
285
294
 
286
295
  2. **Apply .gitignore filtering** (if `respect_gitignore = true`):
287
- - Skip files/directories listed in `.gitignore` files
296
+
297
+ - Skip files/directories listed in `.gitignore` files
288
298
 
289
299
  3. **Apply include patterns** (if specified):
290
- - Keep only files matching at least one include pattern
300
+
301
+ - Keep only files matching at least one include pattern
291
302
 
292
303
  4. **Apply exclude patterns**:
293
- - Remove files matching any exclude pattern
304
+
305
+ - Remove files matching any exclude pattern
294
306
 
295
307
  5. **Apply rule filtering**:
296
- - Process remaining files with enabled rules only
308
+
309
+ - Process remaining files with enabled rules only
297
310
 
298
311
  ### Example: File Selection
299
312
 
300
313
  Given this configuration:
314
+
301
315
  ```toml
302
316
  [global]
303
317
  include = ["docs/**/*.md", "README.md"]
@@ -488,4 +502,4 @@ find . -name "*.md" -o -name "*.markdown" | head -10
488
502
  - [Configuration Guide](../README.md#configuration) - Basic configuration setup
489
503
  - [Rules Reference](RULES.md) - Complete list of available rules
490
504
  - [CLI Reference](../README.md#command-line-interface) - Command-line options
491
- - [Rule-specific Configuration](../README.md#configuration-file-example) - Configuring individual rules
505
+ - [Rule-specific Configuration](../README.md#configuration-file-example) - Configuring individual rules
@@ -0,0 +1,60 @@
1
+ # MD001 - Heading levels should only increment by one
2
+
3
+ ## What this rule does
4
+
5
+ Prevents skipping heading levels (like jumping from # to ### without ##).
6
+
7
+ ## Why this matters
8
+
9
+ - **Document structure**: Logical heading hierarchy makes documents easier to navigate
10
+ - **Accessibility**: Screen readers rely on proper heading order to help users
11
+ - **Table of contents**: Automated TOC generators need correct heading levels
12
+ - **SEO**: Search engines use heading structure to understand content
13
+
14
+ ## Examples
15
+
16
+ ### ✅ Correct
17
+
18
+ ```markdown
19
+ # Title
20
+ ## Chapter 1
21
+ ### Section 1.1
22
+ ### Section 1.2
23
+ ## Chapter 2
24
+ ### Section 2.1
25
+ ```
26
+
27
+ ### ❌ Incorrect
28
+
29
+ ```markdown
30
+ # Title
31
+ ### Section 1.1 (skipped level 2)
32
+ ##### Subsection (skipped levels 2, 3, and 4)
33
+ ```
34
+
35
+ ### 🔧 Fixed
36
+
37
+ ```markdown
38
+ # Title
39
+ ## Section 1.1
40
+ ### Subsection
41
+ ```
42
+
43
+ ## Configuration
44
+
45
+ This rule has no configuration options.
46
+
47
+ ## Automatic fixes
48
+
49
+ This rule automatically adjusts heading levels to maintain proper hierarchy, changing skipped levels to the next appropriate level.
50
+
51
+ ## Learn more
52
+
53
+ - [Web Content Accessibility Guidelines - Headings](https://www.w3.org/WAI/tutorials/page-structure/headings/) - Why heading structure matters
54
+ - [CommonMark headings](https://spec.commonmark.org/0.31.2/#atx-headings) - Technical specification
55
+
56
+ ## Related rules
57
+
58
+ - [MD002](md002.md) - First heading should be a top-level heading
59
+ - [MD003](md003.md) - Heading style should be consistent
60
+ - [MD022](md022.md) - Headings should be surrounded by blank lines
@@ -0,0 +1,68 @@
1
+ # MD002 - First heading should be a top-level heading
2
+
3
+ ## What this rule does
4
+
5
+ Ensures the first heading in your document is a level 1 heading (# Title).
6
+
7
+ ## Why this matters
8
+
9
+ - **Document structure**: Every document needs a clear main title
10
+ - **Accessibility**: Screen readers expect documents to start with a main heading
11
+ - **Navigation**: Table of contents generators need a top-level heading
12
+ - **SEO**: Search engines look for a main H1 heading
13
+
14
+ ## Examples
15
+
16
+ ### ✅ Correct
17
+
18
+ ```markdown
19
+ # Document Title
20
+
21
+ ## Section 1
22
+
23
+ ### Subsection 1.1
24
+
25
+ ## Section 2
26
+ ```
27
+
28
+ ### ❌ Incorrect
29
+
30
+ ```markdown
31
+ ## Document Title (starts with level 2)
32
+
33
+ ### Section 1
34
+
35
+ # Main Heading (H1 appears later)
36
+ ```
37
+
38
+ ### 🔧 Fixed
39
+
40
+ ```markdown
41
+ # Document Title
42
+
43
+ ## Section 1
44
+
45
+ ### Subsection 1.1
46
+ ```
47
+
48
+ ## Configuration
49
+
50
+ ```yaml
51
+ MD002:
52
+ level: 1 # The level the first heading should be (default: 1)
53
+ ```
54
+
55
+ ## Automatic fixes
56
+
57
+ This rule automatically changes the first heading to the configured level (default: H1).
58
+
59
+ ## Learn more
60
+
61
+ - [Web Content Accessibility Guidelines - Page Title](https://www.w3.org/WAI/WCAG21/Understanding/page-titled.html) - Why documents need titles
62
+ - [CommonMark headings](https://spec.commonmark.org/0.31.2/#atx-headings) - Technical specification
63
+
64
+ ## Related rules
65
+
66
+ - [MD001](md001.md) - Heading levels should only increment by one
67
+ - [MD003](md003.md) - Heading style should be consistent
68
+ - [MD025](md025.md) - Only one top-level heading allowed
@@ -0,0 +1,85 @@
1
+ # MD003 - Heading style should be consistent
2
+
3
+ ## What this rule does
4
+
5
+ Ensures all headings in your document use the same formatting style.
6
+
7
+ ## Why this matters
8
+
9
+ - **Readability**: Consistent heading styles make documents easier to scan and navigate
10
+ - **Professionalism**: Mixed heading styles look unprofessional and unpolished
11
+ - **Tool compatibility**: Some tools expect consistent heading formats for navigation features
12
+
13
+ ## Examples
14
+
15
+ ### ✅ Correct (using # style)
16
+
17
+ ```markdown
18
+ # First Level Heading
19
+ ## Second Level Heading
20
+ ### Third Level Heading
21
+ ```
22
+
23
+ ### ✅ Correct (using underline style)
24
+
25
+ ```markdown
26
+ First Level Heading
27
+ ==================
28
+
29
+ Second Level Heading
30
+ ------------------
31
+ ```
32
+
33
+ ### ❌ Incorrect (mixed styles)
34
+
35
+ <!-- rumdl-disable MD003 -->
36
+
37
+ ```markdown
38
+ # First Level Heading
39
+
40
+ Second Level Heading
41
+ ------------------
42
+
43
+ ### Third Level Heading
44
+ ```
45
+
46
+ <!-- rumdl-enable MD003 -->
47
+
48
+ ### 🔧 Fixed
49
+
50
+ ```markdown
51
+ # First Level Heading
52
+ ## Second Level Heading
53
+ ### Third Level Heading
54
+ ```
55
+
56
+ ## Configuration
57
+
58
+ ```yaml
59
+ MD003:
60
+ style: "consistent" # Options: "consistent", "atx", "atx_closed", "setext"
61
+ ```
62
+
63
+ ### Style options explained
64
+
65
+ - `"consistent"` (default): Use whatever style appears first in your document
66
+ - `"atx"`: Use # symbols (`# Heading`)
67
+ - `"atx_closed"`: Use # symbols at both ends (`# Heading #`)
68
+ - `"setext"`: Use underlines (equals for level 1, dashes for level 2)
69
+
70
+ > **Note**: Underline style only works for level 1 and 2 headings. Level 3 and below must use # symbols.
71
+
72
+ ## Automatic fixes
73
+
74
+ This rule can automatically convert all headings to match your configured style or the first style found in the document.
75
+
76
+ ## Learn more
77
+
78
+ - [CommonMark specification for headings](https://spec.commonmark.org/0.31.2/#atx-headings) - Technical details about heading syntax
79
+ - [Setext headings](https://spec.commonmark.org/0.31.2/#setext-headings) - Details about underline-style headings
80
+
81
+ ## Related rules
82
+
83
+ - [MD001](md001.md) - Heading levels should only increment by one
84
+ - [MD022](md022.md) - Headings should be surrounded by blank lines
85
+ - [MD023](md023.md) - Headings must start at the beginning of the line
@@ -0,0 +1,84 @@
1
+ # MD004 - Unordered list style should be consistent
2
+
3
+ ## What this rule does
4
+
5
+ Ensures all unordered lists use the same marker (* or + or -) throughout your document.
6
+
7
+ ## Why this matters
8
+
9
+ - **Visual consistency**: Mixed list markers look unprofessional and disorganized
10
+ - **Readability**: Consistent markers make it easier to scan lists
11
+ - **Maintenance**: One style is easier to remember and apply
12
+ - **Style guides**: Most organizations standardize on one list marker
13
+
14
+ ## Examples
15
+
16
+ ### ✅ Correct (using * throughout)
17
+
18
+ ```markdown
19
+ * Item 1
20
+ * Item 2
21
+ * Nested item 1
22
+ * Nested item 2
23
+ * Item 3
24
+ ```
25
+
26
+ ### ✅ Correct (using - throughout)
27
+
28
+ ```markdown
29
+ - Item 1
30
+ - Item 2
31
+ - Nested item 1
32
+ - Nested item 2
33
+ - Item 3
34
+ ```
35
+
36
+ ### ❌ Incorrect
37
+
38
+ ```markdown
39
+ * Item 1
40
+ + Item 2 (different marker)
41
+ - Nested item 1
42
+ * Nested item 2
43
+ - Item 3 (yet another marker)
44
+ ```
45
+
46
+ ### 🔧 Fixed
47
+
48
+ ```markdown
49
+ * Item 1
50
+ * Item 2
51
+ * Nested item 1
52
+ * Nested item 2
53
+ * Item 3
54
+ ```
55
+
56
+ ## Configuration
57
+
58
+ ```yaml
59
+ MD004:
60
+ style: "consistent" # Options: "consistent", "asterisk", "plus", "dash"
61
+ ```
62
+
63
+ ### Style options
64
+
65
+ - `"consistent"` (default): Use whatever marker appears first in your document
66
+ - `"asterisk"`: Always use * markers
67
+ - `"plus"`: Always use + markers
68
+ - `"dash"`: Always use - markers
69
+
70
+ ## Automatic fixes
71
+
72
+ This rule automatically converts all list markers to match your configured style or the first marker found.
73
+
74
+ ## Learn more
75
+
76
+ - [CommonMark lists](https://spec.commonmark.org/0.31.2/#lists) - Technical specification
77
+ - [Markdown Guide - Lists](https://www.markdownguide.org/basic-syntax/#lists) - List best practices
78
+
79
+ ## Related rules
80
+
81
+ - [MD005](md005.md) - List indentation
82
+ - [MD007](md007.md) - Unordered list indentation
83
+ - [MD030](md030.md) - List marker spacing
84
+ - [MD032](md032.md) - Lists should be surrounded by blank lines
@@ -0,0 +1,79 @@
1
+ # MD005 - List indentation should be consistent
2
+
3
+ ## What this rule does
4
+
5
+ Ensures all list items at the same level use the same indentation (0 spaces for top level, 2 spaces per nested level).
6
+
7
+ ## Why this matters
8
+
9
+ - **Visual alignment**: Consistent indentation makes lists easier to scan
10
+ - **Readability**: Clear hierarchy helps readers understand list structure
11
+ - **Rendering**: Some Markdown processors require specific indentation
12
+ - **Maintenance**: Consistent spacing is easier to edit and update
13
+
14
+ ## Examples
15
+
16
+ ### ✅ Correct
17
+
18
+ ```markdown
19
+ * Item 1
20
+ * Item 2
21
+ * Nested item (2 spaces)
22
+ * Another nested item
23
+ * Deep nested (4 spaces)
24
+ * Item 3
25
+
26
+ 1. First item
27
+ 2. Second item
28
+ 1. Nested ordered (2 spaces)
29
+ 2. Another nested
30
+ 3. Third item
31
+ ```
32
+
33
+ ### ❌ Incorrect
34
+
35
+ ```markdown
36
+ * Item 1
37
+ * Item 2 (wrong: 1 space)
38
+ * Nested (wrong: 3 spaces)
39
+ * Another (wrong: 4 spaces for level 2)
40
+
41
+ 1. First item
42
+ 2. Second item (wrong: 1 space)
43
+ 1. Nested (wrong: 4 spaces)
44
+
45
+ ```
46
+
47
+ ### 🔧 Fixed
48
+
49
+ ```markdown
50
+ * Item 1
51
+ * Item 2
52
+ * Nested
53
+ * Another
54
+
55
+ 1. First item
56
+ 2. Second item
57
+ 1. Nested
58
+ ```
59
+
60
+ ## Configuration
61
+
62
+ This rule has no configuration options. It enforces:
63
+ - 0 spaces for top-level items
64
+ - 2 spaces per nested level
65
+
66
+ ## Automatic fixes
67
+
68
+ This rule automatically adjusts list item indentation to the correct number of spaces for each level.
69
+
70
+ ## Learn more
71
+
72
+ - [CommonMark lists](https://spec.commonmark.org/0.31.2/#lists) - Technical specification
73
+ - [Markdown Guide - Lists](https://www.markdownguide.org/basic-syntax/#lists) - List formatting guide
74
+
75
+ ## Related rules
76
+
77
+ - [MD004](md004.md) - Unordered list style should be consistent
78
+ - [MD007](md007.md) - Unordered list indentation
79
+ - [MD030](md030.md) - Spaces after list markers
@@ -0,0 +1,72 @@
1
+ # MD006 - Consider starting lists at the beginning of the line
2
+
3
+ ## What this rule does
4
+
5
+ Ensures top-level list items start at the beginning of the line (no indentation).
6
+
7
+ ## Why this matters
8
+
9
+ - **Clarity**: Indented top-level lists can be confused with nested lists
10
+ - **Consistency**: All documents should start lists the same way
11
+ - **Readability**: Clear distinction between top-level and nested items
12
+ - **Standards**: Most Markdown style guides require lists to start at column 0
13
+
14
+ ## Examples
15
+
16
+ ### ✅ Correct
17
+
18
+ ```markdown
19
+ * Item 1
20
+ * Item 2
21
+ * Nested item
22
+ * Another nested item
23
+ * Item 3
24
+
25
+ - First item
26
+ - Second item
27
+ - Nested under second
28
+ - Third item
29
+ ```
30
+
31
+ ### ❌ Incorrect
32
+
33
+ ```markdown
34
+ * Item 1 (indented 2 spaces)
35
+ * Item 2 (indented 2 spaces)
36
+ * Nested item
37
+ * Item 3 (indented 2 spaces)
38
+ ```
39
+
40
+ ### 🔧 Fixed
41
+
42
+ ```markdown
43
+ * Item 1
44
+ * Item 2
45
+ * Nested item
46
+ * Item 3
47
+ ```
48
+
49
+ ## Configuration
50
+
51
+ This rule has no configuration options. Top-level lists must start at the beginning of the line.
52
+
53
+ ## Automatic fixes
54
+
55
+ This rule automatically removes indentation from top-level list items.
56
+
57
+ ## Special notes
58
+
59
+ - Only applies to unordered lists (*, -, +)
60
+ - Ordered lists (1., 2., etc.) are not affected
61
+ - Each list in a document is evaluated separately
62
+
63
+ ## Learn more
64
+
65
+ - [CommonMark lists](https://spec.commonmark.org/0.31.2/#lists) - Technical specification
66
+ - [Markdown Guide - Lists](https://www.markdownguide.org/basic-syntax/#lists) - List best practices
67
+
68
+ ## Related rules
69
+
70
+ - [MD004](md004.md) - Unordered list style should be consistent
71
+ - [MD005](md005.md) - List indentation should be consistent
72
+ - [MD007](md007.md) - Unordered list indentation
@@ -0,0 +1,75 @@
1
+ # MD007 - Keep list indentation consistent
2
+
3
+ ## What this rule does
4
+
5
+ Ensures nested list items are indented with exactly 2 spaces per level for consistent formatting.
6
+
7
+ ## Why this matters
8
+
9
+ - **Readability**: Consistent indentation makes nested lists easy to scan and understand
10
+ - **Professional appearance**: Well-formatted lists look polished and organized
11
+ - **Tool compatibility**: Many Markdown tools expect 2-space indentation for proper rendering
12
+ - **Team consistency**: Standard indentation prevents formatting conflicts in shared documents
13
+
14
+ ## Examples
15
+
16
+ ### ✅ Correct
17
+
18
+ ```markdown
19
+ * Chapter 1
20
+ * Section 1.1
21
+ * Subsection 1.1.1
22
+ * Subsection 1.1.2
23
+ * Section 1.2
24
+ * Chapter 2
25
+ * Section 2.1
26
+ ```
27
+
28
+ ### ❌ Incorrect
29
+
30
+ <!-- rumdl-disable MD007 -->
31
+
32
+ ```markdown
33
+ * Chapter 1
34
+ * Section 1.1 (3 spaces - too many!)
35
+ * Subsection 1.1.1 (6 spaces)
36
+ * Section 1.2 (1 space - too few!)
37
+ * Chapter 2
38
+ * Section 2.1 (4 spaces - inconsistent)
39
+
40
+ ```
41
+
42
+ <!-- rumdl-enable MD007 -->
43
+
44
+ ### 🔧 Fixed
45
+
46
+ ```markdown
47
+ * Chapter 1
48
+ * Section 1.1
49
+ * Subsection 1.1.1
50
+ * Section 1.2
51
+ * Chapter 2
52
+ * Section 2.1
53
+ ```
54
+
55
+ ## Configuration
56
+
57
+ ```yaml
58
+ MD007:
59
+ indent: 2 # Number of spaces per indentation level (default: 2)
60
+ ```
61
+
62
+ ## Automatic fixes
63
+
64
+ This rule automatically adjusts the indentation of nested list items to use exactly 2 spaces (or your configured value) per nesting level.
65
+
66
+ ## Learn more
67
+
68
+ - [Lists in Markdown](https://www.markdownguide.org/basic-syntax/#lists-1) - How to create well-formatted lists
69
+ - [CommonMark specification](https://spec.commonmark.org/0.31.2/#list-items) - Technical details about list formatting
70
+
71
+ ## Related rules
72
+
73
+ - [MD004](md004.md) - Use consistent markers for unordered lists
74
+ - [MD005](md005.md) - Keep list indentation consistent
75
+ - [MD006](md006.md) - Start lists at the beginning of the line