Str*_*ent 49 ruby haml ruby-on-rails
我正在使用HAML在Ruby项目上实现Schema微格式,并且无法弄清楚如何在标记上设置空属性.我尝试了nil和false,但他们根本没有显示.
例: <div itemscope>
我想设置一个空的itemscope属性.
我的代码:
.agency.premium{:itemscope => true, :itemtype => 'schema.org/ProfessionalService';}
Run Code Online (Sandbox Code Playgroud)
:itemscope => true似乎是HAML文档中推荐的方法.我得到了与我相同的结果:itemscope => '',一个带有空值的XHTML有效属性(即<div itemscope="">).
可能没问题,但我宁愿把它弄空,如Schema doc中所记录的那样.
mat*_*att 74
使用类似的东西
%div{:itemscope => true}
Run Code Online (Sandbox Code Playgroud)
是在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
Run Code Online (Sandbox Code Playgroud)
生成具有完整属性的默认xhtml:
<div itemscope='itemscope'></div>
Run Code Online (Sandbox Code Playgroud)
但是这个:
engine = Haml::Engine.new '%div{:itemscope => true}', :format => :html5
puts engine.render
Run Code Online (Sandbox Code Playgroud)
使用最小化的属性生成所需的结果:
<div itemscope></div>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11349 次 |
| 最近记录: |