在这个关于将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。这样一来,阅读代码并看到如果给出根节点便会出现紧急情况,这并不太难。
- 1 回答
- 0 关注
- 228 浏览
添加回答
举报
0/150
提交
取消