ホームページ > バックエンド開発 > Golang > HTML テンプレートで改行を正しく表示するにはどうすればよいですか?

HTML テンプレートで改行を正しく表示するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-10-31 12:38:01
オリジナル
945 人が閲覧しました

How to Display Newlines Correctly in HTML Templates?

HTML テンプレートで改行を正しく表示する

改行を含むテキスト ファイルを HTML テンプレートにロードすると、開発者はこれらの改行がエスケープされる問題に遭遇することがよくあります。 「
」へ改行として表示されるのではなく。これは、正しい書式設定と読みやすさを維持する上で問題となる可能性があります。

この課題に対処するには、まず template.HTMLEscape() を使用してテキストをサニタイズし、潜在的な XSS 脆弱性をすべて削除します。その後、改行 (「n」) を「
」に置き換えることができます。 strings.Replace() を使用します。変更されたテキストは、template.HTML() 内でカプセル化され、信頼できる安全な HTML フラグメントとしてマークされます。

Go での実装例は、このアプローチを示しています。

<code class="go">package main

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)) // template.HTML encapsulates a known safe HTML document fragment.
}</code>
ログイン後にコピー

このアプローチレンダリングされた HTML コンテンツの整合性を維持しながら、改行がブラウザーで改行として正しく表示されるようにします。

以上がHTML テンプレートで改行を正しく表示するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート