A HTML parser extracted from Angular with some modifications
npm install angular-html-parser
An HTML parser extracted from Angular with some modifications
> [!TIP]
> Try sync main and dev branch with upstream first
``shusing npm
npm install --save angular-html-parser
Usage
`js
import { parse } from "angular-html-parser";const { rootNodes, errors } = parse(
);
`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 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,
attrs: Array<{ prefix: string; name: string; value?: string | undefined }>,
) => void | ng.TagContentType;
/**
* tokenize angular control flow block syntax
*/
tokenizeAngularBlocks?: boolean;
/**
* tokenize angular let declaration syntax
*/
tokenizeAngularLetDeclaration?: boolean;
}
`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 (, ...>)
- ~~support full named entities~~ (fixed upstream)
- add type property to nodes
- value span for attributes includes quotesDevelopment
`sh
build
yarn run buildtest
yarn run test
``MIT © Ika