保留文本区域的缩进

时间:2013-06-15 15:41:37

标签: html ruby-on-rails haml

我有一个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行将全部保持对齐而不进行缩进。

有没有办法保留用户在文本框中输入的前导空格/缩进?

2 个答案:

答案 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。不要保证这是有效的,但希望你有这个想法