2010-01-03 2 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

'- preserve do' работает, но': preserve' не делает. Благодарю. – Cheng

+2

': preserve' не избежит вашего содержимого, а': escaped' не сохранит его. Вот почему вам нужны вложенные фильтры. –

+2

Я столкнулся с этой же проблемой, но мне пришлось использовать «= preserve do», а не «- preserve do», может быть проблема с версией. –

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) 
Смежные вопросы