diff --git a/index.js b/index.js index cb3697b1..25f90d02 100644 --- a/index.js +++ b/index.js @@ -6,6 +6,9 @@ var domToReact = require('./lib/dom-to-react'); var htmlToDOM = require('html-dom-parser'); +// decode HTML entities by default for `htmlparser2` +var domParserOptions = { decodeEntities: true }; + /** * Convert HTML string to React elements. * @@ -18,7 +21,7 @@ function HTMLReactParser(html, options) { if (typeof html !== 'string') { throw new TypeError('First argument must be a string'); } - return domToReact(htmlToDOM(html), options); + return domToReact(htmlToDOM(html, domParserOptions), options); } /** diff --git a/test/html-to-react.js b/test/html-to-react.js index 156866d9..388a6ff1 100644 --- a/test/html-to-react.js +++ b/test/html-to-react.js @@ -78,6 +78,13 @@ describe('html-to-react', function() { assert.equal(render(reactElement), svg); }); + it('decodes HTML entities', function() { + var encodedEntities = 'asdf & ÿ ü ''; + var decodedEntities = 'asdf & ÿ ü \''; + var reactElement = Parser('' + encodedEntities + ''); + assert.equal(reactElement.props.children, decodedEntities); + }); + }); /**