mirror of
https://github.com/nodejs/node.git
synced 2025-05-08 01:35:51 +00:00

Greatly simplify how ESLint and its plugins are installed. PR-URL: https://github.com/nodejs/node/pull/53413 Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
218 lines
5.1 KiB
Markdown
218 lines
5.1 KiB
Markdown
# parse-entities
|
|
|
|
[![Build][build-badge]][build]
|
|
[![Coverage][coverage-badge]][coverage]
|
|
[![Downloads][downloads-badge]][downloads]
|
|
[![Size][size-badge]][size]
|
|
|
|
Parse HTML character references: fast, spec-compliant, positional
|
|
information.
|
|
|
|
## Install
|
|
|
|
[npm][]:
|
|
|
|
```sh
|
|
npm install parse-entities
|
|
```
|
|
|
|
## Use
|
|
|
|
```js
|
|
var decode = require('parse-entities')
|
|
|
|
decode('alpha & bravo')
|
|
// => alpha & bravo
|
|
|
|
decode('charlie ©cat; delta')
|
|
// => charlie ©cat; delta
|
|
|
|
decode('echo © foxtrot ≠ golf 𝌆 hotel')
|
|
// => echo © foxtrot ≠ golf 𝌆 hotel
|
|
```
|
|
|
|
## API
|
|
|
|
## `parseEntities(value[, options])`
|
|
|
|
##### `options`
|
|
|
|
###### `options.additional`
|
|
|
|
Additional character to accept (`string?`, default: `''`).
|
|
This allows other characters, without error, when following an ampersand.
|
|
|
|
###### `options.attribute`
|
|
|
|
Whether to parse `value` as an attribute value (`boolean?`, default:
|
|
`false`).
|
|
|
|
###### `options.nonTerminated`
|
|
|
|
Whether to allow non-terminated entities (`boolean`, default: `true`).
|
|
For example, `©cat` for `©cat`. This behaviour is spec-compliant but
|
|
can lead to unexpected results.
|
|
|
|
###### `options.warning`
|
|
|
|
Error handler ([`Function?`][warning]).
|
|
|
|
###### `options.text`
|
|
|
|
Text handler ([`Function?`][text]).
|
|
|
|
###### `options.reference`
|
|
|
|
Reference handler ([`Function?`][reference]).
|
|
|
|
###### `options.warningContext`
|
|
|
|
Context used when invoking `warning` (`'*'`, optional).
|
|
|
|
###### `options.textContext`
|
|
|
|
Context used when invoking `text` (`'*'`, optional).
|
|
|
|
###### `options.referenceContext`
|
|
|
|
Context used when invoking `reference` (`'*'`, optional)
|
|
|
|
###### `options.position`
|
|
|
|
Starting `position` of `value` (`Location` or `Position`, optional). Useful
|
|
when dealing with values nested in some sort of syntax tree. The default is:
|
|
|
|
```js
|
|
{
|
|
start: {line: 1, column: 1, offset: 0},
|
|
indent: []
|
|
}
|
|
```
|
|
|
|
##### Returns
|
|
|
|
`string` — Decoded `value`.
|
|
|
|
### `function warning(reason, position, code)`
|
|
|
|
Error handler.
|
|
|
|
##### Context
|
|
|
|
`this` refers to `warningContext` when given to `parseEntities`.
|
|
|
|
##### Parameters
|
|
|
|
###### `reason`
|
|
|
|
Human-readable reason for triggering a parse error (`string`).
|
|
|
|
###### `position`
|
|
|
|
Place at which the parse error occurred (`Position`).
|
|
|
|
###### `code`
|
|
|
|
Identifier of reason for triggering a parse error (`number`).
|
|
|
|
The following codes are used:
|
|
|
|
| Code | Example | Note |
|
|
| ---- | ------------------ | --------------------------------------------- |
|
|
| `1` | `foo & bar` | Missing semicolon (named) |
|
|
| `2` | `foo { bar` | Missing semicolon (numeric) |
|
|
| `3` | `Foo &bar baz` | Ampersand did not start a reference |
|
|
| `4` | `Foo &#` | Empty reference |
|
|
| `5` | `Foo &bar; baz` | Unknown entity |
|
|
| `6` | `Foo € baz` | [Disallowed reference][invalid] |
|
|
| `7` | `Foo � baz` | Prohibited: outside permissible unicode range |
|
|
|
|
### `function text(value, location)`
|
|
|
|
Text handler.
|
|
|
|
##### Context
|
|
|
|
`this` refers to `textContext` when given to `parseEntities`.
|
|
|
|
##### Parameters
|
|
|
|
###### `value`
|
|
|
|
String of content (`string`).
|
|
|
|
###### `location`
|
|
|
|
Location at which `value` starts and ends (`Location`).
|
|
|
|
### `function reference(value, location, source)`
|
|
|
|
Character reference handler.
|
|
|
|
##### Context
|
|
|
|
`this` refers to `referenceContext` when given to `parseEntities`.
|
|
|
|
##### Parameters
|
|
|
|
###### `value`
|
|
|
|
Encoded character reference (`string`).
|
|
|
|
###### `location`
|
|
|
|
Location at which `value` starts and ends (`Location`).
|
|
|
|
###### `source`
|
|
|
|
Source of character reference (`Location`).
|
|
|
|
## Related
|
|
|
|
* [`stringify-entities`](https://github.com/wooorm/stringify-entities)
|
|
— Encode HTML character references
|
|
* [`character-entities`](https://github.com/wooorm/character-entities)
|
|
— Info on character entities
|
|
* [`character-entities-html4`](https://github.com/wooorm/character-entities-html4)
|
|
— Info on HTML4 character entities
|
|
* [`character-entities-legacy`](https://github.com/wooorm/character-entities-legacy)
|
|
— Info on legacy character entities
|
|
* [`character-reference-invalid`](https://github.com/wooorm/character-reference-invalid)
|
|
— Info on invalid numeric character references
|
|
|
|
## License
|
|
|
|
[MIT][license] © [Titus Wormer][author]
|
|
|
|
<!-- Definitions -->
|
|
|
|
[build-badge]: https://img.shields.io/travis/wooorm/parse-entities.svg
|
|
|
|
[build]: https://travis-ci.org/wooorm/parse-entities
|
|
|
|
[coverage-badge]: https://img.shields.io/codecov/c/github/wooorm/parse-entities.svg
|
|
|
|
[coverage]: https://codecov.io/github/wooorm/parse-entities
|
|
|
|
[downloads-badge]: https://img.shields.io/npm/dm/parse-entities.svg
|
|
|
|
[downloads]: https://www.npmjs.com/package/parse-entities
|
|
|
|
[size-badge]: https://img.shields.io/bundlephobia/minzip/parse-entities.svg
|
|
|
|
[size]: https://bundlephobia.com/result?p=parse-entities
|
|
|
|
[npm]: https://docs.npmjs.com/cli/install
|
|
|
|
[license]: license
|
|
|
|
[author]: https://wooorm.com
|
|
|
|
[warning]: #function-warningreason-position-code
|
|
|
|
[text]: #function-textvalue-location
|
|
|
|
[reference]: #function-referencevalue-location-source
|
|
|
|
[invalid]: https://github.com/wooorm/character-reference-invalid
|