Update MD005, MD007, MD022, MD037, MD038 to not report violations within "htmlFlow" context (fixes #999).

This commit is contained in:
David Anson 2023-10-21 22:03:11 -07:00
parent 2a56f130c1
commit 63325edc97
15 changed files with 511 additions and 149 deletions

View file

@ -3,7 +3,8 @@
"use strict";
const { addErrorContext } = require("../helpers");
const { filterByTypes, tokenIfType } = require("../helpers/micromark.cjs");
const { filterByTypes, inHtmlFlow, tokenIfType } =
require("../helpers/micromark.cjs");
const leftSpaceRe = /^\s(?:[^`]|$)/;
const rightSpaceRe = /[^`]\s$/;
@ -23,10 +24,11 @@ module.exports = {
"description": "Spaces inside code span elements",
"tags": [ "whitespace", "code" ],
"function": function MD038(params, onError) {
const codeTextTokens =
filterByTypes(params.parsers.micromark.tokens, [ "codeText" ]);
for (const token of codeTextTokens) {
const { children } = token;
const codeTexts =
filterByTypes(params.parsers.micromark.tokens, [ "codeText" ])
.filter((codeText) => !inHtmlFlow(codeText));
for (const codeText of codeTexts) {
const { children } = codeText;
const first = 0;
const last = children.length - 1;
const startSequence = tokenIfType(children[first], "codeTextSequence");