Pug.js - 将<a>字符串中的标签转换为链接



我正在使用的 API 返回一个字符串,该字符串还可以包含带有链接的 <a /> 标记。每当我在 Pug 中渲染它时,超链接都会呈现为纯文本并且无法单击。

有什么方法可以将文本中的链接转换为实际链接吗?

示例字符串:Major disruption through Rugby. More details can be found in <A href="http://nationalrail.co.uk/service_disruptions/166412.aspx">Latest Travel News.</A>

这实际上取决于您如何在模板中包含此文本,但我认为您遇到了转义的字符串插值。发生的情况是,当您执行p= [input variable...]时,Pug会自动"净化"它获得的输入。该清理步骤还包括使<>字符在HTML意义上"不起作用"。这可以防止一系列攻击,最明显的是可以将实际脚本代码插入到页面中的攻击。

但是,如果您完全信任此 API/数据源,则可以选择不转义输入字符串。此选项的安全性取决于您对该 API 的控制程度或您对它的信任程度。

其他不保留输入未转义的选项可能包括手动正则表达式搜索<a ...>标签,并将对该正则表达式的匹配项转换为带有某些 JS 代码的实际链接。

最新更新