gpt4 book ai didi

Git diff 到 HTML

转载 作者:IT王子 更新时间:2023-10-29 02:09:55 27 4
gpt4 key购买 nike

我正在用 Go 编写一个 webhook,它会向我发送一封电子邮件,其中包含对特定存储库的每次提交的差异。现在我将差异作为原始文本发送,如下所示:

https://github.com/ee92/go-lambda/commit/ac56fc2cfe86c50e9d73ecb0f8db74c672e205cd.diff

我希望将其发送为带有颜色的格式漂亮的 HTML,就像您在 github 或 bitbucket 上看到的那样,以便更容易阅读更改的内容。真的很难过如何去做这件事。感谢任何建议。谢谢。

最佳答案

您可以使用标准库 html/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 文件的规范。

关于Git diff 到 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49838149/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com