我有一个HTML文本区域,用户可以在其中生成评论:
= form_for(Comment.new, url: post_comments_path(post_id: @post), method: :post) do |f|
= f.text_area(:body, :class => "span7", :cols => 100, :rows => 10)
= f.submit("Submit Answer")
当我呈现评论时,我使用此代码:
simple_format(comment.body)
这可以保留用户在帖子中输入的任何换行符。但是,它不保留缩进。因此,如果用户发布10行具有不同缩进的代码,则结果将显示为10行,但这10行将全部保持对齐而不进行缩进。
有没有办法保留用户在文本框中输入的前导空格/缩进?
答案 0 :(得分:2)
默认情况下,空格序列将在html中折叠为一个。您可以通过设置css属性white-space: pre;
来更改此行为。您可以在此处阅读更多内容:http://www.w3schools.com/CSSref/pr_text_white-space.asp
答案 1 :(得分:-2)
<% if comment.body=~/(?:[\.]+)(/\n\s)(?:[\.]+)/
<% i=0 %>
<% while i <=comment.body %>
<% if comment.body[i..i+1]=~/\n\s/ || i==0 %>
<%k=2%>
<% while i+k<=comment.body || comment.body[i+k]!~/\n/ %>
<% k+=1%>
<% end %>
<p class="with_margin"><%=сomment.body[i..k] %> </p>
<%i=i+k+1 %>
<% else %>
<% i+=1 %>
<% end %>
<% else %>
<%=comment.body %>
<% end %>
和CSS:
p.with_margin{
margin-left: 10 px}
我想是这样的。
P.S。不要保证这是有效的,但希望你有这个想法