slim templateのパイプで改行したいとき


計測系のサービスで「スクリプトをそのまま貼り付けてください」みたいな依頼があったときに必要なのでメモ。

なにも考えずパイプ(|)でさくっと対応すると、

sample.slim
| <script language='javascript' src='https://hogehoge.com/path/to/file.js'></script>
| <script language='javascript'><!--
| do_something('*****');
| //--></script>
| <noscript>
| <img src="https://hogehoge.com/path/to/action?hoge=1&fuga=2" width="1" height="1">
| </noscript>

変換時、改行がすべてなくなってしまう。

出力結果
<script language='javascript' src='https://hogehoge.com/path/to/file.js'></script><script language='javascript'><!--do_something('*****');//--></script><noscript><img src="https://hogehoge.com/path/to/action?hoge=1&fuga=2" width="1" height="1"></noscript>

ので、パイプは最初の行1つだけに挿入して、インデントを整えると、見た目どおりに変換される。

sample.slim
| <script language='javascript' src='https://hogehoge.com/path/to/file.js'></script>
  <script language='javascript'><!--
  do_something('*****');
  //--></script>
  <noscript>
  <img src="https://hogehoge.com/path/to/action?hoge=1&fuga=2" width="1" height="1">
  </noscript>

slimの仕様だけど地味に知らんかったやつ

追記

こういう書き方もできます (こっちのほうがまるっとコピペしやすいので良さそう)

|
  foo
  bar

参考