49 votes

Attribut vide avec Ruby HAML

Je suis la mise en œuvre du Schéma de microformats sur un Rubis projet à l'aide de HAML et ne peut pas comprendre comment mettre un attribut vide sur une étiquette. J'ai essayé de néant et le faux, mais ils ne sont tout simplement pas montré.

Exemple: <div itemscope>

Je suis tring vide itemscope attribut.

Code ajouté de commentaire par @StrangeElement:

Mon code:

.agency.premium{:itemscope => true, :itemtype => 'schema.org/ProfessionalService';} 

:itemscope => true semble être l'approche recommandée à partir de HAML de la documentation. J'obtiens le même résultat que je voudrais obtenir avec :itemscope => '', XHTML valide attribut avec une valeur vide (c - <div itemscope="">).

Probablement très bien, mais je préfère avoir vide comme cela est montré dans le Schéma de la doc.

74voto

matt Points 33799

En utilisant quelque chose comme

%div{:itemscope => true}

est la façon correcte de le préciser dans votre Haml fichier.

Comment cela est rendu dépend de comment vous définissez Haml de l' format option. La valeur par défaut dans Haml 3.1 est - xhtml, et avec qui il sera rendu en itemprop='itemprop', ce qui est valide xhtml. Pour rendre minimisés attributs (comme <div itemscope>) vous devez définir le format html4 ou html5. (Dans Rails 3, la valeur par défaut est html5, et en Haml 4.0 la valeur par défaut est html5).

Comment définir la Haml options dépend de la façon dont vous l'utilisez, consultez la section options dans les docs.

Par exemple, à l'aide de Haml directement en Ruby, c':

engine = Haml::Engine.new '%div{:itemscope => true}'
puts engine.render

produit par défaut xhtml avec plein d'attributs:

<div itemscope='itemscope'></div>

Mais ce:

engine = Haml::Engine.new '%div{:itemscope => true}', :format => :html5
puts engine.render

produit le résultat souhaité avec les attributs minimums:

<div itemscope></div>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X