mirror of
https://github.com/DavidAnson/markdownlint.git
synced 2025-12-17 22:40:13 +01:00
Fix MD038 to handle text matches outside code span elements.
This commit is contained in:
parent
0f64bd5b4e
commit
74bd9b6e5b
2 changed files with 23 additions and 4 deletions
11
lib/rules.js
11
lib/rules.js
|
|
@ -933,15 +933,18 @@ module.exports = [
|
||||||
"func": function MD038(params, errors) {
|
"func": function MD038(params, errors) {
|
||||||
forEachInlineChild(params, "code_inline",
|
forEachInlineChild(params, "code_inline",
|
||||||
function forToken(token, inline) {
|
function forToken(token, inline) {
|
||||||
|
var backtickPairs = "^(?:[^`]*`[^`]*`)*[^`]*";
|
||||||
var escapedContent = escapeForRegExp(token.content);
|
var escapedContent = escapeForRegExp(token.content);
|
||||||
var left = (new RegExp("`\\s+" + escapedContent + "\\s*`"))
|
var left = (new RegExp(
|
||||||
|
backtickPairs + "(`\\s+" + escapedContent + "\\s*`)"))
|
||||||
.exec(inline.content);
|
.exec(inline.content);
|
||||||
var right = (new RegExp("`\\s*" + escapedContent + "\\s+`"))
|
var right = (new RegExp(
|
||||||
|
backtickPairs + "(`\\s*" + escapedContent + "\\s+`)"))
|
||||||
.exec(inline.content);
|
.exec(inline.content);
|
||||||
if (left) {
|
if (left) {
|
||||||
errors.addContext(token.lineNumber, left[0]);
|
errors.addContext(token.lineNumber, left[1]);
|
||||||
} else if (right) {
|
} else if (right) {
|
||||||
errors.addContext(token.lineNumber, right[0], false, true);
|
errors.addContext(token.lineNumber, right[1], false, true);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,3 +5,19 @@
|
||||||
`codespan element with space inside right ` {MD038}
|
`codespan element with space inside right ` {MD038}
|
||||||
|
|
||||||
` codespan element with spaces inside ` {MD038}
|
` codespan element with spaces inside ` {MD038}
|
||||||
|
|
||||||
|
`,`, `.`
|
||||||
|
|
||||||
|
`,`, `code`
|
||||||
|
|
||||||
|
`[`, `(`, `+`, `*`, `/`, `-`, `,`, `.`
|
||||||
|
|
||||||
|
`code` code `anything`
|
||||||
|
|
||||||
|
text `code` code `anything` text
|
||||||
|
|
||||||
|
text `code` text `anything` code `end`
|
||||||
|
|
||||||
|
text `anything` code `code` text `end`
|
||||||
|
|
||||||
|
text `anything` text `anything` code `anything` `code`
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue