旧それなりブログの跡地、画像やスタイルやJSなどが壊れてることがあります。

Jadeでeachすると前後の改行文字が消える

2014年3月15日

例えば、このような Plain Text 用の foo.text.jade テンプレートがあるとする:

| line 1
| line 2
each v in [3, 4]
  | line #{v}
| line 5
| line 6

以下の様な出力を期待していたが:

$cat foo.text.jade | jade
line 1
line 2
line 3
line 4
line 5
line 6

実際はこうである:

$cat foo.text.jade | jade
line 1
line 2line 3line 4line 5
line 6

解決策としては、以下のように手動でLFを挿入する:

| line 1
| line 2#{'\n'}
each v in [3, 4]
  | line #{v}#{'\n'}
| line 5
| line 6

期待通りに出力される:

$cat foo.text.jade | jade
line 1
line 2
line 3
line 4
line 5
line 6

もし、途中の配列が空でも以下の通り:

$cat foo.text.jade | jade
line 1
line 2
line 5
line 6

仕組みはわからないけど、とりあえず each ブロック前後の改行文字が消えてしまうよう。

これで合っているのかなぁ・・・。