rittenhop-ghost/versions/5.94.2/node_modules/markdown-it-image-lazy-loading/index.mjs

30 lines
855 B
JavaScript

import imageSize from 'image-size';
import path from 'node:path';
function lazy_loading_plugin(md, mdOptions) {
var defaultImageRenderer = md.renderer.rules.image;
md.renderer.rules.image = function (tokens, idx, options, env, self) {
var token = tokens[idx];
token.attrSet('loading', 'lazy');
if (mdOptions && mdOptions.decoding === true) {
token.attrSet('decoding', 'async');
}
if (mdOptions && mdOptions.base_path && mdOptions.image_size === true) {
const imgSrc = token.attrGet('src');
const imgPath = path.join(mdOptions.base_path, imgSrc);
const dimensions = imageSize(imgPath);
token.attrSet('width', dimensions.width);
token.attrSet('height', dimensions.height);
}
return defaultImageRenderer(tokens, idx, options, env, self);
};
};
export default lazy_loading_plugin;