首页 > 后端开发 > Golang > 如何在Go模板中插入HTML而不转义?

如何在Go模板中插入HTML而不转义?

DDD
发布: 2024-10-29 10:02:30
原创
379 人浏览过

How to Insert HTML into Go Templates Without Escaping?

在不转义的情况下将 HTML 插入 Go 模板

使用 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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板