mirror of
https://github.com/theoludwig/markdownlint-rule-relative-links.git
synced 2026-02-10 23:09:47 +01:00
fix: ignore external https image links
This commit is contained in:
17
src/index.js
17
src/index.js
@@ -70,11 +70,24 @@ const relativeLinksRule = {
|
|||||||
url = new URL(hrefSrc, pathToFileURL(params.name))
|
url = new URL(hrefSrc, pathToFileURL(params.name))
|
||||||
}
|
}
|
||||||
|
|
||||||
if (url.protocol !== "file:" && type !== "image") {
|
const detail = `"${hrefSrc}"`
|
||||||
|
|
||||||
|
if (
|
||||||
|
type === "image" &&
|
||||||
|
url.protocol !== "file:" &&
|
||||||
|
url.protocol !== "http:" &&
|
||||||
|
url.protocol !== "https:"
|
||||||
|
) {
|
||||||
|
onError({
|
||||||
|
lineNumber,
|
||||||
|
detail: `${detail} should be an image`,
|
||||||
|
})
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
const detail = `"${hrefSrc}"`
|
if (url.protocol !== "file:") {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
if (!fs.existsSync(url)) {
|
if (!fs.existsSync(url)) {
|
||||||
onError({
|
onError({
|
||||||
|
|||||||
3
test/fixtures/valid/ignore-external-image.md
vendored
Normal file
3
test/fixtures/valid/ignore-external-image.md
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
# Valid
|
||||||
|
|
||||||
|

|
||||||
@@ -152,7 +152,7 @@ test("ensure the rule validates correctly", async (t) => {
|
|||||||
fixturePath: "test/fixtures/invalid/invalid-image.md",
|
fixturePath: "test/fixtures/invalid/invalid-image.md",
|
||||||
errors: [
|
errors: [
|
||||||
'"../not-an-image.txt" should be an image',
|
'"../not-an-image.txt" should be an image',
|
||||||
'"mailto:not-an-image@pictures.com" should exist in the file system',
|
'"mailto:not-an-image@pictures.com" should be an image',
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
@@ -239,6 +239,10 @@ test("ensure the rule validates correctly", async (t) => {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: "should ignore external image links",
|
||||||
|
fixturePath: "test/fixtures/valid/ignore-external-image.md",
|
||||||
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
for (const { name, fixturePath, config = defaultConfig } of testCases) {
|
for (const { name, fixturePath, config = defaultConfig } of testCases) {
|
||||||
|
|||||||
Reference in New Issue
Block a user