@@ -199,48 +199,45 @@ Weaknesses:
199199
200200### Structural Linting
201201
202- | Capability | mdsmith | markdownlint | remark-lint |
203- | ---------------------| --------------------------------| ------------------------------------------| ---------------------------------|
204- | Heading hierarchy | [ MDS003] [ mds003 ] | [ MD001] [ md001 ] | [ heading-increment] [ rl-hi ] |
205- | First-line heading | [ MDS004] [ mds004 ] | [ MD041] [ md041 ] | [ first-heading-level] [ rl-fhl ] |
206- | Duplicate headings | [ MDS005] [ mds005 ] | [ MD024] [ md024 ] | [ no-duplicate-headings] [ rl-ndh ] |
207- | Blank line spacing | [ MDS013] [ mds013 ] -[ 015] [ mds015 ] | [ MD022] [ md022 ] ,[ 025] [ md025 ] ,[ 031] [ md031 ] | plugins |
208- | List indentation | [ MDS016] [ mds016 ] | [ MD007] [ md007 ] | [ list-item-indent] [ rl-lii ] |
209- | Code fence style | [ MDS010] [ mds010 ] | [ MD048] [ md048 ] | [ fenced-code-flag] [ rl-fcf ] |
210- | Code block language | [ MDS011] [ mds011 ] | [ MD040] [ md040 ] | [ fenced-code-flag] [ rl-fcf ] |
211- | Bare URLs | [ MDS012] [ mds012 ] | [ MD034] [ md034 ] | [ no-literal-urls] [ rl-nlu ] |
212- | Line length | [ MDS001] [ mds001 ] | [ MD013] [ md013 ] | [ maximum-line-length] [ rl-mll ] |
213- | Trailing spaces | [ MDS006] [ mds006 ] | [ MD009] [ md009 ] | [ hard-break-spaces] [ rl-hbs ] |
202+ | Capability | mdsmith | markdownlint | remark-lint |
203+ | ---------------------| --------------------------------| ------------------------------------------| ---------------------------------------------------|
204+ | Heading hierarchy | [ MDS003] [ mds003 ] | [ MD001] [ md001 ] | [ heading-increment] [ rl-hi ] |
205+ | First-line heading | [ MDS004] [ mds004 ] | [ MD041] [ md041 ] | [ first-heading-level] [ rl-fhl ] |
206+ | Duplicate headings | [ MDS005] [ mds005 ] | [ MD024] [ md024 ] | [ no-duplicate-headings] [ rl-ndh ] |
207+ | Blank line spacing | [ MDS013] [ mds013 ] -[ 015] [ mds015 ] | [ MD022] [ md022 ] ,[ 025] [ md025 ] ,[ 031] [ md031 ] | plugins |
208+ | List indentation | [ MDS016] [ mds016 ] | [ MD007] [ md007 ] | [ list-item-indent] [ rl-lii ] |
209+ | Code fence style | [ MDS010] [ mds010 ] | [ MD048] [ md048 ] | [ fenced-code-flag] [ rl-fcf ] |
210+ | Code block language | [ MDS011] [ mds011 ] | [ MD040] [ md040 ] | [ fenced-code-flag] [ rl-fcf ] |
211+ | Bare URLs | [ MDS012] [ mds012 ] | [ MD034] [ md034 ] | [ no-literal-urls] [ rl-nlu ] |
212+ | Line length | [ MDS001] [ mds001 ] | [ MD013] [ md013 ] | [ maximum-line-length] [ rl-mll ] |
213+ | Trailing spaces | [ MDS006] [ mds006 ] | [ MD009] [ md009 ] | [ hard-break-spaces] [ rl-hbs ] |
214+ | Inline HTML | planned ([ plan 105] [ plan105 ] ) | [ MD033] [ md033 ] | [ no-html] [ rl-nh ] |
215+ | Image alt text | [ MDS032] [ mds032 ] | [ MD045] [ md045 ] | [ no-empty-image-alt-text] [ rl-neiat ] (third-party) |
216+ | OL numbering | [ MDS046] [ mds046 ] | [ MD029] [ md029 ] | [ ordered-list-marker-style] [ rl-olms ] |
217+ | UL marker style | planned ([ plan 109] [ plan109 ] ) | [ MD004] [ md004 ] | [ unordered-list-marker-style] [ rl-ulms ] |
218+ | Emphasis style | planned ([ plan 106] [ plan106 ] ) | [ MD049] [ md049 ] , [ MD050] [ md050 ] | [ emphasis-marker] [ rl-em ] |
219+ | HR style | planned ([ plan 108] [ plan108 ] ) | [ MD035] [ md035 ] | [ rule-style] [ rl-rs ] |
220+ | Ambiguous emphasis | planned ([ plan 111] [ plan111 ] ) | [ MD037] [ md037 ] | no |
221+ | Space in code | no | [ MD038] [ md038 ] | no |
222+ | Space in links | no | [ MD039] [ md039 ] | no |
223+ | Proper names | no | [ MD044] [ md044 ] | no |
224+ | Required headings | [ MDS020] [ mds020 ] (via schema) | [ MD043] [ md043 ] | no |
225+ | Single H1 | no | [ MD047] [ md047 ] | no |
226+ | Link fragments | [ MDS027] [ mds027 ] (cross-file) | [ MD051] [ md051 ] | no |
227+ | Reference links | planned ([ plan 107] [ plan107 ] ) | [ MD052] [ md052 ] , [ MD053] [ md053 ] | no |
214228
215229All three cover core structural rules. markdownlint has
216- the broadest rule set (~ 60 rules). mdsmith and remark-lint
217- are comparable in structural coverage.
218-
219- ### Rules mdsmith Lacks
220-
221- markdownlint has ~ 30 rules without mdsmith equivalents.
222- Notable gaps:
223-
224- | Rule area | markdownlint | remark-lint |
225- | -------------------| --------------------------------| ---------------------------------------------------|
226- | Inline HTML | [ MD033] [ md033 ] no-inline-html | [ no-html] [ rl-nh ] |
227- | Image alt text | [ MD045] [ md045 ] no-alt-text | [ no-empty-image-alt-text] [ rl-neiat ] (third-party) |
228- | OL numbering | [ MD029] [ md029 ] ol-prefix | [ ordered-list-marker-style] [ rl-olms ] |
229- | UL marker style | [ MD004] [ md004 ] ul-style | [ unordered-list-marker-style] [ rl-ulms ] |
230- | Emphasis style | [ MD049] [ md049 ] , [ MD050] [ md050 ] | [ emphasis-marker] [ rl-em ] |
231- | HR style | [ MD035] [ md035 ] hr-style | [ rule-style] [ rl-rs ] |
232- | Space in emphasis | [ MD037] [ md037 ] | no |
233- | Space in code | [ MD038] [ md038 ] | no |
234- | Space in links | [ MD039] [ md039 ] | no |
235- | Proper names | [ MD044] [ md044 ] | no |
236- | Required headings | [ MD043] [ md043 ] | no |
237- | Single H1 | [ MD047] [ md047 ] | no |
238- | Link fragments | [ MD051] [ md051 ] | no |
239- | Reference links | [ MD052] [ md052 ] , [ MD053] [ md053 ] | no |
240-
241- mdsmith covers readability, tokens, and generated content
242- rather than formatting details. Teams that need full
243- coverage can pair mdsmith with markdownlint.
230+ the broadest rule set. mdsmith has plans for inline
231+ HTML ([ plan 105] [ plan105 ] ), UL marker style
232+ ([ plan 109] [ plan109 ] ), emphasis style
233+ ([ plan 106] [ plan106 ] ), HR style ([ plan 108] [ plan108 ] ),
234+ ambiguous emphasis ([ plan 111] [ plan111 ] ), and
235+ reference-style links ([ plan 107] [ plan107 ] ).
236+ Image alt text ([ MDS032] [ mds032 ] ) and OL numbering
237+ ([ MDS046] [ mds046 ] ) are already implemented.
238+ Teams that need the remaining gaps (space in code,
239+ space in links, proper names, single H1) can pair
240+ mdsmith with markdownlint.
244241
245242### Prose and Readability
246243
@@ -605,8 +602,10 @@ you need a stable rule set while these land.
605602[ mds028 ] : ../../internal/rules/MDS028-token-budget/README.md
606603[ mds029 ] : ../../internal/rules/MDS029-conciseness-scoring/README.md
607604[ mds030 ] : ../../internal/rules/MDS030-empty-section-body/README.md
605+ [ mds032 ] : ../../internal/rules/MDS032-no-empty-alt-text/README.md
608606[ mds035 ] : ../../internal/rules/MDS035-toc-directive/README.md
609607[ mds038 ] : ../../internal/rules/MDS038-toc/README.md
608+ [ mds046 ] : ../../internal/rules/MDS046-ordered-list-numbering/README.md
610609<!-- markdownlint links -->
611610[ markdownlint ] : https://github.com/DavidAnson/markdownlint
612611[ markdownlint-cli2 ] : https://github.com/DavidAnson/markdownlint-cli2
0 commit comments