6

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

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

图片

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

  1. 我知道我们可以设置一个 custom previewRender,但是为所有 markdown 语法制作一个自定义解析器函数只是为了添加target="_blank"链接会很多。
  2. 我可以通过简单地更改函数来替换锚标记来做到这togglePreview一点simplemde.jsthis target="_blank"=> replace(/a href/g, 'a target="_blank" href'),但这不是一个永久的解决方案,因为这将是一个 hack,我必须在 SimpleMDE 的每次更新中添加它。

除了这两个之外,还有其他选择吗?

4

1 回答 1

1

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

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

于 2020-03-04T21:39:46.320 回答