Add MD003 with tests, add JSON config for rules.

This commit is contained in:
David Anson 2015-02-27 22:06:54 -08:00
parent 75b63a43ab
commit a2d42b6208
14 changed files with 266 additions and 36 deletions

View file

@ -0,0 +1,36 @@
{
"MD001": true,
"MD002": true,
"MD003": {
"style": "atx"
},
"MD004": true,
"MD005": true,
"MD006": true,
"MD007": true,
"MD008": true,
"MD009": true,
"MD010": true,
"MD011": true,
"MD012": true,
"MD013": true,
"MD014": true,
"MD015": true,
"MD016": true,
"MD017": true,
"MD018": true,
"MD019": true,
"MD020": true,
"MD021": true,
"MD022": true,
"MD023": true,
"MD024": true,
"MD025": true,
"MD026": true,
"MD027": true,
"MD028": true,
"MD029": true,
"MD030": true,
"MD031": true,
"MD032": true
}

View file

@ -0,0 +1,6 @@
# Header 1 {MD003} #
## Header 2
Header 3 {MD003}
----------------

View file

@ -0,0 +1,36 @@
{
"MD001": true,
"MD002": true,
"MD003": {
"style": "atx_closed"
},
"MD004": true,
"MD005": true,
"MD006": true,
"MD007": true,
"MD008": true,
"MD009": true,
"MD010": true,
"MD011": true,
"MD012": true,
"MD013": true,
"MD014": true,
"MD015": true,
"MD016": true,
"MD017": true,
"MD018": true,
"MD019": true,
"MD020": true,
"MD021": true,
"MD022": true,
"MD023": true,
"MD024": true,
"MD025": true,
"MD026": true,
"MD027": true,
"MD028": true,
"MD029": true,
"MD030": true,
"MD031": true,
"MD032": true
}

View file

@ -0,0 +1,6 @@
# Header 1 #
## Header 2 {MD003}
Header 3 {MD003}
----------------

View file

@ -0,0 +1,36 @@
{
"MD001": true,
"MD002": true,
"MD003": {
"style": "setext"
},
"MD004": true,
"MD005": true,
"MD006": true,
"MD007": true,
"MD008": true,
"MD009": true,
"MD010": true,
"MD011": true,
"MD012": true,
"MD013": true,
"MD014": true,
"MD015": true,
"MD016": true,
"MD017": true,
"MD018": true,
"MD019": true,
"MD020": true,
"MD021": true,
"MD022": true,
"MD023": true,
"MD024": true,
"MD025": true,
"MD026": true,
"MD027": true,
"MD028": true,
"MD029": true,
"MD030": true,
"MD031": true,
"MD032": true
}

View file

@ -0,0 +1,6 @@
# Header 1 {MD003} #
## Header 2 {MD003}
Header 3
--------

View file

@ -4,34 +4,50 @@ var fs = require("fs");
var path = require("path");
var markdownlint = require("../lib/markdownlint");
var encodingUtf8 = { "encoding": "utf8" };
function createTestForFile(file) {
return function testForFile(test) {
test.expect(3);
fs.readFile(
file,
{ "encoding": "utf8" },
function readFileCallback(err, contents) {
test.expect(4);
fs.readFile(file, encodingUtf8, function readFileCallback(err, contents) {
test.ifError(err);
var lines = contents.split(/\r\n|\r|\n/g);
var results = {};
lines.forEach(function forLine(line, lineNum) {
var match = line.match(/\{(MD\d+)(?::(\d+))?\}/);
if (match) {
var rule = match[1];
var errors = results[rule] || [];
errors.push(lineNum + 1);
results[rule] = errors;
function lintFile(config) {
var results = {};
lines.forEach(function forLine(line, lineNum) {
var match = line.match(/\{(MD\d+)(?::(\d+))?\}/);
if (match) {
var rule = match[1];
var errors = results[rule] || [];
errors.push(lineNum + 1);
results[rule] = errors;
}
});
markdownlint({
"files": [ file ],
"config": config
}, function markdownlintCallback(errr, actual) {
test.ifError(errr);
var expected = {};
expected[file] = results;
test.deepEqual(actual, expected, "Line numbers are not correct.");
test.done();
});
}
var configFile = file.replace(/\.md$/, ".json");
fs.stat(configFile, function statCallback(errr /*, stats*/) {
if (errr) {
test.ok(true, "Replacement for ifError of readFile");
lintFile();
} else {
fs.readFile(configFile, encodingUtf8,
function readFile(errrr, configContents) {
test.ifError(errrr);
var config = JSON.parse(configContents);
lintFile(config);
});
}
});
markdownlint({
"files": [ file ]
}, function markdownlintCallback(errr, actual) {
test.ifError(errr);
var expected = {};
expected[file] = results;
test.deepEqual(actual, expected, "Line numbers are not correct.");
test.done();
});
});
};
}

View file

@ -0,0 +1,6 @@
# Header
## Header 2 {MD003} ##
Header 3 {MD003}
----------------

View file

@ -0,0 +1,6 @@
# Header 1 #
## Header 2 {MD003}
Header 3 {MD003}
----------------

View file

@ -0,0 +1,6 @@
Header 1
========
## Header 2 {MD003}
## Header 3 {MD003} ##