Rails'simple_format的"inverse"怎么做?

How to do the "inverse" of Rails' simple_format?

Rails 中的 simple_format 助手将接受文本输入并将换行符转换为 pbr 标记,这与我正在尝试的完全相反去完成。

我该如何截取 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.
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

作为对先前答案的补充,您可能需要添加 .gsub('<br/>', "<br/>\n") 以防中断标记是这种方式 .gsub('<div/>', "<div/>\n")。只需确保您要替换所有必须中断文本的标签。