编写markdown-it插件时如何获取markdown文件路径

问题描述 投票:0回答:1
javascript markdown-it
1个回答
0
投票

你可以像 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,
});
© www.soinside.com 2019 - 2024. All rights reserved.