将[]字节传递到模板中,作为论坛样式的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模板包将某些标签列入格式白名单?
2 回答
守着星空守着你
TA贡献1799条经验 获得超8个赞
我深信模板包对此无能为力。如果您想删除特定的(列入黑名单的)标签(分别是此类标签所包围的子树)或仅允许传递特定的标签(列入白名单的标签),那么我认为大概就是解析并重写html AST是一个很好的解决方案。就是说,人们可以在这里和那里看到一些疯狂的RE试图这样做,但是我不认为这是一个“好的解决方案”,而且我怀疑它们在符合HTML规范的一般情况下是否可以成为“正确的”解决方案,其中包括一些法律上的违规行为,因为它可能不属于常规语法类别问题。
- 2 回答
- 0 关注
- 310 浏览
添加回答
举报
0/150
提交
取消