Improve RegExp for MD020/no-missing-space-closed-atx, more tests.

This commit is contained in:
David Anson 2017-11-12 22:21:54 -08:00
parent 8c2bb1f5bd
commit d46fb3b6dd
3 changed files with 45 additions and 21 deletions

View file

@ -3,7 +3,7 @@
var shared = require("./shared"); var shared = require("./shared");
// Range regular expressions // Range regular expressions
var atxClosedHeaderNoSpaceRe = /(?:^#+\S)|(?:\S#+\s*$)/; var atxClosedHeaderNoSpaceRe = /(?:^#+[^#\s])|(?:[^#\s]#+\s*$)/;
var atxClosedHeaderSpaceRe = /(?:^#+\s\s+?\S)|(?:\S\s\s+?#+\s*$)/; var atxClosedHeaderSpaceRe = /(?:^#+\s\s+?\S)|(?:\S\s\s+?#+\s*$)/;
var atxHeaderSpaceRe = /^#+\s*\S/; var atxHeaderSpaceRe = /^#+\s*\S/;
var bareUrlRe = /(?:http|ftp)s?:\/\/[^\s]*/i; var bareUrlRe = /(?:http|ftp)s?:\/\/[^\s]*/i;

View file

@ -1,3 +1,5 @@
# Top level header
<!-- markdownlint-disable MD003 --> <!-- markdownlint-disable MD003 -->
A (reversed)[link] example. A (reversed)[link] example.
@ -7,10 +9,14 @@ A (reversed)[link] example.
$ command with no output $ command with no output
#No space A ##No space A
# Multiple spaces A ## Multiple spaces B
#No space B# ##No space C ##
# Multiple spaces B # ## No space D##
## Multiple spaces E ##
## Multiple spaces F ##

View file

@ -1,6 +1,6 @@
[ [
{ {
"lineNumber": 3, "lineNumber": 5,
"ruleName": "MD011", "ruleName": "MD011",
"ruleAlias": "no-reversed-links", "ruleAlias": "no-reversed-links",
"ruleDescription": "Reversed link syntax", "ruleDescription": "Reversed link syntax",
@ -9,7 +9,7 @@
"errorRange": [3, 16] "errorRange": [3, 16]
}, },
{ {
"lineNumber": 5, "lineNumber": 7,
"ruleName": "MD012", "ruleName": "MD012",
"ruleAlias": "no-multiple-blanks", "ruleAlias": "no-multiple-blanks",
"ruleDescription": "Multiple consecutive blank lines", "ruleDescription": "Multiple consecutive blank lines",
@ -18,7 +18,7 @@
"errorRange": null "errorRange": null
}, },
{ {
"lineNumber": 6, "lineNumber": 8,
"ruleName": "MD013", "ruleName": "MD013",
"ruleAlias": "line-length", "ruleAlias": "line-length",
"ruleDescription": "Line length", "ruleDescription": "Line length",
@ -27,7 +27,7 @@
"errorRange": [81, 19] "errorRange": [81, 19]
}, },
{ {
"lineNumber": 8, "lineNumber": 10,
"ruleName": "MD014", "ruleName": "MD014",
"ruleAlias": "commands-show-output", "ruleAlias": "commands-show-output",
"ruleDescription": "Dollar signs used before commands without showing output", "ruleDescription": "Dollar signs used before commands without showing output",
@ -36,39 +36,57 @@
"errorRange": [5, 2] "errorRange": [5, 2]
}, },
{ {
"lineNumber": 10, "lineNumber": 12,
"ruleName": "MD018", "ruleName": "MD018",
"ruleAlias": "no-missing-space-atx", "ruleAlias": "no-missing-space-atx",
"ruleDescription": "No space after hash on atx style header", "ruleDescription": "No space after hash on atx style header",
"errorDetail": null, "errorDetail": null,
"errorContext": "#No space A", "errorContext": "##No space A",
"errorRange": [1, 2] "errorRange": [1, 3]
}, },
{ {
"lineNumber": 12, "lineNumber": 14,
"ruleName": "MD019", "ruleName": "MD019",
"ruleAlias": "no-multiple-space-atx", "ruleAlias": "no-multiple-space-atx",
"ruleDescription": "Multiple spaces after hash on atx style header", "ruleDescription": "Multiple spaces after hash on atx style header",
"errorDetail": null, "errorDetail": null,
"errorContext": "# Multiple spaces A", "errorContext": "## Multiple spaces B",
"errorRange": [1, 4] "errorRange": [1, 5]
}, },
{ {
"lineNumber": 14, "lineNumber": 16,
"ruleName": "MD020", "ruleName": "MD020",
"ruleAlias": "no-missing-space-closed-atx", "ruleAlias": "no-missing-space-closed-atx",
"ruleDescription": "No space inside hashes on closed atx style header", "ruleDescription": "No space inside hashes on closed atx style header",
"errorDetail": null, "errorDetail": null,
"errorContext": "#No space B#", "errorContext": "##No space C ##",
"errorRange": [1, 2] "errorRange": [1, 3]
}, },
{ {
"lineNumber": 16, "lineNumber": 18,
"ruleName": "MD020",
"ruleAlias": "no-missing-space-closed-atx",
"ruleDescription": "No space inside hashes on closed atx style header",
"errorDetail": null,
"errorContext": "## No space D##",
"errorRange": [13, 3]
},
{
"lineNumber": 20,
"ruleName": "MD021", "ruleName": "MD021",
"ruleAlias": "no-multiple-space-closed-atx", "ruleAlias": "no-multiple-space-closed-atx",
"ruleDescription": "Multiple spaces inside hashes on closed atx style header", "ruleDescription": "Multiple spaces inside hashes on closed atx style header",
"errorDetail": null, "errorDetail": null,
"errorContext": "# Multiple spaces B #", "errorContext": "## Multiple spaces E ##",
"errorRange": [1, 4] "errorRange": [1, 5]
},
{
"lineNumber": 22,
"ruleName": "MD021",
"ruleAlias": "no-multiple-space-closed-atx",
"ruleDescription": "Multiple spaces inside hashes on closed atx style header",
"errorDetail": null,
"errorContext": "## Multiple spaces F ##",
"errorRange": [20, 5]
} }
] ]