2015-04-12 32 views
1

在Rails中的simple_format幫手將採取文本輸入並將換行符轉換爲pbr標籤,這與我正試圖完成的完全相反。如何做Rails的simple_format的「反向」?

我怎麼會去考慮HTML,看起來像的一個片段:

<p>Lorem</p> 
<p>Ipsum. 
    <br /> 
    Lorem ipsum. 
    <br /> 
    Lorem ipsum. 
</p> 
<p> 
    Lorem ipsum. 
</p> 

,並將其轉換的東西,看起來像:

Lorem\n\nIpsum.\nLorem ipsum.\nLorem ipsum.\n\nLorem ipsum. 

回答

1
new_html = html 
      .gsub("\n", '')    # remove existing new lines 
      .gsub('</p>', "</p>\n")  # add a new line per para tag 
      .gsub('<br />', "<br />\n") # add a new line per break tag 
ActionController::Base.helpers 
    .strip_tags(new_html)     # remove all html tags 
+1

謝謝你的回答。你願意更新你的答案,並附上你正在做的背後的解釋。具體來說,通過'strip_tags'運行它的原因是什麼? – SharkLaser

0

補充前面的回答您可能希望如果break標籤是這種方式,並且.gsub('<div/>', "<div/>\n"),則添加.gsub('<br/>', "<br/>\n")。只要確保你正在替換所有必須破解文本的標籤。