fix: ignore external https image links

This commit is contained in:
2026-02-05 21:12:22 +01:00
parent 211c71d75b
commit c744c4872a
3 changed files with 23 additions and 3 deletions

View File

@@ -70,11 +70,24 @@ const relativeLinksRule = {
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
}
const detail = `"${hrefSrc}"`
if (url.protocol !== "file:") {
continue
}
if (!fs.existsSync(url)) {
onError({

View File

@@ -0,0 +1,3 @@
# Valid
![External Image](https://example.com/image.png)

View File

@@ -152,7 +152,7 @@ test("ensure the rule validates correctly", async (t) => {
fixturePath: "test/fixtures/invalid/invalid-image.md",
errors: [
'"../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) {