rumdl 0.0.122__tar.gz → 0.0.124__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 (405) hide show
  1. {rumdl-0.0.122 → rumdl-0.0.124}/CHANGELOG.md +72 -8
  2. {rumdl-0.0.122 → rumdl-0.0.124}/Cargo.lock +37 -37
  3. {rumdl-0.0.122 → rumdl-0.0.124}/Cargo.toml +1 -1
  4. {rumdl-0.0.122 → rumdl-0.0.124}/Makefile +4 -4
  5. {rumdl-0.0.122 → rumdl-0.0.124}/PKG-INFO +98 -11
  6. {rumdl-0.0.122 → rumdl-0.0.124}/README.md +97 -10
  7. {rumdl-0.0.122 → rumdl-0.0.124}/scripts/pre-release.sh +1 -1
  8. {rumdl-0.0.122 → rumdl-0.0.124}/src/config.rs +95 -35
  9. {rumdl-0.0.122 → rumdl-0.0.124}/src/main.rs +202 -26
  10. {rumdl-0.0.122 → rumdl-0.0.124}/src/rule.rs +16 -0
  11. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/md009_trailing_spaces.rs +10 -1
  12. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/md013_line_length.rs +189 -88
  13. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/md033_no_inline_html.rs +4 -0
  14. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/md052_reference_links_images.rs +79 -17
  15. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/md054_link_image_style.rs +4 -0
  16. {rumdl-0.0.122 → rumdl-0.0.124}/src/utils/kramdown_utils.rs +1 -1
  17. {rumdl-0.0.122 → rumdl-0.0.124}/src/utils/regex_cache.rs +44 -1
  18. rumdl-0.0.124/src/utils/text_reflow.rs +1066 -0
  19. {rumdl-0.0.122 → rumdl-0.0.124}/tests/cli_integration_tests.rs +197 -0
  20. {rumdl-0.0.122 → rumdl-0.0.124}/tests/config_file_command_test.rs +28 -9
  21. rumdl-0.0.124/tests/config_upward_traversal_test.rs +207 -0
  22. {rumdl-0.0.122 → rumdl-0.0.124}/tests/rules/md009_test.rs +2 -1
  23. {rumdl-0.0.122 → rumdl-0.0.124}/tests/rules/md013_test.rs +24 -126
  24. rumdl-0.0.124/tests/unfixable_rules_test.rs +161 -0
  25. rumdl-0.0.122/src/utils/text_reflow.rs +0 -520
  26. {rumdl-0.0.122 → rumdl-0.0.124}/.config/nextest.toml +0 -0
  27. {rumdl-0.0.122 → rumdl-0.0.124}/.mise.toml +0 -0
  28. {rumdl-0.0.122 → rumdl-0.0.124}/.pre-commit-config.yaml +0 -0
  29. {rumdl-0.0.122 → rumdl-0.0.124}/.rumdl.toml +0 -0
  30. {rumdl-0.0.122 → rumdl-0.0.124}/.rustfmt.toml +0 -0
  31. {rumdl-0.0.122 → rumdl-0.0.124}/LICENSE +0 -0
  32. {rumdl-0.0.122 → rumdl-0.0.124}/MANIFEST.in +0 -0
  33. {rumdl-0.0.122 → rumdl-0.0.124}/assets/logo.png +0 -0
  34. {rumdl-0.0.122 → rumdl-0.0.124}/benches/fix_performance.rs +0 -0
  35. {rumdl-0.0.122 → rumdl-0.0.124}/benches/range_performance.rs +0 -0
  36. {rumdl-0.0.122 → rumdl-0.0.124}/benches/range_utils_benchmark.rs +0 -0
  37. {rumdl-0.0.122 → rumdl-0.0.124}/benches/rule_performance.rs +0 -0
  38. {rumdl-0.0.122 → rumdl-0.0.124}/benches/simple_fix_bench.rs +0 -0
  39. {rumdl-0.0.122 → rumdl-0.0.124}/benchmark/bin/bench_lint_context.rs +0 -0
  40. {rumdl-0.0.122 → rumdl-0.0.124}/benchmark/bin/benchmark.rs +0 -0
  41. {rumdl-0.0.122 → rumdl-0.0.124}/benchmark/bin/benchmark_rule.rs +0 -0
  42. {rumdl-0.0.122 → rumdl-0.0.124}/benchmark/bin/file_parallel_benchmark.rs +0 -0
  43. {rumdl-0.0.122 → rumdl-0.0.124}/benchmark/bin/measure_code_span_performance.rs +0 -0
  44. {rumdl-0.0.122 → rumdl-0.0.124}/docs/RULES.md +0 -0
  45. {rumdl-0.0.122 → rumdl-0.0.124}/docs/global-settings.md +0 -0
  46. {rumdl-0.0.122 → rumdl-0.0.124}/docs/md001.md +0 -0
  47. {rumdl-0.0.122 → rumdl-0.0.124}/docs/md002.md +0 -0
  48. {rumdl-0.0.122 → rumdl-0.0.124}/docs/md003.md +0 -0
  49. {rumdl-0.0.122 → rumdl-0.0.124}/docs/md004.md +0 -0
  50. {rumdl-0.0.122 → rumdl-0.0.124}/docs/md005.md +0 -0
  51. {rumdl-0.0.122 → rumdl-0.0.124}/docs/md006.md +0 -0
  52. {rumdl-0.0.122 → rumdl-0.0.124}/docs/md007.md +0 -0
  53. {rumdl-0.0.122 → rumdl-0.0.124}/docs/md009.md +0 -0
  54. {rumdl-0.0.122 → rumdl-0.0.124}/docs/md010.md +0 -0
  55. {rumdl-0.0.122 → rumdl-0.0.124}/docs/md011.md +0 -0
  56. {rumdl-0.0.122 → rumdl-0.0.124}/docs/md012.md +0 -0
  57. {rumdl-0.0.122 → rumdl-0.0.124}/docs/md013.md +0 -0
  58. {rumdl-0.0.122 → rumdl-0.0.124}/docs/md014.md +0 -0
  59. {rumdl-0.0.122 → rumdl-0.0.124}/docs/md018.md +0 -0
  60. {rumdl-0.0.122 → rumdl-0.0.124}/docs/md019.md +0 -0
  61. {rumdl-0.0.122 → rumdl-0.0.124}/docs/md020.md +0 -0
  62. {rumdl-0.0.122 → rumdl-0.0.124}/docs/md021.md +0 -0
  63. {rumdl-0.0.122 → rumdl-0.0.124}/docs/md022.md +0 -0
  64. {rumdl-0.0.122 → rumdl-0.0.124}/docs/md023.md +0 -0
  65. {rumdl-0.0.122 → rumdl-0.0.124}/docs/md024.md +0 -0
  66. {rumdl-0.0.122 → rumdl-0.0.124}/docs/md025.md +0 -0
  67. {rumdl-0.0.122 → rumdl-0.0.124}/docs/md026.md +0 -0
  68. {rumdl-0.0.122 → rumdl-0.0.124}/docs/md027.md +0 -0
  69. {rumdl-0.0.122 → rumdl-0.0.124}/docs/md028.md +0 -0
  70. {rumdl-0.0.122 → rumdl-0.0.124}/docs/md029.md +0 -0
  71. {rumdl-0.0.122 → rumdl-0.0.124}/docs/md030.md +0 -0
  72. {rumdl-0.0.122 → rumdl-0.0.124}/docs/md031.md +0 -0
  73. {rumdl-0.0.122 → rumdl-0.0.124}/docs/md032.md +0 -0
  74. {rumdl-0.0.122 → rumdl-0.0.124}/docs/md033.md +0 -0
  75. {rumdl-0.0.122 → rumdl-0.0.124}/docs/md034.md +0 -0
  76. {rumdl-0.0.122 → rumdl-0.0.124}/docs/md035.md +0 -0
  77. {rumdl-0.0.122 → rumdl-0.0.124}/docs/md036.md +0 -0
  78. {rumdl-0.0.122 → rumdl-0.0.124}/docs/md037.md +0 -0
  79. {rumdl-0.0.122 → rumdl-0.0.124}/docs/md038.md +0 -0
  80. {rumdl-0.0.122 → rumdl-0.0.124}/docs/md039.md +0 -0
  81. {rumdl-0.0.122 → rumdl-0.0.124}/docs/md040.md +0 -0
  82. {rumdl-0.0.122 → rumdl-0.0.124}/docs/md041.md +0 -0
  83. {rumdl-0.0.122 → rumdl-0.0.124}/docs/md042.md +0 -0
  84. {rumdl-0.0.122 → rumdl-0.0.124}/docs/md043.md +0 -0
  85. {rumdl-0.0.122 → rumdl-0.0.124}/docs/md044.md +0 -0
  86. {rumdl-0.0.122 → rumdl-0.0.124}/docs/md045.md +0 -0
  87. {rumdl-0.0.122 → rumdl-0.0.124}/docs/md046.md +0 -0
  88. {rumdl-0.0.122 → rumdl-0.0.124}/docs/md047.md +0 -0
  89. {rumdl-0.0.122 → rumdl-0.0.124}/docs/md048.md +0 -0
  90. {rumdl-0.0.122 → rumdl-0.0.124}/docs/md049.md +0 -0
  91. {rumdl-0.0.122 → rumdl-0.0.124}/docs/md050.md +0 -0
  92. {rumdl-0.0.122 → rumdl-0.0.124}/docs/md051.md +0 -0
  93. {rumdl-0.0.122 → rumdl-0.0.124}/docs/md052.md +0 -0
  94. {rumdl-0.0.122 → rumdl-0.0.124}/docs/md053.md +0 -0
  95. {rumdl-0.0.122 → rumdl-0.0.124}/docs/md054.md +0 -0
  96. {rumdl-0.0.122 → rumdl-0.0.124}/docs/md055.md +0 -0
  97. {rumdl-0.0.122 → rumdl-0.0.124}/docs/md056.md +0 -0
  98. {rumdl-0.0.122 → rumdl-0.0.124}/docs/md057.md +0 -0
  99. {rumdl-0.0.122 → rumdl-0.0.124}/docs/md058.md +0 -0
  100. {rumdl-0.0.122 → rumdl-0.0.124}/docs/vscode-extension.md +0 -0
  101. {rumdl-0.0.122 → rumdl-0.0.124}/parity_check.py +0 -0
  102. {rumdl-0.0.122 → rumdl-0.0.124}/pyproject.toml +0 -0
  103. {rumdl-0.0.122 → rumdl-0.0.124}/python/MANIFEST.in +0 -0
  104. {rumdl-0.0.122 → rumdl-0.0.124}/python/PYTHON-README.md +0 -0
  105. {rumdl-0.0.122 → rumdl-0.0.124}/python/rumdl/__init__.py +0 -0
  106. {rumdl-0.0.122 → rumdl-0.0.124}/python/rumdl/__main__.py +0 -0
  107. {rumdl-0.0.122 → rumdl-0.0.124}/python/rumdl/py.typed +0 -0
  108. {rumdl-0.0.122 → rumdl-0.0.124}/rumdl.toml.example +0 -0
  109. {rumdl-0.0.122 → rumdl-0.0.124}/rust-toolchain.toml +0 -0
  110. {rumdl-0.0.122 → rumdl-0.0.124}/scripts/extract-changelog.sh +0 -0
  111. {rumdl-0.0.122 → rumdl-0.0.124}/scripts/generate-downloads-table.sh +0 -0
  112. {rumdl-0.0.122 → rumdl-0.0.124}/scripts/prepare-release.sh +0 -0
  113. {rumdl-0.0.122 → rumdl-0.0.124}/scripts/setup-pre-commit.sh +0 -0
  114. {rumdl-0.0.122 → rumdl-0.0.124}/scripts/update-pre-commit-docs.sh +0 -0
  115. {rumdl-0.0.122 → rumdl-0.0.124}/src/exit_codes.rs +0 -0
  116. {rumdl-0.0.122 → rumdl-0.0.124}/src/inline_config.rs +0 -0
  117. {rumdl-0.0.122 → rumdl-0.0.124}/src/lib.rs +0 -0
  118. {rumdl-0.0.122 → rumdl-0.0.124}/src/lint_context.rs +0 -0
  119. {rumdl-0.0.122 → rumdl-0.0.124}/src/lsp/mod.rs +0 -0
  120. {rumdl-0.0.122 → rumdl-0.0.124}/src/lsp/server.rs +0 -0
  121. {rumdl-0.0.122 → rumdl-0.0.124}/src/lsp/types.rs +0 -0
  122. {rumdl-0.0.122 → rumdl-0.0.124}/src/markdownlint_config.rs +0 -0
  123. {rumdl-0.0.122 → rumdl-0.0.124}/src/output/formatters/azure.rs +0 -0
  124. {rumdl-0.0.122 → rumdl-0.0.124}/src/output/formatters/concise.rs +0 -0
  125. {rumdl-0.0.122 → rumdl-0.0.124}/src/output/formatters/github.rs +0 -0
  126. {rumdl-0.0.122 → rumdl-0.0.124}/src/output/formatters/gitlab.rs +0 -0
  127. {rumdl-0.0.122 → rumdl-0.0.124}/src/output/formatters/grouped.rs +0 -0
  128. {rumdl-0.0.122 → rumdl-0.0.124}/src/output/formatters/json.rs +0 -0
  129. {rumdl-0.0.122 → rumdl-0.0.124}/src/output/formatters/json_lines.rs +0 -0
  130. {rumdl-0.0.122 → rumdl-0.0.124}/src/output/formatters/junit.rs +0 -0
  131. {rumdl-0.0.122 → rumdl-0.0.124}/src/output/formatters/mod.rs +0 -0
  132. {rumdl-0.0.122 → rumdl-0.0.124}/src/output/formatters/pylint.rs +0 -0
  133. {rumdl-0.0.122 → rumdl-0.0.124}/src/output/formatters/sarif.rs +0 -0
  134. {rumdl-0.0.122 → rumdl-0.0.124}/src/output/formatters/text.rs +0 -0
  135. {rumdl-0.0.122 → rumdl-0.0.124}/src/output/mod.rs +0 -0
  136. {rumdl-0.0.122 → rumdl-0.0.124}/src/parallel.rs +0 -0
  137. {rumdl-0.0.122 → rumdl-0.0.124}/src/performance.rs +0 -0
  138. {rumdl-0.0.122 → rumdl-0.0.124}/src/profiling.rs +0 -0
  139. {rumdl-0.0.122 → rumdl-0.0.124}/src/python.rs +0 -0
  140. {rumdl-0.0.122 → rumdl-0.0.124}/src/rule_config.rs +0 -0
  141. {rumdl-0.0.122 → rumdl-0.0.124}/src/rule_config_serde.rs +0 -0
  142. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/blockquote_utils.rs +0 -0
  143. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/code_block_utils.rs +0 -0
  144. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/code_fence_utils.rs +0 -0
  145. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/emphasis_style.rs +0 -0
  146. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/front_matter_utils.rs +0 -0
  147. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/heading_utils.rs +0 -0
  148. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/list_utils.rs +0 -0
  149. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/md001_heading_increment.rs +0 -0
  150. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/md002_first_heading_h1/md002_config.rs +0 -0
  151. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/md002_first_heading_h1.rs +0 -0
  152. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/md003_heading_style/md003_config.rs +0 -0
  153. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/md003_heading_style.rs +0 -0
  154. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/md004_unordered_list_style/md004_config.rs +0 -0
  155. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/md004_unordered_list_style.rs +0 -0
  156. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/md005_list_indent.rs +0 -0
  157. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/md006_start_bullets.rs +0 -0
  158. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/md007_ul_indent/md007_config.rs +0 -0
  159. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/md007_ul_indent.rs +0 -0
  160. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/md009_trailing_spaces/md009_config.rs +0 -0
  161. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/md010_no_hard_tabs/md010_config.rs +0 -0
  162. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/md010_no_hard_tabs.rs +0 -0
  163. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/md011_no_reversed_links.rs +0 -0
  164. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/md012_no_multiple_blanks/md012_config.rs +0 -0
  165. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/md012_no_multiple_blanks.rs +0 -0
  166. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/md013_line_length/md013_config.rs +0 -0
  167. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/md014_commands_show_output/md014_config.rs +0 -0
  168. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/md014_commands_show_output.rs +0 -0
  169. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/md018_no_missing_space_atx.rs +0 -0
  170. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/md019_no_multiple_space_atx.rs +0 -0
  171. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/md020_no_missing_space_closed_atx.rs +0 -0
  172. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/md021_no_multiple_space_closed_atx.rs +0 -0
  173. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/md022_blanks_around_headings/md022_config.rs +0 -0
  174. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/md022_blanks_around_headings.rs +0 -0
  175. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/md023_heading_start_left.rs +0 -0
  176. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/md024_no_duplicate_heading/md024_config.rs +0 -0
  177. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/md024_no_duplicate_heading.rs +0 -0
  178. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/md025_single_title/md025_config.rs +0 -0
  179. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/md025_single_title.rs +0 -0
  180. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/md026_no_trailing_punctuation/md026_config.rs +0 -0
  181. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/md026_no_trailing_punctuation.rs +0 -0
  182. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/md027_multiple_spaces_blockquote.rs +0 -0
  183. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/md028_no_blanks_blockquote.rs +0 -0
  184. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/md029_ordered_list_prefix/md029_config.rs +0 -0
  185. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/md029_ordered_list_prefix.rs +0 -0
  186. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/md030_list_marker_space/md030_config.rs +0 -0
  187. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/md030_list_marker_space.rs +0 -0
  188. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/md031_blanks_around_fences.rs +0 -0
  189. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/md032_blanks_around_lists.rs +0 -0
  190. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/md033_no_inline_html/md033_config.rs +0 -0
  191. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/md034_no_bare_urls.rs +0 -0
  192. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/md035_hr_style/md035_config.rs +0 -0
  193. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/md035_hr_style.rs +0 -0
  194. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/md036_no_emphasis_only_first/md036_config.rs +0 -0
  195. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/md036_no_emphasis_only_first.rs +0 -0
  196. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/md037_spaces_around_emphasis.rs +0 -0
  197. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/md038_no_space_in_code.rs +0 -0
  198. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/md039_no_space_in_links.rs +0 -0
  199. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/md040_fenced_code_language.rs +0 -0
  200. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/md041_first_line_heading.rs +0 -0
  201. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/md042_no_empty_links.rs +0 -0
  202. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/md043_required_headings.rs +0 -0
  203. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/md044_proper_names/md044_config.rs +0 -0
  204. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/md044_proper_names.rs +0 -0
  205. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/md045_no_alt_text/md045_config.rs +0 -0
  206. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/md045_no_alt_text.rs +0 -0
  207. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/md046_code_block_style/md046_config.rs +0 -0
  208. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/md046_code_block_style.rs +0 -0
  209. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/md047_single_trailing_newline.rs +0 -0
  210. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/md048_code_fence_style/md048_config.rs +0 -0
  211. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/md048_code_fence_style.rs +0 -0
  212. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/md049_emphasis_style/md049_config.rs +0 -0
  213. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/md049_emphasis_style.rs +0 -0
  214. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/md050_strong_style/md050_config.rs +0 -0
  215. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/md050_strong_style.rs +0 -0
  216. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/md051_link_fragments.rs +0 -0
  217. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/md053_link_image_reference_definitions.rs +0 -0
  218. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/md054_link_image_style/md054_config.rs +0 -0
  219. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/md055_table_pipe_style/md055_config.rs +0 -0
  220. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/md055_table_pipe_style.rs +0 -0
  221. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/md056_table_column_count.rs +0 -0
  222. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/md057_existing_relative_links/md057_config.rs +0 -0
  223. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/md057_existing_relative_links.rs +0 -0
  224. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/md058_blanks_around_tables.rs +0 -0
  225. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/mod.rs +0 -0
  226. {rumdl-0.0.122 → rumdl-0.0.124}/src/rules/strong_style.rs +0 -0
  227. {rumdl-0.0.122 → rumdl-0.0.124}/src/utils/anchor_styles/github.rs +0 -0
  228. {rumdl-0.0.122 → rumdl-0.0.124}/src/utils/anchor_styles/jekyll.rs +0 -0
  229. {rumdl-0.0.122 → rumdl-0.0.124}/src/utils/anchor_styles/kramdown.rs +0 -0
  230. {rumdl-0.0.122 → rumdl-0.0.124}/src/utils/anchor_styles/kramdown_gfm.rs +0 -0
  231. {rumdl-0.0.122 → rumdl-0.0.124}/src/utils/anchor_styles/mod.rs +0 -0
  232. {rumdl-0.0.122 → rumdl-0.0.124}/src/utils/ast_utils.rs +0 -0
  233. {rumdl-0.0.122 → rumdl-0.0.124}/src/utils/code_block_utils.rs +0 -0
  234. {rumdl-0.0.122 → rumdl-0.0.124}/src/utils/document_structure.rs +0 -0
  235. {rumdl-0.0.122 → rumdl-0.0.124}/src/utils/early_returns.rs +0 -0
  236. {rumdl-0.0.122 → rumdl-0.0.124}/src/utils/element_cache.rs +0 -0
  237. {rumdl-0.0.122 → rumdl-0.0.124}/src/utils/emphasis_utils.rs +0 -0
  238. {rumdl-0.0.122 → rumdl-0.0.124}/src/utils/fix_utils.rs +0 -0
  239. {rumdl-0.0.122 → rumdl-0.0.124}/src/utils/header_id_utils.rs +0 -0
  240. {rumdl-0.0.122 → rumdl-0.0.124}/src/utils/markdown_elements.rs +0 -0
  241. {rumdl-0.0.122 → rumdl-0.0.124}/src/utils/mod.rs +0 -0
  242. {rumdl-0.0.122 → rumdl-0.0.124}/src/utils/range_utils.rs +0 -0
  243. {rumdl-0.0.122 → rumdl-0.0.124}/src/utils/skip_context.rs +0 -0
  244. {rumdl-0.0.122 → rumdl-0.0.124}/src/utils/string_interner.rs +0 -0
  245. {rumdl-0.0.122 → rumdl-0.0.124}/src/utils/table_utils.rs +0 -0
  246. {rumdl-0.0.122 → rumdl-0.0.124}/src/vscode.rs +0 -0
  247. {rumdl-0.0.122 → rumdl-0.0.124}/tests/advanced_integration_tests.rs +0 -0
  248. {rumdl-0.0.122 → rumdl-0.0.124}/tests/character_ranges/additional_tests.rs +0 -0
  249. {rumdl-0.0.122 → rumdl-0.0.124}/tests/character_ranges/basic_tests.rs +0 -0
  250. {rumdl-0.0.122 → rumdl-0.0.124}/tests/character_ranges/comprehensive_tests.rs +0 -0
  251. {rumdl-0.0.122 → rumdl-0.0.124}/tests/character_ranges/extended_tests.rs +0 -0
  252. {rumdl-0.0.122 → rumdl-0.0.124}/tests/character_ranges/mod.rs +0 -0
  253. {rumdl-0.0.122 → rumdl-0.0.124}/tests/character_ranges/unicode_utils.rs +0 -0
  254. {rumdl-0.0.122 → rumdl-0.0.124}/tests/cli_duplication_test.rs +0 -0
  255. {rumdl-0.0.122 → rumdl-0.0.124}/tests/cli_explain_test.rs +0 -0
  256. {rumdl-0.0.122 → rumdl-0.0.124}/tests/cli_flag_precedence_test.rs +0 -0
  257. {rumdl-0.0.122 → rumdl-0.0.124}/tests/cli_lsp_fix_consistency.rs +0 -0
  258. {rumdl-0.0.122 → rumdl-0.0.124}/tests/cli_statistics_test.rs +0 -0
  259. {rumdl-0.0.122 → rumdl-0.0.124}/tests/common/cli_test_utils.rs +0 -0
  260. {rumdl-0.0.122 → rumdl-0.0.124}/tests/common/fixtures.rs +0 -0
  261. {rumdl-0.0.122 → rumdl-0.0.124}/tests/common/mod.rs +0 -0
  262. {rumdl-0.0.122 → rumdl-0.0.124}/tests/common/test_utils.rs +0 -0
  263. {rumdl-0.0.122 → rumdl-0.0.124}/tests/commonmark_compliance_tests.rs +0 -0
  264. {rumdl-0.0.122 → rumdl-0.0.124}/tests/comprehensive_integration_tests.rs +0 -0
  265. {rumdl-0.0.122 → rumdl-0.0.124}/tests/comprehensive_output_format_tests.rs +0 -0
  266. {rumdl-0.0.122 → rumdl-0.0.124}/tests/config_application_tests.rs +0 -0
  267. {rumdl-0.0.122 → rumdl-0.0.124}/tests/config_tests.rs +0 -0
  268. {rumdl-0.0.122 → rumdl-0.0.124}/tests/configuration_inheritance_tests.rs +0 -0
  269. {rumdl-0.0.122 → rumdl-0.0.124}/tests/consistency_regression_tests.rs +0 -0
  270. {rumdl-0.0.122 → rumdl-0.0.124}/tests/cross_platform_compatibility_tests.rs +0 -0
  271. {rumdl-0.0.122 → rumdl-0.0.124}/tests/deeply_nested_lists_performance_test.rs +0 -0
  272. {rumdl-0.0.122 → rumdl-0.0.124}/tests/escaped_brackets_test.rs +0 -0
  273. {rumdl-0.0.122 → rumdl-0.0.124}/tests/final_confidence_assessment.rs +0 -0
  274. {rumdl-0.0.122 → rumdl-0.0.124}/tests/fixable_unfixable_config_test.rs +0 -0
  275. {rumdl-0.0.122 → rumdl-0.0.124}/tests/init_command_test.rs +0 -0
  276. {rumdl-0.0.122 → rumdl-0.0.124}/tests/init_tests.rs +0 -0
  277. {rumdl-0.0.122 → rumdl-0.0.124}/tests/inline_config_blocks_test.rs +0 -0
  278. {rumdl-0.0.122 → rumdl-0.0.124}/tests/inline_config_test.rs +0 -0
  279. {rumdl-0.0.122 → rumdl-0.0.124}/tests/integration_tests.rs +0 -0
  280. {rumdl-0.0.122 → rumdl-0.0.124}/tests/json_output_test.rs +0 -0
  281. {rumdl-0.0.122 → rumdl-0.0.124}/tests/kramdown_integration_test.rs +0 -0
  282. {rumdl-0.0.122 → rumdl-0.0.124}/tests/lib.rs +0 -0
  283. {rumdl-0.0.122 → rumdl-0.0.124}/tests/lsp_editor_integration_tests.rs +0 -0
  284. {rumdl-0.0.122 → rumdl-0.0.124}/tests/lsp_integration_tests.rs +0 -0
  285. {rumdl-0.0.122 → rumdl-0.0.124}/tests/lsp_memory_leak_tests.rs +0 -0
  286. {rumdl-0.0.122 → rumdl-0.0.124}/tests/lsp_tests.rs +0 -0
  287. {rumdl-0.0.122 → rumdl-0.0.124}/tests/malformed_markdown_stress_tests.rs +0 -0
  288. {rumdl-0.0.122 → rumdl-0.0.124}/tests/markdownlint_cli_integration.rs +0 -0
  289. {rumdl-0.0.122 → rumdl-0.0.124}/tests/markdownlint_config_test.rs +0 -0
  290. {rumdl-0.0.122 → rumdl-0.0.124}/tests/markdownlintignore_test.rs +0 -0
  291. {rumdl-0.0.122 → rumdl-0.0.124}/tests/md013_reflow_integration_test.rs +0 -0
  292. {rumdl-0.0.122 → rumdl-0.0.124}/tests/md051_issue_39_regression_test.rs +0 -0
  293. {rumdl-0.0.122 → rumdl-0.0.124}/tests/nested_code_block_test.rs +0 -0
  294. {rumdl-0.0.122 → rumdl-0.0.124}/tests/output_format_integration_tests.rs +0 -0
  295. {rumdl-0.0.122 → rumdl-0.0.124}/tests/output_format_tests.rs +0 -0
  296. {rumdl-0.0.122 → rumdl-0.0.124}/tests/perf_check.rs +0 -0
  297. {rumdl-0.0.122 → rumdl-0.0.124}/tests/performance_validation_tests.rs +0 -0
  298. {rumdl-0.0.122 → rumdl-0.0.124}/tests/pyproject_config_tests.rs +0 -0
  299. {rumdl-0.0.122 → rumdl-0.0.124}/tests/python_bindings_test.rs +0 -0
  300. {rumdl-0.0.122 → rumdl-0.0.124}/tests/real_world_repository_tests.rs +0 -0
  301. {rumdl-0.0.122 → rumdl-0.0.124}/tests/regression_prevention_tests.rs +0 -0
  302. {rumdl-0.0.122 → rumdl-0.0.124}/tests/rules/emphasis_edge_cases_test.rs +0 -0
  303. {rumdl-0.0.122 → rumdl-0.0.124}/tests/rules/heading_edge_cases_test.rs +0 -0
  304. {rumdl-0.0.122 → rumdl-0.0.124}/tests/rules/inline_content_edge_cases_test.rs +0 -0
  305. {rumdl-0.0.122 → rumdl-0.0.124}/tests/rules/link_edge_cases_test.rs +0 -0
  306. {rumdl-0.0.122 → rumdl-0.0.124}/tests/rules/list_rules_integration_test.rs +0 -0
  307. {rumdl-0.0.122 → rumdl-0.0.124}/tests/rules/md001_test.rs +0 -0
  308. {rumdl-0.0.122 → rumdl-0.0.124}/tests/rules/md001_unicode_test.rs +0 -0
  309. {rumdl-0.0.122 → rumdl-0.0.124}/tests/rules/md002_test.rs +0 -0
  310. {rumdl-0.0.122 → rumdl-0.0.124}/tests/rules/md003_test.rs +0 -0
  311. {rumdl-0.0.122 → rumdl-0.0.124}/tests/rules/md004_test.rs +0 -0
  312. {rumdl-0.0.122 → rumdl-0.0.124}/tests/rules/md005_test.rs +0 -0
  313. {rumdl-0.0.122 → rumdl-0.0.124}/tests/rules/md005_unicode_test.rs +0 -0
  314. {rumdl-0.0.122 → rumdl-0.0.124}/tests/rules/md006_test.rs +0 -0
  315. {rumdl-0.0.122 → rumdl-0.0.124}/tests/rules/md006_unicode_test.rs +0 -0
  316. {rumdl-0.0.122 → rumdl-0.0.124}/tests/rules/md007_test.rs +0 -0
  317. {rumdl-0.0.122 → rumdl-0.0.124}/tests/rules/md010_test.rs +0 -0
  318. {rumdl-0.0.122 → rumdl-0.0.124}/tests/rules/md011_test.rs +0 -0
  319. {rumdl-0.0.122 → rumdl-0.0.124}/tests/rules/md012_test.rs +0 -0
  320. {rumdl-0.0.122 → rumdl-0.0.124}/tests/rules/md014_test.rs +0 -0
  321. {rumdl-0.0.122 → rumdl-0.0.124}/tests/rules/md018_test.rs +0 -0
  322. {rumdl-0.0.122 → rumdl-0.0.124}/tests/rules/md019_test.rs +0 -0
  323. {rumdl-0.0.122 → rumdl-0.0.124}/tests/rules/md020_test.rs +0 -0
  324. {rumdl-0.0.122 → rumdl-0.0.124}/tests/rules/md021_test.rs +0 -0
  325. {rumdl-0.0.122 → rumdl-0.0.124}/tests/rules/md022_test.rs +0 -0
  326. {rumdl-0.0.122 → rumdl-0.0.124}/tests/rules/md023_extended_test.rs +0 -0
  327. {rumdl-0.0.122 → rumdl-0.0.124}/tests/rules/md023_test.rs +0 -0
  328. {rumdl-0.0.122 → rumdl-0.0.124}/tests/rules/md024_test.rs +0 -0
  329. {rumdl-0.0.122 → rumdl-0.0.124}/tests/rules/md025_test.rs +0 -0
  330. {rumdl-0.0.122 → rumdl-0.0.124}/tests/rules/md026_kramdown_test.rs +0 -0
  331. {rumdl-0.0.122 → rumdl-0.0.124}/tests/rules/md026_test.rs +0 -0
  332. {rumdl-0.0.122 → rumdl-0.0.124}/tests/rules/md027_test.rs +0 -0
  333. {rumdl-0.0.122 → rumdl-0.0.124}/tests/rules/md028_test.rs +0 -0
  334. {rumdl-0.0.122 → rumdl-0.0.124}/tests/rules/md029_code_block_separation_test.rs +0 -0
  335. {rumdl-0.0.122 → rumdl-0.0.124}/tests/rules/md029_issue42_test.rs +0 -0
  336. {rumdl-0.0.122 → rumdl-0.0.124}/tests/rules/md029_pathological_edge_cases_test.rs +0 -0
  337. {rumdl-0.0.122 → rumdl-0.0.124}/tests/rules/md029_test.rs +0 -0
  338. {rumdl-0.0.122 → rumdl-0.0.124}/tests/rules/md029_unicode_test.rs +0 -0
  339. {rumdl-0.0.122 → rumdl-0.0.124}/tests/rules/md030_test.rs +0 -0
  340. {rumdl-0.0.122 → rumdl-0.0.124}/tests/rules/md031_kramdown_test.rs +0 -0
  341. {rumdl-0.0.122 → rumdl-0.0.124}/tests/rules/md031_test.rs +0 -0
  342. {rumdl-0.0.122 → rumdl-0.0.124}/tests/rules/md032_test.rs +0 -0
  343. {rumdl-0.0.122 → rumdl-0.0.124}/tests/rules/md033_extended_test.rs +0 -0
  344. {rumdl-0.0.122 → rumdl-0.0.124}/tests/rules/md033_kramdown_test.rs +0 -0
  345. {rumdl-0.0.122 → rumdl-0.0.124}/tests/rules/md033_test.rs +0 -0
  346. {rumdl-0.0.122 → rumdl-0.0.124}/tests/rules/md034_ipv6_test.rs +0 -0
  347. {rumdl-0.0.122 → rumdl-0.0.124}/tests/rules/md034_test.rs +0 -0
  348. {rumdl-0.0.122 → rumdl-0.0.124}/tests/rules/md035_test.rs +0 -0
  349. {rumdl-0.0.122 → rumdl-0.0.124}/tests/rules/md036_test.rs +0 -0
  350. {rumdl-0.0.122 → rumdl-0.0.124}/tests/rules/md037_kramdown_test.rs +0 -0
  351. {rumdl-0.0.122 → rumdl-0.0.124}/tests/rules/md037_test.rs +0 -0
  352. {rumdl-0.0.122 → rumdl-0.0.124}/tests/rules/md038_nested_backticks_test.rs +0 -0
  353. {rumdl-0.0.122 → rumdl-0.0.124}/tests/rules/md038_test.rs +0 -0
  354. {rumdl-0.0.122 → rumdl-0.0.124}/tests/rules/md039_test.rs +0 -0
  355. {rumdl-0.0.122 → rumdl-0.0.124}/tests/rules/md040_test.rs +0 -0
  356. {rumdl-0.0.122 → rumdl-0.0.124}/tests/rules/md041_test.rs +0 -0
  357. {rumdl-0.0.122 → rumdl-0.0.124}/tests/rules/md042_test.rs +0 -0
  358. {rumdl-0.0.122 → rumdl-0.0.124}/tests/rules/md043_test.rs +0 -0
  359. {rumdl-0.0.122 → rumdl-0.0.124}/tests/rules/md044_test.rs +0 -0
  360. {rumdl-0.0.122 → rumdl-0.0.124}/tests/rules/md045_test.rs +0 -0
  361. {rumdl-0.0.122 → rumdl-0.0.124}/tests/rules/md046_test.rs +0 -0
  362. {rumdl-0.0.122 → rumdl-0.0.124}/tests/rules/md047_test.rs +0 -0
  363. {rumdl-0.0.122 → rumdl-0.0.124}/tests/rules/md048_test.rs +0 -0
  364. {rumdl-0.0.122 → rumdl-0.0.124}/tests/rules/md049_test.rs +0 -0
  365. {rumdl-0.0.122 → rumdl-0.0.124}/tests/rules/md050_test.rs +0 -0
  366. {rumdl-0.0.122 → rumdl-0.0.124}/tests/rules/md051_comprehensive_test.rs +0 -0
  367. {rumdl-0.0.122 → rumdl-0.0.124}/tests/rules/md051_critical_edge_cases_test.rs +0 -0
  368. {rumdl-0.0.122 → rumdl-0.0.124}/tests/rules/md051_edge_cases_test.rs +0 -0
  369. {rumdl-0.0.122 → rumdl-0.0.124}/tests/rules/md051_issue_39_regression_test.rs +0 -0
  370. {rumdl-0.0.122 → rumdl-0.0.124}/tests/rules/md051_performance_edge_cases_test.rs +0 -0
  371. {rumdl-0.0.122 → rumdl-0.0.124}/tests/rules/md051_property_based_test.rs +0 -0
  372. {rumdl-0.0.122 → rumdl-0.0.124}/tests/rules/md051_regression_prevention_test.rs +0 -0
  373. {rumdl-0.0.122 → rumdl-0.0.124}/tests/rules/md051_test.rs +0 -0
  374. {rumdl-0.0.122 → rumdl-0.0.124}/tests/rules/md051_unicode_security_test.rs +0 -0
  375. {rumdl-0.0.122 → rumdl-0.0.124}/tests/rules/md052_test.rs +0 -0
  376. {rumdl-0.0.122 → rumdl-0.0.124}/tests/rules/md053_additional_test.rs +0 -0
  377. {rumdl-0.0.122 → rumdl-0.0.124}/tests/rules/md053_proptest.rs +0 -0
  378. {rumdl-0.0.122 → rumdl-0.0.124}/tests/rules/md053_test.rs +0 -0
  379. {rumdl-0.0.122 → rumdl-0.0.124}/tests/rules/md054_test.rs +0 -0
  380. {rumdl-0.0.122 → rumdl-0.0.124}/tests/rules/md054_unicode_test.rs +0 -0
  381. {rumdl-0.0.122 → rumdl-0.0.124}/tests/rules/md055_test.rs +0 -0
  382. {rumdl-0.0.122 → rumdl-0.0.124}/tests/rules/md056_test.rs +0 -0
  383. {rumdl-0.0.122 → rumdl-0.0.124}/tests/rules/md057_test.rs +0 -0
  384. {rumdl-0.0.122 → rumdl-0.0.124}/tests/rules/md058_kramdown_test.rs +0 -0
  385. {rumdl-0.0.122 → rumdl-0.0.124}/tests/rules/md058_test.rs +0 -0
  386. {rumdl-0.0.122 → rumdl-0.0.124}/tests/rules/mod.rs +0 -0
  387. {rumdl-0.0.122 → rumdl-0.0.124}/tests/rules_mod_test.rs +0 -0
  388. {rumdl-0.0.122 → rumdl-0.0.124}/tests/skip_context_tests.rs +0 -0
  389. {rumdl-0.0.122 → rumdl-0.0.124}/tests/test_underscore_edge_cases.rs +0 -0
  390. {rumdl-0.0.122 → rumdl-0.0.124}/tests/thread_safety_tests.rs +0 -0
  391. {rumdl-0.0.122 → rumdl-0.0.124}/tests/unicode_edge_case_tests.rs +0 -0
  392. {rumdl-0.0.122 → rumdl-0.0.124}/tests/utils/blockquote_utils_test.rs +0 -0
  393. {rumdl-0.0.122 → rumdl-0.0.124}/tests/utils/code_block_utils_extended_test.rs +0 -0
  394. {rumdl-0.0.122 → rumdl-0.0.124}/tests/utils/code_block_utils_test.rs +0 -0
  395. {rumdl-0.0.122 → rumdl-0.0.124}/tests/utils/core_utils_test.rs +0 -0
  396. {rumdl-0.0.122 → rumdl-0.0.124}/tests/utils/front_matter_utils_test.rs +0 -0
  397. {rumdl-0.0.122 → rumdl-0.0.124}/tests/utils/line_index_test.rs +0 -0
  398. {rumdl-0.0.122 → rumdl-0.0.124}/tests/utils/mod.rs +0 -0
  399. {rumdl-0.0.122 → rumdl-0.0.124}/tests/utils_markdown_edge_cases.rs +0 -0
  400. {rumdl-0.0.122 → rumdl-0.0.124}/tests/utils_tests.rs +0 -0
  401. {rumdl-0.0.122 → rumdl-0.0.124}/tests/vscode_extension_fixes.rs +0 -0
  402. {rumdl-0.0.122 → rumdl-0.0.124}/tests/vscode_test.rs +0 -0
  403. {rumdl-0.0.122 → rumdl-0.0.124}/tests/vscode_tests.rs +0 -0
  404. {rumdl-0.0.122 → rumdl-0.0.124}/tests/vscode_windows_comprehensive_test.rs +0 -0
  405. {rumdl-0.0.122 → rumdl-0.0.124}/tests/vscode_windows_test.rs +0 -0
@@ -7,8 +7,57 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.0.124] - 2025-08-22
11
+
12
+ ### Added
13
+ - **Formatting**: Added stdin/stdout formatting support (closes #59)
14
+ - `rumdl fmt` command for formatting markdown files (alias for `check --fix`)
15
+ - `--stdin` with `--fix` now outputs formatted content to stdout
16
+ - Support for `-` as stdin indicator (Unix convention: `rumdl fmt -`)
17
+ - Clear separation between linting (diagnostics to stderr) and formatting (content to stdout)
18
+ - Documentation updated with formatting examples
19
+
20
+ ### Fixed
21
+ - **MD052**: Don't flag GitHub alerts as undefined references (closes #60)
22
+ - GitHub alert syntax (`[!NOTE]`, `[!TIP]`, `[!WARNING]`, `[!IMPORTANT]`, `[!CAUTION]`) no longer flagged
23
+ - Improved compatibility with GitHub-flavored markdown
24
+ - **MD009**: Fixed heading trailing space removal
25
+ - Headings now have ALL trailing spaces removed (they serve no purpose in headings)
26
+ - **CLI**: Fixed stdin diagnostics output in check mode
27
+ - Diagnostics now correctly output to stderr by default in check mode without `--fix`
28
+
29
+ ## [0.0.123] - 2025-08-21
30
+
31
+ ### Added
32
+ - **MD013**: Comprehensive markdown pattern preservation during text reflow
33
+ - Preserves reference links, footnotes, math formulas, wiki links, and more
34
+ - Centralized regex patterns for better maintainability
35
+
36
+ ### Fixed
37
+ - **CLI**: Correct unfixable rules status display and fix counts (closes #56)
38
+ - Rules marked as unfixable now show `[unfixable]` in yellow instead of `[fixed]`
39
+ - Fix count now correctly excludes unfixable rules (e.g., "3 of 6" instead of "6 of 6")
40
+ - Added FixCapability enum to Rule trait for compile-time safety
41
+ - **MD013**: Preserve reference links during text reflow
42
+ - Reference-style links are now properly preserved when reflowing text
43
+ - Fixed indicator display to correctly show `[fixed]` when issues are resolved
44
+ - **Tests**: Mark kramdown definition list doctest as text to fix test failures
45
+
46
+ ### Changed
47
+ - **Internal**: Centralized markdown pattern regexes and extended reflow support
48
+ - Improved code organization and reduced duplication
49
+ - Better performance through shared regex compilation
50
+
10
51
  ## [0.0.122] - 2025-08-19
11
52
 
53
+ ### Added
54
+ - **Configuration Discovery**: Automatic upward directory traversal to find configuration files (closes #58)
55
+ - Searches parent directories for `.rumdl.toml`, `rumdl.toml`, or `pyproject.toml`
56
+ - Similar behavior to `git`, `ruff`, and `eslint`
57
+ - Stops at `.git` directory boundaries
58
+ - **--isolated flag**: New flag to disable all configuration discovery (Ruff-compatible)
59
+ - Alias for `--no-config` for better ecosystem compatibility
60
+
12
61
  ## [0.0.121] - 2025-08-19
13
62
 
14
63
  ### Fixed
@@ -28,6 +77,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
28
77
 
29
78
  ## [0.0.120] - 2025-08-16
30
79
 
80
+ ### Performance
81
+ - Incremental improvements to various rule implementations
82
+
31
83
  ## [0.0.119] - 2025-08-15
32
84
 
33
85
  ### Fixed
@@ -44,6 +96,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
44
96
 
45
97
  ## [0.0.118] - 2025-08-14
46
98
 
99
+ ### Performance
100
+ - Incremental improvements to various rule implementations
101
+
47
102
  ## [0.0.117] - 2025-08-14
48
103
 
49
104
  ### Fixed
@@ -71,17 +126,28 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
71
126
 
72
127
  ## [0.0.115] - 2025-08-12
73
128
 
129
+ ### Fixed
130
+ - Various bug fixes and improvements
131
+
74
132
  ## [0.0.114] - 2025-08-09
75
133
 
134
+ ### Fixed
135
+ - Various bug fixes and improvements
136
+
76
137
  ## [0.0.113] - 2025-08-09
77
138
 
139
+ ### Fixed
140
+ - Various bug fixes and improvements
141
+
78
142
  ## [0.0.112] - 2025-08-08
79
143
 
80
- ## [0.0.110] - 2025-08-08
144
+ ### Fixed
145
+ - Various bug fixes and improvements
81
146
 
82
147
  ## [0.0.110] - 2025-08-08
83
148
 
84
- ## [0.0.107] - 2025-08-06
149
+ ### Changed
150
+ - Various bug fixes and improvements
85
151
 
86
152
  ## [0.0.107] - 2025-08-06
87
153
 
@@ -101,8 +167,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
101
167
 
102
168
  ## [0.0.105] - 2025-08-05
103
169
 
104
- ## [0.0.105] - 2025-08-05
105
-
106
170
  ### Fixed
107
171
  - MD029: Fixed list continuation detection to properly handle variable marker widths (fixes #16)
108
172
  - List items with double-digit markers (e.g., "10. ") now correctly require 4+ spaces for continuation
@@ -372,7 +436,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
372
436
 
373
437
  - Initial implementation of remaining rules for markdownlint parity
374
438
 
375
- [Unreleased]: https://github.com/rvben/rumdl/compare/v0.0.122...HEAD
439
+ [Unreleased]: https://github.com/rvben/rumdl/compare/v0.0.124...HEAD
440
+ [0.0.124]: https://github.com/rvben/rumdl/compare/v0.0.123...v0.0.124
441
+ [0.0.123]: https://github.com/rvben/rumdl/compare/v0.0.122...v0.0.123
376
442
  [0.0.122]: https://github.com/rvben/rumdl/compare/v0.0.121...v0.0.122
377
443
  [0.0.121]: https://github.com/rvben/rumdl/compare/v0.0.120...v0.0.121
378
444
  [0.0.120]: https://github.com/rvben/rumdl/compare/v0.0.119...v0.0.120
@@ -385,10 +451,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
385
451
  [0.0.113]: https://github.com/rvben/rumdl/compare/v0.0.112...v0.0.113
386
452
  [0.0.112]: https://github.com/rvben/rumdl/compare/v0.0.111...v0.0.112
387
453
  [0.0.110]: https://github.com/rvben/rumdl/compare/v0.0.109...v0.0.110
388
- [0.0.110]: https://github.com/rvben/rumdl/compare/v0.0.109...v0.0.110
389
454
  [0.0.107]: https://github.com/rvben/rumdl/compare/v0.0.106...v0.0.107
390
- [0.0.107]: https://github.com/rvben/rumdl/compare/v0.0.106...v0.0.107
391
- [0.0.105]: https://github.com/rvben/rumdl/compare/v0.0.104...v0.0.105
455
+ [0.0.106]: https://github.com/rvben/rumdl/compare/v0.0.105...v0.0.106
392
456
  [0.0.105]: https://github.com/rvben/rumdl/compare/v0.0.104...v0.0.105
393
457
  [0.0.104]: https://github.com/rvben/rumdl/compare/v0.0.103...v0.0.104
394
458
  [0.0.102]: https://github.com/rvben/rumdl/compare/v0.0.101...v0.0.102
@@ -185,9 +185,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
185
185
 
186
186
  [[package]]
187
187
  name = "bitflags"
188
- version = "2.9.2"
188
+ version = "2.9.3"
189
189
  source = "registry+https://github.com/rust-lang/crates.io-index"
190
- checksum = "6a65b545ab31d687cff52899d4890855fec459eb6afe0da6417b8a18da87aa29"
190
+ checksum = "34efbcccd345379ca2868b2b2c9d3782e9cc58ba87bc7d79d5b53d9c9ae6f25d"
191
191
 
192
192
  [[package]]
193
193
  name = "bstr"
@@ -220,9 +220,9 @@ checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5"
220
220
 
221
221
  [[package]]
222
222
  name = "cc"
223
- version = "1.2.33"
223
+ version = "1.2.34"
224
224
  source = "registry+https://github.com/rust-lang/crates.io-index"
225
- checksum = "3ee0f8803222ba5a7e2777dd72ca451868909b1ac410621b676adf07280e9b5f"
225
+ checksum = "42bc4aea80032b7bf409b0bc7ccad88853858911b7713a8062fdc0623867bedc"
226
226
  dependencies = [
227
227
  "shlex",
228
228
  ]
@@ -530,9 +530,9 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
530
530
 
531
531
  [[package]]
532
532
  name = "form_urlencoded"
533
- version = "1.2.1"
533
+ version = "1.2.2"
534
534
  source = "registry+https://github.com/rust-lang/crates.io-index"
535
- checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456"
535
+ checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf"
536
536
  dependencies = [
537
537
  "percent-encoding",
538
538
  ]
@@ -806,9 +806,9 @@ dependencies = [
806
806
 
807
807
  [[package]]
808
808
  name = "idna"
809
- version = "1.0.3"
809
+ version = "1.1.0"
810
810
  source = "registry+https://github.com/rust-lang/crates.io-index"
811
- checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e"
811
+ checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de"
812
812
  dependencies = [
813
813
  "idna_adapter",
814
814
  "smallvec",
@@ -843,9 +843,9 @@ dependencies = [
843
843
 
844
844
  [[package]]
845
845
  name = "indexmap"
846
- version = "2.10.0"
846
+ version = "2.11.0"
847
847
  source = "registry+https://github.com/rust-lang/crates.io-index"
848
- checksum = "fe4cd85333e22411419a0bcae1297d25e58c9443848b11dc6a86fefe8c78a661"
848
+ checksum = "f2481980430f9f78649238835720ddccc57e52df14ffce1c6f37391d61b563e9"
849
849
  dependencies = [
850
850
  "equivalent",
851
851
  "hashbrown 0.15.5",
@@ -859,11 +859,11 @@ checksum = "f4c7245a08504955605670dbf141fceab975f15ca21570696aebe9d2e71576bd"
859
859
 
860
860
  [[package]]
861
861
  name = "io-uring"
862
- version = "0.7.9"
862
+ version = "0.7.10"
863
863
  source = "registry+https://github.com/rust-lang/crates.io-index"
864
- checksum = "d93587f37623a1a17d94ef2bc9ada592f5465fe7732084ab7beefabe5c77c0c4"
864
+ checksum = "046fa2d4d00aea763528b4950358d0ead425372445dc8ff86312b3c69ff7727b"
865
865
  dependencies = [
866
- "bitflags 2.9.2",
866
+ "bitflags 2.9.3",
867
867
  "cfg-if",
868
868
  "libc",
869
869
  ]
@@ -1013,9 +1013,9 @@ checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0"
1013
1013
 
1014
1014
  [[package]]
1015
1015
  name = "memmap2"
1016
- version = "0.9.7"
1016
+ version = "0.9.8"
1017
1017
  source = "registry+https://github.com/rust-lang/crates.io-index"
1018
- checksum = "483758ad303d734cec05e5c12b41d7e93e6a6390c5e9dae6bdeb7c1259012d28"
1018
+ checksum = "843a98750cd611cc2965a8213b53b43e715f13c37a9e096c6408e69990961db7"
1019
1019
  dependencies = [
1020
1020
  "libc",
1021
1021
  ]
@@ -1126,9 +1126,9 @@ dependencies = [
1126
1126
 
1127
1127
  [[package]]
1128
1128
  name = "percent-encoding"
1129
- version = "2.3.1"
1129
+ version = "2.3.2"
1130
1130
  source = "registry+https://github.com/rust-lang/crates.io-index"
1131
- checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
1131
+ checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220"
1132
1132
 
1133
1133
  [[package]]
1134
1134
  name = "pin-project"
@@ -1280,7 +1280,7 @@ checksum = "6fcdab19deb5195a31cf7726a210015ff1496ba1464fd42cb4f537b8b01b471f"
1280
1280
  dependencies = [
1281
1281
  "bit-set",
1282
1282
  "bit-vec",
1283
- "bitflags 2.9.2",
1283
+ "bitflags 2.9.3",
1284
1284
  "lazy_static",
1285
1285
  "num-traits",
1286
1286
  "rand",
@@ -1298,7 +1298,7 @@ version = "0.12.2"
1298
1298
  source = "registry+https://github.com/rust-lang/crates.io-index"
1299
1299
  checksum = "f86ba2052aebccc42cbbb3ed234b8b13ce76f75c3551a303cb2bcffcff12bb14"
1300
1300
  dependencies = [
1301
- "bitflags 2.9.2",
1301
+ "bitflags 2.9.3",
1302
1302
  "getopts",
1303
1303
  "memchr",
1304
1304
  "pulldown-cmark-escape",
@@ -1459,7 +1459,7 @@ version = "0.5.17"
1459
1459
  source = "registry+https://github.com/rust-lang/crates.io-index"
1460
1460
  checksum = "5407465600fb0548f1442edf71dd20683c6ed326200ace4b1ef0763521bb3b77"
1461
1461
  dependencies = [
1462
- "bitflags 2.9.2",
1462
+ "bitflags 2.9.3",
1463
1463
  ]
1464
1464
 
1465
1465
  [[package]]
@@ -1493,7 +1493,7 @@ checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c"
1493
1493
 
1494
1494
  [[package]]
1495
1495
  name = "rumdl"
1496
- version = "0.0.122"
1496
+ version = "0.0.124"
1497
1497
  dependencies = [
1498
1498
  "anyhow",
1499
1499
  "assert_cmd",
@@ -1555,7 +1555,7 @@ version = "1.0.8"
1555
1555
  source = "registry+https://github.com/rust-lang/crates.io-index"
1556
1556
  checksum = "11181fbabf243db407ef8df94a6ce0b2f9a733bd8be4ad02b4eda9602296cac8"
1557
1557
  dependencies = [
1558
- "bitflags 2.9.2",
1558
+ "bitflags 2.9.3",
1559
1559
  "errno",
1560
1560
  "libc",
1561
1561
  "linux-raw-sys",
@@ -1751,15 +1751,15 @@ checksum = "e502f78cdbb8ba4718f566c418c52bc729126ffd16baee5baa718cf25dd5a69a"
1751
1751
 
1752
1752
  [[package]]
1753
1753
  name = "tempfile"
1754
- version = "3.20.0"
1754
+ version = "3.21.0"
1755
1755
  source = "registry+https://github.com/rust-lang/crates.io-index"
1756
- checksum = "e8a64e3985349f2441a1a9ef0b853f869006c3855f2cda6862a94d26ebb9d6a1"
1756
+ checksum = "15b61f8f20e3a6f7e0649d825294eaf317edce30f82cf6026e7e4cb9222a7d1e"
1757
1757
  dependencies = [
1758
1758
  "fastrand",
1759
1759
  "getrandom",
1760
1760
  "once_cell",
1761
1761
  "rustix",
1762
- "windows-sys 0.59.0",
1762
+ "windows-sys 0.60.2",
1763
1763
  ]
1764
1764
 
1765
1765
  [[package]]
@@ -1770,18 +1770,18 @@ checksum = "8f50febec83f5ee1df3015341d8bd429f2d1cc62bcba7ea2076759d315084683"
1770
1770
 
1771
1771
  [[package]]
1772
1772
  name = "thiserror"
1773
- version = "2.0.15"
1773
+ version = "2.0.16"
1774
1774
  source = "registry+https://github.com/rust-lang/crates.io-index"
1775
- checksum = "80d76d3f064b981389ecb4b6b7f45a0bf9fdac1d5b9204c7bd6714fecc302850"
1775
+ checksum = "3467d614147380f2e4e374161426ff399c91084acd2363eaf549172b3d5e60c0"
1776
1776
  dependencies = [
1777
1777
  "thiserror-impl",
1778
1778
  ]
1779
1779
 
1780
1780
  [[package]]
1781
1781
  name = "thiserror-impl"
1782
- version = "2.0.15"
1782
+ version = "2.0.16"
1783
1783
  source = "registry+https://github.com/rust-lang/crates.io-index"
1784
- checksum = "44d29feb33e986b6ea906bd9c3559a856983f92371b3eaa5e83782a351623de0"
1784
+ checksum = "6c5e1be1c48b9172ee610da68fd9cd2770e7a4056cb3fc98710ee6906f0c7960"
1785
1785
  dependencies = [
1786
1786
  "proc-macro2",
1787
1787
  "quote",
@@ -2080,9 +2080,9 @@ checksum = "673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861"
2080
2080
 
2081
2081
  [[package]]
2082
2082
  name = "url"
2083
- version = "2.5.4"
2083
+ version = "2.5.6"
2084
2084
  source = "registry+https://github.com/rust-lang/crates.io-index"
2085
- checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60"
2085
+ checksum = "137a3c834eaf7139b73688502f3f1141a0337c5d8e4d9b536f9b8c796e26a7c4"
2086
2086
  dependencies = [
2087
2087
  "form_urlencoded",
2088
2088
  "idna",
@@ -2206,11 +2206,11 @@ dependencies = [
2206
2206
 
2207
2207
  [[package]]
2208
2208
  name = "winapi-util"
2209
- version = "0.1.9"
2209
+ version = "0.1.10"
2210
2210
  source = "registry+https://github.com/rust-lang/crates.io-index"
2211
- checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb"
2211
+ checksum = "0978bf7171b3d90bac376700cb56d606feb40f251a475a5d6634613564460b22"
2212
2212
  dependencies = [
2213
- "windows-sys 0.59.0",
2213
+ "windows-sys 0.60.2",
2214
2214
  ]
2215
2215
 
2216
2216
  [[package]]
@@ -2421,9 +2421,9 @@ checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486"
2421
2421
 
2422
2422
  [[package]]
2423
2423
  name = "winnow"
2424
- version = "0.7.12"
2424
+ version = "0.7.13"
2425
2425
  source = "registry+https://github.com/rust-lang/crates.io-index"
2426
- checksum = "f3edebf492c8125044983378ecb5766203ad3b4c2f7a922bd7dd207f6d443e95"
2426
+ checksum = "21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf"
2427
2427
  dependencies = [
2428
2428
  "memchr",
2429
2429
  ]
@@ -2434,7 +2434,7 @@ version = "0.39.0"
2434
2434
  source = "registry+https://github.com/rust-lang/crates.io-index"
2435
2435
  checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1"
2436
2436
  dependencies = [
2437
- "bitflags 2.9.2",
2437
+ "bitflags 2.9.3",
2438
2438
  ]
2439
2439
 
2440
2440
  [[package]]
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "rumdl"
3
- version = "0.0.122"
3
+ version = "0.0.124"
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)"
@@ -334,7 +334,7 @@ update-rust-version:
334
334
  cargo check || (echo "Warning: cargo check failed. You may need to fix compatibility issues."; exit 1); \
335
335
  fi
336
336
 
337
- pre-release:
337
+ prepare-release:
338
338
  @echo "Preparing for release..."
339
339
  @echo "===================="
340
340
  @$(MAKE) update-rust-version
@@ -354,6 +354,6 @@ pre-release:
354
354
  @echo "Please review changes and commit if satisfied."
355
355
 
356
356
  # Full release targets that include pre-release preparation
357
- release-major-full: pre-release version-major version-push
358
- release-minor-full: pre-release version-minor version-push
359
- release-patch-full: pre-release version-patch version-push
357
+ release-major-full: prepare-release version-major version-push
358
+ release-minor-full: prepare-release version-minor version-push
359
+ release-patch-full: prepare-release version-patch version-push
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rumdl
3
- Version: 0.0.122
3
+ Version: 0.0.124
4
4
  Classifier: Development Status :: 4 - Beta
5
5
  Classifier: Environment :: Console
6
6
  Classifier: Intended Audience :: Developers
@@ -55,8 +55,9 @@ cargo install rumdl
55
55
  # Lint Markdown files in the current directory
56
56
  rumdl check .
57
57
 
58
- # Automatically fix issues
59
- rumdl check --fix .
58
+ # Format files (automatically fix issues)
59
+ rumdl fmt .
60
+ # Alternative: rumdl check --fix .
60
61
 
61
62
  # Create a default configuration file
62
63
  rumdl init
@@ -64,7 +65,7 @@ rumdl init
64
65
 
65
66
  ## Overview
66
67
 
67
- rumdl is a high-performance Markdown linter and fixer that helps ensure consistency and best practices
68
+ rumdl is a high-performance Markdown linter and formatter that helps ensure consistency and best practices
68
69
  in your Markdown files. Inspired by [ruff](https://github.com/astral-sh/ruff)'s approach to Python linting,
69
70
  rumdl brings similar speed and developer experience improvements to the Markdown ecosystem.
70
71
 
@@ -72,7 +73,7 @@ It offers:
72
73
 
73
74
  - ⚡️ **Built for speed** with Rust - significantly faster than alternatives
74
75
  - 🔍 **54 lint rules** covering common Markdown issues
75
- - 🛠️ **Automatic fixing** with `--fix` for most rules
76
+ - 🛠️ **Automatic formatting** with `--fix` for files and stdin/stdout
76
77
  - 📦 **Zero dependencies** - single binary with no runtime requirements
77
78
  - 🔧 **Highly configurable** with TOML-based config files
78
79
  - 🌐 **Multiple installation options** - Rust, Python, standalone binaries
@@ -95,6 +96,8 @@ It offers:
95
96
  - [Download binary](#download-binary)
96
97
  - [VS Code Extension](#vs-code-extension)
97
98
  - [Usage](#usage)
99
+ - [Stdin/Stdout Formatting](#stdinstdout-formatting)
100
+ - [Editor Integration](#editor-integration)
98
101
  - [Pre-commit Integration](#pre-commit-integration)
99
102
  - [CI/CD Integration](#cicd-integration)
100
103
  - [GitHub Actions](#github-actions)
@@ -102,6 +105,7 @@ It offers:
102
105
  - [Command-line Interface](#command-line-interface)
103
106
  - [Commands](#commands)
104
107
  - [`check [PATHS...]`](#check-paths)
108
+ - [`fmt [PATHS...]`](#fmt-paths)
105
109
  - [`init [OPTIONS]`](#init-options)
106
110
  - [`import <FILE> [OPTIONS]`](#import-file-options)
107
111
  - [`rule [<rule>]`](#rule-rule)
@@ -213,8 +217,8 @@ rumdl check README.md
213
217
  # Lint all Markdown files in current directory and subdirectories
214
218
  rumdl check .
215
219
 
216
- # Automatically fix issues
217
- rumdl check --fix README.md
220
+ # Format a specific file
221
+ rumdl fmt README.md
218
222
 
219
223
  # Create a default configuration file
220
224
  rumdl init
@@ -245,6 +249,35 @@ rumdl check --include "docs/**/*.md" --exclude "docs/temp,docs/drafts" .
245
249
  rumdl check --respect-gitignore=false .
246
250
  ```
247
251
 
252
+ ### Stdin/Stdout Formatting
253
+
254
+ rumdl supports formatting via stdin/stdout, making it ideal for editor integrations and CI pipelines:
255
+
256
+ ```bash
257
+ # Format content from stdin and output to stdout
258
+ cat README.md | rumdl fmt - > README_formatted.md
259
+ # Alternative: cat README.md | rumdl fmt --stdin > README_formatted.md
260
+
261
+ # Use in a pipeline
262
+ echo "# Title " | rumdl fmt -
263
+ # Output: # Title
264
+
265
+ # Format clipboard content (macOS example)
266
+ pbpaste | rumdl fmt - | pbcopy
267
+ ```
268
+
269
+ ### Editor Integration
270
+
271
+ For editor integration, use stdin/stdout mode with the `--quiet` flag to suppress diagnostic messages:
272
+
273
+ ```bash
274
+ # Format selection in editor (example for vim)
275
+ :'<,'>!rumdl fmt - --quiet
276
+
277
+ # Format entire buffer
278
+ :%!rumdl fmt - --quiet
279
+ ```
280
+
248
281
  ## Pre-commit Integration
249
282
 
250
283
  You can use `rumdl` as a pre-commit hook to check and fix your Markdown files.
@@ -337,6 +370,37 @@ Lint Markdown files and print warnings/errors (main subcommand)
337
370
  - `-o, --output <format>`: Output format: `text` (default) or `json`
338
371
  - `--stdin`: Read from stdin instead of files
339
372
 
373
+ #### `fmt [PATHS...]`
374
+
375
+ Format Markdown files (alias for `check --fix`)
376
+
377
+ **Arguments:**
378
+
379
+ - `[PATHS...]`: Files or directories to format. If provided, these paths take precedence over include patterns
380
+
381
+ **Options:**
382
+
383
+ All the same options as `check` are available (except `--fix` which is always enabled), including:
384
+ - `--stdin`: Format content from stdin and output to stdout
385
+ - `-d, --disable <rules>`: Disable specific rules during formatting
386
+ - `-e, --enable <rules>`: Format using only specific rules
387
+ - `--exclude/--include`: Control which files to format
388
+ - `-q, --quiet`: Suppress diagnostic output
389
+
390
+ **Examples:**
391
+
392
+ ```bash
393
+ # Format all Markdown files in current directory
394
+ rumdl fmt
395
+
396
+ # Format specific file
397
+ rumdl fmt README.md
398
+
399
+ # Format from stdin (using dash syntax)
400
+ cat README.md | rumdl fmt - > formatted.md
401
+ # Alternative: cat README.md | rumdl fmt --stdin > formatted.md
402
+ ```
403
+
340
404
  #### `init [OPTIONS]`
341
405
 
342
406
  Create a default configuration file in the current directory
@@ -428,8 +492,9 @@ This allows scripts and CI/CD systems to distinguish between "the tool found pro
428
492
  # Lint all Markdown files in the current directory
429
493
  rumdl check .
430
494
 
431
- # Automatically fix issues
432
- rumdl check --fix .
495
+ # Format files (automatically fix issues)
496
+ rumdl fmt .
497
+ # Alternative: rumdl check --fix .
433
498
 
434
499
  # Create a default configuration file
435
500
  rumdl init
@@ -484,11 +549,33 @@ rumdl version
484
549
 
485
550
  rumdl can be configured in several ways:
486
551
 
487
- 1. Using a `.rumdl.toml` file in your project directory
552
+ 1. Using a `.rumdl.toml` file in your project directory or parent directories
488
553
  2. Using the `[tool.rumdl]` section in your project's `pyproject.toml` file (for Python projects)
489
554
  3. Using command-line arguments
490
555
  4. **Automatic markdownlint compatibility**: rumdl automatically discovers and loads existing markdownlint config files (`.markdownlint.json`, `.markdownlint.yaml`, etc.)
491
556
 
557
+ ### Configuration Discovery
558
+
559
+ rumdl automatically searches for configuration files by traversing up the directory tree from the current
560
+ working directory, similar to tools like `git`, `ruff`, and `eslint`. This means you can run rumdl from any
561
+ subdirectory of your project and it will find the configuration file at the project root.
562
+
563
+ The search follows these rules:
564
+ - Searches upward for `.rumdl.toml`, `rumdl.toml`, or `pyproject.toml` (with `[tool.rumdl]` section)
565
+ - Stops at the first configuration file found
566
+ - Stops searching when it encounters a `.git` directory (project boundary)
567
+ - Maximum traversal depth of 100 directories
568
+
569
+ To disable all configuration discovery and use only built-in defaults, use the `--isolated` flag:
570
+
571
+ ```bash
572
+ # Use discovered configuration (default behavior)
573
+ rumdl check .
574
+
575
+ # Ignore all configuration files
576
+ rumdl check --isolated .
577
+ ```
578
+
492
579
  ### Markdownlint Migration
493
580
 
494
581
  rumdl provides seamless compatibility with existing markdownlint configurations:
@@ -660,7 +747,7 @@ README.md:24:5: [MD037] Spaces inside emphasis markers: "* incorrect *" [*]
660
747
  README.md:42:3: [MD010] Hard tabs found, use spaces instead [*]
661
748
 
662
749
  Found 3 issues in 1 file (2 files checked)
663
- Run with `--fix` to automatically fix issues
750
+ Run `rumdl fmt` to automatically fix issues
664
751
  ```
665
752
 
666
753
  ### Output Format