如果我启动rails console
并输入:
Redcarpet::Markdown.new(Redcarpet::Render::HTML.new).render("line 1 nline 2").html_safe
(请记住,在换行前加2个空格表示强制换行)我得到了预期的结果:<p>line 1<br>nline 2</p>n
但是如果我在ERB中使用此代码,我在页面源中看到的都是用<p>
包装的原始文本。保留了换行转义字符,但是去掉了两个空格,并且没有<br>
。
给了什么?谢谢你的智慧。如果你能解释一下我是如何解决问题的,那就更棒了!
我相信你可以这样做
...render("line 1 nline 2".gsub(/n/, '<br/>')).html_safe
这里解释得很好
我决定的解决方法是在Redcarpet中使用"hard wrap"选项。对于我的用例来说,这实际上是完全可以接受的,但我仍然很好奇,所以如果有人提出了原始问题的解决方案,我将更改接受的答案。