mirror of
https://github.com/DavidAnson/markdownlint.git
synced 2025-09-21 21:30:47 +02:00
Add "error" as a rule/tag/default value in Configuration object, add tests for similar values, resolve some new type-checking issues.
This commit is contained in:
parent
9065f74bb8
commit
a4ae56ab94
7 changed files with 1999 additions and 384 deletions
21
README.md
21
README.md
|
@ -362,20 +362,23 @@ of `files` or `strings` should be set to provide input.
|
||||||
|
|
||||||
##### options.config
|
##### options.config
|
||||||
|
|
||||||
Type: `Object` mapping `String` to `Boolean | Object`
|
Type: `Object` mapping `String` to `Boolean | "error" | Object`
|
||||||
|
|
||||||
Configures the rules to use.
|
Configures the rules to use.
|
||||||
|
|
||||||
Object keys are rule names/aliases; object values are the rule's configuration.
|
Object keys are rule names/aliases; object values are the rule's configuration.
|
||||||
The value `false` disables a rule, `true` enables its default configuration,
|
The value `false` disables a rule. The values `true` or `"error"` enable a rule
|
||||||
and passing an object value customizes that rule. Setting the special `default`
|
in its default configuration and report violations as errors. Passing an object
|
||||||
rule to `true` or `false` includes/excludes all rules by default. In the absence
|
enables and customizes the rule. The special `default` rule assigns the default
|
||||||
of a configuration object, all rules are enabled. Enabling or disabling a tag
|
for all rules. Using a tag name (e.g., `whitespace`) and a setting of `false`,
|
||||||
name (ex: `whitespace`) affects all rules having that tag.
|
`true`, or `"error"` applies that setting to all rules with that tag. When no
|
||||||
|
configuration object is passed or the optional `default` setting is not present,
|
||||||
|
all rules are enabled.
|
||||||
|
|
||||||
The `default` rule is applied first, then keys are processed in order from top
|
To evaluate a configuration object, the `default` setting is applied first, then
|
||||||
to bottom with later values overriding earlier ones. Keys (including rule names,
|
keys are processed in order from top to bottom. If multiple values apply to a
|
||||||
aliases, tags, and `default`) are not case-sensitive.
|
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:
|
||||||
|
|
||||||
|
|
196
lib/configuration-strict.d.ts
vendored
196
lib/configuration-strict.d.ts
vendored
|
@ -13,7 +13,7 @@ export interface ConfigurationStrict {
|
||||||
/**
|
/**
|
||||||
* Default state for all rules
|
* Default state for all rules
|
||||||
*/
|
*/
|
||||||
default?: boolean;
|
default?: boolean | "error";
|
||||||
/**
|
/**
|
||||||
* Path to configuration file to extend
|
* Path to configuration file to extend
|
||||||
*/
|
*/
|
||||||
|
@ -23,6 +23,7 @@ export interface ConfigurationStrict {
|
||||||
*/
|
*/
|
||||||
MD001?:
|
MD001?:
|
||||||
| boolean
|
| boolean
|
||||||
|
| "error"
|
||||||
| {
|
| {
|
||||||
/**
|
/**
|
||||||
* RegExp for matching title in front matter
|
* RegExp for matching title in front matter
|
||||||
|
@ -34,6 +35,7 @@ export interface ConfigurationStrict {
|
||||||
*/
|
*/
|
||||||
"heading-increment"?:
|
"heading-increment"?:
|
||||||
| boolean
|
| boolean
|
||||||
|
| "error"
|
||||||
| {
|
| {
|
||||||
/**
|
/**
|
||||||
* RegExp for matching title in front matter
|
* RegExp for matching title in front matter
|
||||||
|
@ -45,6 +47,7 @@ export interface ConfigurationStrict {
|
||||||
*/
|
*/
|
||||||
MD003?:
|
MD003?:
|
||||||
| boolean
|
| boolean
|
||||||
|
| "error"
|
||||||
| {
|
| {
|
||||||
/**
|
/**
|
||||||
* Heading style
|
* Heading style
|
||||||
|
@ -56,6 +59,7 @@ export interface ConfigurationStrict {
|
||||||
*/
|
*/
|
||||||
"heading-style"?:
|
"heading-style"?:
|
||||||
| boolean
|
| boolean
|
||||||
|
| "error"
|
||||||
| {
|
| {
|
||||||
/**
|
/**
|
||||||
* Heading style
|
* Heading style
|
||||||
|
@ -67,6 +71,7 @@ export interface ConfigurationStrict {
|
||||||
*/
|
*/
|
||||||
MD004?:
|
MD004?:
|
||||||
| boolean
|
| boolean
|
||||||
|
| "error"
|
||||||
| {
|
| {
|
||||||
/**
|
/**
|
||||||
* List style
|
* List style
|
||||||
|
@ -78,6 +83,7 @@ export interface ConfigurationStrict {
|
||||||
*/
|
*/
|
||||||
"ul-style"?:
|
"ul-style"?:
|
||||||
| boolean
|
| boolean
|
||||||
|
| "error"
|
||||||
| {
|
| {
|
||||||
/**
|
/**
|
||||||
* List style
|
* List style
|
||||||
|
@ -87,16 +93,17 @@ 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/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;
|
MD005?: boolean | "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
|
* 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;
|
"list-indent"?: boolean | "error";
|
||||||
/**
|
/**
|
||||||
* MD007/ul-indent : Unordered list indentation : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md007.md
|
* MD007/ul-indent : Unordered list indentation : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md007.md
|
||||||
*/
|
*/
|
||||||
MD007?:
|
MD007?:
|
||||||
| boolean
|
| boolean
|
||||||
|
| "error"
|
||||||
| {
|
| {
|
||||||
/**
|
/**
|
||||||
* Spaces for indent
|
* Spaces for indent
|
||||||
|
@ -116,6 +123,7 @@ export interface ConfigurationStrict {
|
||||||
*/
|
*/
|
||||||
"ul-indent"?:
|
"ul-indent"?:
|
||||||
| boolean
|
| boolean
|
||||||
|
| "error"
|
||||||
| {
|
| {
|
||||||
/**
|
/**
|
||||||
* Spaces for indent
|
* Spaces for indent
|
||||||
|
@ -135,6 +143,7 @@ export interface ConfigurationStrict {
|
||||||
*/
|
*/
|
||||||
MD009?:
|
MD009?:
|
||||||
| boolean
|
| boolean
|
||||||
|
| "error"
|
||||||
| {
|
| {
|
||||||
/**
|
/**
|
||||||
* Spaces for line break
|
* Spaces for line break
|
||||||
|
@ -154,6 +163,7 @@ export interface ConfigurationStrict {
|
||||||
*/
|
*/
|
||||||
"no-trailing-spaces"?:
|
"no-trailing-spaces"?:
|
||||||
| boolean
|
| boolean
|
||||||
|
| "error"
|
||||||
| {
|
| {
|
||||||
/**
|
/**
|
||||||
* Spaces for line break
|
* Spaces for line break
|
||||||
|
@ -173,6 +183,7 @@ export interface ConfigurationStrict {
|
||||||
*/
|
*/
|
||||||
MD010?:
|
MD010?:
|
||||||
| boolean
|
| boolean
|
||||||
|
| "error"
|
||||||
| {
|
| {
|
||||||
/**
|
/**
|
||||||
* Include code blocks
|
* Include code blocks
|
||||||
|
@ -192,6 +203,7 @@ export interface ConfigurationStrict {
|
||||||
*/
|
*/
|
||||||
"no-hard-tabs"?:
|
"no-hard-tabs"?:
|
||||||
| boolean
|
| boolean
|
||||||
|
| "error"
|
||||||
| {
|
| {
|
||||||
/**
|
/**
|
||||||
* Include code blocks
|
* Include code blocks
|
||||||
|
@ -209,16 +221,17 @@ export interface ConfigurationStrict {
|
||||||
/**
|
/**
|
||||||
* MD011/no-reversed-links : Reversed link syntax : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md011.md
|
* MD011/no-reversed-links : Reversed link syntax : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md011.md
|
||||||
*/
|
*/
|
||||||
MD011?: boolean;
|
MD011?: boolean | "error";
|
||||||
/**
|
/**
|
||||||
* MD011/no-reversed-links : Reversed link syntax : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md011.md
|
* MD011/no-reversed-links : Reversed link syntax : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md011.md
|
||||||
*/
|
*/
|
||||||
"no-reversed-links"?: boolean;
|
"no-reversed-links"?: boolean | "error";
|
||||||
/**
|
/**
|
||||||
* MD012/no-multiple-blanks : Multiple consecutive blank lines : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md012.md
|
* MD012/no-multiple-blanks : Multiple consecutive blank lines : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md012.md
|
||||||
*/
|
*/
|
||||||
MD012?:
|
MD012?:
|
||||||
| boolean
|
| boolean
|
||||||
|
| "error"
|
||||||
| {
|
| {
|
||||||
/**
|
/**
|
||||||
* Consecutive blank lines
|
* Consecutive blank lines
|
||||||
|
@ -230,6 +243,7 @@ export interface ConfigurationStrict {
|
||||||
*/
|
*/
|
||||||
"no-multiple-blanks"?:
|
"no-multiple-blanks"?:
|
||||||
| boolean
|
| boolean
|
||||||
|
| "error"
|
||||||
| {
|
| {
|
||||||
/**
|
/**
|
||||||
* Consecutive blank lines
|
* Consecutive blank lines
|
||||||
|
@ -241,6 +255,7 @@ export interface ConfigurationStrict {
|
||||||
*/
|
*/
|
||||||
MD013?:
|
MD013?:
|
||||||
| boolean
|
| boolean
|
||||||
|
| "error"
|
||||||
| {
|
| {
|
||||||
/**
|
/**
|
||||||
* Number of characters
|
* Number of characters
|
||||||
|
@ -280,6 +295,7 @@ export interface ConfigurationStrict {
|
||||||
*/
|
*/
|
||||||
"line-length"?:
|
"line-length"?:
|
||||||
| boolean
|
| boolean
|
||||||
|
| "error"
|
||||||
| {
|
| {
|
||||||
/**
|
/**
|
||||||
* Number of characters
|
* Number of characters
|
||||||
|
@ -317,48 +333,49 @@ 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/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;
|
MD014?: boolean | "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
|
* 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;
|
"commands-show-output"?: boolean | "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/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;
|
MD018?: boolean | "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/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;
|
"no-missing-space-atx"?: boolean | "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/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;
|
MD019?: boolean | "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/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;
|
"no-multiple-space-atx"?: boolean | "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/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;
|
MD020?: boolean | "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/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;
|
"no-missing-space-closed-atx"?: boolean | "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/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;
|
MD021?: boolean | "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/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;
|
"no-multiple-space-closed-atx"?: boolean | "error";
|
||||||
/**
|
/**
|
||||||
* MD022/blanks-around-headings : Headings should be surrounded by blank lines : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md022.md
|
* MD022/blanks-around-headings : Headings should be surrounded by blank lines : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md022.md
|
||||||
*/
|
*/
|
||||||
MD022?:
|
MD022?:
|
||||||
| boolean
|
| boolean
|
||||||
|
| "error"
|
||||||
| {
|
| {
|
||||||
/**
|
/**
|
||||||
* Blank lines above heading
|
* Blank lines above heading
|
||||||
|
@ -374,6 +391,7 @@ export interface ConfigurationStrict {
|
||||||
*/
|
*/
|
||||||
"blanks-around-headings"?:
|
"blanks-around-headings"?:
|
||||||
| boolean
|
| boolean
|
||||||
|
| "error"
|
||||||
| {
|
| {
|
||||||
/**
|
/**
|
||||||
* Blank lines above heading
|
* Blank lines above heading
|
||||||
|
@ -387,16 +405,17 @@ 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/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;
|
MD023?: boolean | "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
|
* 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;
|
"heading-start-left"?: boolean | "error";
|
||||||
/**
|
/**
|
||||||
* MD024/no-duplicate-heading : Multiple headings with the same content : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md024.md
|
* MD024/no-duplicate-heading : Multiple headings with the same content : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md024.md
|
||||||
*/
|
*/
|
||||||
MD024?:
|
MD024?:
|
||||||
| boolean
|
| boolean
|
||||||
|
| "error"
|
||||||
| {
|
| {
|
||||||
/**
|
/**
|
||||||
* Only check sibling headings
|
* Only check sibling headings
|
||||||
|
@ -408,6 +427,7 @@ export interface ConfigurationStrict {
|
||||||
*/
|
*/
|
||||||
"no-duplicate-heading"?:
|
"no-duplicate-heading"?:
|
||||||
| boolean
|
| boolean
|
||||||
|
| "error"
|
||||||
| {
|
| {
|
||||||
/**
|
/**
|
||||||
* Only check sibling headings
|
* Only check sibling headings
|
||||||
|
@ -419,6 +439,7 @@ export interface ConfigurationStrict {
|
||||||
*/
|
*/
|
||||||
MD025?:
|
MD025?:
|
||||||
| boolean
|
| boolean
|
||||||
|
| "error"
|
||||||
| {
|
| {
|
||||||
/**
|
/**
|
||||||
* RegExp for matching title in front matter
|
* RegExp for matching title in front matter
|
||||||
|
@ -434,6 +455,7 @@ export interface ConfigurationStrict {
|
||||||
*/
|
*/
|
||||||
"single-title"?:
|
"single-title"?:
|
||||||
| boolean
|
| boolean
|
||||||
|
| "error"
|
||||||
| {
|
| {
|
||||||
/**
|
/**
|
||||||
* RegExp for matching title in front matter
|
* RegExp for matching title in front matter
|
||||||
|
@ -449,6 +471,7 @@ export interface ConfigurationStrict {
|
||||||
*/
|
*/
|
||||||
"single-h1"?:
|
"single-h1"?:
|
||||||
| boolean
|
| boolean
|
||||||
|
| "error"
|
||||||
| {
|
| {
|
||||||
/**
|
/**
|
||||||
* RegExp for matching title in front matter
|
* RegExp for matching title in front matter
|
||||||
|
@ -464,6 +487,7 @@ export interface ConfigurationStrict {
|
||||||
*/
|
*/
|
||||||
MD026?:
|
MD026?:
|
||||||
| boolean
|
| boolean
|
||||||
|
| "error"
|
||||||
| {
|
| {
|
||||||
/**
|
/**
|
||||||
* Punctuation characters
|
* Punctuation characters
|
||||||
|
@ -475,6 +499,7 @@ export interface ConfigurationStrict {
|
||||||
*/
|
*/
|
||||||
"no-trailing-punctuation"?:
|
"no-trailing-punctuation"?:
|
||||||
| boolean
|
| boolean
|
||||||
|
| "error"
|
||||||
| {
|
| {
|
||||||
/**
|
/**
|
||||||
* Punctuation characters
|
* Punctuation characters
|
||||||
|
@ -486,6 +511,7 @@ export interface ConfigurationStrict {
|
||||||
*/
|
*/
|
||||||
MD027?:
|
MD027?:
|
||||||
| boolean
|
| boolean
|
||||||
|
| "error"
|
||||||
| {
|
| {
|
||||||
/**
|
/**
|
||||||
* Include list items
|
* Include list items
|
||||||
|
@ -497,6 +523,7 @@ export interface ConfigurationStrict {
|
||||||
*/
|
*/
|
||||||
"no-multiple-space-blockquote"?:
|
"no-multiple-space-blockquote"?:
|
||||||
| boolean
|
| boolean
|
||||||
|
| "error"
|
||||||
| {
|
| {
|
||||||
/**
|
/**
|
||||||
* Include list items
|
* Include list items
|
||||||
|
@ -506,16 +533,17 @@ export interface ConfigurationStrict {
|
||||||
/**
|
/**
|
||||||
* MD028/no-blanks-blockquote : Blank line inside blockquote : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md028.md
|
* MD028/no-blanks-blockquote : Blank line inside blockquote : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md028.md
|
||||||
*/
|
*/
|
||||||
MD028?: boolean;
|
MD028?: boolean | "error";
|
||||||
/**
|
/**
|
||||||
* MD028/no-blanks-blockquote : Blank line inside blockquote : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md028.md
|
* MD028/no-blanks-blockquote : Blank line inside blockquote : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md028.md
|
||||||
*/
|
*/
|
||||||
"no-blanks-blockquote"?: boolean;
|
"no-blanks-blockquote"?: boolean | "error";
|
||||||
/**
|
/**
|
||||||
* MD029/ol-prefix : Ordered list item prefix : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md029.md
|
* MD029/ol-prefix : Ordered list item prefix : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md029.md
|
||||||
*/
|
*/
|
||||||
MD029?:
|
MD029?:
|
||||||
| boolean
|
| boolean
|
||||||
|
| "error"
|
||||||
| {
|
| {
|
||||||
/**
|
/**
|
||||||
* List style
|
* List style
|
||||||
|
@ -527,6 +555,7 @@ export interface ConfigurationStrict {
|
||||||
*/
|
*/
|
||||||
"ol-prefix"?:
|
"ol-prefix"?:
|
||||||
| boolean
|
| boolean
|
||||||
|
| "error"
|
||||||
| {
|
| {
|
||||||
/**
|
/**
|
||||||
* List style
|
* List style
|
||||||
|
@ -538,6 +567,7 @@ export interface ConfigurationStrict {
|
||||||
*/
|
*/
|
||||||
MD030?:
|
MD030?:
|
||||||
| boolean
|
| boolean
|
||||||
|
| "error"
|
||||||
| {
|
| {
|
||||||
/**
|
/**
|
||||||
* Spaces for single-line unordered list items
|
* Spaces for single-line unordered list items
|
||||||
|
@ -561,6 +591,7 @@ export interface ConfigurationStrict {
|
||||||
*/
|
*/
|
||||||
"list-marker-space"?:
|
"list-marker-space"?:
|
||||||
| boolean
|
| boolean
|
||||||
|
| "error"
|
||||||
| {
|
| {
|
||||||
/**
|
/**
|
||||||
* Spaces for single-line unordered list items
|
* Spaces for single-line unordered list items
|
||||||
|
@ -584,6 +615,7 @@ export interface ConfigurationStrict {
|
||||||
*/
|
*/
|
||||||
MD031?:
|
MD031?:
|
||||||
| boolean
|
| boolean
|
||||||
|
| "error"
|
||||||
| {
|
| {
|
||||||
/**
|
/**
|
||||||
* Include list items
|
* Include list items
|
||||||
|
@ -595,6 +627,7 @@ export interface ConfigurationStrict {
|
||||||
*/
|
*/
|
||||||
"blanks-around-fences"?:
|
"blanks-around-fences"?:
|
||||||
| boolean
|
| boolean
|
||||||
|
| "error"
|
||||||
| {
|
| {
|
||||||
/**
|
/**
|
||||||
* Include list items
|
* Include list items
|
||||||
|
@ -604,16 +637,17 @@ 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/blanks-around-lists : Lists should be surrounded by blank lines : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md032.md
|
||||||
*/
|
*/
|
||||||
MD032?: boolean;
|
MD032?: boolean | "error";
|
||||||
/**
|
/**
|
||||||
* MD032/blanks-around-lists : Lists should be surrounded by blank lines : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md032.md
|
* 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;
|
"blanks-around-lists"?: boolean | "error";
|
||||||
/**
|
/**
|
||||||
* MD033/no-inline-html : Inline HTML : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md033.md
|
* MD033/no-inline-html : Inline HTML : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md033.md
|
||||||
*/
|
*/
|
||||||
MD033?:
|
MD033?:
|
||||||
| boolean
|
| boolean
|
||||||
|
| "error"
|
||||||
| {
|
| {
|
||||||
/**
|
/**
|
||||||
* Allowed elements
|
* Allowed elements
|
||||||
|
@ -629,6 +663,7 @@ export interface ConfigurationStrict {
|
||||||
*/
|
*/
|
||||||
"no-inline-html"?:
|
"no-inline-html"?:
|
||||||
| boolean
|
| boolean
|
||||||
|
| "error"
|
||||||
| {
|
| {
|
||||||
/**
|
/**
|
||||||
* Allowed elements
|
* Allowed elements
|
||||||
|
@ -642,16 +677,17 @@ export interface ConfigurationStrict {
|
||||||
/**
|
/**
|
||||||
* MD034/no-bare-urls : Bare URL used : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md034.md
|
* MD034/no-bare-urls : Bare URL used : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md034.md
|
||||||
*/
|
*/
|
||||||
MD034?: boolean;
|
MD034?: boolean | "error";
|
||||||
/**
|
/**
|
||||||
* MD034/no-bare-urls : Bare URL used : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md034.md
|
* MD034/no-bare-urls : Bare URL used : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md034.md
|
||||||
*/
|
*/
|
||||||
"no-bare-urls"?: boolean;
|
"no-bare-urls"?: boolean | "error";
|
||||||
/**
|
/**
|
||||||
* MD035/hr-style : Horizontal rule style : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md035.md
|
* MD035/hr-style : Horizontal rule style : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md035.md
|
||||||
*/
|
*/
|
||||||
MD035?:
|
MD035?:
|
||||||
| boolean
|
| boolean
|
||||||
|
| "error"
|
||||||
| {
|
| {
|
||||||
/**
|
/**
|
||||||
* Horizontal rule style
|
* Horizontal rule style
|
||||||
|
@ -663,6 +699,7 @@ export interface ConfigurationStrict {
|
||||||
*/
|
*/
|
||||||
"hr-style"?:
|
"hr-style"?:
|
||||||
| boolean
|
| boolean
|
||||||
|
| "error"
|
||||||
| {
|
| {
|
||||||
/**
|
/**
|
||||||
* Horizontal rule style
|
* Horizontal rule style
|
||||||
|
@ -674,6 +711,7 @@ export interface ConfigurationStrict {
|
||||||
*/
|
*/
|
||||||
MD036?:
|
MD036?:
|
||||||
| boolean
|
| boolean
|
||||||
|
| "error"
|
||||||
| {
|
| {
|
||||||
/**
|
/**
|
||||||
* Punctuation characters
|
* Punctuation characters
|
||||||
|
@ -685,6 +723,7 @@ export interface ConfigurationStrict {
|
||||||
*/
|
*/
|
||||||
"no-emphasis-as-heading"?:
|
"no-emphasis-as-heading"?:
|
||||||
| boolean
|
| boolean
|
||||||
|
| "error"
|
||||||
| {
|
| {
|
||||||
/**
|
/**
|
||||||
* Punctuation characters
|
* Punctuation characters
|
||||||
|
@ -694,32 +733,33 @@ 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/no-space-in-emphasis : Spaces inside emphasis markers : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md037.md
|
||||||
*/
|
*/
|
||||||
MD037?: boolean;
|
MD037?: boolean | "error";
|
||||||
/**
|
/**
|
||||||
* MD037/no-space-in-emphasis : Spaces inside emphasis markers : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md037.md
|
* 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;
|
"no-space-in-emphasis"?: boolean | "error";
|
||||||
/**
|
/**
|
||||||
* MD038/no-space-in-code : Spaces inside code span elements : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md038.md
|
* MD038/no-space-in-code : Spaces inside code span elements : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md038.md
|
||||||
*/
|
*/
|
||||||
MD038?: boolean;
|
MD038?: boolean | "error";
|
||||||
/**
|
/**
|
||||||
* MD038/no-space-in-code : Spaces inside code span elements : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md038.md
|
* 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;
|
"no-space-in-code"?: boolean | "error";
|
||||||
/**
|
/**
|
||||||
* MD039/no-space-in-links : Spaces inside link text : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md039.md
|
* MD039/no-space-in-links : Spaces inside link text : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md039.md
|
||||||
*/
|
*/
|
||||||
MD039?: boolean;
|
MD039?: boolean | "error";
|
||||||
/**
|
/**
|
||||||
* MD039/no-space-in-links : Spaces inside link text : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md039.md
|
* 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;
|
"no-space-in-links"?: boolean | "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
|
* MD040/fenced-code-language : Fenced code blocks should have a language specified : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md040.md
|
||||||
*/
|
*/
|
||||||
MD040?:
|
MD040?:
|
||||||
| boolean
|
| boolean
|
||||||
|
| "error"
|
||||||
| {
|
| {
|
||||||
/**
|
/**
|
||||||
* List of languages
|
* List of languages
|
||||||
|
@ -735,6 +775,7 @@ export interface ConfigurationStrict {
|
||||||
*/
|
*/
|
||||||
"fenced-code-language"?:
|
"fenced-code-language"?:
|
||||||
| boolean
|
| boolean
|
||||||
|
| "error"
|
||||||
| {
|
| {
|
||||||
/**
|
/**
|
||||||
* List of languages
|
* List of languages
|
||||||
|
@ -750,6 +791,7 @@ export interface ConfigurationStrict {
|
||||||
*/
|
*/
|
||||||
MD041?:
|
MD041?:
|
||||||
| boolean
|
| boolean
|
||||||
|
| "error"
|
||||||
| {
|
| {
|
||||||
/**
|
/**
|
||||||
* Allow content before first heading
|
* Allow content before first heading
|
||||||
|
@ -769,6 +811,7 @@ export interface ConfigurationStrict {
|
||||||
*/
|
*/
|
||||||
"first-line-heading"?:
|
"first-line-heading"?:
|
||||||
| boolean
|
| boolean
|
||||||
|
| "error"
|
||||||
| {
|
| {
|
||||||
/**
|
/**
|
||||||
* Allow content before first heading
|
* Allow content before first heading
|
||||||
|
@ -788,6 +831,7 @@ export interface ConfigurationStrict {
|
||||||
*/
|
*/
|
||||||
"first-line-h1"?:
|
"first-line-h1"?:
|
||||||
| boolean
|
| boolean
|
||||||
|
| "error"
|
||||||
| {
|
| {
|
||||||
/**
|
/**
|
||||||
* Allow content before first heading
|
* Allow content before first heading
|
||||||
|
@ -805,16 +849,17 @@ export interface ConfigurationStrict {
|
||||||
/**
|
/**
|
||||||
* MD042/no-empty-links : No empty links : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md042.md
|
* MD042/no-empty-links : No empty links : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md042.md
|
||||||
*/
|
*/
|
||||||
MD042?: boolean;
|
MD042?: boolean | "error";
|
||||||
/**
|
/**
|
||||||
* MD042/no-empty-links : No empty links : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md042.md
|
* MD042/no-empty-links : No empty links : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md042.md
|
||||||
*/
|
*/
|
||||||
"no-empty-links"?: boolean;
|
"no-empty-links"?: boolean | "error";
|
||||||
/**
|
/**
|
||||||
* MD043/required-headings : Required heading structure : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md043.md
|
* MD043/required-headings : Required heading structure : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md043.md
|
||||||
*/
|
*/
|
||||||
MD043?:
|
MD043?:
|
||||||
| boolean
|
| boolean
|
||||||
|
| "error"
|
||||||
| {
|
| {
|
||||||
/**
|
/**
|
||||||
* List of headings
|
* List of headings
|
||||||
|
@ -830,6 +875,7 @@ export interface ConfigurationStrict {
|
||||||
*/
|
*/
|
||||||
"required-headings"?:
|
"required-headings"?:
|
||||||
| boolean
|
| boolean
|
||||||
|
| "error"
|
||||||
| {
|
| {
|
||||||
/**
|
/**
|
||||||
* List of headings
|
* List of headings
|
||||||
|
@ -845,6 +891,7 @@ export interface ConfigurationStrict {
|
||||||
*/
|
*/
|
||||||
MD044?:
|
MD044?:
|
||||||
| boolean
|
| boolean
|
||||||
|
| "error"
|
||||||
| {
|
| {
|
||||||
/**
|
/**
|
||||||
* List of proper names
|
* List of proper names
|
||||||
|
@ -864,6 +911,7 @@ export interface ConfigurationStrict {
|
||||||
*/
|
*/
|
||||||
"proper-names"?:
|
"proper-names"?:
|
||||||
| boolean
|
| boolean
|
||||||
|
| "error"
|
||||||
| {
|
| {
|
||||||
/**
|
/**
|
||||||
* List of proper names
|
* List of proper names
|
||||||
|
@ -881,16 +929,17 @@ 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/no-alt-text : Images should have alternate text (alt text) : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md045.md
|
||||||
*/
|
*/
|
||||||
MD045?: boolean;
|
MD045?: boolean | "error";
|
||||||
/**
|
/**
|
||||||
* MD045/no-alt-text : Images should have alternate text (alt text) : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md045.md
|
* 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;
|
"no-alt-text"?: boolean | "error";
|
||||||
/**
|
/**
|
||||||
* MD046/code-block-style : Code block style : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md046.md
|
* MD046/code-block-style : Code block style : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md046.md
|
||||||
*/
|
*/
|
||||||
MD046?:
|
MD046?:
|
||||||
| boolean
|
| boolean
|
||||||
|
| "error"
|
||||||
| {
|
| {
|
||||||
/**
|
/**
|
||||||
* Block style
|
* Block style
|
||||||
|
@ -902,6 +951,7 @@ export interface ConfigurationStrict {
|
||||||
*/
|
*/
|
||||||
"code-block-style"?:
|
"code-block-style"?:
|
||||||
| boolean
|
| boolean
|
||||||
|
| "error"
|
||||||
| {
|
| {
|
||||||
/**
|
/**
|
||||||
* Block style
|
* Block style
|
||||||
|
@ -911,16 +961,17 @@ 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/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;
|
MD047?: boolean | "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
|
* 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;
|
"single-trailing-newline"?: boolean | "error";
|
||||||
/**
|
/**
|
||||||
* MD048/code-fence-style : Code fence style : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md048.md
|
* MD048/code-fence-style : Code fence style : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md048.md
|
||||||
*/
|
*/
|
||||||
MD048?:
|
MD048?:
|
||||||
| boolean
|
| boolean
|
||||||
|
| "error"
|
||||||
| {
|
| {
|
||||||
/**
|
/**
|
||||||
* Code fence style
|
* Code fence style
|
||||||
|
@ -932,6 +983,7 @@ export interface ConfigurationStrict {
|
||||||
*/
|
*/
|
||||||
"code-fence-style"?:
|
"code-fence-style"?:
|
||||||
| boolean
|
| boolean
|
||||||
|
| "error"
|
||||||
| {
|
| {
|
||||||
/**
|
/**
|
||||||
* Code fence style
|
* Code fence style
|
||||||
|
@ -943,6 +995,7 @@ export interface ConfigurationStrict {
|
||||||
*/
|
*/
|
||||||
MD049?:
|
MD049?:
|
||||||
| boolean
|
| boolean
|
||||||
|
| "error"
|
||||||
| {
|
| {
|
||||||
/**
|
/**
|
||||||
* Emphasis style
|
* Emphasis style
|
||||||
|
@ -954,6 +1007,7 @@ export interface ConfigurationStrict {
|
||||||
*/
|
*/
|
||||||
"emphasis-style"?:
|
"emphasis-style"?:
|
||||||
| boolean
|
| boolean
|
||||||
|
| "error"
|
||||||
| {
|
| {
|
||||||
/**
|
/**
|
||||||
* Emphasis style
|
* Emphasis style
|
||||||
|
@ -965,6 +1019,7 @@ export interface ConfigurationStrict {
|
||||||
*/
|
*/
|
||||||
MD050?:
|
MD050?:
|
||||||
| boolean
|
| boolean
|
||||||
|
| "error"
|
||||||
| {
|
| {
|
||||||
/**
|
/**
|
||||||
* Strong style
|
* Strong style
|
||||||
|
@ -976,6 +1031,7 @@ export interface ConfigurationStrict {
|
||||||
*/
|
*/
|
||||||
"strong-style"?:
|
"strong-style"?:
|
||||||
| boolean
|
| boolean
|
||||||
|
| "error"
|
||||||
| {
|
| {
|
||||||
/**
|
/**
|
||||||
* Strong style
|
* Strong style
|
||||||
|
@ -987,6 +1043,7 @@ export interface ConfigurationStrict {
|
||||||
*/
|
*/
|
||||||
MD051?:
|
MD051?:
|
||||||
| boolean
|
| boolean
|
||||||
|
| "error"
|
||||||
| {
|
| {
|
||||||
/**
|
/**
|
||||||
* Ignore case of fragments
|
* Ignore case of fragments
|
||||||
|
@ -1002,6 +1059,7 @@ export interface ConfigurationStrict {
|
||||||
*/
|
*/
|
||||||
"link-fragments"?:
|
"link-fragments"?:
|
||||||
| boolean
|
| boolean
|
||||||
|
| "error"
|
||||||
| {
|
| {
|
||||||
/**
|
/**
|
||||||
* Ignore case of fragments
|
* Ignore case of fragments
|
||||||
|
@ -1017,6 +1075,7 @@ export interface ConfigurationStrict {
|
||||||
*/
|
*/
|
||||||
MD052?:
|
MD052?:
|
||||||
| boolean
|
| boolean
|
||||||
|
| "error"
|
||||||
| {
|
| {
|
||||||
/**
|
/**
|
||||||
* Ignored link labels
|
* Ignored link labels
|
||||||
|
@ -1032,6 +1091,7 @@ export interface ConfigurationStrict {
|
||||||
*/
|
*/
|
||||||
"reference-links-images"?:
|
"reference-links-images"?:
|
||||||
| boolean
|
| boolean
|
||||||
|
| "error"
|
||||||
| {
|
| {
|
||||||
/**
|
/**
|
||||||
* Ignored link labels
|
* Ignored link labels
|
||||||
|
@ -1047,6 +1107,7 @@ export interface ConfigurationStrict {
|
||||||
*/
|
*/
|
||||||
MD053?:
|
MD053?:
|
||||||
| boolean
|
| boolean
|
||||||
|
| "error"
|
||||||
| {
|
| {
|
||||||
/**
|
/**
|
||||||
* Ignored definitions
|
* Ignored definitions
|
||||||
|
@ -1058,6 +1119,7 @@ export interface ConfigurationStrict {
|
||||||
*/
|
*/
|
||||||
"link-image-reference-definitions"?:
|
"link-image-reference-definitions"?:
|
||||||
| boolean
|
| boolean
|
||||||
|
| "error"
|
||||||
| {
|
| {
|
||||||
/**
|
/**
|
||||||
* Ignored definitions
|
* Ignored definitions
|
||||||
|
@ -1069,6 +1131,7 @@ export interface ConfigurationStrict {
|
||||||
*/
|
*/
|
||||||
MD054?:
|
MD054?:
|
||||||
| boolean
|
| boolean
|
||||||
|
| "error"
|
||||||
| {
|
| {
|
||||||
/**
|
/**
|
||||||
* Allow autolinks
|
* Allow autolinks
|
||||||
|
@ -1100,6 +1163,7 @@ export interface ConfigurationStrict {
|
||||||
*/
|
*/
|
||||||
"link-image-style"?:
|
"link-image-style"?:
|
||||||
| boolean
|
| boolean
|
||||||
|
| "error"
|
||||||
| {
|
| {
|
||||||
/**
|
/**
|
||||||
* Allow autolinks
|
* Allow autolinks
|
||||||
|
@ -1131,6 +1195,7 @@ export interface ConfigurationStrict {
|
||||||
*/
|
*/
|
||||||
MD055?:
|
MD055?:
|
||||||
| boolean
|
| boolean
|
||||||
|
| "error"
|
||||||
| {
|
| {
|
||||||
/**
|
/**
|
||||||
* Table pipe style
|
* Table pipe style
|
||||||
|
@ -1142,6 +1207,7 @@ export interface ConfigurationStrict {
|
||||||
*/
|
*/
|
||||||
"table-pipe-style"?:
|
"table-pipe-style"?:
|
||||||
| boolean
|
| boolean
|
||||||
|
| "error"
|
||||||
| {
|
| {
|
||||||
/**
|
/**
|
||||||
* Table pipe style
|
* Table pipe style
|
||||||
|
@ -1151,24 +1217,25 @@ export interface ConfigurationStrict {
|
||||||
/**
|
/**
|
||||||
* MD056/table-column-count : Table column count : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md056.md
|
* MD056/table-column-count : Table column count : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md056.md
|
||||||
*/
|
*/
|
||||||
MD056?: boolean;
|
MD056?: boolean | "error";
|
||||||
/**
|
/**
|
||||||
* MD056/table-column-count : Table column count : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md056.md
|
* MD056/table-column-count : Table column count : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md056.md
|
||||||
*/
|
*/
|
||||||
"table-column-count"?: boolean;
|
"table-column-count"?: boolean | "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/blanks-around-tables : Tables should be surrounded by blank lines : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md058.md
|
||||||
*/
|
*/
|
||||||
MD058?: boolean;
|
MD058?: boolean | "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/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;
|
"blanks-around-tables"?: boolean | "error";
|
||||||
/**
|
/**
|
||||||
* MD059/descriptive-link-text : Link text should be descriptive : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md059.md
|
* MD059/descriptive-link-text : Link text should be descriptive : https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md059.md
|
||||||
*/
|
*/
|
||||||
MD059?:
|
MD059?:
|
||||||
| boolean
|
| boolean
|
||||||
|
| "error"
|
||||||
| {
|
| {
|
||||||
/**
|
/**
|
||||||
* Prohibited link texts
|
* Prohibited link texts
|
||||||
|
@ -1180,6 +1247,7 @@ export interface ConfigurationStrict {
|
||||||
*/
|
*/
|
||||||
"descriptive-link-text"?:
|
"descriptive-link-text"?:
|
||||||
| boolean
|
| boolean
|
||||||
|
| "error"
|
||||||
| {
|
| {
|
||||||
/**
|
/**
|
||||||
* Prohibited link texts
|
* Prohibited link texts
|
||||||
|
@ -1191,6 +1259,7 @@ export interface ConfigurationStrict {
|
||||||
*/
|
*/
|
||||||
MD060?:
|
MD060?:
|
||||||
| boolean
|
| boolean
|
||||||
|
| "error"
|
||||||
| {
|
| {
|
||||||
/**
|
/**
|
||||||
* Table column style
|
* Table column style
|
||||||
|
@ -1202,6 +1271,7 @@ export interface ConfigurationStrict {
|
||||||
*/
|
*/
|
||||||
"table-column-style"?:
|
"table-column-style"?:
|
||||||
| boolean
|
| boolean
|
||||||
|
| "error"
|
||||||
| {
|
| {
|
||||||
/**
|
/**
|
||||||
* Table column style
|
* Table column style
|
||||||
|
@ -1211,97 +1281,97 @@ export interface ConfigurationStrict {
|
||||||
/**
|
/**
|
||||||
* headings : MD001, MD003, MD018, MD019, MD020, MD021, MD022, MD023, MD024, MD025, MD026, MD036, MD041, MD043
|
* headings : MD001, MD003, MD018, MD019, MD020, MD021, MD022, MD023, MD024, MD025, MD026, MD036, MD041, MD043
|
||||||
*/
|
*/
|
||||||
headings?: boolean;
|
headings?: boolean | "error";
|
||||||
/**
|
/**
|
||||||
* bullet : MD004, MD005, MD007, MD032
|
* bullet : MD004, MD005, MD007, MD032
|
||||||
*/
|
*/
|
||||||
bullet?: boolean;
|
bullet?: boolean | "error";
|
||||||
/**
|
/**
|
||||||
* ul : MD004, MD005, MD007, MD030, MD032
|
* ul : MD004, MD005, MD007, MD030, MD032
|
||||||
*/
|
*/
|
||||||
ul?: boolean;
|
ul?: boolean | "error";
|
||||||
/**
|
/**
|
||||||
* indentation : MD005, MD007, MD027
|
* indentation : MD005, MD007, MD027
|
||||||
*/
|
*/
|
||||||
indentation?: boolean;
|
indentation?: boolean | "error";
|
||||||
/**
|
/**
|
||||||
* whitespace : MD009, MD010, MD012, MD027, MD028, MD030, MD037, MD038, MD039
|
* whitespace : MD009, MD010, MD012, MD027, MD028, MD030, MD037, MD038, MD039
|
||||||
*/
|
*/
|
||||||
whitespace?: boolean;
|
whitespace?: boolean | "error";
|
||||||
/**
|
/**
|
||||||
* hard_tab : MD010
|
* hard_tab : MD010
|
||||||
*/
|
*/
|
||||||
hard_tab?: boolean;
|
hard_tab?: boolean | "error";
|
||||||
/**
|
/**
|
||||||
* links : MD011, MD034, MD039, MD042, MD051, MD052, MD053, MD054, MD059
|
* links : MD011, MD034, MD039, MD042, MD051, MD052, MD053, MD054, MD059
|
||||||
*/
|
*/
|
||||||
links?: boolean;
|
links?: boolean | "error";
|
||||||
/**
|
/**
|
||||||
* blank_lines : MD012, MD022, MD031, MD032, MD047
|
* blank_lines : MD012, MD022, MD031, MD032, MD047
|
||||||
*/
|
*/
|
||||||
blank_lines?: boolean;
|
blank_lines?: boolean | "error";
|
||||||
/**
|
/**
|
||||||
* line_length : MD013
|
* line_length : MD013
|
||||||
*/
|
*/
|
||||||
line_length?: boolean;
|
line_length?: boolean | "error";
|
||||||
/**
|
/**
|
||||||
* code : MD014, MD031, MD038, MD040, MD046, MD048
|
* code : MD014, MD031, MD038, MD040, MD046, MD048
|
||||||
*/
|
*/
|
||||||
code?: boolean;
|
code?: boolean | "error";
|
||||||
/**
|
/**
|
||||||
* atx : MD018, MD019
|
* atx : MD018, MD019
|
||||||
*/
|
*/
|
||||||
atx?: boolean;
|
atx?: boolean | "error";
|
||||||
/**
|
/**
|
||||||
* spaces : MD018, MD019, MD020, MD021, MD023
|
* spaces : MD018, MD019, MD020, MD021, MD023
|
||||||
*/
|
*/
|
||||||
spaces?: boolean;
|
spaces?: boolean | "error";
|
||||||
/**
|
/**
|
||||||
* atx_closed : MD020, MD021
|
* atx_closed : MD020, MD021
|
||||||
*/
|
*/
|
||||||
atx_closed?: boolean;
|
atx_closed?: boolean | "error";
|
||||||
/**
|
/**
|
||||||
* blockquote : MD027, MD028
|
* blockquote : MD027, MD028
|
||||||
*/
|
*/
|
||||||
blockquote?: boolean;
|
blockquote?: boolean | "error";
|
||||||
/**
|
/**
|
||||||
* ol : MD029, MD030, MD032
|
* ol : MD029, MD030, MD032
|
||||||
*/
|
*/
|
||||||
ol?: boolean;
|
ol?: boolean | "error";
|
||||||
/**
|
/**
|
||||||
* html : MD033
|
* html : MD033
|
||||||
*/
|
*/
|
||||||
html?: boolean;
|
html?: boolean | "error";
|
||||||
/**
|
/**
|
||||||
* url : MD034
|
* url : MD034
|
||||||
*/
|
*/
|
||||||
url?: boolean;
|
url?: boolean | "error";
|
||||||
/**
|
/**
|
||||||
* hr : MD035
|
* hr : MD035
|
||||||
*/
|
*/
|
||||||
hr?: boolean;
|
hr?: boolean | "error";
|
||||||
/**
|
/**
|
||||||
* emphasis : MD036, MD037, MD049, MD050
|
* emphasis : MD036, MD037, MD049, MD050
|
||||||
*/
|
*/
|
||||||
emphasis?: boolean;
|
emphasis?: boolean | "error";
|
||||||
/**
|
/**
|
||||||
* language : MD040
|
* language : MD040
|
||||||
*/
|
*/
|
||||||
language?: boolean;
|
language?: boolean | "error";
|
||||||
/**
|
/**
|
||||||
* spelling : MD044
|
* spelling : MD044
|
||||||
*/
|
*/
|
||||||
spelling?: boolean;
|
spelling?: boolean | "error";
|
||||||
/**
|
/**
|
||||||
* accessibility : MD045, MD059
|
* accessibility : MD045, MD059
|
||||||
*/
|
*/
|
||||||
accessibility?: boolean;
|
accessibility?: boolean | "error";
|
||||||
/**
|
/**
|
||||||
* images : MD045, MD052, MD053, MD054
|
* images : MD045, MD052, MD053, MD054
|
||||||
*/
|
*/
|
||||||
images?: boolean;
|
images?: boolean | "error";
|
||||||
/**
|
/**
|
||||||
* table : MD055, MD056, MD058, MD060
|
* table : MD055, MD056, MD058, MD060
|
||||||
*/
|
*/
|
||||||
table?: boolean;
|
table?: boolean | "error";
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,6 +19,7 @@ const schema = {
|
||||||
"$id": schemaUri,
|
"$id": schemaUri,
|
||||||
"title": "markdownlint configuration schema",
|
"title": "markdownlint configuration schema",
|
||||||
"type": "object",
|
"type": "object",
|
||||||
|
/** @type {Object.<string, object>} */
|
||||||
"properties": {
|
"properties": {
|
||||||
"$schema": {
|
"$schema": {
|
||||||
"description": "JSON Schema URI (expected by some editors)",
|
"description": "JSON Schema URI (expected by some editors)",
|
||||||
|
@ -28,8 +29,8 @@ const schema = {
|
||||||
"default": {
|
"default": {
|
||||||
"description": "Default state for all rules",
|
"description": "Default state for all rules",
|
||||||
"oneOf": [
|
"oneOf": [
|
||||||
{ "type": "boolean" }
|
{ "type": "boolean" },
|
||||||
// { "enum": [ "error", "warning" ] }
|
{ "enum": [ "error" ] }
|
||||||
],
|
],
|
||||||
"default": true
|
"default": true
|
||||||
},
|
},
|
||||||
|
@ -49,6 +50,7 @@ const schema = {
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
/** @type {Object.<string, string[]>} */
|
||||||
const tags = {};
|
const tags = {};
|
||||||
|
|
||||||
// Add rules
|
// Add rules
|
||||||
|
@ -63,11 +65,12 @@ for (const rule of rules) {
|
||||||
"description":
|
"description":
|
||||||
`${rule.names.join("/")} : ${rule.description} : ${rule.information}`,
|
`${rule.names.join("/")} : ${rule.description} : ${rule.information}`,
|
||||||
"oneOf": [
|
"oneOf": [
|
||||||
{ "type": "boolean" }
|
{ "type": "boolean" },
|
||||||
// { "enum": [ "error", "warning" ] }
|
{ "enum": [ "error" ] }
|
||||||
],
|
],
|
||||||
"default": true
|
"default": true
|
||||||
};
|
};
|
||||||
|
/** @type {{type: "object", additionalProperties: boolean, properties?: object}} */
|
||||||
const subscheme = {
|
const subscheme = {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"additionalProperties": false
|
"additionalProperties": false
|
||||||
|
@ -649,7 +652,10 @@ for (const rule of rules) {
|
||||||
for (const [ tag, tagTags ] of Object.entries(tags)) {
|
for (const [ tag, tagTags ] of Object.entries(tags)) {
|
||||||
const scheme = {
|
const scheme = {
|
||||||
"description": `${tag} : ${tagTags.join(", ")}`,
|
"description": `${tag} : ${tagTags.join(", ")}`,
|
||||||
"type": "boolean",
|
"oneOf": [
|
||||||
|
{ "type": "boolean" },
|
||||||
|
{ "enum": [ "error" ] }
|
||||||
|
],
|
||||||
"default": true
|
"default": true
|
||||||
};
|
};
|
||||||
schema.properties[tag] = scheme;
|
schema.properties[tag] = scheme;
|
||||||
|
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -4,11 +4,13 @@ import fs from "node:fs/promises";
|
||||||
import path from "node:path";
|
import path from "node:path";
|
||||||
import { fileURLToPath } from "node:url";
|
import { fileURLToPath } from "node:url";
|
||||||
|
|
||||||
|
/* eslint-disable jsdoc/no-undefined-types */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the file name of the current module.
|
* Gets the file name of the current module.
|
||||||
* Shims import.meta.filename for Node 18.
|
* Shims import.meta.filename for Node 18.
|
||||||
*
|
*
|
||||||
* @param {Object} meta ESM import.meta object.
|
* @param {ImportMeta} meta ESM import.meta object.
|
||||||
* @returns {string} File name.
|
* @returns {string} File name.
|
||||||
*/
|
*/
|
||||||
// eslint-disable-next-line no-underscore-dangle
|
// eslint-disable-next-line no-underscore-dangle
|
||||||
|
@ -18,7 +20,7 @@ export const __filename = (meta) => fileURLToPath(meta.url);
|
||||||
* Gets the directory name of the current module.
|
* Gets the directory name of the current module.
|
||||||
* Shims import.meta.dirname for Node 18.
|
* Shims import.meta.dirname for Node 18.
|
||||||
*
|
*
|
||||||
* @param {Object} meta ESM import.meta object.
|
* @param {ImportMeta} meta ESM import.meta object.
|
||||||
* @returns {string} Directory name.
|
* @returns {string} Directory name.
|
||||||
*/
|
*/
|
||||||
// eslint-disable-next-line no-underscore-dangle
|
// eslint-disable-next-line no-underscore-dangle
|
||||||
|
@ -28,9 +30,9 @@ export const __dirname = (meta) => path.dirname(__filename(meta));
|
||||||
* Imports a file as JSON.
|
* Imports a file as JSON.
|
||||||
* Avoids "ExperimentalWarning: Importing JSON modules is an experimental feature and might change at any time".
|
* Avoids "ExperimentalWarning: Importing JSON modules is an experimental feature and might change at any time".
|
||||||
*
|
*
|
||||||
* @param {Object} meta ESM import.meta object.
|
* @param {ImportMeta} meta ESM import.meta object.
|
||||||
* @param {string} file JSON file to import.
|
* @param {string} file JSON file to import.
|
||||||
* @returns {Promise<Object>} JSON object.
|
* @returns {Promise<any>} JSON object.
|
||||||
*/
|
*/
|
||||||
export const importWithTypeJson = async(meta, file) => (
|
export const importWithTypeJson = async(meta, file) => (
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
|
|
|
@ -22,7 +22,9 @@ import * as constants from "../lib/constants.mjs";
|
||||||
import rules from "../lib/rules.mjs";
|
import rules from "../lib/rules.mjs";
|
||||||
import customRules from "./rules/rules.cjs";
|
import customRules from "./rules/rules.cjs";
|
||||||
import { __dirname, importWithTypeJson } from "./esm-helpers.mjs";
|
import { __dirname, importWithTypeJson } from "./esm-helpers.mjs";
|
||||||
|
/** @type {{exports: Object.<string, string>, homepage: string, version: string}} */
|
||||||
const packageJson = await importWithTypeJson(import.meta, "../package.json");
|
const packageJson = await importWithTypeJson(import.meta, "../package.json");
|
||||||
|
/** @type {{$id: string, properties: Object<string, any>}} */
|
||||||
const configSchema = await importWithTypeJson(import.meta, "../schema/markdownlint-config-schema.json");
|
const configSchema = await importWithTypeJson(import.meta, "../schema/markdownlint-config-schema.json");
|
||||||
const configSchemaStrict = await importWithTypeJson(import.meta, "../schema/markdownlint-config-schema-strict.json");
|
const configSchemaStrict = await importWithTypeJson(import.meta, "../schema/markdownlint-config-schema-strict.json");
|
||||||
|
|
||||||
|
@ -31,6 +33,10 @@ const ajvOptions = {
|
||||||
"allowUnionTypes": true
|
"allowUnionTypes": true
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/** @typedef {import("ava").ImplementationFn<[]>} ImplementationFn */
|
||||||
|
/** @typedef {import("markdownlint").Configuration} Configuration */
|
||||||
|
/** @typedef {import("markdownlint").LintResults} LintResults */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets an instance of a markdown-it factory, suitable for use with options.markdownItFactory.
|
* Gets an instance of a markdown-it factory, suitable for use with options.markdownItFactory.
|
||||||
*
|
*
|
||||||
|
@ -140,270 +146,272 @@ test("inputOnlyNewline", (t) => new Promise((resolve) => {
|
||||||
});
|
});
|
||||||
}));
|
}));
|
||||||
|
|
||||||
test("defaultTrue", (t) => new Promise((resolve) => {
|
/** @typedef {Object<string, string[]>} NormalizedLintResults */
|
||||||
t.plan(2);
|
|
||||||
const options = {
|
|
||||||
"files": [
|
|
||||||
"./test/atx_heading_spacing.md",
|
|
||||||
"./test/first_heading_bad_atx.md"
|
|
||||||
],
|
|
||||||
"config": {
|
|
||||||
"default": true
|
|
||||||
},
|
|
||||||
"noInlineConfig": true,
|
|
||||||
"resultVersion": 0
|
|
||||||
};
|
|
||||||
lintAsync(options, function callback(err, actualResult) {
|
|
||||||
t.falsy(err);
|
|
||||||
const expectedResult = {
|
|
||||||
"./test/atx_heading_spacing.md": {
|
|
||||||
"MD018": [ 1 ],
|
|
||||||
"MD019": [ 3, 5 ],
|
|
||||||
"MD041": [ 1 ]
|
|
||||||
},
|
|
||||||
"./test/first_heading_bad_atx.md": {
|
|
||||||
"MD041": [ 1 ]
|
|
||||||
}
|
|
||||||
};
|
|
||||||
// @ts-ignore
|
|
||||||
t.deepEqual(actualResult, expectedResult, "Undetected issues.");
|
|
||||||
resolve();
|
|
||||||
});
|
|
||||||
}));
|
|
||||||
|
|
||||||
test("defaultFalse", (t) => new Promise((resolve) => {
|
/**
|
||||||
t.plan(2);
|
* Normalizes LintResults.
|
||||||
const options = {
|
*
|
||||||
"files": [
|
* @param {LintResults} results LintResults.
|
||||||
"./test/atx_heading_spacing.md",
|
* @returns {NormalizedLintResults} Normalized LintResults.
|
||||||
"./test/first_heading_bad_atx.md"
|
*/
|
||||||
],
|
function normalizeLintResults(results) {
|
||||||
"config": {
|
return Object.fromEntries(
|
||||||
"default": false
|
Object.entries(results).map(
|
||||||
},
|
([ source, errors ]) => [
|
||||||
"noInlineConfig": true,
|
source,
|
||||||
"resultVersion": 0
|
errors.map(
|
||||||
};
|
({ lineNumber, ruleNames, severity }) => `${ruleNames[0]} ${lineNumber} ${severity}`
|
||||||
lintAsync(options, function callback(err, actualResult) {
|
)
|
||||||
t.falsy(err);
|
]
|
||||||
const expectedResult = {
|
)
|
||||||
"./test/atx_heading_spacing.md": {},
|
);
|
||||||
"./test/first_heading_bad_atx.md": {}
|
}
|
||||||
};
|
|
||||||
// @ts-ignore
|
|
||||||
t.deepEqual(actualResult, expectedResult, "Undetected issues.");
|
|
||||||
resolve();
|
|
||||||
});
|
|
||||||
}));
|
|
||||||
|
|
||||||
test("defaultUndefined", (t) => new Promise((resolve) => {
|
/**
|
||||||
t.plan(2);
|
* Gets a Configuration value test implementation.
|
||||||
const options = {
|
*
|
||||||
"files": [
|
* @param {Configuration} config Configuration object.
|
||||||
"./test/atx_heading_spacing.md",
|
* @param {NormalizedLintResults} expected Expected result.
|
||||||
"./test/first_heading_bad_atx.md"
|
* @returns {ImplementationFn} Test implementation.
|
||||||
],
|
*/
|
||||||
"config": {},
|
function getConfigTestImplementation(config, expected) {
|
||||||
"noInlineConfig": true,
|
return async(t) => {
|
||||||
"resultVersion": 0
|
t.plan(1);
|
||||||
};
|
const options = {
|
||||||
lintAsync(options, function callback(err, actualResult) {
|
config,
|
||||||
t.falsy(err);
|
"files": [
|
||||||
const expectedResult = {
|
"./test/atx_heading_spacing.md",
|
||||||
"./test/atx_heading_spacing.md": {
|
"./test/first_heading_bad_atx.md"
|
||||||
"MD018": [ 1 ],
|
],
|
||||||
"MD019": [ 3, 5 ],
|
"noInlineConfig": true
|
||||||
"MD041": [ 1 ]
|
|
||||||
},
|
|
||||||
"./test/first_heading_bad_atx.md": {
|
|
||||||
"MD041": [ 1 ]
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
// @ts-ignore
|
const actual = await lintPromise(options);
|
||||||
t.deepEqual(actualResult, expectedResult, "Undetected issues.");
|
t.deepEqual(normalizeLintResults(actual), expected);
|
||||||
resolve();
|
};
|
||||||
});
|
}
|
||||||
}));
|
|
||||||
|
|
||||||
test("disableRules", (t) => new Promise((resolve) => {
|
const configTestExpected = {
|
||||||
t.plan(2);
|
"./test/atx_heading_spacing.md": [],
|
||||||
const options = {
|
"./test/first_heading_bad_atx.md": []
|
||||||
"files": [
|
};
|
||||||
"./test/atx_heading_spacing.md",
|
const configTestExpected1 = {
|
||||||
"./test/no_first_line_heading.md"
|
"./test/atx_heading_spacing.md": [
|
||||||
],
|
"MD018 1 error"
|
||||||
"config": {
|
],
|
||||||
"default": true,
|
"./test/first_heading_bad_atx.md": []
|
||||||
"MD019": false,
|
};
|
||||||
"first-line-h1": false
|
const configTestExpected11 = {
|
||||||
},
|
"./test/atx_heading_spacing.md": [
|
||||||
"resultVersion": 0
|
"MD041 1 error"
|
||||||
};
|
],
|
||||||
lintAsync(options, function callback(err, actualResult) {
|
"./test/first_heading_bad_atx.md": [
|
||||||
t.falsy(err);
|
"MD041 1 error"
|
||||||
const expectedResult = {
|
]
|
||||||
"./test/atx_heading_spacing.md": {
|
};
|
||||||
"MD018": [ 1 ]
|
const configTestExpected135 = {
|
||||||
},
|
"./test/atx_heading_spacing.md": [
|
||||||
"./test/no_first_line_heading.md": {}
|
"MD018 1 error",
|
||||||
};
|
"MD019 3 error",
|
||||||
// @ts-ignore
|
"MD019 5 error"
|
||||||
t.deepEqual(actualResult, expectedResult, "Undetected issues.");
|
],
|
||||||
resolve();
|
"./test/first_heading_bad_atx.md": []
|
||||||
});
|
};
|
||||||
}));
|
const configTestExpected3511 = {
|
||||||
|
"./test/atx_heading_spacing.md": [
|
||||||
|
"MD019 3 error",
|
||||||
|
"MD019 5 error",
|
||||||
|
"MD041 1 error"
|
||||||
|
],
|
||||||
|
"./test/first_heading_bad_atx.md": [
|
||||||
|
"MD041 1 error"
|
||||||
|
]
|
||||||
|
};
|
||||||
|
const configTestExpected13511 = {
|
||||||
|
"./test/atx_heading_spacing.md": [
|
||||||
|
"MD018 1 error",
|
||||||
|
"MD019 3 error",
|
||||||
|
"MD019 5 error",
|
||||||
|
"MD041 1 error"
|
||||||
|
],
|
||||||
|
"./test/first_heading_bad_atx.md": [
|
||||||
|
"MD041 1 error"
|
||||||
|
]
|
||||||
|
};
|
||||||
|
|
||||||
test("enableRules", (t) => new Promise((resolve) => {
|
test("defaultUnset", getConfigTestImplementation(
|
||||||
t.plan(2);
|
{},
|
||||||
const options = {
|
configTestExpected13511
|
||||||
"files": [
|
));
|
||||||
"./test/atx_heading_spacing.md",
|
|
||||||
"./test/first_heading_bad_atx.md"
|
|
||||||
],
|
|
||||||
"config": {
|
|
||||||
"MD041": true,
|
|
||||||
"default": false,
|
|
||||||
"no-multiple-space-atx": true
|
|
||||||
},
|
|
||||||
"noInlineConfig": true,
|
|
||||||
"resultVersion": 0
|
|
||||||
};
|
|
||||||
lintAsync(options, function callback(err, actualResult) {
|
|
||||||
t.falsy(err);
|
|
||||||
const expectedResult = {
|
|
||||||
"./test/atx_heading_spacing.md": {
|
|
||||||
"MD019": [ 3, 5 ],
|
|
||||||
"MD041": [ 1 ]
|
|
||||||
},
|
|
||||||
"./test/first_heading_bad_atx.md": {
|
|
||||||
"MD041": [ 1 ]
|
|
||||||
}
|
|
||||||
};
|
|
||||||
// @ts-ignore
|
|
||||||
t.deepEqual(actualResult, expectedResult, "Undetected issues.");
|
|
||||||
resolve();
|
|
||||||
});
|
|
||||||
}));
|
|
||||||
|
|
||||||
test("enableRulesMixedCase", (t) => new Promise((resolve) => {
|
test("defaultTrue", getConfigTestImplementation(
|
||||||
t.plan(2);
|
{ "default": true },
|
||||||
const options = {
|
configTestExpected13511
|
||||||
"files": [
|
));
|
||||||
"./test/atx_heading_spacing.md",
|
|
||||||
"./test/first_heading_bad_atx.md"
|
|
||||||
],
|
|
||||||
"config": {
|
|
||||||
"Md041": true,
|
|
||||||
"DeFaUlT": false,
|
|
||||||
"nO-mUlTiPlE-sPaCe-AtX": true
|
|
||||||
},
|
|
||||||
"noInlineConfig": true,
|
|
||||||
"resultVersion": 0
|
|
||||||
};
|
|
||||||
lintAsync(options, function callback(err, actualResult) {
|
|
||||||
t.falsy(err);
|
|
||||||
const expectedResult = {
|
|
||||||
"./test/atx_heading_spacing.md": {
|
|
||||||
"MD019": [ 3, 5 ],
|
|
||||||
"MD041": [ 1 ]
|
|
||||||
},
|
|
||||||
"./test/first_heading_bad_atx.md": {
|
|
||||||
"MD041": [ 1 ]
|
|
||||||
}
|
|
||||||
};
|
|
||||||
// @ts-ignore
|
|
||||||
t.deepEqual(actualResult, expectedResult, "Undetected issues.");
|
|
||||||
resolve();
|
|
||||||
});
|
|
||||||
}));
|
|
||||||
|
|
||||||
test("disableTag", (t) => new Promise((resolve) => {
|
test("defaultFalse", getConfigTestImplementation(
|
||||||
t.plan(2);
|
{ "default": false },
|
||||||
const options = {
|
configTestExpected
|
||||||
"files": [
|
));
|
||||||
"./test/atx_heading_spacing.md",
|
|
||||||
"./test/first_heading_bad_atx.md"
|
|
||||||
],
|
|
||||||
"config": {
|
|
||||||
"default": true,
|
|
||||||
"spaces": false
|
|
||||||
},
|
|
||||||
"noInlineConfig": true,
|
|
||||||
"resultVersion": 0
|
|
||||||
};
|
|
||||||
lintAsync(options, function callback(err, actualResult) {
|
|
||||||
t.falsy(err);
|
|
||||||
const expectedResult = {
|
|
||||||
"./test/atx_heading_spacing.md": {
|
|
||||||
"MD041": [ 1 ]
|
|
||||||
},
|
|
||||||
"./test/first_heading_bad_atx.md": {
|
|
||||||
"MD041": [ 1 ]
|
|
||||||
}
|
|
||||||
};
|
|
||||||
// @ts-ignore
|
|
||||||
t.deepEqual(actualResult, expectedResult, "Undetected issues.");
|
|
||||||
resolve();
|
|
||||||
});
|
|
||||||
}));
|
|
||||||
|
|
||||||
test("enableTag", (t) => new Promise((resolve) => {
|
test("defaultTruthy", getConfigTestImplementation(
|
||||||
t.plan(2);
|
// @ts-ignore
|
||||||
const options = {
|
{ "default": 1 },
|
||||||
"files": [
|
configTestExpected13511
|
||||||
"./test/atx_heading_spacing.md",
|
));
|
||||||
"./test/first_heading_bad_atx.md"
|
|
||||||
],
|
|
||||||
"config": {
|
|
||||||
"default": false,
|
|
||||||
"spaces": true,
|
|
||||||
"notatag": true
|
|
||||||
},
|
|
||||||
"resultVersion": 0
|
|
||||||
};
|
|
||||||
lintAsync(options, function callback(err, actualResult) {
|
|
||||||
t.falsy(err);
|
|
||||||
const expectedResult = {
|
|
||||||
"./test/atx_heading_spacing.md": {
|
|
||||||
"MD018": [ 1 ],
|
|
||||||
"MD019": [ 3, 5 ]
|
|
||||||
},
|
|
||||||
"./test/first_heading_bad_atx.md": {}
|
|
||||||
};
|
|
||||||
// @ts-ignore
|
|
||||||
t.deepEqual(actualResult, expectedResult, "Undetected issues.");
|
|
||||||
resolve();
|
|
||||||
});
|
|
||||||
}));
|
|
||||||
|
|
||||||
test("enableTagMixedCase", (t) => new Promise((resolve) => {
|
test("defaultFalsy", getConfigTestImplementation(
|
||||||
t.plan(2);
|
// @ts-ignore
|
||||||
const options = {
|
{ "default": 0 },
|
||||||
"files": [
|
configTestExpected
|
||||||
"./test/atx_heading_spacing.md",
|
));
|
||||||
"./test/first_heading_bad_atx.md"
|
|
||||||
],
|
test("defaultError", getConfigTestImplementation(
|
||||||
"config": {
|
{ "default": "error" },
|
||||||
"DeFaUlT": false,
|
configTestExpected13511
|
||||||
"SpAcEs": true,
|
));
|
||||||
"NoTaTaG": true
|
|
||||||
},
|
test("defaultWarning", getConfigTestImplementation(
|
||||||
"resultVersion": 0
|
// @ts-ignore
|
||||||
};
|
{ "default": "warning" },
|
||||||
lintAsync(options, function callback(err, actualResult) {
|
configTestExpected13511
|
||||||
t.falsy(err);
|
));
|
||||||
const expectedResult = {
|
|
||||||
"./test/atx_heading_spacing.md": {
|
test("defaultOff", getConfigTestImplementation(
|
||||||
"MD018": [ 1 ],
|
// @ts-ignore
|
||||||
"MD019": [ 3, 5 ]
|
{ "default": "off" },
|
||||||
},
|
configTestExpected13511
|
||||||
"./test/first_heading_bad_atx.md": {}
|
));
|
||||||
};
|
|
||||||
|
test("disableRules", getConfigTestImplementation(
|
||||||
|
{
|
||||||
|
"default": true,
|
||||||
|
"MD019": false,
|
||||||
|
"first-line-h1": false,
|
||||||
|
"extra": false
|
||||||
|
},
|
||||||
|
configTestExpected1
|
||||||
|
));
|
||||||
|
|
||||||
|
test("disableRulesFalsy", getConfigTestImplementation(
|
||||||
|
{
|
||||||
|
"default": true,
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
t.deepEqual(actualResult, expectedResult, "Undetected issues.");
|
"MD019": 0,
|
||||||
resolve();
|
// @ts-ignore
|
||||||
});
|
"first-line-h1": 0,
|
||||||
}));
|
"extra": 0
|
||||||
|
},
|
||||||
|
configTestExpected1
|
||||||
|
));
|
||||||
|
|
||||||
|
test("enableRules", getConfigTestImplementation(
|
||||||
|
{
|
||||||
|
"MD041": true,
|
||||||
|
"default": false,
|
||||||
|
"no-multiple-space-atx": true,
|
||||||
|
"extra": true
|
||||||
|
},
|
||||||
|
configTestExpected3511
|
||||||
|
));
|
||||||
|
|
||||||
|
test("enableRulesMixedCase", getConfigTestImplementation(
|
||||||
|
{
|
||||||
|
"Md041": true,
|
||||||
|
"DeFaUlT": false,
|
||||||
|
"nO-mUlTiPlE-sPaCe-AtX": true,
|
||||||
|
"ExTrA": true
|
||||||
|
},
|
||||||
|
configTestExpected3511
|
||||||
|
));
|
||||||
|
|
||||||
|
test("enableRulesTruthy", getConfigTestImplementation(
|
||||||
|
{
|
||||||
|
// @ts-ignore
|
||||||
|
"MD041": 1,
|
||||||
|
"default": false,
|
||||||
|
// @ts-ignore
|
||||||
|
"no-multiple-space-atx": 1,
|
||||||
|
"extra": 1
|
||||||
|
},
|
||||||
|
configTestExpected3511
|
||||||
|
));
|
||||||
|
|
||||||
|
test("enableRulesString", getConfigTestImplementation(
|
||||||
|
{
|
||||||
|
"MD041": "error",
|
||||||
|
"default": false,
|
||||||
|
"no-multiple-space-atx": "error",
|
||||||
|
"extra": "error"
|
||||||
|
},
|
||||||
|
configTestExpected3511
|
||||||
|
));
|
||||||
|
|
||||||
|
test("enableRulesEmptyObject", getConfigTestImplementation(
|
||||||
|
{
|
||||||
|
"MD041": {},
|
||||||
|
"default": false,
|
||||||
|
// @ts-ignore
|
||||||
|
"no-multiple-space-atx": {},
|
||||||
|
"extra": {}
|
||||||
|
},
|
||||||
|
configTestExpected3511
|
||||||
|
));
|
||||||
|
|
||||||
|
test("disableTag", getConfigTestImplementation(
|
||||||
|
{
|
||||||
|
"default": true,
|
||||||
|
"spaces": false,
|
||||||
|
"extra": false
|
||||||
|
},
|
||||||
|
configTestExpected11
|
||||||
|
));
|
||||||
|
|
||||||
|
test("disableTagFalsy", getConfigTestImplementation(
|
||||||
|
{
|
||||||
|
"default": true,
|
||||||
|
// @ts-ignore
|
||||||
|
"spaces": 0,
|
||||||
|
"extra": 0
|
||||||
|
},
|
||||||
|
configTestExpected11
|
||||||
|
));
|
||||||
|
|
||||||
|
test("enableTag", getConfigTestImplementation(
|
||||||
|
{
|
||||||
|
"default": false,
|
||||||
|
"spaces": true,
|
||||||
|
"extra": true
|
||||||
|
},
|
||||||
|
configTestExpected135
|
||||||
|
));
|
||||||
|
|
||||||
|
test("enableTagMixedCase", getConfigTestImplementation(
|
||||||
|
{
|
||||||
|
"DeFaUlT": false,
|
||||||
|
"SpAcEs": true,
|
||||||
|
"ExTrA": true
|
||||||
|
},
|
||||||
|
configTestExpected135
|
||||||
|
));
|
||||||
|
|
||||||
|
test("enableTagTruthy", getConfigTestImplementation(
|
||||||
|
{
|
||||||
|
"default": false,
|
||||||
|
// @ts-ignore
|
||||||
|
"spaces": 1,
|
||||||
|
"extra": 1
|
||||||
|
},
|
||||||
|
configTestExpected135
|
||||||
|
));
|
||||||
|
|
||||||
|
test("enableTagString", getConfigTestImplementation(
|
||||||
|
{
|
||||||
|
"default": false,
|
||||||
|
"spaces": "error",
|
||||||
|
"extra": "error"
|
||||||
|
},
|
||||||
|
configTestExpected135
|
||||||
|
));
|
||||||
|
|
||||||
test("styleFiles", async(t) => {
|
test("styleFiles", async(t) => {
|
||||||
t.plan(8);
|
t.plan(8);
|
||||||
|
@ -802,6 +810,7 @@ test("customFileSystemSync", (t) => {
|
||||||
t.plan(2);
|
t.plan(2);
|
||||||
const file = "/dir/file.md";
|
const file = "/dir/file.md";
|
||||||
const fsApi = {
|
const fsApi = {
|
||||||
|
// @ts-ignore
|
||||||
"readFileSync": (p) => {
|
"readFileSync": (p) => {
|
||||||
t.is(p, file);
|
t.is(p, file);
|
||||||
return "# Heading";
|
return "# Heading";
|
||||||
|
@ -818,6 +827,7 @@ test("customFileSystemAsync", (t) => new Promise((resolve) => {
|
||||||
t.plan(3);
|
t.plan(3);
|
||||||
const file = "/dir/file.md";
|
const file = "/dir/file.md";
|
||||||
const fsApi = {
|
const fsApi = {
|
||||||
|
// @ts-ignore
|
||||||
"readFile": (p, o, cb) => {
|
"readFile": (p, o, cb) => {
|
||||||
t.is(p, file);
|
t.is(p, file);
|
||||||
cb(null, "# Heading");
|
cb(null, "# Heading");
|
||||||
|
@ -836,6 +846,7 @@ test("customFileSystemAsync", (t) => new Promise((resolve) => {
|
||||||
|
|
||||||
test("readme", async(t) => {
|
test("readme", async(t) => {
|
||||||
t.plan(132);
|
t.plan(132);
|
||||||
|
/** @type {Object.<string, string[]>} */
|
||||||
const tagToRules = {};
|
const tagToRules = {};
|
||||||
for (const rule of rules) {
|
for (const rule of rules) {
|
||||||
for (const tag of rule.tags) {
|
for (const tag of rule.tags) {
|
||||||
|
@ -894,7 +905,7 @@ test("readme", async(t) => {
|
||||||
} else if (inTags) {
|
} else if (inTags) {
|
||||||
const parts =
|
const parts =
|
||||||
token.content.replace(/[`*]/g, "").split(/ - |, |,\n/);
|
token.content.replace(/[`*]/g, "").split(/ - |, |,\n/);
|
||||||
const tag = parts.shift();
|
const tag = parts.shift() || "";
|
||||||
t.deepEqual(parts, tagToRules[tag] || [],
|
t.deepEqual(parts, tagToRules[tag] || [],
|
||||||
"Rule mismatch for tag " + tag + ".");
|
"Rule mismatch for tag " + tag + ".");
|
||||||
delete tagToRules[tag];
|
delete tagToRules[tag];
|
||||||
|
@ -1248,6 +1259,7 @@ test("token-map-spans", (t) => {
|
||||||
"tags": [ "tms" ],
|
"tags": [ "tms" ],
|
||||||
"parser": "markdownit",
|
"parser": "markdownit",
|
||||||
"function": function tokenMapSpans(params) {
|
"function": function tokenMapSpans(params) {
|
||||||
|
/** @type {number[]} */
|
||||||
const tokenLines = [];
|
const tokenLines = [];
|
||||||
let lastLineNumber = -1;
|
let lastLineNumber = -1;
|
||||||
const inlines = params.parsers.markdownit.tokens.filter(
|
const inlines = params.parsers.markdownit.tokens.filter(
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue