Refactor new MD054/link-image-style rule, add tests, update documentation (fixes #40, fixes #399).

This commit is contained in:
David Anson 2023-10-25 20:05:19 -07:00
parent 460836445c
commit 10f095c4fd
32 changed files with 3149 additions and 333 deletions

View file

@ -100,6 +100,11 @@ Strong **with** different style {MD050}
[unused]: link-destination
{MD053:100}
[text][url] {MD054}
<!-- markdownlint-disable-next-line MD053 -->
[url]: https://example.com/page
<!-- markdownlint-configure-file {
"first-heading-h1": true,
"ul-start-left": true,
@ -114,6 +119,9 @@ Strong **with** different style {MD050}
"names": [
"markdownlint"
]
},
"link-image-style": {
"reference": false
}
} -->

View file

@ -1,20 +1,78 @@
# Autolink Link Style
# Link Style autolink_only
Text [url](https://example.com) text {MD054}
Text ![url](https://example.com) text {MD054}
Text [url] text {MD054}
Text ![url] text {MD054}
Text [url](<https://example.com>) text {MD054}
Text ![url](<https://example.com>) text {MD054}
Text [url](https://example.com "title") text {MD054}
Text ![url](https://example.com "title") text {MD054}
Text {MD054} [url](https://example.com
"title") text
Text {MD054} ![url](https://example.com
"title") text
Text [text][url] text {MD054}
Text ![text][url] text {MD054}
Text <https://example.com> text
Text [url][] text {MD054}
[url]: https://example.com
Text ![url][] text {MD054}
Text [url] text {MD054}
Text ![url] text {MD054}
Text <https://example.com> text
[url]: https://example.com "title"
[undefined]
Text [url](https://example.com/embedded\3backslash) text {MD054}
Text [url](https://example.com/backslash\[escape) text {MD054}
Text [embedded-backslash] text {MD054}
Text [backslash-escape] text {MD054}
Text <https://example.com/embedded\3backslash> text
Text <https://example.com/backslash[no-escape> text
[embedded-backslash]: https://example.com/embedded\3backslash
[backslash-escape]: https://example.com/backslash\[escape
Text [url](<https://example.com/embedded space>) text {MD054}
Text [url](<https://example.com/embedded)paren>) text {MD054}
Text [url](https://example.com/\(parens\)) text {MD054}
Text [url](https://example.com/pa(re(ns))) text {MD054}
Text [url](relative/path) text {MD054}
Text [url](#fragment) text {MD054}
Text <https://example.com/pa)re(ns> text
Text [url](https://example.com/an>g<le>) text {MD054}
<!-- markdownlint-configure-file {
"no-bare-urls": false,
"link-fragments": false,
"link-image-reference-definitions": false,
"link-image-style": {
"style": "autolink_only"
"inline": false,
"reference": false
}
} -->

View file

@ -0,0 +1,77 @@
# Link Style autolink_or_inline
Text [url](https://example.com) text
Text ![url](https://example.com) text
Text [url](<https://example.com>) text
Text ![url](<https://example.com>) text
Text [url](https://example.com "title") text
Text ![url](https://example.com "title") text
Text [url](https://example.com
"title") text
Text ![url](https://example.com
"title") text
Text [text][url] text {MD054}
Text ![text][url] text {MD054}
Text [url][] text {MD054}
Text ![url][] text {MD054}
Text [url] text {MD054}
Text ![url] text {MD054}
Text <https://example.com> text
[url]: https://example.com "title"
[undefined]
Text [url](https://example.com/embedded\3backslash) text
Text [url](https://example.com/backslash\[escape) text
Text [embedded-backslash] text {MD054}
Text [backslash-escape] text {MD054}
Text <https://example.com/embedded\3backslash> text
Text <https://example.com/backslash[no-escape> text
[embedded-backslash]: https://example.com/embedded\3backslash
[backslash-escape]: https://example.com/backslash\[escape
Text [url](<https://example.com/embedded space>) text
Text [url](<https://example.com/embedded)paren>) text
Text [url](https://example.com/\(parens\)) text
Text [url](https://example.com/pa(re(ns))) text
Text [url](relative/path) text
Text [url](#fragment) text
Text <https://example.com/pa)re(ns> text
Text [url](https://example.com/an>g<le>) text
<!-- markdownlint-configure-file {
"link-fragments": false,
"link-image-reference-definitions": false,
"link-image-style": {
"reference": false
}
} -->

View file

@ -0,0 +1,76 @@
# Link Style autolink_or_reference
Text [url](https://example.com) text {MD054}
Text ![url](https://example.com) text {MD054}
Text [url](<https://example.com>) text {MD054}
Text ![url](<https://example.com>) text {MD054}
Text [url](https://example.com "title") text {MD054}
Text ![url](https://example.com "title") text {MD054}
Text {MD054} [url](https://example.com
"title") text
Text {MD054} ![url](https://example.com
"title") text
Text [text][url] text
Text ![text][url] text
Text [url][] text
Text ![url][] text
Text [url] text
Text ![url] text
Text <https://example.com> text
[url]: https://example.com "title"
[undefined]
Text [url](https://example.com/embedded\3backslash) text {MD054}
Text [url](https://example.com/backslash\[escape) text {MD054}
Text [embedded-backslash] text
Text [backslash-escape] text
Text <https://example.com/embedded\3backslash> text
Text <https://example.com/backslash[no-escape> text
[embedded-backslash]: https://example.com/embedded\3backslash
[backslash-escape]: https://example.com/backslash\[escape
Text [url](<https://example.com/embedded space>) text {MD054}
Text [url](<https://example.com/embedded)paren>) text {MD054}
Text [url](https://example.com/\(parens\)) text {MD054}
Text [url](https://example.com/pa(re(ns))) text {MD054}
Text [url](relative/path) text {MD054}
Text [url](#fragment) text {MD054}
Text <https://example.com/pa)re(ns> text
Text [url](https://example.com/an>g<le>) text {MD054}
<!-- markdownlint-configure-file {
"link-fragments": false,
"link-image-style": {
"inline": false
}
} -->

View file

@ -1,20 +1,78 @@
# Inline Link Style
# Link Style inline_only
Text [url](https://example.com) text
Text ![url](https://example.com) text
Text [url] {MD054} text
Text ![url] {MD054} text
Text [text][url] {MD054} text
Text ![text][url] {MD054} text
Text <https://example.com> {MD054} text
Text [url](<https://example.com>) text
Text ![url](<https://example.com>) text
Text [url](https://example.com "title") text
Text ![url](https://example.com "title") text
Text [url](https://example.com
"title") text
Text ![url](https://example.com
"title") text
Text [text][url] text {MD054}
Text ![text][url] text {MD054}
Text [url][] text {MD054}
[url]: https://example.com
Text ![url][] text {MD054}
Text [url] text {MD054}
Text ![url] text {MD054}
Text <https://example.com> text {MD054}
[url]: https://example.com "title"
[undefined]
Text [url](https://example.com/embedded\3backslash) text
Text [url](https://example.com/backslash\[escape) text
Text [embedded-backslash] text {MD054}
Text [backslash-escape] text {MD054}
Text <https://example.com/embedded\3backslash> text {MD054}
Text <https://example.com/backslash[no-escape> text {MD054}
[embedded-backslash]: https://example.com/embedded\3backslash
[backslash-escape]: https://example.com/backslash\[escape
Text [url](<https://example.com/embedded space>) text
Text [url](<https://example.com/embedded)paren>) text
Text [url](https://example.com/\(parens\)) text
Text [url](https://example.com/pa(re(ns))) text
Text [url](relative/path) text
Text [url](#fragment) text
Text <https://example.com/pa)re(ns> text {MD054}
Text [url](https://example.com/an>g<le>) text
<!-- markdownlint-configure-file {
"no-bare-urls": false,
"link-fragments": false,
"link-image-reference-definitions": false,
"link-image-style": {
"style": "inline_only"
"autolink": false,
"reference": false
}
} -->

View file

@ -1,20 +0,0 @@
# Inline Link Style
Text [url](https://example.com) text
Text ![url](https://example.com) text
Text [url] {MD054} text
Text ![url] {MD054} text
Text [text][url] {MD054} text
Text ![text][url] {MD054} text
Text <https://example.com> text
Text [url][] text {MD054}
[url]: https://example.com
<!-- markdownlint-configure-file {
"no-bare-urls": false,
"link-image-reference-definitions": false,
"link-image-style": {
"style": "inline_or_autolink"
}
} -->

View file

@ -1,20 +1,76 @@
# Inline Link Style
# Link Style inline_or_reference
Text [url](https://example.com) text
Text ![url](https://example.com) text
Text [url] text
Text ![url] text
Text [url](<https://example.com>) text
Text ![url](<https://example.com>) text
Text [url](https://example.com "title") text
Text ![url](https://example.com "title") text
Text [url](https://example.com
"title") text
Text ![url](https://example.com
"title") text
Text [text][url] text
Text ![text][url] text
Text <https://example.com> {MD054} text
Text [url][] text
[url]: https://example.com
Text ![url][] text
Text [url] text
Text ![url] text
Text <https://example.com> text {MD054}
[url]: https://example.com "title"
[undefined]
Text [url](https://example.com/embedded\3backslash) text
Text [url](https://example.com/backslash\[escape) text
Text [embedded-backslash] text
Text [backslash-escape] text
Text <https://example.com/embedded\3backslash> text {MD054}
Text <https://example.com/backslash[no-escape> text {MD054}
[embedded-backslash]: https://example.com/embedded\3backslash
[backslash-escape]: https://example.com/backslash\[escape
Text [url](<https://example.com/embedded space>) text
Text [url](<https://example.com/embedded)paren>) text
Text [url](https://example.com/\(parens\)) text
Text [url](https://example.com/pa(re(ns))) text
Text [url](relative/path) text
Text [url](#fragment) text
Text <https://example.com/pa)re(ns> text {MD054}
Text [url](https://example.com/an>g<le>) text
<!-- markdownlint-configure-file {
"no-bare-urls": false,
"link-image-reference-definitions": false,
"link-fragments": false,
"link-image-style": {
"style": "inline_or_reference"
"autolink": false
}
} -->

View file

@ -1,18 +1,77 @@
# Reference Link Style
# Link Style reference_only
Text [url](https://example.com) text {MD054}
Text ![url](https://example.com) text {MD054}
Text [url](<https://example.com>) text {MD054}
Text ![url](<https://example.com>) text {MD054}
Text [url](https://example.com "title") text {MD054}
Text ![url](https://example.com "title") text {MD054}
Text {MD054} [url](https://example.com
"title") text
Text {MD054} ![url](https://example.com
"title") text
Text [url {MD054}](https://example.com) text
Text ![url {MD054}](https://example.com) text
Text [url] text
Text ![url] text
Text [text][url] text
Text ![text][url] text
Text <https://example.com> {MD054} text
Text [url][] text
[url]: https://example.com
Text ![url][] text
Text [url] text
Text ![url] text
Text <https://example.com> text {MD054}
[url]: https://example.com "title"
[undefined]
Text [url](https://example.com/embedded\3backslash) text {MD054}
Text [url](https://example.com/backslash\[escape) text {MD054}
Text [embedded-backslash] text
Text [backslash-escape] text
Text <https://example.com/embedded\3backslash> text {MD054}
Text <https://example.com/backslash[no-escape> text {MD054}
[embedded-backslash]: https://example.com/embedded\3backslash
[backslash-escape]: https://example.com/backslash\[escape
Text [url](<https://example.com/embedded space>) text {MD054}
Text [url](<https://example.com/embedded)paren>) text {MD054}
Text [url](https://example.com/\(parens\)) text {MD054}
Text [url](https://example.com/pa(re(ns))) text {MD054}
Text [url](relative/path) text {MD054}
Text [url](#fragment) text {MD054}
Text <https://example.com/pa)re(ns> text {MD054}
Text [url](https://example.com/an>g<le>) text {MD054}
<!-- markdownlint-configure-file {
"link-fragments": false,
"link-image-style": {
"style": "reference_only"
"autolink": false,
"inline": false
}
} -->

View file

@ -1,20 +0,0 @@
# Inline Link Style
Text [url](https://example.com) text {MD054}
Text ![url](https://example.com) text {MD054}
Text [url] text
Text ![url] text
Text [text][url] text
Text ![text][url] text
Text <https://example.com> text
Text [url][] text
[url]: https://example.com
<!-- markdownlint-configure-file {
"no-bare-urls": false,
"link-image-reference-definitions": false,
"link-image-style": {
"style": "reference_or_autolink"
}
} -->

View file

@ -474,7 +474,7 @@ test("styleAll", (t) => new Promise((resolve) => {
"MD042": [ 81 ],
"MD045": [ 85 ],
"MD046": [ 49, 73, 77 ],
"MD047": [ 120 ],
"MD047": [ 128 ],
"MD048": [ 77 ],
"MD049": [ 90 ],
"MD050": [ 94 ],
@ -523,7 +523,7 @@ test("styleRelaxed", (t) => new Promise((resolve) => {
"MD042": [ 81 ],
"MD045": [ 85 ],
"MD046": [ 49, 73, 77 ],
"MD047": [ 120 ],
"MD047": [ 128 ],
"MD048": [ 77 ],
"MD049": [ 90 ],
"MD050": [ 94 ],

File diff suppressed because it is too large Load diff