From 35067149c99ed6e8be5589698c626f7d8f09b29f Mon Sep 17 00:00:00 2001 From: David Anson Date: Fri, 6 Mar 2015 18:16:16 -0800 Subject: [PATCH] Add MD020, MD021 with tests. --- lib/rules.js | 29 ++++++++++++++++++++++++++++- test/atx_closed_header_spacing.json | 4 ++++ test/atx_closed_header_spacing.md | 17 +++++++++++++++++ 3 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 test/atx_closed_header_spacing.json create mode 100644 test/atx_closed_header_spacing.md diff --git a/lib/rules.js b/lib/rules.js index 2e2f5d32..efb64898 100644 --- a/lib/rules.js +++ b/lib/rules.js @@ -270,7 +270,7 @@ module.exports = [ "desc": "No space after hash on atx style header", "func": function MD018(params, errors) { params.lines.forEach(function forLine(line, lineIndex) { - if (/^#+[^#\s]/.test(line)) { + if (/^#+[^#\s]/.test(line) && !/#$/.test(line)) { errors.push(lineIndex + 1); } }); @@ -291,6 +291,33 @@ module.exports = [ } }, + { + "name": "MD020", + "desc": "No space inside hashes on closed atx style header", + "func": function MD020(params, errors) { + params.lines.forEach(function forLine(line, lineIndex) { + if (/^#+[^#]*[^\\]#+$/.test(line) && + (/^#+[^#\s]/.test(line) || /[^#\s]#+$/.test(line))) { + errors.push(lineIndex + 1); + } + }); + } + }, + + { + "name": "MD021", + "desc": "Multiple spaces inside hashes on closed atx style header", + "func": function MD021(params, errors) { + filterTokens(params.tokens, "heading_open") + .forEach(function forToken(token) { + if ((headingStyleFor(token) === "atx_closed") && + (/^#+\s\s/.test(token.line) || /\s\s#+$/.test(token.line))) { + errors.push(token.lineNumber); + } + }); + } + }, + { "name": "MD028", "desc": "Blank line inside blockquote", diff --git a/test/atx_closed_header_spacing.json b/test/atx_closed_header_spacing.json new file mode 100644 index 00000000..2f37f5bb --- /dev/null +++ b/test/atx_closed_header_spacing.json @@ -0,0 +1,4 @@ +{ + "default": true, + "MD002": false +} diff --git a/test/atx_closed_header_spacing.md b/test/atx_closed_header_spacing.md new file mode 100644 index 00000000..e9a296b3 --- /dev/null +++ b/test/atx_closed_header_spacing.md @@ -0,0 +1,17 @@ +#Header 1 {MD020} # + +## Header 2 {MD020}## + +##Header 3 {MD020}## + +## Header 4 {MD021} ## + +## Header 5 {MD021} ## + +## Header 6 {MD021} ## + +## Header 7 {MD021} ## + +## Header 8 \# + +## Header 9 \#