Rails/ERB 与 Redcarpet:HTML 消失
Posted
技术标签:
【中文标题】Rails/ERB 与 Redcarpet:HTML 消失【英文标题】:Rails/ERB with Redcarpet: HTML disappearing 【发布时间】:2014-10-03 03:00:17 【问题描述】:如果我启动rails console
并输入:
Redcarpet::Markdown.new(Redcarpet::Render::html.new).render("line 1 \nline 2").html_safe
(记住在markdown中换行前2个空格表示强制换行)
我得到了预期:<p>line 1<br>\nline 2</p>\n
但如果我在 ERB 中使用此代码,我在页面源代码中看到的只是包含在 <p>
中的原始文本。换行符转义字符被保留,但2个空格消失了,没有<br>
。
什么给了?谢谢你的智慧。如果您能解释一下我是如何自己找出问题的,那就太赞了!
【问题讨论】:
【参考方案1】:我相信你应该做类似的事情
...render("line 1 \nline 2".gsub(/\n/, '<br/>')).html_safe
解释得很好here
【讨论】:
【参考方案2】:我确定的解决方法是使用 Redcarpet 中的“硬包装”选项。这对于我的用例来说实际上是完全可以接受的,但我仍然很好奇,所以如果有人想出解决原始问题的方法,我会更改已接受的答案。
【讨论】:
以上是关于Rails/ERB 与 Redcarpet:HTML 消失的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Rails ERB 文件的渲染部分 url 中访问 java 脚本变量?
Rails & Redcarpet:在 ApplicationHelper 中使用时未初始化的常量 Redcarpet::Render