eleventy-img icon indicating copy to clipboard operation
eleventy-img copied to clipboard

Putting CDN base URL for `urlPath` changes `https://` to `https:/`

Open danburzo opened this issue 6 months ago • 2 comments

I’m trying to prefix the src/srcset attributes of the markup generated by Image.generateHTML with the base URL for a CDN (.e.g. https://mycdn.com/). However, sending that value to parseUrl results in the https:/mycdn.com prefix (with a single slash). I assume this function is the culprit, as Node’s path.join() is not equipped to deal with URLs.

static convertFilePathToUrl(dir, filename) {
    let src = path.join(dir, filename);
    return src.split(path.sep).join("/");
  }

Should we make this function work for the case where dir is a valid URL?


Relevant .eleventy.js snippet:

let metadata = await Image(inputPath, {
	urlPath: `https://dans-cdn.com/img/`,
	// ...
});

const markup = Image.generateHTML(metadata, { ... });

danburzo avatar Aug 07 '24 14:08 danburzo