mirror of
				https://github.com/advplyr/audiobookshelf.git
				synced 2025-10-27 11:18:14 +01:00 
			
		
		
		
	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:
		
						commit
						8cd7de25ad
					
				
							
								
								
									
										2235
									
								
								server/utils/htmlEntities.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2235
									
								
								server/utils/htmlEntities.js
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @ -1,4 +1,5 @@ | |||||||
| const sanitizeHtml = require('../libs/sanitizeHtml') | const sanitizeHtml = require('../libs/sanitizeHtml') | ||||||
|  | const {entities} = require("./htmlEntities"); | ||||||
| 
 | 
 | ||||||
| function sanitize(html) { | function sanitize(html) { | ||||||
|   const sanitizerOptions = { |   const sanitizerOptions = { | ||||||
| @ -17,12 +18,22 @@ function sanitize(html) { | |||||||
| } | } | ||||||
| module.exports.sanitize = sanitize | module.exports.sanitize = sanitize | ||||||
| 
 | 
 | ||||||
| function stripAllTags(html) { | function stripAllTags(html, shouldDecodeEntities = true) { | ||||||
|   const sanitizerOptions = { |   const sanitizerOptions = { | ||||||
|     allowedTags: [], |     allowedTags: [], | ||||||
|     disallowedTagsMode: 'discard' |     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 |  | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user