fd22b0bf58
V2 (Laravel re-make)
3.9 KiB
3.9 KiB
2.3.2
- Minimize data files, remove unnecessary files.
2.3.1
- Improve performance of
encode()
,decode()
anddecodeEntity()
by using function inlining. - Fix decoding HEX HTML entities in some cases.
2.3.0
- Add flow types.
2.2.0
- A fast
decodeEntity()
method to decode a single HTML entity.
2.1.1
- Speed up both
encode()
anddecode()
methods.
2.1.0
- Add
extensive
mode toencode()
method. This mode encodes all non-printable characters, non-ASCII characters and all characters with named references.
2.0.6
- Handle invalid numeric HTML entities: mimic browser behaviour.
2.0.5
- Handling behaviour of ambiguous ampersands.
2.0.4
- Fix webpack build warning.
2.0.3
- Handle invalid numeric HTML entities.
2.0.2
- Handle
null
andundefined
text values.
2.0.1
- Fix decoding numeric HTML entities.
2.0.0
-
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'}));