mirror of
https://github.com/DavidAnson/markdownlint.git
synced 2025-12-17 06:20:12 +01:00
Add MD003 with tests, add JSON config for rules.
This commit is contained in:
parent
75b63a43ab
commit
a2d42b6208
14 changed files with 266 additions and 36 deletions
|
|
@ -12,17 +12,21 @@ function uniqueFilterForSorted(value, index, array) {
|
|||
return (index === 0) || (value > array[index - 1]);
|
||||
}
|
||||
|
||||
function lintFile(file, options, callback) {
|
||||
function lintFile(file, config, callback) {
|
||||
fs.readFile(file, { "encoding": "utf8" }, function readFile(err, contents) {
|
||||
if (err) {
|
||||
callback(err);
|
||||
} else {
|
||||
var tokens = md.parse(contents);
|
||||
var lines = contents.split(/\r\n|\r|\n/g);
|
||||
var params = {
|
||||
"tokens": md.parse(contents),
|
||||
"lines": contents.split(/\r\n|\r|\n/g)
|
||||
};
|
||||
var result = {};
|
||||
rules.forEach(function forRule(rule) {
|
||||
var ruleConfig = config[rule.name];
|
||||
params.options = (ruleConfig instanceof Object) ? ruleConfig : {};
|
||||
var errors = [];
|
||||
rule.func(errors, tokens, lines);
|
||||
rule.func(params, errors);
|
||||
if (errors.length) {
|
||||
errors.sort(numberComparison);
|
||||
result[rule.name] = errors.filter(uniqueFilterForSorted);
|
||||
|
|
@ -34,12 +38,14 @@ function lintFile(file, options, callback) {
|
|||
}
|
||||
|
||||
module.exports = function markdownlint(options, callback) {
|
||||
var results = {};
|
||||
options = options || {};
|
||||
var files = options.files || [];
|
||||
var config = options.config || {};
|
||||
var results = {};
|
||||
function lintFiles() {
|
||||
var file = files.shift();
|
||||
if (file) {
|
||||
lintFile(file, options, function lintFileCallback(err, result) {
|
||||
lintFile(file, config, function lintFileCallback(err, result) {
|
||||
if (err) {
|
||||
callback(err);
|
||||
} else {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue