Как удалить ненужный отступ из предварительного тега HAML

У меня проблема с <pre>, вот мой код, скриншот прикреплен ниже. Как убрать отступы?

%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>

person Cheng    schedule 03.01.2010    source источник


Ответы (2)


Вам нужно использовать помощник #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.

person Natalie Weizenbaum    schedule 03.01.2010
comment
:preserve не ускользнет от вашего контента, а :escaped не сохранит его. Вот почему вам нужны вложенные фильтры. - person Natalie Weizenbaum; 05.01.2010
comment
Я столкнулся с той же проблемой, но мне пришлось использовать = save do, а не - save do, может быть проблема с версией. - person Peter Duijnstee; 30.11.2011
comment
Использовал = preserve в паре с %div{ style:"white-space: pre-wrap" }<= text, хорошо. - person Nakilon; 09.04.2014

При представлении «pre», например, текста из переменной внутри div или другого тега, используйте

.text.plain= preserve(@mail.body.to_s)

вместе с CSS «white-space: pre-wrap;». Используйте однострочную версию, потому что двухстрочная версия по-прежнему будет отступать от первой строки.

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