2010-01-03 25 views
33

我有<pre>的问题,下面是我的代码,截图如下。如何删除缩进?如何从HAML的预标签中删除不需要的缩进

%pre.code 
    :escaped 
     <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
     <html> 
      <head></head> 
      <body> 
       <form> 
        <input type="text" name="empID" /> 
        <input type="submit"/>  
       </form> 
      </body> 
     </html> 

回答

63

您需要使用#preserve帮手新行转换的pre为换行符实体,像这样:

%pre.code 
    = preserve do 
     :escaped 
      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
      <html> 
       <head></head> 
       <body> 
        <form> 
         <input type="text" name="empID" /> 
         <input type="submit"/>   
        </form> 
       </body> 
      </html> 

在未来,你就可以嵌套过滤器,所以你可以做:preserve:escaped

+1

' - 保留做'工程,但':保留'不。谢谢。 – Cheng 2010-01-03 15:33:20

+2

':preserve'不会逃避你的内容,':escaped'不会保留它。这就是为什么你需要嵌套过滤器。 – 2010-01-05 05:24:48

+2

我遇到了同样的问题,但我不得不使用“= preserve do”,而不是“ - preserve do”,可能是版本问题。 – 2011-11-29 23:27:45

2

当代表“预”像从一个div或其他标记内的可变文本,使用

.text.plain= preserve(@mail.body.to_s) 
与CSS沿

“空白:预涡卷;”。使用单行版本,因为双行仍然会缩进第一行。

/ BAD: Will leave the first line incorrectly indented! 
.text.plain 
    = preserve(@mail.body.to_s)