Пробелы между тегами в HAML - PullRequest
3 голосов
/ 04 марта 2010

Есть ли способ указать формат «симпатичный принт» для тегов HTML? Я хочу иметь возможность помещать пробелы между блоками HTML, так что это:

<!-- container -->
<div id='container'>
</div>
<!-- footer -->
<div id="footer">
</div>
<!-- analytics -->
...

... преобразуется в это:

<!-- container -->
<div id='container'>
</div>


<!-- footer -->
<div id="footer">
</div>


<!-- analytics -->
...

Я знаю, что вы можете делать комментарии с /, есть ли что-то подобное для пробелов между тегами? Может быть, что-то вроде этого

/ container
#container
\
\
/ footer
#footer
:s
:s
/ analytics

Где \ или :s могут быть пользовательскими фильтрами?

Или даже что-то вроде = space(10) для 10 разрывов строки? Или, может быть, даже ~ сам по себе, но это не работает.

Ответы [ 4 ]

5 голосов
/ 04 марта 2010
#container
- haml_concat("\n" * 5)
#footer

Помощник haml_concat напрямую объединяет текст в выходной буфер без какой-либо предварительной обработки.

1 голос
/ 04 марта 2010

Вы можете оценить блок Ruby , чтобы вставить дополнительные новые строки:

.main
  .container
    %p Something

  ~ "\n" * 5

  .footer
    %p Footer

Также используется ~ - сохранение пробелов .

0 голосов
/ 22 июля 2013

Я написал специальный фильтр для такого рода вещей: https://gist.github.com/dmitry/6050231

Чтобы использовать это, вам просто нужно добавить :s, как в вашем примере:

#footer
:s
:s
/ analytics
0 голосов
/ 20 сентября 2012
\#container  
= ('< br />'*5).html_safe 

\#footer
...