Булевы атрибуты, как определено в черновой спецификации html 5:
http://dev.w3.org/html5/spec/Overview.html#boolean-attributes
Наличие логического атрибута в элементе представляет истинное значение, а отсутствиеатрибута представляет собой ложное значение.
Если атрибут присутствует, его значение должно быть либо пустой строкой, либо значением, которое является ASCII-регистронезависимым совпадением для канонического имени атрибута, без начального или конечногопробел.
Моя страница использует DTD html5.Я пытаюсь использовать помощник вида content_tag в своем собственном помощнике, но у меня возникают проблемы с передачей ему логических атрибутов.
В частности, это мой помощник:
def itemscope(type, options = {}, &block)
content_tag(
:div, {
:itemscope => true,
:itemtype => data_definition_url(type)
}.merge(options),
true,
&block
)
end
def data_definition_url(type)
"http://data-vocabulary.org/#{type}"
end
вна мой взгляд, скажем, я называю это так (я использую хамл):
= itemscope("Organization") do
%h1 Here's some content
Это то, что я хотел бы, чтобы это отображалось:
<div itemscope itemtype='http://data-vocabulary.org/Organization'>
<h1>Here's some content</h1>
</div>
Но это то, чтоЯ на самом деле получаю:
<div itemscope='true' itemtype='http://data-vocabulary.org/Organization'>
<h1>Here's some content</h1>
</div>
Это недопустимая разметка в соответствии со спецификацией w3.Допустимыми значениями для логических атрибутов являются либо имя самого атрибута, либо его вообще нет.
Это раздражает, потому что я могу изменить :itemscope => true
на :checked => true
, и он будет правильно отображать атрибут как checked='checked'
в списке атрибутов элемента div.
Я бы предпочел, чтобы он отображал свернутую версию просто itemscope
... но я не уверен, как сделать , что используя параметры content_tag.Я мог бы очень легко отправить: itemscope => 'itemscope', но трудно сказать, будет ли это правильно интерпретироваться Google, поскольку все их примеры и спецификации показывают свернутые версии.См. Здесь: http://www.google.com/support/webmasters/bin/answer.py?answer=146861, чтобы увидеть, что это за свойства и почему я их использую (формат микроданных)
Кто-нибудь знает, как мне эффективно получить любой атрибут, отправленный в true или false (ruby boolean)значение в content_tag для отображения без какого-либо значения вместо того, чтобы пытаться преобразовать логическое значение в строковое значение?Спасибо:)