为了账号安全,请及时绑定邮箱和手机立即绑定

使用go-html-transform预处理HTML:替换失败

使用go-html-transform预处理HTML:替换失败

Go
qq_花开花谢_0 2021-04-30 22:52:40
在这个关于将HTML标签列入白名单的问题之后,我一直在尝试Jeremy Wall的go-html-transform。为了改善可搜索的文档,我在这里问的是这个问题,而不是直接困扰作者。希望这对于SO来说不是特定于工具的。App Engine,最新的SDK。Post.Body是[]个字节。这有效:package postsimport (    // ...          "html/template"    "code.google.com/p/go-html-transform/html/transform"    "code.google.com/p/go-html-transform/h5")// ...// Pre-process post body, then return it to the template as HTML()// to avoid html/template's escaping allowable tagsfunc (p *Post) BodyHTML() template.HTML {    doc, _ := transform.NewDoc(string(p.Body))    t := transform.NewTransform(doc)    // Add some text to the end of any <strong></strong> nodes.    t.Apply(transform.AppendChildren(h5.Text("<em>Foo</em>")), "strong")    return template.HTML(t.String())}结果:<strong>Blarg.<em>Foo</em></strong>但是,如果使用AppendChildren()代替以下内容:t.Apply(transform.Replace(h5.Text("<em>Foo</em>")), "strong")我收到内部服务器错误。我是否误解了Replace()的使用?现有文档表明这种事情应该是可能的。
查看完整描述

1 回答

?
慕容708150

TA贡献1831条经验 获得超4个赞

在App Engine外部运行您的转换代码后,它会出现问题,此时您可以在源代码中看到TODO。这样一来,阅读代码并看到如果给出根节点便会出现紧急情况,这并不太难。


查看完整回答
反对 回复 2021-05-10
  • 1 回答
  • 0 关注
  • 228 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信