將[]字節傳遞到模板中作爲論壇式web應用程序中消息帖子的主體。在模板中,調用一個方法來轉換爲字符串,並一路走來,切換出所有的換行符換行:使用Go的html /模板免除轉義白名單標籤
<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)傳遞整篇文章,因爲它代表來自潛在不可信來源的第三方數據。有沒有一種方法可以使用vanilla Go1模板軟件包將僅用於格式化的一些標籤列入白名單?
曾經有一次,它遇到了帶有'<'標籤的javascript標籤。我不知道它是否仍然存在,但是代碼中充滿了HTML解析規範各個部分的TODO項目。 – 2012-04-05 19:11:15
謝謝,我將調查go-html-transform。畢竟,Go需要它自己的BeautifulSoup ... – 2012-04-05 22:09:16
修補程序也歡迎go-html-transform,以及如果你覺得它需要一些調整:-) – 2012-04-06 01:07:36