Haml: Prefixing a group of attributes

Haml lets you prefix a group of attributes by wrapping them in a hash. This is only possible with the {} attribute syntax, not with the () attribute syntax.

Example: HTML5 data attributes

HTML5 allows you to use arbitrary attributes like data-method and data-confirm. You can prefix a group of data- attributes like this:

%a{href: '/path', data: { method: 'delete', confirm: 'Really delete?' }} Label

This compiles to:

<a data-confirm='Really delete?' data-method='delete' href='/path'>Label</a>

Example: Unpoly attributes

You might also want to use this to define multiple Unpoly Show archive.org snapshot attributes, which are all prefixed by up-:

%a{href: '/path', up: { target: '.element', transition: 'zoom-in' }} Label

This compiles to:

<a href='/path' up-target='.element' up-transition='zoom-in'>Label</a>
Henning Koch Almost 6 years ago