mirror of
https://github.com/DavidAnson/markdownlint.git
synced 2025-12-17 06:20:12 +01:00
Add rule aliases, support throughout (fixes #1).
This commit is contained in:
parent
b7342485d9
commit
9546cc520e
9 changed files with 283 additions and 101 deletions
|
|
@ -7,38 +7,46 @@ var shared = require("./shared");
|
|||
|
||||
// Mappings from rule to description and tag to rules
|
||||
var allRuleNames = [];
|
||||
var ruleToDescription = {};
|
||||
var tagUpperToRules = {};
|
||||
var ruleNameToRule = {};
|
||||
var idUpperToRuleNames = {};
|
||||
rules.forEach(function forRule(rule) {
|
||||
allRuleNames.push(rule.name);
|
||||
ruleToDescription[rule.name] = rule.desc;
|
||||
ruleNameToRule[rule.name] = rule;
|
||||
// The following is useful for updating README.md
|
||||
// console.log("* **" + rule.name + "** - " + rule.desc);
|
||||
// console.log("* **" + rule.name + "** *" +
|
||||
// rule.aliases.join(", ") + "* - " + rule.desc);
|
||||
rule.tags.forEach(function forTag(tag) {
|
||||
var tagUpper = tag.toUpperCase();
|
||||
var tags = tagUpperToRules[tagUpper] || [];
|
||||
tags.push(rule.name);
|
||||
tagUpperToRules[tagUpper] = tags;
|
||||
var ruleNames = idUpperToRuleNames[tagUpper] || [];
|
||||
ruleNames.push(rule.name);
|
||||
idUpperToRuleNames[tagUpper] = ruleNames;
|
||||
});
|
||||
rule.aliases.forEach(function forAlias(alias) {
|
||||
var aliasUpper = alias.toUpperCase();
|
||||
idUpperToRuleNames[aliasUpper] = [ rule.name ];
|
||||
});
|
||||
});
|
||||
// The following is useful for updating README.md
|
||||
// Object.keys(tagToRules).sort().forEach(function forTag(tag) {
|
||||
// console.log("* **" + tag + "** - " + tagToRules[tag].join(", "));
|
||||
// Object.keys(idUpperToRuleNames).sort().forEach(function forTag(tag) {
|
||||
// console.log("* **" + tag + "** - " + idUpperToRuleNames[tag].join(", "));
|
||||
// });
|
||||
|
||||
// Class for results with toString for pretty display
|
||||
function Results() { }
|
||||
Results.prototype.toString = function resultsToString() {
|
||||
Results.prototype.toString = function resultsToString(useAlias) {
|
||||
var that = this;
|
||||
var results = [];
|
||||
Object.keys(that).forEach(function forFile(file) {
|
||||
var fileResults = that[file];
|
||||
Object.keys(fileResults).forEach(function forRule(rule) {
|
||||
var ruleResults = fileResults[rule];
|
||||
Object.keys(fileResults).forEach(function forRule(ruleName) {
|
||||
var rule = ruleNameToRule[ruleName];
|
||||
var ruleResults = fileResults[ruleName];
|
||||
ruleResults.forEach(function forLine(lineNumber) {
|
||||
var result =
|
||||
file + ": " + lineNumber + ": " +
|
||||
rule + " " + ruleToDescription[rule];
|
||||
file + ": " +
|
||||
lineNumber + ": " +
|
||||
(useAlias ? rule.aliases[0] : rule.name) + " " +
|
||||
rule.desc;
|
||||
results.push(result);
|
||||
});
|
||||
});
|
||||
|
|
@ -114,10 +122,10 @@ function lintContent(content, config, frontMatter) { // eslint-disable-line
|
|||
value = false;
|
||||
}
|
||||
var keyUpper = key.toUpperCase();
|
||||
if (ruleToDescription[keyUpper]) {
|
||||
if (ruleNameToRule[keyUpper]) {
|
||||
mergedRules[keyUpper] = value;
|
||||
} else if (tagUpperToRules[keyUpper]) {
|
||||
tagUpperToRules[keyUpper].forEach(function forRule(ruleName) {
|
||||
} else if (idUpperToRuleNames[keyUpper]) {
|
||||
idUpperToRuleNames[keyUpper].forEach(function forRule(ruleName) {
|
||||
mergedRules[ruleName] = value;
|
||||
});
|
||||
}
|
||||
|
|
@ -133,10 +141,10 @@ function lintContent(content, config, frontMatter) { // eslint-disable-line
|
|||
match[2].trim().toUpperCase().split(/\s+/) :
|
||||
allRuleNames;
|
||||
items.forEach(function forItem(nameUpper) {
|
||||
if (ruleToDescription[nameUpper]) {
|
||||
if (ruleNameToRule[nameUpper]) {
|
||||
enabledRules[nameUpper] = enabled;
|
||||
} else if (tagUpperToRules[nameUpper]) {
|
||||
tagUpperToRules[nameUpper].forEach(function forRule(ruleName) {
|
||||
} else if (idUpperToRuleNames[nameUpper]) {
|
||||
idUpperToRuleNames[nameUpper].forEach(function forRule(ruleName) {
|
||||
enabledRules[ruleName] = enabled;
|
||||
});
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue