從this question on whitelisting HTML tags開始,我一直在試驗Jeremy Wall的go-html-transform。爲了改進可搜索的文檔,我在這裏問這個問題,而不是直接糾纏作者......希望這不是針對SO的工具特定的。使用go-html-transform預處理HTML:替換失敗
App Engine,最新的SDK。 Post.Body是[]字節。這工作:
package posts
import (
// ...
"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 tags
func (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()的用法嗎? The existing documentation暗示這種事情應該是可能的。
您是否可以在發生恐慌時添加問題?你可能已經發現了一個錯誤。 – 2012-04-09 21:38:50
實際上,我已經將問題隔離到測試用例並提交修復。假設你遇到了問題,我認爲你是。請參閱:http://code.google.com/p/go-html-transform/source/detail?r=941f7061b6cd9c3c3666f6da3554cdb9d211b539查看修復該問題的代碼。 – 2012-04-09 22:01:01
問題歸檔。完成。 – Sonia 2012-04-09 22:07:13