在链接的Markdown中如何打开新标签页

4

背景

我正在Stack Overflow上撰写我的开发故事。我添加了一些开源项目,并在描述中添加了一个链接。

问题

我试图使得当你点击个人资料中的链接时,链接会在新的标签页/窗口中打开。我搜索并找到了三种方法来实现这个功能:

第一种方法

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

第二种方法

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

第三种方法:

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

我尝试了三种方法,但都没有成功。

问题

所以我的问题是,是否有可能做到这一点?

如果可能的话,我该如何做到?


可能不是完整的故事,但是SO markdown可能不支持目标。 - Tibrogargan
1个回答

9
在创建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,如果不起作用(您正在使用的服务将其剥离),则接受这是不可能的。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接