[]byte をフォーラム スタイルの Web アプリのメッセージ投稿の本文としてテンプレートに渡します。テンプレートで、メソッドを呼び出して文字列に変換し、途中ですべての改行を改行に切り替えます。
<p>{{.BodyString}}</p>
...
func (p *Post) BodyString() string {
nl := regexp.MustCompile(`\n`)
return nl.ReplaceAllString(string(p.Body), `<br>`)
}
最終的に得られるもの:
paragraphs <br> <br>in <br> <br>this <br> <br>post
投稿全体を HTML(p.Body) で渡したくありません。これは、信頼できない可能性のあるソースからのサード パーティ データを表しているためです。バニラ Go1 テンプレート パッケージを使用して、書式設定のために一部のタグのみをホワイトリストに登録する方法はありますか?