如何配置 marked 链接,以添加 target=”_blank”?

Marked 是 Markdown 的解析器(parser)和编译器(compiler)。轻量级,为速度而生,无需长时间缓存或阻塞;可用作命令行界面 (CLI) 并在客户端或服务器端 JavaScript 项目中运行。很多独立产品诸如:倾城之链、曼妙句子、玉桃文飨轩,都是采用 Marked 解析 Markdown 为 html,交给浏览器渲染,从而呈现出效果。

Marked 解析(parser) Markdown,对于 <a> 标签,默认是在当前浏览器选项卡中打开;即:target=”_self”。如何配置 marked 链接,以添加 target=”_blank” ?只需采取如下处理方式即可(具体详情可参见:Marked Doc – parse ):

import { marked } from 'marked'

const renderer = new marked.Renderer()
const linkRenderer = renderer.link
renderer.link = (href, title, text) => {
  const html = linkRenderer.call(renderer, href, title, text)
  return html.replace(/^<a /, '<a target="_blank" rel="noopener" ')
}

marked.setOptions({
  renderer,
  sanitize: false,
})

export const parse = marked.parse