# angular-html-parser
[](https://www.npmjs.com/package/angular-html-parser)
[](https://travis-ci.com/ikatyang/angular-html-parser/builds)
A HTML parser extracted from Angular with some [modifications](#modifications)
[Changelog](https://github.com/ikatyang/angular-html-parser/blob/master/packages/angular-html-parser/CHANGELOG.md)
## Install
```sh
# using npm
npm install --save angular-html-parser
# using yarn
yarn add angular-html-parser
```
## Usage
```js
const ngHtmlParser = require('angular-html-parser');
const { rootNodes, errors } = ngHtmlParser.parse('
hello world
');
```
## API
```ts
declare function parse(input: string, options?: Options): ng.ParseTreeResult;
interface Options {
/**
* any element can self close
*
* defaults to false
*/
canSelfClose?: boolean;
/**
* support [`htm`](https://github.com/developit/htm) component closing tags (`/>`)
*
* defaults to false
*/
allowHtmComponentClosingTags?: boolean;
/**
* do not lowercase tag names before querying their tag definitions
*
* defaults to false
*/
isTagNameCaseSensitive?: boolean;
/**
* customize tag content type
*
* defaults to the content type defined in the HTML spec
*/
getTagContentType?: (tagName: string, prefix: string, hasParent: boolean) => void | ng.TagContentType,
}
```
## Modifications
- add `CDATA` node
- add `DocType` node
- add `nameSpan` field to `Element` and `Attribute`
- allow case-insensitive closing tags for non-foreign elements
- fix `Comment#sourceSpan`
- support [bogus comments](https://www.w3.org/TR/html5/syntax.html#bogus-comment-state) (``, `...>`)
- support full [named entities](https://html.spec.whatwg.org/multipage/entities.json)
- add `type` property to nodes
## Development
```sh
# build
yarn run build
# test
yarn run test
```
## License
MIT © [Ika](https://github.com/ikatyang)