Commit graph

89 commits

Author SHA1 Message Date
David Anson
b6471fba31 Enable ESLint rule unicorn/no-array-for-each, auto-fix all violations, manually address new issues for ~4% time reduction measured via profile-fixture.mjs on Apple Silicon M1. 2022-06-08 22:10:27 -07:00
David Anson
15efcb4282 Convert helpers.filterTokens from Array.forEach to for..of for ~6% time reduction measured via profile-fixture.mjs on Apple Silicon M1. 2022-06-07 22:59:48 -07:00
David Anson
85d720cefc Update helpers.flattenLists to provide correct lastLineIndex for lists with an empty last item (fixes #529). 2022-06-07 22:16:34 -07:00
David Anson
bbec8c5c1e Hide the content of inline configuration HTML comments from the linting process to avoid false positives. 2022-06-04 22:59:19 -07:00
David Anson
6718944b0f Replace helpers.overlapsAnyRange with .withinAnyRange, update code/tests for resulting behavior. 2022-06-02 22:17:32 -07:00
David Anson
cb943a8718 Change markdownlint-browser.js TypeScript configuration to generate code for "es2015" ("es6") from the default of "es3" so that generated code for for..of will behave correctly, revert previous workaround for same. 2022-06-02 21:42:48 -07:00
David Anson
c5ca661b96 Add MD052/reference-links-images and MD053/link-image-reference-definitions for reporting issues with link and image references (fixes #144, fixes #390, fixes #425, fixes #456). 2022-06-01 20:26:01 -07:00
David Anson
ffc4d56918 Support tilde paths ("~" prefix) in readConfig/Sync APIs (for "file" parameter and "extends" keys). 2022-05-17 21:38:36 -07:00
David Anson
3792613d2d Implement markdownlint-disable-line inline comment (behaves like markdownlint-disable-next-line, but for the current line) (fixes #524). 2022-05-15 15:59:11 -07:00
David Anson
cf26cc7c92 Update helpers.codeBlockAndSpanRanges to use "Array.forEach" instead of "for of Array.entries()" to work around seeming Webpack transpilation issue affecting markdownlint-browser.js (fixes #525). 2022-05-13 21:39:22 -07:00
David Anson
a8f946e0b3 Refactor/simplify helpers.getPreferredLineEnding to use os.EOL instead of process.platform. 2022-05-06 21:04:34 -07:00
David Anson
19dfb960f1 Refactor to remove helpers.getPlatformIdentifier and simplify. 2022-05-05 23:14:18 -07:00
David Anson
295e481552 Fix null dereference in helpers.getPreferredLineEnding when running in browser (platform unknown, process object not available) and input string does not contain line endings. 2022-05-04 22:09:11 -07:00
David Anson
c4f51090ae Update MD049/emphasis-style and MD050/strong-style to correctly report and fix multiple identical violations on the same line (fixes #486). 2022-05-03 21:35:31 -07:00
David Anson
0f845e9ba1 Update MD044/proper-names to add html_elements parameter (fixes #435). 2022-04-25 21:50:33 -07:00
David Anson
db5d9f6dbb Update previous commit for MD051/link-fragments to rename, refactor, add support for HTML anchors, and validate against
markdown-link-check (fixes #253).
2022-04-16 14:08:56 -07:00
David Anson
7a53caa7fb Replace helpers.linkRe with helpers.forEachLink to fix "Polynomial regular expression used on uncontrolled data" and to better support link syntax. 2022-02-18 21:14:14 -08:00
David Anson
861443c740 Update MD042/no-empty-links to improve range reporting, remove helpers.emptyLinkRe. 2022-02-13 17:41:31 -08:00
David Anson
7c1550cbe9 Remove RegExp lookbehind assertions used to fix "Polynomial regular expression used on uncontrolled data" because they are not supported in Safari, add eslint-plugin-es rule no-regexp-lookbehind-assertions to prevent regressions. 2022-02-13 16:57:09 -08:00
David Anson
f46ee0732f Update helpers.inlineCommentRe to fix an instance of "Polynomial regular expression used on uncontrolled data". 2022-02-12 22:02:08 -08:00
David Anson
1c89dd5776 Reimplement helpers.isBlankLine to fix an instance of "Polynomial regular expression used on uncontrolled data". 2022-02-11 21:54:43 -08:00
David Anson
b9474e84a3 Add optional "platform" parameter to helpers.applyFixes (closes #496). 2022-02-09 22:44:49 -08:00
David Anson
3ba2df7386 Fix an instance of "Polynomial regular expression used on uncontrolled data". 2022-01-23 22:45:57 -08:00
David Anson
96699459d1 Fix an instance of "Polynomial regular expression used on uncontrolled data". 2022-01-22 22:48:22 -08:00
David Anson
fd24b9552b Remove require("os") from helpers to reduce dependencies for browser scenarios. 2021-12-27 03:41:43 +00:00
David Anson
5f0040679d Deep freeze name/tokens/lines/frontMatterLines properties of params object before passing to (custom) rules for shared access. 2021-12-23 04:34:25 +00:00
David Anson
6dea67825a Update definition of helpers.isBlankLine to treat unterminated start/end comments as potentially blank lines (fixes #431). 2021-12-20 04:18:45 +00:00
David Anson
d57b4770ed Update MD010/no-hard-tabs to allow tabs in code spans when the code_blocks parameter is set to false (for consistency) (fixes #454). 2021-12-17 17:24:00 -08:00
David Anson
ecf42ad7f5 Fix test break introduced by test-only dependency markdown-it-texmath changing the tag for token type "math_block" from "math" to "$$" from version 0.9.6 to 0.9.7. 2021-12-17 02:03:48 +00:00
David Anson
291597edb9 Update rules MD049/emphasis-style and MD050/strong-style to include range and fixInfo when reporting issues (i.e., to be automatically fixable). 2021-11-28 23:26:02 -08:00
David Anson
a508824b0f Refactor helpers.emphasisMarkersInContent slightly to avoid duplicate/unnecessary work. 2021-11-26 05:37:04 +00:00
David Anson
1e82f76596 Reimplement inlineCodeSpanRanges as codeBlockAndSpanRanges to fix an issue with unterminated code spans (and for flexibility). 2021-11-23 04:51:20 +00:00
Sébastien Règne
ab9e5875a2
Add MD050/strong-style (fixes #150). 2021-10-20 21:42:48 -07:00
David Anson
b10147f16b Remove helpers.utf8Encoding because it annoys the latest TypeScript compiler. 2021-08-05 22:01:29 -07:00
David Anson
7d40926367 Cache results of inlineCodeSpanRanges for use by MD011/MD044. 2021-06-17 22:01:27 -07:00
David Anson
706f48bd25 Re-implement MD011/no-reversed-links for better accuracy (range and fixInfo are now always valid) (fixes #398). 2021-06-17 21:50:03 -07:00
David Anson
72543a82e7 Update re-implementation of MD044/proper-names to exclude link destinations and references. 2021-06-13 13:07:03 -07:00
David Anson
c87d7f5b8c Update dependencies: eslint-plugin-jsdoc to 31.6.0, eslint-plugin-unicorn to 27.0.0. 2021-02-06 19:55:22 -08:00
David Anson
ed325ebb56 Update MD004/ul-style to auto-fix violations (fixes #351). 2021-02-06 15:49:02 -08:00
David Anson
c7d2416f95 Change comment replacement character from " " (with trailing "\") to "." to avoid creating indented code blocks. 2021-01-30 14:36:11 -08:00
David Anson
c4e236b858 Update clearHtmlCommentText helper to match CommonMark (instead of HTML) specification (refs #361). 2021-01-30 13:08:57 -08:00
David Anson
838afe0a00 Update clearHtmlCommentText helper to match HTML specification better; "--" within a comment does not make it invalid (fixes #361). 2021-01-28 21:45:53 -08:00
David Anson
df4aa9f4e8 Update MD037/no-space-in-emphasis to ignore content of math blocks when used with markdown-it-texmath (fixes #357). 2021-01-24 17:50:39 -08:00
David Anson
a6d30cb724 Implement markdownlint-disable-next-line inline comment (fixes #295). 2020-11-22 14:02:36 -08:00
David Anson
6c1bc8ecb5 Allow question mark by default for MD026/no-trailing-punctuation (fixes #276). 2020-11-17 20:32:17 -08:00
David Anson
bb157b2ce7 Support JSON front matter as used by the Hugo site generator (fixes #270). 2020-11-14 19:40:15 -08:00
David Anson
32db81b740 Work around problems related to markdown-it-texmath plugin's token.map not accounting for math_block_end. 2020-11-12 23:08:46 -08:00
David Anson
aa7fbce2dd Update code to fix or document false positives for CodeQL warnings. 2020-10-02 13:44:18 -07:00
David Anson
4286f68152 Introduce concurrency to asynchronous file linting for improved performance. 2020-09-12 12:01:20 -07:00
David Anson
e1eb81cd21 Add lint rules from eslint-plugin-node. 2020-09-06 19:49:35 -07:00