Pug.js - 转换<a> tag in string to a link

时间:2017-06-30 21:11:27

标签: html node.js express pug

An API I'm using returns a string which can also include an <a /> tag with a link. Whenever I render this in Pug, the hyperlink renders as plain text and is unclickable.

Is there any way I can convert the link in the text to an actual link?

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

1 个答案:

答案 0 :(得分:1)

这实际上取决于您在模板中包含此文字的方式,但我认为您已遇到escaped String interpolation。发生的事情是帕格会自动消毒&#39;执行p= [input variable...]时获得的输入。该清理步骤还包括使<>个字符“失效”和#39;在HTML意义上。这可以防止一系列攻击,尤其是可以将实际脚本代码插入页面的攻击。

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

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