2
0
mirror of https://github.com/tenrok/vue-meta.git synced 2026-06-20 07:40:35 +03:00

Add __dangerouslyDisableSanitizersByTagID property

Specify which property for which tagIDKeyName should not be sanitized
This commit is contained in:
pimlie
2017-11-24 15:10:12 +01:00
parent 5acf4cbe45
commit 41907ed652
4 changed files with 87 additions and 9 deletions
+11 -4
View File
@@ -43,7 +43,8 @@ export default function _getMetaInfo (options = {}) {
style: [],
script: [],
noscript: [],
__dangerouslyDisableSanitizers: []
__dangerouslyDisableSanitizers: [],
__dangerouslyDisableSanitizersByTagID: {}
}
// collect & aggregate all metaInfo $options
@@ -97,13 +98,19 @@ export default function _getMetaInfo (options = {}) {
info.base = Object.keys(info.base).length ? [info.base] : []
}
const ref = info.__dangerouslyDisableSanitizers
const refByTagID = info.__dangerouslyDisableSanitizersByTagID
// sanitizes potentially dangerous characters
const escape = (info) => Object.keys(info).reduce((escaped, key) => {
const ref = info.__dangerouslyDisableSanitizers
const isDisabled = ref && ref.indexOf(key) > -1
let isDisabled = ref && ref.indexOf(key) > -1
const tagID = info[tagIDKeyName]
if (!isDisabled && tagID) {
isDisabled = refByTagID && refByTagID[tagID] && refByTagID[tagID].indexOf(key) > -1
}
const val = info[key]
escaped[key] = val
if (key === '__dangerouslyDisableSanitizers') {
if (key === '__dangerouslyDisableSanitizers' || key === '__dangerouslyDisableSanitizersByTagID') {
return escaped
}
if (!isDisabled) {