Update MD041/first-line-h1 to ignore leading HTML comments (fixes #37).

This commit is contained in:
David Anson 2017-02-23 22:08:54 -08:00
parent 15b37d51ff
commit acd36d5802
8 changed files with 56 additions and 15 deletions

View file

@ -1037,17 +1037,13 @@ Parameters: level (number; default 1)
This rule is triggered when the first line in the file isn't a top level (h1)
header:
```
This is a file without a header
```
To fix this, add a header to the top of your file:
```
# File with header
This is a file with a top level header
```
Note: The `level` parameter can be used to change the top level (ex: to h2) in
cases where an h1 is added externally.

View file

@ -1019,21 +1019,19 @@ module.exports = [
"func": function MD041(params, errors) {
var level = params.options.level || 1;
var tag = "h" + level;
var firstHeader = null;
params.tokens.every(function forToken(token) {
params.tokens.every(function forToken(token, index) {
if (token.type === "heading_open") {
firstHeader = token;
return false;
} else if (token.lineNumber > 1) {
return false;
if (!((token.lineNumber === 1) || (index > 0)) ||
(token.tag !== tag)) {
errors.addContext(token.lineNumber, token.line);
}
return false;
} else if (token.type === "html_block") {
return true;
});
if (!firstHeader ||
(firstHeader.lineNumber !== 1) ||
(firstHeader.tag !== tag)) {
errors.addContext(1, params.lines[0]);
}
errors.addContext(token.lineNumber, token.line);
return false;
});
}
},

View file

@ -0,0 +1,4 @@
{
"default": true,
"first-line-h1": true
}

View file

@ -0,0 +1,11 @@
# Heading # <!-- markdownlint-disable no-hard-tabs -->
Text text text
Embedded tab
Text text text
Trailing space {MD009}
Text text text

View file

@ -0,0 +1,4 @@
{
"default": true,
"first-line-h1": true
}

View file

@ -0,0 +1,11 @@
<!-- markdownlint-disable no-hard-tabs -->
Text text text {MD041}
Embedded tab
Text text text
Trailing space {MD009}
Text text text

View file

@ -0,0 +1,4 @@
{
"default": true,
"first-line-h1": true
}

View file

@ -0,0 +1,13 @@
<!-- markdownlint-disable no-hard-tabs -->
# Heading
Text text text
Embedded tab
Text text text
Trailing space {MD009}
Text text text