2019-08-30 22:48:00
【Elixir Phoenix】Phoenixのtemplateで1つの改行に1つのbrタグを対応させる
目次
- バージョン情報
- 目的
- 結論
- 参考文献
バージョン情報
Elixir: 1.8.1
Phoenix: 1.4.2
目的
DBから改行付きデータをtemplateに出力する際に Phoenix.HTML.Format.text_to_html/2 を使って出力するかと思います。
この関数の仕様上、2つ以上の改行があっても1つのpタグに変換されてしまいます。なので、改行を利用した文章の表現が難しいです。
結構調べた結果それ用の関数が用意されてなさそうなので、Noobな私はelixirforumで質問しました。
速攻で回答が来て、しかも望んでいた通りの処理になったので共有します。
結論
str
|> String.split("
", trim: false)
|> Enum.intersperse(Phoenix.HTML.Tag.tag(:br))
改行コード区切りで文字列をリストに変換 ⇒ リストの各要素の間にbrタグを挿入、という感じですね。