|
この文字は必要ありません。Slim では、HTML を直接インクルードするためのインライン HTMLが許可されており、これには doctype が含まれています。ただし、これは書式設定には役立ちませんが、その後に改行はありません。
Doctype は実際には Slim が使用する Temple で管理されます。これを変更して、カスタム doctype を追加して、必要な動作を得ることができます。これには Temple の内部データをいじる必要があるため、内部が変更されている可能性があるため、特にアップグレードする場合は少し注意する必要があります。
問題のハッシュは凍結されているため、新しいエントリを追加することはできません。ただしdup
、複製されたハッシュにエントリを追加し、新しいハッシュを定数に割り当てることができます。通常、この方法で定数を再割り当てするべきではないため、Ruby は警告を生成します。
new_hash = Temple::HTML::Fast::XHTML_DOCTYPES.dup
new_hash['rdf'] = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd">'
Temple::HTML::Fast::XHTML_DOCTYPES = new_hash
rdf
これで、Slim で定義済みの doctype であるかのように使用できます。
doctype rdf
html
これにより、次が生成されます。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd">
<html></html>
警告が表示されないようにしたい場合は、定数を変更する前に に設定$VERBOSE
しnil
てください (必ず後で元に戻してください)。
begin
old_verbose, $VERBOSE = $VERBOSE, nil
Temple::HTML::Fast::XHTML_DOCTYPES = new_hash
ensure
$VERBOSE = old_verbose
end
(これをブロックを受け入れるメソッドに変えることができます。Rails を使用している場合は、既に . で行われていますsilence_warnings
。)