rumdl 0.0.123__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 (404) hide show
  1. {rumdl-0.0.123 → rumdl-0.0.124}/CHANGELOG.md +48 -9
  2. {rumdl-0.0.123 → rumdl-0.0.124}/Cargo.lock +19 -19
  3. {rumdl-0.0.123 → rumdl-0.0.124}/Cargo.toml +1 -1
  4. {rumdl-0.0.123 → rumdl-0.0.124}/Makefile +4 -4
  5. {rumdl-0.0.123 → rumdl-0.0.124}/PKG-INFO +98 -11
  6. {rumdl-0.0.123 → rumdl-0.0.124}/README.md +97 -10
  7. {rumdl-0.0.123 → rumdl-0.0.124}/scripts/pre-release.sh +1 -1
  8. {rumdl-0.0.123 → rumdl-0.0.124}/src/config.rs +95 -35
  9. {rumdl-0.0.123 → rumdl-0.0.124}/src/main.rs +161 -20
  10. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md009_trailing_spaces.rs +10 -1
  11. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md052_reference_links_images.rs +78 -0
  12. {rumdl-0.0.123 → rumdl-0.0.124}/tests/cli_integration_tests.rs +197 -0
  13. {rumdl-0.0.123 → rumdl-0.0.124}/tests/config_file_command_test.rs +28 -9
  14. rumdl-0.0.124/tests/config_upward_traversal_test.rs +207 -0
  15. {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md009_test.rs +2 -1
  16. {rumdl-0.0.123 → rumdl-0.0.124}/.config/nextest.toml +0 -0
  17. {rumdl-0.0.123 → rumdl-0.0.124}/.mise.toml +0 -0
  18. {rumdl-0.0.123 → rumdl-0.0.124}/.pre-commit-config.yaml +0 -0
  19. {rumdl-0.0.123 → rumdl-0.0.124}/.rumdl.toml +0 -0
  20. {rumdl-0.0.123 → rumdl-0.0.124}/.rustfmt.toml +0 -0
  21. {rumdl-0.0.123 → rumdl-0.0.124}/LICENSE +0 -0
  22. {rumdl-0.0.123 → rumdl-0.0.124}/MANIFEST.in +0 -0
  23. {rumdl-0.0.123 → rumdl-0.0.124}/assets/logo.png +0 -0
  24. {rumdl-0.0.123 → rumdl-0.0.124}/benches/fix_performance.rs +0 -0
  25. {rumdl-0.0.123 → rumdl-0.0.124}/benches/range_performance.rs +0 -0
  26. {rumdl-0.0.123 → rumdl-0.0.124}/benches/range_utils_benchmark.rs +0 -0
  27. {rumdl-0.0.123 → rumdl-0.0.124}/benches/rule_performance.rs +0 -0
  28. {rumdl-0.0.123 → rumdl-0.0.124}/benches/simple_fix_bench.rs +0 -0
  29. {rumdl-0.0.123 → rumdl-0.0.124}/benchmark/bin/bench_lint_context.rs +0 -0
  30. {rumdl-0.0.123 → rumdl-0.0.124}/benchmark/bin/benchmark.rs +0 -0
  31. {rumdl-0.0.123 → rumdl-0.0.124}/benchmark/bin/benchmark_rule.rs +0 -0
  32. {rumdl-0.0.123 → rumdl-0.0.124}/benchmark/bin/file_parallel_benchmark.rs +0 -0
  33. {rumdl-0.0.123 → rumdl-0.0.124}/benchmark/bin/measure_code_span_performance.rs +0 -0
  34. {rumdl-0.0.123 → rumdl-0.0.124}/docs/RULES.md +0 -0
  35. {rumdl-0.0.123 → rumdl-0.0.124}/docs/global-settings.md +0 -0
  36. {rumdl-0.0.123 → rumdl-0.0.124}/docs/md001.md +0 -0
  37. {rumdl-0.0.123 → rumdl-0.0.124}/docs/md002.md +0 -0
  38. {rumdl-0.0.123 → rumdl-0.0.124}/docs/md003.md +0 -0
  39. {rumdl-0.0.123 → rumdl-0.0.124}/docs/md004.md +0 -0
  40. {rumdl-0.0.123 → rumdl-0.0.124}/docs/md005.md +0 -0
  41. {rumdl-0.0.123 → rumdl-0.0.124}/docs/md006.md +0 -0
  42. {rumdl-0.0.123 → rumdl-0.0.124}/docs/md007.md +0 -0
  43. {rumdl-0.0.123 → rumdl-0.0.124}/docs/md009.md +0 -0
  44. {rumdl-0.0.123 → rumdl-0.0.124}/docs/md010.md +0 -0
  45. {rumdl-0.0.123 → rumdl-0.0.124}/docs/md011.md +0 -0
  46. {rumdl-0.0.123 → rumdl-0.0.124}/docs/md012.md +0 -0
  47. {rumdl-0.0.123 → rumdl-0.0.124}/docs/md013.md +0 -0
  48. {rumdl-0.0.123 → rumdl-0.0.124}/docs/md014.md +0 -0
  49. {rumdl-0.0.123 → rumdl-0.0.124}/docs/md018.md +0 -0
  50. {rumdl-0.0.123 → rumdl-0.0.124}/docs/md019.md +0 -0
  51. {rumdl-0.0.123 → rumdl-0.0.124}/docs/md020.md +0 -0
  52. {rumdl-0.0.123 → rumdl-0.0.124}/docs/md021.md +0 -0
  53. {rumdl-0.0.123 → rumdl-0.0.124}/docs/md022.md +0 -0
  54. {rumdl-0.0.123 → rumdl-0.0.124}/docs/md023.md +0 -0
  55. {rumdl-0.0.123 → rumdl-0.0.124}/docs/md024.md +0 -0
  56. {rumdl-0.0.123 → rumdl-0.0.124}/docs/md025.md +0 -0
  57. {rumdl-0.0.123 → rumdl-0.0.124}/docs/md026.md +0 -0
  58. {rumdl-0.0.123 → rumdl-0.0.124}/docs/md027.md +0 -0
  59. {rumdl-0.0.123 → rumdl-0.0.124}/docs/md028.md +0 -0
  60. {rumdl-0.0.123 → rumdl-0.0.124}/docs/md029.md +0 -0
  61. {rumdl-0.0.123 → rumdl-0.0.124}/docs/md030.md +0 -0
  62. {rumdl-0.0.123 → rumdl-0.0.124}/docs/md031.md +0 -0
  63. {rumdl-0.0.123 → rumdl-0.0.124}/docs/md032.md +0 -0
  64. {rumdl-0.0.123 → rumdl-0.0.124}/docs/md033.md +0 -0
  65. {rumdl-0.0.123 → rumdl-0.0.124}/docs/md034.md +0 -0
  66. {rumdl-0.0.123 → rumdl-0.0.124}/docs/md035.md +0 -0
  67. {rumdl-0.0.123 → rumdl-0.0.124}/docs/md036.md +0 -0
  68. {rumdl-0.0.123 → rumdl-0.0.124}/docs/md037.md +0 -0
  69. {rumdl-0.0.123 → rumdl-0.0.124}/docs/md038.md +0 -0
  70. {rumdl-0.0.123 → rumdl-0.0.124}/docs/md039.md +0 -0
  71. {rumdl-0.0.123 → rumdl-0.0.124}/docs/md040.md +0 -0
  72. {rumdl-0.0.123 → rumdl-0.0.124}/docs/md041.md +0 -0
  73. {rumdl-0.0.123 → rumdl-0.0.124}/docs/md042.md +0 -0
  74. {rumdl-0.0.123 → rumdl-0.0.124}/docs/md043.md +0 -0
  75. {rumdl-0.0.123 → rumdl-0.0.124}/docs/md044.md +0 -0
  76. {rumdl-0.0.123 → rumdl-0.0.124}/docs/md045.md +0 -0
  77. {rumdl-0.0.123 → rumdl-0.0.124}/docs/md046.md +0 -0
  78. {rumdl-0.0.123 → rumdl-0.0.124}/docs/md047.md +0 -0
  79. {rumdl-0.0.123 → rumdl-0.0.124}/docs/md048.md +0 -0
  80. {rumdl-0.0.123 → rumdl-0.0.124}/docs/md049.md +0 -0
  81. {rumdl-0.0.123 → rumdl-0.0.124}/docs/md050.md +0 -0
  82. {rumdl-0.0.123 → rumdl-0.0.124}/docs/md051.md +0 -0
  83. {rumdl-0.0.123 → rumdl-0.0.124}/docs/md052.md +0 -0
  84. {rumdl-0.0.123 → rumdl-0.0.124}/docs/md053.md +0 -0
  85. {rumdl-0.0.123 → rumdl-0.0.124}/docs/md054.md +0 -0
  86. {rumdl-0.0.123 → rumdl-0.0.124}/docs/md055.md +0 -0
  87. {rumdl-0.0.123 → rumdl-0.0.124}/docs/md056.md +0 -0
  88. {rumdl-0.0.123 → rumdl-0.0.124}/docs/md057.md +0 -0
  89. {rumdl-0.0.123 → rumdl-0.0.124}/docs/md058.md +0 -0
  90. {rumdl-0.0.123 → rumdl-0.0.124}/docs/vscode-extension.md +0 -0
  91. {rumdl-0.0.123 → rumdl-0.0.124}/parity_check.py +0 -0
  92. {rumdl-0.0.123 → rumdl-0.0.124}/pyproject.toml +0 -0
  93. {rumdl-0.0.123 → rumdl-0.0.124}/python/MANIFEST.in +0 -0
  94. {rumdl-0.0.123 → rumdl-0.0.124}/python/PYTHON-README.md +0 -0
  95. {rumdl-0.0.123 → rumdl-0.0.124}/python/rumdl/__init__.py +0 -0
  96. {rumdl-0.0.123 → rumdl-0.0.124}/python/rumdl/__main__.py +0 -0
  97. {rumdl-0.0.123 → rumdl-0.0.124}/python/rumdl/py.typed +0 -0
  98. {rumdl-0.0.123 → rumdl-0.0.124}/rumdl.toml.example +0 -0
  99. {rumdl-0.0.123 → rumdl-0.0.124}/rust-toolchain.toml +0 -0
  100. {rumdl-0.0.123 → rumdl-0.0.124}/scripts/extract-changelog.sh +0 -0
  101. {rumdl-0.0.123 → rumdl-0.0.124}/scripts/generate-downloads-table.sh +0 -0
  102. {rumdl-0.0.123 → rumdl-0.0.124}/scripts/prepare-release.sh +0 -0
  103. {rumdl-0.0.123 → rumdl-0.0.124}/scripts/setup-pre-commit.sh +0 -0
  104. {rumdl-0.0.123 → rumdl-0.0.124}/scripts/update-pre-commit-docs.sh +0 -0
  105. {rumdl-0.0.123 → rumdl-0.0.124}/src/exit_codes.rs +0 -0
  106. {rumdl-0.0.123 → rumdl-0.0.124}/src/inline_config.rs +0 -0
  107. {rumdl-0.0.123 → rumdl-0.0.124}/src/lib.rs +0 -0
  108. {rumdl-0.0.123 → rumdl-0.0.124}/src/lint_context.rs +0 -0
  109. {rumdl-0.0.123 → rumdl-0.0.124}/src/lsp/mod.rs +0 -0
  110. {rumdl-0.0.123 → rumdl-0.0.124}/src/lsp/server.rs +0 -0
  111. {rumdl-0.0.123 → rumdl-0.0.124}/src/lsp/types.rs +0 -0
  112. {rumdl-0.0.123 → rumdl-0.0.124}/src/markdownlint_config.rs +0 -0
  113. {rumdl-0.0.123 → rumdl-0.0.124}/src/output/formatters/azure.rs +0 -0
  114. {rumdl-0.0.123 → rumdl-0.0.124}/src/output/formatters/concise.rs +0 -0
  115. {rumdl-0.0.123 → rumdl-0.0.124}/src/output/formatters/github.rs +0 -0
  116. {rumdl-0.0.123 → rumdl-0.0.124}/src/output/formatters/gitlab.rs +0 -0
  117. {rumdl-0.0.123 → rumdl-0.0.124}/src/output/formatters/grouped.rs +0 -0
  118. {rumdl-0.0.123 → rumdl-0.0.124}/src/output/formatters/json.rs +0 -0
  119. {rumdl-0.0.123 → rumdl-0.0.124}/src/output/formatters/json_lines.rs +0 -0
  120. {rumdl-0.0.123 → rumdl-0.0.124}/src/output/formatters/junit.rs +0 -0
  121. {rumdl-0.0.123 → rumdl-0.0.124}/src/output/formatters/mod.rs +0 -0
  122. {rumdl-0.0.123 → rumdl-0.0.124}/src/output/formatters/pylint.rs +0 -0
  123. {rumdl-0.0.123 → rumdl-0.0.124}/src/output/formatters/sarif.rs +0 -0
  124. {rumdl-0.0.123 → rumdl-0.0.124}/src/output/formatters/text.rs +0 -0
  125. {rumdl-0.0.123 → rumdl-0.0.124}/src/output/mod.rs +0 -0
  126. {rumdl-0.0.123 → rumdl-0.0.124}/src/parallel.rs +0 -0
  127. {rumdl-0.0.123 → rumdl-0.0.124}/src/performance.rs +0 -0
  128. {rumdl-0.0.123 → rumdl-0.0.124}/src/profiling.rs +0 -0
  129. {rumdl-0.0.123 → rumdl-0.0.124}/src/python.rs +0 -0
  130. {rumdl-0.0.123 → rumdl-0.0.124}/src/rule.rs +0 -0
  131. {rumdl-0.0.123 → rumdl-0.0.124}/src/rule_config.rs +0 -0
  132. {rumdl-0.0.123 → rumdl-0.0.124}/src/rule_config_serde.rs +0 -0
  133. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/blockquote_utils.rs +0 -0
  134. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/code_block_utils.rs +0 -0
  135. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/code_fence_utils.rs +0 -0
  136. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/emphasis_style.rs +0 -0
  137. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/front_matter_utils.rs +0 -0
  138. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/heading_utils.rs +0 -0
  139. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/list_utils.rs +0 -0
  140. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md001_heading_increment.rs +0 -0
  141. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md002_first_heading_h1/md002_config.rs +0 -0
  142. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md002_first_heading_h1.rs +0 -0
  143. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md003_heading_style/md003_config.rs +0 -0
  144. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md003_heading_style.rs +0 -0
  145. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md004_unordered_list_style/md004_config.rs +0 -0
  146. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md004_unordered_list_style.rs +0 -0
  147. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md005_list_indent.rs +0 -0
  148. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md006_start_bullets.rs +0 -0
  149. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md007_ul_indent/md007_config.rs +0 -0
  150. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md007_ul_indent.rs +0 -0
  151. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md009_trailing_spaces/md009_config.rs +0 -0
  152. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md010_no_hard_tabs/md010_config.rs +0 -0
  153. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md010_no_hard_tabs.rs +0 -0
  154. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md011_no_reversed_links.rs +0 -0
  155. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md012_no_multiple_blanks/md012_config.rs +0 -0
  156. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md012_no_multiple_blanks.rs +0 -0
  157. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md013_line_length/md013_config.rs +0 -0
  158. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md013_line_length.rs +0 -0
  159. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md014_commands_show_output/md014_config.rs +0 -0
  160. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md014_commands_show_output.rs +0 -0
  161. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md018_no_missing_space_atx.rs +0 -0
  162. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md019_no_multiple_space_atx.rs +0 -0
  163. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md020_no_missing_space_closed_atx.rs +0 -0
  164. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md021_no_multiple_space_closed_atx.rs +0 -0
  165. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md022_blanks_around_headings/md022_config.rs +0 -0
  166. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md022_blanks_around_headings.rs +0 -0
  167. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md023_heading_start_left.rs +0 -0
  168. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md024_no_duplicate_heading/md024_config.rs +0 -0
  169. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md024_no_duplicate_heading.rs +0 -0
  170. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md025_single_title/md025_config.rs +0 -0
  171. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md025_single_title.rs +0 -0
  172. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md026_no_trailing_punctuation/md026_config.rs +0 -0
  173. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md026_no_trailing_punctuation.rs +0 -0
  174. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md027_multiple_spaces_blockquote.rs +0 -0
  175. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md028_no_blanks_blockquote.rs +0 -0
  176. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md029_ordered_list_prefix/md029_config.rs +0 -0
  177. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md029_ordered_list_prefix.rs +0 -0
  178. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md030_list_marker_space/md030_config.rs +0 -0
  179. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md030_list_marker_space.rs +0 -0
  180. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md031_blanks_around_fences.rs +0 -0
  181. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md032_blanks_around_lists.rs +0 -0
  182. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md033_no_inline_html/md033_config.rs +0 -0
  183. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md033_no_inline_html.rs +0 -0
  184. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md034_no_bare_urls.rs +0 -0
  185. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md035_hr_style/md035_config.rs +0 -0
  186. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md035_hr_style.rs +0 -0
  187. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md036_no_emphasis_only_first/md036_config.rs +0 -0
  188. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md036_no_emphasis_only_first.rs +0 -0
  189. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md037_spaces_around_emphasis.rs +0 -0
  190. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md038_no_space_in_code.rs +0 -0
  191. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md039_no_space_in_links.rs +0 -0
  192. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md040_fenced_code_language.rs +0 -0
  193. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md041_first_line_heading.rs +0 -0
  194. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md042_no_empty_links.rs +0 -0
  195. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md043_required_headings.rs +0 -0
  196. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md044_proper_names/md044_config.rs +0 -0
  197. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md044_proper_names.rs +0 -0
  198. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md045_no_alt_text/md045_config.rs +0 -0
  199. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md045_no_alt_text.rs +0 -0
  200. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md046_code_block_style/md046_config.rs +0 -0
  201. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md046_code_block_style.rs +0 -0
  202. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md047_single_trailing_newline.rs +0 -0
  203. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md048_code_fence_style/md048_config.rs +0 -0
  204. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md048_code_fence_style.rs +0 -0
  205. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md049_emphasis_style/md049_config.rs +0 -0
  206. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md049_emphasis_style.rs +0 -0
  207. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md050_strong_style/md050_config.rs +0 -0
  208. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md050_strong_style.rs +0 -0
  209. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md051_link_fragments.rs +0 -0
  210. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md053_link_image_reference_definitions.rs +0 -0
  211. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md054_link_image_style/md054_config.rs +0 -0
  212. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md054_link_image_style.rs +0 -0
  213. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md055_table_pipe_style/md055_config.rs +0 -0
  214. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md055_table_pipe_style.rs +0 -0
  215. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md056_table_column_count.rs +0 -0
  216. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md057_existing_relative_links/md057_config.rs +0 -0
  217. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md057_existing_relative_links.rs +0 -0
  218. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/md058_blanks_around_tables.rs +0 -0
  219. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/mod.rs +0 -0
  220. {rumdl-0.0.123 → rumdl-0.0.124}/src/rules/strong_style.rs +0 -0
  221. {rumdl-0.0.123 → rumdl-0.0.124}/src/utils/anchor_styles/github.rs +0 -0
  222. {rumdl-0.0.123 → rumdl-0.0.124}/src/utils/anchor_styles/jekyll.rs +0 -0
  223. {rumdl-0.0.123 → rumdl-0.0.124}/src/utils/anchor_styles/kramdown.rs +0 -0
  224. {rumdl-0.0.123 → rumdl-0.0.124}/src/utils/anchor_styles/kramdown_gfm.rs +0 -0
  225. {rumdl-0.0.123 → rumdl-0.0.124}/src/utils/anchor_styles/mod.rs +0 -0
  226. {rumdl-0.0.123 → rumdl-0.0.124}/src/utils/ast_utils.rs +0 -0
  227. {rumdl-0.0.123 → rumdl-0.0.124}/src/utils/code_block_utils.rs +0 -0
  228. {rumdl-0.0.123 → rumdl-0.0.124}/src/utils/document_structure.rs +0 -0
  229. {rumdl-0.0.123 → rumdl-0.0.124}/src/utils/early_returns.rs +0 -0
  230. {rumdl-0.0.123 → rumdl-0.0.124}/src/utils/element_cache.rs +0 -0
  231. {rumdl-0.0.123 → rumdl-0.0.124}/src/utils/emphasis_utils.rs +0 -0
  232. {rumdl-0.0.123 → rumdl-0.0.124}/src/utils/fix_utils.rs +0 -0
  233. {rumdl-0.0.123 → rumdl-0.0.124}/src/utils/header_id_utils.rs +0 -0
  234. {rumdl-0.0.123 → rumdl-0.0.124}/src/utils/kramdown_utils.rs +0 -0
  235. {rumdl-0.0.123 → rumdl-0.0.124}/src/utils/markdown_elements.rs +0 -0
  236. {rumdl-0.0.123 → rumdl-0.0.124}/src/utils/mod.rs +0 -0
  237. {rumdl-0.0.123 → rumdl-0.0.124}/src/utils/range_utils.rs +0 -0
  238. {rumdl-0.0.123 → rumdl-0.0.124}/src/utils/regex_cache.rs +0 -0
  239. {rumdl-0.0.123 → rumdl-0.0.124}/src/utils/skip_context.rs +0 -0
  240. {rumdl-0.0.123 → rumdl-0.0.124}/src/utils/string_interner.rs +0 -0
  241. {rumdl-0.0.123 → rumdl-0.0.124}/src/utils/table_utils.rs +0 -0
  242. {rumdl-0.0.123 → rumdl-0.0.124}/src/utils/text_reflow.rs +0 -0
  243. {rumdl-0.0.123 → rumdl-0.0.124}/src/vscode.rs +0 -0
  244. {rumdl-0.0.123 → rumdl-0.0.124}/tests/advanced_integration_tests.rs +0 -0
  245. {rumdl-0.0.123 → rumdl-0.0.124}/tests/character_ranges/additional_tests.rs +0 -0
  246. {rumdl-0.0.123 → rumdl-0.0.124}/tests/character_ranges/basic_tests.rs +0 -0
  247. {rumdl-0.0.123 → rumdl-0.0.124}/tests/character_ranges/comprehensive_tests.rs +0 -0
  248. {rumdl-0.0.123 → rumdl-0.0.124}/tests/character_ranges/extended_tests.rs +0 -0
  249. {rumdl-0.0.123 → rumdl-0.0.124}/tests/character_ranges/mod.rs +0 -0
  250. {rumdl-0.0.123 → rumdl-0.0.124}/tests/character_ranges/unicode_utils.rs +0 -0
  251. {rumdl-0.0.123 → rumdl-0.0.124}/tests/cli_duplication_test.rs +0 -0
  252. {rumdl-0.0.123 → rumdl-0.0.124}/tests/cli_explain_test.rs +0 -0
  253. {rumdl-0.0.123 → rumdl-0.0.124}/tests/cli_flag_precedence_test.rs +0 -0
  254. {rumdl-0.0.123 → rumdl-0.0.124}/tests/cli_lsp_fix_consistency.rs +0 -0
  255. {rumdl-0.0.123 → rumdl-0.0.124}/tests/cli_statistics_test.rs +0 -0
  256. {rumdl-0.0.123 → rumdl-0.0.124}/tests/common/cli_test_utils.rs +0 -0
  257. {rumdl-0.0.123 → rumdl-0.0.124}/tests/common/fixtures.rs +0 -0
  258. {rumdl-0.0.123 → rumdl-0.0.124}/tests/common/mod.rs +0 -0
  259. {rumdl-0.0.123 → rumdl-0.0.124}/tests/common/test_utils.rs +0 -0
  260. {rumdl-0.0.123 → rumdl-0.0.124}/tests/commonmark_compliance_tests.rs +0 -0
  261. {rumdl-0.0.123 → rumdl-0.0.124}/tests/comprehensive_integration_tests.rs +0 -0
  262. {rumdl-0.0.123 → rumdl-0.0.124}/tests/comprehensive_output_format_tests.rs +0 -0
  263. {rumdl-0.0.123 → rumdl-0.0.124}/tests/config_application_tests.rs +0 -0
  264. {rumdl-0.0.123 → rumdl-0.0.124}/tests/config_tests.rs +0 -0
  265. {rumdl-0.0.123 → rumdl-0.0.124}/tests/configuration_inheritance_tests.rs +0 -0
  266. {rumdl-0.0.123 → rumdl-0.0.124}/tests/consistency_regression_tests.rs +0 -0
  267. {rumdl-0.0.123 → rumdl-0.0.124}/tests/cross_platform_compatibility_tests.rs +0 -0
  268. {rumdl-0.0.123 → rumdl-0.0.124}/tests/deeply_nested_lists_performance_test.rs +0 -0
  269. {rumdl-0.0.123 → rumdl-0.0.124}/tests/escaped_brackets_test.rs +0 -0
  270. {rumdl-0.0.123 → rumdl-0.0.124}/tests/final_confidence_assessment.rs +0 -0
  271. {rumdl-0.0.123 → rumdl-0.0.124}/tests/fixable_unfixable_config_test.rs +0 -0
  272. {rumdl-0.0.123 → rumdl-0.0.124}/tests/init_command_test.rs +0 -0
  273. {rumdl-0.0.123 → rumdl-0.0.124}/tests/init_tests.rs +0 -0
  274. {rumdl-0.0.123 → rumdl-0.0.124}/tests/inline_config_blocks_test.rs +0 -0
  275. {rumdl-0.0.123 → rumdl-0.0.124}/tests/inline_config_test.rs +0 -0
  276. {rumdl-0.0.123 → rumdl-0.0.124}/tests/integration_tests.rs +0 -0
  277. {rumdl-0.0.123 → rumdl-0.0.124}/tests/json_output_test.rs +0 -0
  278. {rumdl-0.0.123 → rumdl-0.0.124}/tests/kramdown_integration_test.rs +0 -0
  279. {rumdl-0.0.123 → rumdl-0.0.124}/tests/lib.rs +0 -0
  280. {rumdl-0.0.123 → rumdl-0.0.124}/tests/lsp_editor_integration_tests.rs +0 -0
  281. {rumdl-0.0.123 → rumdl-0.0.124}/tests/lsp_integration_tests.rs +0 -0
  282. {rumdl-0.0.123 → rumdl-0.0.124}/tests/lsp_memory_leak_tests.rs +0 -0
  283. {rumdl-0.0.123 → rumdl-0.0.124}/tests/lsp_tests.rs +0 -0
  284. {rumdl-0.0.123 → rumdl-0.0.124}/tests/malformed_markdown_stress_tests.rs +0 -0
  285. {rumdl-0.0.123 → rumdl-0.0.124}/tests/markdownlint_cli_integration.rs +0 -0
  286. {rumdl-0.0.123 → rumdl-0.0.124}/tests/markdownlint_config_test.rs +0 -0
  287. {rumdl-0.0.123 → rumdl-0.0.124}/tests/markdownlintignore_test.rs +0 -0
  288. {rumdl-0.0.123 → rumdl-0.0.124}/tests/md013_reflow_integration_test.rs +0 -0
  289. {rumdl-0.0.123 → rumdl-0.0.124}/tests/md051_issue_39_regression_test.rs +0 -0
  290. {rumdl-0.0.123 → rumdl-0.0.124}/tests/nested_code_block_test.rs +0 -0
  291. {rumdl-0.0.123 → rumdl-0.0.124}/tests/output_format_integration_tests.rs +0 -0
  292. {rumdl-0.0.123 → rumdl-0.0.124}/tests/output_format_tests.rs +0 -0
  293. {rumdl-0.0.123 → rumdl-0.0.124}/tests/perf_check.rs +0 -0
  294. {rumdl-0.0.123 → rumdl-0.0.124}/tests/performance_validation_tests.rs +0 -0
  295. {rumdl-0.0.123 → rumdl-0.0.124}/tests/pyproject_config_tests.rs +0 -0
  296. {rumdl-0.0.123 → rumdl-0.0.124}/tests/python_bindings_test.rs +0 -0
  297. {rumdl-0.0.123 → rumdl-0.0.124}/tests/real_world_repository_tests.rs +0 -0
  298. {rumdl-0.0.123 → rumdl-0.0.124}/tests/regression_prevention_tests.rs +0 -0
  299. {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/emphasis_edge_cases_test.rs +0 -0
  300. {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/heading_edge_cases_test.rs +0 -0
  301. {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/inline_content_edge_cases_test.rs +0 -0
  302. {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/link_edge_cases_test.rs +0 -0
  303. {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/list_rules_integration_test.rs +0 -0
  304. {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md001_test.rs +0 -0
  305. {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md001_unicode_test.rs +0 -0
  306. {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md002_test.rs +0 -0
  307. {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md003_test.rs +0 -0
  308. {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md004_test.rs +0 -0
  309. {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md005_test.rs +0 -0
  310. {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md005_unicode_test.rs +0 -0
  311. {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md006_test.rs +0 -0
  312. {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md006_unicode_test.rs +0 -0
  313. {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md007_test.rs +0 -0
  314. {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md010_test.rs +0 -0
  315. {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md011_test.rs +0 -0
  316. {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md012_test.rs +0 -0
  317. {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md013_test.rs +0 -0
  318. {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md014_test.rs +0 -0
  319. {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md018_test.rs +0 -0
  320. {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md019_test.rs +0 -0
  321. {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md020_test.rs +0 -0
  322. {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md021_test.rs +0 -0
  323. {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md022_test.rs +0 -0
  324. {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md023_extended_test.rs +0 -0
  325. {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md023_test.rs +0 -0
  326. {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md024_test.rs +0 -0
  327. {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md025_test.rs +0 -0
  328. {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md026_kramdown_test.rs +0 -0
  329. {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md026_test.rs +0 -0
  330. {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md027_test.rs +0 -0
  331. {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md028_test.rs +0 -0
  332. {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md029_code_block_separation_test.rs +0 -0
  333. {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md029_issue42_test.rs +0 -0
  334. {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md029_pathological_edge_cases_test.rs +0 -0
  335. {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md029_test.rs +0 -0
  336. {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md029_unicode_test.rs +0 -0
  337. {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md030_test.rs +0 -0
  338. {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md031_kramdown_test.rs +0 -0
  339. {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md031_test.rs +0 -0
  340. {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md032_test.rs +0 -0
  341. {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md033_extended_test.rs +0 -0
  342. {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md033_kramdown_test.rs +0 -0
  343. {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md033_test.rs +0 -0
  344. {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md034_ipv6_test.rs +0 -0
  345. {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md034_test.rs +0 -0
  346. {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md035_test.rs +0 -0
  347. {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md036_test.rs +0 -0
  348. {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md037_kramdown_test.rs +0 -0
  349. {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md037_test.rs +0 -0
  350. {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md038_nested_backticks_test.rs +0 -0
  351. {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md038_test.rs +0 -0
  352. {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md039_test.rs +0 -0
  353. {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md040_test.rs +0 -0
  354. {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md041_test.rs +0 -0
  355. {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md042_test.rs +0 -0
  356. {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md043_test.rs +0 -0
  357. {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md044_test.rs +0 -0
  358. {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md045_test.rs +0 -0
  359. {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md046_test.rs +0 -0
  360. {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md047_test.rs +0 -0
  361. {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md048_test.rs +0 -0
  362. {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md049_test.rs +0 -0
  363. {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md050_test.rs +0 -0
  364. {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md051_comprehensive_test.rs +0 -0
  365. {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md051_critical_edge_cases_test.rs +0 -0
  366. {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md051_edge_cases_test.rs +0 -0
  367. {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md051_issue_39_regression_test.rs +0 -0
  368. {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md051_performance_edge_cases_test.rs +0 -0
  369. {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md051_property_based_test.rs +0 -0
  370. {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md051_regression_prevention_test.rs +0 -0
  371. {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md051_test.rs +0 -0
  372. {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md051_unicode_security_test.rs +0 -0
  373. {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md052_test.rs +0 -0
  374. {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md053_additional_test.rs +0 -0
  375. {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md053_proptest.rs +0 -0
  376. {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md053_test.rs +0 -0
  377. {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md054_test.rs +0 -0
  378. {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md054_unicode_test.rs +0 -0
  379. {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md055_test.rs +0 -0
  380. {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md056_test.rs +0 -0
  381. {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md057_test.rs +0 -0
  382. {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md058_kramdown_test.rs +0 -0
  383. {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/md058_test.rs +0 -0
  384. {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules/mod.rs +0 -0
  385. {rumdl-0.0.123 → rumdl-0.0.124}/tests/rules_mod_test.rs +0 -0
  386. {rumdl-0.0.123 → rumdl-0.0.124}/tests/skip_context_tests.rs +0 -0
  387. {rumdl-0.0.123 → rumdl-0.0.124}/tests/test_underscore_edge_cases.rs +0 -0
  388. {rumdl-0.0.123 → rumdl-0.0.124}/tests/thread_safety_tests.rs +0 -0
  389. {rumdl-0.0.123 → rumdl-0.0.124}/tests/unfixable_rules_test.rs +0 -0
  390. {rumdl-0.0.123 → rumdl-0.0.124}/tests/unicode_edge_case_tests.rs +0 -0
  391. {rumdl-0.0.123 → rumdl-0.0.124}/tests/utils/blockquote_utils_test.rs +0 -0
  392. {rumdl-0.0.123 → rumdl-0.0.124}/tests/utils/code_block_utils_extended_test.rs +0 -0
  393. {rumdl-0.0.123 → rumdl-0.0.124}/tests/utils/code_block_utils_test.rs +0 -0
  394. {rumdl-0.0.123 → rumdl-0.0.124}/tests/utils/core_utils_test.rs +0 -0
  395. {rumdl-0.0.123 → rumdl-0.0.124}/tests/utils/front_matter_utils_test.rs +0 -0
  396. {rumdl-0.0.123 → rumdl-0.0.124}/tests/utils/line_index_test.rs +0 -0
  397. {rumdl-0.0.123 → rumdl-0.0.124}/tests/utils/mod.rs +0 -0
  398. {rumdl-0.0.123 → rumdl-0.0.124}/tests/utils_markdown_edge_cases.rs +0 -0
  399. {rumdl-0.0.123 → rumdl-0.0.124}/tests/utils_tests.rs +0 -0
  400. {rumdl-0.0.123 → rumdl-0.0.124}/tests/vscode_extension_fixes.rs +0 -0
  401. {rumdl-0.0.123 → rumdl-0.0.124}/tests/vscode_test.rs +0 -0
  402. {rumdl-0.0.123 → rumdl-0.0.124}/tests/vscode_tests.rs +0 -0
  403. {rumdl-0.0.123 → rumdl-0.0.124}/tests/vscode_windows_comprehensive_test.rs +0 -0
  404. {rumdl-0.0.123 → rumdl-0.0.124}/tests/vscode_windows_test.rs +0 -0
@@ -7,7 +7,24 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
- ## [0.0.123] - 2025-08-21
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`
11
28
 
12
29
  ## [0.0.123] - 2025-08-21
13
30
 
@@ -33,6 +50,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
33
50
 
34
51
  ## [0.0.122] - 2025-08-19
35
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
+
36
61
  ## [0.0.121] - 2025-08-19
37
62
 
38
63
  ### Fixed
@@ -52,6 +77,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
52
77
 
53
78
  ## [0.0.120] - 2025-08-16
54
79
 
80
+ ### Performance
81
+ - Incremental improvements to various rule implementations
82
+
55
83
  ## [0.0.119] - 2025-08-15
56
84
 
57
85
  ### Fixed
@@ -68,6 +96,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
68
96
 
69
97
  ## [0.0.118] - 2025-08-14
70
98
 
99
+ ### Performance
100
+ - Incremental improvements to various rule implementations
101
+
71
102
  ## [0.0.117] - 2025-08-14
72
103
 
73
104
  ### Fixed
@@ -95,17 +126,28 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
95
126
 
96
127
  ## [0.0.115] - 2025-08-12
97
128
 
129
+ ### Fixed
130
+ - Various bug fixes and improvements
131
+
98
132
  ## [0.0.114] - 2025-08-09
99
133
 
134
+ ### Fixed
135
+ - Various bug fixes and improvements
136
+
100
137
  ## [0.0.113] - 2025-08-09
101
138
 
139
+ ### Fixed
140
+ - Various bug fixes and improvements
141
+
102
142
  ## [0.0.112] - 2025-08-08
103
143
 
104
- ## [0.0.110] - 2025-08-08
144
+ ### Fixed
145
+ - Various bug fixes and improvements
105
146
 
106
147
  ## [0.0.110] - 2025-08-08
107
148
 
108
- ## [0.0.107] - 2025-08-06
149
+ ### Changed
150
+ - Various bug fixes and improvements
109
151
 
110
152
  ## [0.0.107] - 2025-08-06
111
153
 
@@ -125,8 +167,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
125
167
 
126
168
  ## [0.0.105] - 2025-08-05
127
169
 
128
- ## [0.0.105] - 2025-08-05
129
-
130
170
  ### Fixed
131
171
  - MD029: Fixed list continuation detection to properly handle variable marker widths (fixes #16)
132
172
  - List items with double-digit markers (e.g., "10. ") now correctly require 4+ spaces for continuation
@@ -396,7 +436,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
396
436
 
397
437
  - Initial implementation of remaining rules for markdownlint parity
398
438
 
399
- [Unreleased]: https://github.com/rvben/rumdl/compare/v0.0.123...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
400
441
  [0.0.123]: https://github.com/rvben/rumdl/compare/v0.0.122...v0.0.123
401
442
  [0.0.122]: https://github.com/rvben/rumdl/compare/v0.0.121...v0.0.122
402
443
  [0.0.121]: https://github.com/rvben/rumdl/compare/v0.0.120...v0.0.121
@@ -410,10 +451,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
410
451
  [0.0.113]: https://github.com/rvben/rumdl/compare/v0.0.112...v0.0.113
411
452
  [0.0.112]: https://github.com/rvben/rumdl/compare/v0.0.111...v0.0.112
412
453
  [0.0.110]: https://github.com/rvben/rumdl/compare/v0.0.109...v0.0.110
413
- [0.0.110]: https://github.com/rvben/rumdl/compare/v0.0.109...v0.0.110
414
- [0.0.107]: https://github.com/rvben/rumdl/compare/v0.0.106...v0.0.107
415
454
  [0.0.107]: https://github.com/rvben/rumdl/compare/v0.0.106...v0.0.107
416
- [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
417
456
  [0.0.105]: https://github.com/rvben/rumdl/compare/v0.0.104...v0.0.105
418
457
  [0.0.104]: https://github.com/rvben/rumdl/compare/v0.0.103...v0.0.104
419
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
  ]
@@ -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
  ]
@@ -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.123"
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",
@@ -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.123"
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.123
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
@@ -26,8 +26,9 @@ cargo install rumdl
26
26
  # Lint Markdown files in the current directory
27
27
  rumdl check .
28
28
 
29
- # Automatically fix issues
30
- rumdl check --fix .
29
+ # Format files (automatically fix issues)
30
+ rumdl fmt .
31
+ # Alternative: rumdl check --fix .
31
32
 
32
33
  # Create a default configuration file
33
34
  rumdl init
@@ -35,7 +36,7 @@ rumdl init
35
36
 
36
37
  ## Overview
37
38
 
38
- rumdl is a high-performance Markdown linter and fixer that helps ensure consistency and best practices
39
+ rumdl is a high-performance Markdown linter and formatter that helps ensure consistency and best practices
39
40
  in your Markdown files. Inspired by [ruff](https://github.com/astral-sh/ruff)'s approach to Python linting,
40
41
  rumdl brings similar speed and developer experience improvements to the Markdown ecosystem.
41
42
 
@@ -43,7 +44,7 @@ It offers:
43
44
 
44
45
  - ⚡️ **Built for speed** with Rust - significantly faster than alternatives
45
46
  - 🔍 **54 lint rules** covering common Markdown issues
46
- - 🛠️ **Automatic fixing** with `--fix` for most rules
47
+ - 🛠️ **Automatic formatting** with `--fix` for files and stdin/stdout
47
48
  - 📦 **Zero dependencies** - single binary with no runtime requirements
48
49
  - 🔧 **Highly configurable** with TOML-based config files
49
50
  - 🌐 **Multiple installation options** - Rust, Python, standalone binaries
@@ -66,6 +67,8 @@ It offers:
66
67
  - [Download binary](#download-binary)
67
68
  - [VS Code Extension](#vs-code-extension)
68
69
  - [Usage](#usage)
70
+ - [Stdin/Stdout Formatting](#stdinstdout-formatting)
71
+ - [Editor Integration](#editor-integration)
69
72
  - [Pre-commit Integration](#pre-commit-integration)
70
73
  - [CI/CD Integration](#cicd-integration)
71
74
  - [GitHub Actions](#github-actions)
@@ -73,6 +76,7 @@ It offers:
73
76
  - [Command-line Interface](#command-line-interface)
74
77
  - [Commands](#commands)
75
78
  - [`check [PATHS...]`](#check-paths)
79
+ - [`fmt [PATHS...]`](#fmt-paths)
76
80
  - [`init [OPTIONS]`](#init-options)
77
81
  - [`import <FILE> [OPTIONS]`](#import-file-options)
78
82
  - [`rule [<rule>]`](#rule-rule)
@@ -184,8 +188,8 @@ rumdl check README.md
184
188
  # Lint all Markdown files in current directory and subdirectories
185
189
  rumdl check .
186
190
 
187
- # Automatically fix issues
188
- rumdl check --fix README.md
191
+ # Format a specific file
192
+ rumdl fmt README.md
189
193
 
190
194
  # Create a default configuration file
191
195
  rumdl init
@@ -216,6 +220,35 @@ rumdl check --include "docs/**/*.md" --exclude "docs/temp,docs/drafts" .
216
220
  rumdl check --respect-gitignore=false .
217
221
  ```
218
222
 
223
+ ### Stdin/Stdout Formatting
224
+
225
+ rumdl supports formatting via stdin/stdout, making it ideal for editor integrations and CI pipelines:
226
+
227
+ ```bash
228
+ # Format content from stdin and output to stdout
229
+ cat README.md | rumdl fmt - > README_formatted.md
230
+ # Alternative: cat README.md | rumdl fmt --stdin > README_formatted.md
231
+
232
+ # Use in a pipeline
233
+ echo "# Title " | rumdl fmt -
234
+ # Output: # Title
235
+
236
+ # Format clipboard content (macOS example)
237
+ pbpaste | rumdl fmt - | pbcopy
238
+ ```
239
+
240
+ ### Editor Integration
241
+
242
+ For editor integration, use stdin/stdout mode with the `--quiet` flag to suppress diagnostic messages:
243
+
244
+ ```bash
245
+ # Format selection in editor (example for vim)
246
+ :'<,'>!rumdl fmt - --quiet
247
+
248
+ # Format entire buffer
249
+ :%!rumdl fmt - --quiet
250
+ ```
251
+
219
252
  ## Pre-commit Integration
220
253
 
221
254
  You can use `rumdl` as a pre-commit hook to check and fix your Markdown files.
@@ -308,6 +341,37 @@ Lint Markdown files and print warnings/errors (main subcommand)
308
341
  - `-o, --output <format>`: Output format: `text` (default) or `json`
309
342
  - `--stdin`: Read from stdin instead of files
310
343
 
344
+ #### `fmt [PATHS...]`
345
+
346
+ Format Markdown files (alias for `check --fix`)
347
+
348
+ **Arguments:**
349
+
350
+ - `[PATHS...]`: Files or directories to format. If provided, these paths take precedence over include patterns
351
+
352
+ **Options:**
353
+
354
+ All the same options as `check` are available (except `--fix` which is always enabled), including:
355
+ - `--stdin`: Format content from stdin and output to stdout
356
+ - `-d, --disable <rules>`: Disable specific rules during formatting
357
+ - `-e, --enable <rules>`: Format using only specific rules
358
+ - `--exclude/--include`: Control which files to format
359
+ - `-q, --quiet`: Suppress diagnostic output
360
+
361
+ **Examples:**
362
+
363
+ ```bash
364
+ # Format all Markdown files in current directory
365
+ rumdl fmt
366
+
367
+ # Format specific file
368
+ rumdl fmt README.md
369
+
370
+ # Format from stdin (using dash syntax)
371
+ cat README.md | rumdl fmt - > formatted.md
372
+ # Alternative: cat README.md | rumdl fmt --stdin > formatted.md
373
+ ```
374
+
311
375
  #### `init [OPTIONS]`
312
376
 
313
377
  Create a default configuration file in the current directory
@@ -399,8 +463,9 @@ This allows scripts and CI/CD systems to distinguish between "the tool found pro
399
463
  # Lint all Markdown files in the current directory
400
464
  rumdl check .
401
465
 
402
- # Automatically fix issues
403
- rumdl check --fix .
466
+ # Format files (automatically fix issues)
467
+ rumdl fmt .
468
+ # Alternative: rumdl check --fix .
404
469
 
405
470
  # Create a default configuration file
406
471
  rumdl init
@@ -455,11 +520,33 @@ rumdl version
455
520
 
456
521
  rumdl can be configured in several ways:
457
522
 
458
- 1. Using a `.rumdl.toml` file in your project directory
523
+ 1. Using a `.rumdl.toml` file in your project directory or parent directories
459
524
  2. Using the `[tool.rumdl]` section in your project's `pyproject.toml` file (for Python projects)
460
525
  3. Using command-line arguments
461
526
  4. **Automatic markdownlint compatibility**: rumdl automatically discovers and loads existing markdownlint config files (`.markdownlint.json`, `.markdownlint.yaml`, etc.)
462
527
 
528
+ ### Configuration Discovery
529
+
530
+ rumdl automatically searches for configuration files by traversing up the directory tree from the current
531
+ working directory, similar to tools like `git`, `ruff`, and `eslint`. This means you can run rumdl from any
532
+ subdirectory of your project and it will find the configuration file at the project root.
533
+
534
+ The search follows these rules:
535
+ - Searches upward for `.rumdl.toml`, `rumdl.toml`, or `pyproject.toml` (with `[tool.rumdl]` section)
536
+ - Stops at the first configuration file found
537
+ - Stops searching when it encounters a `.git` directory (project boundary)
538
+ - Maximum traversal depth of 100 directories
539
+
540
+ To disable all configuration discovery and use only built-in defaults, use the `--isolated` flag:
541
+
542
+ ```bash
543
+ # Use discovered configuration (default behavior)
544
+ rumdl check .
545
+
546
+ # Ignore all configuration files
547
+ rumdl check --isolated .
548
+ ```
549
+
463
550
  ### Markdownlint Migration
464
551
 
465
552
  rumdl provides seamless compatibility with existing markdownlint configurations:
@@ -631,7 +718,7 @@ README.md:24:5: [MD037] Spaces inside emphasis markers: "* incorrect *" [*]
631
718
  README.md:42:3: [MD010] Hard tabs found, use spaces instead [*]
632
719
 
633
720
  Found 3 issues in 1 file (2 files checked)
634
- Run with `--fix` to automatically fix issues
721
+ Run `rumdl fmt` to automatically fix issues
635
722
  ```
636
723
 
637
724
  ### Output Format
@@ -55,7 +55,7 @@ fi
55
55
  # 2. Run clippy with exact CI flags
56
56
  echo "2. Running Clippy (all targets, all features)..."
57
57
  echo " This may take 1-2 minutes..."
58
- run_check "Clippy" "cargo clippy --all-targets --all-features -- -D warnings" "false"
58
+ run_check "Clippy" "cargo clippy --all-targets --all-features -- -D warnings -D clippy::uninlined_format_args" "false"
59
59
 
60
60
  # 3. Check formatting
61
61
  echo "3. Checking code formatting..."