Files
agentic-studio/network-poc/frontend/node_modules/@astrojs/markdown-remark/dist/remark-collect-images.js
Jaakko Vanhala a8c4af0975 Frontend uudelleenrakennettu: Astro-komponentit, Wasm pääsäikeessä, ei Workeria
Vanha frontend siirretty temp/. Uusi rakenne:
- StatusBar.astro, Terminal.astro, Editor.astro, Guide.astro
- global.css erillinen
- Wasm pääsäikeessä (ei Worker — yksinkertainen, debugattava)
- Tab-completion, dropdown, projektikortti, Monaco, GUIDE.md
- Ei tokenisointia eikä koodilaboratoriota

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 20:17:39 +03:00

39 lines
1.3 KiB
JavaScript

import { isRemoteAllowed } from "@astrojs/internal-helpers/remote";
import { definitions } from "mdast-util-definitions";
import { visit } from "unist-util-visit";
function remarkCollectImages(opts) {
const domains = opts?.domains ?? [];
const remotePatterns = opts?.remotePatterns ?? [];
return function(tree, vfile) {
if (typeof vfile?.path !== "string") return;
const definition = definitions(tree);
const localImagePaths = /* @__PURE__ */ new Set();
const remoteImagePaths = /* @__PURE__ */ new Set();
visit(tree, (node) => {
let url;
if (node.type === "image") {
url = decodeURI(node.url);
} else if (node.type === "imageReference") {
const imageDefinition = definition(node.identifier);
if (imageDefinition) {
url = decodeURI(imageDefinition.url);
}
}
if (!url) return;
if (URL.canParse(url)) {
if (isRemoteAllowed(url, { domains, remotePatterns })) {
remoteImagePaths.add(url);
}
} else if (!url.startsWith("/")) {
localImagePaths.add(url);
}
});
vfile.data.astro ??= {};
vfile.data.astro.localImagePaths = Array.from(localImagePaths);
vfile.data.astro.remoteImagePaths = Array.from(remoteImagePaths);
};
}
export {
remarkCollectImages
};