gpt4 book ai didi

templates - 使用 Go 的 html/模板免于转义的白名单标签

转载 作者:IT王子 更新时间:2023-10-29 02:00:24 26 4
gpt4 key购买 nike

将 [] 字节作为论坛式 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 源代码树中并且可以通过例如 weekly 标签访问。我不知道到底什么是不完整的。我曾经用它来完成一个简单的任务,它满足了我的需求。

当然,还要检查 dashboard并查看相关的 SO 帖子,Any smart method to get exp/html back after Go1? , 主要是为了推荐http://code.google.com/p/go-html-transform/

关于templates - 使用 Go 的 html/模板免于转义的白名单标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10025292/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com