wip
Some checks are pending
Checkers / linkcheck (push) Waiting to run
Checkers / spellcheck (push) Waiting to run
CI / build (20, macos-latest) (push) Waiting to run
CI / build (20, ubuntu-latest) (push) Waiting to run
CI / build (20, windows-latest) (push) Waiting to run
CI / build (22, macos-latest) (push) Waiting to run
CI / build (22, ubuntu-latest) (push) Waiting to run
CI / build (22, windows-latest) (push) Waiting to run
CI / build (24, macos-latest) (push) Waiting to run
CI / build (24, ubuntu-latest) (push) Waiting to run
CI / build (24, windows-latest) (push) Waiting to run
CI / pnpm (push) Waiting to run
CodeQL / Analyze (push) Waiting to run
TestRepos / build (latest, ubuntu-latest) (push) Waiting to run
UpdateTestRepos / update (push) Waiting to run

This commit is contained in:
David Anson 2025-09-20 22:19:47 -07:00
parent 8021c087d4
commit d5abdb5a0b
12 changed files with 1606 additions and 64 deletions

View file

@ -1865,97 +1865,289 @@ export interface ConfigurationStrict {
/**
* headings : MD001, MD003, MD018, MD019, MD020, MD021, MD022, MD023, MD024, MD025, MD026, MD036, MD041, MD043
*/
headings?: boolean | ("error" | "warning");
headings?:
| boolean
| ("error" | "warning")
| {
/**
* Tag severity
*/
severity?: "error" | "warning" | "off";
};
/**
* bullet : MD004, MD005, MD007, MD032
*/
bullet?: boolean | ("error" | "warning");
bullet?:
| boolean
| ("error" | "warning")
| {
/**
* Tag severity
*/
severity?: "error" | "warning" | "off";
};
/**
* ul : MD004, MD005, MD007, MD030, MD032
*/
ul?: boolean | ("error" | "warning");
ul?:
| boolean
| ("error" | "warning")
| {
/**
* Tag severity
*/
severity?: "error" | "warning" | "off";
};
/**
* indentation : MD005, MD007, MD027
*/
indentation?: boolean | ("error" | "warning");
indentation?:
| boolean
| ("error" | "warning")
| {
/**
* Tag severity
*/
severity?: "error" | "warning" | "off";
};
/**
* whitespace : MD009, MD010, MD012, MD027, MD028, MD030, MD037, MD038, MD039
*/
whitespace?: boolean | ("error" | "warning");
whitespace?:
| boolean
| ("error" | "warning")
| {
/**
* Tag severity
*/
severity?: "error" | "warning" | "off";
};
/**
* hard_tab : MD010
*/
hard_tab?: boolean | ("error" | "warning");
hard_tab?:
| boolean
| ("error" | "warning")
| {
/**
* Tag severity
*/
severity?: "error" | "warning" | "off";
};
/**
* links : MD011, MD034, MD039, MD042, MD051, MD052, MD053, MD054, MD059
*/
links?: boolean | ("error" | "warning");
links?:
| boolean
| ("error" | "warning")
| {
/**
* Tag severity
*/
severity?: "error" | "warning" | "off";
};
/**
* blank_lines : MD012, MD022, MD031, MD032, MD047
*/
blank_lines?: boolean | ("error" | "warning");
blank_lines?:
| boolean
| ("error" | "warning")
| {
/**
* Tag severity
*/
severity?: "error" | "warning" | "off";
};
/**
* line_length : MD013
*/
line_length?: boolean | ("error" | "warning");
line_length?:
| boolean
| ("error" | "warning")
| {
/**
* Tag severity
*/
severity?: "error" | "warning" | "off";
};
/**
* code : MD014, MD031, MD038, MD040, MD046, MD048
*/
code?: boolean | ("error" | "warning");
code?:
| boolean
| ("error" | "warning")
| {
/**
* Tag severity
*/
severity?: "error" | "warning" | "off";
};
/**
* atx : MD018, MD019
*/
atx?: boolean | ("error" | "warning");
atx?:
| boolean
| ("error" | "warning")
| {
/**
* Tag severity
*/
severity?: "error" | "warning" | "off";
};
/**
* spaces : MD018, MD019, MD020, MD021, MD023
*/
spaces?: boolean | ("error" | "warning");
spaces?:
| boolean
| ("error" | "warning")
| {
/**
* Tag severity
*/
severity?: "error" | "warning" | "off";
};
/**
* atx_closed : MD020, MD021
*/
atx_closed?: boolean | ("error" | "warning");
atx_closed?:
| boolean
| ("error" | "warning")
| {
/**
* Tag severity
*/
severity?: "error" | "warning" | "off";
};
/**
* blockquote : MD027, MD028
*/
blockquote?: boolean | ("error" | "warning");
blockquote?:
| boolean
| ("error" | "warning")
| {
/**
* Tag severity
*/
severity?: "error" | "warning" | "off";
};
/**
* ol : MD029, MD030, MD032
*/
ol?: boolean | ("error" | "warning");
ol?:
| boolean
| ("error" | "warning")
| {
/**
* Tag severity
*/
severity?: "error" | "warning" | "off";
};
/**
* html : MD033
*/
html?: boolean | ("error" | "warning");
html?:
| boolean
| ("error" | "warning")
| {
/**
* Tag severity
*/
severity?: "error" | "warning" | "off";
};
/**
* url : MD034
*/
url?: boolean | ("error" | "warning");
url?:
| boolean
| ("error" | "warning")
| {
/**
* Tag severity
*/
severity?: "error" | "warning" | "off";
};
/**
* hr : MD035
*/
hr?: boolean | ("error" | "warning");
hr?:
| boolean
| ("error" | "warning")
| {
/**
* Tag severity
*/
severity?: "error" | "warning" | "off";
};
/**
* emphasis : MD036, MD037, MD049, MD050
*/
emphasis?: boolean | ("error" | "warning");
emphasis?:
| boolean
| ("error" | "warning")
| {
/**
* Tag severity
*/
severity?: "error" | "warning" | "off";
};
/**
* language : MD040
*/
language?: boolean | ("error" | "warning");
language?:
| boolean
| ("error" | "warning")
| {
/**
* Tag severity
*/
severity?: "error" | "warning" | "off";
};
/**
* spelling : MD044
*/
spelling?: boolean | ("error" | "warning");
spelling?:
| boolean
| ("error" | "warning")
| {
/**
* Tag severity
*/
severity?: "error" | "warning" | "off";
};
/**
* accessibility : MD045, MD059
*/
accessibility?: boolean | ("error" | "warning");
accessibility?:
| boolean
| ("error" | "warning")
| {
/**
* Tag severity
*/
severity?: "error" | "warning" | "off";
};
/**
* images : MD045, MD052, MD053, MD054
*/
images?: boolean | ("error" | "warning");
images?:
| boolean
| ("error" | "warning")
| {
/**
* Tag severity
*/
severity?: "error" | "warning" | "off";
};
/**
* table : MD055, MD056, MD058, MD060
*/
table?: boolean | ("error" | "warning");
table?:
| boolean
| ("error" | "warning")
| {
/**
* Tag severity
*/
severity?: "error" | "warning" | "off";
};
}

View file

@ -111,6 +111,10 @@ export type EnabledRulesPerLineNumberResult = {
* Enabled rule list.
*/
enabledRuleList: Rule[];
/**
* Rule severities
*/
ruleSeverities: Map<string, "error" | "warning" | "off">;
};
/**
* Function to implement rule logic.

View file

@ -276,6 +276,7 @@ function getEffectiveConfig(ruleList, config, aliasToRuleNames) {
// effectiveConfig[ruleName] = false;
// }
for (const key of Object.keys(config)) {
const keyUpper = key.toUpperCase();
let value = config[key];
if (value) {
if (value instanceof Object) {
@ -284,20 +285,27 @@ function getEffectiveConfig(ruleList, config, aliasToRuleNames) {
if (severity === "off") {
value = false;
} else {
if (severity === "warning") {
ruleSeverities.set(key.toUpperCase(), "warning");
} else {
ruleSeverities.set(key.toUpperCase(), "error");
for (const ruleName of (aliasToRuleNames[keyUpper] || [])) {
if (severity === "warning") {
ruleSeverities.set(ruleName, "warning");
} else {
ruleSeverities.set(ruleName, "error");
}
}
value = Object.fromEntries(Object.entries(value).filter(([ k ]) => k !== "severity"));
}
} else {
if (value === "warning") {
for (const ruleName of (aliasToRuleNames[keyUpper] || [])) {
ruleSeverities.set(ruleName, "warning");
}
}
value = {};
}
} else {
value = false;
}
for (const ruleName of (aliasToRuleNames[key.toUpperCase()] || [])) {
for (const ruleName of (aliasToRuleNames[keyUpper] || [])) {
effectiveConfig[ruleName] = value;
}
}
@ -314,6 +322,7 @@ function getEffectiveConfig(ruleList, config, aliasToRuleNames) {
* @property {Configuration} effectiveConfig Effective configuration.
* @property {any[]} enabledRulesPerLineNumber Enabled rules per line number.
* @property {Rule[]} enabledRuleList Enabled rule list.
* @property {Map<string, "error" | "warning" | "off">} ruleSeverities Rule severities
*/
/**
@ -428,7 +437,7 @@ function getEnabledRulesPerLineNumber(
}
// Handle inline comments
handleInlineConfig([ lines.join("\n") ], configureFile);
const { effectiveConfig } = getEffectiveConfig(ruleList, config, aliasToRuleNames);
const { effectiveConfig, ruleSeverities } = getEffectiveConfig(ruleList, config, aliasToRuleNames);
for (const rule of ruleList) {
const ruleName = rule.names[0].toUpperCase();
allRuleNames.push(ruleName);
@ -449,7 +458,8 @@ function getEnabledRulesPerLineNumber(
return {
effectiveConfig,
enabledRulesPerLineNumber,
enabledRuleList
enabledRuleList,
ruleSeverities
};
}
@ -494,7 +504,7 @@ function lintContent(
const { frontMatterLines } = removeFrontMatterResult;
content = removeFrontMatterResult.content;
// Get enabled rules per line (with HTML comments present)
const { effectiveConfig, enabledRulesPerLineNumber, enabledRuleList } =
const { effectiveConfig, enabledRulesPerLineNumber, enabledRuleList, ruleSeverities } =
getEnabledRulesPerLineNumber(
ruleList,
content.split(helpers.newLineRe),
@ -668,7 +678,8 @@ function lintContent(
"errorContext": errorInfo.context?.replace(helpers.newLineRe, " ") || null,
"errorRange": errorInfo.range ? [ ...errorInfo.range ] : null,
"fixInfo": fixInfo ? cleanFixInfo : null,
"severity": "error"
// @ts-ignore
"severity": ruleSeverities.get(ruleName)
});
}
// Call (possibly external) rule function to report errors

View file

@ -657,7 +657,19 @@ for (const [ tag, tagTags ] of Object.entries(tags)) {
"oneOf": [
{ "type": "boolean" },
// "off" not (yet) supported because behavior of older versions would be to enable
{ "enum": [ "error", "warning" ] }
{ "enum": [ "error", "warning" ] },
{
"type": "object",
"additionalProperties": false,
"properties": {
"severity": {
"description": "Tag severity",
"type": "string",
"enum": [ "error", "warning", "off" ],
"default": "error"
}
}
}
],
"default": true
};

View file

@ -4322,6 +4322,22 @@
"error",
"warning"
]
},
{
"type": "object",
"additionalProperties": false,
"properties": {
"severity": {
"description": "Tag severity",
"type": "string",
"enum": [
"error",
"warning",
"off"
],
"default": "error"
}
}
}
],
"default": true
@ -4337,6 +4353,22 @@
"error",
"warning"
]
},
{
"type": "object",
"additionalProperties": false,
"properties": {
"severity": {
"description": "Tag severity",
"type": "string",
"enum": [
"error",
"warning",
"off"
],
"default": "error"
}
}
}
],
"default": true
@ -4352,6 +4384,22 @@
"error",
"warning"
]
},
{
"type": "object",
"additionalProperties": false,
"properties": {
"severity": {
"description": "Tag severity",
"type": "string",
"enum": [
"error",
"warning",
"off"
],
"default": "error"
}
}
}
],
"default": true
@ -4367,6 +4415,22 @@
"error",
"warning"
]
},
{
"type": "object",
"additionalProperties": false,
"properties": {
"severity": {
"description": "Tag severity",
"type": "string",
"enum": [
"error",
"warning",
"off"
],
"default": "error"
}
}
}
],
"default": true
@ -4382,6 +4446,22 @@
"error",
"warning"
]
},
{
"type": "object",
"additionalProperties": false,
"properties": {
"severity": {
"description": "Tag severity",
"type": "string",
"enum": [
"error",
"warning",
"off"
],
"default": "error"
}
}
}
],
"default": true
@ -4397,6 +4477,22 @@
"error",
"warning"
]
},
{
"type": "object",
"additionalProperties": false,
"properties": {
"severity": {
"description": "Tag severity",
"type": "string",
"enum": [
"error",
"warning",
"off"
],
"default": "error"
}
}
}
],
"default": true
@ -4412,6 +4508,22 @@
"error",
"warning"
]
},
{
"type": "object",
"additionalProperties": false,
"properties": {
"severity": {
"description": "Tag severity",
"type": "string",
"enum": [
"error",
"warning",
"off"
],
"default": "error"
}
}
}
],
"default": true
@ -4427,6 +4539,22 @@
"error",
"warning"
]
},
{
"type": "object",
"additionalProperties": false,
"properties": {
"severity": {
"description": "Tag severity",
"type": "string",
"enum": [
"error",
"warning",
"off"
],
"default": "error"
}
}
}
],
"default": true
@ -4442,6 +4570,22 @@
"error",
"warning"
]
},
{
"type": "object",
"additionalProperties": false,
"properties": {
"severity": {
"description": "Tag severity",
"type": "string",
"enum": [
"error",
"warning",
"off"
],
"default": "error"
}
}
}
],
"default": true
@ -4457,6 +4601,22 @@
"error",
"warning"
]
},
{
"type": "object",
"additionalProperties": false,
"properties": {
"severity": {
"description": "Tag severity",
"type": "string",
"enum": [
"error",
"warning",
"off"
],
"default": "error"
}
}
}
],
"default": true
@ -4472,6 +4632,22 @@
"error",
"warning"
]
},
{
"type": "object",
"additionalProperties": false,
"properties": {
"severity": {
"description": "Tag severity",
"type": "string",
"enum": [
"error",
"warning",
"off"
],
"default": "error"
}
}
}
],
"default": true
@ -4487,6 +4663,22 @@
"error",
"warning"
]
},
{
"type": "object",
"additionalProperties": false,
"properties": {
"severity": {
"description": "Tag severity",
"type": "string",
"enum": [
"error",
"warning",
"off"
],
"default": "error"
}
}
}
],
"default": true
@ -4502,6 +4694,22 @@
"error",
"warning"
]
},
{
"type": "object",
"additionalProperties": false,
"properties": {
"severity": {
"description": "Tag severity",
"type": "string",
"enum": [
"error",
"warning",
"off"
],
"default": "error"
}
}
}
],
"default": true
@ -4517,6 +4725,22 @@
"error",
"warning"
]
},
{
"type": "object",
"additionalProperties": false,
"properties": {
"severity": {
"description": "Tag severity",
"type": "string",
"enum": [
"error",
"warning",
"off"
],
"default": "error"
}
}
}
],
"default": true
@ -4532,6 +4756,22 @@
"error",
"warning"
]
},
{
"type": "object",
"additionalProperties": false,
"properties": {
"severity": {
"description": "Tag severity",
"type": "string",
"enum": [
"error",
"warning",
"off"
],
"default": "error"
}
}
}
],
"default": true
@ -4547,6 +4787,22 @@
"error",
"warning"
]
},
{
"type": "object",
"additionalProperties": false,
"properties": {
"severity": {
"description": "Tag severity",
"type": "string",
"enum": [
"error",
"warning",
"off"
],
"default": "error"
}
}
}
],
"default": true
@ -4562,6 +4818,22 @@
"error",
"warning"
]
},
{
"type": "object",
"additionalProperties": false,
"properties": {
"severity": {
"description": "Tag severity",
"type": "string",
"enum": [
"error",
"warning",
"off"
],
"default": "error"
}
}
}
],
"default": true
@ -4577,6 +4849,22 @@
"error",
"warning"
]
},
{
"type": "object",
"additionalProperties": false,
"properties": {
"severity": {
"description": "Tag severity",
"type": "string",
"enum": [
"error",
"warning",
"off"
],
"default": "error"
}
}
}
],
"default": true
@ -4592,6 +4880,22 @@
"error",
"warning"
]
},
{
"type": "object",
"additionalProperties": false,
"properties": {
"severity": {
"description": "Tag severity",
"type": "string",
"enum": [
"error",
"warning",
"off"
],
"default": "error"
}
}
}
],
"default": true
@ -4607,6 +4911,22 @@
"error",
"warning"
]
},
{
"type": "object",
"additionalProperties": false,
"properties": {
"severity": {
"description": "Tag severity",
"type": "string",
"enum": [
"error",
"warning",
"off"
],
"default": "error"
}
}
}
],
"default": true
@ -4622,6 +4942,22 @@
"error",
"warning"
]
},
{
"type": "object",
"additionalProperties": false,
"properties": {
"severity": {
"description": "Tag severity",
"type": "string",
"enum": [
"error",
"warning",
"off"
],
"default": "error"
}
}
}
],
"default": true
@ -4637,6 +4973,22 @@
"error",
"warning"
]
},
{
"type": "object",
"additionalProperties": false,
"properties": {
"severity": {
"description": "Tag severity",
"type": "string",
"enum": [
"error",
"warning",
"off"
],
"default": "error"
}
}
}
],
"default": true
@ -4652,6 +5004,22 @@
"error",
"warning"
]
},
{
"type": "object",
"additionalProperties": false,
"properties": {
"severity": {
"description": "Tag severity",
"type": "string",
"enum": [
"error",
"warning",
"off"
],
"default": "error"
}
}
}
],
"default": true
@ -4667,6 +5035,22 @@
"error",
"warning"
]
},
{
"type": "object",
"additionalProperties": false,
"properties": {
"severity": {
"description": "Tag severity",
"type": "string",
"enum": [
"error",
"warning",
"off"
],
"default": "error"
}
}
}
],
"default": true

View file

@ -4322,6 +4322,22 @@
"error",
"warning"
]
},
{
"type": "object",
"additionalProperties": false,
"properties": {
"severity": {
"description": "Tag severity",
"type": "string",
"enum": [
"error",
"warning",
"off"
],
"default": "error"
}
}
}
],
"default": true
@ -4337,6 +4353,22 @@
"error",
"warning"
]
},
{
"type": "object",
"additionalProperties": false,
"properties": {
"severity": {
"description": "Tag severity",
"type": "string",
"enum": [
"error",
"warning",
"off"
],
"default": "error"
}
}
}
],
"default": true
@ -4352,6 +4384,22 @@
"error",
"warning"
]
},
{
"type": "object",
"additionalProperties": false,
"properties": {
"severity": {
"description": "Tag severity",
"type": "string",
"enum": [
"error",
"warning",
"off"
],
"default": "error"
}
}
}
],
"default": true
@ -4367,6 +4415,22 @@
"error",
"warning"
]
},
{
"type": "object",
"additionalProperties": false,
"properties": {
"severity": {
"description": "Tag severity",
"type": "string",
"enum": [
"error",
"warning",
"off"
],
"default": "error"
}
}
}
],
"default": true
@ -4382,6 +4446,22 @@
"error",
"warning"
]
},
{
"type": "object",
"additionalProperties": false,
"properties": {
"severity": {
"description": "Tag severity",
"type": "string",
"enum": [
"error",
"warning",
"off"
],
"default": "error"
}
}
}
],
"default": true
@ -4397,6 +4477,22 @@
"error",
"warning"
]
},
{
"type": "object",
"additionalProperties": false,
"properties": {
"severity": {
"description": "Tag severity",
"type": "string",
"enum": [
"error",
"warning",
"off"
],
"default": "error"
}
}
}
],
"default": true
@ -4412,6 +4508,22 @@
"error",
"warning"
]
},
{
"type": "object",
"additionalProperties": false,
"properties": {
"severity": {
"description": "Tag severity",
"type": "string",
"enum": [
"error",
"warning",
"off"
],
"default": "error"
}
}
}
],
"default": true
@ -4427,6 +4539,22 @@
"error",
"warning"
]
},
{
"type": "object",
"additionalProperties": false,
"properties": {
"severity": {
"description": "Tag severity",
"type": "string",
"enum": [
"error",
"warning",
"off"
],
"default": "error"
}
}
}
],
"default": true
@ -4442,6 +4570,22 @@
"error",
"warning"
]
},
{
"type": "object",
"additionalProperties": false,
"properties": {
"severity": {
"description": "Tag severity",
"type": "string",
"enum": [
"error",
"warning",
"off"
],
"default": "error"
}
}
}
],
"default": true
@ -4457,6 +4601,22 @@
"error",
"warning"
]
},
{
"type": "object",
"additionalProperties": false,
"properties": {
"severity": {
"description": "Tag severity",
"type": "string",
"enum": [
"error",
"warning",
"off"
],
"default": "error"
}
}
}
],
"default": true
@ -4472,6 +4632,22 @@
"error",
"warning"
]
},
{
"type": "object",
"additionalProperties": false,
"properties": {
"severity": {
"description": "Tag severity",
"type": "string",
"enum": [
"error",
"warning",
"off"
],
"default": "error"
}
}
}
],
"default": true
@ -4487,6 +4663,22 @@
"error",
"warning"
]
},
{
"type": "object",
"additionalProperties": false,
"properties": {
"severity": {
"description": "Tag severity",
"type": "string",
"enum": [
"error",
"warning",
"off"
],
"default": "error"
}
}
}
],
"default": true
@ -4502,6 +4694,22 @@
"error",
"warning"
]
},
{
"type": "object",
"additionalProperties": false,
"properties": {
"severity": {
"description": "Tag severity",
"type": "string",
"enum": [
"error",
"warning",
"off"
],
"default": "error"
}
}
}
],
"default": true
@ -4517,6 +4725,22 @@
"error",
"warning"
]
},
{
"type": "object",
"additionalProperties": false,
"properties": {
"severity": {
"description": "Tag severity",
"type": "string",
"enum": [
"error",
"warning",
"off"
],
"default": "error"
}
}
}
],
"default": true
@ -4532,6 +4756,22 @@
"error",
"warning"
]
},
{
"type": "object",
"additionalProperties": false,
"properties": {
"severity": {
"description": "Tag severity",
"type": "string",
"enum": [
"error",
"warning",
"off"
],
"default": "error"
}
}
}
],
"default": true
@ -4547,6 +4787,22 @@
"error",
"warning"
]
},
{
"type": "object",
"additionalProperties": false,
"properties": {
"severity": {
"description": "Tag severity",
"type": "string",
"enum": [
"error",
"warning",
"off"
],
"default": "error"
}
}
}
],
"default": true
@ -4562,6 +4818,22 @@
"error",
"warning"
]
},
{
"type": "object",
"additionalProperties": false,
"properties": {
"severity": {
"description": "Tag severity",
"type": "string",
"enum": [
"error",
"warning",
"off"
],
"default": "error"
}
}
}
],
"default": true
@ -4577,6 +4849,22 @@
"error",
"warning"
]
},
{
"type": "object",
"additionalProperties": false,
"properties": {
"severity": {
"description": "Tag severity",
"type": "string",
"enum": [
"error",
"warning",
"off"
],
"default": "error"
}
}
}
],
"default": true
@ -4592,6 +4880,22 @@
"error",
"warning"
]
},
{
"type": "object",
"additionalProperties": false,
"properties": {
"severity": {
"description": "Tag severity",
"type": "string",
"enum": [
"error",
"warning",
"off"
],
"default": "error"
}
}
}
],
"default": true
@ -4607,6 +4911,22 @@
"error",
"warning"
]
},
{
"type": "object",
"additionalProperties": false,
"properties": {
"severity": {
"description": "Tag severity",
"type": "string",
"enum": [
"error",
"warning",
"off"
],
"default": "error"
}
}
}
],
"default": true
@ -4622,6 +4942,22 @@
"error",
"warning"
]
},
{
"type": "object",
"additionalProperties": false,
"properties": {
"severity": {
"description": "Tag severity",
"type": "string",
"enum": [
"error",
"warning",
"off"
],
"default": "error"
}
}
}
],
"default": true
@ -4637,6 +4973,22 @@
"error",
"warning"
]
},
{
"type": "object",
"additionalProperties": false,
"properties": {
"severity": {
"description": "Tag severity",
"type": "string",
"enum": [
"error",
"warning",
"off"
],
"default": "error"
}
}
}
],
"default": true
@ -4652,6 +5004,22 @@
"error",
"warning"
]
},
{
"type": "object",
"additionalProperties": false,
"properties": {
"severity": {
"description": "Tag severity",
"type": "string",
"enum": [
"error",
"warning",
"off"
],
"default": "error"
}
}
}
],
"default": true
@ -4667,6 +5035,22 @@
"error",
"warning"
]
},
{
"type": "object",
"additionalProperties": false,
"properties": {
"severity": {
"description": "Tag severity",
"type": "string",
"enum": [
"error",
"warning",
"off"
],
"default": "error"
}
}
}
],
"default": true

View file

@ -0,0 +1,58 @@
# Configure File With Severity Alias
Text * text* {MD037}
Text ` text` {MD038}
Text [ text](.)
+ List item {MD004}
Text (text)[.] {MD011}
2. List item
<!-- markdownlint-disable -->
Text * text*
Text ` text`
Text [ text](.)
+ List item
Text (text)[.]
2. List item
<!-- markdownlint-restore -->
Text * text* {MD037}
Text ` text` {MD038}
Text [ text](.)
+ List item {MD004}
Text (text)[.] {MD011}
2. List item
<!-- markdownlint-configure-file {
"default": false,
"no-space-in-emphasis": "error",
"no-space-in-code": "warning",
"no-space-in-links": false,
"ul-style": {
"severity": "error",
"style": "dash"
},
"no-reversed-links": {
"severity": "warning"
},
"ol-prefix": {
"severity": "off"
}
} -->

View file

@ -1,16 +1,16 @@
# Configure File With Severity
# Configure File With Severity Name
Text * text* {MD037}
Text ` text` {MD038}
Text [ text](.) {MD039}
Text [ text](.)
+ List item {MD004}
Text (text)[.] {MD011}
2. List item {MD029}
2. List item
<!-- markdownlint-disable -->
@ -32,27 +32,27 @@ Text * text* {MD037}
Text ` text` {MD038}
Text [ text](.) {MD039}
Text [ text](.)
+ List item {MD004}
Text (text)[.] {MD011}
2. List item {MD029}
2. List item
<!-- markdownlint-configure-file {
"default": false,
"MD037": "error",
"MD038": "error",
"MD039": "error",
"MD038": "warning",
"MD039": false,
"MD004": {
"severity": "error",
"style": "dash"
},
"MD011": {
"severity": "error"
"severity": "warning"
},
"MD029": {
"severity": "error"
"severity": "off"
}
} -->

View file

@ -0,0 +1,56 @@
# Configure File With Severity Tag
Text * text* {MD037}
Text ` text` {MD038}
Text [ text](.) {MD039}
+ List item
Text (text)[.] {MD011}
2. List item {MD029}
<!-- markdownlint-disable -->
Text * text*
Text ` text`
Text [ text](.)
+ List item
Text (text)[.]
2. List item
<!-- markdownlint-restore -->
Text * text* {MD037}
Text ` text` {MD038}
Text [ text](.) {MD039}
+ List item
Text (text)[.] {MD011}
2. List item {MD029}
<!-- markdownlint-configure-file {
"default": false,
"emphasis": "error",
"code": "warning",
"bullet": {
"severity": "off"
},
"links": {
"severity": "warning"
},
"ol": {
"severity": "error"
}
} -->

View file

@ -226,6 +226,16 @@ const configTestExpected3511 = {
"MD041 1 error"
]
};
const configTestExpected3511warning = {
"./test/atx_heading_spacing.md": [
"MD019 3 warning",
"MD019 5 warning",
"MD041 1 warning"
],
"./test/first_heading_bad_atx.md": [
"MD041 1 warning"
]
};
const configTestExpected13511 = {
"./test/atx_heading_spacing.md": [
"MD018 1 error",
@ -237,6 +247,17 @@ const configTestExpected13511 = {
"MD041 1 error"
]
};
const configTestExpected13511warning = {
"./test/atx_heading_spacing.md": [
"MD018 1 warning",
"MD019 3 warning",
"MD019 5 warning",
"MD041 1 warning"
],
"./test/first_heading_bad_atx.md": [
"MD041 1 warning"
]
};
test("defaultUnset", getConfigTestImplementation(
{},
@ -273,7 +294,7 @@ test("defaultError", getConfigTestImplementation(
test("defaultWarning", getConfigTestImplementation(
// @ts-ignore
{ "default": "warning" },
configTestExpected13511
configTestExpected13511warning
));
test("defaultOff", getConfigTestImplementation(
@ -437,7 +458,7 @@ test("enableRulesObjectWarning", getConfigTestImplementation(
"severity": "warning"
}
},
configTestExpected3511
configTestExpected3511warning
));
test("enableRulesObjectOff", getConfigTestImplementation(
@ -1020,7 +1041,7 @@ test("readme", async(t) => {
});
test("validateJsonUsingConfigSchemaStrict", async(t) => {
t.plan(212);
t.plan(214);
// @ts-ignore
const ajv = new Ajv(ajvOptions);
const validateSchemaStrict = ajv.compile(configSchemaStrict);

View file

@ -11203,7 +11203,7 @@ Generated by [AVA](https://avajs.dev).
`,
}
## configure-file-with-severity.md
## configure-file-with-severity-alias.md
> Snapshot 1
@ -11270,7 +11270,7 @@ Generated by [AVA](https://avajs.dev).
'MD011',
'no-reversed-links',
],
severity: 'error',
severity: 'warning',
},
{
errorContext: null,
@ -11291,8 +11291,430 @@ Generated by [AVA](https://avajs.dev).
'MD011',
'no-reversed-links',
],
severity: 'warning',
},
{
errorContext: '* t',
errorDetail: null,
errorRange: [
7,
1,
],
fixInfo: {
deleteCount: 1,
editColumn: 7,
},
lineNumber: 3,
ruleDescription: 'Spaces inside emphasis markers',
ruleInformation: 'https://github.com/DavidAnson/markdownlint/blob/v0.0.0/doc/md037.md',
ruleNames: [
'MD037',
'no-space-in-emphasis',
],
severity: 'error',
},
{
errorContext: '* t',
errorDetail: null,
errorRange: [
7,
1,
],
fixInfo: {
deleteCount: 1,
editColumn: 7,
},
lineNumber: 31,
ruleDescription: 'Spaces inside emphasis markers',
ruleInformation: 'https://github.com/DavidAnson/markdownlint/blob/v0.0.0/doc/md037.md',
ruleNames: [
'MD037',
'no-space-in-emphasis',
],
severity: 'error',
},
{
errorContext: '` text`',
errorDetail: null,
errorRange: [
7,
1,
],
fixInfo: {
deleteCount: 1,
editColumn: 7,
},
lineNumber: 5,
ruleDescription: 'Spaces inside code span elements',
ruleInformation: 'https://github.com/DavidAnson/markdownlint/blob/v0.0.0/doc/md038.md',
ruleNames: [
'MD038',
'no-space-in-code',
],
severity: 'warning',
},
{
errorContext: '` text`',
errorDetail: null,
errorRange: [
7,
1,
],
fixInfo: {
deleteCount: 1,
editColumn: 7,
},
lineNumber: 33,
ruleDescription: 'Spaces inside code span elements',
ruleInformation: 'https://github.com/DavidAnson/markdownlint/blob/v0.0.0/doc/md038.md',
ruleNames: [
'MD038',
'no-space-in-code',
],
severity: 'warning',
},
],
fixed: `# Configure File With Severity Alias␊
Text *text* {MD037}␊
Text \`text\` {MD038}␊
Text [ text](.)␊
- List item {MD004}␊
Text [text](.) {MD011}␊
2. List item␊
<!-- markdownlint-disable -->
Text * text*
Text \` text\`␊
Text [ text](.)␊
+ List item␊
Text (text)[.]␊
2. List item␊
<!-- markdownlint-restore -->
Text *text* {MD037}␊
Text \`text\` {MD038}␊
Text [ text](.)␊
- List item {MD004}␊
Text [text](.) {MD011}␊
2. List item␊
<!-- markdownlint-configure-file {␊
"default": false,␊
"no-space-in-emphasis": "error",␊
"no-space-in-code": "warning",␊
"no-space-in-links": false,␊
"ul-style": {␊
"severity": "error",␊
"style": "dash"␊
},␊
"no-reversed-links": {␊
"severity": "warning"␊
},␊
"ol-prefix": {␊
"severity": "off"␊
}␊
} -->␊
`,
}
## configure-file-with-severity-name.md
> Snapshot 1
{
errors: [
{
errorContext: null,
errorDetail: 'Expected: dash; Actual: plus',
errorRange: [
1,
1,
],
fixInfo: {
deleteCount: 1,
editColumn: 1,
insertText: '-',
},
lineNumber: 9,
ruleDescription: 'Unordered list style',
ruleInformation: 'https://github.com/DavidAnson/markdownlint/blob/v0.0.0/doc/md004.md',
ruleNames: [
'MD004',
'ul-style',
],
severity: 'error',
},
{
errorContext: null,
errorDetail: 'Expected: dash; Actual: plus',
errorRange: [
1,
1,
],
fixInfo: {
deleteCount: 1,
editColumn: 1,
insertText: '-',
},
lineNumber: 37,
ruleDescription: 'Unordered list style',
ruleInformation: 'https://github.com/DavidAnson/markdownlint/blob/v0.0.0/doc/md004.md',
ruleNames: [
'MD004',
'ul-style',
],
severity: 'error',
},
{
errorContext: null,
errorDetail: '(text)[.]',
errorRange: [
6,
9,
],
fixInfo: {
deleteCount: 9,
editColumn: 6,
insertText: '[text](.)',
},
lineNumber: 11,
ruleDescription: 'Reversed link syntax',
ruleInformation: 'https://github.com/DavidAnson/markdownlint/blob/v0.0.0/doc/md011.md',
ruleNames: [
'MD011',
'no-reversed-links',
],
severity: 'warning',
},
{
errorContext: null,
errorDetail: '(text)[.]',
errorRange: [
6,
9,
],
fixInfo: {
deleteCount: 9,
editColumn: 6,
insertText: '[text](.)',
},
lineNumber: 39,
ruleDescription: 'Reversed link syntax',
ruleInformation: 'https://github.com/DavidAnson/markdownlint/blob/v0.0.0/doc/md011.md',
ruleNames: [
'MD011',
'no-reversed-links',
],
severity: 'warning',
},
{
errorContext: '* t',
errorDetail: null,
errorRange: [
7,
1,
],
fixInfo: {
deleteCount: 1,
editColumn: 7,
},
lineNumber: 3,
ruleDescription: 'Spaces inside emphasis markers',
ruleInformation: 'https://github.com/DavidAnson/markdownlint/blob/v0.0.0/doc/md037.md',
ruleNames: [
'MD037',
'no-space-in-emphasis',
],
severity: 'error',
},
{
errorContext: '* t',
errorDetail: null,
errorRange: [
7,
1,
],
fixInfo: {
deleteCount: 1,
editColumn: 7,
},
lineNumber: 31,
ruleDescription: 'Spaces inside emphasis markers',
ruleInformation: 'https://github.com/DavidAnson/markdownlint/blob/v0.0.0/doc/md037.md',
ruleNames: [
'MD037',
'no-space-in-emphasis',
],
severity: 'error',
},
{
errorContext: '` text`',
errorDetail: null,
errorRange: [
7,
1,
],
fixInfo: {
deleteCount: 1,
editColumn: 7,
},
lineNumber: 5,
ruleDescription: 'Spaces inside code span elements',
ruleInformation: 'https://github.com/DavidAnson/markdownlint/blob/v0.0.0/doc/md038.md',
ruleNames: [
'MD038',
'no-space-in-code',
],
severity: 'warning',
},
{
errorContext: '` text`',
errorDetail: null,
errorRange: [
7,
1,
],
fixInfo: {
deleteCount: 1,
editColumn: 7,
},
lineNumber: 33,
ruleDescription: 'Spaces inside code span elements',
ruleInformation: 'https://github.com/DavidAnson/markdownlint/blob/v0.0.0/doc/md038.md',
ruleNames: [
'MD038',
'no-space-in-code',
],
severity: 'warning',
},
],
fixed: `# Configure File With Severity Name␊
Text *text* {MD037}␊
Text \`text\` {MD038}␊
Text [ text](.)␊
- List item {MD004}␊
Text [text](.) {MD011}␊
2. List item␊
<!-- markdownlint-disable -->
Text * text*
Text \` text\`␊
Text [ text](.)␊
+ List item␊
Text (text)[.]␊
2. List item␊
<!-- markdownlint-restore -->
Text *text* {MD037}␊
Text \`text\` {MD038}␊
Text [ text](.)␊
- List item {MD004}␊
Text [text](.) {MD011}␊
2. List item␊
<!-- markdownlint-configure-file {␊
"default": false,␊
"MD037": "error",␊
"MD038": "warning",␊
"MD039": false,␊
"MD004": {␊
"severity": "error",␊
"style": "dash"␊
},␊
"MD011": {␊
"severity": "warning"␊
},␊
"MD029": {␊
"severity": "off"␊
}␊
} -->␊
`,
}
## configure-file-with-severity-tag.md
> Snapshot 1
{
errors: [
{
errorContext: null,
errorDetail: '(text)[.]',
errorRange: [
6,
9,
],
fixInfo: {
deleteCount: 9,
editColumn: 6,
insertText: '[text](.)',
},
lineNumber: 11,
ruleDescription: 'Reversed link syntax',
ruleInformation: 'https://github.com/DavidAnson/markdownlint/blob/v0.0.0/doc/md011.md',
ruleNames: [
'MD011',
'no-reversed-links',
],
severity: 'warning',
},
{
errorContext: null,
errorDetail: '(text)[.]',
errorRange: [
6,
9,
],
fixInfo: {
deleteCount: 9,
editColumn: 6,
insertText: '[text](.)',
},
lineNumber: 39,
ruleDescription: 'Reversed link syntax',
ruleInformation: 'https://github.com/DavidAnson/markdownlint/blob/v0.0.0/doc/md011.md',
ruleNames: [
'MD011',
'no-reversed-links',
],
severity: 'warning',
},
{
errorContext: null,
errorDetail: 'Expected: 1; Actual: 2; Style: 1/1/1',
@ -11393,7 +11815,7 @@ Generated by [AVA](https://avajs.dev).
'MD038',
'no-space-in-code',
],
severity: 'error',
severity: 'warning',
},
{
errorContext: '` text`',
@ -11413,7 +11835,7 @@ Generated by [AVA](https://avajs.dev).
'MD038',
'no-space-in-code',
],
severity: 'error',
severity: 'warning',
},
{
errorContext: '[ text]',
@ -11433,7 +11855,7 @@ Generated by [AVA](https://avajs.dev).
'MD039',
'no-space-in-links',
],
severity: 'error',
severity: 'warning',
},
{
errorContext: '[ text]',
@ -11453,10 +11875,10 @@ Generated by [AVA](https://avajs.dev).
'MD039',
'no-space-in-links',
],
severity: 'error',
severity: 'warning',
},
],
fixed: `# Configure File With Severity␊
fixed: `# Configure File With Severity Tag
Text *text* {MD037}␊
@ -11464,7 +11886,7 @@ Generated by [AVA](https://avajs.dev).
Text [text](.) {MD039}␊
- List item {MD004}
+ List item
Text [text](.) {MD011}␊
@ -11492,7 +11914,7 @@ Generated by [AVA](https://avajs.dev).
Text [text](.) {MD039}␊
- List item {MD004}
+ List item
Text [text](.) {MD011}␊
@ -11500,17 +11922,15 @@ Generated by [AVA](https://avajs.dev).
<!-- markdownlint-configure-file {␊
"default": false,␊
"MD037": "error",␊
"MD038": "error",␊
"MD039": "error",␊
"MD004": {␊
"severity": "error",␊
"style": "dash"␊
"emphasis": "error",␊
"code": "warning",␊
"bullet": {␊
"severity": "off"␊
},␊
"MD011": {␊
"severity": "error"␊
"links": {␊
"severity": "warning"␊
},␊
"MD029": {␊
"ol": {␊
"severity": "error"␊
}␊
} -->␊