Heim > Backend-Entwicklung > Golang > Wie rendert man Zeilenumbrüche in HTML-Vorlagen richtig?

Wie rendert man Zeilenumbrüche in HTML-Vorlagen richtig?

Linda Hamilton
Freigeben: 2024-10-30 14:59:02
Original
983 Leute haben es durchsucht

How to Properly Render Line Breaks in HTML Templates?

Neue Zeilen durch
ersetzen in HTML-Vorlagen

In HTML-Vorlagen kann das Ersetzen von Zeilenumbrüchen (n) durch Markup (
) aufgrund von Escapezeichen zu unerwartetem Verhalten führen. Wenn die geladene Zeichenfolge an die Vorlage übergeben wird, werden Zeilenumbrüche in
maskiert, was dazu führt, dass sie als wörtlicher Text anstelle von Zeilenumbrüchen angezeigt werden.

Lösung:

Um dieses Problem zu beheben, können Sie den Text vorverarbeiten, bevor Sie ihn in der Vorlage verwenden. So geht's:

  1. Bereinigen Sie die Eingabe: Verwenden Sie die Funktion template.HTMLEscape(), um den Text zu bereinigen und alle potenziell schädlichen Fragmente zu entfernen.
  2. Ersetzen Sie Zeilenumbrüche: Ersetzen Sie nach der Bereinigung die Zeilenumbrüche (n) durch Markup (
    ).
  3. Umbruch in HTML: Kapseln Sie den vorverarbeiteten Text als HTML mit template.HTML . Dadurch wird sichergestellt, dass die Vorlagen-Engine weiß, dass der Inhalt sicher ist.
  4. Führen Sie die Vorlage aus: Übergeben Sie den bereinigten und vorverarbeiteten Text an die Vorlage zum Rendern.

Beispielcode:

<code class="go">import (
    "html/template"
    "os"
    "strings"
)

const page = `<!DOCTYPE html>
<html>
  <head>
  </head>
  <body>
    <p>{{.}}</p>
  </body>
</html>`

const text = `first line
<script>dangerous</script>
last line`

func main() {
    t := template.Must(template.New("page").Parse(page))
    safe := template.HTMLEscapeString(text)
    safe = strings.Replace(safe, "\n", "<br>", -1)
    t.Execute(os.Stdout, template.HTML(safe)) // Encapsulate as HTML
}</code>
Nach dem Login kopieren

Dieser Code stellt sicher, dass jeglicher schädlicher Inhalt im Eingabetext neutralisiert wird und ermöglicht die ordnungsgemäße Darstellung von Zeilenumbrüchen mithilfe von Markup.

Das obige ist der detaillierte Inhalt vonWie rendert man Zeilenumbrüche in HTML-Vorlagen richtig?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage