rumdl 0.0.162__tar.gz → 0.0.163__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 (464) hide show
  1. {rumdl-0.0.162 → rumdl-0.0.163}/CHANGELOG.md +59 -1
  2. {rumdl-0.0.162 → rumdl-0.0.163}/Cargo.lock +1 -1
  3. {rumdl-0.0.162 → rumdl-0.0.163}/Cargo.toml +1 -1
  4. {rumdl-0.0.162 → rumdl-0.0.163}/PKG-INFO +14 -1
  5. {rumdl-0.0.162 → rumdl-0.0.163}/README.md +13 -0
  6. {rumdl-0.0.162 → rumdl-0.0.163}/docs/md024.md +7 -4
  7. {rumdl-0.0.162 → rumdl-0.0.163}/src/filtered_lines.rs +22 -1
  8. {rumdl-0.0.162 → rumdl-0.0.163}/src/lint_context.rs +101 -76
  9. {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md013_line_length.rs +87 -68
  10. rumdl-0.0.163/src/rules/md024_no_duplicate_heading/md024_config.rs +38 -0
  11. {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md024_no_duplicate_heading.rs +56 -14
  12. {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md045_no_alt_text.rs +2 -1
  13. {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md046_code_block_style.rs +38 -11
  14. {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md049_emphasis_style.rs +7 -2
  15. {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md052_reference_links_images.rs +47 -3
  16. rumdl-0.0.163/tests/html_comments_test.rs +224 -0
  17. {rumdl-0.0.162 → rumdl-0.0.163}/tests/inline_config_blocks_test.rs +8 -9
  18. {rumdl-0.0.162 → rumdl-0.0.163}/tests/md052_literal_brackets_test.rs +34 -0
  19. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/heading_edge_cases_test.rs +3 -1
  20. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/inline_content_edge_cases_test.rs +6 -1
  21. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md024_test.rs +2 -2
  22. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md046_test.rs +29 -0
  23. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md050_test.rs +88 -0
  24. {rumdl-0.0.162 → rumdl-0.0.163}/tests/sentence_per_line_test.rs +1 -4
  25. rumdl-0.0.162/src/rules/md024_no_duplicate_heading/md024_config.rs +0 -19
  26. {rumdl-0.0.162 → rumdl-0.0.163}/.config/nextest.toml +0 -0
  27. {rumdl-0.0.162 → rumdl-0.0.163}/.mise.toml +0 -0
  28. {rumdl-0.0.162 → rumdl-0.0.163}/.pre-commit-config.yaml +0 -0
  29. {rumdl-0.0.162 → rumdl-0.0.163}/.rumdl.toml +0 -0
  30. {rumdl-0.0.162 → rumdl-0.0.163}/.rustfmt.toml +0 -0
  31. {rumdl-0.0.162 → rumdl-0.0.163}/LICENSE +0 -0
  32. {rumdl-0.0.162 → rumdl-0.0.163}/MANIFEST.in +0 -0
  33. {rumdl-0.0.162 → rumdl-0.0.163}/Makefile +0 -0
  34. {rumdl-0.0.162 → rumdl-0.0.163}/assets/logo.png +0 -0
  35. {rumdl-0.0.162 → rumdl-0.0.163}/benches/fix_performance.rs +0 -0
  36. {rumdl-0.0.162 → rumdl-0.0.163}/benches/range_performance.rs +0 -0
  37. {rumdl-0.0.162 → rumdl-0.0.163}/benches/range_utils_benchmark.rs +0 -0
  38. {rumdl-0.0.162 → rumdl-0.0.163}/benches/rule_performance.rs +0 -0
  39. {rumdl-0.0.162 → rumdl-0.0.163}/benches/simple_fix_bench.rs +0 -0
  40. {rumdl-0.0.162 → rumdl-0.0.163}/benchmark/bin/bench_lint_context.rs +0 -0
  41. {rumdl-0.0.162 → rumdl-0.0.163}/benchmark/bin/benchmark.rs +0 -0
  42. {rumdl-0.0.162 → rumdl-0.0.163}/benchmark/bin/benchmark_rule.rs +0 -0
  43. {rumdl-0.0.162 → rumdl-0.0.163}/benchmark/bin/file_parallel_benchmark.rs +0 -0
  44. {rumdl-0.0.162 → rumdl-0.0.163}/benchmark/bin/measure_code_span_performance.rs +0 -0
  45. {rumdl-0.0.162 → rumdl-0.0.163}/docs/RULES.md +0 -0
  46. {rumdl-0.0.162 → rumdl-0.0.163}/docs/global-settings.md +0 -0
  47. {rumdl-0.0.162 → rumdl-0.0.163}/docs/inline-configuration.md +0 -0
  48. {rumdl-0.0.162 → rumdl-0.0.163}/docs/md001.md +0 -0
  49. {rumdl-0.0.162 → rumdl-0.0.163}/docs/md002.md +0 -0
  50. {rumdl-0.0.162 → rumdl-0.0.163}/docs/md003.md +0 -0
  51. {rumdl-0.0.162 → rumdl-0.0.163}/docs/md004.md +0 -0
  52. {rumdl-0.0.162 → rumdl-0.0.163}/docs/md005.md +0 -0
  53. {rumdl-0.0.162 → rumdl-0.0.163}/docs/md006.md +0 -0
  54. {rumdl-0.0.162 → rumdl-0.0.163}/docs/md007.md +0 -0
  55. {rumdl-0.0.162 → rumdl-0.0.163}/docs/md009.md +0 -0
  56. {rumdl-0.0.162 → rumdl-0.0.163}/docs/md010.md +0 -0
  57. {rumdl-0.0.162 → rumdl-0.0.163}/docs/md011.md +0 -0
  58. {rumdl-0.0.162 → rumdl-0.0.163}/docs/md012.md +0 -0
  59. {rumdl-0.0.162 → rumdl-0.0.163}/docs/md013.md +0 -0
  60. {rumdl-0.0.162 → rumdl-0.0.163}/docs/md014.md +0 -0
  61. {rumdl-0.0.162 → rumdl-0.0.163}/docs/md018.md +0 -0
  62. {rumdl-0.0.162 → rumdl-0.0.163}/docs/md019.md +0 -0
  63. {rumdl-0.0.162 → rumdl-0.0.163}/docs/md020.md +0 -0
  64. {rumdl-0.0.162 → rumdl-0.0.163}/docs/md021.md +0 -0
  65. {rumdl-0.0.162 → rumdl-0.0.163}/docs/md022.md +0 -0
  66. {rumdl-0.0.162 → rumdl-0.0.163}/docs/md023.md +0 -0
  67. {rumdl-0.0.162 → rumdl-0.0.163}/docs/md025.md +0 -0
  68. {rumdl-0.0.162 → rumdl-0.0.163}/docs/md026.md +0 -0
  69. {rumdl-0.0.162 → rumdl-0.0.163}/docs/md027.md +0 -0
  70. {rumdl-0.0.162 → rumdl-0.0.163}/docs/md028.md +0 -0
  71. {rumdl-0.0.162 → rumdl-0.0.163}/docs/md029.md +0 -0
  72. {rumdl-0.0.162 → rumdl-0.0.163}/docs/md030.md +0 -0
  73. {rumdl-0.0.162 → rumdl-0.0.163}/docs/md031.md +0 -0
  74. {rumdl-0.0.162 → rumdl-0.0.163}/docs/md032.md +0 -0
  75. {rumdl-0.0.162 → rumdl-0.0.163}/docs/md033.md +0 -0
  76. {rumdl-0.0.162 → rumdl-0.0.163}/docs/md034.md +0 -0
  77. {rumdl-0.0.162 → rumdl-0.0.163}/docs/md035.md +0 -0
  78. {rumdl-0.0.162 → rumdl-0.0.163}/docs/md036.md +0 -0
  79. {rumdl-0.0.162 → rumdl-0.0.163}/docs/md037.md +0 -0
  80. {rumdl-0.0.162 → rumdl-0.0.163}/docs/md038.md +0 -0
  81. {rumdl-0.0.162 → rumdl-0.0.163}/docs/md039.md +0 -0
  82. {rumdl-0.0.162 → rumdl-0.0.163}/docs/md040.md +0 -0
  83. {rumdl-0.0.162 → rumdl-0.0.163}/docs/md041.md +0 -0
  84. {rumdl-0.0.162 → rumdl-0.0.163}/docs/md042.md +0 -0
  85. {rumdl-0.0.162 → rumdl-0.0.163}/docs/md043.md +0 -0
  86. {rumdl-0.0.162 → rumdl-0.0.163}/docs/md044.md +0 -0
  87. {rumdl-0.0.162 → rumdl-0.0.163}/docs/md045.md +0 -0
  88. {rumdl-0.0.162 → rumdl-0.0.163}/docs/md046.md +0 -0
  89. {rumdl-0.0.162 → rumdl-0.0.163}/docs/md047.md +0 -0
  90. {rumdl-0.0.162 → rumdl-0.0.163}/docs/md048.md +0 -0
  91. {rumdl-0.0.162 → rumdl-0.0.163}/docs/md049.md +0 -0
  92. {rumdl-0.0.162 → rumdl-0.0.163}/docs/md050.md +0 -0
  93. {rumdl-0.0.162 → rumdl-0.0.163}/docs/md051.md +0 -0
  94. {rumdl-0.0.162 → rumdl-0.0.163}/docs/md052.md +0 -0
  95. {rumdl-0.0.162 → rumdl-0.0.163}/docs/md053.md +0 -0
  96. {rumdl-0.0.162 → rumdl-0.0.163}/docs/md054.md +0 -0
  97. {rumdl-0.0.162 → rumdl-0.0.163}/docs/md055.md +0 -0
  98. {rumdl-0.0.162 → rumdl-0.0.163}/docs/md056.md +0 -0
  99. {rumdl-0.0.162 → rumdl-0.0.163}/docs/md057.md +0 -0
  100. {rumdl-0.0.162 → rumdl-0.0.163}/docs/md058.md +0 -0
  101. {rumdl-0.0.162 → rumdl-0.0.163}/docs/vscode-extension.md +0 -0
  102. {rumdl-0.0.162 → rumdl-0.0.163}/pyproject.toml +0 -0
  103. {rumdl-0.0.162 → rumdl-0.0.163}/rumdl/__init__.py +0 -0
  104. {rumdl-0.0.162 → rumdl-0.0.163}/rumdl/__main__.py +0 -0
  105. {rumdl-0.0.162 → rumdl-0.0.163}/rumdl/py.typed +0 -0
  106. {rumdl-0.0.162 → rumdl-0.0.163}/rumdl.schema.json +0 -0
  107. {rumdl-0.0.162 → rumdl-0.0.163}/rumdl.toml.example +0 -0
  108. {rumdl-0.0.162 → rumdl-0.0.163}/rust-toolchain.toml +0 -0
  109. {rumdl-0.0.162 → rumdl-0.0.163}/scripts/extract-changelog.sh +0 -0
  110. {rumdl-0.0.162 → rumdl-0.0.163}/scripts/generate-downloads-table.sh +0 -0
  111. {rumdl-0.0.162 → rumdl-0.0.163}/scripts/pre-release.sh +0 -0
  112. {rumdl-0.0.162 → rumdl-0.0.163}/scripts/prepare-release.sh +0 -0
  113. {rumdl-0.0.162 → rumdl-0.0.163}/scripts/setup-pre-commit.sh +0 -0
  114. {rumdl-0.0.162 → rumdl-0.0.163}/scripts/update-pre-commit-docs.sh +0 -0
  115. {rumdl-0.0.162 → rumdl-0.0.163}/src/config.rs +0 -0
  116. {rumdl-0.0.162 → rumdl-0.0.163}/src/exit_codes.rs +0 -0
  117. {rumdl-0.0.162 → rumdl-0.0.163}/src/file_processor.rs +0 -0
  118. {rumdl-0.0.162 → rumdl-0.0.163}/src/fix_coordinator.rs +0 -0
  119. {rumdl-0.0.162 → rumdl-0.0.163}/src/formatter.rs +0 -0
  120. {rumdl-0.0.162 → rumdl-0.0.163}/src/inline_config.rs +0 -0
  121. {rumdl-0.0.162 → rumdl-0.0.163}/src/lib.rs +0 -0
  122. {rumdl-0.0.162 → rumdl-0.0.163}/src/lsp/mod.rs +0 -0
  123. {rumdl-0.0.162 → rumdl-0.0.163}/src/lsp/server.rs +0 -0
  124. {rumdl-0.0.162 → rumdl-0.0.163}/src/lsp/types.rs +0 -0
  125. {rumdl-0.0.162 → rumdl-0.0.163}/src/main.rs +0 -0
  126. {rumdl-0.0.162 → rumdl-0.0.163}/src/markdownlint_config.rs +0 -0
  127. {rumdl-0.0.162 → rumdl-0.0.163}/src/output/formatters/azure.rs +0 -0
  128. {rumdl-0.0.162 → rumdl-0.0.163}/src/output/formatters/concise.rs +0 -0
  129. {rumdl-0.0.162 → rumdl-0.0.163}/src/output/formatters/github.rs +0 -0
  130. {rumdl-0.0.162 → rumdl-0.0.163}/src/output/formatters/gitlab.rs +0 -0
  131. {rumdl-0.0.162 → rumdl-0.0.163}/src/output/formatters/grouped.rs +0 -0
  132. {rumdl-0.0.162 → rumdl-0.0.163}/src/output/formatters/json.rs +0 -0
  133. {rumdl-0.0.162 → rumdl-0.0.163}/src/output/formatters/json_lines.rs +0 -0
  134. {rumdl-0.0.162 → rumdl-0.0.163}/src/output/formatters/junit.rs +0 -0
  135. {rumdl-0.0.162 → rumdl-0.0.163}/src/output/formatters/mod.rs +0 -0
  136. {rumdl-0.0.162 → rumdl-0.0.163}/src/output/formatters/pylint.rs +0 -0
  137. {rumdl-0.0.162 → rumdl-0.0.163}/src/output/formatters/sarif.rs +0 -0
  138. {rumdl-0.0.162 → rumdl-0.0.163}/src/output/formatters/text.rs +0 -0
  139. {rumdl-0.0.162 → rumdl-0.0.163}/src/output/mod.rs +0 -0
  140. {rumdl-0.0.162 → rumdl-0.0.163}/src/parallel.rs +0 -0
  141. {rumdl-0.0.162 → rumdl-0.0.163}/src/performance.rs +0 -0
  142. {rumdl-0.0.162 → rumdl-0.0.163}/src/profiling.rs +0 -0
  143. {rumdl-0.0.162 → rumdl-0.0.163}/src/rule.rs +0 -0
  144. {rumdl-0.0.162 → rumdl-0.0.163}/src/rule_config.rs +0 -0
  145. {rumdl-0.0.162 → rumdl-0.0.163}/src/rule_config_serde.rs +0 -0
  146. {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/blockquote_utils.rs +0 -0
  147. {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/code_block_utils.rs +0 -0
  148. {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/code_fence_utils.rs +0 -0
  149. {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/emphasis_style.rs +0 -0
  150. {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/front_matter_utils.rs +0 -0
  151. {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/heading_utils.rs +0 -0
  152. {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/list_utils.rs +0 -0
  153. {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md001_heading_increment.rs +0 -0
  154. {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md002_first_heading_h1/md002_config.rs +0 -0
  155. {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md002_first_heading_h1.rs +0 -0
  156. {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md003_heading_style/md003_config.rs +0 -0
  157. {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md003_heading_style.rs +0 -0
  158. {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md004_unordered_list_style/md004_config.rs +0 -0
  159. {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md004_unordered_list_style.rs +0 -0
  160. {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md005_list_indent.rs +0 -0
  161. {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md006_start_bullets.rs +0 -0
  162. {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md007_ul_indent/md007_config.rs +0 -0
  163. {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md007_ul_indent.rs +0 -0
  164. {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md009_trailing_spaces/md009_config.rs +0 -0
  165. {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md009_trailing_spaces.rs +0 -0
  166. {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md010_no_hard_tabs/md010_config.rs +0 -0
  167. {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md010_no_hard_tabs.rs +0 -0
  168. {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md011_no_reversed_links.rs +0 -0
  169. {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md012_no_multiple_blanks/md012_config.rs +0 -0
  170. {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md012_no_multiple_blanks.rs +0 -0
  171. {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md013_line_length/md013_config.rs +0 -0
  172. {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md014_commands_show_output/md014_config.rs +0 -0
  173. {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md014_commands_show_output.rs +0 -0
  174. {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md018_no_missing_space_atx.rs +0 -0
  175. {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md019_no_multiple_space_atx.rs +0 -0
  176. {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md020_no_missing_space_closed_atx.rs +0 -0
  177. {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md021_no_multiple_space_closed_atx.rs +0 -0
  178. {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md022_blanks_around_headings/md022_config.rs +0 -0
  179. {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md022_blanks_around_headings.rs +0 -0
  180. {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md023_heading_start_left.rs +0 -0
  181. {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md025_single_title/md025_config.rs +0 -0
  182. {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md025_single_title.rs +0 -0
  183. {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md026_no_trailing_punctuation/md026_config.rs +0 -0
  184. {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md026_no_trailing_punctuation.rs +0 -0
  185. {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md027_multiple_spaces_blockquote.rs +0 -0
  186. {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md028_no_blanks_blockquote.rs +0 -0
  187. {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md029_ordered_list_prefix/md029_config.rs +0 -0
  188. {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md029_ordered_list_prefix.rs +0 -0
  189. {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md030_list_marker_space/md030_config.rs +0 -0
  190. {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md030_list_marker_space.rs +0 -0
  191. {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md031_blanks_around_fences.rs +0 -0
  192. {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md032_blanks_around_lists.rs +0 -0
  193. {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md033_no_inline_html/md033_config.rs +0 -0
  194. {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md033_no_inline_html.rs +0 -0
  195. {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md034_no_bare_urls.rs +0 -0
  196. {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md035_hr_style/md035_config.rs +0 -0
  197. {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md035_hr_style.rs +0 -0
  198. {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md036_no_emphasis_only_first/md036_config.rs +0 -0
  199. {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md036_no_emphasis_only_first.rs +0 -0
  200. {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md037_spaces_around_emphasis.rs +0 -0
  201. {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md038_no_space_in_code.rs +0 -0
  202. {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md039_no_space_in_links.rs +0 -0
  203. {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md040_fenced_code_language.rs +0 -0
  204. {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md041_first_line_heading.rs +0 -0
  205. {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md042_no_empty_links.rs +0 -0
  206. {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md043_required_headings.rs +0 -0
  207. {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md044_proper_names/md044_config.rs +0 -0
  208. {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md044_proper_names.rs +0 -0
  209. {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md045_no_alt_text/md045_config.rs +0 -0
  210. {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md046_code_block_style/md046_config.rs +0 -0
  211. {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md047_single_trailing_newline.rs +0 -0
  212. {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md048_code_fence_style/md048_config.rs +0 -0
  213. {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md048_code_fence_style.rs +0 -0
  214. {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md049_emphasis_style/md049_config.rs +0 -0
  215. {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md050_strong_style/md050_config.rs +0 -0
  216. {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md050_strong_style.rs +0 -0
  217. {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md051_link_fragments.rs +0 -0
  218. {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md053_link_image_reference_definitions.rs +0 -0
  219. {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md054_link_image_style/md054_config.rs +0 -0
  220. {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md054_link_image_style.rs +0 -0
  221. {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md055_table_pipe_style/md055_config.rs +0 -0
  222. {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md055_table_pipe_style.rs +0 -0
  223. {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md056_table_column_count.rs +0 -0
  224. {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md057_existing_relative_links/md057_config.rs +0 -0
  225. {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md057_existing_relative_links.rs +0 -0
  226. {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/md058_blanks_around_tables.rs +0 -0
  227. {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/mod.rs +0 -0
  228. {rumdl-0.0.162 → rumdl-0.0.163}/src/rules/strong_style.rs +0 -0
  229. {rumdl-0.0.162 → rumdl-0.0.163}/src/stdin_processor.rs +0 -0
  230. {rumdl-0.0.162 → rumdl-0.0.163}/src/utils/anchor_styles/github.rs +0 -0
  231. {rumdl-0.0.162 → rumdl-0.0.163}/src/utils/anchor_styles/jekyll.rs +0 -0
  232. {rumdl-0.0.162 → rumdl-0.0.163}/src/utils/anchor_styles/kramdown.rs +0 -0
  233. {rumdl-0.0.162 → rumdl-0.0.163}/src/utils/anchor_styles/kramdown_gfm.rs +0 -0
  234. {rumdl-0.0.162 → rumdl-0.0.163}/src/utils/anchor_styles/mod.rs +0 -0
  235. {rumdl-0.0.162 → rumdl-0.0.163}/src/utils/ast_utils.rs +0 -0
  236. {rumdl-0.0.162 → rumdl-0.0.163}/src/utils/code_block_utils.rs +0 -0
  237. {rumdl-0.0.162 → rumdl-0.0.163}/src/utils/document_structure.rs +0 -0
  238. {rumdl-0.0.162 → rumdl-0.0.163}/src/utils/early_returns.rs +0 -0
  239. {rumdl-0.0.162 → rumdl-0.0.163}/src/utils/element_cache.rs +0 -0
  240. {rumdl-0.0.162 → rumdl-0.0.163}/src/utils/emphasis_utils.rs +0 -0
  241. {rumdl-0.0.162 → rumdl-0.0.163}/src/utils/fix_utils.rs +0 -0
  242. {rumdl-0.0.162 → rumdl-0.0.163}/src/utils/header_id_utils.rs +0 -0
  243. {rumdl-0.0.162 → rumdl-0.0.163}/src/utils/jinja_utils.rs +0 -0
  244. {rumdl-0.0.162 → rumdl-0.0.163}/src/utils/kramdown_utils.rs +0 -0
  245. {rumdl-0.0.162 → rumdl-0.0.163}/src/utils/line_ending.rs +0 -0
  246. {rumdl-0.0.162 → rumdl-0.0.163}/src/utils/markdown_elements.rs +0 -0
  247. {rumdl-0.0.162 → rumdl-0.0.163}/src/utils/mkdocs_admonitions.rs +0 -0
  248. {rumdl-0.0.162 → rumdl-0.0.163}/src/utils/mkdocs_common.rs +0 -0
  249. {rumdl-0.0.162 → rumdl-0.0.163}/src/utils/mkdocs_critic.rs +0 -0
  250. {rumdl-0.0.162 → rumdl-0.0.163}/src/utils/mkdocs_footnotes.rs +0 -0
  251. {rumdl-0.0.162 → rumdl-0.0.163}/src/utils/mkdocs_patterns.rs +0 -0
  252. {rumdl-0.0.162 → rumdl-0.0.163}/src/utils/mkdocs_snippets.rs +0 -0
  253. {rumdl-0.0.162 → rumdl-0.0.163}/src/utils/mkdocs_tabs.rs +0 -0
  254. {rumdl-0.0.162 → rumdl-0.0.163}/src/utils/mkdocs_test_utils.rs +0 -0
  255. {rumdl-0.0.162 → rumdl-0.0.163}/src/utils/mkdocstrings_refs.rs +0 -0
  256. {rumdl-0.0.162 → rumdl-0.0.163}/src/utils/mod.rs +0 -0
  257. {rumdl-0.0.162 → rumdl-0.0.163}/src/utils/range_utils.rs +0 -0
  258. {rumdl-0.0.162 → rumdl-0.0.163}/src/utils/regex_cache.rs +0 -0
  259. {rumdl-0.0.162 → rumdl-0.0.163}/src/utils/skip_context.rs +0 -0
  260. {rumdl-0.0.162 → rumdl-0.0.163}/src/utils/string_interner.rs +0 -0
  261. {rumdl-0.0.162 → rumdl-0.0.163}/src/utils/table_utils.rs +0 -0
  262. {rumdl-0.0.162 → rumdl-0.0.163}/src/utils/text_reflow.rs +0 -0
  263. {rumdl-0.0.162 → rumdl-0.0.163}/src/vscode.rs +0 -0
  264. {rumdl-0.0.162 → rumdl-0.0.163}/src/watch.rs +0 -0
  265. {rumdl-0.0.162 → rumdl-0.0.163}/tests/advanced_integration_tests.rs +0 -0
  266. {rumdl-0.0.162 → rumdl-0.0.163}/tests/character_ranges/additional_tests.rs +0 -0
  267. {rumdl-0.0.162 → rumdl-0.0.163}/tests/character_ranges/basic_tests.rs +0 -0
  268. {rumdl-0.0.162 → rumdl-0.0.163}/tests/character_ranges/comprehensive_tests.rs +0 -0
  269. {rumdl-0.0.162 → rumdl-0.0.163}/tests/character_ranges/extended_tests.rs +0 -0
  270. {rumdl-0.0.162 → rumdl-0.0.163}/tests/character_ranges/mod.rs +0 -0
  271. {rumdl-0.0.162 → rumdl-0.0.163}/tests/character_ranges/unicode_utils.rs +0 -0
  272. {rumdl-0.0.162 → rumdl-0.0.163}/tests/cli_duplication_test.rs +0 -0
  273. {rumdl-0.0.162 → rumdl-0.0.163}/tests/cli_explain_test.rs +0 -0
  274. {rumdl-0.0.162 → rumdl-0.0.163}/tests/cli_flag_precedence_test.rs +0 -0
  275. {rumdl-0.0.162 → rumdl-0.0.163}/tests/cli_integration_tests.rs +0 -0
  276. {rumdl-0.0.162 → rumdl-0.0.163}/tests/cli_lsp_fix_consistency.rs +0 -0
  277. {rumdl-0.0.162 → rumdl-0.0.163}/tests/cli_statistics_test.rs +0 -0
  278. {rumdl-0.0.162 → rumdl-0.0.163}/tests/code_block_blockquote_edge_cases.rs +0 -0
  279. {rumdl-0.0.162 → rumdl-0.0.163}/tests/common/cli_test_utils.rs +0 -0
  280. {rumdl-0.0.162 → rumdl-0.0.163}/tests/common/fixtures.rs +0 -0
  281. {rumdl-0.0.162 → rumdl-0.0.163}/tests/common/mod.rs +0 -0
  282. {rumdl-0.0.162 → rumdl-0.0.163}/tests/common/test_utils.rs +0 -0
  283. {rumdl-0.0.162 → rumdl-0.0.163}/tests/commonmark_compliance_tests.rs +0 -0
  284. {rumdl-0.0.162 → rumdl-0.0.163}/tests/comprehensive_integration_tests.rs +0 -0
  285. {rumdl-0.0.162 → rumdl-0.0.163}/tests/comprehensive_output_format_tests.rs +0 -0
  286. {rumdl-0.0.162 → rumdl-0.0.163}/tests/config_application_tests.rs +0 -0
  287. {rumdl-0.0.162 → rumdl-0.0.163}/tests/config_file_command_test.rs +0 -0
  288. {rumdl-0.0.162 → rumdl-0.0.163}/tests/config_tests.rs +0 -0
  289. {rumdl-0.0.162 → rumdl-0.0.163}/tests/config_upward_traversal_test.rs +0 -0
  290. {rumdl-0.0.162 → rumdl-0.0.163}/tests/configuration_inheritance_tests.rs +0 -0
  291. {rumdl-0.0.162 → rumdl-0.0.163}/tests/consistency_regression_tests.rs +0 -0
  292. {rumdl-0.0.162 → rumdl-0.0.163}/tests/crlf_line_endings_test.rs +0 -0
  293. {rumdl-0.0.162 → rumdl-0.0.163}/tests/cross_platform_compatibility_tests.rs +0 -0
  294. {rumdl-0.0.162 → rumdl-0.0.163}/tests/deeply_nested_lists_performance_test.rs +0 -0
  295. {rumdl-0.0.162 → rumdl-0.0.163}/tests/escaped_brackets_test.rs +0 -0
  296. {rumdl-0.0.162 → rumdl-0.0.163}/tests/exclude_with_explicit_paths_test.rs +0 -0
  297. {rumdl-0.0.162 → rumdl-0.0.163}/tests/final_confidence_assessment.rs +0 -0
  298. {rumdl-0.0.162 → rumdl-0.0.163}/tests/fix_counting_test.rs +0 -0
  299. {rumdl-0.0.162 → rumdl-0.0.163}/tests/fix_performance_baseline_test.rs +0 -0
  300. {rumdl-0.0.162 → rumdl-0.0.163}/tests/fixable_unfixable_config_test.rs +0 -0
  301. {rumdl-0.0.162 → rumdl-0.0.163}/tests/init_command_test.rs +0 -0
  302. {rumdl-0.0.162 → rumdl-0.0.163}/tests/init_tests.rs +0 -0
  303. {rumdl-0.0.162 → rumdl-0.0.163}/tests/inline_config_test.rs +0 -0
  304. {rumdl-0.0.162 → rumdl-0.0.163}/tests/integration_tests.rs +0 -0
  305. {rumdl-0.0.162 → rumdl-0.0.163}/tests/json_output_test.rs +0 -0
  306. {rumdl-0.0.162 → rumdl-0.0.163}/tests/kramdown_integration_test.rs +0 -0
  307. {rumdl-0.0.162 → rumdl-0.0.163}/tests/lib.rs +0 -0
  308. {rumdl-0.0.162 → rumdl-0.0.163}/tests/lsp_editor_integration_tests.rs +0 -0
  309. {rumdl-0.0.162 → rumdl-0.0.163}/tests/lsp_formatting_tests.rs +0 -0
  310. {rumdl-0.0.162 → rumdl-0.0.163}/tests/lsp_initialization_options_test.rs +0 -0
  311. {rumdl-0.0.162 → rumdl-0.0.163}/tests/lsp_integration_tests.rs +0 -0
  312. {rumdl-0.0.162 → rumdl-0.0.163}/tests/lsp_memory_leak_tests.rs +0 -0
  313. {rumdl-0.0.162 → rumdl-0.0.163}/tests/lsp_mkdocs_flavor_test.rs +0 -0
  314. {rumdl-0.0.162 → rumdl-0.0.163}/tests/lsp_tests.rs +0 -0
  315. {rumdl-0.0.162 → rumdl-0.0.163}/tests/lsp_unopened_document_test.rs +0 -0
  316. {rumdl-0.0.162 → rumdl-0.0.163}/tests/malformed_markdown_stress_tests.rs +0 -0
  317. {rumdl-0.0.162 → rumdl-0.0.163}/tests/markdownlint_cli_integration.rs +0 -0
  318. {rumdl-0.0.162 → rumdl-0.0.163}/tests/markdownlint_config_test.rs +0 -0
  319. {rumdl-0.0.162 → rumdl-0.0.163}/tests/markdownlintignore_test.rs +0 -0
  320. {rumdl-0.0.162 → rumdl-0.0.163}/tests/md009_md013_integration_test.rs +0 -0
  321. {rumdl-0.0.162 → rumdl-0.0.163}/tests/md009_md013_order_test.rs +0 -0
  322. {rumdl-0.0.162 → rumdl-0.0.163}/tests/md013_hard_breaks_test.rs +0 -0
  323. {rumdl-0.0.162 → rumdl-0.0.163}/tests/md013_reflow_integration_test.rs +0 -0
  324. {rumdl-0.0.162 → rumdl-0.0.163}/tests/md013_reflow_nested_lists_test.rs +0 -0
  325. {rumdl-0.0.162 → rumdl-0.0.163}/tests/md032_edge_cases_test.rs +0 -0
  326. {rumdl-0.0.162 → rumdl-0.0.163}/tests/md032_ordered_list_bug_test.rs +0 -0
  327. {rumdl-0.0.162 → rumdl-0.0.163}/tests/md033_edge_cases_test.rs +0 -0
  328. {rumdl-0.0.162 → rumdl-0.0.163}/tests/md037_xxxx_regression_test.rs +0 -0
  329. {rumdl-0.0.162 → rumdl-0.0.163}/tests/md038_false_positive_test.rs +0 -0
  330. {rumdl-0.0.162 → rumdl-0.0.163}/tests/md051_issue_39_regression_test.rs +0 -0
  331. {rumdl-0.0.162 → rumdl-0.0.163}/tests/md051_readme_bug_test.rs +0 -0
  332. {rumdl-0.0.162 → rumdl-0.0.163}/tests/md051_toc_bug_test.rs +0 -0
  333. {rumdl-0.0.162 → rumdl-0.0.163}/tests/md054_code_span_test.rs +0 -0
  334. {rumdl-0.0.162 → rumdl-0.0.163}/tests/mkdocs_anchor_edge_cases_test.rs +0 -0
  335. {rumdl-0.0.162 → rumdl-0.0.163}/tests/mkdocs_anchor_test.rs +0 -0
  336. {rumdl-0.0.162 → rumdl-0.0.163}/tests/nested_code_block_test.rs +0 -0
  337. {rumdl-0.0.162 → rumdl-0.0.163}/tests/output_format_integration_tests.rs +0 -0
  338. {rumdl-0.0.162 → rumdl-0.0.163}/tests/output_format_tests.rs +0 -0
  339. {rumdl-0.0.162 → rumdl-0.0.163}/tests/per_file_ignores_integration_test.rs +0 -0
  340. {rumdl-0.0.162 → rumdl-0.0.163}/tests/perf_check.rs +0 -0
  341. {rumdl-0.0.162 → rumdl-0.0.163}/tests/performance_validation_tests.rs +0 -0
  342. {rumdl-0.0.162 → rumdl-0.0.163}/tests/pyproject_config_tests.rs +0 -0
  343. {rumdl-0.0.162 → rumdl-0.0.163}/tests/real_world_repository_tests.rs +0 -0
  344. {rumdl-0.0.162 → rumdl-0.0.163}/tests/regression_prevention_tests.rs +0 -0
  345. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/emphasis_edge_cases_test.rs +0 -0
  346. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/link_edge_cases_test.rs +0 -0
  347. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/list_rules_integration_test.rs +0 -0
  348. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md001_test.rs +0 -0
  349. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md001_unicode_test.rs +0 -0
  350. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md002_test.rs +0 -0
  351. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md003_test.rs +0 -0
  352. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md004_test.rs +0 -0
  353. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md005_dynamic_indent_test.rs +0 -0
  354. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md005_test.rs +0 -0
  355. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md005_unicode_test.rs +0 -0
  356. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md006_test.rs +0 -0
  357. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md006_unicode_test.rs +0 -0
  358. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md007_test.rs +0 -0
  359. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md009_test.rs +0 -0
  360. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md010_test.rs +0 -0
  361. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md011_test.rs +0 -0
  362. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md012_test.rs +0 -0
  363. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md013_test.rs +0 -0
  364. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md014_test.rs +0 -0
  365. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md018_test.rs +0 -0
  366. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md019_test.rs +0 -0
  367. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md020_test.rs +0 -0
  368. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md021_test.rs +0 -0
  369. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md022_test.rs +0 -0
  370. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md023_extended_test.rs +0 -0
  371. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md023_test.rs +0 -0
  372. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md025_test.rs +0 -0
  373. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md026_kramdown_test.rs +0 -0
  374. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md026_test.rs +0 -0
  375. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md027_test.rs +0 -0
  376. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md028_md009_interaction_test.rs +0 -0
  377. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md028_test.rs +0 -0
  378. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md029_code_block_separation_test.rs +0 -0
  379. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md029_fix_test.rs +0 -0
  380. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md029_issue42_test.rs +0 -0
  381. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md029_markdownlint_parity_test.rs +0 -0
  382. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md029_nested_list_continuation_test.rs +0 -0
  383. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md029_pathological_edge_cases_test.rs +0 -0
  384. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md029_test.rs +0 -0
  385. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md029_unicode_test.rs +0 -0
  386. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md030_test.rs +0 -0
  387. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md031_kramdown_test.rs +0 -0
  388. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md031_test.rs +0 -0
  389. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md032_test.rs +0 -0
  390. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md033_blockquote_test.rs +0 -0
  391. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md033_extended_test.rs +0 -0
  392. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md033_kramdown_test.rs +0 -0
  393. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md033_test.rs +0 -0
  394. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md034_ipv6_test.rs +0 -0
  395. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md034_test.rs +0 -0
  396. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md035_test.rs +0 -0
  397. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md036_test.rs +0 -0
  398. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md037_kramdown_test.rs +0 -0
  399. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md037_test.rs +0 -0
  400. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md038_nested_backticks_test.rs +0 -0
  401. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md038_test.rs +0 -0
  402. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md039_test.rs +0 -0
  403. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md040_test.rs +0 -0
  404. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md041_test.rs +0 -0
  405. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md042_test.rs +0 -0
  406. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md043_test.rs +0 -0
  407. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md044_test.rs +0 -0
  408. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md045_test.rs +0 -0
  409. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md047_test.rs +0 -0
  410. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md048_test.rs +0 -0
  411. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md049_test.rs +0 -0
  412. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md051_comprehensive_test.rs +0 -0
  413. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md051_critical_edge_cases_test.rs +0 -0
  414. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md051_edge_cases_test.rs +0 -0
  415. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md051_issue_39_regression_test.rs +0 -0
  416. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md051_performance_edge_cases_test.rs +0 -0
  417. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md051_property_based_test.rs +0 -0
  418. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md051_regression_prevention_test.rs +0 -0
  419. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md051_test.rs +0 -0
  420. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md051_unicode_security_test.rs +0 -0
  421. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md052_test.rs +0 -0
  422. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md053_additional_test.rs +0 -0
  423. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md053_proptest.rs +0 -0
  424. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md053_test.rs +0 -0
  425. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md054_test.rs +0 -0
  426. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md054_unicode_test.rs +0 -0
  427. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md055_test.rs +0 -0
  428. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md056_test.rs +0 -0
  429. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md057_test.rs +0 -0
  430. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md058_kramdown_test.rs +0 -0
  431. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/md058_test.rs +0 -0
  432. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/mkdocs_admonitions_test.rs +0 -0
  433. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/mkdocs_edge_cases_test.rs +0 -0
  434. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/mkdocs_extensions_test.rs +0 -0
  435. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/mkdocs_snippets_test.rs +0 -0
  436. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/mod.rs +0 -0
  437. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules/rule_interaction_test.rs +0 -0
  438. {rumdl-0.0.162 → rumdl-0.0.163}/tests/rules_mod_test.rs +0 -0
  439. {rumdl-0.0.162 → rumdl-0.0.163}/tests/schema_validation_test.rs +0 -0
  440. {rumdl-0.0.162 → rumdl-0.0.163}/tests/skip_context_tests.rs +0 -0
  441. {rumdl-0.0.162 → rumdl-0.0.163}/tests/test_ast_code_block_issue.rs +0 -0
  442. {rumdl-0.0.162 → rumdl-0.0.163}/tests/test_gfm_vs_default_parsing.rs +0 -0
  443. {rumdl-0.0.162 → rumdl-0.0.163}/tests/test_lint_context_flow.rs +0 -0
  444. {rumdl-0.0.162 → rumdl-0.0.163}/tests/test_list_ast_structure.rs +0 -0
  445. {rumdl-0.0.162 → rumdl-0.0.163}/tests/test_multiline_ast.rs +0 -0
  446. {rumdl-0.0.162 → rumdl-0.0.163}/tests/test_underscore_edge_cases.rs +0 -0
  447. {rumdl-0.0.162 → rumdl-0.0.163}/tests/thread_safety_tests.rs +0 -0
  448. {rumdl-0.0.162 → rumdl-0.0.163}/tests/unfixable_rules_test.rs +0 -0
  449. {rumdl-0.0.162 → rumdl-0.0.163}/tests/unicode_edge_case_tests.rs +0 -0
  450. {rumdl-0.0.162 → rumdl-0.0.163}/tests/utf8_boundary_tests.rs +0 -0
  451. {rumdl-0.0.162 → rumdl-0.0.163}/tests/utils/blockquote_utils_test.rs +0 -0
  452. {rumdl-0.0.162 → rumdl-0.0.163}/tests/utils/code_block_utils_extended_test.rs +0 -0
  453. {rumdl-0.0.162 → rumdl-0.0.163}/tests/utils/code_block_utils_test.rs +0 -0
  454. {rumdl-0.0.162 → rumdl-0.0.163}/tests/utils/core_utils_test.rs +0 -0
  455. {rumdl-0.0.162 → rumdl-0.0.163}/tests/utils/front_matter_utils_test.rs +0 -0
  456. {rumdl-0.0.162 → rumdl-0.0.163}/tests/utils/line_index_test.rs +0 -0
  457. {rumdl-0.0.162 → rumdl-0.0.163}/tests/utils/mod.rs +0 -0
  458. {rumdl-0.0.162 → rumdl-0.0.163}/tests/utils_markdown_edge_cases.rs +0 -0
  459. {rumdl-0.0.162 → rumdl-0.0.163}/tests/utils_tests.rs +0 -0
  460. {rumdl-0.0.162 → rumdl-0.0.163}/tests/vscode_extension_fixes.rs +0 -0
  461. {rumdl-0.0.162 → rumdl-0.0.163}/tests/vscode_test.rs +0 -0
  462. {rumdl-0.0.162 → rumdl-0.0.163}/tests/vscode_tests.rs +0 -0
  463. {rumdl-0.0.162 → rumdl-0.0.163}/tests/vscode_windows_comprehensive_test.rs +0 -0
  464. {rumdl-0.0.162 → rumdl-0.0.163}/tests/vscode_windows_test.rs +0 -0
@@ -7,6 +7,45 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.0.163] - 2025-10-20
11
+
12
+ ### Changed
13
+
14
+ - **MD024**: Default `siblings_only` to true for better usability
15
+ - Multiple headings with same text now only flagged if they're direct siblings
16
+ - Reduces false positives in documents with common section headings
17
+ - More intuitive default behavior matching common use cases
18
+
19
+ ### Fixed
20
+
21
+ - **MD013**: Enforce line length in sentence_per_line mode (fixes #111)
22
+ - Previously, sentence_per_line mode completely ignored line_length setting
23
+ - Now warns about single sentences exceeding configured line_length
24
+ - No auto-fix for long single sentences (requires manual rephrasing)
25
+ - Still auto-fixes multi-sentence lines by splitting on sentence boundaries
26
+ - Cleaned up warning messages by removing verbose parentheticals
27
+ - Maintains semantic integrity (won't split mid-sentence) while respecting configured line_length
28
+
29
+ - **HTML Comments**: Complete fix to ignore all content inside HTML comments (fixes #119, #20)
30
+ - All rules now properly ignore content within HTML comment blocks (`<!-- ... -->`)
31
+ - Added `in_html_comment` field to `LineInfo` for comprehensive tracking
32
+ - Extended filtered lines API with `skip_html_comments()` method
33
+ - Updated MD013, MD049, and other rules to skip HTML comment content
34
+ - Prevents false positives from commented-out markdown (MD013, MD049, MD005, MD006, MD039, MD042)
35
+ - Better handling of multi-line HTML comments across all linting rules
36
+
37
+ - **MD046**: Resolve false positives from Issue #118
38
+ - Fixed incorrect flagging of valid code block syntax
39
+ - Improved code block style detection accuracy
40
+
41
+ - **MD050**: Resolve false positives from Issue #118
42
+ - Fixed incorrect strong style detection in edge cases
43
+ - Better handling of emphasis patterns
44
+
45
+ - **Tests**: Fixed sentence_per_line_detection test assertion
46
+ - Updated test to match simplified warning message from MD013
47
+ - Test was expecting verbose message after message was simplified in earlier commit
48
+
10
49
  ## [0.0.162] - 2025-10-16
11
50
 
12
51
  ### Added
@@ -1108,7 +1147,26 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1108
1147
 
1109
1148
  - Initial implementation of remaining rules for markdownlint parity
1110
1149
 
1111
- [Unreleased]: https://github.com/rvben/rumdl/compare/v0.0.144...HEAD
1150
+ [Unreleased]: https://github.com/rvben/rumdl/compare/v0.0.163...HEAD
1151
+ [0.0.163]: https://github.com/rvben/rumdl/compare/v0.0.162...v0.0.163
1152
+ [0.0.162]: https://github.com/rvben/rumdl/compare/v0.0.161...v0.0.162
1153
+ [0.0.161]: https://github.com/rvben/rumdl/compare/v0.0.160...v0.0.161
1154
+ [0.0.160]: https://github.com/rvben/rumdl/compare/v0.0.159...v0.0.160
1155
+ [0.0.159]: https://github.com/rvben/rumdl/compare/v0.0.158...v0.0.159
1156
+ [0.0.158]: https://github.com/rvben/rumdl/compare/v0.0.157...v0.0.158
1157
+ [0.0.157]: https://github.com/rvben/rumdl/compare/v0.0.156...v0.0.157
1158
+ [0.0.156]: https://github.com/rvben/rumdl/compare/v0.0.155...v0.0.156
1159
+ [0.0.155]: https://github.com/rvben/rumdl/compare/v0.0.154...v0.0.155
1160
+ [0.0.154]: https://github.com/rvben/rumdl/compare/v0.0.153...v0.0.154
1161
+ [0.0.153]: https://github.com/rvben/rumdl/compare/v0.0.152...v0.0.153
1162
+ [0.0.152]: https://github.com/rvben/rumdl/compare/v0.0.151...v0.0.152
1163
+ [0.0.151]: https://github.com/rvben/rumdl/compare/v0.0.150...v0.0.151
1164
+ [0.0.150]: https://github.com/rvben/rumdl/compare/v0.0.149...v0.0.150
1165
+ [0.0.149]: https://github.com/rvben/rumdl/compare/v0.0.148...v0.0.149
1166
+ [0.0.148]: https://github.com/rvben/rumdl/compare/v0.0.147...v0.0.148
1167
+ [0.0.147]: https://github.com/rvben/rumdl/compare/v0.0.146...v0.0.147
1168
+ [0.0.146]: https://github.com/rvben/rumdl/compare/v0.0.145...v0.0.146
1169
+ [0.0.145]: https://github.com/rvben/rumdl/compare/v0.0.144...v0.0.145
1112
1170
  [0.0.144]: https://github.com/rvben/rumdl/compare/v0.0.143...v0.0.144
1113
1171
  [0.0.142]: https://github.com/rvben/rumdl/compare/v0.0.141...v0.0.142
1114
1172
  [0.0.140]: https://github.com/rvben/rumdl/compare/v0.0.139...v0.0.140
@@ -1952,7 +1952,7 @@ dependencies = [
1952
1952
 
1953
1953
  [[package]]
1954
1954
  name = "rumdl"
1955
- version = "0.0.162"
1955
+ version = "0.0.163"
1956
1956
  dependencies = [
1957
1957
  "anyhow",
1958
1958
  "assert_cmd",
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "rumdl"
3
- version = "0.0.162"
3
+ version = "0.0.163"
4
4
  edition = "2024"
5
5
  rust-version = "1.89.0"
6
6
  description = "A fast Markdown linter written in Rust (Ru(st) MarkDown Linter)"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rumdl
3
- Version: 0.0.162
3
+ Version: 0.0.163
4
4
  Classifier: Development Status :: 4 - Beta
5
5
  Classifier: Environment :: Console
6
6
  Classifier: Intended Audience :: Developers
@@ -172,6 +172,19 @@ uv tool install rumdl
172
172
  uv tool run rumdl check .
173
173
  ```
174
174
 
175
+ ### Using Nix (macOS/Linux)
176
+
177
+ ```bash
178
+ nix-channel --update
179
+ nix-env --install --attr nixpkgs.rumdl
180
+ ```
181
+
182
+ Alternatively, you can use flakes to run it without installation.
183
+
184
+ ```bash
185
+ nix run --extra-experimental-features 'flakes nix-command' nixpkgs/nixpkgs-unstable#rumdl -- --version
186
+ ```
187
+
175
188
  ### Download binary
176
189
 
177
190
  ```bash
@@ -143,6 +143,19 @@ uv tool install rumdl
143
143
  uv tool run rumdl check .
144
144
  ```
145
145
 
146
+ ### Using Nix (macOS/Linux)
147
+
148
+ ```bash
149
+ nix-channel --update
150
+ nix-env --install --attr nixpkgs.rumdl
151
+ ```
152
+
153
+ Alternatively, you can use flakes to run it without installation.
154
+
155
+ ```bash
156
+ nix run --extra-experimental-features 'flakes nix-command' nixpkgs/nixpkgs-unstable#rumdl -- --version
157
+ ```
158
+
146
159
  ### Download binary
147
160
 
148
161
  ```bash
@@ -73,12 +73,15 @@ How to run the test suite...
73
73
 
74
74
  ## Configuration
75
75
 
76
- ```yaml
77
- MD024:
78
- allow-different-nesting: false # Allow duplicates at different levels (default: false)
79
- siblings-only: false # Only check siblings at same level (default: false)
76
+ ```toml
77
+ [MD024]
78
+ allow-different-nesting = false # Allow duplicates at different levels (default: false)
79
+ siblings-only = true # Only check siblings at same level (default: true)
80
80
  ```
81
81
 
82
+ **Note:** rumdl defaults `siblings-only` to `true` (unlike markdownlint's `false` ) to reduce false positives in CHANGELOGs and structured documentation. To match markdownlint's stricter behavior, set
83
+ `siblings-only = false` .
84
+
82
85
  ## Automatic fixes
83
86
 
84
87
  This rule cannot be automatically fixed because changing heading text requires understanding the content's meaning. You'll need to manually update duplicate headings to be more descriptive.
@@ -55,7 +55,8 @@ pub struct FilteredLine<'a> {
55
55
  /// let config = LineFilterConfig::new()
56
56
  /// .skip_front_matter()
57
57
  /// .skip_code_blocks()
58
- /// .skip_html_blocks();
58
+ /// .skip_html_blocks()
59
+ /// .skip_html_comments();
59
60
  /// ```
60
61
  #[derive(Debug, Clone, Default)]
61
62
  pub struct LineFilterConfig {
@@ -65,6 +66,8 @@ pub struct LineFilterConfig {
65
66
  pub skip_code_blocks: bool,
66
67
  /// Skip lines inside HTML blocks
67
68
  pub skip_html_blocks: bool,
69
+ /// Skip lines inside HTML comments
70
+ pub skip_html_comments: bool,
68
71
  }
69
72
 
70
73
  impl LineFilterConfig {
@@ -104,11 +107,22 @@ impl LineFilterConfig {
104
107
  self
105
108
  }
106
109
 
110
+ /// Skip lines inside HTML comments
111
+ ///
112
+ /// HTML comments (<!-- ... -->) are metadata and should not be processed
113
+ /// by most markdown linting rules.
114
+ #[must_use]
115
+ pub fn skip_html_comments(mut self) -> Self {
116
+ self.skip_html_comments = true;
117
+ self
118
+ }
119
+
107
120
  /// Check if a line should be filtered out based on this configuration
108
121
  fn should_filter(&self, line_info: &LineInfo) -> bool {
109
122
  (self.skip_front_matter && line_info.in_front_matter)
110
123
  || (self.skip_code_blocks && line_info.in_code_block)
111
124
  || (self.skip_html_blocks && line_info.in_html_block)
125
+ || (self.skip_html_comments && line_info.in_html_comment)
112
126
  }
113
127
  }
114
128
 
@@ -245,6 +259,13 @@ impl<'a> FilteredLinesBuilder<'a> {
245
259
  self.config = self.config.skip_html_blocks();
246
260
  self
247
261
  }
262
+
263
+ /// Skip lines inside HTML comments
264
+ #[must_use]
265
+ pub fn skip_html_comments(mut self) -> Self {
266
+ self.config = self.config.skip_html_comments();
267
+ self
268
+ }
248
269
  }
249
270
 
250
271
  impl<'a> IntoIterator for FilteredLinesBuilder<'a> {
@@ -10,25 +10,25 @@ lazy_static! {
10
10
  // Comprehensive link pattern that captures both inline and reference links
11
11
  // Use (?s) flag to make . match newlines
12
12
  static ref LINK_PATTERN: Regex = Regex::new(
13
- r"(?sx)
13
+ r#"(?sx)
14
14
  \[((?:[^\[\]\\]|\\.|\[[^\]]*\])*)\] # Link text in group 1 (handles nested brackets)
15
15
  (?:
16
- \(([^)]*)\) # Inline URL in group 2 (can be empty)
16
+ \((?:<([^<>\n]*)>|([^)"']*))(?:\s+(?:"([^"]*)"|'([^']*)'))?\) # URL in group 2 (angle) or 3 (bare), title in 4/5
17
17
  |
18
- \[([^\]]*)\] # Reference ID in group 3
19
- )"
18
+ \[([^\]]*)\] # Reference ID in group 6
19
+ )"#
20
20
  ).unwrap();
21
21
 
22
22
  // Image pattern (similar to links but with ! prefix)
23
23
  // Use (?s) flag to make . match newlines
24
24
  static ref IMAGE_PATTERN: Regex = Regex::new(
25
- r"(?sx)
25
+ r#"(?sx)
26
26
  !\[((?:[^\[\]\\]|\\.|\[[^\]]*\])*)\] # Alt text in group 1 (handles nested brackets)
27
27
  (?:
28
- \(([^)]*)\) # Inline URL in group 2 (can be empty)
28
+ \((?:<([^<>\n]*)>|([^)"']*))(?:\s+(?:"([^"]*)"|'([^']*)'))?\) # URL in group 2 (angle) or 3 (bare), title in 4/5
29
29
  |
30
- \[([^\]]*)\] # Reference ID in group 3
31
- )"
30
+ \[([^\]]*)\] # Reference ID in group 6
31
+ )"#
32
32
  ).unwrap();
33
33
 
34
34
  // Reference definition pattern
@@ -78,6 +78,8 @@ pub struct LineInfo {
78
78
  pub in_front_matter: bool,
79
79
  /// Whether this line is inside an HTML block
80
80
  pub in_html_block: bool,
81
+ /// Whether this line is inside an HTML comment
82
+ pub in_html_comment: bool,
81
83
  /// List item information if this line starts a list item
82
84
  pub list_item: Option<ListItemInfo>,
83
85
  /// Heading information if this line is a heading
@@ -751,7 +753,7 @@ impl<'a> LintContext<'a> {
751
753
  code_spans: &[CodeSpan],
752
754
  flavor: MarkdownFlavor,
753
755
  ) -> Vec<ParsedLink> {
754
- use crate::utils::skip_context::is_mkdocs_snippet_line;
756
+ use crate::utils::skip_context::{is_in_html_comment, is_mkdocs_snippet_line};
755
757
 
756
758
  // Pre-size based on a heuristic: most markdown files have relatively few links
757
759
  let mut links = Vec::with_capacity(content.len() / 500); // ~1 link per 500 chars
@@ -785,6 +787,11 @@ impl<'a> LintContext<'a> {
785
787
  continue;
786
788
  }
787
789
 
790
+ // Skip if in HTML comment
791
+ if is_in_html_comment(content, match_start) {
792
+ continue;
793
+ }
794
+
788
795
  // Skip if this link is on a MkDocs snippet line
789
796
  // Find which line this link is on
790
797
  let line_idx = lines
@@ -832,7 +839,10 @@ impl<'a> LintContext<'a> {
832
839
 
833
840
  let text = cap.get(1).map_or("", |m| m.as_str()).to_string();
834
841
 
835
- if let Some(inline_url) = cap.get(2) {
842
+ // URL can be in group 2 (angle brackets) or group 3 (bare)
843
+ let inline_url = cap.get(2).or_else(|| cap.get(3));
844
+
845
+ if let Some(url_match) = inline_url {
836
846
  // Inline link
837
847
  links.push(ParsedLink {
838
848
  line: line_num,
@@ -841,11 +851,11 @@ impl<'a> LintContext<'a> {
841
851
  byte_offset: match_start,
842
852
  byte_end: match_end,
843
853
  text,
844
- url: inline_url.as_str().to_string(),
854
+ url: url_match.as_str().to_string(),
845
855
  is_reference: false,
846
856
  reference_id: None,
847
857
  });
848
- } else if let Some(ref_id) = cap.get(3) {
858
+ } else if let Some(ref_id) = cap.get(6) {
849
859
  // Reference link
850
860
  let ref_id_str = ref_id.as_str();
851
861
  let normalized_ref = if ref_id_str.is_empty() {
@@ -878,6 +888,8 @@ impl<'a> LintContext<'a> {
878
888
  code_blocks: &[(usize, usize)],
879
889
  code_spans: &[CodeSpan],
880
890
  ) -> Vec<ParsedImage> {
891
+ use crate::utils::skip_context::is_in_html_comment;
892
+
881
893
  // Pre-size based on a heuristic: images are less common than links
882
894
  let mut images = Vec::with_capacity(content.len() / 1000); // ~1 image per 1000 chars
883
895
 
@@ -905,6 +917,11 @@ impl<'a> LintContext<'a> {
905
917
  continue;
906
918
  }
907
919
 
920
+ // Skip if in HTML comment
921
+ if is_in_html_comment(content, match_start) {
922
+ continue;
923
+ }
924
+
908
925
  // Find which line this image starts on
909
926
  let mut line_num = 1;
910
927
  let mut col_start = match_start;
@@ -939,7 +956,10 @@ impl<'a> LintContext<'a> {
939
956
 
940
957
  let alt_text = cap.get(1).map_or("", |m| m.as_str()).to_string();
941
958
 
942
- if let Some(inline_url) = cap.get(2) {
959
+ // URL can be in group 2 (angle brackets) or group 3 (bare)
960
+ let inline_url = cap.get(2).or_else(|| cap.get(3));
961
+
962
+ if let Some(url_match) = inline_url {
943
963
  // Inline image
944
964
  images.push(ParsedImage {
945
965
  line: line_num,
@@ -948,11 +968,11 @@ impl<'a> LintContext<'a> {
948
968
  byte_offset: match_start,
949
969
  byte_end: match_end,
950
970
  alt_text,
951
- url: inline_url.as_str().to_string(),
971
+ url: url_match.as_str().to_string(),
952
972
  is_reference: false,
953
973
  reference_id: None,
954
974
  });
955
- } else if let Some(ref_id) = cap.get(3) {
975
+ } else if let Some(ref_id) = cap.get(6) {
956
976
  // Reference image
957
977
  let ref_id_str = ref_id.as_str();
958
978
  let normalized_ref = if ref_id_str.is_empty() {
@@ -1090,75 +1110,79 @@ impl<'a> LintContext<'a> {
1090
1110
  byte_offset >= start && byte_offset < end && (is_multiline || is_fenced || is_indented)
1091
1111
  });
1092
1112
 
1093
- // Detect list items (skip if in frontmatter or in mkdocstrings block)
1113
+ // Detect list items (skip if in frontmatter, in mkdocstrings block, or in HTML comment)
1094
1114
  let in_mkdocstrings = flavor == MarkdownFlavor::MkDocs
1095
1115
  && crate::utils::mkdocstrings_refs::is_within_autodoc_block(content, byte_offset);
1096
- let list_item =
1097
- if !(in_code_block || is_blank || in_mkdocstrings || (front_matter_end > 0 && i < front_matter_end)) {
1098
- // Strip blockquote prefix if present for list detection
1099
- let (line_for_list_check, blockquote_prefix_len) =
1100
- if let Some(caps) = BLOCKQUOTE_REGEX.captures(line) {
1101
- let prefix = caps.get(1).unwrap().as_str();
1102
- let content = caps.get(2).unwrap().as_str();
1103
- (content, prefix.len())
1104
- } else {
1105
- (&**line, 0)
1106
- };
1116
+ let in_html_comment = crate::utils::skip_context::is_in_html_comment(content, byte_offset);
1117
+ let list_item = if !(in_code_block
1118
+ || is_blank
1119
+ || in_mkdocstrings
1120
+ || in_html_comment
1121
+ || (front_matter_end > 0 && i < front_matter_end))
1122
+ {
1123
+ // Strip blockquote prefix if present for list detection
1124
+ let (line_for_list_check, blockquote_prefix_len) = if let Some(caps) = BLOCKQUOTE_REGEX.captures(line) {
1125
+ let prefix = caps.get(1).unwrap().as_str();
1126
+ let content = caps.get(2).unwrap().as_str();
1127
+ (content, prefix.len())
1128
+ } else {
1129
+ (&**line, 0)
1130
+ };
1107
1131
 
1108
- if let Some(caps) = UNORDERED_REGEX.captures(line_for_list_check) {
1109
- let leading_spaces = caps.get(1).map_or("", |m| m.as_str());
1110
- let marker = caps.get(2).map_or("", |m| m.as_str());
1111
- let spacing = caps.get(3).map_or("", |m| m.as_str());
1112
- let _content = caps.get(4).map_or("", |m| m.as_str());
1113
- let marker_column = blockquote_prefix_len + leading_spaces.len();
1114
- let content_column = marker_column + marker.len() + spacing.len();
1115
-
1116
- // According to CommonMark spec, unordered list items MUST have at least one space
1117
- // after the marker (-, *, or +). Without a space, it's not a list item.
1118
- // This also naturally handles cases like:
1119
- // - *emphasis* (not a list)
1120
- // - **bold** (not a list)
1121
- // - --- (horizontal rule, not a list)
1122
- if spacing.is_empty() {
1123
- None
1124
- } else {
1125
- Some(ListItemInfo {
1126
- marker: marker.to_string(),
1127
- is_ordered: false,
1128
- number: None,
1129
- marker_column,
1130
- content_column,
1131
- })
1132
- }
1133
- } else if let Some(caps) = ORDERED_REGEX.captures(line_for_list_check) {
1134
- let leading_spaces = caps.get(1).map_or("", |m| m.as_str());
1135
- let number_str = caps.get(2).map_or("", |m| m.as_str());
1136
- let delimiter = caps.get(3).map_or("", |m| m.as_str());
1137
- let spacing = caps.get(4).map_or("", |m| m.as_str());
1138
- let _content = caps.get(5).map_or("", |m| m.as_str());
1139
- let marker = format!("{number_str}{delimiter}");
1140
- let marker_column = blockquote_prefix_len + leading_spaces.len();
1141
- let content_column = marker_column + marker.len() + spacing.len();
1142
-
1143
- // According to CommonMark spec, ordered list items MUST have at least one space
1144
- // after the marker (period or parenthesis). Without a space, it's not a list item.
1145
- if spacing.is_empty() {
1146
- None
1147
- } else {
1148
- Some(ListItemInfo {
1149
- marker,
1150
- is_ordered: true,
1151
- number: number_str.parse().ok(),
1152
- marker_column,
1153
- content_column,
1154
- })
1155
- }
1132
+ if let Some(caps) = UNORDERED_REGEX.captures(line_for_list_check) {
1133
+ let leading_spaces = caps.get(1).map_or("", |m| m.as_str());
1134
+ let marker = caps.get(2).map_or("", |m| m.as_str());
1135
+ let spacing = caps.get(3).map_or("", |m| m.as_str());
1136
+ let _content = caps.get(4).map_or("", |m| m.as_str());
1137
+ let marker_column = blockquote_prefix_len + leading_spaces.len();
1138
+ let content_column = marker_column + marker.len() + spacing.len();
1139
+
1140
+ // According to CommonMark spec, unordered list items MUST have at least one space
1141
+ // after the marker (-, *, or +). Without a space, it's not a list item.
1142
+ // This also naturally handles cases like:
1143
+ // - *emphasis* (not a list)
1144
+ // - **bold** (not a list)
1145
+ // - --- (horizontal rule, not a list)
1146
+ if spacing.is_empty() {
1147
+ None
1156
1148
  } else {
1149
+ Some(ListItemInfo {
1150
+ marker: marker.to_string(),
1151
+ is_ordered: false,
1152
+ number: None,
1153
+ marker_column,
1154
+ content_column,
1155
+ })
1156
+ }
1157
+ } else if let Some(caps) = ORDERED_REGEX.captures(line_for_list_check) {
1158
+ let leading_spaces = caps.get(1).map_or("", |m| m.as_str());
1159
+ let number_str = caps.get(2).map_or("", |m| m.as_str());
1160
+ let delimiter = caps.get(3).map_or("", |m| m.as_str());
1161
+ let spacing = caps.get(4).map_or("", |m| m.as_str());
1162
+ let _content = caps.get(5).map_or("", |m| m.as_str());
1163
+ let marker = format!("{number_str}{delimiter}");
1164
+ let marker_column = blockquote_prefix_len + leading_spaces.len();
1165
+ let content_column = marker_column + marker.len() + spacing.len();
1166
+
1167
+ // According to CommonMark spec, ordered list items MUST have at least one space
1168
+ // after the marker (period or parenthesis). Without a space, it's not a list item.
1169
+ if spacing.is_empty() {
1157
1170
  None
1171
+ } else {
1172
+ Some(ListItemInfo {
1173
+ marker,
1174
+ is_ordered: true,
1175
+ number: number_str.parse().ok(),
1176
+ marker_column,
1177
+ content_column,
1178
+ })
1158
1179
  }
1159
1180
  } else {
1160
1181
  None
1161
- };
1182
+ }
1183
+ } else {
1184
+ None
1185
+ };
1162
1186
 
1163
1187
  lines.push(LineInfo {
1164
1188
  content: line.to_string(),
@@ -1168,6 +1192,7 @@ impl<'a> LintContext<'a> {
1168
1192
  in_code_block,
1169
1193
  in_front_matter: front_matter_end > 0 && i < front_matter_end,
1170
1194
  in_html_block: false, // Will be populated after line creation
1195
+ in_html_comment,
1171
1196
  list_item,
1172
1197
  heading: None, // Will be populated in second pass for Setext headings
1173
1198
  blockquote: None, // Will be populated after line creation