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

Ruby/Redcarpet:从文本中去除降价

Redcarpet 语法高亮

Redcarpet/Bluecloth 不允许标题?

如何使用 Redcarpet 和 Markdown 渲染表格