set tabstop=4
set shiftwidth=4
set nu
set ai
syntax on
filetype plugin indent on
我试过这个,content.gsub("\r\n","<br/>")
但是当我点击视图/显示按钮查看这些行的内容时,我得到输出/结果=&gt;
set tabstop=4<br/> set shiftwidth=4<br/> set nu<br/> set ai<br/> syntax on<br/> filetype plugin indent on
但我试图将这些线条作为单独的线条。但所有这些都成为一条线。为什么呢?
如何使用html中断所有这些行(<br/>
)?
我尝试了这个,但是没有用。
@addpost = Post.new params[:data]
@temptest = @addpost.content.html_safe
@addpost.content = @temptest
#logger.debug(@addpost)
@addpost.save
还尝试不保存到数据库中。仅在视图层中尝试,<%= t.content.html_safe %>
这也不起作用。
从页面来源
获取此信息 <a href="/posts/36">vimrc file</a> <br/>
2011-12-06<br/><br/>
set tabstop=4<br/><br/>set shiftwidth=4<br/><br/>set nu<br/><br/>set ai<br/><br/>syntax on<br/><br/>filetype plugin indent on<br/>
<a href="/posts/36/edit">Edit</a>
<a href="/posts/36" data-confirm="Are you sure?" data-method="delete" rel="nofollow">Delete</a>
<br/><br/>
答案 0 :(得分:20)
将每个新行转换为html标记<br>
的替代方法是使用css显示内容:
.wrapped-text {
white-space: pre-wrap;
}
这会将内容包装在新行上,而不会改变其当前形式。
答案 1 :(得分:6)
如果要渲染嵌入式HTML,则需要使用html_safe
:
<%= @the_string.html_safe %>
如果它可能为零,则raw(@the_string)
不会抛出异常。我对raw
有点矛盾;我几乎从不尝试显示可能是nil
的字符串。
答案 2 :(得分:5)
使用Ruby On Rails 4.0.1来自TextHelper的simple_format
。它将处理比OP请求更多的标签,但会过滤内容中的恶意标签(清理)。
simple_format(t.content)
参考:http://api.rubyonrails.org/classes/ActionView/Helpers/TextHelper.html
答案 3 :(得分:3)
http://www.ruby-doc.org/core-1.9.3/String.html 因为它说gsub期待正则表达式和替换 因为“\ n \ r”是一个字符串,你可以在文档中看到:
如果以字符串形式给出,它包含的任何正则表达式元字符将按字面解释,例如, '\ d'将匹配后跟'd'的反弹,而不是数字。
所以你试图匹配“\ n \ r”,你可能想要一个包含\ n或\ r的字符类 - [\ n \ r]
a = <<-EOL
set tabstop=4
set shiftwidth=4
set nu
set ai
syntax on
filetype plugin indent on
EOL
print a.gsub(/[\n\r]/,"<br/>\n");
答案 4 :(得分:1)
我不确定我是否完全按照这个问题进行操作 - 您是否将输出视为例如预格式化的文本,或源HTML是否具有这些标签?如果源HTML包含这些标记,它们应该出现在新行上,即使它们不在源代码中的换行符,对吧?
无论如何,我猜你正在处理自动字符串转义。查看this other Stack Overflow question 另外,这个:Katz talking about this feature