Haml поддерживает терсер - упрощенный синтаксис атрибутов в Ruby, основанный на синтаксисе атрибутов в HTML. Атрибуты указываются в круглых скобках вместо фигурных, как в примере:
%html(xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en")
Переменные Ruby могут указываться без кавычек. Могут использоваться как локальные так и глобальные переменные. Например:
%a(title=@title href=href) Stuff
Тоже самое, что и:
%a{:title => @title, :href => href} Stuff
Так как в примере при разделении атрибутов запятых нет, то более сложные конструкции указания атрибутов не поддерживаются. Для таких ситуаций вам нужно использовать синтаксис с {}
. Как бы то ни было, вы можете использовать эти синтаксисы одновременно:
%a(title=@title){:href => @link.href} Stuff
Также вы можете использовать #{}
интерполяцию для того, чтобы вставить сложные выражения в атрибут HTML:
%span(class="widget_#{@widget.number}")
Указанные атрибуты в HTML-стиле могут быть расположены на нескольких строках, также как и атрибуты в виде хеш-стиля:
%script(type="text/javascript"
src="javascripts/script_#{2 + 7}")