在链接markdown上打开新标签

时间:2016-10-13 17:00:50

标签: markdown

上下文

我目前正在制作我的开发者。故事,这里是Stack Overflow。我添加了一些开源项目,并在说明中添加了一个链接。

问题

当您点击bio中的链接时,我尝试使用该链接以新的tab / window打开。我搜索并找到了三种方法:

First way

[my link](https://myawesome.link)[newtab]

Second way

[my link](https://myawesome.link){:target="_blank"}

Third way

<a href="https://myawesome.link" target="_blank">my link</a>

我尝试了三种方式但没有任何效果。

问题

所以我的问题是,有可能这样做吗?

如果有可能我该怎么做?

1 个答案:

答案 0 :(得分:3)

当创建Markdown时,XHTML是新的热点,XHTML不允许在元素中使用target属性。因此,Markdown没有得到target的内置支持(可能还有其他因素导致该设计决定)。

[my link](https://myawesome.link)[newtab]有人试图克服这一限制。我不知道采用此提案的任何Markdown实施。如果有,那将是非标准的,不可携带。

属性列表([my link](https://myawesome.link){:target="_blank"})也是非标准的,据我所知,只有每一个都采用了许多Markdown实现中的三个。即便如此,它们通常默认关闭。您需要查阅正在使用的实施文档以查看是否支持该实施,如果是,请参阅如何启用此功能。

当然,Markdown中始终可以接受原始HTML(<a href="https://myawesome.link" target="_blank">my link</a>)。但正如您在答案中所解释的那样:

  

然后,无论如何,他们都会通过HTML白名单过滤器运行整个输出,因为即使只有Markdown文档也可以轻松包含XSS攻击。

我希望StackExchange(包括StackOverflow)以及许多其他网站都是如此。为了更好地理解为什么人们不喜欢target(以及可能为什么它在XHTML中无效),请阅读以下问题的答案:Is it alright to use target=“_blank” in HTML5?

简而言之,似乎由于XHTML使其无效,因此支持不如HTML4时代那么普遍。确实,HTML5规范将它带回来,但它似乎没有像以前那样得到同样广泛的支持。

最好的答案是使用原始HTML,如果它不起作用(你正在使用的服务剥离它)接受它是不可能的。