full site update
This commit is contained in:
42
node_modules/@astrojs/markdown-remark/dist/remark-collect-images.js
generated
vendored
42
node_modules/@astrojs/markdown-remark/dist/remark-collect-images.js
generated
vendored
@@ -1,36 +1,38 @@
|
||||
import { isRemoteAllowed } from "@astrojs/internal-helpers/remote";
|
||||
import { definitions } from "mdast-util-definitions";
|
||||
import { visit } from "unist-util-visit";
|
||||
function remarkCollectImages() {
|
||||
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 imagePaths = /* @__PURE__ */ new Set();
|
||||
visit(tree, ["image", "imageReference"], (node) => {
|
||||
const localImagePaths = /* @__PURE__ */ new Set();
|
||||
const remoteImagePaths = /* @__PURE__ */ new Set();
|
||||
visit(tree, (node) => {
|
||||
let url;
|
||||
if (node.type === "image") {
|
||||
if (shouldOptimizeImage(node.url)) imagePaths.add(decodeURI(node.url));
|
||||
}
|
||||
if (node.type === "imageReference") {
|
||||
url = decodeURI(node.url);
|
||||
} else if (node.type === "imageReference") {
|
||||
const imageDefinition = definition(node.identifier);
|
||||
if (imageDefinition) {
|
||||
if (shouldOptimizeImage(imageDefinition.url))
|
||||
imagePaths.add(decodeURI(imageDefinition.url));
|
||||
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.imagePaths = imagePaths;
|
||||
vfile.data.astro ??= {};
|
||||
vfile.data.astro.localImagePaths = Array.from(localImagePaths);
|
||||
vfile.data.astro.remoteImagePaths = Array.from(remoteImagePaths);
|
||||
};
|
||||
}
|
||||
function shouldOptimizeImage(src) {
|
||||
return !isValidUrl(src) && !src.startsWith("/");
|
||||
}
|
||||
function isValidUrl(str) {
|
||||
try {
|
||||
new URL(str);
|
||||
return true;
|
||||
} catch {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
export {
|
||||
remarkCollectImages
|
||||
};
|
||||
|
Reference in New Issue
Block a user