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