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

标签 javascript html simplemde

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

有没有办法设置 Html 预览以在新选项卡中打开 anchor 标记,默认为 previewRender现在在同一选项卡中打开链接。引用图片:

image

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

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

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

    最佳答案

    如果您 look at how simplemde renders html , 它只是使用 marked .通过快速搜索,我找到了标记为 same issue we have 的用户。 .简而言之,您必须设置自定义 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);
    
    

    关于javascript - SimpleMDE:如何设置 Html 预览以在新选项卡中打开 anchor 标记?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41699823/

    相关文章:

    javascript - 有没有办法在现代浏览器(如 Chrome 42)中编写禁用保存密码的方法?

    html - 固定页脚在调整浏览器大小时错位

    javascript - 如何使用 SimpleMDE 和 Qooxdoo 获取滚动容器?

    jquery - 使用 SimpleMDE 禁用调整文本区域的大小

    javascript - 如何在网页中隐藏 javascript 代码?

    javascript - 如何将文本放在 SVG 中的特定位置?

    Javascript 动态点击

    javascript - 在没有 Javascript 的情况下滚动可滚动的 DIV?

    javascript - 从 id 获取标签 => javascript/jquery

    javascript - 如何向 SimpleMDE 添加自定义 Markdown 功能?