将[]字节传递到模板中,作为论坛风格的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)传递整个帖子,因为它表示来自潜在不可靠来源的第三方数据。有没有一种方法可以使用Vanilla Go1模板包将仅某些标签用于格式设置白名单?
我确实认为您想解析HTML。exp / html中的HTML解析器被认为是不完整的,因此已从Go 1中删除,尽管exp树仍位于Go源树中,并且例如可以通过每周标签进行访问。我不知道到底什么是不完整的。我曾经将它用于一个简单的任务,它满足了我的需求。
当然,还可以检查仪表板并查看相关的SO帖子,Go1之后是否有任何聪明的方法来获取exp/ html?,主要用于推荐http://code.google.com/p/go-html-transform/