转义 ' 到 ' 在 golang html 模板中

如何防止转义'到'html 模板:


package main


import (

    "html/template"

    "os"

)


const tmpl = `<html>

    <head>

        <title>{{.Title}}</title>

    </head>

</html>`


func main() {

    t := template.Must(template.New("ex").Parse(tmpl))

    v := map[string]interface{}{

        "Title": template.HTML("Hello World'"),

    }

    t.Execute(os.Stdout, v)

}

它输出:


<html>

    <head>

        <title>Hello World&#39;</title>

    </head>

</html>

期望的输出:


<html>

    <head>

        <title>Hello World'</title>

    </head>

</html>


胡说叔叔
浏览 186回答 1
1回答

交互式爱情

@dyoo 已经清楚地解释了<title>内容被视为 RCDATA。执行转义的代码在这里。分支if t == contentTypeHTML是发生在template.HTML.如果您确实需要控制源的输出,请使用text/template并手动进行转义。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go