使用 HTML 元素定义 Go 模板时,避免无意中转义应作为 HTML 一部分呈现的字符非常重要。当在模板中使用字符串表示 HTML 内容时,就会出现此问题。
为了防止转义,正确的方法是将 HTML 内容作为 template.HTML 的实例传递。该类型负责处理 Go 模板中 HTML 的渲染,确保其在不转义的情况下显示。
演示此技术的示例:
<code class="go">package main import ( "fmt" "html/template" "os" ) func main() { 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) }</code>
在此示例中,HTML 内容作为 template.HTML 值传递,这可以防止发生转义。输出按预期显示,没有任何转义的 HTML 字符。
以上是如何在Go模板中插入HTML而不转义?的详细内容。更多信息请关注PHP中文网其他相关文章!