mirror of
https://github.com/DavidAnson/markdownlint.git
synced 2025-12-16 14:00:13 +01:00
Add style "zero" to MD029/ol-prefix (fixes #140).
This commit is contained in:
parent
2ccacf03f5
commit
ed295cd947
11 changed files with 189 additions and 8 deletions
15
doc/Rules.md
15
doc/Rules.md
|
|
@ -863,11 +863,12 @@ Tags: ol
|
|||
|
||||
Aliases: ol-prefix
|
||||
|
||||
Parameters: style ("one", "ordered", "one_or_ordered"; default "one_or_ordered")
|
||||
Parameters: style ("one", "ordered", "one_or_ordered", "zero"; default "one_or_ordered")
|
||||
|
||||
This rule is triggered on ordered lists that do not either start with '1.' or
|
||||
This rule is triggered for ordered lists that do not either start with '1.' or
|
||||
do not have a prefix that increases in numerical order (depending on the
|
||||
configured style).
|
||||
configured style). The less-common pattern of using '0.' for all prefixes is
|
||||
also supported.
|
||||
|
||||
Example valid list if the style is configured as 'one':
|
||||
|
||||
|
|
@ -887,6 +888,14 @@ Example valid list if the style is configured as 'ordered':
|
|||
|
||||
Both examples are valid when the style is configured as 'one_or_ordered'.
|
||||
|
||||
Example valid list if the style is configured as 'zero':
|
||||
|
||||
```markdown
|
||||
0. Do this.
|
||||
0. Do that.
|
||||
0. Done.
|
||||
```
|
||||
|
||||
Example invalid list for all styles:
|
||||
|
||||
```markdown
|
||||
|
|
|
|||
10
lib/md029.js
10
lib/md029.js
|
|
@ -4,6 +4,12 @@
|
|||
|
||||
const shared = require("./shared");
|
||||
|
||||
const listStyleExamples = {
|
||||
"one": "1/1/1",
|
||||
"ordered": "1/2/3",
|
||||
"zero": "0/0/0"
|
||||
};
|
||||
|
||||
module.exports = {
|
||||
"names": [ "MD029", "ol-prefix" ],
|
||||
"description": "Ordered list item prefix",
|
||||
|
|
@ -18,12 +24,12 @@ module.exports = {
|
|||
shared.orderedListItemMarkerRe.exec(list.items[1].line);
|
||||
listStyle = (second && (second[1] !== "1")) ? "ordered" : "one";
|
||||
}
|
||||
let number = 1;
|
||||
let number = (listStyle === "zero") ? 0 : 1;
|
||||
list.items.forEach(function forItem(item) {
|
||||
const match = shared.orderedListItemMarkerRe.exec(item.line);
|
||||
shared.addErrorDetailIf(onError, item.lineNumber,
|
||||
String(number), !match || match[1],
|
||||
"Style: " + (listStyle === "one" ? "1/1/1" : "1/2/3"),
|
||||
"Style: " + listStyleExamples[listStyle],
|
||||
shared.rangeFromRegExp(item.line, shared.listItemMarkerRe));
|
||||
if (listStyle === "ordered") {
|
||||
number++;
|
||||
|
|
|
|||
|
|
@ -184,7 +184,8 @@ rules.forEach(function forRule(rule) {
|
|||
"enum": [
|
||||
"one",
|
||||
"ordered",
|
||||
"one_or_ordered"
|
||||
"one_or_ordered",
|
||||
"zero"
|
||||
],
|
||||
"default": "one_or_ordered"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -674,7 +674,8 @@
|
|||
"enum": [
|
||||
"one",
|
||||
"ordered",
|
||||
"one_or_ordered"
|
||||
"one_or_ordered",
|
||||
"zero"
|
||||
],
|
||||
"default": "one_or_ordered"
|
||||
}
|
||||
|
|
@ -695,7 +696,8 @@
|
|||
"enum": [
|
||||
"one",
|
||||
"ordered",
|
||||
"one_or_ordered"
|
||||
"one_or_ordered",
|
||||
"zero"
|
||||
],
|
||||
"default": "one_or_ordered"
|
||||
}
|
||||
|
|
|
|||
3
test/detailed-results-ordered-list-item-prefix-single.md
Normal file
3
test/detailed-results-ordered-list-item-prefix-single.md
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
# Ordered list examples
|
||||
|
||||
9. Item
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
[
|
||||
{
|
||||
"lineNumber": 3,
|
||||
"ruleNames": [ "MD029", "ol-prefix" ],
|
||||
"ruleDescription": "Ordered list item prefix",
|
||||
"ruleInformation": "https://github.com/DavidAnson/markdownlint/blob/v0.0.0/doc/Rules.md#md029",
|
||||
"errorDetail": "Expected: 1; Actual: 9; Style: 1/1/1",
|
||||
"errorContext": null,
|
||||
"errorRange": [1, 3]
|
||||
}
|
||||
]
|
||||
6
test/detailed-results-ordered-list-item-prefix-zero.json
Normal file
6
test/detailed-results-ordered-list-item-prefix-zero.json
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"default": true,
|
||||
"MD029": {
|
||||
"style": "zero"
|
||||
}
|
||||
}
|
||||
19
test/detailed-results-ordered-list-item-prefix-zero.md
Normal file
19
test/detailed-results-ordered-list-item-prefix-zero.md
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
# Ordered list examples
|
||||
|
||||
text
|
||||
|
||||
0. Item
|
||||
0. Item
|
||||
0. Item
|
||||
|
||||
text
|
||||
|
||||
1. Item
|
||||
1. Item
|
||||
1. Item
|
||||
|
||||
text
|
||||
|
||||
1. Item
|
||||
2. Item
|
||||
3. Item
|
||||
|
|
@ -0,0 +1,56 @@
|
|||
[
|
||||
{
|
||||
"lineNumber": 11,
|
||||
"ruleNames": [ "MD029", "ol-prefix" ],
|
||||
"ruleDescription": "Ordered list item prefix",
|
||||
"ruleInformation": "https://github.com/DavidAnson/markdownlint/blob/v0.0.0/doc/Rules.md#md029",
|
||||
"errorDetail": "Expected: 0; Actual: 1; Style: 0/0/0",
|
||||
"errorContext": null,
|
||||
"errorRange": [1, 3]
|
||||
},
|
||||
{
|
||||
"lineNumber": 12,
|
||||
"ruleNames": [ "MD029", "ol-prefix" ],
|
||||
"ruleDescription": "Ordered list item prefix",
|
||||
"ruleInformation": "https://github.com/DavidAnson/markdownlint/blob/v0.0.0/doc/Rules.md#md029",
|
||||
"errorDetail": "Expected: 0; Actual: 1; Style: 0/0/0",
|
||||
"errorContext": null,
|
||||
"errorRange": [1, 3]
|
||||
},
|
||||
{
|
||||
"lineNumber": 13,
|
||||
"ruleNames": [ "MD029", "ol-prefix" ],
|
||||
"ruleDescription": "Ordered list item prefix",
|
||||
"ruleInformation": "https://github.com/DavidAnson/markdownlint/blob/v0.0.0/doc/Rules.md#md029",
|
||||
"errorDetail": "Expected: 0; Actual: 1; Style: 0/0/0",
|
||||
"errorContext": null,
|
||||
"errorRange": [1, 3]
|
||||
},
|
||||
{
|
||||
"lineNumber": 17,
|
||||
"ruleNames": [ "MD029", "ol-prefix" ],
|
||||
"ruleDescription": "Ordered list item prefix",
|
||||
"ruleInformation": "https://github.com/DavidAnson/markdownlint/blob/v0.0.0/doc/Rules.md#md029",
|
||||
"errorDetail": "Expected: 0; Actual: 1; Style: 0/0/0",
|
||||
"errorContext": null,
|
||||
"errorRange": [1, 3]
|
||||
},
|
||||
{
|
||||
"lineNumber": 18,
|
||||
"ruleNames": [ "MD029", "ol-prefix" ],
|
||||
"ruleDescription": "Ordered list item prefix",
|
||||
"ruleInformation": "https://github.com/DavidAnson/markdownlint/blob/v0.0.0/doc/Rules.md#md029",
|
||||
"errorDetail": "Expected: 0; Actual: 2; Style: 0/0/0",
|
||||
"errorContext": null,
|
||||
"errorRange": [1, 3]
|
||||
},
|
||||
{
|
||||
"lineNumber": 19,
|
||||
"ruleNames": [ "MD029", "ol-prefix" ],
|
||||
"ruleDescription": "Ordered list item prefix",
|
||||
"ruleInformation": "https://github.com/DavidAnson/markdownlint/blob/v0.0.0/doc/Rules.md#md029",
|
||||
"errorDetail": "Expected: 0; Actual: 3; Style: 0/0/0",
|
||||
"errorContext": null,
|
||||
"errorRange": [1, 3]
|
||||
}
|
||||
]
|
||||
6
test/ordered-list-item-prefix-zero.json
Normal file
6
test/ordered-list-item-prefix-zero.json
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"default": true,
|
||||
"MD029": {
|
||||
"style": "zero"
|
||||
}
|
||||
}
|
||||
62
test/ordered-list-item-prefix-zero.md
Normal file
62
test/ordered-list-item-prefix-zero.md
Normal file
|
|
@ -0,0 +1,62 @@
|
|||
# Ordered list examples
|
||||
|
||||
text
|
||||
|
||||
0. Item
|
||||
|
||||
text
|
||||
|
||||
1. Item {MD029}
|
||||
|
||||
text
|
||||
|
||||
0. Item
|
||||
0. Item
|
||||
0. Item
|
||||
|
||||
text
|
||||
|
||||
1. Item {MD029}
|
||||
2. Item {MD029}
|
||||
3. Item {MD029}
|
||||
|
||||
text
|
||||
|
||||
0. Item
|
||||
1. Item {MD029}
|
||||
0. Item
|
||||
2. Item {MD029}
|
||||
|
||||
text
|
||||
|
||||
0. Item
|
||||
0. Item
|
||||
2. Item {MD029}
|
||||
0. Item
|
||||
|
||||
text
|
||||
|
||||
1. Item {MD029}
|
||||
2. Item {MD029}
|
||||
3. Item {MD029}
|
||||
|
||||
text
|
||||
|
||||
4. Item {MD029}
|
||||
5. Item {MD029}
|
||||
|
||||
text
|
||||
|
||||
- Item
|
||||
0. Item
|
||||
0. Item
|
||||
0. Item
|
||||
- Item
|
||||
1. Item {MD029}
|
||||
2. Item {MD029}
|
||||
3. Item {MD029}
|
||||
- Item
|
||||
0. Item
|
||||
1. Item {MD029}
|
||||
2. Item {MD029}
|
||||
- Item
|
||||
Loading…
Add table
Add a link
Reference in a new issue