生命的意义在于折腾

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" 属性)。

留言板