mirror of
https://github.com/DavidAnson/markdownlint.git
synced 2025-12-16 14:00:13 +01:00
Add style one_or_ordered to MD029/ol-prefix (fixes #97).
This commit is contained in:
parent
4345423be1
commit
39d39db961
14 changed files with 242 additions and 15 deletions
11
doc/Rules.md
11
doc/Rules.md
|
|
@ -717,11 +717,11 @@ Tags: ol
|
|||
|
||||
Aliases: ol-prefix
|
||||
|
||||
Parameters: style ("one", "ordered"; default "one")
|
||||
Parameters: style ("one", "ordered", "one_or_ordered"; default "one_or_ordered")
|
||||
|
||||
This rule is triggered on 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, which defaults to 'one').
|
||||
configured style).
|
||||
|
||||
Example valid list if the style is configured as 'one':
|
||||
|
||||
|
|
@ -735,6 +735,13 @@ Example valid list if the style is configured as 'ordered':
|
|||
2. Do that.
|
||||
3. Done.
|
||||
|
||||
Both examples are valid when the style is configured as 'one_or_ordered'.
|
||||
|
||||
Example invalid list for all styles:
|
||||
|
||||
1. Do this.
|
||||
3. Done.
|
||||
|
||||
<a name="md030"></a>
|
||||
|
||||
## MD030 - Spaces after list markers
|
||||
|
|
|
|||
15
lib/rules.js
15
lib/rules.js
|
|
@ -745,16 +745,23 @@ module.exports = [
|
|||
"aliases": [ "ol-prefix" ],
|
||||
"regexp": listItemMarkerRe,
|
||||
"func": function MD029(params, errors) {
|
||||
var style = params.options.style || "one";
|
||||
var style = params.options.style || "one_or_ordered";
|
||||
var numberRe = /^[\s>]*([^.)]*)[.)]/;
|
||||
flattenLists(params).forEach(function forList(list) {
|
||||
if (!list.unordered) {
|
||||
var listStyle = style;
|
||||
if (listStyle === "one_or_ordered") {
|
||||
var second = (list.items.length > 1) &&
|
||||
numberRe.exec(list.items[1].line);
|
||||
listStyle = (second && (second[1] !== "1")) ? "ordered" : "one";
|
||||
}
|
||||
var number = 1;
|
||||
list.items.forEach(function forItem(item) {
|
||||
var match = /^[\s>]*([^.)]*)[.)]/.exec(item.line);
|
||||
var match = numberRe.exec(item.line);
|
||||
errors.addDetailIf(item.lineNumber,
|
||||
String(number), !match || match[1],
|
||||
"Style: " + (style === "one" ? "1/1/1" : "1/2/3"));
|
||||
if (style === "ordered") {
|
||||
"Style: " + (listStyle === "one" ? "1/1/1" : "1/2/3"));
|
||||
if (listStyle === "ordered") {
|
||||
number++;
|
||||
}
|
||||
});
|
||||
|
|
|
|||
|
|
@ -163,9 +163,10 @@ rules.forEach(function forRule(rule) {
|
|||
"type": "string",
|
||||
"enum": [
|
||||
"one",
|
||||
"ordered"
|
||||
"ordered",
|
||||
"one_or_ordered"
|
||||
],
|
||||
"default": "one"
|
||||
"default": "one_or_ordered"
|
||||
}
|
||||
};
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -555,9 +555,10 @@
|
|||
"type": "string",
|
||||
"enum": [
|
||||
"one",
|
||||
"ordered"
|
||||
"ordered",
|
||||
"one_or_ordered"
|
||||
],
|
||||
"default": "one"
|
||||
"default": "one_or_ordered"
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
|
|
@ -575,9 +576,10 @@
|
|||
"type": "string",
|
||||
"enum": [
|
||||
"one",
|
||||
"ordered"
|
||||
"ordered",
|
||||
"one_or_ordered"
|
||||
],
|
||||
"default": "one"
|
||||
"default": "one_or_ordered"
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@ Note: Can not break MD025 and MD002 in the same file
|
|||
> {MD028:43}
|
||||
|
||||
1. list
|
||||
2. list {MD029}
|
||||
3. list {MD029}
|
||||
|
||||
```js
|
||||
```
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ Text
|
|||
> Blank line above
|
||||
|
||||
1. Alpha
|
||||
2. Beta
|
||||
3. Beta
|
||||
|
||||
> > Multiple spaces, multiple blockquotes
|
||||
> >
|
||||
|
|
|
|||
|
|
@ -94,7 +94,7 @@
|
|||
"ruleName": "MD029",
|
||||
"ruleAlias": "ol-prefix",
|
||||
"ruleDescription": "Ordered list item prefix",
|
||||
"errorDetail": "Expected: 1; Actual: 2; Style: 1/1/1",
|
||||
"errorDetail": "Expected: 2; Actual: 3; Style: 1/2/3",
|
||||
"errorContext": null,
|
||||
"errorRange": [1, 4]
|
||||
},
|
||||
|
|
|
|||
6
test/ordered-list-item-prefix-one.json
Normal file
6
test/ordered-list-item-prefix-one.json
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"default": true,
|
||||
"MD029": {
|
||||
"style": "one"
|
||||
}
|
||||
}
|
||||
62
test/ordered-list-item-prefix-one.md
Normal file
62
test/ordered-list-item-prefix-one.md
Normal file
|
|
@ -0,0 +1,62 @@
|
|||
# Ordered list examples
|
||||
|
||||
text
|
||||
|
||||
1. Item
|
||||
|
||||
text
|
||||
|
||||
2. Item {MD029}
|
||||
|
||||
text
|
||||
|
||||
1. Item
|
||||
1. Item
|
||||
1. Item
|
||||
|
||||
text
|
||||
|
||||
1. Item
|
||||
2. Item {MD029}
|
||||
3. Item {MD029}
|
||||
|
||||
text
|
||||
|
||||
1. Item
|
||||
2. Item {MD029}
|
||||
1. Item
|
||||
4. Item {MD029}
|
||||
|
||||
text
|
||||
|
||||
1. Item
|
||||
1. Item
|
||||
3. Item {MD029}
|
||||
1. Item
|
||||
|
||||
text
|
||||
|
||||
1. Item
|
||||
2. Item {MD029}
|
||||
3. Item {MD029}
|
||||
|
||||
text
|
||||
|
||||
4. Item {MD029}
|
||||
5. Item {MD029}
|
||||
|
||||
text
|
||||
|
||||
- Item
|
||||
1. Item
|
||||
1. Item
|
||||
1. Item
|
||||
- Item
|
||||
1. Item
|
||||
2. Item {MD029}
|
||||
3. Item {MD029}
|
||||
- Item
|
||||
1. Item
|
||||
2. Item {MD029}
|
||||
4. Item {MD029}
|
||||
- Item
|
||||
62
test/ordered-list-item-prefix-one_or_ordered.md
Normal file
62
test/ordered-list-item-prefix-one_or_ordered.md
Normal file
|
|
@ -0,0 +1,62 @@
|
|||
# Ordered list examples
|
||||
|
||||
text
|
||||
|
||||
1. Item
|
||||
|
||||
text
|
||||
|
||||
2. Item {MD029}
|
||||
|
||||
text
|
||||
|
||||
1. Item
|
||||
1. Item
|
||||
1. Item
|
||||
|
||||
text
|
||||
|
||||
1. Item
|
||||
2. Item
|
||||
3. Item
|
||||
|
||||
text
|
||||
|
||||
1. Item
|
||||
2. Item
|
||||
1. Item {MD029}
|
||||
4. Item
|
||||
|
||||
text
|
||||
|
||||
1. Item
|
||||
1. Item
|
||||
3. Item {MD029}
|
||||
1. Item
|
||||
|
||||
text
|
||||
|
||||
1. Item
|
||||
2. Item
|
||||
3. Item
|
||||
|
||||
text
|
||||
|
||||
4. Item {MD029}
|
||||
5. Item {MD029}
|
||||
|
||||
text
|
||||
|
||||
- Item
|
||||
1. Item
|
||||
1. Item
|
||||
1. Item
|
||||
- Item
|
||||
1. Item
|
||||
2. Item
|
||||
3. Item
|
||||
- Item
|
||||
1. Item
|
||||
2. Item
|
||||
4. Item {MD029}
|
||||
- Item
|
||||
6
test/ordered-list-item-prefix-ordered.json
Normal file
6
test/ordered-list-item-prefix-ordered.json
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"default": true,
|
||||
"MD029": {
|
||||
"style": "ordered"
|
||||
}
|
||||
}
|
||||
62
test/ordered-list-item-prefix-ordered.md
Normal file
62
test/ordered-list-item-prefix-ordered.md
Normal file
|
|
@ -0,0 +1,62 @@
|
|||
# Ordered list examples
|
||||
|
||||
text
|
||||
|
||||
1. Item
|
||||
|
||||
text
|
||||
|
||||
2. Item {MD029}
|
||||
|
||||
text
|
||||
|
||||
1. Item
|
||||
1. Item {MD029}
|
||||
1. Item {MD029}
|
||||
|
||||
text
|
||||
|
||||
1. Item
|
||||
2. Item
|
||||
3. Item
|
||||
|
||||
text
|
||||
|
||||
1. Item
|
||||
2. Item
|
||||
1. Item {MD029}
|
||||
4. Item
|
||||
|
||||
text
|
||||
|
||||
1. Item
|
||||
1. Item {MD029}
|
||||
3. Item
|
||||
1. Item {MD029}
|
||||
|
||||
text
|
||||
|
||||
1. Item
|
||||
2. Item
|
||||
3. Item
|
||||
|
||||
text
|
||||
|
||||
4. Item {MD029}
|
||||
5. Item {MD029}
|
||||
|
||||
text
|
||||
|
||||
- Item
|
||||
1. Item
|
||||
1. Item {MD029}
|
||||
1. Item {MD029}
|
||||
- Item
|
||||
1. Item
|
||||
2. Item
|
||||
3. Item
|
||||
- Item
|
||||
1. Item
|
||||
2. Item
|
||||
4. Item {MD029}
|
||||
- Item
|
||||
6
test/ordered_list_item_prefix-paren.json
Normal file
6
test/ordered_list_item_prefix-paren.json
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"default": true,
|
||||
"MD029": {
|
||||
"style": "one"
|
||||
}
|
||||
}
|
||||
6
test/ordered_list_item_prefix.json
Normal file
6
test/ordered_list_item_prefix.json
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"default": true,
|
||||
"MD029": {
|
||||
"style": "one"
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue