safe.HTMLAttr
Syntax
safe.HTMLAttr INPUT
Returns
template.HTMLAttr
Alias
safeHTMLAttr
给定包含以下菜单项的站点配置:
hugo.
menu:
main:
- name: IRC
url: irc://irc.freenode.net/#golang
[menu]
[[menu.main]]
name = 'IRC'
url = 'irc://irc.freenode.net/#golang'
{
"menu": {
"main": [
{
"name": "IRC",
"url": "irc://irc.freenode.net/#golang"
}
]
}
}
在属性中直接使用 url
值会导致:
{{ range site.Menus.main }}
<a href="{{ .URL }}">{{ .Name }}</a>
{{ end }}
生成的结果为:
<a href="#ZgotmplZ">IRC</a>
ZgotmplZ
是一个特殊值,由 Go 的 template/html 包插入,表示不安全的内容进入了 CSS 或 URL 上下文。
要指示 HTML 属性是安全的:
{{ range site.Menus.main }}
<a {{ printf "href=%q" .URL | safeHTMLAttr }}>{{ .Name }}</a>
{{ end }}