有没有办法在Markdown中创建一个在新窗口中打开的链接?如果不是,您建议使用什么语法来完成此操作?我将把它添加到我使用的markdown编译器中。我认为这应该是一个选择。


当前回答

Kramdown对此表示支持。它与标准Markdown语法兼容,但也有许多扩展。你可以这样使用它:

[link](url){:target="_blank"}

其他回答

我不认为有降价功能,尽管如果你想用JavaScript自动打开指向你自己网站以外的链接,可能有其他可用的选项。

Array.from(javascript.links)
    .filter(link => link.hostname != window.location.hostname)
    .forEach(link => link.target = '_blank');

jsFiddle。

如果你正在使用jQuery:

$(document.links).filter(function() {
    return this.hostname != window.location.hostname;
}).attr('target', '_blank');

jsFiddle。

您可以使用{[attr]="[prop]"}添加任何属性

例如[谷歌](http://www.google.com){target="_blank"}

一个全局解决方案是放置<base target="_blank"> 到页面的<head>元素中。这有效地将默认目标添加到每个锚元素。我使用markdown在我的基于wordpress的网站上创建内容,我的主题定制器将允许我将该代码注入到每个页面的顶部。如果您的主题不能做到这一点,可以使用插件

没有简单的方法来做到这一点,就像@alex指出的那样,你需要使用JavaScript。他的答案是最好的解决方案,但为了优化它,你可能只想过滤到内容后链接。

<script>
    var links = document.querySelectorAll( '.post-content a' );  
    for (var i = 0, length = links.length; i < length; i++) {  
        if (links[i].hostname != window.location.hostname) {
            links[i].target = '_blank';
        }
    }
</script>

该代码与IE8+兼容,您可以将其添加到页面底部。注意,您需要更改“。Post-content (Post-content)指向你在帖子中使用的类。

如下所示:http://blog.hubii.com/target-_blank-for-links-on-ghost/

我正在使用Grav CMS,这是完美的:

阀体/内容: 一些文本[1]

车身/参考: [1]: http://somelink.com/?target=_blank

只要确保目标属性首先被传递,如果链接中有其他属性,将它们复制/粘贴到引用URL的末尾。

也可以作为直接链接: [进入本页](http://somelink.com/?target=_blank)