rumdl 0.0.79__tar.gz → 0.0.81__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 (280) hide show
  1. {rumdl-0.0.79 → rumdl-0.0.81}/Cargo.lock +1 -1
  2. {rumdl-0.0.79 → rumdl-0.0.81}/Cargo.toml +1 -1
  3. {rumdl-0.0.79 → rumdl-0.0.81}/PKG-INFO +172 -36
  4. {rumdl-0.0.79 → rumdl-0.0.81}/README.md +171 -35
  5. {rumdl-0.0.79 → rumdl-0.0.81}/docs/RULES.md +2 -0
  6. rumdl-0.0.81/docs/global-settings.md +491 -0
  7. rumdl-0.0.81/docs/md026.md +76 -0
  8. {rumdl-0.0.79 → rumdl-0.0.81}/src/config.rs +12 -0
  9. {rumdl-0.0.79 → rumdl-0.0.81}/src/lsp/server.rs +1 -1
  10. {rumdl-0.0.79 → rumdl-0.0.81}/src/lsp/types.rs +42 -11
  11. {rumdl-0.0.79 → rumdl-0.0.81}/src/main.rs +247 -18
  12. {rumdl-0.0.79 → rumdl-0.0.81}/src/markdownlint_config.rs +13 -0
  13. {rumdl-0.0.79 → rumdl-0.0.81}/src/rules/md001_heading_increment.rs +1 -1
  14. {rumdl-0.0.79 → rumdl-0.0.81}/src/rules/md002_first_heading_h1.rs +3 -1
  15. {rumdl-0.0.79 → rumdl-0.0.81}/src/rules/md009_trailing_spaces.rs +18 -13
  16. {rumdl-0.0.79 → rumdl-0.0.81}/src/rules/md010_no_hard_tabs.rs +2 -2
  17. {rumdl-0.0.79 → rumdl-0.0.81}/src/rules/md011_no_reversed_links.rs +19 -6
  18. {rumdl-0.0.79 → rumdl-0.0.81}/src/rules/md012_no_multiple_blanks.rs +12 -2
  19. {rumdl-0.0.79 → rumdl-0.0.81}/src/rules/md013_line_length.rs +1 -1
  20. {rumdl-0.0.79 → rumdl-0.0.81}/src/rules/md014_commands_show_output.rs +16 -3
  21. {rumdl-0.0.79 → rumdl-0.0.81}/src/rules/md019_no_multiple_space_atx.rs +1 -1
  22. {rumdl-0.0.79 → rumdl-0.0.81}/src/rules/md021_no_multiple_space_closed_atx.rs +7 -30
  23. {rumdl-0.0.79 → rumdl-0.0.81}/src/rules/md022_blanks_around_headings.rs +166 -159
  24. {rumdl-0.0.79 → rumdl-0.0.81}/src/rules/md023_heading_start_left.rs +5 -5
  25. {rumdl-0.0.79 → rumdl-0.0.81}/src/rules/md025_single_title.rs +223 -20
  26. {rumdl-0.0.79 → rumdl-0.0.81}/src/rules/md026_no_trailing_punctuation.rs +115 -19
  27. {rumdl-0.0.79 → rumdl-0.0.81}/src/rules/md028_no_blanks_blockquote.rs +1 -1
  28. {rumdl-0.0.79 → rumdl-0.0.81}/src/rules/md029_ordered_list_prefix.rs +15 -9
  29. {rumdl-0.0.79 → rumdl-0.0.81}/src/rules/md030_list_marker_space.rs +7 -4
  30. {rumdl-0.0.79 → rumdl-0.0.81}/src/rules/md031_blanks_around_fences.rs +8 -8
  31. {rumdl-0.0.79 → rumdl-0.0.81}/src/rules/md032_blanks_around_lists.rs +110 -11
  32. {rumdl-0.0.79 → rumdl-0.0.81}/src/rules/md036_no_emphasis_only_first.rs +1 -1
  33. {rumdl-0.0.79 → rumdl-0.0.81}/src/rules/md038_no_space_in_code.rs +170 -9
  34. {rumdl-0.0.79 → rumdl-0.0.81}/src/rules/md040_fenced_code_language.rs +91 -13
  35. {rumdl-0.0.79 → rumdl-0.0.81}/src/rules/md041_first_line_heading.rs +3 -4
  36. {rumdl-0.0.79 → rumdl-0.0.81}/src/rules/md042_no_empty_links.rs +5 -1
  37. {rumdl-0.0.79 → rumdl-0.0.81}/src/rules/md045_no_alt_text.rs +4 -5
  38. {rumdl-0.0.79 → rumdl-0.0.81}/src/rules/md047_single_trailing_newline.rs +12 -4
  39. {rumdl-0.0.79 → rumdl-0.0.81}/src/rules/md048_code_fence_style.rs +7 -2
  40. {rumdl-0.0.79 → rumdl-0.0.81}/src/rules/md053_link_image_reference_definitions.rs +15 -5
  41. {rumdl-0.0.79 → rumdl-0.0.81}/src/rules/md055_table_pipe_style.rs +23 -13
  42. {rumdl-0.0.79 → rumdl-0.0.81}/src/utils/document_structure.rs +80 -0
  43. rumdl-0.0.81/src/utils/fix_utils.rs +244 -0
  44. {rumdl-0.0.79 → rumdl-0.0.81}/src/utils/mod.rs +13 -0
  45. {rumdl-0.0.79 → rumdl-0.0.81}/src/utils/range_utils.rs +104 -0
  46. {rumdl-0.0.79 → rumdl-0.0.81}/tests/character_ranges/additional_tests.rs +5 -2
  47. {rumdl-0.0.79 → rumdl-0.0.81}/tests/character_ranges/comprehensive_tests.rs +1 -1
  48. {rumdl-0.0.79 → rumdl-0.0.81}/tests/character_ranges/extended_tests.rs +1 -1
  49. {rumdl-0.0.79 → rumdl-0.0.81}/tests/character_ranges/mod.rs +2 -2
  50. rumdl-0.0.81/tests/cli_lsp_fix_consistency.rs +493 -0
  51. rumdl-0.0.81/tests/config_file_command_test.rs +136 -0
  52. rumdl-0.0.81/tests/configuration_inheritance_tests.rs +326 -0
  53. rumdl-0.0.81/tests/consistency_regression_tests.rs +176 -0
  54. rumdl-0.0.81/tests/cross_platform_compatibility_tests.rs +417 -0
  55. rumdl-0.0.81/tests/final_confidence_assessment.rs +512 -0
  56. rumdl-0.0.81/tests/lsp_editor_integration_tests.rs +326 -0
  57. rumdl-0.0.81/tests/lsp_memory_leak_tests.rs +396 -0
  58. {rumdl-0.0.79 → rumdl-0.0.81}/tests/lsp_tests.rs +9 -7
  59. rumdl-0.0.81/tests/malformed_markdown_stress_tests.rs +314 -0
  60. rumdl-0.0.81/tests/performance_validation_tests.rs +232 -0
  61. rumdl-0.0.81/tests/real_world_repository_tests.rs +447 -0
  62. rumdl-0.0.81/tests/regression_prevention_tests.rs +310 -0
  63. {rumdl-0.0.79 → rumdl-0.0.81}/tests/rules/md011_test.rs +3 -3
  64. {rumdl-0.0.79 → rumdl-0.0.81}/tests/rules/md014_test.rs +3 -3
  65. {rumdl-0.0.79 → rumdl-0.0.81}/tests/rules/md022_test.rs +1 -1
  66. {rumdl-0.0.79 → rumdl-0.0.81}/tests/rules/md026_test.rs +107 -38
  67. {rumdl-0.0.79 → rumdl-0.0.81}/tests/rules/md032_test.rs +109 -21
  68. {rumdl-0.0.79 → rumdl-0.0.81}/tests/rules/md048_test.rs +4 -4
  69. rumdl-0.0.81/tests/thread_safety_tests.rs +416 -0
  70. rumdl-0.0.81/tests/unicode_edge_case_tests.rs +166 -0
  71. {rumdl-0.0.79 → rumdl-0.0.81}/tests/vscode_extension_fixes.rs +2 -2
  72. rumdl-0.0.79/docs/md026.md +0 -62
  73. {rumdl-0.0.79 → rumdl-0.0.81}/.rumdl.toml +0 -0
  74. {rumdl-0.0.79 → rumdl-0.0.81}/MANIFEST.in +0 -0
  75. {rumdl-0.0.79 → rumdl-0.0.81}/Makefile +0 -0
  76. {rumdl-0.0.79 → rumdl-0.0.81}/assets/logo.png +0 -0
  77. {rumdl-0.0.79 → rumdl-0.0.81}/benches/fix_performance.rs +0 -0
  78. {rumdl-0.0.79 → rumdl-0.0.81}/benches/range_performance.rs +0 -0
  79. {rumdl-0.0.79 → rumdl-0.0.81}/benches/range_utils_benchmark.rs +0 -0
  80. {rumdl-0.0.79 → rumdl-0.0.81}/benches/rule_performance.rs +0 -0
  81. {rumdl-0.0.79 → rumdl-0.0.81}/benches/simple_fix_bench.rs +0 -0
  82. {rumdl-0.0.79 → rumdl-0.0.81}/docs/md001.md +0 -0
  83. {rumdl-0.0.79 → rumdl-0.0.81}/docs/md002.md +0 -0
  84. {rumdl-0.0.79 → rumdl-0.0.81}/docs/md003.md +0 -0
  85. {rumdl-0.0.79 → rumdl-0.0.81}/docs/md004.md +0 -0
  86. {rumdl-0.0.79 → rumdl-0.0.81}/docs/md005.md +0 -0
  87. {rumdl-0.0.79 → rumdl-0.0.81}/docs/md006.md +0 -0
  88. {rumdl-0.0.79 → rumdl-0.0.81}/docs/md007.md +0 -0
  89. {rumdl-0.0.79 → rumdl-0.0.81}/docs/md009.md +0 -0
  90. {rumdl-0.0.79 → rumdl-0.0.81}/docs/md010.md +0 -0
  91. {rumdl-0.0.79 → rumdl-0.0.81}/docs/md011.md +0 -0
  92. {rumdl-0.0.79 → rumdl-0.0.81}/docs/md012.md +0 -0
  93. {rumdl-0.0.79 → rumdl-0.0.81}/docs/md013.md +0 -0
  94. {rumdl-0.0.79 → rumdl-0.0.81}/docs/md014.md +0 -0
  95. {rumdl-0.0.79 → rumdl-0.0.81}/docs/md018.md +0 -0
  96. {rumdl-0.0.79 → rumdl-0.0.81}/docs/md019.md +0 -0
  97. {rumdl-0.0.79 → rumdl-0.0.81}/docs/md020.md +0 -0
  98. {rumdl-0.0.79 → rumdl-0.0.81}/docs/md021.md +0 -0
  99. {rumdl-0.0.79 → rumdl-0.0.81}/docs/md022.md +0 -0
  100. {rumdl-0.0.79 → rumdl-0.0.81}/docs/md023.md +0 -0
  101. {rumdl-0.0.79 → rumdl-0.0.81}/docs/md024.md +0 -0
  102. {rumdl-0.0.79 → rumdl-0.0.81}/docs/md025.md +0 -0
  103. {rumdl-0.0.79 → rumdl-0.0.81}/docs/md027.md +0 -0
  104. {rumdl-0.0.79 → rumdl-0.0.81}/docs/md028.md +0 -0
  105. {rumdl-0.0.79 → rumdl-0.0.81}/docs/md029.md +0 -0
  106. {rumdl-0.0.79 → rumdl-0.0.81}/docs/md030.md +0 -0
  107. {rumdl-0.0.79 → rumdl-0.0.81}/docs/md031.md +0 -0
  108. {rumdl-0.0.79 → rumdl-0.0.81}/docs/md032.md +0 -0
  109. {rumdl-0.0.79 → rumdl-0.0.81}/docs/md033.md +0 -0
  110. {rumdl-0.0.79 → rumdl-0.0.81}/docs/md034.md +0 -0
  111. {rumdl-0.0.79 → rumdl-0.0.81}/docs/md035.md +0 -0
  112. {rumdl-0.0.79 → rumdl-0.0.81}/docs/md036.md +0 -0
  113. {rumdl-0.0.79 → rumdl-0.0.81}/docs/md037.md +0 -0
  114. {rumdl-0.0.79 → rumdl-0.0.81}/docs/md038.md +0 -0
  115. {rumdl-0.0.79 → rumdl-0.0.81}/docs/md039.md +0 -0
  116. {rumdl-0.0.79 → rumdl-0.0.81}/docs/md040.md +0 -0
  117. {rumdl-0.0.79 → rumdl-0.0.81}/docs/md041.md +0 -0
  118. {rumdl-0.0.79 → rumdl-0.0.81}/docs/md042.md +0 -0
  119. {rumdl-0.0.79 → rumdl-0.0.81}/docs/md043.md +0 -0
  120. {rumdl-0.0.79 → rumdl-0.0.81}/docs/md044.md +0 -0
  121. {rumdl-0.0.79 → rumdl-0.0.81}/docs/md045.md +0 -0
  122. {rumdl-0.0.79 → rumdl-0.0.81}/docs/md046.md +0 -0
  123. {rumdl-0.0.79 → rumdl-0.0.81}/docs/md047.md +0 -0
  124. {rumdl-0.0.79 → rumdl-0.0.81}/docs/md048.md +0 -0
  125. {rumdl-0.0.79 → rumdl-0.0.81}/docs/md049.md +0 -0
  126. {rumdl-0.0.79 → rumdl-0.0.81}/docs/md050.md +0 -0
  127. {rumdl-0.0.79 → rumdl-0.0.81}/docs/md051.md +0 -0
  128. {rumdl-0.0.79 → rumdl-0.0.81}/docs/md052.md +0 -0
  129. {rumdl-0.0.79 → rumdl-0.0.81}/docs/md053.md +0 -0
  130. {rumdl-0.0.79 → rumdl-0.0.81}/docs/md054.md +0 -0
  131. {rumdl-0.0.79 → rumdl-0.0.81}/docs/md055.md +0 -0
  132. {rumdl-0.0.79 → rumdl-0.0.81}/docs/md056.md +0 -0
  133. {rumdl-0.0.79 → rumdl-0.0.81}/docs/md057.md +0 -0
  134. {rumdl-0.0.79 → rumdl-0.0.81}/docs/md058.md +0 -0
  135. {rumdl-0.0.79 → rumdl-0.0.81}/issues/plan-rule-parity-with-markdownlint.md +0 -0
  136. {rumdl-0.0.79 → rumdl-0.0.81}/parity_check.py +0 -0
  137. {rumdl-0.0.79 → rumdl-0.0.81}/pyproject.toml +0 -0
  138. {rumdl-0.0.79 → rumdl-0.0.81}/python/MANIFEST.in +0 -0
  139. {rumdl-0.0.79 → rumdl-0.0.81}/python/PYTHON-README.md +0 -0
  140. {rumdl-0.0.79 → rumdl-0.0.81}/python/rumdl/__init__.py +0 -0
  141. {rumdl-0.0.79 → rumdl-0.0.81}/python/rumdl/__main__.py +0 -0
  142. {rumdl-0.0.79 → rumdl-0.0.81}/python/rumdl/py.typed +0 -0
  143. {rumdl-0.0.79 → rumdl-0.0.81}/rumdl.toml.example +0 -0
  144. {rumdl-0.0.79 → rumdl-0.0.81}/src/init.rs +0 -0
  145. {rumdl-0.0.79 → rumdl-0.0.81}/src/lib.rs +0 -0
  146. {rumdl-0.0.79 → rumdl-0.0.81}/src/lint_context.rs +0 -0
  147. {rumdl-0.0.79 → rumdl-0.0.81}/src/lsp/mod.rs +0 -0
  148. {rumdl-0.0.79 → rumdl-0.0.81}/src/parallel.rs +0 -0
  149. {rumdl-0.0.79 → rumdl-0.0.81}/src/performance.rs +0 -0
  150. {rumdl-0.0.79 → rumdl-0.0.81}/src/profiling.rs +0 -0
  151. {rumdl-0.0.79 → rumdl-0.0.81}/src/python.rs +0 -0
  152. {rumdl-0.0.79 → rumdl-0.0.81}/src/rule.rs +0 -0
  153. {rumdl-0.0.79 → rumdl-0.0.81}/src/rules/blockquote_utils.rs +0 -0
  154. {rumdl-0.0.79 → rumdl-0.0.81}/src/rules/code_block_utils.rs +0 -0
  155. {rumdl-0.0.79 → rumdl-0.0.81}/src/rules/code_fence_utils.rs +0 -0
  156. {rumdl-0.0.79 → rumdl-0.0.81}/src/rules/emphasis_style.rs +0 -0
  157. {rumdl-0.0.79 → rumdl-0.0.81}/src/rules/front_matter_utils.rs +0 -0
  158. {rumdl-0.0.79 → rumdl-0.0.81}/src/rules/heading_utils.rs +0 -0
  159. {rumdl-0.0.79 → rumdl-0.0.81}/src/rules/list_utils.rs +0 -0
  160. {rumdl-0.0.79 → rumdl-0.0.81}/src/rules/md003_heading_style.rs +0 -0
  161. {rumdl-0.0.79 → rumdl-0.0.81}/src/rules/md004_unordered_list_style.rs +0 -0
  162. {rumdl-0.0.79 → rumdl-0.0.81}/src/rules/md005_list_indent.rs +0 -0
  163. {rumdl-0.0.79 → rumdl-0.0.81}/src/rules/md006_start_bullets.rs +0 -0
  164. {rumdl-0.0.79 → rumdl-0.0.81}/src/rules/md007_ul_indent.rs +0 -0
  165. {rumdl-0.0.79 → rumdl-0.0.81}/src/rules/md018_no_missing_space_atx.rs +0 -0
  166. {rumdl-0.0.79 → rumdl-0.0.81}/src/rules/md020_no_missing_space_closed_atx.rs +0 -0
  167. {rumdl-0.0.79 → rumdl-0.0.81}/src/rules/md024_no_duplicate_heading.rs +0 -0
  168. {rumdl-0.0.79 → rumdl-0.0.81}/src/rules/md027_multiple_spaces_blockquote.rs +0 -0
  169. {rumdl-0.0.79 → rumdl-0.0.81}/src/rules/md033_no_inline_html.rs +0 -0
  170. {rumdl-0.0.79 → rumdl-0.0.81}/src/rules/md034_no_bare_urls.rs +0 -0
  171. {rumdl-0.0.79 → rumdl-0.0.81}/src/rules/md035_hr_style.rs +0 -0
  172. {rumdl-0.0.79 → rumdl-0.0.81}/src/rules/md037_spaces_around_emphasis.rs +0 -0
  173. {rumdl-0.0.79 → rumdl-0.0.81}/src/rules/md039_no_space_in_links.rs +0 -0
  174. {rumdl-0.0.79 → rumdl-0.0.81}/src/rules/md043_required_headings.rs +0 -0
  175. {rumdl-0.0.79 → rumdl-0.0.81}/src/rules/md044_proper_names.rs +0 -0
  176. {rumdl-0.0.79 → rumdl-0.0.81}/src/rules/md046_code_block_style.rs +0 -0
  177. {rumdl-0.0.79 → rumdl-0.0.81}/src/rules/md049_emphasis_style.rs +0 -0
  178. {rumdl-0.0.79 → rumdl-0.0.81}/src/rules/md050_strong_style.rs +0 -0
  179. {rumdl-0.0.79 → rumdl-0.0.81}/src/rules/md051_link_fragments.rs +0 -0
  180. {rumdl-0.0.79 → rumdl-0.0.81}/src/rules/md052_reference_links_images.rs +0 -0
  181. {rumdl-0.0.79 → rumdl-0.0.81}/src/rules/md054_link_image_style.rs +0 -0
  182. {rumdl-0.0.79 → rumdl-0.0.81}/src/rules/md056_table_column_count.rs +0 -0
  183. {rumdl-0.0.79 → rumdl-0.0.81}/src/rules/md057_existing_relative_links.rs +0 -0
  184. {rumdl-0.0.79 → rumdl-0.0.81}/src/rules/md058_blanks_around_tables.rs +0 -0
  185. {rumdl-0.0.79 → rumdl-0.0.81}/src/rules/mod.rs +0 -0
  186. {rumdl-0.0.79 → rumdl-0.0.81}/src/rules/strong_style.rs +0 -0
  187. {rumdl-0.0.79 → rumdl-0.0.81}/src/utils/ast_utils.rs +0 -0
  188. {rumdl-0.0.79 → rumdl-0.0.81}/src/utils/code_block_utils.rs +0 -0
  189. {rumdl-0.0.79 → rumdl-0.0.81}/src/utils/early_returns.rs +0 -0
  190. {rumdl-0.0.79 → rumdl-0.0.81}/src/utils/element_cache.rs +0 -0
  191. {rumdl-0.0.79 → rumdl-0.0.81}/src/utils/markdown_elements.rs +0 -0
  192. {rumdl-0.0.79 → rumdl-0.0.81}/src/utils/regex_cache.rs +0 -0
  193. {rumdl-0.0.79 → rumdl-0.0.81}/src/utils/string_interner.rs +0 -0
  194. {rumdl-0.0.79 → rumdl-0.0.81}/src/utils/table_utils.rs +0 -0
  195. {rumdl-0.0.79 → rumdl-0.0.81}/tests/advanced_integration_tests.rs +0 -0
  196. {rumdl-0.0.79 → rumdl-0.0.81}/tests/character_ranges/basic_tests.rs +0 -0
  197. {rumdl-0.0.79 → rumdl-0.0.81}/tests/character_ranges/unicode_utils.rs +0 -0
  198. {rumdl-0.0.79 → rumdl-0.0.81}/tests/cli_duplication_test.rs +0 -0
  199. {rumdl-0.0.79 → rumdl-0.0.81}/tests/cli_integration_tests.rs +0 -0
  200. {rumdl-0.0.79 → rumdl-0.0.81}/tests/commonmark_compliance_tests.rs +0 -0
  201. {rumdl-0.0.79 → rumdl-0.0.81}/tests/comprehensive_integration_tests.rs +0 -0
  202. {rumdl-0.0.79 → rumdl-0.0.81}/tests/config_application_tests.rs +0 -0
  203. {rumdl-0.0.79 → rumdl-0.0.81}/tests/config_tests.rs +0 -0
  204. {rumdl-0.0.79 → rumdl-0.0.81}/tests/init_command_test.rs +0 -0
  205. {rumdl-0.0.79 → rumdl-0.0.81}/tests/init_tests.rs +0 -0
  206. {rumdl-0.0.79 → rumdl-0.0.81}/tests/integration_tests.rs +0 -0
  207. {rumdl-0.0.79 → rumdl-0.0.81}/tests/json_output_test.rs +0 -0
  208. {rumdl-0.0.79 → rumdl-0.0.81}/tests/lib.rs +0 -0
  209. {rumdl-0.0.79 → rumdl-0.0.81}/tests/lsp_integration_tests.rs +0 -0
  210. {rumdl-0.0.79 → rumdl-0.0.81}/tests/markdownlint_cli_integration.rs +0 -0
  211. {rumdl-0.0.79 → rumdl-0.0.81}/tests/markdownlint_config_test.rs +0 -0
  212. {rumdl-0.0.79 → rumdl-0.0.81}/tests/md030_edge_cases.md +0 -0
  213. {rumdl-0.0.79 → rumdl-0.0.81}/tests/output_format_tests.rs +0 -0
  214. {rumdl-0.0.79 → rumdl-0.0.81}/tests/perf_check.rs +0 -0
  215. {rumdl-0.0.79 → rumdl-0.0.81}/tests/pyproject_config_tests.rs +0 -0
  216. {rumdl-0.0.79 → rumdl-0.0.81}/tests/rules/md001_test.rs +0 -0
  217. {rumdl-0.0.79 → rumdl-0.0.81}/tests/rules/md001_unicode_test.rs +0 -0
  218. {rumdl-0.0.79 → rumdl-0.0.81}/tests/rules/md002_test.rs +0 -0
  219. {rumdl-0.0.79 → rumdl-0.0.81}/tests/rules/md003_test.rs +0 -0
  220. {rumdl-0.0.79 → rumdl-0.0.81}/tests/rules/md004_test.rs +0 -0
  221. {rumdl-0.0.79 → rumdl-0.0.81}/tests/rules/md005_test.rs +0 -0
  222. {rumdl-0.0.79 → rumdl-0.0.81}/tests/rules/md006_test.rs +0 -0
  223. {rumdl-0.0.79 → rumdl-0.0.81}/tests/rules/md006_unicode_test.rs +0 -0
  224. {rumdl-0.0.79 → rumdl-0.0.81}/tests/rules/md007_test.rs +0 -0
  225. {rumdl-0.0.79 → rumdl-0.0.81}/tests/rules/md009_test.rs +0 -0
  226. {rumdl-0.0.79 → rumdl-0.0.81}/tests/rules/md010_test.rs +0 -0
  227. {rumdl-0.0.79 → rumdl-0.0.81}/tests/rules/md012_test.rs +0 -0
  228. {rumdl-0.0.79 → rumdl-0.0.81}/tests/rules/md013_test.rs +0 -0
  229. {rumdl-0.0.79 → rumdl-0.0.81}/tests/rules/md018_test.rs +0 -0
  230. {rumdl-0.0.79 → rumdl-0.0.81}/tests/rules/md019_test.rs +0 -0
  231. {rumdl-0.0.79 → rumdl-0.0.81}/tests/rules/md020_test.rs +0 -0
  232. {rumdl-0.0.79 → rumdl-0.0.81}/tests/rules/md021_test.rs +0 -0
  233. {rumdl-0.0.79 → rumdl-0.0.81}/tests/rules/md023_extended_test.rs +0 -0
  234. {rumdl-0.0.79 → rumdl-0.0.81}/tests/rules/md023_test.rs +0 -0
  235. {rumdl-0.0.79 → rumdl-0.0.81}/tests/rules/md024_test.rs +0 -0
  236. {rumdl-0.0.79 → rumdl-0.0.81}/tests/rules/md025_test.rs +0 -0
  237. {rumdl-0.0.79 → rumdl-0.0.81}/tests/rules/md027_test.rs +0 -0
  238. {rumdl-0.0.79 → rumdl-0.0.81}/tests/rules/md028_test.rs +0 -0
  239. {rumdl-0.0.79 → rumdl-0.0.81}/tests/rules/md029_test.rs +0 -0
  240. {rumdl-0.0.79 → rumdl-0.0.81}/tests/rules/md030_test.rs +0 -0
  241. {rumdl-0.0.79 → rumdl-0.0.81}/tests/rules/md031_test.rs +0 -0
  242. {rumdl-0.0.79 → rumdl-0.0.81}/tests/rules/md033_extended_test.rs +0 -0
  243. {rumdl-0.0.79 → rumdl-0.0.81}/tests/rules/md033_test.rs +0 -0
  244. {rumdl-0.0.79 → rumdl-0.0.81}/tests/rules/md034_test.rs +0 -0
  245. {rumdl-0.0.79 → rumdl-0.0.81}/tests/rules/md035_test.rs +0 -0
  246. {rumdl-0.0.79 → rumdl-0.0.81}/tests/rules/md036_test.rs +0 -0
  247. {rumdl-0.0.79 → rumdl-0.0.81}/tests/rules/md037_test.rs +0 -0
  248. {rumdl-0.0.79 → rumdl-0.0.81}/tests/rules/md038_test.rs +0 -0
  249. {rumdl-0.0.79 → rumdl-0.0.81}/tests/rules/md039_test.rs +0 -0
  250. {rumdl-0.0.79 → rumdl-0.0.81}/tests/rules/md040_test.rs +0 -0
  251. {rumdl-0.0.79 → rumdl-0.0.81}/tests/rules/md041_test.rs +0 -0
  252. {rumdl-0.0.79 → rumdl-0.0.81}/tests/rules/md042_test.rs +0 -0
  253. {rumdl-0.0.79 → rumdl-0.0.81}/tests/rules/md043_test.rs +0 -0
  254. {rumdl-0.0.79 → rumdl-0.0.81}/tests/rules/md044_test.rs +0 -0
  255. {rumdl-0.0.79 → rumdl-0.0.81}/tests/rules/md045_test.rs +0 -0
  256. {rumdl-0.0.79 → rumdl-0.0.81}/tests/rules/md046_test.rs +0 -0
  257. {rumdl-0.0.79 → rumdl-0.0.81}/tests/rules/md047_test.rs +0 -0
  258. {rumdl-0.0.79 → rumdl-0.0.81}/tests/rules/md049_test.rs +0 -0
  259. {rumdl-0.0.79 → rumdl-0.0.81}/tests/rules/md050_test.rs +0 -0
  260. {rumdl-0.0.79 → rumdl-0.0.81}/tests/rules/md051_test.rs +0 -0
  261. {rumdl-0.0.79 → rumdl-0.0.81}/tests/rules/md052_test.rs +0 -0
  262. {rumdl-0.0.79 → rumdl-0.0.81}/tests/rules/md053_additional_test.rs +0 -0
  263. {rumdl-0.0.79 → rumdl-0.0.81}/tests/rules/md053_proptest.rs +0 -0
  264. {rumdl-0.0.79 → rumdl-0.0.81}/tests/rules/md053_test.rs +0 -0
  265. {rumdl-0.0.79 → rumdl-0.0.81}/tests/rules/md054_test.rs +0 -0
  266. {rumdl-0.0.79 → rumdl-0.0.81}/tests/rules/md054_unicode_test.rs +0 -0
  267. {rumdl-0.0.79 → rumdl-0.0.81}/tests/rules/md055_test.rs +0 -0
  268. {rumdl-0.0.79 → rumdl-0.0.81}/tests/rules/md056_test.rs +0 -0
  269. {rumdl-0.0.79 → rumdl-0.0.81}/tests/rules/md057_test.rs +0 -0
  270. {rumdl-0.0.79 → rumdl-0.0.81}/tests/rules/md058_test.rs +0 -0
  271. {rumdl-0.0.79 → rumdl-0.0.81}/tests/rules/mod.rs +0 -0
  272. {rumdl-0.0.79 → rumdl-0.0.81}/tests/utils/blockquote_utils_test.rs +0 -0
  273. {rumdl-0.0.79 → rumdl-0.0.81}/tests/utils/code_block_utils_extended_test.rs +0 -0
  274. {rumdl-0.0.79 → rumdl-0.0.81}/tests/utils/code_block_utils_test.rs +0 -0
  275. {rumdl-0.0.79 → rumdl-0.0.81}/tests/utils/core_utils_test.rs +0 -0
  276. {rumdl-0.0.79 → rumdl-0.0.81}/tests/utils/front_matter_utils_test.rs +0 -0
  277. {rumdl-0.0.79 → rumdl-0.0.81}/tests/utils/line_index_test.rs +0 -0
  278. {rumdl-0.0.79 → rumdl-0.0.81}/tests/utils/mod.rs +0 -0
  279. {rumdl-0.0.79 → rumdl-0.0.81}/tests/utils_markdown_edge_cases.rs +0 -0
  280. {rumdl-0.0.79 → rumdl-0.0.81}/tests/utils_tests.rs +0 -0
@@ -1783,7 +1783,7 @@ dependencies = [
1783
1783
 
1784
1784
  [[package]]
1785
1785
  name = "rumdl"
1786
- version = "0.0.79"
1786
+ version = "0.0.81"
1787
1787
  dependencies = [
1788
1788
  "anyhow",
1789
1789
  "assert_cmd",
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "rumdl"
3
- version = "0.0.79"
3
+ version = "0.0.81"
4
4
  edition = "2021"
5
5
  description = "A fast Markdown linter written in Rust (Ru(st) MarkDown Linter)"
6
6
  authors = ["Ruben J. Jongejan <ruben.jongejan@gmail.com>"]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rumdl
3
- Version: 0.0.79
3
+ Version: 0.0.81
4
4
  Classifier: Development Status :: 4 - Beta
5
5
  Classifier: Environment :: Console
6
6
  Classifier: Intended Audience :: Developers
@@ -176,8 +176,8 @@ rumdl check --include "docs/*.md,README.md" .
176
176
  # Combine include and exclude patterns
177
177
  rumdl check --include "docs/**/*.md" --exclude "docs/temp,docs/drafts" .
178
178
 
179
- # Ignore gitignore rules
180
- rumdl check --no-respect-gitignore .
179
+ # Don't respect gitignore files (note: --respect-gitignore defaults to true)
180
+ rumdl check --respect-gitignore=false .
181
181
  ```
182
182
 
183
183
  ## Pre-commit Integration
@@ -235,38 +235,85 @@ rumdl <command> [options] [file or directory...]
235
235
 
236
236
  ### Commands
237
237
 
238
- - `check`: Lint Markdown files and print warnings/errors (main subcommand)
239
- - Options:
240
- - `-c, --config <file>`: Use custom configuration file
241
- - `--fix`: Automatically fix issues where possible
242
- - `-l, --list-rules`: List all available rules
243
- - `-d, --disable <rules>`: Disable specific rules (comma-separated)
244
- - `-e, --enable <rules>`: Enable only specific rules (comma-separated)
245
- - `--exclude <patterns>`: Exclude specific files or directories (comma-separated glob patterns)
246
- - `--include <patterns>`: Include only specific files or directories (comma-separated glob patterns)
247
- - `--no-respect-gitignore`: Don't respect .gitignore files
248
- - `-v, --verbose`: Show detailed output
249
- - `--profile`: Show profiling information
250
- - `-q, --quiet`: Suppress all output except errors
251
-
252
- - `init`: Create a default `.rumdl.toml` configuration file in the current directory
253
- - `--pyproject`: Generate configuration for `pyproject.toml` instead of `.rumdl.toml`
254
-
255
- - `rule [<rule>]`: Show information about a rule or list all rules
256
- - If a rule name or ID is provided, shows details for that rule
257
- - If no argument is given, lists all available rules
258
-
259
- - `config [--defaults]`: Show the full effective configuration (default), or only the defaults.
260
- - `--defaults`: Show only the default configuration as TOML.
261
- - Subcommands:
262
- - `get <key>`: Query a specific config key (e.g. `global.exclude` or `MD013.line_length`)
263
-
264
- - `server`: Start the Language Server Protocol server for editor integration
265
- - `--port <PORT>`: TCP port to listen on (for debugging)
266
- - `--stdio`: Use stdio for communication (default)
267
- - `-v, --verbose`: Enable verbose logging
268
-
269
- - `version`: Show version information
238
+ #### `check [PATHS...]`
239
+
240
+ Lint Markdown files and print warnings/errors (main subcommand)
241
+
242
+ **Arguments:**
243
+ - `[PATHS...]`: Files or directories to lint. If provided, these paths take precedence over include patterns
244
+
245
+ **Options:**
246
+ - `-f, --fix`: Automatically fix issues where possible
247
+ - `-l, --list-rules`: List all available rules
248
+ - `-d, --disable <rules>`: Disable specific rules (comma-separated)
249
+ - `-e, --enable <rules>`: Enable only specific rules (comma-separated)
250
+ - `--exclude <patterns>`: Exclude specific files or directories (comma-separated glob patterns)
251
+ - `--include <patterns>`: Include only specific files or directories (comma-separated glob patterns)
252
+ - `--respect-gitignore`: Respect .gitignore files when scanning directories (does not apply to explicitly provided paths)
253
+ - `-v, --verbose`: Show detailed output
254
+ - `--profile`: Show profiling information
255
+ - `-q, --quiet`: Quiet mode
256
+ - `-o, --output <format>`: Output format: `text` (default) or `json`
257
+ - `--stdin`: Read from stdin instead of files
258
+
259
+ #### `init [OPTIONS]`
260
+
261
+ Create a default configuration file in the current directory
262
+
263
+ **Options:**
264
+ - `--pyproject`: Generate configuration for `pyproject.toml` instead of `.rumdl.toml`
265
+
266
+ #### `import <FILE> [OPTIONS]`
267
+
268
+ Import and convert markdownlint configuration files to rumdl format
269
+
270
+ **Arguments:**
271
+ - `<FILE>`: Path to markdownlint config file (JSON/YAML)
272
+
273
+ **Options:**
274
+ - `-o, --output <path>`: Output file path (default: `.rumdl.toml`)
275
+ - `--format <format>`: Output format: `toml` or `json` (default: `toml`)
276
+ - `--dry-run`: Show converted config without writing to file
277
+
278
+ #### `rule [<rule>]`
279
+
280
+ Show information about a rule or list all rules
281
+
282
+ **Arguments:**
283
+ - `[rule]`: Rule name or ID (optional). If provided, shows details for that rule. If omitted, lists all available rules
284
+
285
+ #### `config [OPTIONS] [COMMAND]`
286
+
287
+ Show configuration or query a specific key
288
+
289
+ **Options:**
290
+ - `--defaults`: Show only the default configuration values
291
+ - `--output <format>`: Output format (e.g. `toml`, `json`)
292
+
293
+ **Subcommands:**
294
+ - `get <key>`: Query a specific config key (e.g. `global.exclude` or `MD013.line_length`)
295
+ - `file`: Show the absolute path of the configuration file that was loaded
296
+
297
+ #### `server [OPTIONS]`
298
+
299
+ Start the Language Server Protocol server for editor integration
300
+
301
+ **Options:**
302
+ - `--port <PORT>`: TCP port to listen on (for debugging)
303
+ - `--stdio`: Use stdio for communication (default)
304
+ - `-v, --verbose`: Enable verbose logging
305
+
306
+ #### `version`
307
+
308
+ Show version information
309
+
310
+ ### Global Options
311
+
312
+ These options are available for all commands:
313
+
314
+ - `--color <mode>`: Control colored output: `auto` (default), `always`, `never`
315
+ - `--config <file>`: Path to configuration file
316
+ - `--no-config`: Ignore all configuration files and use built-in defaults
270
317
 
271
318
  ### Usage Examples
272
319
 
@@ -283,6 +330,15 @@ rumdl init
283
330
  # Create or update a pyproject.toml file with rumdl configuration
284
331
  rumdl init --pyproject
285
332
 
333
+ # Import a markdownlint config file
334
+ rumdl import .markdownlint.json
335
+
336
+ # Convert markdownlint config to JSON format
337
+ rumdl import --format json .markdownlint.yaml --output rumdl-config.json
338
+
339
+ # Preview conversion without writing file
340
+ rumdl import --dry-run .markdownlint.json
341
+
286
342
  # Show information about a specific rule
287
343
  rumdl rule MD013
288
344
 
@@ -292,6 +348,24 @@ rumdl rule
292
348
  # Query a specific config key
293
349
  rumdl config get global.exclude
294
350
 
351
+ # Show the path of the loaded configuration file
352
+ rumdl config file
353
+
354
+ # Show configuration as JSON instead of the default format
355
+ rumdl config --output json
356
+
357
+ # Lint content from stdin
358
+ echo "# My Heading" | rumdl check --stdin
359
+
360
+ # Get JSON output for integration with other tools
361
+ rumdl check --output json README.md
362
+
363
+ # Disable colors in output
364
+ rumdl check --color never README.md
365
+
366
+ # Use built-in defaults, ignoring all config files
367
+ rumdl check --no-config README.md
368
+
295
369
  # Show version information
296
370
  rumdl version
297
371
  ```
@@ -303,6 +377,30 @@ rumdl can be configured in several ways:
303
377
  1. Using a `.rumdl.toml` file in your project directory
304
378
  2. Using the `[tool.rumdl]` section in your project's `pyproject.toml` file (for Python projects)
305
379
  3. Using command-line arguments
380
+ 4. **Automatic markdownlint compatibility**: rumdl automatically discovers and loads existing markdownlint config files (`.markdownlint.json`, `.markdownlint.yaml`, etc.)
381
+
382
+ ### Markdownlint Migration
383
+
384
+ rumdl provides seamless compatibility with existing markdownlint configurations:
385
+
386
+ **Automatic Discovery**: rumdl automatically detects and loads markdownlint config files:
387
+ - `.markdownlint.json` / `.markdownlint.jsonc`
388
+ - `.markdownlint.yaml` / `.markdownlint.yml`
389
+ - `markdownlint.json` / `markdownlint.yaml`
390
+
391
+ **Explicit Import**: Convert markdownlint configs to rumdl format:
392
+ ```bash
393
+ # Convert to .rumdl.toml
394
+ rumdl import .markdownlint.json
395
+
396
+ # Convert to JSON format
397
+ rumdl import --format json .markdownlint.yaml --output config.json
398
+
399
+ # Preview conversion
400
+ rumdl import --dry-run .markdownlint.json
401
+ ```
402
+
403
+ For comprehensive documentation on global settings (file selection, rule enablement, etc.), see our [Global Settings Reference](docs/global-settings.md).
306
404
 
307
405
  ### Configuration File Example
308
406
 
@@ -455,10 +553,12 @@ Run with `--fix` to automatically fix issues
455
553
 
456
554
  ### Output Format
457
555
 
556
+ #### Text Output (Default)
557
+
458
558
  rumdl uses a consistent output format for all issues:
459
559
 
460
560
  ```text
461
- {file}:{line}:{column}: [{rule*id}] {message} [{fix*indicator}]
561
+ {file}:{line}:{column}: [{rule_id}] {message} [{fix_indicator}]
462
562
  ```
463
563
 
464
564
  The output is colorized by default:
@@ -470,6 +570,42 @@ The output is colorized by default:
470
570
  - Fixable issues are marked with `[*]` in green
471
571
  - Fixed issues are marked with `[fixed]` in green
472
572
 
573
+ #### JSON Output
574
+
575
+ For integration with other tools and automation, use `--output json`:
576
+
577
+ ```bash
578
+ rumdl check --output json README.md
579
+ ```
580
+
581
+ This produces structured JSON output:
582
+
583
+ ```json
584
+ {
585
+ "summary": {
586
+ "total_files": 1,
587
+ "files_with_issues": 1,
588
+ "total_issues": 2,
589
+ "fixable_issues": 1
590
+ },
591
+ "files": [
592
+ {
593
+ "path": "README.md",
594
+ "issues": [
595
+ {
596
+ "line": 12,
597
+ "column": 1,
598
+ "rule": "MD022",
599
+ "message": "Headings should be surrounded by blank lines",
600
+ "fixable": true,
601
+ "severity": "error"
602
+ }
603
+ ]
604
+ }
605
+ ]
606
+ }
607
+ ```
608
+
473
609
  ## Development
474
610
 
475
611
  ### Prerequisites
@@ -146,8 +146,8 @@ rumdl check --include "docs/*.md,README.md" .
146
146
  # Combine include and exclude patterns
147
147
  rumdl check --include "docs/**/*.md" --exclude "docs/temp,docs/drafts" .
148
148
 
149
- # Ignore gitignore rules
150
- rumdl check --no-respect-gitignore .
149
+ # Don't respect gitignore files (note: --respect-gitignore defaults to true)
150
+ rumdl check --respect-gitignore=false .
151
151
  ```
152
152
 
153
153
  ## Pre-commit Integration
@@ -205,38 +205,85 @@ rumdl <command> [options] [file or directory...]
205
205
 
206
206
  ### Commands
207
207
 
208
- - `check`: Lint Markdown files and print warnings/errors (main subcommand)
209
- - Options:
210
- - `-c, --config <file>`: Use custom configuration file
211
- - `--fix`: Automatically fix issues where possible
212
- - `-l, --list-rules`: List all available rules
213
- - `-d, --disable <rules>`: Disable specific rules (comma-separated)
214
- - `-e, --enable <rules>`: Enable only specific rules (comma-separated)
215
- - `--exclude <patterns>`: Exclude specific files or directories (comma-separated glob patterns)
216
- - `--include <patterns>`: Include only specific files or directories (comma-separated glob patterns)
217
- - `--no-respect-gitignore`: Don't respect .gitignore files
218
- - `-v, --verbose`: Show detailed output
219
- - `--profile`: Show profiling information
220
- - `-q, --quiet`: Suppress all output except errors
221
-
222
- - `init`: Create a default `.rumdl.toml` configuration file in the current directory
223
- - `--pyproject`: Generate configuration for `pyproject.toml` instead of `.rumdl.toml`
224
-
225
- - `rule [<rule>]`: Show information about a rule or list all rules
226
- - If a rule name or ID is provided, shows details for that rule
227
- - If no argument is given, lists all available rules
228
-
229
- - `config [--defaults]`: Show the full effective configuration (default), or only the defaults.
230
- - `--defaults`: Show only the default configuration as TOML.
231
- - Subcommands:
232
- - `get <key>`: Query a specific config key (e.g. `global.exclude` or `MD013.line_length`)
233
-
234
- - `server`: Start the Language Server Protocol server for editor integration
235
- - `--port <PORT>`: TCP port to listen on (for debugging)
236
- - `--stdio`: Use stdio for communication (default)
237
- - `-v, --verbose`: Enable verbose logging
238
-
239
- - `version`: Show version information
208
+ #### `check [PATHS...]`
209
+
210
+ Lint Markdown files and print warnings/errors (main subcommand)
211
+
212
+ **Arguments:**
213
+ - `[PATHS...]`: Files or directories to lint. If provided, these paths take precedence over include patterns
214
+
215
+ **Options:**
216
+ - `-f, --fix`: Automatically fix issues where possible
217
+ - `-l, --list-rules`: List all available rules
218
+ - `-d, --disable <rules>`: Disable specific rules (comma-separated)
219
+ - `-e, --enable <rules>`: Enable only specific rules (comma-separated)
220
+ - `--exclude <patterns>`: Exclude specific files or directories (comma-separated glob patterns)
221
+ - `--include <patterns>`: Include only specific files or directories (comma-separated glob patterns)
222
+ - `--respect-gitignore`: Respect .gitignore files when scanning directories (does not apply to explicitly provided paths)
223
+ - `-v, --verbose`: Show detailed output
224
+ - `--profile`: Show profiling information
225
+ - `-q, --quiet`: Quiet mode
226
+ - `-o, --output <format>`: Output format: `text` (default) or `json`
227
+ - `--stdin`: Read from stdin instead of files
228
+
229
+ #### `init [OPTIONS]`
230
+
231
+ Create a default configuration file in the current directory
232
+
233
+ **Options:**
234
+ - `--pyproject`: Generate configuration for `pyproject.toml` instead of `.rumdl.toml`
235
+
236
+ #### `import <FILE> [OPTIONS]`
237
+
238
+ Import and convert markdownlint configuration files to rumdl format
239
+
240
+ **Arguments:**
241
+ - `<FILE>`: Path to markdownlint config file (JSON/YAML)
242
+
243
+ **Options:**
244
+ - `-o, --output <path>`: Output file path (default: `.rumdl.toml`)
245
+ - `--format <format>`: Output format: `toml` or `json` (default: `toml`)
246
+ - `--dry-run`: Show converted config without writing to file
247
+
248
+ #### `rule [<rule>]`
249
+
250
+ Show information about a rule or list all rules
251
+
252
+ **Arguments:**
253
+ - `[rule]`: Rule name or ID (optional). If provided, shows details for that rule. If omitted, lists all available rules
254
+
255
+ #### `config [OPTIONS] [COMMAND]`
256
+
257
+ Show configuration or query a specific key
258
+
259
+ **Options:**
260
+ - `--defaults`: Show only the default configuration values
261
+ - `--output <format>`: Output format (e.g. `toml`, `json`)
262
+
263
+ **Subcommands:**
264
+ - `get <key>`: Query a specific config key (e.g. `global.exclude` or `MD013.line_length`)
265
+ - `file`: Show the absolute path of the configuration file that was loaded
266
+
267
+ #### `server [OPTIONS]`
268
+
269
+ Start the Language Server Protocol server for editor integration
270
+
271
+ **Options:**
272
+ - `--port <PORT>`: TCP port to listen on (for debugging)
273
+ - `--stdio`: Use stdio for communication (default)
274
+ - `-v, --verbose`: Enable verbose logging
275
+
276
+ #### `version`
277
+
278
+ Show version information
279
+
280
+ ### Global Options
281
+
282
+ These options are available for all commands:
283
+
284
+ - `--color <mode>`: Control colored output: `auto` (default), `always`, `never`
285
+ - `--config <file>`: Path to configuration file
286
+ - `--no-config`: Ignore all configuration files and use built-in defaults
240
287
 
241
288
  ### Usage Examples
242
289
 
@@ -253,6 +300,15 @@ rumdl init
253
300
  # Create or update a pyproject.toml file with rumdl configuration
254
301
  rumdl init --pyproject
255
302
 
303
+ # Import a markdownlint config file
304
+ rumdl import .markdownlint.json
305
+
306
+ # Convert markdownlint config to JSON format
307
+ rumdl import --format json .markdownlint.yaml --output rumdl-config.json
308
+
309
+ # Preview conversion without writing file
310
+ rumdl import --dry-run .markdownlint.json
311
+
256
312
  # Show information about a specific rule
257
313
  rumdl rule MD013
258
314
 
@@ -262,6 +318,24 @@ rumdl rule
262
318
  # Query a specific config key
263
319
  rumdl config get global.exclude
264
320
 
321
+ # Show the path of the loaded configuration file
322
+ rumdl config file
323
+
324
+ # Show configuration as JSON instead of the default format
325
+ rumdl config --output json
326
+
327
+ # Lint content from stdin
328
+ echo "# My Heading" | rumdl check --stdin
329
+
330
+ # Get JSON output for integration with other tools
331
+ rumdl check --output json README.md
332
+
333
+ # Disable colors in output
334
+ rumdl check --color never README.md
335
+
336
+ # Use built-in defaults, ignoring all config files
337
+ rumdl check --no-config README.md
338
+
265
339
  # Show version information
266
340
  rumdl version
267
341
  ```
@@ -273,6 +347,30 @@ rumdl can be configured in several ways:
273
347
  1. Using a `.rumdl.toml` file in your project directory
274
348
  2. Using the `[tool.rumdl]` section in your project's `pyproject.toml` file (for Python projects)
275
349
  3. Using command-line arguments
350
+ 4. **Automatic markdownlint compatibility**: rumdl automatically discovers and loads existing markdownlint config files (`.markdownlint.json`, `.markdownlint.yaml`, etc.)
351
+
352
+ ### Markdownlint Migration
353
+
354
+ rumdl provides seamless compatibility with existing markdownlint configurations:
355
+
356
+ **Automatic Discovery**: rumdl automatically detects and loads markdownlint config files:
357
+ - `.markdownlint.json` / `.markdownlint.jsonc`
358
+ - `.markdownlint.yaml` / `.markdownlint.yml`
359
+ - `markdownlint.json` / `markdownlint.yaml`
360
+
361
+ **Explicit Import**: Convert markdownlint configs to rumdl format:
362
+ ```bash
363
+ # Convert to .rumdl.toml
364
+ rumdl import .markdownlint.json
365
+
366
+ # Convert to JSON format
367
+ rumdl import --format json .markdownlint.yaml --output config.json
368
+
369
+ # Preview conversion
370
+ rumdl import --dry-run .markdownlint.json
371
+ ```
372
+
373
+ For comprehensive documentation on global settings (file selection, rule enablement, etc.), see our [Global Settings Reference](docs/global-settings.md).
276
374
 
277
375
  ### Configuration File Example
278
376
 
@@ -425,10 +523,12 @@ Run with `--fix` to automatically fix issues
425
523
 
426
524
  ### Output Format
427
525
 
526
+ #### Text Output (Default)
527
+
428
528
  rumdl uses a consistent output format for all issues:
429
529
 
430
530
  ```text
431
- {file}:{line}:{column}: [{rule*id}] {message} [{fix*indicator}]
531
+ {file}:{line}:{column}: [{rule_id}] {message} [{fix_indicator}]
432
532
  ```
433
533
 
434
534
  The output is colorized by default:
@@ -440,6 +540,42 @@ The output is colorized by default:
440
540
  - Fixable issues are marked with `[*]` in green
441
541
  - Fixed issues are marked with `[fixed]` in green
442
542
 
543
+ #### JSON Output
544
+
545
+ For integration with other tools and automation, use `--output json`:
546
+
547
+ ```bash
548
+ rumdl check --output json README.md
549
+ ```
550
+
551
+ This produces structured JSON output:
552
+
553
+ ```json
554
+ {
555
+ "summary": {
556
+ "total_files": 1,
557
+ "files_with_issues": 1,
558
+ "total_issues": 2,
559
+ "fixable_issues": 1
560
+ },
561
+ "files": [
562
+ {
563
+ "path": "README.md",
564
+ "issues": [
565
+ {
566
+ "line": 12,
567
+ "column": 1,
568
+ "rule": "MD022",
569
+ "message": "Headings should be surrounded by blank lines",
570
+ "fixable": true,
571
+ "severity": "error"
572
+ }
573
+ ]
574
+ }
575
+ ]
576
+ }
577
+ ```
578
+
443
579
  ## Development
444
580
 
445
581
  ### Prerequisites
@@ -7,6 +7,8 @@
7
7
  rumdl implements 50+ rules for checking Markdown files. This document provides a comprehensive reference of all available rules, organized by category.
8
8
  Each rule has a brief description and a link to its detailed documentation.
9
9
 
10
+ For information on global configuration settings (file selection, rule enablement, etc.), see the [Global Settings Reference](global-settings.md).
11
+
10
12
  ## Rule Categories
11
13
 
12
14
  - [Heading Rules](#heading-rules) - Rules related to heading structure and formatting