Подтвердить что ты не робот

Как удалить нежелательный отступ из предварительного тега 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>
4b9b3361

Ответ 1

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

Ответ 2

При представлении "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)