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

时间:2017-01-17 14:35:15

标签: javascript html simplemde

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

有没有办法在默认previewRender的新标签页中设置Html预览以打开锚标记,该标签现在会在同一标签中打开链接。参考图片:

image

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

  1. 我知道我们可以设置自定义previewRender,但为链接添加target="_blank"所有降价语法的自定义解析器功能将会很多。
  2. 我可以通过简单地更改 togglePreview 中的函数simplemde.js来替换锚标记,使其具有target="_blank" = this;> replace(/a href/g, 'a target="_blank" href'),但这不是一个永久的解决方案,因为这将是一个黑客,我将不得不在SimpleMDE的每次更新中添加。
  3. 除了这两个还有其他替代方法吗?

1 个答案:

答案 0 :(得分:1)

如果您look at how simplemde renders html,它只会使用marked。快速搜索使我找到了具有same issue we have的标记用户。简而言之,您将必须设置一个自定义previewRender,但是使用github上已标记问题页面上的csytan概述的解决方案并不是那么糟糕:

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);