Ruby HAML的空属性

我正在使用HAML在Ruby项目上实现Schema微格式,但无法弄清楚如何在标签上设置一个空属性。 我尝试了零和错误,但他们根本没有显示。

例如: <div itemscope>

我打算设置一个空的itemscope属性。

通过@StrangeElement评论添加的代码:

我的代码:

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

:itemscope => true似乎是HAML文档推荐的方法。 我得到和我一样的结果:itemscope => '' ,一个有空值的XHTML有效属性(即<div itemscope=""> )。

也许很好,但我宁愿把它放在Schema文档中logging的空。

使用类似的东西

 %div{:itemscope => true} 

是在你的Haml文件中指定这个的正确方法。

这是如何呈现取决于你如何设置Haml的format选项 。 Haml 3.1中的默认值是xhtml ,并且它将呈现为itemprop='itemprop' ,这是有效的xhtml。 要使用最小化属性进行渲染(如<div itemscope> ),您需要将格式设置为html4html5 。 (在Rails 3中默认是html5 ,而在Haml 4.0中默认是html5 )。

如何设置Haml选项取决于您如何使用它,请参阅文档中的选项部分 。

例如,直接在Ruby中使用Haml,这个:

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

生成具有完整属性的默认xhtml:

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

但是这个:

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

用最小化的属性产生期望的结果:

 <div itemscope></div> 

如果有人对如何放置更多单词感兴趣,他可以使用"foo bar" => true

 %option{ "disabled selected value" => true } Choose an option 

结果是:

 <option disabled="" selected="" value="">Choose an option</option> 

并按预期工作。