1

我有一个 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 行将全部左对齐,没有缩进。

有什么方法可以保留用户在文本框中输入的前导空格/缩进?

4

2 回答 2

2

默认情况下,空白序列将在 html 中折叠为一个。您可以通过设置 css 属性来更改此行为white-space: pre;。你在这里阅读更多:http: //www.w3schools.com/CSSref/pr_text_white-space.asp

于 2013-06-15T15:54:55.500 回答
-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}

我想是这样的。

PS 不要保证这是有效的,但希望你明白这一点

于 2013-06-15T16:04:51.803 回答