Merge pull request #955 from barrycarey/issue-929-html-char-parsing

Ability to decode HTML Entities when all tags are stripped. Fixes #929
This commit is contained in:
advplyr authored and GitHub committed 2022-08-31 15:08:19 -05:00
commit 8cd7de25ad
2 files changed
+2249 -3

No files matched your search

File diff suppressed because it is too large. Load diff
+14 -3
View File
@@ -1,4 +1,5 @@
const sanitizeHtml = require('../libs/sanitizeHtml')
const {entities} = require("./htmlEntities");
function sanitize(html) {
const sanitizerOptions = {
@@ -17,12 +18,22 @@ function sanitize(html) {
}
module.exports.sanitize = sanitize
function stripAllTags(html) {
function stripAllTags(html, shouldDecodeEntities = true) {
const sanitizerOptions = {
allowedTags: [],
disallowedTagsMode: 'discard'
}
return sanitizeHtml(html, sanitizerOptions)
let sanitized = sanitizeHtml(html, sanitizerOptions)
return shouldDecodeEntities ? decodeHTMLEntities(sanitized) : sanitized
}
module.exports.stripAllTags = stripAllTags
function decodeHTMLEntities(strToDecode) {
return strToDecode.replace(/\&([^;]+);?/g, function (entity) {
if (entity in entities) {
return entities[entity]
}
return entity;
})
}
module.exports.stripAllTags = stripAllTags