Inserting HTML to golang template [duplicate]

二次信任 提交于 2019-12-05 15:20:12

You should pass the variable as a template.HTML and not as a string:

tpl := template.Must(template.New("main").Parse(`{{define "T"}}{{.Html}}{{.String}}{{end}}`))
tplVars := map[string]interface{} {
    "Html": template.HTML("<p>Paragraph</p>"),
    "String": "<p>Paragraph</p>",
}
tpl.ExecuteTemplate(os.Stdout, "T", tplVars)

//OUTPUT: <p>Paragraph</p>&lt;p&gt;Paragraph&lt;/p&gt;

https://play.golang.org/p/QKKpQJ7gIs

As you can see, the variable we passed as a template.HTML is not escaped, but the one passed as a stringis.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!