UNPKG

3.42 kBMarkdownView Raw
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
3Encode & 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
14const entities = require("entities");
15
16//encoding
17entities.escape("&"); // "&"
18entities.encodeXML("&"); // "&"
19entities.encodeHTML("&"); // "&"
20
21//decoding
22entities.decodeXML("asdf & ÿ ü '"); // "asdf & ÿ ü '"
23entities.decodeHTML("asdf & ÿ ü '"); // "asdf & ÿ ü '"
24```
25
26## Performance
27
28This 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
42This libary wouldn't be possible without the work of these individuals. Thanks
43to
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
57License: BSD-2-Clause
58
59## Security contact information
60
61To report a security vulnerability, please use the
62[Tidelift security contact](https://tidelift.com/security). Tidelift will
63coordinate the fix and disclosure.
64
65## `entities` for enterprise
66
67Available as part of the Tidelift Subscription
68
69The maintainers of `entities` and thousands of other packages are working with
70Tidelift to deliver commercial support and maintenance for the open source
71dependencies you use to build your applications. Save time, reduce risk, and
72improve code health, while paying the maintainers of the exact dependencies you
73use.
74[Learn more.](https://tidelift.com/subscription/pkg/npm-entities?utm_source=npm-entities&utm_medium=referral&utm_campaign=enterprise&utm_term=repo)