I’m implementing Schema microformats on a Ruby project using HAML and can’t figure out how to set an empty attribute on a tag. I tried nil and false, but they simply do not shown.
Example: <div itemscope>
I’m tring to set an empty itemscope attribute.
Code added from comment by @StrangeElement:
My code:
.agency.premium{:itemscope => true, :itemtype => 'schema.org/ProfessionalService';}
:itemscope => true seems to be the recommended approach from HAML’s documentation. I get the same result as I would get with :itemscope => '', a XHTML-valid attribute with an empty value (i.e. <div itemscope="">).
Probably fine, but I’d rather have it empty as is documented in the Schema doc.
Using something like
is the correct way to specify this in your Haml file.
How this is rendered depends on how you set Haml’s
formatoption. The default in Haml 3.1 isxhtml, and with that it will render asitemprop='itemprop', which is valid xhtml. To render with minimized attributes (like<div itemscope>) you need to set the format tohtml4orhtml5. (In Rails 3 the default ishtml5, and in Haml 4.0 the default ishtml5).How to set the Haml options depends on how you are using it, see the options section in the docs.
For example, using Haml directly in Ruby, this:
produces the default xhtml with full attributes:
But this:
produces the desired result with minimized attributes: