Ответ 1
Я бы сказал simple_format
не санировать мой контент:
simple_format(@post.content, {}, :sanitize => false)
В @post.content
я хочу
1.simple_format, поэтому контент будет иметь разные строки, а не одну строку без разрывов
2.html_safe, поэтому пользователь может вставить ссылку на <embed>
, такую как youtubes
В порядке использования <%= simple_format @post.content %>
и <%= @post.content.html_safe %>
отдельно
Но когда я использую их вместе: <%= simple_format @post.content.html_safe %>
, html_safe не работает, и, следовательно, видео <embed>
не отображается
Не могли бы вы рассказать мне, как я могу включить код <embed>
и simple_format
в одно и то же время? или есть другие решения для отображения @post.content
? Спасибо!!!
Я бы сказал simple_format
не санировать мой контент:
simple_format(@post.content, {}, :sanitize => false)
Я работаю над подобной проблемой.
Я пытаюсь опубликовать фрагменты кода в своем сообщении в блоге. Он работает очень хорошо, но что-то внутри " Я показываю или что-то более сложное что-либо внутри < > исчезает. Я запустил код <% = simple_format (@article.content), {}, sanitize: false, и я приблизился к тому, что хотел.
Проблема заключалась в том, что код внутри моих блоков фактически изменил мой макет страницы.:.)
В конце концов я вернулся с Redcarpet.
Это довольно просто.
Добавьте gem 'redcarpet' в свой Gemfile и перезапустите сервер Rails.
В application_helper.rb введите следующий код:
def markdown(content)
@markdown ||= Redcarpet::Markdown.new(Redcarpet::Render::HTML, autolink: true, space_after_headers: true, fenced_code_blocks: true)
@markdown.render(content)
end
Параметры здесь описаны в документации. Но fenced_code_blocks: true - это то, что позволяет помещать код в блоки, как описано.
Это будет выводиться здесь, что бы вы ни вводили, и оно будет работать с вашим встраиванием.
Затем, чтобы сделать это в вашем случае, просто поставьте:
уценки (@post.content).html_safe
Должно быть хорошо идти. У вас также есть возможность отступать четыре пробела, как здесь, чтобы вставить код. Кажется, легче сделать ограждение, хотя.