html/template 怎么样才能直接输出HTML

go的文档解析会把HTML标签输出为 gt;lt;这种形式,我怎么才能让它直接输出标签呢

共 7 个回复


jimmykuu

你如何写的?贴代码

# 0

tudoukp

工作电脑不再身边,就是一个测试的例子。我大略描述下

w http.ResponseWriter

t,_:=template.New("test.html")
values:=map[string]string{"html":"<br/>"}
t.Execute(w,values)

test.html 中有 {{.html}}

这个输出后应该是换行的,但是实际上会输出 >br/&lt 这样的文本,然后浏览器就直接显示

# 1

tudoukp

<br/> 上边写错了

# 2

jimmykuu

string类型go的template处理时会自动做escape处理,用template.HTML类型就不会了

values := map[string]template.HTML{"html": template.HTML("<br/>")}
# 3

tudoukp

原来如此,昨天看文档看到这个了,谢谢你的回答

# 4

qloog

@jimmykuu 受用了

# 5

rocket

楼主可以用 "text/template"

# 6