如何从博客文章预览中清除html实体-Rails
我正在继续我的博客应用程序的实现,我正在使用markdown(红毯宝石)创建帖子 然而,在我的测试帖子中,我有这个代码如何从博客文章预览中清除html实体-Rails,html,ruby-on-rails,Html,Ruby On Rails,我正在继续我的博客应用程序的实现,我正在使用markdown(红毯宝石)创建帖子 然而,在我的测试帖子中,我有这个代码 #This is a test post `<p> your paragraph text here </p>` 有解决办法吗?我希望符号留在这个例子中,或者我只需要一些普通字符的介绍 还有第二个问题:有没有办法瞄准我在预览中显示的帖子的哪一部分?Rails 4.2引入了HTML消毒方法的新实现(其中一个是strip\u标记helper)。曾经,HT
#This is a test post
`<p> your paragraph text here </p>`
有解决办法吗?我希望符号留在这个例子中,或者我只需要一些普通字符的介绍
还有第二个问题:有没有办法瞄准我在预览中显示的帖子的哪一部分?Rails 4.2引入了HTML消毒方法的新实现(其中一个是
strip\u标记
helper)。曾经,HTML标记是通过正则表达式删除的,Rails 4.2通过在封面下使用Nokogiri(通过丝瓜)实现了同样的功能
由于strip\u标记
与以前的版本相比,似乎失去了一些向后兼容性,因此解决方法是使用sanitize
帮助程序,而不是strip\u标记
而不是:
<%= truncate(strip_tags(post.html), length: 80) %>
使用:
sanitize助手应该使用WhiteListSanitizer,但如果它不起作用,您可以尝试直接使用以下命令调用特定方法:
<%= truncate(Rails::Html::WhiteListSanitizer.new.sanitize(post.html), length: 80) %>
您使用的Rails版本是什么?在Rails的最新版本中,strip_标记
将特殊字符转换为html实体时出现了一个bug。实际上我使用的是4.2.1。这个版本中有bug吗?
<%= truncate(strip_tags(post.html), length: 80) %>
<%= truncate(sanitize(post.html), length: 80) %>
<%= truncate(Rails::Html::WhiteListSanitizer.new.sanitize(post.html), length: 80) %>