astro-ghostcms/.pnpm-store/v3/files/6f/63bda24f19f761d7d84f8c7fec1...

39 lines
1.0 KiB
Plaintext
Raw Normal View History

2024-02-14 14:10:47 +00:00
import { definitions } from "mdast-util-definitions";
import { visit } from "unist-util-visit";
function remarkCollectImages() {
return function(tree, vfile) {
if (typeof vfile?.path !== "string")
return;
const definition = definitions(tree);
const imagePaths = /* @__PURE__ */ new Set();
visit(tree, ["image", "imageReference"], (node) => {
if (node.type === "image") {
if (shouldOptimizeImage(node.url))
imagePaths.add(node.url);
}
if (node.type === "imageReference") {
const imageDefinition = definition(node.identifier);
if (imageDefinition) {
if (shouldOptimizeImage(imageDefinition.url))
imagePaths.add(imageDefinition.url);
}
}
});
vfile.data.imagePaths = imagePaths;
};
}
function shouldOptimizeImage(src) {
return !isValidUrl(src) && !src.startsWith("/");
}
function isValidUrl(str) {
try {
new URL(str);
return true;
} catch {
return false;
}
}
export {
remarkCollectImages
};