首頁 >後端開發 >Golang >如何在Go模板中插入HTML而不轉義?

如何在Go模板中插入HTML而不轉義?

DDD
DDD原創
2024-10-29 10:02:30340瀏覽

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn