encode()
, decode()
and decodeEntity()
by using function inlining.decodeEntity()
method to decode a single HTML entity.encode()
and decode()
methods.extensive
mode to encode()
method. This mode encodes all non-printable characters, non-ASCII characters and all characters with named references.null
and undefined
text values.Performance was greatly improved.
New API: simpler and more flexible.
htmlEntitiesInstance.encode(text)
-> encode(text)
Before:
import {AllHtmlEntities} from 'html-entities'; const entities = new AllHtmlEntities(); console.log( entities.encode('<Hello & World>') );
After:
import {encode} from 'html-entities'; console.log( encode('<Hello & World>') );
instance.encodeNonASCII(text)
-> encode(text, {mode: 'nonAscii'})
Before:
import {AllHtmlEntities} from 'html-entities'; const entities = new AllHtmlEntities(); console.log( entities.encodeNonASCII('& © ∆') );
After:
import {encode} from 'html-entities'; console.log( encode('& © ∆', {mode: 'nonAscii'}) );
instance.encodeNonASCII(text)
-> encode(text, {mode: 'nonAsciiPrintable'})
Before:
import {AllHtmlEntities} from 'html-entities'; const entities = new AllHtmlEntities(); console.log( entities.encodeNonASCII('& © ∆ \x01') );
After:
import {encode} from 'html-entities'; console.log( encode('& © ∆ \x01', {mode: 'nonAsciiPrintable'}) );
instance.decode(text)
-> decode(text)
Before:
import {AllHtmlEntities} from 'html-entities'; const entities = new AllHtmlEntities(); console.log( entities.decode('<>&') );
After:
import {decode} from 'html-entities'; console.log( decode('<>&') );
Different XML/HTML versions are now implemented via options instead of different classes.
Before:
import {XmlEntities, Html4Entities, Html5Entities, AllHtmlEntities} from 'html-entities'; const xmlEntities = new XmlEntities(); const html4Entities = new Html4Entities(); const html5Entities = new Html5Entities(); const allHtmlEntities = new AllHtmlEntities(); console.log(xmlEntities.encode('<>&')); console.log(html4Entities.encode('<>&©')); console.log(html5Entities.encode('<>&©℞')); console.log(allHtmlEntities.encode('<>&©℞')); console.log(xmlEntities.decode('<>&')); console.log(html4Entities.decode('<>&©')); console.log(html5Entities.decode('<>&©℞')); console.log(allHtmlEntities.decode('<>&©℞'));
After:
import {encode, decode} from 'html-entities'; console.log(encode('<>&', {level: 'xml'})); console.log(encode('<>&©', {level: 'html4', mode: 'nonAscii'})); console.log(encode('<>&©℞', {level: 'html5', mode: 'nonAscii'})); console.log(encode('<>&©℞', {level: 'all', mode: 'nonAscii'})); console.log(decode('<>&', {level: 'xml'})); console.log(decode('<>&©', {level: 'html4'})); console.log(decode('<>&©℞', {level: 'html5'})); console.log(decode('<>&©℞', {level: 'all'}));