かもメモ

自分の落ちた落とし穴に何度も落ちる人のメモ帳

Ruby Haml タグやコンテンツが色々入る要素にはまる。 SyntaxError - Illegal nesting

Hamlテンプレートでタグやテキスト要素が混在したコンテンツを作成していてSyntaxErrorになったのでメモ。

エラーになる例

%div 2019411日から
  %strong<> アイカツ!
  が再放送だよ!!
  %a(href="aikatsu")<
    %i.icon-help>
    詳しくはコチラ!

👇

Haml::SyntaxError - Illegal nesting: content can't be both given on the same line as %div and nested within it.

Haml はタグ内の要素はインデントかタグの直後に書くかで併用することができない

中に別のタグが入るようなコンテンツ要素はインデントを揃える必要がある

%div
  2019411日から
  %strong<> アイカツ!
  が再放送だよ!!
  %a(href="aikatsu")<
    %i.icon-help>
    詳しくはコチラ!

👇

<div>
  2019年4月11日から  <strong>アイカツ!</strong>が再放送だよ!!
  <a href="aikatsu"><i class="icon-help"></i>詳しくはコチラ!</a>
</div>

 
pugに似たもんやろ。くらいにしか思ってなかったので何故エラー?って結構ハマってしまいました。
改行のコントロール持っ結構めんどいし… pugって超柔軟だったんだなーって改めて認識。(HamlがあってそこからSlimやpugができたからかもですが


[参考]

これはハム