2016-12-01 118 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>