我安装了带有Coderay的RedCloth,以突出显示我在博客中粘贴的代码。
如果我粘贴这样的代码:
CodeRay.scan(
"set_meta_tags :og => {
:title => @blog.title,
:type => 'article',
:url => current_url,
:image => @blog.blog_images.first.image.url,
:article => {:published_time => @blog.created_at.to_time.iso8601,
:modified_time => @blog.updated_at.to_time.iso8601,
:author => 'Name',
:section => @blog.categories.first.name,
:tags => @blog.categories.map(&:name).join(', ')
}}",
:ruby).div(:css => :class)我拿着这个
set_meta_tags :og => {
:title => blog</span>.title,
<span class="symbol">:type</span> => <span class="string"><span class="delimiter">'</span><span class="content">article</span><span class="delimiter">'</span></span>,
<span class="symbol">:url</span> => current_url,
<span class="symbol">:image</span> => <span class="instance-variable">blog.blog_images.first.image.url,
:article => {:published_time => blog</span>.created_at.to_time.iso8601,
<span class="symbol">:modified_time</span> => <span class="instance-variable">blog.updated_at.to_time.iso8601,
:author => ‘Name’,
:section => blog</span>.categories.first.name,
<span class="symbol">:tags</span> => <span class="instance-variable">blog.categories.map(&:name).join(‘, ’)
}}我怎么才能摆脱它?
非常感谢
发布于 2014-09-26 10:05:31
在将标记输出到视图之前,可以通过sanitize传递标记。这将保持无害的html标记,但去掉可能有害的东西,如<script>。
<%= sanitize CodeRay.scan(..., :ruby).div(:css => :class) %>如果您可以100%信任标记(我认为在本例中可以),则可以使用raw绕过转义,或者使用html_safe将字符串标记为安全。这将导致所有标签被输出。
<%= raw CodeRay.scan(..., :ruby).div(:css => :class) %>或
<%= CodeRay.scan(..., :ruby).div(:css => :class).html_safe %>还请参见extensions.html#output-safety
https://stackoverflow.com/questions/26056946
复制相似问题