我正在编写一个 markdown-it 插件,它可以将图像文件转换为 Base64 类型。例如
![foo](./foo.png)
渲染结果应该是
<p><img src="data:image/jpeg;base64,/9j/2dkaAAA=="/></p>
所以我写了一个这样的小插件
let defaultImageRender=md.renderer.rules.image;
md.renderer.rules.image=function(tokens,idx,options,env,self){
let token=tokens[idx];
let relativeImgSrc=token.attrs.filter(x=>x[0]==='src').map(x=>x[1])[0];
let imageBase64=convertToBase64(relativeImgSrc);
token.attrSet('src',imageBase64);
return defaultImageRender(tokens,idx,options,env,self);
}
因为我只能获取相对于 markdown 文件路径而不是我的代码路径的路径,所以代码会引发错误。无论如何我可以在插件中获取降价文件路径,还是有其他方法可以实现该功能?