diff --git a/g/net/ghttp/ghttp_response_view.go b/g/net/ghttp/ghttp_response_view.go index f405699ba..2a4ec4780 100644 --- a/g/net/ghttp/ghttp_response_view.go +++ b/g/net/ghttp/ghttp_response_view.go @@ -48,7 +48,7 @@ func (r *Response) ParseTpl(tpl string, params map[string]interface{}, funcmap.. if len(funcmap) > 0 { fmap = funcmap[0] } - return gins.View().Parse(tpl, r.buildInVars(params), r.buildInfuncs(fmap)) + return gins.View().Parse(tpl, r.buildInVars(params), r.buildInFuncs(fmap)) } // 解析并返回模板内容 @@ -57,7 +57,7 @@ func (r *Response) ParseTplContent(content string, params map[string]interface{} if len(funcmap) > 0 { fmap = funcmap[0] } - return gins.View().ParseContent(content, r.buildInVars(params), r.buildInfuncs(fmap)) + return gins.View().ParseContent(content, r.buildInVars(params), r.buildInFuncs(fmap)) } // 内置变量 @@ -72,7 +72,7 @@ func (r *Response) buildInVars(params map[string]interface{}) map[string]interfa } // 内置函数 -func (r *Response) buildInfuncs(funcmap map[string]interface{}) map[string]interface{} { +func (r *Response) buildInFuncs(funcmap map[string]interface{}) map[string]interface{} { if funcmap == nil { funcmap = make(map[string]interface{}) } diff --git a/g/os/gview/gview.go b/g/os/gview/gview.go index 8f9e0d592..5e14952eb 100644 --- a/g/os/gview/gview.go +++ b/g/os/gview/gview.go @@ -78,6 +78,7 @@ func New(path string) *View { view.SetDelimiters("{{", "}}") // 内置方法 view.BindFunc("text", view.funcText) + view.BindFunc("html", view.funcHtml) view.BindFunc("include", view.funcInclude) return view } @@ -168,3 +169,9 @@ func (view *View) funcText(html interface{}) string { return ghtml.StripTags(gconv.String(html)) } +// 模板内置方法:html +func (view *View) funcHtml(html interface{}) template.HTML { + return template.HTML(gconv.String(html)) +} + + diff --git a/geg/os/gview/func_html/func_html.go b/geg/os/gview/func_html/func_html.go new file mode 100644 index 000000000..dcd47a3aa --- /dev/null +++ b/geg/os/gview/func_html/func_html.go @@ -0,0 +1,24 @@ +package main + +import ( + "gitee.com/johng/gf/g/os/gview" + "gitee.com/johng/gf/g" +) + +func main() { + if c, err := gview.ParseContent(`{{"
测试
模板引擎默认处理HTML标签\n"}}`, nil); err == nil { + g.Dump(c) + } else { + g.Dump(c) + } + if c, err := gview.ParseContent(`{{"
测试
去掉HTML标签\n"|text}}`, nil); err == nil { + g.Dump(c) + } else { + g.Dump(c) + } + if c, err := gview.ParseContent(`{{"
测试
保留HTML标签\n"|html}}`, nil); err == nil { + g.Dump(c) + } else { + g.Dump(c) + } +}