Rails / ERB с Redcarpet: исчезновение HTML

Если я запускаю 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> нет.

Что дает? Спасибо за вашу мудрость. Особая благодарность, если вы объясните, как я могу решить проблему самостоятельно!


person user3776518    schedule 09.08.2014    source источник


Ответы (2)


Я верю, что ты мог бы сделать что-то вроде

...render("line 1  \nline 2".gsub(/\n/, '<br/>')).html_safe

Хорошо объяснено здесь

person alv_721    schedule 11.08.2014

Обходной путь, на котором я остановился, - это использовать в Redcarpet вариант «жесткой упаковки». На самом деле это вполне приемлемо для моего варианта использования, но мне все еще любопытно, поэтому я изменю принятый ответ, если кто-нибудь предложит решение исходной проблемы.

person user3776518    schedule 12.08.2014