Files
hugo/content/functions/safeHTML.md
T
2017-03-27 16:32:31 -05:00

1.3 KiB

title, linktitle, description, godocref, date, publishdate, lastmod, categories, tags, ns, signature, workson, hugoversion, relatedfuncs, deprecated
title linktitle description godocref date publishdate lastmod categories tags ns signature workson hugoversion relatedfuncs deprecated
safeHTML Declares a provided string as a "safe" HTML document to avoid escaping by Go templates. https://golang.org/src/html/template/content.go?s=1374:1385#L25 2017-02-01 2017-02-01 2017-02-01
functions
strings
safeHTML INPUT
false

safeHTML declares the provided string as a "safe" HTML document fragment so Go html/template will not filter it. It should not be used for HTML from a third-party, or HTML with unclosed tags or comments.

Given a site-wide config.toml with the following copyright value:

copyright = "© 2015 Jane Doe.  <a href=\"http://creativecommons.org/licenses/by/4.0/\">Some rights reserved</a>."

{{ .Site.Copyright | safeHTML }} in a template would then output:

© 2015 Jane Doe.  <a href="http://creativecommons.org/licenses/by/4.0/">Some rights reserved</a>.

However, without the safeHTML function, html/template assumes .Site.Copyright to be unsafe and therefore escapes all HTML tags and renders the whole string as plain text:

<p>© 2015 Jane Doe.  &lt;a href=&#34;http://creativecommons.org/licenses by/4.0/&#34;&gt;Some rights reserved&lt;/a&gt;.</p>