Heim >Backend-Entwicklung >Golang >Wie füge ich HTML in Go-Vorlagen ein, ohne es zu maskieren?

Wie füge ich HTML in Go-Vorlagen ein, ohne es zu maskieren?

DDD
DDDOriginal
2024-10-29 10:02:30333Durchsuche

How to Insert HTML into Go Templates Without Escaping?

HTML in Go-Vorlagen ohne Escapezeichen einfügen

Beim Definieren einer Go-Vorlage mit HTML-Elementen ist es wichtig, unbeabsichtigte Escapezeichen bei Zeichen zu vermeiden, die als Teil des HTML gerendert werden sollen . Dieses Problem tritt auf, wenn eine Zeichenfolge zur Darstellung des HTML-Inhalts innerhalb der Vorlage verwendet wird.

Um Escapezeichen zu verhindern, besteht der richtige Ansatz darin, den HTML-Inhalt als Instanz von template.HTML zu übergeben. Dieser Typ ist für die Darstellung von HTML in Go-Vorlagen verantwortlich und stellt sicher, dass es ohne Escapezeichen angezeigt wird.

Ein Beispiel, das diese Technik demonstriert:

<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>

In diesem Beispiel der HTML-Inhalt wird als template.HTML-Wert übergeben, der das Auftreten von Escapezeichen verhindert. Die Ausgabe wird wie vorgesehen angezeigt, ohne maskierte HTML-Zeichen.

Das obige ist der detaillierte Inhalt vonWie füge ich HTML in Go-Vorlagen ein, ohne es zu maskieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn