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>
),您需要将格式设置为html4
或html5
。 (在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>
并按预期工作。