HAMLを使用してRubyプロジェクトにスキーママイクロフォーマットを実装していますが、タグに空の属性を設定する方法がわかりません。nilとfalseを試しましたが、表示されません。
例:<div itemscope>
空のitemscope属性を設定しようとしています。
私のコード:
.agency.premium{:itemscope => true, :itemtype => 'schema.org/ProfessionalService';}
:itemscope => true
は、HAMLのドキュメントから推奨されるアプローチのようです。空の値(つまり、:itemscope => ''
)を持つXHTML有効属性である<div itemscope="">
で得られるのと同じ結果が得られます。
おそらく問題ありませんが、スキーマドキュメントに記載されているように、空にしておきたいと思います。
次のようなものを使用する
%div{:itemscope => true}
hamlファイルでこれを指定する正しい方法です。
これがどのようにレンダリングされるかは、Hamlの format
option をどのように設定するかによって異なります。 Haml3.1のデフォルトはxhtml
であり、これにより、有効なxhtmlであるitemprop='itemprop'
としてレンダリングされます。最小化された属性(<div itemscope>
など)でレンダリングするには、フォーマットをhtml4
またはhtml5
に設定する必要があります。 (Rails 3ではデフォルトはhtml5
であり、Haml4.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>
期待どおりに動作します。