aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--themes/default/layouts/partials/base-csp.html37
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 -}}