SimpleMDE:如何设置Html预览以在新选项卡中打开锚标记?

Nal*_*wan 5 html javascript simplemde

我正在使用SimpleMDE编辑器(版本1.10.1).

有没有办法将Html预览设置为在新选项卡中打开锚标记,默认情况下previewRender立即在同一选项卡中打开链接.参考图片:

图片

据我所知,这些是实现这一目标的方法 -

  1. 我知道我们可以设置自定义previewRender,但为所有markdown语法创建自定义解析器函数只是添加target="_blank"链接将是很多.
  2. 我可以通过简单地改变功能做到这一点togglePreviewsimplemde.js更换锚标记有target="_blank"此=> replace(/a href/g, 'a target="_blank" href'),但这并不是长久之计,因为这将是一个黑客,我不得不对SimpleMDE的每次更新补充.

除了这两个还有其他替代方法吗?

小智 1

如果您查看 simplemde 如何呈现 html,您会发现它只是使用标记。快速搜索让我找到了与我们有同样问题的标记用户。简而言之,您必须设置一个自定义,但是使用github 标记问题页面上的csytanpreviewRender概述的解决方案并没有那么糟糕:

var marked = require('marked');

var customPreviewRender = function (text) {
    var renderer = new marked.Renderer();
    var linkRenderer = renderer.link;
    renderer.link = (href, title, text) => {
        var html = linkRenderer.call(renderer, href, title, text);
        return html.replace(/^<a /, '<a target="_blank" rel="nofollow" ');
    };
    return marked(text, { renderer: renderer });
}

var options = {
    previewRender: customPreviewRender 
};

var simpleMde = new SimpleMDE(options);

Run Code Online (Sandbox Code Playgroud)