diff --git a/README.md b/README.md index e2f7c6e7..f078b49e 100644 --- a/README.md +++ b/README.md @@ -375,12 +375,48 @@ for all rules. Using a tag name (e.g., `whitespace`) and a setting of `false`, configuration object is passed or the optional `default` setting is not present, all rules are enabled. +The following syntax disables the specified rule, tag, or `default`: + +```javascript +{ + "rule_name": false +} +``` + +The following syntax enables the specified rule, tag, or `default`: + +```javascript +{ + "rule_name": true + // OR + "rule_name": "error" +} +``` + +The following syntax enables and configures the specified rule: + +```javascript +{ + "rule_name": { + "parameter": "value" + } + // OR + "rule_name": { + "parameter": "value", + "severity": "error" + } +} +``` + +> Note that `error` and `severity` are not supported by library versions earlier +> than `0.39.0`. However, all examples above behave the same. + To evaluate a configuration object, the `default` setting is applied first, then keys are processed in order from top to bottom. If multiple values apply to a rule (because of tag names or duplication), later values override earlier ones. Keys (including rule names, aliases, tags, or `default`) are not case-sensitive. -Example: +Example using `default`, rule names, and tag names together: ```json { diff --git a/doc-build/build-rules.mjs b/doc-build/build-rules.mjs index a1626a2c..55889668 100644 --- a/doc-build/build-rules.mjs +++ b/doc-build/build-rules.mjs @@ -61,8 +61,12 @@ for (const rule of rules) { "" ); const ruleData = schema.properties[name]; - const ruleProperties = ruleData.oneOf.at(-1).properties; - if (ruleProperties) { + const ruleProperties = Object.fromEntries( + Object.entries( + ruleData.oneOf.at(-1).properties + ).filter(([ key ]) => key !== "severity") + ); + if (Object.keys(ruleProperties).length > 0) { section.push( "Parameters:", "" diff --git a/lib/configuration-strict.d.ts b/lib/configuration-strict.d.ts index 2bb30dbf..bf27b840 100644 --- a/lib/configuration-strict.d.ts +++ b/lib/configuration-strict.d.ts @@ -25,6 +25,10 @@ export interface ConfigurationStrict { | boolean | "error" | { + /** + * Rule severity + */ + severity?: "error"; /** * RegExp for matching title in front matter */ @@ -37,6 +41,10 @@ export interface ConfigurationStrict { | boolean | "error" | { + /** + * Rule severity + */ + severity?: "error"; /** * RegExp for matching title in front matter */ @@ -49,6 +57,10 @@ export interface ConfigurationStrict { | boolean | "error" | { + /** + * Rule severity + */ + severity?: "error"; /** * Heading style */ @@ -61,6 +73,10 @@ export interface ConfigurationStrict { | boolean | "error" | { + /** + * Rule severity + */ + severity?: "error"; /** * Heading style */ @@ -73,6 +89,10 @@ export interface ConfigurationStrict { | boolean | "error" | { + /** + * Rule severity + */ + severity?: "error"; /** * List style */ @@ -85,6 +105,10 @@ export interface ConfigurationStrict { | boolean | "error" | { + /** + * Rule severity + */ + severity?: "error"; /** * List style */ @@ -93,11 +117,27 @@ export interface ConfigurationStrict { /** * MD005/list-indent : Inconsistent indentation for list items at the same level : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md005.md */ - MD005?: boolean | "error"; + MD005?: + | boolean + | "error" + | { + /** + * Rule severity + */ + severity?: "error"; + }; /** * MD005/list-indent : Inconsistent indentation for list items at the same level : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md005.md */ - "list-indent"?: boolean | "error"; + "list-indent"?: + | boolean + | "error" + | { + /** + * Rule severity + */ + severity?: "error"; + }; /** * MD007/ul-indent : Unordered list indentation : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md007.md */ @@ -105,6 +145,10 @@ export interface ConfigurationStrict { | boolean | "error" | { + /** + * Rule severity + */ + severity?: "error"; /** * Spaces for indent */ @@ -125,6 +169,10 @@ export interface ConfigurationStrict { | boolean | "error" | { + /** + * Rule severity + */ + severity?: "error"; /** * Spaces for indent */ @@ -145,6 +193,10 @@ export interface ConfigurationStrict { | boolean | "error" | { + /** + * Rule severity + */ + severity?: "error"; /** * Spaces for line break */ @@ -165,6 +217,10 @@ export interface ConfigurationStrict { | boolean | "error" | { + /** + * Rule severity + */ + severity?: "error"; /** * Spaces for line break */ @@ -185,6 +241,10 @@ export interface ConfigurationStrict { | boolean | "error" | { + /** + * Rule severity + */ + severity?: "error"; /** * Include code blocks */ @@ -205,6 +265,10 @@ export interface ConfigurationStrict { | boolean | "error" | { + /** + * Rule severity + */ + severity?: "error"; /** * Include code blocks */ @@ -221,11 +285,27 @@ export interface ConfigurationStrict { /** * MD011/no-reversed-links : Reversed link syntax : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md011.md */ - MD011?: boolean | "error"; + MD011?: + | boolean + | "error" + | { + /** + * Rule severity + */ + severity?: "error"; + }; /** * MD011/no-reversed-links : Reversed link syntax : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md011.md */ - "no-reversed-links"?: boolean | "error"; + "no-reversed-links"?: + | boolean + | "error" + | { + /** + * Rule severity + */ + severity?: "error"; + }; /** * MD012/no-multiple-blanks : Multiple consecutive blank lines : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md012.md */ @@ -233,6 +313,10 @@ export interface ConfigurationStrict { | boolean | "error" | { + /** + * Rule severity + */ + severity?: "error"; /** * Consecutive blank lines */ @@ -245,6 +329,10 @@ export interface ConfigurationStrict { | boolean | "error" | { + /** + * Rule severity + */ + severity?: "error"; /** * Consecutive blank lines */ @@ -257,6 +345,10 @@ export interface ConfigurationStrict { | boolean | "error" | { + /** + * Rule severity + */ + severity?: "error"; /** * Number of characters */ @@ -297,6 +389,10 @@ export interface ConfigurationStrict { | boolean | "error" | { + /** + * Rule severity + */ + severity?: "error"; /** * Number of characters */ @@ -333,43 +429,123 @@ export interface ConfigurationStrict { /** * MD014/commands-show-output : Dollar signs used before commands without showing output : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md014.md */ - MD014?: boolean | "error"; + MD014?: + | boolean + | "error" + | { + /** + * Rule severity + */ + severity?: "error"; + }; /** * MD014/commands-show-output : Dollar signs used before commands without showing output : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md014.md */ - "commands-show-output"?: boolean | "error"; + "commands-show-output"?: + | boolean + | "error" + | { + /** + * Rule severity + */ + severity?: "error"; + }; /** * MD018/no-missing-space-atx : No space after hash on atx style heading : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md018.md */ - MD018?: boolean | "error"; + MD018?: + | boolean + | "error" + | { + /** + * Rule severity + */ + severity?: "error"; + }; /** * MD018/no-missing-space-atx : No space after hash on atx style heading : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md018.md */ - "no-missing-space-atx"?: boolean | "error"; + "no-missing-space-atx"?: + | boolean + | "error" + | { + /** + * Rule severity + */ + severity?: "error"; + }; /** * MD019/no-multiple-space-atx : Multiple spaces after hash on atx style heading : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md019.md */ - MD019?: boolean | "error"; + MD019?: + | boolean + | "error" + | { + /** + * Rule severity + */ + severity?: "error"; + }; /** * MD019/no-multiple-space-atx : Multiple spaces after hash on atx style heading : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md019.md */ - "no-multiple-space-atx"?: boolean | "error"; + "no-multiple-space-atx"?: + | boolean + | "error" + | { + /** + * Rule severity + */ + severity?: "error"; + }; /** * MD020/no-missing-space-closed-atx : No space inside hashes on closed atx style heading : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md020.md */ - MD020?: boolean | "error"; + MD020?: + | boolean + | "error" + | { + /** + * Rule severity + */ + severity?: "error"; + }; /** * MD020/no-missing-space-closed-atx : No space inside hashes on closed atx style heading : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md020.md */ - "no-missing-space-closed-atx"?: boolean | "error"; + "no-missing-space-closed-atx"?: + | boolean + | "error" + | { + /** + * Rule severity + */ + severity?: "error"; + }; /** * MD021/no-multiple-space-closed-atx : Multiple spaces inside hashes on closed atx style heading : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md021.md */ - MD021?: boolean | "error"; + MD021?: + | boolean + | "error" + | { + /** + * Rule severity + */ + severity?: "error"; + }; /** * MD021/no-multiple-space-closed-atx : Multiple spaces inside hashes on closed atx style heading : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md021.md */ - "no-multiple-space-closed-atx"?: boolean | "error"; + "no-multiple-space-closed-atx"?: + | boolean + | "error" + | { + /** + * Rule severity + */ + severity?: "error"; + }; /** * MD022/blanks-around-headings : Headings should be surrounded by blank lines : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md022.md */ @@ -377,6 +553,10 @@ export interface ConfigurationStrict { | boolean | "error" | { + /** + * Rule severity + */ + severity?: "error"; /** * Blank lines above heading */ @@ -393,6 +573,10 @@ export interface ConfigurationStrict { | boolean | "error" | { + /** + * Rule severity + */ + severity?: "error"; /** * Blank lines above heading */ @@ -405,11 +589,27 @@ export interface ConfigurationStrict { /** * MD023/heading-start-left : Headings must start at the beginning of the line : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md023.md */ - MD023?: boolean | "error"; + MD023?: + | boolean + | "error" + | { + /** + * Rule severity + */ + severity?: "error"; + }; /** * MD023/heading-start-left : Headings must start at the beginning of the line : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md023.md */ - "heading-start-left"?: boolean | "error"; + "heading-start-left"?: + | boolean + | "error" + | { + /** + * Rule severity + */ + severity?: "error"; + }; /** * MD024/no-duplicate-heading : Multiple headings with the same content : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md024.md */ @@ -417,6 +617,10 @@ export interface ConfigurationStrict { | boolean | "error" | { + /** + * Rule severity + */ + severity?: "error"; /** * Only check sibling headings */ @@ -429,6 +633,10 @@ export interface ConfigurationStrict { | boolean | "error" | { + /** + * Rule severity + */ + severity?: "error"; /** * Only check sibling headings */ @@ -441,6 +649,10 @@ export interface ConfigurationStrict { | boolean | "error" | { + /** + * Rule severity + */ + severity?: "error"; /** * RegExp for matching title in front matter */ @@ -457,6 +669,10 @@ export interface ConfigurationStrict { | boolean | "error" | { + /** + * Rule severity + */ + severity?: "error"; /** * RegExp for matching title in front matter */ @@ -473,6 +689,10 @@ export interface ConfigurationStrict { | boolean | "error" | { + /** + * Rule severity + */ + severity?: "error"; /** * RegExp for matching title in front matter */ @@ -489,6 +709,10 @@ export interface ConfigurationStrict { | boolean | "error" | { + /** + * Rule severity + */ + severity?: "error"; /** * Punctuation characters */ @@ -501,6 +725,10 @@ export interface ConfigurationStrict { | boolean | "error" | { + /** + * Rule severity + */ + severity?: "error"; /** * Punctuation characters */ @@ -513,6 +741,10 @@ export interface ConfigurationStrict { | boolean | "error" | { + /** + * Rule severity + */ + severity?: "error"; /** * Include list items */ @@ -525,6 +757,10 @@ export interface ConfigurationStrict { | boolean | "error" | { + /** + * Rule severity + */ + severity?: "error"; /** * Include list items */ @@ -533,11 +769,27 @@ export interface ConfigurationStrict { /** * MD028/no-blanks-blockquote : Blank line inside blockquote : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md028.md */ - MD028?: boolean | "error"; + MD028?: + | boolean + | "error" + | { + /** + * Rule severity + */ + severity?: "error"; + }; /** * MD028/no-blanks-blockquote : Blank line inside blockquote : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md028.md */ - "no-blanks-blockquote"?: boolean | "error"; + "no-blanks-blockquote"?: + | boolean + | "error" + | { + /** + * Rule severity + */ + severity?: "error"; + }; /** * MD029/ol-prefix : Ordered list item prefix : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md029.md */ @@ -545,6 +797,10 @@ export interface ConfigurationStrict { | boolean | "error" | { + /** + * Rule severity + */ + severity?: "error"; /** * List style */ @@ -557,6 +813,10 @@ export interface ConfigurationStrict { | boolean | "error" | { + /** + * Rule severity + */ + severity?: "error"; /** * List style */ @@ -569,6 +829,10 @@ export interface ConfigurationStrict { | boolean | "error" | { + /** + * Rule severity + */ + severity?: "error"; /** * Spaces for single-line unordered list items */ @@ -593,6 +857,10 @@ export interface ConfigurationStrict { | boolean | "error" | { + /** + * Rule severity + */ + severity?: "error"; /** * Spaces for single-line unordered list items */ @@ -617,6 +885,10 @@ export interface ConfigurationStrict { | boolean | "error" | { + /** + * Rule severity + */ + severity?: "error"; /** * Include list items */ @@ -629,6 +901,10 @@ export interface ConfigurationStrict { | boolean | "error" | { + /** + * Rule severity + */ + severity?: "error"; /** * Include list items */ @@ -637,11 +913,27 @@ export interface ConfigurationStrict { /** * MD032/blanks-around-lists : Lists should be surrounded by blank lines : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md032.md */ - MD032?: boolean | "error"; + MD032?: + | boolean + | "error" + | { + /** + * Rule severity + */ + severity?: "error"; + }; /** * MD032/blanks-around-lists : Lists should be surrounded by blank lines : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md032.md */ - "blanks-around-lists"?: boolean | "error"; + "blanks-around-lists"?: + | boolean + | "error" + | { + /** + * Rule severity + */ + severity?: "error"; + }; /** * MD033/no-inline-html : Inline HTML : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md033.md */ @@ -649,6 +941,10 @@ export interface ConfigurationStrict { | boolean | "error" | { + /** + * Rule severity + */ + severity?: "error"; /** * Allowed elements */ @@ -665,6 +961,10 @@ export interface ConfigurationStrict { | boolean | "error" | { + /** + * Rule severity + */ + severity?: "error"; /** * Allowed elements */ @@ -677,11 +977,27 @@ export interface ConfigurationStrict { /** * MD034/no-bare-urls : Bare URL used : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md034.md */ - MD034?: boolean | "error"; + MD034?: + | boolean + | "error" + | { + /** + * Rule severity + */ + severity?: "error"; + }; /** * MD034/no-bare-urls : Bare URL used : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md034.md */ - "no-bare-urls"?: boolean | "error"; + "no-bare-urls"?: + | boolean + | "error" + | { + /** + * Rule severity + */ + severity?: "error"; + }; /** * MD035/hr-style : Horizontal rule style : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md035.md */ @@ -689,6 +1005,10 @@ export interface ConfigurationStrict { | boolean | "error" | { + /** + * Rule severity + */ + severity?: "error"; /** * Horizontal rule style */ @@ -701,6 +1021,10 @@ export interface ConfigurationStrict { | boolean | "error" | { + /** + * Rule severity + */ + severity?: "error"; /** * Horizontal rule style */ @@ -713,6 +1037,10 @@ export interface ConfigurationStrict { | boolean | "error" | { + /** + * Rule severity + */ + severity?: "error"; /** * Punctuation characters */ @@ -725,6 +1053,10 @@ export interface ConfigurationStrict { | boolean | "error" | { + /** + * Rule severity + */ + severity?: "error"; /** * Punctuation characters */ @@ -733,27 +1065,75 @@ export interface ConfigurationStrict { /** * MD037/no-space-in-emphasis : Spaces inside emphasis markers : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md037.md */ - MD037?: boolean | "error"; + MD037?: + | boolean + | "error" + | { + /** + * Rule severity + */ + severity?: "error"; + }; /** * MD037/no-space-in-emphasis : Spaces inside emphasis markers : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md037.md */ - "no-space-in-emphasis"?: boolean | "error"; + "no-space-in-emphasis"?: + | boolean + | "error" + | { + /** + * Rule severity + */ + severity?: "error"; + }; /** * MD038/no-space-in-code : Spaces inside code span elements : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md038.md */ - MD038?: boolean | "error"; + MD038?: + | boolean + | "error" + | { + /** + * Rule severity + */ + severity?: "error"; + }; /** * MD038/no-space-in-code : Spaces inside code span elements : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md038.md */ - "no-space-in-code"?: boolean | "error"; + "no-space-in-code"?: + | boolean + | "error" + | { + /** + * Rule severity + */ + severity?: "error"; + }; /** * MD039/no-space-in-links : Spaces inside link text : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md039.md */ - MD039?: boolean | "error"; + MD039?: + | boolean + | "error" + | { + /** + * Rule severity + */ + severity?: "error"; + }; /** * MD039/no-space-in-links : Spaces inside link text : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md039.md */ - "no-space-in-links"?: boolean | "error"; + "no-space-in-links"?: + | boolean + | "error" + | { + /** + * Rule severity + */ + severity?: "error"; + }; /** * MD040/fenced-code-language : Fenced code blocks should have a language specified : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md040.md */ @@ -761,6 +1141,10 @@ export interface ConfigurationStrict { | boolean | "error" | { + /** + * Rule severity + */ + severity?: "error"; /** * List of languages */ @@ -777,6 +1161,10 @@ export interface ConfigurationStrict { | boolean | "error" | { + /** + * Rule severity + */ + severity?: "error"; /** * List of languages */ @@ -793,6 +1181,10 @@ export interface ConfigurationStrict { | boolean | "error" | { + /** + * Rule severity + */ + severity?: "error"; /** * Allow content before first heading */ @@ -813,6 +1205,10 @@ export interface ConfigurationStrict { | boolean | "error" | { + /** + * Rule severity + */ + severity?: "error"; /** * Allow content before first heading */ @@ -833,6 +1229,10 @@ export interface ConfigurationStrict { | boolean | "error" | { + /** + * Rule severity + */ + severity?: "error"; /** * Allow content before first heading */ @@ -849,11 +1249,27 @@ export interface ConfigurationStrict { /** * MD042/no-empty-links : No empty links : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md042.md */ - MD042?: boolean | "error"; + MD042?: + | boolean + | "error" + | { + /** + * Rule severity + */ + severity?: "error"; + }; /** * MD042/no-empty-links : No empty links : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md042.md */ - "no-empty-links"?: boolean | "error"; + "no-empty-links"?: + | boolean + | "error" + | { + /** + * Rule severity + */ + severity?: "error"; + }; /** * MD043/required-headings : Required heading structure : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md043.md */ @@ -861,6 +1277,10 @@ export interface ConfigurationStrict { | boolean | "error" | { + /** + * Rule severity + */ + severity?: "error"; /** * List of headings */ @@ -877,6 +1297,10 @@ export interface ConfigurationStrict { | boolean | "error" | { + /** + * Rule severity + */ + severity?: "error"; /** * List of headings */ @@ -893,6 +1317,10 @@ export interface ConfigurationStrict { | boolean | "error" | { + /** + * Rule severity + */ + severity?: "error"; /** * List of proper names */ @@ -913,6 +1341,10 @@ export interface ConfigurationStrict { | boolean | "error" | { + /** + * Rule severity + */ + severity?: "error"; /** * List of proper names */ @@ -929,11 +1361,27 @@ export interface ConfigurationStrict { /** * MD045/no-alt-text : Images should have alternate text (alt text) : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md045.md */ - MD045?: boolean | "error"; + MD045?: + | boolean + | "error" + | { + /** + * Rule severity + */ + severity?: "error"; + }; /** * MD045/no-alt-text : Images should have alternate text (alt text) : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md045.md */ - "no-alt-text"?: boolean | "error"; + "no-alt-text"?: + | boolean + | "error" + | { + /** + * Rule severity + */ + severity?: "error"; + }; /** * MD046/code-block-style : Code block style : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md046.md */ @@ -941,6 +1389,10 @@ export interface ConfigurationStrict { | boolean | "error" | { + /** + * Rule severity + */ + severity?: "error"; /** * Block style */ @@ -953,6 +1405,10 @@ export interface ConfigurationStrict { | boolean | "error" | { + /** + * Rule severity + */ + severity?: "error"; /** * Block style */ @@ -961,11 +1417,27 @@ export interface ConfigurationStrict { /** * MD047/single-trailing-newline : Files should end with a single newline character : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md047.md */ - MD047?: boolean | "error"; + MD047?: + | boolean + | "error" + | { + /** + * Rule severity + */ + severity?: "error"; + }; /** * MD047/single-trailing-newline : Files should end with a single newline character : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md047.md */ - "single-trailing-newline"?: boolean | "error"; + "single-trailing-newline"?: + | boolean + | "error" + | { + /** + * Rule severity + */ + severity?: "error"; + }; /** * MD048/code-fence-style : Code fence style : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md048.md */ @@ -973,6 +1445,10 @@ export interface ConfigurationStrict { | boolean | "error" | { + /** + * Rule severity + */ + severity?: "error"; /** * Code fence style */ @@ -985,6 +1461,10 @@ export interface ConfigurationStrict { | boolean | "error" | { + /** + * Rule severity + */ + severity?: "error"; /** * Code fence style */ @@ -997,6 +1477,10 @@ export interface ConfigurationStrict { | boolean | "error" | { + /** + * Rule severity + */ + severity?: "error"; /** * Emphasis style */ @@ -1009,6 +1493,10 @@ export interface ConfigurationStrict { | boolean | "error" | { + /** + * Rule severity + */ + severity?: "error"; /** * Emphasis style */ @@ -1021,6 +1509,10 @@ export interface ConfigurationStrict { | boolean | "error" | { + /** + * Rule severity + */ + severity?: "error"; /** * Strong style */ @@ -1033,6 +1525,10 @@ export interface ConfigurationStrict { | boolean | "error" | { + /** + * Rule severity + */ + severity?: "error"; /** * Strong style */ @@ -1045,6 +1541,10 @@ export interface ConfigurationStrict { | boolean | "error" | { + /** + * Rule severity + */ + severity?: "error"; /** * Ignore case of fragments */ @@ -1061,6 +1561,10 @@ export interface ConfigurationStrict { | boolean | "error" | { + /** + * Rule severity + */ + severity?: "error"; /** * Ignore case of fragments */ @@ -1077,6 +1581,10 @@ export interface ConfigurationStrict { | boolean | "error" | { + /** + * Rule severity + */ + severity?: "error"; /** * Ignored link labels */ @@ -1093,6 +1601,10 @@ export interface ConfigurationStrict { | boolean | "error" | { + /** + * Rule severity + */ + severity?: "error"; /** * Ignored link labels */ @@ -1109,6 +1621,10 @@ export interface ConfigurationStrict { | boolean | "error" | { + /** + * Rule severity + */ + severity?: "error"; /** * Ignored definitions */ @@ -1121,6 +1637,10 @@ export interface ConfigurationStrict { | boolean | "error" | { + /** + * Rule severity + */ + severity?: "error"; /** * Ignored definitions */ @@ -1133,6 +1653,10 @@ export interface ConfigurationStrict { | boolean | "error" | { + /** + * Rule severity + */ + severity?: "error"; /** * Allow autolinks */ @@ -1165,6 +1689,10 @@ export interface ConfigurationStrict { | boolean | "error" | { + /** + * Rule severity + */ + severity?: "error"; /** * Allow autolinks */ @@ -1197,6 +1725,10 @@ export interface ConfigurationStrict { | boolean | "error" | { + /** + * Rule severity + */ + severity?: "error"; /** * Table pipe style */ @@ -1209,6 +1741,10 @@ export interface ConfigurationStrict { | boolean | "error" | { + /** + * Rule severity + */ + severity?: "error"; /** * Table pipe style */ @@ -1217,19 +1753,51 @@ export interface ConfigurationStrict { /** * MD056/table-column-count : Table column count : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md056.md */ - MD056?: boolean | "error"; + MD056?: + | boolean + | "error" + | { + /** + * Rule severity + */ + severity?: "error"; + }; /** * MD056/table-column-count : Table column count : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md056.md */ - "table-column-count"?: boolean | "error"; + "table-column-count"?: + | boolean + | "error" + | { + /** + * Rule severity + */ + severity?: "error"; + }; /** * MD058/blanks-around-tables : Tables should be surrounded by blank lines : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md058.md */ - MD058?: boolean | "error"; + MD058?: + | boolean + | "error" + | { + /** + * Rule severity + */ + severity?: "error"; + }; /** * MD058/blanks-around-tables : Tables should be surrounded by blank lines : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md058.md */ - "blanks-around-tables"?: boolean | "error"; + "blanks-around-tables"?: + | boolean + | "error" + | { + /** + * Rule severity + */ + severity?: "error"; + }; /** * MD059/descriptive-link-text : Link text should be descriptive : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md059.md */ @@ -1237,6 +1805,10 @@ export interface ConfigurationStrict { | boolean | "error" | { + /** + * Rule severity + */ + severity?: "error"; /** * Prohibited link texts */ @@ -1249,6 +1821,10 @@ export interface ConfigurationStrict { | boolean | "error" | { + /** + * Rule severity + */ + severity?: "error"; /** * Prohibited link texts */ @@ -1261,6 +1837,10 @@ export interface ConfigurationStrict { | boolean | "error" | { + /** + * Rule severity + */ + severity?: "error"; /** * Table column style */ @@ -1273,6 +1853,10 @@ export interface ConfigurationStrict { | boolean | "error" | { + /** + * Rule severity + */ + severity?: "error"; /** * Table column style */ diff --git a/lib/markdownlint.mjs b/lib/markdownlint.mjs index 50a30497..2556a250 100644 --- a/lib/markdownlint.mjs +++ b/lib/markdownlint.mjs @@ -262,9 +262,9 @@ function getEffectiveConfig(ruleList, config, aliasToRuleNames) { for (const key of Object.keys(config)) { let value = config[key]; if (value) { - if (!(value instanceof Object)) { - value = {}; - } + value = (value instanceof Object) ? + Object.fromEntries(Object.entries(value).filter(([ k ]) => k !== "severity")) : + {}; } else { value = false; } diff --git a/schema/build-config-example.mjs b/schema/build-config-example.mjs index 9e259b6d..1c99dfa1 100644 --- a/schema/build-config-example.mjs +++ b/schema/build-config-example.mjs @@ -6,14 +6,20 @@ import yaml from "js-yaml"; import { __dirname, importWithTypeJson } from "../test/esm-helpers.mjs"; const configSchema = await importWithTypeJson(import.meta, "../schema/markdownlint-config-schema.json"); +/** @type {Object} */ const configExample = {}; for (const rule in configSchema.properties) { if (/^(?:MD\d{3}|default|extends)$/.test(rule)) { const properties = configSchema.properties[rule]; configExample[rule + "-description"] = properties.description; configExample[rule] = properties.default; - const subproperties = properties.oneOf?.at(-1).properties; - if (subproperties) { + const subproperties = Object.fromEntries( + Object.entries( + properties.oneOf?.at(-1).properties || [] + ).filter(([ key ]) => key !== "severity") + ); + if (Object.keys(subproperties).length > 0) { + /** @type {Object} */ const ruleExample = {}; // eslint-disable-next-line guard-for-in for (const property in subproperties) { @@ -26,6 +32,13 @@ for (const rule in configSchema.properties) { } } +/** + * Transforms comments to use the specified prefix. + * + * @param {string} input Markdown input. + * @param {string} commentPrefix Comment prefix. + * @returns {string} Transformed input. + */ const transformComments = (input, commentPrefix) => ( commentPrefix + " Example markdownlint configuration with all properties set to their default value\n" + diff --git a/schema/build-config-schema.mjs b/schema/build-config-schema.mjs index 3c2183fc..1ccc159f 100644 --- a/schema/build-config-schema.mjs +++ b/schema/build-config-schema.mjs @@ -70,575 +70,577 @@ for (const rule of rules) { ], "default": true }; - /** @type {{type: "object", additionalProperties: boolean, properties?: object}} */ const subscheme = { "type": "object", - "additionalProperties": false + "additionalProperties": false, + "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + } + } }; - let custom = true; + scheme.oneOf.push(subscheme); + /* eslint-disable camelcase */ switch (ruleName) { case "MD001": - subscheme.properties = { - "front_matter_title": { - "description": "RegExp for matching title in front matter", - "type": "string", - "default": "^\\s*title\\s*[:=]" - } + // @ts-ignore + subscheme.properties.front_matter_title = { + "description": "RegExp for matching title in front matter", + "type": "string", + "default": "^\\s*title\\s*[:=]" }; break; case "MD003": - subscheme.properties = { - "style": { - "description": "Heading style", - "type": "string", - "enum": [ - "consistent", - "atx", - "atx_closed", - "setext", - "setext_with_atx", - "setext_with_atx_closed" - ], - "default": "consistent" - } + // @ts-ignore + subscheme.properties.style = { + "description": "Heading style", + "type": "string", + "enum": [ + "consistent", + "atx", + "atx_closed", + "setext", + "setext_with_atx", + "setext_with_atx_closed" + ], + "default": "consistent" }; break; case "MD004": - subscheme.properties = { - "style": { - "description": "List style", - "type": "string", - "enum": [ - "consistent", - "asterisk", - "plus", - "dash", - "sublist" - ], - "default": "consistent" - } + // @ts-ignore + subscheme.properties.style = { + "description": "List style", + "type": "string", + "enum": [ + "consistent", + "asterisk", + "plus", + "dash", + "sublist" + ], + "default": "consistent" }; break; case "MD007": - subscheme.properties = { - "indent": { - "description": "Spaces for indent", - "type": "integer", - "minimum": 1, - "default": 2 - }, - "start_indented": { - "description": "Whether to indent the first level of the list", - "type": "boolean", - "default": false - }, - "start_indent": { - "description": - "Spaces for first level indent (when start_indented is set)", - "type": "integer", - "minimum": 1, - "default": 2 - } + // @ts-ignore + subscheme.properties.indent = { + "description": "Spaces for indent", + "type": "integer", + "minimum": 1, + "default": 2 + }; + // @ts-ignore + subscheme.properties.start_indented = { + "description": "Whether to indent the first level of the list", + "type": "boolean", + "default": false + }; + // @ts-ignore + subscheme.properties.start_indent = { + "description": + "Spaces for first level indent (when start_indented is set)", + "type": "integer", + "minimum": 1, + "default": 2 }; break; case "MD009": - subscheme.properties = { - "br_spaces": { - "description": "Spaces for line break", - "type": "integer", - "minimum": 0, - "default": 2 - }, - "list_item_empty_lines": { - "description": "Allow spaces for empty lines in list items", - "type": "boolean", - "default": false - }, - "strict": { - "description": "Include unnecessary breaks", - "type": "boolean", - "default": false - } + // @ts-ignore + subscheme.properties.br_spaces = { + "description": "Spaces for line break", + "type": "integer", + "minimum": 0, + "default": 2 + }; + // @ts-ignore + subscheme.properties.list_item_empty_lines = { + "description": "Allow spaces for empty lines in list items", + "type": "boolean", + "default": false + }; + // @ts-ignore + subscheme.properties.strict = { + "description": "Include unnecessary breaks", + "type": "boolean", + "default": false }; break; case "MD010": - subscheme.properties = { - "code_blocks": { - "description": "Include code blocks", - "type": "boolean", - "default": true + // @ts-ignore + subscheme.properties.code_blocks = { + "description": "Include code blocks", + "type": "boolean", + "default": true + }; + // @ts-ignore + subscheme.properties.ignore_code_languages = { + "description": "Fenced code languages to ignore", + "type": "array", + "items": { + "type": "string" }, - "ignore_code_languages": { - "description": "Fenced code languages to ignore", - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "spaces_per_tab": { - "description": "Number of spaces for each hard tab", - "type": "integer", - "minimum": 0, - "default": 1 - } + "default": [] + }; + // @ts-ignore + subscheme.properties.spaces_per_tab = { + "description": "Number of spaces for each hard tab", + "type": "integer", + "minimum": 0, + "default": 1 }; break; case "MD012": - subscheme.properties = { - "maximum": { - "description": "Consecutive blank lines", - "type": "integer", - "minimum": 1, - "default": 1 - } + // @ts-ignore + subscheme.properties.maximum = { + "description": "Consecutive blank lines", + "type": "integer", + "minimum": 1, + "default": 1 }; break; case "MD013": - subscheme.properties = { - "line_length": { - "description": "Number of characters", - "type": "integer", - "minimum": 1, - "default": 80 - }, - "heading_line_length": { - "description": "Number of characters for headings", - "type": "integer", - "minimum": 1, - "default": 80 - }, - "code_block_line_length": { - "description": "Number of characters for code blocks", - "type": "integer", - "minimum": 1, - "default": 80 - }, - "code_blocks": { - "description": "Include code blocks", - "type": "boolean", - "default": true - }, - "tables": { - "description": "Include tables", - "type": "boolean", - "default": true - }, - "headings": { - "description": "Include headings", - "type": "boolean", - "default": true - }, - "strict": { - "description": "Strict length checking", - "type": "boolean", - "default": false - }, - "stern": { - "description": "Stern length checking", - "type": "boolean", - "default": false - } + // @ts-ignore + subscheme.properties.line_length = { + "description": "Number of characters", + "type": "integer", + "minimum": 1, + "default": 80 + }; + // @ts-ignore + subscheme.properties.heading_line_length = { + "description": "Number of characters for headings", + "type": "integer", + "minimum": 1, + "default": 80 + }; + // @ts-ignore + subscheme.properties.code_block_line_length = { + "description": "Number of characters for code blocks", + "type": "integer", + "minimum": 1, + "default": 80 + }; + // @ts-ignore + subscheme.properties.code_blocks = { + "description": "Include code blocks", + "type": "boolean", + "default": true + }; + // @ts-ignore + subscheme.properties.tables = { + "description": "Include tables", + "type": "boolean", + "default": true + }; + // @ts-ignore + subscheme.properties.headings = { + "description": "Include headings", + "type": "boolean", + "default": true + }; + // @ts-ignore + subscheme.properties.strict = { + "description": "Strict length checking", + "type": "boolean", + "default": false + }; + // @ts-ignore + subscheme.properties.stern = { + "description": "Stern length checking", + "type": "boolean", + "default": false }; break; case "MD022": - subscheme.properties = { - "lines_above": { - "description": "Blank lines above heading", - "type": [ - "integer", - "array" - ], - "items": { - "type": "integer" - }, - "minimum": -1, - "default": 1 + // @ts-ignore + subscheme.properties.lines_above = { + "description": "Blank lines above heading", + "type": [ + "integer", + "array" + ], + "items": { + "type": "integer" }, - "lines_below": { - "description": "Blank lines below heading", - "type": [ - "integer", - "array" - ], - "items": { - "type": "integer" - }, - "minimum": -1, - "default": 1 - } + "minimum": -1, + "default": 1 + }; + // @ts-ignore + subscheme.properties.lines_below = { + "description": "Blank lines below heading", + "type": [ + "integer", + "array" + ], + "items": { + "type": "integer" + }, + "minimum": -1, + "default": 1 }; break; case "MD024": - subscheme.properties = { - "siblings_only": { - "description": "Only check sibling headings", - "type": "boolean", - "default": false - } + // @ts-ignore + subscheme.properties.siblings_only = { + "description": "Only check sibling headings", + "type": "boolean", + "default": false }; break; case "MD026": case "MD036": - subscheme.properties = { - "punctuation": { - "description": "Punctuation characters", - "type": "string", - "default": (ruleName === "MD026") ? ".,;:!。,;:!" : ".,;:!?。,;:!?" - } + // @ts-ignore + subscheme.properties.punctuation = { + "description": "Punctuation characters", + "type": "string", + "default": (ruleName === "MD026") ? ".,;:!。,;:!" : ".,;:!?。,;:!?" }; break; case "MD027": - subscheme.properties = { - "list_items": { - "description": "Include list items", - "type": "boolean", - "default": true - } + // @ts-ignore + subscheme.properties.list_items = { + "description": "Include list items", + "type": "boolean", + "default": true }; break; case "MD029": - subscheme.properties = { - "style": { - "description": "List style", - "type": "string", - "enum": [ - "one", - "ordered", - "one_or_ordered", - "zero" - ], - "default": "one_or_ordered" - } + // @ts-ignore + subscheme.properties.style = { + "description": "List style", + "type": "string", + "enum": [ + "one", + "ordered", + "one_or_ordered", + "zero" + ], + "default": "one_or_ordered" }; break; case "MD030": - subscheme.properties = { - "ul_single": { - "description": "Spaces for single-line unordered list items", - "type": "integer", - "minimum": 1, - "default": 1 - }, - "ol_single": { - "description": "Spaces for single-line ordered list items", - "type": "integer", - "minimum": 1, - "default": 1 - }, - "ul_multi": { - "description": "Spaces for multi-line unordered list items", - "type": "integer", - "minimum": 1, - "default": 1 - }, - "ol_multi": { - "description": "Spaces for multi-line ordered list items", - "type": "integer", - "minimum": 1, - "default": 1 - } + // @ts-ignore + subscheme.properties.ul_single = { + "description": "Spaces for single-line unordered list items", + "type": "integer", + "minimum": 1, + "default": 1 + }; + // @ts-ignore + subscheme.properties.ol_single = { + "description": "Spaces for single-line ordered list items", + "type": "integer", + "minimum": 1, + "default": 1 + }; + // @ts-ignore + subscheme.properties.ul_multi = { + "description": "Spaces for multi-line unordered list items", + "type": "integer", + "minimum": 1, + "default": 1 + }; + // @ts-ignore + subscheme.properties.ol_multi = { + "description": "Spaces for multi-line ordered list items", + "type": "integer", + "minimum": 1, + "default": 1 }; break; case "MD031": - subscheme.properties = { - "list_items": { - "description": "Include list items", - "type": "boolean", - "default": true - } + // @ts-ignore + subscheme.properties.list_items = { + "description": "Include list items", + "type": "boolean", + "default": true }; break; case "MD033": - subscheme.properties = { - "allowed_elements": { - "description": "Allowed elements", - "type": "array", - "items": { - "type": "string" - }, - "default": [] + // @ts-ignore + subscheme.properties.allowed_elements = { + "description": "Allowed elements", + "type": "array", + "items": { + "type": "string" }, - "table_allowed_elements": { - "description": "Allowed elements in tables", - "type": "array", - "items": { - "type": "string" - }, - "default": [] - } + "default": [] + }; + // @ts-ignore + subscheme.properties.table_allowed_elements = { + "description": "Allowed elements in tables", + "type": "array", + "items": { + "type": "string" + }, + "default": [] }; break; case "MD035": - subscheme.properties = { - "style": { - "description": "Horizontal rule style", - "type": "string", - "default": "consistent" - } + // @ts-ignore + subscheme.properties.style = { + "description": "Horizontal rule style", + "type": "string", + "default": "consistent" }; break; case "MD040": - subscheme.properties = { - "allowed_languages": { - "description": "List of languages", - "type": "array", - "items": { - "type": "string" - }, - "default": [] + // @ts-ignore + subscheme.properties.allowed_languages = { + "description": "List of languages", + "type": "array", + "items": { + "type": "string" }, - "language_only": { - "description": "Require language only", - "type": "boolean", - "default": false - } + "default": [] + }; + // @ts-ignore + subscheme.properties.language_only = { + "description": "Require language only", + "type": "boolean", + "default": false }; break; case "MD025": case "MD041": - { - const md041Properties = (ruleName === "MD041") ? - { - "allow_preamble": { - "description": "Allow content before first heading", - "type": "boolean", - "default": false - } - } : - {}; - subscheme.properties = { - ...md041Properties, - "front_matter_title": { - "description": "RegExp for matching title in front matter", - "type": "string", - "default": "^\\s*title\\s*[:=]" - }, - "level": { - "description": "Heading level", - "type": "integer", - "minimum": 1, - "maximum": 6, - "default": 1 - } - }; - } - break; - case "MD043": - subscheme.properties = { - "headings": { - "description": "List of headings", - "type": "array", - "items": { - "type": "string", - "pattern": "^(\\*|\\+|\\?|#{1,6}\\s+\\S.*)$" - }, - "default": [] - }, - "match_case": { - "description": "Match case of headings", + if (ruleName === "MD041") { + // @ts-ignore + subscheme.properties.allow_preamble = { + "description": "Allow content before first heading", "type": "boolean", "default": false - } + }; + } + // @ts-ignore + subscheme.properties.front_matter_title = { + "description": "RegExp for matching title in front matter", + "type": "string", + "default": "^\\s*title\\s*[:=]" + }; + // @ts-ignore + subscheme.properties.level = { + "description": "Heading level", + "type": "integer", + "minimum": 1, + "maximum": 6, + "default": 1 + }; + break; + case "MD043": + // @ts-ignore + subscheme.properties.headings = { + "description": "List of headings", + "type": "array", + "items": { + "type": "string", + "pattern": "^(\\*|\\+|\\?|#{1,6}\\s+\\S.*)$" + }, + "default": [] + }; + // @ts-ignore + subscheme.properties.match_case = { + "description": "Match case of headings", + "type": "boolean", + "default": false }; break; case "MD044": - subscheme.properties = { - "names": { - "description": "List of proper names", - "type": "array", - "items": { - "type": "string" - }, - "default": [] + // @ts-ignore + subscheme.properties.names = { + "description": "List of proper names", + "type": "array", + "items": { + "type": "string" }, - "code_blocks": { - "description": "Include code blocks", - "type": "boolean", - "default": true - }, - "html_elements": { - "description": "Include HTML elements", - "type": "boolean", - "default": true - } + "default": [] + }; + // @ts-ignore + subscheme.properties.code_blocks = { + "description": "Include code blocks", + "type": "boolean", + "default": true + }; + // @ts-ignore + subscheme.properties.html_elements = { + "description": "Include HTML elements", + "type": "boolean", + "default": true }; break; case "MD046": - subscheme.properties = { - "style": { - "description": "Block style", - "type": "string", - "enum": [ - "consistent", - "fenced", - "indented" - ], - "default": "consistent" - } + // @ts-ignore + subscheme.properties.style = { + "description": "Block style", + "type": "string", + "enum": [ + "consistent", + "fenced", + "indented" + ], + "default": "consistent" }; break; case "MD048": - subscheme.properties = { - "style": { - "description": "Code fence style", - "type": "string", - "enum": [ - "consistent", - "backtick", - "tilde" - ], - "default": "consistent" - } + // @ts-ignore + subscheme.properties.style = { + "description": "Code fence style", + "type": "string", + "enum": [ + "consistent", + "backtick", + "tilde" + ], + "default": "consistent" }; break; case "MD049": case "MD050": - subscheme.properties = { - "style": { - "description": (ruleName === "MD049") ? "Emphasis style" : "Strong style", - "type": "string", - "enum": [ - "consistent", - "asterisk", - "underscore" - ], - "default": "consistent" - } + // @ts-ignore + subscheme.properties.style = { + "description": (ruleName === "MD049") ? "Emphasis style" : "Strong style", + "type": "string", + "enum": [ + "consistent", + "asterisk", + "underscore" + ], + "default": "consistent" }; break; case "MD051": - subscheme.properties = { - "ignore_case": { - "description": "Ignore case of fragments", - "type": "boolean", - "default": false - }, - "ignored_pattern": { - "description": "Pattern for ignoring additional fragments", - "type": "string", - "default": "" - } + // @ts-ignore + subscheme.properties.ignore_case = { + "description": "Ignore case of fragments", + "type": "boolean", + "default": false + }; + // @ts-ignore + subscheme.properties.ignored_pattern = { + "description": "Pattern for ignoring additional fragments", + "type": "string", + "default": "" }; break; case "MD052": - subscheme.properties = { - "ignored_labels": { - "description": "Ignored link labels", - "type": "array", - "items": { - "type": "string" - }, - "default": [ "x" ] + // @ts-ignore + subscheme.properties.ignored_labels = { + "description": "Ignored link labels", + "type": "array", + "items": { + "type": "string" }, - "shortcut_syntax": { - "description": "Include shortcut syntax", - "type": "boolean", - "default": false - } + "default": [ "x" ] + }; + // @ts-ignore + subscheme.properties.shortcut_syntax = { + "description": "Include shortcut syntax", + "type": "boolean", + "default": false }; break; case "MD053": - subscheme.properties = { - "ignored_definitions": { - "description": "Ignored definitions", - "type": "array", - "items": { - "type": "string" - }, - "default": [ "//" ] - } + // @ts-ignore + subscheme.properties.ignored_definitions = { + "description": "Ignored definitions", + "type": "array", + "items": { + "type": "string" + }, + "default": [ "//" ] }; break; case "MD054": - subscheme.properties = { - "autolink": { - "description": "Allow autolinks", - "type": "boolean", - "default": true - }, - "inline": { - "description": "Allow inline links and images", - "type": "boolean", - "default": true - }, - "full": { - "description": "Allow full reference links and images", - "type": "boolean", - "default": true - }, - "collapsed": { - "description": "Allow collapsed reference links and images", - "type": "boolean", - "default": true - }, - "shortcut": { - "description": "Allow shortcut reference links and images", - "type": "boolean", - "default": true - }, - "url_inline": { - "description": "Allow URLs as inline links", - "type": "boolean", - "default": true - } + // @ts-ignore + subscheme.properties.autolink = { + "description": "Allow autolinks", + "type": "boolean", + "default": true + }; + // @ts-ignore + subscheme.properties.inline = { + "description": "Allow inline links and images", + "type": "boolean", + "default": true + }; + // @ts-ignore + subscheme.properties.full = { + "description": "Allow full reference links and images", + "type": "boolean", + "default": true + }; + // @ts-ignore + subscheme.properties.collapsed = { + "description": "Allow collapsed reference links and images", + "type": "boolean", + "default": true + }; + // @ts-ignore + subscheme.properties.shortcut = { + "description": "Allow shortcut reference links and images", + "type": "boolean", + "default": true + }; + // @ts-ignore + subscheme.properties.url_inline = { + "description": "Allow URLs as inline links", + "type": "boolean", + "default": true }; break; case "MD055": - subscheme.properties = { - "style": { - "description": "Table pipe style", - "type": "string", - "enum": [ - "consistent", - "leading_only", - "trailing_only", - "leading_and_trailing", - "no_leading_or_trailing" - ], - "default": "consistent" - } + // @ts-ignore + subscheme.properties.style = { + "description": "Table pipe style", + "type": "string", + "enum": [ + "consistent", + "leading_only", + "trailing_only", + "leading_and_trailing", + "no_leading_or_trailing" + ], + "default": "consistent" }; break; case "MD059": - subscheme.properties = { - "prohibited_texts": { - "description": "Prohibited link texts", - "type": "array", - "items": { - "type": "string" - }, - "default": [ - "click here", - "here", - "link", - "more" - ] - } + // @ts-ignore + subscheme.properties.prohibited_texts = { + "description": "Prohibited link texts", + "type": "array", + "items": { + "type": "string" + }, + "default": [ + "click here", + "here", + "link", + "more" + ] }; break; case "MD060": - subscheme.properties = { - "style": { - "description": "Table column style", - "type": "string", - "enum": [ - "any", - "aligned", - "compact", - "tight" - ], - "default": "any" - } + // @ts-ignore + subscheme.properties.style = { + "description": "Table column style", + "type": "string", + "enum": [ + "any", + "aligned", + "compact", + "tight" + ], + "default": "any" }; break; default: - custom = false; break; } - if (custom) { - scheme.oneOf.push(subscheme); - } + /* eslint-enable camelcase */ for (const name of rule.names) { schema.properties[name] = scheme; // Using $ref causes rule aliases not to get JSDoc comments diff --git a/schema/markdownlint-config-schema-strict.json b/schema/markdownlint-config-schema-strict.json index 1fe3a027..debc099d 100644 --- a/schema/markdownlint-config-schema-strict.json +++ b/schema/markdownlint-config-schema-strict.json @@ -46,6 +46,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "front_matter_title": { "description": "RegExp for matching title in front matter", "type": "string", @@ -71,6 +79,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "front_matter_title": { "description": "RegExp for matching title in front matter", "type": "string", @@ -96,6 +112,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "style": { "description": "Heading style", "type": "string", @@ -129,6 +153,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "style": { "description": "Heading style", "type": "string", @@ -162,6 +194,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "style": { "description": "List style", "type": "string", @@ -194,6 +234,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "style": { "description": "List style", "type": "string", @@ -221,6 +269,20 @@ "enum": [ "error" ] + }, + { + "type": "object", + "additionalProperties": false, + "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + } + } } ], "default": true @@ -235,6 +297,20 @@ "enum": [ "error" ] + }, + { + "type": "object", + "additionalProperties": false, + "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + } + } } ], "default": true @@ -254,6 +330,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "indent": { "description": "Spaces for indent", "type": "integer", @@ -291,6 +375,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "indent": { "description": "Spaces for indent", "type": "integer", @@ -328,6 +420,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "br_spaces": { "description": "Spaces for line break", "type": "integer", @@ -364,6 +464,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "br_spaces": { "description": "Spaces for line break", "type": "integer", @@ -400,6 +508,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "code_blocks": { "description": "Include code blocks", "type": "boolean", @@ -439,6 +555,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "code_blocks": { "description": "Include code blocks", "type": "boolean", @@ -473,6 +597,20 @@ "enum": [ "error" ] + }, + { + "type": "object", + "additionalProperties": false, + "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + } + } } ], "default": true @@ -487,6 +625,20 @@ "enum": [ "error" ] + }, + { + "type": "object", + "additionalProperties": false, + "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + } + } } ], "default": true @@ -506,6 +658,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "maximum": { "description": "Consecutive blank lines", "type": "integer", @@ -532,6 +692,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "maximum": { "description": "Consecutive blank lines", "type": "integer", @@ -558,6 +726,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "line_length": { "description": "Number of characters", "type": "integer", @@ -621,6 +797,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "line_length": { "description": "Number of characters", "type": "integer", @@ -679,6 +863,20 @@ "enum": [ "error" ] + }, + { + "type": "object", + "additionalProperties": false, + "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + } + } } ], "default": true @@ -693,6 +891,20 @@ "enum": [ "error" ] + }, + { + "type": "object", + "additionalProperties": false, + "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + } + } } ], "default": true @@ -707,6 +919,20 @@ "enum": [ "error" ] + }, + { + "type": "object", + "additionalProperties": false, + "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + } + } } ], "default": true @@ -721,6 +947,20 @@ "enum": [ "error" ] + }, + { + "type": "object", + "additionalProperties": false, + "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + } + } } ], "default": true @@ -735,6 +975,20 @@ "enum": [ "error" ] + }, + { + "type": "object", + "additionalProperties": false, + "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + } + } } ], "default": true @@ -749,6 +1003,20 @@ "enum": [ "error" ] + }, + { + "type": "object", + "additionalProperties": false, + "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + } + } } ], "default": true @@ -763,6 +1031,20 @@ "enum": [ "error" ] + }, + { + "type": "object", + "additionalProperties": false, + "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + } + } } ], "default": true @@ -777,6 +1059,20 @@ "enum": [ "error" ] + }, + { + "type": "object", + "additionalProperties": false, + "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + } + } } ], "default": true @@ -791,6 +1087,20 @@ "enum": [ "error" ] + }, + { + "type": "object", + "additionalProperties": false, + "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + } + } } ], "default": true @@ -805,6 +1115,20 @@ "enum": [ "error" ] + }, + { + "type": "object", + "additionalProperties": false, + "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + } + } } ], "default": true @@ -824,6 +1148,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "lines_above": { "description": "Blank lines above heading", "type": [ @@ -868,6 +1200,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "lines_above": { "description": "Blank lines above heading", "type": [ @@ -907,6 +1247,20 @@ "enum": [ "error" ] + }, + { + "type": "object", + "additionalProperties": false, + "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + } + } } ], "default": true @@ -921,6 +1275,20 @@ "enum": [ "error" ] + }, + { + "type": "object", + "additionalProperties": false, + "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + } + } } ], "default": true @@ -940,6 +1308,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "siblings_only": { "description": "Only check sibling headings", "type": "boolean", @@ -965,6 +1341,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "siblings_only": { "description": "Only check sibling headings", "type": "boolean", @@ -990,6 +1374,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "front_matter_title": { "description": "RegExp for matching title in front matter", "type": "string", @@ -1022,6 +1414,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "front_matter_title": { "description": "RegExp for matching title in front matter", "type": "string", @@ -1054,6 +1454,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "front_matter_title": { "description": "RegExp for matching title in front matter", "type": "string", @@ -1086,6 +1494,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "punctuation": { "description": "Punctuation characters", "type": "string", @@ -1111,6 +1527,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "punctuation": { "description": "Punctuation characters", "type": "string", @@ -1136,6 +1560,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "list_items": { "description": "Include list items", "type": "boolean", @@ -1161,6 +1593,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "list_items": { "description": "Include list items", "type": "boolean", @@ -1181,6 +1621,20 @@ "enum": [ "error" ] + }, + { + "type": "object", + "additionalProperties": false, + "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + } + } } ], "default": true @@ -1195,6 +1649,20 @@ "enum": [ "error" ] + }, + { + "type": "object", + "additionalProperties": false, + "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + } + } } ], "default": true @@ -1214,6 +1682,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "style": { "description": "List style", "type": "string", @@ -1245,6 +1721,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "style": { "description": "List style", "type": "string", @@ -1276,6 +1760,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "ul_single": { "description": "Spaces for single-line unordered list items", "type": "integer", @@ -1320,6 +1812,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "ul_single": { "description": "Spaces for single-line unordered list items", "type": "integer", @@ -1364,6 +1864,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "list_items": { "description": "Include list items", "type": "boolean", @@ -1389,6 +1897,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "list_items": { "description": "Include list items", "type": "boolean", @@ -1409,6 +1925,20 @@ "enum": [ "error" ] + }, + { + "type": "object", + "additionalProperties": false, + "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + } + } } ], "default": true @@ -1423,6 +1953,20 @@ "enum": [ "error" ] + }, + { + "type": "object", + "additionalProperties": false, + "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + } + } } ], "default": true @@ -1442,6 +1986,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "allowed_elements": { "description": "Allowed elements", "type": "array", @@ -1478,6 +2030,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "allowed_elements": { "description": "Allowed elements", "type": "array", @@ -1509,6 +2069,20 @@ "enum": [ "error" ] + }, + { + "type": "object", + "additionalProperties": false, + "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + } + } } ], "default": true @@ -1523,6 +2097,20 @@ "enum": [ "error" ] + }, + { + "type": "object", + "additionalProperties": false, + "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + } + } } ], "default": true @@ -1542,6 +2130,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "style": { "description": "Horizontal rule style", "type": "string", @@ -1567,6 +2163,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "style": { "description": "Horizontal rule style", "type": "string", @@ -1592,6 +2196,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "punctuation": { "description": "Punctuation characters", "type": "string", @@ -1617,6 +2229,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "punctuation": { "description": "Punctuation characters", "type": "string", @@ -1637,6 +2257,20 @@ "enum": [ "error" ] + }, + { + "type": "object", + "additionalProperties": false, + "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + } + } } ], "default": true @@ -1651,6 +2285,20 @@ "enum": [ "error" ] + }, + { + "type": "object", + "additionalProperties": false, + "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + } + } } ], "default": true @@ -1665,6 +2313,20 @@ "enum": [ "error" ] + }, + { + "type": "object", + "additionalProperties": false, + "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + } + } } ], "default": true @@ -1679,6 +2341,20 @@ "enum": [ "error" ] + }, + { + "type": "object", + "additionalProperties": false, + "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + } + } } ], "default": true @@ -1693,6 +2369,20 @@ "enum": [ "error" ] + }, + { + "type": "object", + "additionalProperties": false, + "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + } + } } ], "default": true @@ -1707,6 +2397,20 @@ "enum": [ "error" ] + }, + { + "type": "object", + "additionalProperties": false, + "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + } + } } ], "default": true @@ -1726,6 +2430,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "allowed_languages": { "description": "List of languages", "type": "array", @@ -1759,6 +2471,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "allowed_languages": { "description": "List of languages", "type": "array", @@ -1792,6 +2512,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "allow_preamble": { "description": "Allow content before first heading", "type": "boolean", @@ -1829,6 +2557,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "allow_preamble": { "description": "Allow content before first heading", "type": "boolean", @@ -1866,6 +2602,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "allow_preamble": { "description": "Allow content before first heading", "type": "boolean", @@ -1898,6 +2642,20 @@ "enum": [ "error" ] + }, + { + "type": "object", + "additionalProperties": false, + "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + } + } } ], "default": true @@ -1912,6 +2670,20 @@ "enum": [ "error" ] + }, + { + "type": "object", + "additionalProperties": false, + "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + } + } } ], "default": true @@ -1931,6 +2703,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "headings": { "description": "List of headings", "type": "array", @@ -1965,6 +2745,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "headings": { "description": "List of headings", "type": "array", @@ -1999,6 +2787,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "names": { "description": "List of proper names", "type": "array", @@ -2037,6 +2833,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "names": { "description": "List of proper names", "type": "array", @@ -2070,6 +2874,20 @@ "enum": [ "error" ] + }, + { + "type": "object", + "additionalProperties": false, + "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + } + } } ], "default": true @@ -2084,6 +2902,20 @@ "enum": [ "error" ] + }, + { + "type": "object", + "additionalProperties": false, + "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + } + } } ], "default": true @@ -2103,6 +2935,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "style": { "description": "Block style", "type": "string", @@ -2133,6 +2973,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "style": { "description": "Block style", "type": "string", @@ -2158,6 +3006,20 @@ "enum": [ "error" ] + }, + { + "type": "object", + "additionalProperties": false, + "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + } + } } ], "default": true @@ -2172,6 +3034,20 @@ "enum": [ "error" ] + }, + { + "type": "object", + "additionalProperties": false, + "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + } + } } ], "default": true @@ -2191,6 +3067,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "style": { "description": "Code fence style", "type": "string", @@ -2221,6 +3105,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "style": { "description": "Code fence style", "type": "string", @@ -2251,6 +3143,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "style": { "description": "Emphasis style", "type": "string", @@ -2281,6 +3181,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "style": { "description": "Emphasis style", "type": "string", @@ -2311,6 +3219,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "style": { "description": "Strong style", "type": "string", @@ -2341,6 +3257,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "style": { "description": "Strong style", "type": "string", @@ -2371,6 +3295,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "ignore_case": { "description": "Ignore case of fragments", "type": "boolean", @@ -2401,6 +3333,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "ignore_case": { "description": "Ignore case of fragments", "type": "boolean", @@ -2431,6 +3371,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "ignored_labels": { "description": "Ignored link labels", "type": "array", @@ -2466,6 +3414,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "ignored_labels": { "description": "Ignored link labels", "type": "array", @@ -2501,6 +3457,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "ignored_definitions": { "description": "Ignored definitions", "type": "array", @@ -2531,6 +3495,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "ignored_definitions": { "description": "Ignored definitions", "type": "array", @@ -2561,6 +3533,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "autolink": { "description": "Allow autolinks", "type": "boolean", @@ -2611,6 +3591,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "autolink": { "description": "Allow autolinks", "type": "boolean", @@ -2661,6 +3649,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "style": { "description": "Table pipe style", "type": "string", @@ -2693,6 +3689,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "style": { "description": "Table pipe style", "type": "string", @@ -2720,6 +3724,20 @@ "enum": [ "error" ] + }, + { + "type": "object", + "additionalProperties": false, + "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + } + } } ], "default": true @@ -2734,6 +3752,20 @@ "enum": [ "error" ] + }, + { + "type": "object", + "additionalProperties": false, + "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + } + } } ], "default": true @@ -2748,6 +3780,20 @@ "enum": [ "error" ] + }, + { + "type": "object", + "additionalProperties": false, + "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + } + } } ], "default": true @@ -2762,6 +3808,20 @@ "enum": [ "error" ] + }, + { + "type": "object", + "additionalProperties": false, + "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + } + } } ], "default": true @@ -2781,6 +3841,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "prohibited_texts": { "description": "Prohibited link texts", "type": "array", @@ -2814,6 +3882,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "prohibited_texts": { "description": "Prohibited link texts", "type": "array", @@ -2847,6 +3923,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "style": { "description": "Table column style", "type": "string", @@ -2878,6 +3962,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "style": { "description": "Table column style", "type": "string", diff --git a/schema/markdownlint-config-schema.json b/schema/markdownlint-config-schema.json index bc084f13..8b6d5d0d 100644 --- a/schema/markdownlint-config-schema.json +++ b/schema/markdownlint-config-schema.json @@ -46,6 +46,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "front_matter_title": { "description": "RegExp for matching title in front matter", "type": "string", @@ -71,6 +79,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "front_matter_title": { "description": "RegExp for matching title in front matter", "type": "string", @@ -96,6 +112,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "style": { "description": "Heading style", "type": "string", @@ -129,6 +153,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "style": { "description": "Heading style", "type": "string", @@ -162,6 +194,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "style": { "description": "List style", "type": "string", @@ -194,6 +234,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "style": { "description": "List style", "type": "string", @@ -221,6 +269,20 @@ "enum": [ "error" ] + }, + { + "type": "object", + "additionalProperties": false, + "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + } + } } ], "default": true @@ -235,6 +297,20 @@ "enum": [ "error" ] + }, + { + "type": "object", + "additionalProperties": false, + "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + } + } } ], "default": true @@ -254,6 +330,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "indent": { "description": "Spaces for indent", "type": "integer", @@ -291,6 +375,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "indent": { "description": "Spaces for indent", "type": "integer", @@ -328,6 +420,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "br_spaces": { "description": "Spaces for line break", "type": "integer", @@ -364,6 +464,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "br_spaces": { "description": "Spaces for line break", "type": "integer", @@ -400,6 +508,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "code_blocks": { "description": "Include code blocks", "type": "boolean", @@ -439,6 +555,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "code_blocks": { "description": "Include code blocks", "type": "boolean", @@ -473,6 +597,20 @@ "enum": [ "error" ] + }, + { + "type": "object", + "additionalProperties": false, + "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + } + } } ], "default": true @@ -487,6 +625,20 @@ "enum": [ "error" ] + }, + { + "type": "object", + "additionalProperties": false, + "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + } + } } ], "default": true @@ -506,6 +658,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "maximum": { "description": "Consecutive blank lines", "type": "integer", @@ -532,6 +692,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "maximum": { "description": "Consecutive blank lines", "type": "integer", @@ -558,6 +726,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "line_length": { "description": "Number of characters", "type": "integer", @@ -621,6 +797,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "line_length": { "description": "Number of characters", "type": "integer", @@ -679,6 +863,20 @@ "enum": [ "error" ] + }, + { + "type": "object", + "additionalProperties": false, + "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + } + } } ], "default": true @@ -693,6 +891,20 @@ "enum": [ "error" ] + }, + { + "type": "object", + "additionalProperties": false, + "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + } + } } ], "default": true @@ -707,6 +919,20 @@ "enum": [ "error" ] + }, + { + "type": "object", + "additionalProperties": false, + "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + } + } } ], "default": true @@ -721,6 +947,20 @@ "enum": [ "error" ] + }, + { + "type": "object", + "additionalProperties": false, + "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + } + } } ], "default": true @@ -735,6 +975,20 @@ "enum": [ "error" ] + }, + { + "type": "object", + "additionalProperties": false, + "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + } + } } ], "default": true @@ -749,6 +1003,20 @@ "enum": [ "error" ] + }, + { + "type": "object", + "additionalProperties": false, + "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + } + } } ], "default": true @@ -763,6 +1031,20 @@ "enum": [ "error" ] + }, + { + "type": "object", + "additionalProperties": false, + "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + } + } } ], "default": true @@ -777,6 +1059,20 @@ "enum": [ "error" ] + }, + { + "type": "object", + "additionalProperties": false, + "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + } + } } ], "default": true @@ -791,6 +1087,20 @@ "enum": [ "error" ] + }, + { + "type": "object", + "additionalProperties": false, + "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + } + } } ], "default": true @@ -805,6 +1115,20 @@ "enum": [ "error" ] + }, + { + "type": "object", + "additionalProperties": false, + "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + } + } } ], "default": true @@ -824,6 +1148,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "lines_above": { "description": "Blank lines above heading", "type": [ @@ -868,6 +1200,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "lines_above": { "description": "Blank lines above heading", "type": [ @@ -907,6 +1247,20 @@ "enum": [ "error" ] + }, + { + "type": "object", + "additionalProperties": false, + "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + } + } } ], "default": true @@ -921,6 +1275,20 @@ "enum": [ "error" ] + }, + { + "type": "object", + "additionalProperties": false, + "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + } + } } ], "default": true @@ -940,6 +1308,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "siblings_only": { "description": "Only check sibling headings", "type": "boolean", @@ -965,6 +1341,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "siblings_only": { "description": "Only check sibling headings", "type": "boolean", @@ -990,6 +1374,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "front_matter_title": { "description": "RegExp for matching title in front matter", "type": "string", @@ -1022,6 +1414,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "front_matter_title": { "description": "RegExp for matching title in front matter", "type": "string", @@ -1054,6 +1454,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "front_matter_title": { "description": "RegExp for matching title in front matter", "type": "string", @@ -1086,6 +1494,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "punctuation": { "description": "Punctuation characters", "type": "string", @@ -1111,6 +1527,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "punctuation": { "description": "Punctuation characters", "type": "string", @@ -1136,6 +1560,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "list_items": { "description": "Include list items", "type": "boolean", @@ -1161,6 +1593,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "list_items": { "description": "Include list items", "type": "boolean", @@ -1181,6 +1621,20 @@ "enum": [ "error" ] + }, + { + "type": "object", + "additionalProperties": false, + "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + } + } } ], "default": true @@ -1195,6 +1649,20 @@ "enum": [ "error" ] + }, + { + "type": "object", + "additionalProperties": false, + "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + } + } } ], "default": true @@ -1214,6 +1682,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "style": { "description": "List style", "type": "string", @@ -1245,6 +1721,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "style": { "description": "List style", "type": "string", @@ -1276,6 +1760,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "ul_single": { "description": "Spaces for single-line unordered list items", "type": "integer", @@ -1320,6 +1812,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "ul_single": { "description": "Spaces for single-line unordered list items", "type": "integer", @@ -1364,6 +1864,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "list_items": { "description": "Include list items", "type": "boolean", @@ -1389,6 +1897,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "list_items": { "description": "Include list items", "type": "boolean", @@ -1409,6 +1925,20 @@ "enum": [ "error" ] + }, + { + "type": "object", + "additionalProperties": false, + "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + } + } } ], "default": true @@ -1423,6 +1953,20 @@ "enum": [ "error" ] + }, + { + "type": "object", + "additionalProperties": false, + "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + } + } } ], "default": true @@ -1442,6 +1986,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "allowed_elements": { "description": "Allowed elements", "type": "array", @@ -1478,6 +2030,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "allowed_elements": { "description": "Allowed elements", "type": "array", @@ -1509,6 +2069,20 @@ "enum": [ "error" ] + }, + { + "type": "object", + "additionalProperties": false, + "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + } + } } ], "default": true @@ -1523,6 +2097,20 @@ "enum": [ "error" ] + }, + { + "type": "object", + "additionalProperties": false, + "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + } + } } ], "default": true @@ -1542,6 +2130,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "style": { "description": "Horizontal rule style", "type": "string", @@ -1567,6 +2163,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "style": { "description": "Horizontal rule style", "type": "string", @@ -1592,6 +2196,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "punctuation": { "description": "Punctuation characters", "type": "string", @@ -1617,6 +2229,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "punctuation": { "description": "Punctuation characters", "type": "string", @@ -1637,6 +2257,20 @@ "enum": [ "error" ] + }, + { + "type": "object", + "additionalProperties": false, + "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + } + } } ], "default": true @@ -1651,6 +2285,20 @@ "enum": [ "error" ] + }, + { + "type": "object", + "additionalProperties": false, + "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + } + } } ], "default": true @@ -1665,6 +2313,20 @@ "enum": [ "error" ] + }, + { + "type": "object", + "additionalProperties": false, + "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + } + } } ], "default": true @@ -1679,6 +2341,20 @@ "enum": [ "error" ] + }, + { + "type": "object", + "additionalProperties": false, + "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + } + } } ], "default": true @@ -1693,6 +2369,20 @@ "enum": [ "error" ] + }, + { + "type": "object", + "additionalProperties": false, + "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + } + } } ], "default": true @@ -1707,6 +2397,20 @@ "enum": [ "error" ] + }, + { + "type": "object", + "additionalProperties": false, + "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + } + } } ], "default": true @@ -1726,6 +2430,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "allowed_languages": { "description": "List of languages", "type": "array", @@ -1759,6 +2471,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "allowed_languages": { "description": "List of languages", "type": "array", @@ -1792,6 +2512,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "allow_preamble": { "description": "Allow content before first heading", "type": "boolean", @@ -1829,6 +2557,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "allow_preamble": { "description": "Allow content before first heading", "type": "boolean", @@ -1866,6 +2602,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "allow_preamble": { "description": "Allow content before first heading", "type": "boolean", @@ -1898,6 +2642,20 @@ "enum": [ "error" ] + }, + { + "type": "object", + "additionalProperties": false, + "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + } + } } ], "default": true @@ -1912,6 +2670,20 @@ "enum": [ "error" ] + }, + { + "type": "object", + "additionalProperties": false, + "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + } + } } ], "default": true @@ -1931,6 +2703,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "headings": { "description": "List of headings", "type": "array", @@ -1965,6 +2745,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "headings": { "description": "List of headings", "type": "array", @@ -1999,6 +2787,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "names": { "description": "List of proper names", "type": "array", @@ -2037,6 +2833,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "names": { "description": "List of proper names", "type": "array", @@ -2070,6 +2874,20 @@ "enum": [ "error" ] + }, + { + "type": "object", + "additionalProperties": false, + "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + } + } } ], "default": true @@ -2084,6 +2902,20 @@ "enum": [ "error" ] + }, + { + "type": "object", + "additionalProperties": false, + "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + } + } } ], "default": true @@ -2103,6 +2935,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "style": { "description": "Block style", "type": "string", @@ -2133,6 +2973,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "style": { "description": "Block style", "type": "string", @@ -2158,6 +3006,20 @@ "enum": [ "error" ] + }, + { + "type": "object", + "additionalProperties": false, + "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + } + } } ], "default": true @@ -2172,6 +3034,20 @@ "enum": [ "error" ] + }, + { + "type": "object", + "additionalProperties": false, + "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + } + } } ], "default": true @@ -2191,6 +3067,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "style": { "description": "Code fence style", "type": "string", @@ -2221,6 +3105,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "style": { "description": "Code fence style", "type": "string", @@ -2251,6 +3143,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "style": { "description": "Emphasis style", "type": "string", @@ -2281,6 +3181,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "style": { "description": "Emphasis style", "type": "string", @@ -2311,6 +3219,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "style": { "description": "Strong style", "type": "string", @@ -2341,6 +3257,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "style": { "description": "Strong style", "type": "string", @@ -2371,6 +3295,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "ignore_case": { "description": "Ignore case of fragments", "type": "boolean", @@ -2401,6 +3333,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "ignore_case": { "description": "Ignore case of fragments", "type": "boolean", @@ -2431,6 +3371,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "ignored_labels": { "description": "Ignored link labels", "type": "array", @@ -2466,6 +3414,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "ignored_labels": { "description": "Ignored link labels", "type": "array", @@ -2501,6 +3457,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "ignored_definitions": { "description": "Ignored definitions", "type": "array", @@ -2531,6 +3495,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "ignored_definitions": { "description": "Ignored definitions", "type": "array", @@ -2561,6 +3533,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "autolink": { "description": "Allow autolinks", "type": "boolean", @@ -2611,6 +3591,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "autolink": { "description": "Allow autolinks", "type": "boolean", @@ -2661,6 +3649,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "style": { "description": "Table pipe style", "type": "string", @@ -2693,6 +3689,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "style": { "description": "Table pipe style", "type": "string", @@ -2720,6 +3724,20 @@ "enum": [ "error" ] + }, + { + "type": "object", + "additionalProperties": false, + "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + } + } } ], "default": true @@ -2734,6 +3752,20 @@ "enum": [ "error" ] + }, + { + "type": "object", + "additionalProperties": false, + "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + } + } } ], "default": true @@ -2748,6 +3780,20 @@ "enum": [ "error" ] + }, + { + "type": "object", + "additionalProperties": false, + "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + } + } } ], "default": true @@ -2762,6 +3808,20 @@ "enum": [ "error" ] + }, + { + "type": "object", + "additionalProperties": false, + "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + } + } } ], "default": true @@ -2781,6 +3841,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "prohibited_texts": { "description": "Prohibited link texts", "type": "array", @@ -2814,6 +3882,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "prohibited_texts": { "description": "Prohibited link texts", "type": "array", @@ -2847,6 +3923,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "style": { "description": "Table column style", "type": "string", @@ -2878,6 +3962,14 @@ "type": "object", "additionalProperties": false, "properties": { + "severity": { + "description": "Rule severity", + "type": "string", + "enum": [ + "error" + ], + "default": "error" + }, "style": { "description": "Table column style", "type": "string", diff --git a/test/configure-file-with-severity.md b/test/configure-file-with-severity.md new file mode 100644 index 00000000..4f5cd27f --- /dev/null +++ b/test/configure-file-with-severity.md @@ -0,0 +1,58 @@ +# Configure File With Severity + +Text * text* {MD037} + +Text ` text` {MD038} + +Text [ text](.) {MD039} + ++ List item {MD004} + +Text (text)[.] {MD011} + +2. List item {MD029} + + + +Text * text* + +Text ` text` + +Text [ text](.) + ++ List item + +Text (text)[.] + +2. List item + + + +Text * text* {MD037} + +Text ` text` {MD038} + +Text [ text](.) {MD039} + ++ List item {MD004} + +Text (text)[.] {MD011} + +2. List item {MD029} + + diff --git a/test/markdownlint-test-custom-rules.mjs b/test/markdownlint-test-custom-rules.mjs index da3d5088..5da9a86a 100644 --- a/test/markdownlint-test-custom-rules.mjs +++ b/test/markdownlint-test-custom-rules.mjs @@ -29,13 +29,14 @@ test("customRulesV0", (t) => new Promise((resolve) => { }; lintAsync(options, function callback(err, actualResult) { t.falsy(err); - const expectedResult = {}; - expectedResult[customRulesMd] = { - "any-blockquote-markdown-it": [ 12 ], - "any-blockquote-micromark": [ 12 ], - "every-n-lines": [ 2, 4, 6, 10, 12 ], - "first-line": [ 1 ], - "letters-E-X": [ 3, 7 ] + const expectedResult = { + [customRulesMd]: { + "any-blockquote-markdown-it": [ 12 ], + "any-blockquote-micromark": [ 12 ], + "every-n-lines": [ 2, 4, 6, 10, 12 ], + "first-line": [ 1 ], + "letters-E-X": [ 3, 7 ] + } }; t.deepEqual(actualResult, expectedResult, "Undetected issues."); // @ts-ignore @@ -103,93 +104,94 @@ test("customRulesV1", (t) => new Promise((resolve) => { }; lintAsync(options, function callback(err, actualResult) { t.falsy(err); - const expectedResult = {}; - expectedResult[customRulesMd] = [ - { "lineNumber": 12, - "ruleName": "any-blockquote-markdown-it", - "ruleAlias": "any-blockquote-markdown-it", - "ruleDescription": "Rule that reports an error for any blockquote", - "ruleInformation": - `${homepage}/blob/main/test/rules/any-blockquote.js`, - "errorDetail": "Blockquote spans 1 line(s).", - "errorContext": "> Blockquote", - "errorRange": null }, - { "lineNumber": 12, - "ruleName": "any-blockquote-micromark", - "ruleAlias": "any-blockquote-micromark", - "ruleDescription": "Rule that reports an error for any blockquote", - "ruleInformation": - `${homepage}/blob/main/test/rules/any-blockquote.js`, - "errorDetail": "Blockquote spans 1 line(s).", - "errorContext": "> Blockquote", - "errorRange": null }, - { "lineNumber": 2, - "ruleName": "every-n-lines", - "ruleAlias": "every-n-lines", - "ruleDescription": "Rule that reports an error every N lines", - "ruleInformation": null, - "errorDetail": "Line number 2", - "errorContext": null, - "errorRange": null }, - { "lineNumber": 4, - "ruleName": "every-n-lines", - "ruleAlias": "every-n-lines", - "ruleDescription": "Rule that reports an error every N lines", - "ruleInformation": null, - "errorDetail": "Line number 4", - "errorContext": null, - "errorRange": null }, - { "lineNumber": 6, - "ruleName": "every-n-lines", - "ruleAlias": "every-n-lines", - "ruleDescription": "Rule that reports an error every N lines", - "ruleInformation": null, - "errorDetail": "Line number 6", - "errorContext": null, - "errorRange": null }, - { "lineNumber": 10, - "ruleName": "every-n-lines", - "ruleAlias": "every-n-lines", - "ruleDescription": "Rule that reports an error every N lines", - "ruleInformation": null, - "errorDetail": "Line number 10", - "errorContext": null, - "errorRange": null }, - { "lineNumber": 12, - "ruleName": "every-n-lines", - "ruleAlias": "every-n-lines", - "ruleDescription": "Rule that reports an error every N lines", - "ruleInformation": null, - "errorDetail": "Line number 12", - "errorContext": null, - "errorRange": null }, - { "lineNumber": 1, - "ruleName": "first-line", - "ruleAlias": "first-line", - "ruleDescription": "Rule that reports an error for the first line", - "ruleInformation": null, - "errorDetail": null, - "errorContext": null, - "errorRange": null }, - { "lineNumber": 3, - "ruleName": "letters-E-X", - "ruleAlias": "letter-E-letter-X", - "ruleDescription": - "Rule that reports an error for lines with the letters 'EX'", - "ruleInformation": `${homepage}/blob/main/test/rules/letters-E-X.js`, - "errorDetail": null, - "errorContext": "text", - "errorRange": null }, - { "lineNumber": 7, - "ruleName": "letters-E-X", - "ruleAlias": "letter-E-letter-X", - "ruleDescription": - "Rule that reports an error for lines with the letters 'EX'", - "ruleInformation": `${homepage}/blob/main/test/rules/letters-E-X.js`, - "errorDetail": null, - "errorContext": "text", - "errorRange": null } - ]; + const expectedResult = { + [customRulesMd]: [ + { "lineNumber": 12, + "ruleName": "any-blockquote-markdown-it", + "ruleAlias": "any-blockquote-markdown-it", + "ruleDescription": "Rule that reports an error for any blockquote", + "ruleInformation": + `${homepage}/blob/main/test/rules/any-blockquote.js`, + "errorDetail": "Blockquote spans 1 line(s).", + "errorContext": "> Blockquote", + "errorRange": null }, + { "lineNumber": 12, + "ruleName": "any-blockquote-micromark", + "ruleAlias": "any-blockquote-micromark", + "ruleDescription": "Rule that reports an error for any blockquote", + "ruleInformation": + `${homepage}/blob/main/test/rules/any-blockquote.js`, + "errorDetail": "Blockquote spans 1 line(s).", + "errorContext": "> Blockquote", + "errorRange": null }, + { "lineNumber": 2, + "ruleName": "every-n-lines", + "ruleAlias": "every-n-lines", + "ruleDescription": "Rule that reports an error every N lines", + "ruleInformation": null, + "errorDetail": "Line number 2", + "errorContext": null, + "errorRange": null }, + { "lineNumber": 4, + "ruleName": "every-n-lines", + "ruleAlias": "every-n-lines", + "ruleDescription": "Rule that reports an error every N lines", + "ruleInformation": null, + "errorDetail": "Line number 4", + "errorContext": null, + "errorRange": null }, + { "lineNumber": 6, + "ruleName": "every-n-lines", + "ruleAlias": "every-n-lines", + "ruleDescription": "Rule that reports an error every N lines", + "ruleInformation": null, + "errorDetail": "Line number 6", + "errorContext": null, + "errorRange": null }, + { "lineNumber": 10, + "ruleName": "every-n-lines", + "ruleAlias": "every-n-lines", + "ruleDescription": "Rule that reports an error every N lines", + "ruleInformation": null, + "errorDetail": "Line number 10", + "errorContext": null, + "errorRange": null }, + { "lineNumber": 12, + "ruleName": "every-n-lines", + "ruleAlias": "every-n-lines", + "ruleDescription": "Rule that reports an error every N lines", + "ruleInformation": null, + "errorDetail": "Line number 12", + "errorContext": null, + "errorRange": null }, + { "lineNumber": 1, + "ruleName": "first-line", + "ruleAlias": "first-line", + "ruleDescription": "Rule that reports an error for the first line", + "ruleInformation": null, + "errorDetail": null, + "errorContext": null, + "errorRange": null }, + { "lineNumber": 3, + "ruleName": "letters-E-X", + "ruleAlias": "letter-E-letter-X", + "ruleDescription": + "Rule that reports an error for lines with the letters 'EX'", + "ruleInformation": `${homepage}/blob/main/test/rules/letters-E-X.js`, + "errorDetail": null, + "errorContext": "text", + "errorRange": null }, + { "lineNumber": 7, + "ruleName": "letters-E-X", + "ruleAlias": "letter-E-letter-X", + "ruleDescription": + "Rule that reports an error for lines with the letters 'EX'", + "ruleInformation": `${homepage}/blob/main/test/rules/letters-E-X.js`, + "errorDetail": null, + "errorContext": "text", + "errorRange": null } + ] + }; t.deepEqual(actualResult, expectedResult, "Undetected issues."); // @ts-ignore const actualMessage = actualResult.toString(); @@ -236,83 +238,84 @@ test("customRulesV2", (t) => new Promise((resolve) => { }; lintAsync(options, function callback(err, actualResult) { t.falsy(err); - const expectedResult = {}; - expectedResult[customRulesMd] = [ - { "lineNumber": 12, - "ruleNames": [ "any-blockquote-markdown-it" ], - "ruleDescription": "Rule that reports an error for any blockquote", - "ruleInformation": - `${homepage}/blob/main/test/rules/any-blockquote.js`, - "errorDetail": "Blockquote spans 1 line(s).", - "errorContext": "> Blockquote", - "errorRange": null }, - { "lineNumber": 12, - "ruleNames": [ "any-blockquote-micromark" ], - "ruleDescription": "Rule that reports an error for any blockquote", - "ruleInformation": - `${homepage}/blob/main/test/rules/any-blockquote.js`, - "errorDetail": "Blockquote spans 1 line(s).", - "errorContext": "> Blockquote", - "errorRange": null }, - { "lineNumber": 2, - "ruleNames": [ "every-n-lines" ], - "ruleDescription": "Rule that reports an error every N lines", - "ruleInformation": null, - "errorDetail": "Line number 2", - "errorContext": null, - "errorRange": null }, - { "lineNumber": 4, - "ruleNames": [ "every-n-lines" ], - "ruleDescription": "Rule that reports an error every N lines", - "ruleInformation": null, - "errorDetail": "Line number 4", - "errorContext": null, - "errorRange": null }, - { "lineNumber": 6, - "ruleNames": [ "every-n-lines" ], - "ruleDescription": "Rule that reports an error every N lines", - "ruleInformation": null, - "errorDetail": "Line number 6", - "errorContext": null, - "errorRange": null }, - { "lineNumber": 10, - "ruleNames": [ "every-n-lines" ], - "ruleDescription": "Rule that reports an error every N lines", - "ruleInformation": null, - "errorDetail": "Line number 10", - "errorContext": null, - "errorRange": null }, - { "lineNumber": 12, - "ruleNames": [ "every-n-lines" ], - "ruleDescription": "Rule that reports an error every N lines", - "ruleInformation": null, - "errorDetail": "Line number 12", - "errorContext": null, - "errorRange": null }, - { "lineNumber": 1, - "ruleNames": [ "first-line" ], - "ruleDescription": "Rule that reports an error for the first line", - "ruleInformation": null, - "errorDetail": null, - "errorContext": null, - "errorRange": null }, - { "lineNumber": 3, - "ruleNames": [ "letters-E-X", "letter-E-letter-X", "contains-ex" ], - "ruleDescription": - "Rule that reports an error for lines with the letters 'EX'", - "ruleInformation": `${homepage}/blob/main/test/rules/letters-E-X.js`, - "errorDetail": null, - "errorContext": "text", - "errorRange": null }, - { "lineNumber": 7, - "ruleNames": [ "letters-E-X", "letter-E-letter-X", "contains-ex" ], - "ruleDescription": - "Rule that reports an error for lines with the letters 'EX'", - "ruleInformation": `${homepage}/blob/main/test/rules/letters-E-X.js`, - "errorDetail": null, - "errorContext": "text", - "errorRange": null } - ]; + const expectedResult = { + [customRulesMd]: [ + { "lineNumber": 12, + "ruleNames": [ "any-blockquote-markdown-it" ], + "ruleDescription": "Rule that reports an error for any blockquote", + "ruleInformation": + `${homepage}/blob/main/test/rules/any-blockquote.js`, + "errorDetail": "Blockquote spans 1 line(s).", + "errorContext": "> Blockquote", + "errorRange": null }, + { "lineNumber": 12, + "ruleNames": [ "any-blockquote-micromark" ], + "ruleDescription": "Rule that reports an error for any blockquote", + "ruleInformation": + `${homepage}/blob/main/test/rules/any-blockquote.js`, + "errorDetail": "Blockquote spans 1 line(s).", + "errorContext": "> Blockquote", + "errorRange": null }, + { "lineNumber": 2, + "ruleNames": [ "every-n-lines" ], + "ruleDescription": "Rule that reports an error every N lines", + "ruleInformation": null, + "errorDetail": "Line number 2", + "errorContext": null, + "errorRange": null }, + { "lineNumber": 4, + "ruleNames": [ "every-n-lines" ], + "ruleDescription": "Rule that reports an error every N lines", + "ruleInformation": null, + "errorDetail": "Line number 4", + "errorContext": null, + "errorRange": null }, + { "lineNumber": 6, + "ruleNames": [ "every-n-lines" ], + "ruleDescription": "Rule that reports an error every N lines", + "ruleInformation": null, + "errorDetail": "Line number 6", + "errorContext": null, + "errorRange": null }, + { "lineNumber": 10, + "ruleNames": [ "every-n-lines" ], + "ruleDescription": "Rule that reports an error every N lines", + "ruleInformation": null, + "errorDetail": "Line number 10", + "errorContext": null, + "errorRange": null }, + { "lineNumber": 12, + "ruleNames": [ "every-n-lines" ], + "ruleDescription": "Rule that reports an error every N lines", + "ruleInformation": null, + "errorDetail": "Line number 12", + "errorContext": null, + "errorRange": null }, + { "lineNumber": 1, + "ruleNames": [ "first-line" ], + "ruleDescription": "Rule that reports an error for the first line", + "ruleInformation": null, + "errorDetail": null, + "errorContext": null, + "errorRange": null }, + { "lineNumber": 3, + "ruleNames": [ "letters-E-X", "letter-E-letter-X", "contains-ex" ], + "ruleDescription": + "Rule that reports an error for lines with the letters 'EX'", + "ruleInformation": `${homepage}/blob/main/test/rules/letters-E-X.js`, + "errorDetail": null, + "errorContext": "text", + "errorRange": null }, + { "lineNumber": 7, + "ruleNames": [ "letters-E-X", "letter-E-letter-X", "contains-ex" ], + "ruleDescription": + "Rule that reports an error for lines with the letters 'EX'", + "ruleInformation": `${homepage}/blob/main/test/rules/letters-E-X.js`, + "errorDetail": null, + "errorContext": "text", + "errorRange": null } + ] + }; t.deepEqual(actualResult, expectedResult, "Undetected issues."); // @ts-ignore const actualMessage = actualResult.toString(); @@ -366,13 +369,14 @@ test("customRulesConfig", (t) => new Promise((resolve) => { }; lintAsync(options, function callback(err, actualResult) { t.falsy(err); - const expectedResult = {}; - expectedResult[customRulesMd] = { - "any-blockquote-markdown-it": [ 12 ], - "any-blockquote-micromark": [ 12 ], - "every-n-lines": [ 3, 6, 12 ], - "first-line": [ 1 ], - "letters-E-X": [ 7 ] + const expectedResult = { + [customRulesMd]: { + "any-blockquote-markdown-it": [ 12 ], + "any-blockquote-micromark": [ 12 ], + "every-n-lines": [ 3, 6, 12 ], + "first-line": [ 1 ], + "letters-E-X": [ 7 ] + } }; t.deepEqual(actualResult, expectedResult, "Undetected issues."); resolve(); @@ -445,6 +449,7 @@ test("customRulesBadProperty", (t) => { const { propertyName, propertyValues } = testCase; for (const propertyValue of propertyValues) { const badRule = { ...customRules.firstLine }; + // @ts-ignore badRule[propertyName] = propertyValue; /** @type {import("markdownlint").Options} */ const options = { @@ -1211,6 +1216,7 @@ test("customRulesOnErrorBad", (t) => { ]) { const { propertyName, subPropertyName, propertyValues } = testCase; for (const propertyValue of propertyValues) { + /** @type {Object} */ const badObject = { "lineNumber": 1 }; @@ -1232,6 +1238,7 @@ test("customRulesOnErrorBad", (t) => { "tags": [ "tag" ], "parser": "none", "function": function onErrorBad(params, onError) { + // @ts-ignore onError(badObject); } } @@ -1283,6 +1290,7 @@ test("customRulesOnErrorInvalid", (t) => { ]) { const { propertyName, subPropertyName, propertyValues } = testCase; for (const propertyValue of propertyValues) { + /** @type {Object} */ const badObject = { "lineNumber": 1 }; @@ -1304,6 +1312,7 @@ test("customRulesOnErrorInvalid", (t) => { "tags": [ "tag" ], "parser": "none", "function": function onErrorInvalid(params, onError) { + // @ts-ignore onError(badObject); } } @@ -1361,6 +1370,7 @@ test("customRulesOnErrorValid", (t) => { ]) { const { propertyName, subPropertyName, propertyValues } = testCase; for (const propertyValue of propertyValues) { + /** @type {Object} */ const goodObject = { "lineNumber": 1 }; @@ -1379,6 +1389,7 @@ test("customRulesOnErrorValid", (t) => { "tags": [ "tag" ], "parser": "none", "function": function onErrorValid(params, onError) { + // @ts-ignore onError(goodObject); } } @@ -1973,13 +1984,62 @@ test("customRulesAsyncThrowsInSyncContext", (t) => { ); }); +test("customRulesParamsConfigExcludesSeverity", (t) => { + t.plan(4); + /** @type {import("markdownlint").Rule} */ + const ruleBase = { + "names": [ "tbd" ], + "description": "description", + "tags": [ "tag" ], + "parser": "none", + "asynchronous": true, + "function": ({ config }) => { + t.is(typeof config, "object"); + t.is(typeof config.severity, "undefined"); + } + }; + /** @type {import("markdownlint").Options} */ + const options = { + "config": { + "name1": { + "severity": "error" + }, + "name2": { + "key": "value", + "severity": "error" + } + }, + "customRules": [ + { + ...ruleBase, + "names": [ "name1" ] + }, + { + ...ruleBase, + "names": [ "name2" ] + } + ], + "strings": { + "string": "Unused" + } + }; + return lintPromise(options); +}); + test("customRulesParamsAreFrozen", (t) => { + /** + * Asserts that rule parameters are frozen. + * + * @param {import("markdownlint").RuleParams} params Rule parameters. + * @returns {void} + */ const assertParamsFrozen = (params) => { const pending = [ params ]; let current = null; while ((current = pending.shift())) { t.true(Object.isFrozen(current) || (current === params)); for (const name of Object.getOwnPropertyNames(current)) { + // @ts-ignore const value = current[name]; if ( value && diff --git a/test/markdownlint-test.mjs b/test/markdownlint-test.mjs index a49ce0d2..749a647e 100644 --- a/test/markdownlint-test.mjs +++ b/test/markdownlint-test.mjs @@ -346,17 +346,104 @@ test("enableRulesString", getConfigTestImplementation( configTestExpected3511 )); -test("enableRulesEmptyObject", getConfigTestImplementation( +test("enableRulesObjectEmpty", getConfigTestImplementation( { "MD041": {}, "default": false, - // @ts-ignore "no-multiple-space-atx": {}, "extra": {} }, configTestExpected3511 )); +test("enableRulesObjectTruthy", getConfigTestImplementation( + { + "MD041": { + // @ts-ignore + "severity": 1 + }, + "default": false, + "no-multiple-space-atx": { + // @ts-ignore + "severity": 1 + }, + "extra": { + "severity": 1 + } + }, + configTestExpected3511 +)); + +test("enableRulesObjectFalsy", getConfigTestImplementation( + { + "MD041": { + // @ts-ignore + "severity": 0 + }, + "default": false, + "no-multiple-space-atx": { + // @ts-ignore + "severity": 0 + }, + "extra": { + "severity": 0 + } + }, + configTestExpected3511 +)); + +test("enableRulesObjectError", getConfigTestImplementation( + { + "MD041": { + "severity": "error" + }, + "default": false, + "no-multiple-space-atx": { + "severity": "error" + }, + "extra": { + "severity": "error" + } + }, + configTestExpected3511 +)); + +test("enableRulesObjectWarning", getConfigTestImplementation( + { + "MD041": { + // @ts-ignore + "severity": "warning" + }, + "default": false, + "no-multiple-space-atx": { + // @ts-ignore + "severity": "warning" + }, + "extra": { + "severity": "warning" + } + }, + configTestExpected3511 +)); + +test("enableRulesObjectOff", getConfigTestImplementation( + { + "MD041": { + // @ts-ignore + "severity": "off" + }, + "default": false, + "no-multiple-space-atx": { + // @ts-ignore + "severity": "off" + }, + "extra": { + "severity": "off" + } + }, + configTestExpected3511 +)); + test("disableTag", getConfigTestImplementation( { "default": true, @@ -921,7 +1008,7 @@ test("readme", async(t) => { }); test("validateJsonUsingConfigSchemaStrict", async(t) => { - t.plan(211); + t.plan(212); // @ts-ignore const ajv = new Ajv(ajvOptions); const validateSchemaStrict = ajv.compile(configSchemaStrict); diff --git a/test/snapshots/markdownlint-test-scenarios.mjs.md b/test/snapshots/markdownlint-test-scenarios.mjs.md index a6c15f54..23a03743 100644 --- a/test/snapshots/markdownlint-test-scenarios.mjs.md +++ b/test/snapshots/markdownlint-test-scenarios.mjs.md @@ -11203,6 +11203,320 @@ Generated by [AVA](https://avajs.dev). `, } +## configure-file-with-severity.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: 'error', + }, + { + 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: 'error', + }, + { + errorContext: null, + errorDetail: 'Expected: 1; Actual: 2; Style: 1/1/1', + errorRange: [ + 1, + 3, + ], + fixInfo: { + deleteCount: 1, + editColumn: 1, + insertText: '1', + }, + lineNumber: 13, + ruleDescription: 'Ordered list item prefix', + ruleInformation: 'https://github.com/DavidAnson/markdownlint/blob/v0.0.0/doc/md029.md', + ruleNames: [ + 'MD029', + 'ol-prefix', + ], + severity: 'error', + }, + { + errorContext: null, + errorDetail: 'Expected: 1; Actual: 2; Style: 1/1/1', + errorRange: [ + 1, + 3, + ], + fixInfo: { + deleteCount: 1, + editColumn: 1, + insertText: '1', + }, + lineNumber: 41, + ruleDescription: 'Ordered list item prefix', + ruleInformation: 'https://github.com/DavidAnson/markdownlint/blob/v0.0.0/doc/md029.md', + ruleNames: [ + 'MD029', + 'ol-prefix', + ], + severity: 'error', + }, + { + 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: 'error', + }, + { + 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: 'error', + }, + { + errorContext: '[ text]', + errorDetail: null, + errorRange: [ + 7, + 1, + ], + fixInfo: { + deleteCount: 1, + editColumn: 7, + }, + lineNumber: 7, + ruleDescription: 'Spaces inside link text', + ruleInformation: 'https://github.com/DavidAnson/markdownlint/blob/v0.0.0/doc/md039.md', + ruleNames: [ + 'MD039', + 'no-space-in-links', + ], + severity: 'error', + }, + { + errorContext: '[ text]', + errorDetail: null, + errorRange: [ + 7, + 1, + ], + fixInfo: { + deleteCount: 1, + editColumn: 7, + }, + lineNumber: 35, + ruleDescription: 'Spaces inside link text', + ruleInformation: 'https://github.com/DavidAnson/markdownlint/blob/v0.0.0/doc/md039.md', + ruleNames: [ + 'MD039', + 'no-space-in-links', + ], + severity: 'error', + }, + ], + fixed: `# Configure File With Severity␊ + ␊ + Text *text* {MD037}␊ + ␊ + Text \`text\` {MD038}␊ + ␊ + Text [text](.) {MD039}␊ + ␊ + - List item {MD004}␊ + ␊ + Text [text](.) {MD011}␊ + ␊ + 1. List item {MD029}␊ + ␊ + ␊ + ␊ + Text * text*␊ + ␊ + Text \` text\`␊ + ␊ + Text [ text](.)␊ + ␊ + + List item␊ + ␊ + Text (text)[.]␊ + ␊ + 2. List item␊ + ␊ + ␊ + ␊ + Text *text* {MD037}␊ + ␊ + Text \`text\` {MD038}␊ + ␊ + Text [text](.) {MD039}␊ + ␊ + - List item {MD004}␊ + ␊ + Text [text](.) {MD011}␊ + ␊ + 1. List item {MD029}␊ + ␊ + ␊ + `, + } + ## consecutive_blank_lines.md > Snapshot 1 diff --git a/test/snapshots/markdownlint-test-scenarios.mjs.snap b/test/snapshots/markdownlint-test-scenarios.mjs.snap index 24d9ca2f..a3689d1a 100644 Binary files a/test/snapshots/markdownlint-test-scenarios.mjs.snap and b/test/snapshots/markdownlint-test-scenarios.mjs.snap differ