你可以像 mdit include 插件那样做:
markdown-it-plugin-img-to-base64.js
export default function imgToBase64(md) {
const defaultRender =
md.renderer.rules.image ||
function (tokens, idx, options, env, self) {
return self.renderToken(tokens, idx, options);
};
md.renderer.rules.image = function (tokens, idx, options, env, self) {
let token = tokens[idx];
let relativeImgSrc = token.attrGet("src");
let imageBase64 = convertToBase64(relativeImgSrc);
token.attrSet("src", imageBase64);
return defaultImageRender(tokens, idx, options, env, self);
};
}
设置你的MD
const md = new MarkdownIt(md_options);
md.use(imgToBase64);
然后在渲染中使用当前文件路径解析自定义环境对象:
md.value.render(props.source, {
filePath: yourSourceOfTheCurrentFilePath,
});