Update MD037/no-space-in-emphasis to ignore emphasis on code fences and not report violations for scenarios that span an empty code fence (fixes #381).

This commit is contained in:
David Anson 2021-08-22 15:28:28 -07:00
parent c0218b2489
commit c99ced2a7d
4 changed files with 35 additions and 4 deletions

View file

@ -3412,11 +3412,19 @@ module.exports = {
resetRunTracking();
forEachLine(lineMetadata(), function (line, lineIndex, inCode, onFence, inTable, inItem, onBreak, inMath) {
var onItemStart = (inItem === 1);
if (inCode || inTable || onBreak || onItemStart || isBlankLine(line)) {
if (inCode ||
onFence ||
inTable ||
onBreak ||
onItemStart ||
isBlankLine(line)) {
// Emphasis resets when leaving a block
resetRunTracking();
}
if (inCode || onBreak || inMath) {
if (inCode ||
onFence ||
onBreak ||
inMath) {
// Emphasis has no meaning here
return;
}

View file

@ -78,11 +78,23 @@ module.exports = {
lineMetadata(),
(line, lineIndex, inCode, onFence, inTable, inItem, onBreak, inMath) => {
const onItemStart = (inItem === 1);
if (inCode || inTable || onBreak || onItemStart || isBlankLine(line)) {
if (
inCode ||
onFence ||
inTable ||
onBreak ||
onItemStart ||
isBlankLine(line)
) {
// Emphasis resets when leaving a block
resetRunTracking();
}
if (inCode || onBreak || inMath) {
if (
inCode ||
onFence ||
onBreak ||
inMath
) {
// Emphasis has no meaning here
return;
}

View file

@ -120,3 +120,10 @@ multi-line emphasis
scenario * that
should * not trigger
violations * either`.
<!-- markdownlint-disable MD031 -->
*text
```text
```
text *
<!-- markdownlint-restore -->

View file

@ -341,3 +341,7 @@ text [reference*link] star * star text
| x** y | x** y |
| x _ y | x _ y |
| x__ y | x__ y |
```yaml /* autogenerated */
# YAML...
```