1 | # entities [![NPM version](http://img.shields.io/npm/v/entities.svg)](https://npmjs.org/package/entities) [![Downloads](https://img.shields.io/npm/dm/entities.svg)](https://npmjs.org/package/entities) [![Build Status](http://img.shields.io/travis/fb55/entities.svg)](http://travis-ci.org/fb55/entities) [![Coverage](http://img.shields.io/coveralls/fb55/entities.svg)](https://coveralls.io/r/fb55/entities)
|
2 |
|
3 | Encode & decode HTML & XML entities with ease & speed.
|
4 |
|
5 | ## How to…
|
6 |
|
7 | ### …install `entities`
|
8 |
|
9 | npm install entities
|
10 |
|
11 | ### …use `entities`
|
12 |
|
13 | ```javascript
|
14 | const entities = require("entities");
|
15 |
|
16 | //encoding
|
17 | entities.escape("&"); // "&"
|
18 | entities.encodeXML("&"); // "&"
|
19 | entities.encodeHTML("&"); // "&"
|
20 |
|
21 | //decoding
|
22 | entities.decodeXML("asdf & ÿ ü '"); // "asdf & ÿ ü '"
|
23 | entities.decodeHTML("asdf & ÿ ü '"); // "asdf & ÿ ü '"
|
24 | ```
|
25 |
|
26 | ## Performance
|
27 |
|
28 | This is how `entities` compares to other libraries on a very basic benchmark
|
29 | (see `scripts/benchmark.ts`, for 10,000,000 iterations):
|
30 |
|
31 | | Library | `decode` perf | `encode` perf | `escape` perf | Bundle size |
|
32 | | -------------- | ------------- | ------------- | ------------- | -------------------------------------------------------------------------- |
|
33 | | entities | 1.418s | 6.786s | 2.196s | ![npm bundle size](https://img.shields.io/bundlephobia/min/entities) |
|
34 | | html-entities | 2.530s | 6.829s | 2.415s | ![npm bundle size](https://img.shields.io/bundlephobia/min/html-entities) |
|
35 | | he | 5.800s | 24.237s | 3.624s | ![npm bundle size](https://img.shields.io/bundlephobia/min/he) |
|
36 | | parse-entities | 9.660s | N/A | N/A | ![npm bundle size](https://img.shields.io/bundlephobia/min/parse-entities) |
|
37 |
|
38 | ---
|
39 |
|
40 | ## Acknowledgements
|
41 |
|
42 | This libary wouldn't be possible without the work of these individuals. Thanks
|
43 | to
|
44 |
|
45 | - [@mathiasbynens](https://github.com/mathiasbynens) for his explanations
|
46 | about character encodings, and his library `he`, which was one of the
|
47 | inspirations for `entities`
|
48 | - [@inikulin](https://github.com/inikulin) for his work on optimized tries for
|
49 | decoding HTML entities for the `parse5` project
|
50 | - [@mdevils](https://github.com/mdevils) for taking on the challenge of
|
51 | producing a quick entity library with his `html-entities` library.
|
52 | `entities` would be quite a bit slower if there wasn't any competition.
|
53 | Right now `entities` is on top, but we'll see how long that lasts!
|
54 |
|
55 | ---
|
56 |
|
57 | License: BSD-2-Clause
|
58 |
|
59 | ## Security contact information
|
60 |
|
61 | To report a security vulnerability, please use the
|
62 | [Tidelift security contact](https://tidelift.com/security). Tidelift will
|
63 | coordinate the fix and disclosure.
|
64 |
|
65 | ## `entities` for enterprise
|
66 |
|
67 | Available as part of the Tidelift Subscription
|
68 |
|
69 | The maintainers of `entities` and thousands of other packages are working with
|
70 | Tidelift to deliver commercial support and maintenance for the open source
|
71 | dependencies you use to build your applications. Save time, reduce risk, and
|
72 | improve code health, while paying the maintainers of the exact dependencies you
|
73 | use.
|
74 | [Learn more.](https://tidelift.com/subscription/pkg/npm-entities?utm_source=npm-entities&utm_medium=referral&utm_campaign=enterprise&utm_term=repo)
|