您可以使用 stdlibhtml/template
库制作漂亮的 HTML 模板并将原始字符串作为参数传递:
https://golang.org/pkg/html/template/
import "text/template"
...
t, err := template.New("foo").Parse(`{{define "T"}}Hello, {{.}}!{{end}}`)
err = t.ExecuteTemplate(out, "T", "<script>alert('you have been pwned')</script>")
会产生这个:
Hello, <script>alert('you have been pwned')</script>!
因此,在您的情况下,在单独的文件中定义一个模板,将其读入,然后调用
t, err := template.ParseFiles("./path/to/template.html")
if err != nil {
log.Fatal(err)
}
err = t.ExecuteTemplate(out, "T", rawDiffString)
if err != nil {
log.Fatal(err)
}
它将获取您的差异字符串并将其粘贴到您定义模板变量的模板中。
您必须阅读 Go 如何解析 HTML 模板以正确格式化 HTML 文件的规范。