我最近换掉了数据存储,作为一个副作用,我不得不将结构字段从template.HTMLtostring更改为与 marshaller/DB 驱动程序兼容。此字段RenderedDesc包含通过russross/blackfriday传递的渲染 HTML 。
以前,我可以将整个结构“按原样”传递到模板中并调用{{ .RenderedDesc }}模板。
因为它现在是一个字符串,所以我添加了一个过滤器来将它转换回模板渲染:
模板.go
func RenderUnsafe(s string) template.HTML {
return template.HTML(s)
}
template.FuncMap{
...
"unsafe": RenderUnsafe,
}
_content.tmpl
...
<div class="detail">
{{ .RenderedDesc | unsafe }}
</div>
...
有没有更好的方法来实现这一点而不必在模板级别使用过滤器?缺少从我的数据库驱动程序(不在卡片上)重写编组逻辑,看起来这是“存储”字符串但呈现原始 HTML 的最简单方法。
相关分类