Skip to content

Commit 1059aa6

Browse files
committed
Ignore HTML blocks in MD018
1 parent a5ea9be commit 1059aa6

File tree

5 files changed

+27
-11
lines changed

5 files changed

+27
-11
lines changed

demo/markdownlint-browser.js

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -365,7 +365,7 @@ module.exports.filterTokens = filterTokens;
365365
*/
366366
function getLineMetadata(params) {
367367
const lineMetadata = params.lines.map(
368-
(line, index) => [ line, index, false, 0, false, false, false ]
368+
(line, index) => [ line, index, false, 0, false, false, false, false ]
369369
);
370370
filterTokens(params, "fence", (token) => {
371371
lineMetadata[token.map[0]][3] = 1;
@@ -394,6 +394,11 @@ function getLineMetadata(params) {
394394
filterTokens(params, "hr", (token) => {
395395
lineMetadata[token.map[0]][6] = true;
396396
});
397+
filterTokens(params, "html_block", (token) => {
398+
for (let i = token.map[0]; i < token.map[1]; i++) {
399+
lineMetadata[i][7] = true;
400+
}
401+
});
397402
return lineMetadata;
398403
}
399404
module.exports.getLineMetadata = getLineMetadata;
@@ -407,6 +412,7 @@ module.exports.getLineMetadata = getLineMetadata;
407412
* @param {boolean} inTable Iff in a table.
408413
* @param {boolean} inItem Iff in a list item.
409414
* @param {boolean} inBreak Iff in semantic break.
415+
* @param {boolean} inHTML Iff in HTML.
410416
* @returns {void}
411417
*/
412418

@@ -4210,8 +4216,8 @@ module.exports = {
42104216
"tags": [ "headings", "atx", "spaces" ],
42114217
"parser": "none",
42124218
"function": function MD018(params, onError) {
4213-
forEachLine(lineMetadata(), (line, lineIndex, inCode) => {
4214-
if (!inCode &&
4219+
forEachLine(lineMetadata(), (line, lineIndex, inCode, inFence, inTable, inItem, inBreak, inHTML) => {
4220+
if (!inCode && !inHTML &&
42154221
/^#+[^# \t]/.test(line) &&
42164222
!/#\s*$/.test(line) &&
42174223
!line.startsWith("#️⃣")) {

helpers/helpers.js

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -353,7 +353,7 @@ module.exports.filterTokens = filterTokens;
353353
*/
354354
function getLineMetadata(params) {
355355
const lineMetadata = params.lines.map(
356-
(line, index) => [ line, index, false, 0, false, false, false ]
356+
(line, index) => [ line, index, false, 0, false, false, false, false ]
357357
);
358358
filterTokens(params, "fence", (token) => {
359359
lineMetadata[token.map[0]][3] = 1;
@@ -367,11 +367,6 @@ function getLineMetadata(params) {
367367
lineMetadata[i][2] = true;
368368
}
369369
});
370-
filterTokens(params, "html_block", (token) => {
371-
for (let i = token.map[0]; i < token.map[1]; i++) {
372-
lineMetadata[i][2] = true;
373-
}
374-
});
375370
filterTokens(params, "table_open", (token) => {
376371
for (let i = token.map[0]; i < token.map[1]; i++) {
377372
lineMetadata[i][4] = true;
@@ -387,6 +382,11 @@ function getLineMetadata(params) {
387382
filterTokens(params, "hr", (token) => {
388383
lineMetadata[token.map[0]][6] = true;
389384
});
385+
filterTokens(params, "html_block", (token) => {
386+
for (let i = token.map[0]; i < token.map[1]; i++) {
387+
lineMetadata[i][7] = true;
388+
}
389+
});
390390
return lineMetadata;
391391
}
392392
module.exports.getLineMetadata = getLineMetadata;
@@ -400,6 +400,7 @@ module.exports.getLineMetadata = getLineMetadata;
400400
* @param {boolean} inTable Iff in a table.
401401
* @param {boolean} inItem Iff in a list item.
402402
* @param {boolean} inBreak Iff in semantic break.
403+
* @param {boolean} inHTML Iff in HTML.
403404
* @returns {void}
404405
*/
405406

lib/md018.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ module.exports = {
1313
"tags": [ "headings", "atx", "spaces" ],
1414
"parser": "none",
1515
"function": function MD018(params, onError) {
16-
forEachLine(lineMetadata(), (line, lineIndex, inCode) => {
17-
if (!inCode &&
16+
forEachLine(lineMetadata(), (line, lineIndex, inCode, inFence, inTable, inItem, inBreak, inHTML) => {
17+
if (!inCode && !inHTML &&
1818
/^#+[^# \t]/.test(line) &&
1919
!/#\s*$/.test(line) &&
2020
!line.startsWith("#️⃣")) {

test/ignore-html-block.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# ignore-html-block.md
2+
3+
## Title
4+
5+
##Title2 {MD018}
6+
7+
<style> {MD033}
8+
#foo {}
9+
</style>
Binary file not shown.

0 commit comments

Comments
 (0)