2010-04-26 2 views
4

Я новичок в haml, поэтому я все еще пытаюсь выяснить форматирование.Haml форматирование

У меня есть файл index.haml со следующим кодом.

%h1 
    Welcome to Solidarity 

Hello, 
= @profile.first_name 
! 

Это делает так:

Добро пожаловать солидарности
Здравствуйте, пользователь!

Вот исходный код страницы:

<h1> 
    Welcome to Solidarity 
</h1> 
Hello, 
frances 
! 

Это имеет место между @ profile.first_name и восклицательным знаком. Почему это? И как мне это исправить?

ответ

5
%h1 Welcome to Solidarity 
Hello, #{@profile.first_name}! 
Please #{link_to 'post a comment', new_comment_path}! 

становится

<h1>Welcome to Solidarity</h1> 
Hello, John! 
Please <a href="/comments/new">post a comment</a>! 

Пожалуйста, имейте в виду, что в Rails 2 и Haml 2, вы должны правильно все, что вы отправить в браузер (ХТ NEX3) HTML-бежать:

Hello, #{h @profile.first_name}! 

В Rails 3 и Haml 3 все по умолчанию отключено, поэтому вы можете просто:

Hello, #{@profile.first_name}! 
+0

Спасибо! Аналогичным образом, ссылки link_to имеют дополнительное пространство в конце. Как их решить? – user5243421

+1

Отредактировал мой ответ, чтобы добавить пример 'link_to'. – yfeldblum

+1

Не забудьте HTML-избежать имени пользователя! –

5

Вы также можете использовать «аллигаторы» для «съедания» пробела до или после тега. Из haml-lang docs:

%img 
%pre>< 
    foo 
    bar 
%img 

компилируется:

<img /><pre>foo 
bar</pre><img /> 

Хотя это было бы также решить проблему здесь, решение дается юстиции соответствующей разметки для этого сценария. Просто подумал, что я упоминаю об этом.

Смежные вопросы