SlimでIE条件付コメント的なHTML要素を出力

Rubyしてます!

SlimはRubyのテンプレートエンジンです.

Padrinoが対応していたので使ってみている.RubyMineが対応していないのが惜しいので,add slim templating support : RUBY-6967にvoteしておいた.

んで,冒頭のタイトル通りIE条件付コメントなHTMLを,なんとか出力できたのでスニペットのシェアを兼ねてメモエントリ.以下の例示はHTMLの冒頭部分のみです.

Slimテンプレート

以下のようにSlimテンプレートに記述しました.

doctype 5
/![if lt IE 7]><html class="no-js ie6 oldIE" lang="ja"><![endif]
/![if IE 7]><html class="no-js ie7 oldIE" lang="ja"><![endif]
/![if IE 8]><html class="no-js ie8 oldIE" lang="ja"><![endif]
/![if gt IE 8]><!
html class="no-js" lang="ja"
  /!<![endif]
  head

素直にSlimのhtml-conditional-commentsを使うと,その場でhtml要素が閉じられてしまうので,普通のhtmlコメントの記法を利用しています.

出力の結果

こうやって出力されました.

<!DOCTYPE html><!--[if lt IE 7]><html class="no-js ie6 oldIE" lang="ja"><![endif]--><!--[if IE 7]><html class="no-js ie7 oldIE" lang="ja"><![endif]--><!--[if IE 8]><html class="no-js ie8 oldIE" lang="ja"><![endif]--><!--[if gt IE 8]><!-->
<html class="no-js" lang="ja">
  <!--<![endif]-->
  <head>

なんか気持ち悪いけどできた〜.

もうちょっとスマートに書ければいいのだけど難しそう.