Allow opt-out for list items with blank lines in MD009/no-trailing-spaces (fixes #55).

This commit is contained in:
David Anson 2017-05-11 21:44:41 -07:00
parent b436640918
commit d826833a82
7 changed files with 157 additions and 7 deletions

View file

@ -353,10 +353,23 @@ module.exports = [
"regexp": trailingSpaceRe,
"func": function MD009(params, errors) {
var brSpaces = params.options.br_spaces || 0;
var listItemEmptyLines = params.options.list_item_empty_lines;
var allowListItemEmptyLines =
(listItemEmptyLines === undefined) ? false : !!listItemEmptyLines;
var listItemLineNumbers = [];
if (allowListItemEmptyLines) {
filterTokens(params, "list_item_open", function forToken(token) {
for (var i = token.map[0]; i < token.map[1]; i++) {
listItemLineNumbers.push(i + 1);
}
});
}
forEachLine(params, function forLine(line, lineIndex) {
if (trailingSpaceRe.test(line)) {
var lineNumber = lineIndex + 1;
if (trailingSpaceRe.test(line) &&
(listItemLineNumbers.indexOf(lineNumber) === -1)) {
var expected = (brSpaces < 2) ? 0 : brSpaces;
errors.addDetailIf(lineIndex + 1,
errors.addDetailIf(lineNumber,
expected, line.length - line.trimRight().length);
}
});