2016-12-01 15 views
0

我在应用程序中添加了一个非常基本的Stackoverflow问题格式化系统。我也得在此字符串点:在Rails中转义这个HTML的正确方法

_italic_ and **bold** and `@inline_code` and: \n </code snippet> 

变为:

<i>italic</i> and <b>bold</b> and <span class="block-code">@inline_code</span> and: <br/> 
<span class="block-code"></code snippet></span> 

什么是显示这一点,以便粗体,斜体和span标签都成为HTML正确的和最安全的方式标签但其他标签显示为文本?

+1

最好的方法是使用降价库而不是重新创建,然后使用HTML标记whitelister转换为“安全”字符串,然后使用Ruby的标准html_safe功能。 –

+0

我没有使用降价库的唯一原因是因为我想自己做一个破解。因此,如果我想将某些标签列入白名单,那我该怎么办?当呈现用户生成的内容时,html_safe是否也适用?谢谢 –

+0

'“A

b
”.html_safe(tags:%w(strong em a))' – max

回答

0

的解决方案是交换与号和小于为HTML实体符号...

string.gsub("&", "&amp;").gsub("<", "&lt;") 

...然后包裹在输出中的标签<pre>

相关问题