HTML in Go-Vorlagen einfügen
Bei der Arbeit mit Go-Vorlagen ist es wichtig zu überlegen, wie Sie HTML-Inhalte einfügen, um unerwartetes Verhalten zu vermeiden. Beispielsweise kann das Einfügen einer Zeichenfolge, die HTML-Code enthält, dazu führen, dass unerwünschte Zeichen maskiert werden, was zu einer falschen Ausgabe führt.
Um das Einfügen von HTML in Go-Vorlagen korrekt zu handhaben, befolgen Sie diese Richtlinien:
Pass HTML als template.HTML:
Anstatt eine Zeichenfolge direkt zu übergeben, packen Sie Ihren HTML-Inhalt in einen template.HTML-Typ ein. Dadurch wird die Vorlagen-Engine angewiesen, den Inhalt als Roh-HTML zu behandeln und zu verhindern, dass ihm Zeichen entzogen werden.
Beispiel:
<code class="go">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) //OUTPUT: <p>Paragraph</p>&lt;p&gt;Paragraph&lt;/p&gt;</code>
Übergabe von Zeichenfolgen vermeiden:
Die Übergabe von HTML-Inhalten als String kann zu unerwünschtem Escapen führen. Zum Beispiel:
<code class="go">tpl := template.Must(template.New("main").Parse(`{{define "T"}}{{.Html}}<p>{{.String}}</p>{{end}}`)) tplVars := map[string]interface{} { "Html": "<p>Paragraph</p>", "String": "<p>Paragraph</p>", } tpl.ExecuteTemplate(os.Stdout, "T", tplVars) //OUTPUT: <p>Paragraph</p>&lt;p&gt;Paragraph&lt;/p&gt;</code>
JSON-Daten:
Wenn Sie JSON-Daten in Ihre Vorlage einfügen, können Sie eine Bibliothek wie „encoding/json“ zum Codieren verwenden als String. Anschließend können Sie die codierte Zeichenfolge an die Vorlage übergeben und sie mithilfe der JSON-Vorlagenfunktion innerhalb der Vorlage dekodieren.
Das obige ist der detaillierte Inhalt vonWie kann ich HTML ohne Escape in Go-Vorlagen einfügen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!