Showdown 解析a标签打开新的标签页
Showdown 转换器默认情况下并不会将 Markdown 中的链接转换为在新标签页打开(即加上 target="_blank" 属性)。如果你想让所有的链接在新标签页中打开,你需要自己扩展 Showdown 的功能或者在转换后手动修改链接。
下面是一个如何使用 Showdown 的扩展 API 来创建这样的扩展的示例:
1.创建扩展
首先,你需要创建一个 Showdown 的扩展,这个扩展会查找所有的 a 标签并给它们添加 target="_blank" 属性:
javascript
1 showdown.extension('targetBlank', function() { 2 return [{ 3 type: 'html', 4 filter: function(text) { 5 return text.replace(/<a href=/g, '<a target="_blank" href='); 6 } 7 }]; 8});
2.注册扩展
将这个扩展注册到 Showdown 转换器中:
JavaScript
1var converter = new showdown.Converter({ 2 extensions: ['targetBlank'] 3});
3.转换 Markdown
现在,当你使用这个转换器将 Markdown 转换为 HTML 时,所有的链接都会在新的标签页中打开:
javascript
1var markdown = "[Showdown](https://github.com/showdownjs/showdown)"; 2var html = converter.makeHtml(markdown);
4.插入到页面中
将转换后的 HTML 插入到页面中:
document.getElementById('content').innerHTML = html; 这样,所有通过 Showdown 转换器生成的链接都会默认在新标签页打开。需要注意的是,这种方式会对所有通过该转换器实例生成的 a 标签生效,如果你想要对特定的链接应用不同的行为(例如,某些链接不打开新标签页),你可能需要一个更复杂的扩展逻辑或者在生成 HTML 后通过其他脚本进行处理。
阅读量:1422发布日期:2023-12-01 16:43:26
博客描述
Showdown 转换器默认情况下并不会将 Markdown 中的链接转换为在新标签页打开(即加上 target="_blank" 属性)。