Tokens inside tables that lack a map should get it from the surrounding table row (which is more scoped than the table body) (fixes #463).

This commit is contained in:
David Anson 2021-11-26 04:26:15 +00:00 committed by GitHub
parent 1e82f76596
commit 11806dc5cb
6 changed files with 106 additions and 34 deletions

View file

@ -1002,7 +1002,7 @@ test("customRulesOnErrorInvalidHandled", (t) => {
"function": function onErrorInvalid(params, onError) {
onError({
"lineNumber": 13,
"details": "N/A"
"detail": "N/A"
});
}
}

View file

@ -1717,6 +1717,40 @@ test.cb("texmath test files with texmath plugin", (t) => {
});
});
test("token-map-spans", (t) => {
t.plan(38);
const options = {
"customRules": [
{
"names": [ "token-map-spans" ],
"description": "token-map-spans",
"tags": [ "tms" ],
"function": function tokenMapSpans(params) {
const tokenLines = [];
let lastLineNumber = -1;
const inlines = params.tokens.filter((c) => c.type === "inline");
for (const token of inlines) {
t.truthy(token.map);
for (let i = token.map[0]; i < token.map[1]; i++) {
if (tokenLines.includes(i)) {
t.true(
lastLineNumber === token.lineNumber,
`Line ${i + 1} is part of token maps from multiple lines.`
);
} else {
tokenLines.push(i);
}
lastLineNumber = token.lineNumber;
}
}
}
}
],
"files": [ "./test/token-map-spans.md" ]
};
markdownlint.sync(options);
});
test("getVersion", (t) => {
t.plan(1);
const actual = markdownlint.getVersion();

View file

@ -0,0 +1,13 @@
# Table Content With Issues
| Content | Issue |
|------------------------------|---------|
| Text | N/A |
| (link)[https://example.com] | {MD011} |
| <hr> | {MD033} |
| https://example.com | {MD034} |
| * emphasis* | {MD037} |
| __strong __ | {MD037} |
| ` code` | {MD038} |
| [link ](https://example.com) | {MD039} |
| [link]() | {MD042} |

42
test/token-map-spans.md Normal file
View file

@ -0,0 +1,42 @@
# Token Map Spans
Text *emphasis* text __strong__ text `code` text [link](https://example.com).
Paragraph with *emphasis
spanning lines* and __strong
spanning lines__ and `code
spanning lines` and [link
spanning lines](https://example.com).
> Blockquote
> [link](https://example.com)
> > Nested
> > blockquote
> > [link](https://example.com)
Heading
-------
```lang
Fenced
code
```
Indented
code
1. List
2. List
- Sub-list
- Sub-list
3. List
| Table | Column 1 | Column 2 | Column 3 | Column 4 |
|-------|------------|------------|----------|----------------------------|
| Text | *emphasis* | __strong__ | `code` | [link](https://example.com) |
| Text | *emphasis* | __strong__ | `code` | [link](https://example.com) |
<!-- markdownlint-configure-file {
"code-block-style": false,
"heading-style": false
} -->