From 6587ba72616931b4025be48aa27895722accc92e Mon Sep 17 00:00:00 2001 From: David Anson Date: Sat, 28 Sep 2019 14:30:16 -0700 Subject: [PATCH] Fix MD011/no-reversed-links to better handle escaped RegExp content in reversed links. --- lib/md011.js | 5 +++-- test/reversed_link.md | 10 ++++++++++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/lib/md011.js b/lib/md011.js index 36bff74e..da0f1dc1 100644 --- a/lib/md011.js +++ b/lib/md011.js @@ -2,7 +2,8 @@ "use strict"; -const { addError, forEachInlineChild } = require("../helpers"); +const { addError, forEachInlineChild, unescapeMarkdown } = + require("../helpers"); const reversedLinkRe = /\(([^)]+)\)\[([^\]^][^\]]*)]/g; @@ -17,7 +18,7 @@ module.exports = { while ((match = reversedLinkRe.exec(content)) !== null) { const [ reversedLink, linkText, linkDestination ] = match; const line = params.lines[lineNumber - 1]; - const column = line.indexOf(reversedLink) + 1; + const column = unescapeMarkdown(line).indexOf(reversedLink) + 1; const length = reversedLink.length; addError( onError, diff --git a/test/reversed_link.md b/test/reversed_link.md index d642ba4c..b6df2601 100644 --- a/test/reversed_link.md +++ b/test/reversed_link.md @@ -22,3 +22,13 @@ code code code` text text text (reversed)[link] text {MD011} + +## Escaped JavaScript Content + +var IDENT_RE = '([a-zA-Z]|\\.[a-zA-Z.])[a-zA-Z0-9._]*'; {MD011} + +begin: /\B(([\/.])[\w\-.\/=]+)+/, {MD011} + +{begin: '%r\\(', end: '\\)[a-z]*'} {MD011} + +return /(?:(?:(^|\/)[!.])|[*?+()|\[\]{}]|[+@]\()/.test(str); {MD011}