diff options
-rw-r--r-- | themes/default/layouts/partials/base-csp.html | 37 |
1 files changed, 15 insertions, 22 deletions
diff --git a/themes/default/layouts/partials/base-csp.html b/themes/default/layouts/partials/base-csp.html index 55719d8..99a898c 100644 --- a/themes/default/layouts/partials/base-csp.html +++ b/themes/default/layouts/partials/base-csp.html @@ -1,26 +1,19 @@ <meta name="referrer" content="{{ .Site.Params.site.referrer }}"> -{{- if .Site.Params.csp }} - -{{ - $policy := .Site.Params.csp - | jsonify - | replaceRE "\":\"\",\"" ";\n" - | replaceRE "{\"" "" - | replaceRE "\"],\"" ";\n" - | replaceRE "\",\"" " " - | replaceRE "\":\\[\"" " " - | replaceRE "\"]}" ";" - | replaceRE "\":\"\"}" ";" - | plainify --}} - -{{ printf ` -<meta http-equiv="Content-Security-Policy" content=" -%s -">` -$policy | safeHTML -}} - +{{ with .Site.Params.csp -}} +<meta http-equiv="Content-Security-Policy" +{{- print " content=\"" | safeHTMLAttr }} +{{ range $policy, $list := . -}} +{{- if reflect.IsSlice $list -}} +{{- print $policy | safeHTMLAttr }} +{{- range $list -}} +{{ print " " . | safeHTMLAttr }} +{{- end }}; +{{ else }} +{{- print $policy ";" | safeHTMLAttr }} +{{ end }} {{- end -}} +{{- print "\"" | safeHTMLAttr -}} +> +{{ end -}} |