diff --git a/lib/rules.js b/lib/rules.js index 5957560f..a65617be 100644 --- a/lib/rules.js +++ b/lib/rules.js @@ -125,6 +125,30 @@ module.exports = [ } }, + { + "name": "MD006", + "desc": "Consider starting bulleted lists at the beginning of the line", + "func": function MD006(params, errors) { + var inList = 0; + params.tokens.filter(function filterToken(token) { + switch (token.type) { + case "bullet_list_open": + inList++; + return inList === 1; + case "bullet_list_close": + inList--; + return false; + default: + return false; + } + }).forEach(function forToken(token) { + if (indentFrom(token) !== 0) { + errors.push(token.lineNumber); + } + }); + } + }, + { "name": "MD007", "desc": "Unordered list indentation", @@ -144,6 +168,32 @@ module.exports = [ } }, + // MD008 does not exist + + { + "name": "MD009", + "desc": "Trailing spaces", + "func": function MD009(params, errors) { + params.lines.forEach(function forLine(line, lineIndex) { + if (line.match(/\s$/)) { + errors.push(lineIndex + 1); + } + }); + } + }, + + { + "name": "MD010", + "desc": "Hard tabs", + "func": function MD010(params, errors) { + params.lines.forEach(function forLine(line, lineIndex) { + if (line.match(/\t/)) { + errors.push(lineIndex + 1); + } + }); + } + }, + { "name": "MD031", "desc": "Fenced code blocks should be surrounded by blank lines", @@ -173,13 +223,13 @@ module.exports = [ var inList = false; var inCode = false; var prevLine = ""; - params.lines.forEach(function forLine(line, lineNumber) { + params.lines.forEach(function forLine(line, lineIndex) { if (!inCode) { var listMarker = line.trim().match(/^([\*\+\-]|(\d+\.))\s/); if (listMarker && !inList && !prevLine.match(/^($|\s)/)) { - errors.push(lineNumber + 1); + errors.push(lineIndex + 1); } else if (!listMarker && inList && !line.match(/^($|\s)/)) { - errors.push(lineNumber); + errors.push(lineIndex); } inList = listMarker; } diff --git a/test/bulleted_list_not_at_beginning_of_line.md b/test/bulleted_list_not_at_beginning_of_line.md new file mode 100644 index 00000000..84bd0ba9 --- /dev/null +++ b/test/bulleted_list_not_at_beginning_of_line.md @@ -0,0 +1,14 @@ +Some text + + * Item {MD006} + * Item + * Item + * Item + * Item + * Item + * Item + +Some more text + + * Item {MD006} + * Item \ No newline at end of file diff --git a/test/whitespace issues.md b/test/whitespace issues.md new file mode 100644 index 00000000..8f4209eb --- /dev/null +++ b/test/whitespace issues.md @@ -0,0 +1,3 @@ +Some text {MD009} +Some more text {MD010} +Some more text \ No newline at end of file