有没有办法在Markdown中创建一个在新窗口中打开的链接?如果不是,您建议使用什么语法来完成此操作?我将把它添加到我使用的markdown编译器中。我认为这应该是一个选择。
当前回答
这为我工作:[页面链接](你的url在这里"(目标|_blank)")
其他回答
在我的项目中,我这样做,它工作得很好:
[Link](https://example.org/ "title" target="_blank")
Link
但并非所有解析器都允许这样做。
我不认为有降价功能,尽管如果你想用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。
一个全局解决方案是放置<base target="_blank"> 到页面的<head>元素中。这有效地将默认目标添加到每个锚元素。我使用markdown在我的基于wordpress的网站上创建内容,我的主题定制器将允许我将该代码注入到每个页面的顶部。如果您的主题不能做到这一点,可以使用插件
就Markdown语法而言,如果想要获得如此详细的内容,就必须使用HTML。
<a href="http://example.com/" target="_blank">Hello, world!</a>
我所见过的大多数Markdown引擎都允许普通的HTML,只是在这种情况下,一般的文本标记系统无法解决它。(例如StackOverflow引擎。)然后,他们通过HTML白名单过滤器运行整个输出,因为即使只有markdown的文档也很容易包含XSS攻击。因此,如果您或您的用户想要创建_blank链接,那么他们可能仍然可以。
如果这是一个您将经常使用的特性,那么创建自己的语法可能是有意义的,但它通常不是一个重要的特性。如果我想在一个新窗口中启动那个链接,我会自己按下ctrl键,谢谢。
你可以通过本地javascript代码这样做:
var pattern = /a href=/g;
var sanitizedMarkDownText = rawMarkDownText.replace(pattern,"a target='_blank' href=");
JSFiddle Code
推荐文章
- 撇号的HTML代码
- 使用pandoc从Markdown转换为PDF时设置空白大小
- 如何显示数学方程在一般github的markdown(不是github的博客)
- 为什么我的CSS3媒体查询不能在移动设备上工作?
- 下一个元素的CSS选择器语法是什么?
- 我如何用CSS跨浏览器绘制垂直文本?
- 如何获得box-shadow在左侧和右侧
- 相对定位一个元素,而不占用文档流中的空间
- 使用Markdown的Sphinx而不是reST
- 如何在jQuery检索复选框值
- 禁用身体滚动
- 如何在删除前显示确认消息?
- 在一个CSS宽度的小数点后的位置是尊重?
- 我怎么能选择一个特定的类的最后一个元素,而不是父里面的最后一个孩子?
- 反应:为什么当道具改变时子组件不更新