Commit graph

370 commits

Author SHA1 Message Date
David Anson
d22c1f19ef Refactor various code to do shallow/constrained search instead of deep search for better performance, make cache key for filterByTypesCached unique. 2024-10-09 22:42:36 -07:00
David Anson
04c693b00b Update MD051/link-fragments to add ignore_case parameter and improve documentation (fixes #1274). 2024-10-08 22:40:25 -07:00
David Anson
c5d4a3297f Move single use, not explicitly tested helpers into the file that uses them. 2024-10-06 20:59:28 -07:00
David Anson
4e30462216 Promote applyFix and applyFixes helpers into core library. 2024-10-06 17:24:44 -07:00
David Anson
e0219411c6 Refactor RegExps to avoid the possibility of polynomial backtracking (fixes #657). 2024-10-05 18:07:45 -07:00
David Anson
9b1840a5a4 Improve type-correctness of some helpers. 2024-10-04 23:05:34 -07:00
David Anson
5182911acc Refactor to remove helpers addErrorContextForLine and blockquotePrefixRe, add micromark helper getBlockQuotePrefixText. 2024-10-04 22:41:46 -07:00
David Anson
5cc40c54b7 Enable custom rules to use the micromark parser, export micromark helpers for reuse. 2024-10-01 22:53:46 -07:00
David Anson
d3819c4e75 Add markdownlint "version" property to custom rule "params" object in case it is ever necessary for a rule to specialize its behavior. 2024-09-29 18:11:41 -07:00
David Anson
33631a5984 Split micromark.cjs into separate -parse and -helpers files. 2024-09-28 16:26:38 -07:00
David Anson
97effd921e Refactor helpers slightly for consistency. 2024-09-28 15:55:26 -07:00
David Anson
124b7e2276 Refactor to remove helper withinAnyRange. 2024-09-28 15:41:40 -07:00
David Anson
5e568d0da9 Refactor to remove micromark helper getExclusionsForToken. 2024-09-27 23:58:49 -07:00
David Anson
8cbbed8e79 Refactor to remove micromark helper getTokenTextByType, update getDescendantsByType to allow sub-arrays. 2024-09-24 22:48:14 -07:00
David Anson
87daa5b06c Refactor to remove micromark helper matchAndGetTokensByType. 2024-09-18 21:02:59 -07:00
David Anson
2ea3f95fd1 Refactor micromark helper getTokenTextByType to be more efficient, remove tokenIfType helper for being redundant. 2024-09-16 20:50:54 -07:00
David Anson
98ff66209d Move markdown-it token manipulation code into a separate file which is only require()-ed if/when needed. 2024-09-14 17:33:46 -07:00
David Anson
164bbac651 Add @stylistic/eslint-plugin to ESLint configuration. 2024-09-01 16:16:05 -07:00
David Anson
fe02674ce0 Update to version 0.35.0. 2024-08-28 20:41:14 -07:00
David Anson
6d097cce3f Add missing semicolon to address new code scanning warning. 2024-08-27 20:55:15 -07:00
David Anson
9c8e7156e1 Create strict JSON Schema for configuration (standalone for ease of use) and corresponding strict TypeScript type (via extends for conciseness) (fixes #1248). 2024-08-27 20:47:33 -07:00
David Anson
dfcb4529f3 Cache all top-level calls to filterByTypes (~7% runtime reduction). 2024-08-24 22:05:16 -07:00
David Anson
85e704f32a Update to only invoke rules that are used at least once by the content. 2024-08-22 20:35:01 -07:00
David Anson
ea8d596a9b Stop running the markdown-it parser unless a custom rule that requires it is present (~7% runtime reduction). 2024-08-21 21:19:52 -07:00
David Anson
7aac5b0553 Refactor to remove flattenedLists, indentFor, listItemMarkerRe, orderedListItemMarkerRe, rangeFromRegExp, and unorderedListStyleFor helpers, reimplement MD004/MD029 using micromark tokens. 2024-08-20 21:36:17 -07:00
David Anson
55729cfcf7 Remove filterTokens helper (now used only by tests). 2024-08-18 15:34:26 -07:00
David Anson
2b8369ae39 Update MD031/blanks-around-fences to handle missing close fence. 2024-08-17 20:29:27 -07:00
David Anson
c8fd9eb4b3 Refactor to remove forEachLine and getLineMetadata helpers, reimplement MD012/MD018/MD020/MD031 using micromark tokens. 2024-08-17 17:58:16 -07:00
David Anson
7efc2605b1 Refactor to remove codeBlockAndSpanRanges helper. 2024-08-15 21:34:27 -07:00
David Anson
3b581a7f6d Reimplement MD013/line-length using micromark tokens. 2024-08-13 20:57:00 -07:00
David Anson
4072cf7417 Reimplement MD009/no-trailing-spaces using micromark tokens. 2024-08-12 23:24:46 -07:00
David Anson
ff8c1bf9b2 Reimplement MD010/no-hard-tabs using micromark tokens. 2024-08-10 21:44:42 -07:00
David Anson
a6cf08dfc6 Update MD039/no-space-in-links to report separate errors for start and end spaces (more granular; avoids conflicts). 2024-08-04 13:05:32 -07:00
David Anson
daa155d5a1 Reimplement MD039/no-space-in-links using micromark tokens. 2024-08-04 12:06:12 -07:00
Fu Yuchen
6c8d0fdef8
Update MD018/no-missing-space-atx and MD020/no-missing-space-closed-atx to ignore the content of HTML blocks (fixes #1268). 2024-07-20 14:38:45 +09:00
David Anson
964e4c80ab Reimplement MD042/no-empty-links using micromark tokens. 2024-06-30 16:10:48 -07:00
David Anson
347302169c Reimplement MD014/commands-show-output using micromark tokens. 2024-06-22 15:12:37 -07:00
David Anson
ec957029a5 Reimplement MD043/required-headings using micromark tokens. 2024-06-22 14:37:32 -07:00
David Anson
1513e3803b Remove outdated type annotations and lint suppressions. 2024-06-21 21:03:37 -07:00
David Anson
96354678dc Reimplement MD024/no-duplicate-heading using micromark tokens. 2024-06-19 21:05:50 -07:00
David Anson
3b9a7fb2dd Reimplement MD023/heading-start-left using micromark tokens. 2024-06-17 22:18:58 -07:00
David Anson
157e888532 Refactor MD019 and MD021 to share code more effectively. 2024-06-16 20:25:07 -07:00
David Anson
0b165c1566 Reimplement MD021/no-multiple-space-closed-atx using micromark tokens. 2024-06-15 15:45:31 -07:00
David Anson
4ff3a27fa2 Reimplement MD019/no-multiple-space-atx using micromark tokens. 2024-06-11 21:37:29 -07:00
David Anson
106ca0bc90 Make inHtmlFlow more efficient and simplify filterByTypes implementation. 2024-06-10 22:16:20 -07:00
David Anson
12502f6571 Exclude htmlFlow content by default for filterByTypes, opt in as needed. 2024-06-09 17:09:03 -07:00
David Anson
ea9659841e Reimplement MD025/single-title/single-h1 using micromark tokens. 2024-06-08 20:41:40 -07:00
David Anson
6daaa43410 Reimplement MD003/heading-style using micromark tokens. 2024-06-08 14:44:49 -07:00
David Anson
f032849081 Reimplement MD001/heading-increment using micromark tokens. 2024-06-06 21:19:14 -07:00
David Anson
26466108e9 Add new rule MD058/blanks-around-tables (fixes #132). 2024-06-03 21:16:45 -07:00