mirror of
https://github.com/DavidAnson/markdownlint.git
synced 2025-09-22 05:40:48 +02:00
Add MD035 with tests.
This commit is contained in:
parent
9acbb2750e
commit
762d8425ca
12 changed files with 166 additions and 3 deletions
|
@ -65,6 +65,7 @@ cases come directly from that project.
|
|||
* **MD032** - Lists should be surrounded by blank lines
|
||||
* **MD033** - Inline HTML
|
||||
* **MD034** - Bare URL used
|
||||
* **MD035** - Horizontal rule style
|
||||
|
||||
See [Rules.md](doc/Rules.md) for more details.
|
||||
|
||||
|
@ -79,6 +80,7 @@ See [Rules.md](doc/Rules.md) for more details.
|
|||
* **hard_tab** - MD010
|
||||
* **headers** - MD001, MD002, MD003, MD018, MD019, MD020, MD021, MD022, MD023,
|
||||
MD024, MD025, MD026
|
||||
* **hr** - MD035
|
||||
* **html** - MD033
|
||||
* **indentation** - MD005, MD006, MD007, MD027
|
||||
* **line_length** - MD013
|
||||
|
|
34
doc/Rules.md
34
doc/Rules.md
|
@ -731,3 +731,37 @@ enclose it in a code block, otherwise in some markdown parsers it _will_ be
|
|||
converted:
|
||||
|
||||
`http://www.example.com`
|
||||
|
||||
## MD035 - Horizontal rule style
|
||||
|
||||
Tags: hr
|
||||
|
||||
Parameters: style ("consistent", "---", "***", or other string specifying the
|
||||
horizontal rule; default "consistent")
|
||||
|
||||
This rule is triggered when inconsistent styles of horizontal rules are used
|
||||
in the document:
|
||||
|
||||
---
|
||||
|
||||
- - -
|
||||
|
||||
***
|
||||
|
||||
* * *
|
||||
|
||||
****
|
||||
|
||||
To fix this, ensure any horizontal rules used in the document are consistent,
|
||||
or match the given style if the rule is so configured:
|
||||
|
||||
---
|
||||
|
||||
---
|
||||
|
||||
Note: by default, this rule is configured to just require that all horizontal
|
||||
rules in the document are the same, and will trigger if any of the horizontal
|
||||
rules are different than the first one encountered in the document. If you
|
||||
want to configure the rule to match a specific style, the parameter given to
|
||||
the 'style' option is a string containing the exact horizontal rule text that
|
||||
is allowed.
|
||||
|
|
18
lib/rules.js
18
lib/rules.js
|
@ -649,5 +649,23 @@ module.exports = [
|
|||
});
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"name": "MD035",
|
||||
"desc": "Horizontal rule style",
|
||||
"tags": [ "hr" ],
|
||||
"func": function MD035(params, errors) {
|
||||
var style = params.options.style || "consistent";
|
||||
var horizontalRules = filterTokens(params.tokens, "hr");
|
||||
if ((style === "consistent") && horizontalRules.length) {
|
||||
style = horizontalRules[0].line;
|
||||
}
|
||||
horizontalRules.forEach(function forToken(token) {
|
||||
if (token.line !== style) {
|
||||
errors.push(token.lineNumber);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
];
|
||||
|
|
|
@ -15,5 +15,8 @@
|
|||
"ul_multi": 3,
|
||||
"ol_multi": 2
|
||||
},
|
||||
"MD033": false
|
||||
"MD033": false,
|
||||
"MD035": {
|
||||
"style": "---"
|
||||
}
|
||||
}
|
||||
|
|
6
test/hr_style_dashes.json
Normal file
6
test/hr_style_dashes.json
Normal file
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"default": true,
|
||||
"MD035": {
|
||||
"style": "---"
|
||||
}
|
||||
}
|
22
test/hr_style_dashes.md
Normal file
22
test/hr_style_dashes.md
Normal file
|
@ -0,0 +1,22 @@
|
|||
***
|
||||
|
||||
* * *
|
||||
|
||||
*****
|
||||
|
||||
---
|
||||
|
||||
- - -
|
||||
|
||||
-----
|
||||
|
||||
___
|
||||
|
||||
_ _ _
|
||||
|
||||
_____
|
||||
|
||||
***
|
||||
|
||||
{MD035:1} {MD035:3} {MD035:5} {MD035:9} {MD035:11} {MD035:13} {MD035:15}
|
||||
{MD035:17} {MD035:19}
|
22
test/hr_style_inconsistent.md
Normal file
22
test/hr_style_inconsistent.md
Normal file
|
@ -0,0 +1,22 @@
|
|||
***
|
||||
|
||||
* * *
|
||||
|
||||
*****
|
||||
|
||||
---
|
||||
|
||||
- - -
|
||||
|
||||
-----
|
||||
|
||||
___
|
||||
|
||||
_ _ _
|
||||
|
||||
_____
|
||||
|
||||
***
|
||||
|
||||
{MD035:3} {MD035:5} {MD035:7} {MD035:9} {MD035:11} {MD035:13} {MD035:15}
|
||||
{MD035:17}
|
6
test/hr_style_long.json
Normal file
6
test/hr_style_long.json
Normal file
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"default": true,
|
||||
"MD035": {
|
||||
"style": "_____"
|
||||
}
|
||||
}
|
22
test/hr_style_long.md
Normal file
22
test/hr_style_long.md
Normal file
|
@ -0,0 +1,22 @@
|
|||
***
|
||||
|
||||
* * *
|
||||
|
||||
*****
|
||||
|
||||
---
|
||||
|
||||
- - -
|
||||
|
||||
-----
|
||||
|
||||
___
|
||||
|
||||
_ _ _
|
||||
|
||||
_____
|
||||
|
||||
***
|
||||
|
||||
{MD035:1} {MD035:3} {MD035:5} {MD035:7} {MD035:9} {MD035:11} {MD035:13}
|
||||
{MD035:15} {MD035:19}
|
6
test/hr_style_stars.json
Normal file
6
test/hr_style_stars.json
Normal file
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"default": true,
|
||||
"MD035": {
|
||||
"style": "***"
|
||||
}
|
||||
}
|
22
test/hr_style_stars.md
Normal file
22
test/hr_style_stars.md
Normal file
|
@ -0,0 +1,22 @@
|
|||
***
|
||||
|
||||
* * *
|
||||
|
||||
*****
|
||||
|
||||
---
|
||||
|
||||
- - -
|
||||
|
||||
-----
|
||||
|
||||
___
|
||||
|
||||
_ _ _
|
||||
|
||||
_____
|
||||
|
||||
***
|
||||
|
||||
{MD035:3} {MD035:5} {MD035:7} {MD035:9} {MD035:11} {MD035:13} {MD035:15}
|
||||
{MD035:17}
|
|
@ -498,7 +498,7 @@ module.exports.badFileSync = function badFileSync(test) {
|
|||
};
|
||||
|
||||
module.exports.readme = function readme(test) {
|
||||
test.expect(80);
|
||||
test.expect(83);
|
||||
var tagToRules = {};
|
||||
rules.forEach(function forRule(rule) {
|
||||
rule.tags.forEach(function forTag(tag) {
|
||||
|
@ -555,7 +555,7 @@ module.exports.readme = function readme(test) {
|
|||
};
|
||||
|
||||
module.exports.doc = function doc(test) {
|
||||
test.expect(123);
|
||||
test.expect(127);
|
||||
fs.readFile("doc/Rules.md", shared.utf8Encoding,
|
||||
function readFile(err, contents) {
|
||||
test.ifError(err);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue