astro-ghostcms/.pnpm-store/v3/files/06/e88372a585e717adf38ae5fe3b3...

27 lines
825 B
Plaintext

import { visit } from "unist-util-visit";
function rehypeImages() {
return () => function(tree, file) {
const imageOccurrenceMap = /* @__PURE__ */ new Map();
visit(tree, (node) => {
if (node.type !== "element")
return;
if (node.tagName !== "img")
return;
if (node.properties?.src) {
if (file.data.imagePaths?.has(node.properties.src)) {
const { ...props } = node.properties;
const index = imageOccurrenceMap.get(node.properties.src) || 0;
imageOccurrenceMap.set(node.properties.src, index + 1);
node.properties["__ASTRO_IMAGE_"] = JSON.stringify({ ...props, index });
Object.keys(props).forEach((prop) => {
delete node.properties[prop];
});
}
}
});
};
}
export {
rehypeImages
};