Optimized html parser for HTML5 Web Components. The parser supports features which are very useful if you want to implement a HTML formatter or anything else where a less strict parser is needed to keep all informations in the ast.
npm install --save @starptech/webparser
This example shows how we parse HTML
const parser = new HtmlParser(options)
const result = parser.parse('<div></div>')
There are four different types of nodes
- Doctype
{
value: '<!doctype html>',
sourceSpan: null
}
- Element
{
name: 'div',
attrs: [],
children: [],
implicitNs: false,
sourceSpan: null,
startSourceSpan: null,
endSourceSpan
}
Void or self-closing elements can be checked when the startSourceSpan
is equals the endSourceSpan
.
- Attribute
{
name: 'div',
value: 'foo',
children: [],
implicitNs: false,
sourceSpan:null,
valueSpan: null
}
- Comment
{
value: 'foo comment',
sourceSpan: null
}
Parse a document and returns a ParseTreeResult
result.
Decode html entities in text and attributes according to HTML5 specification.
Ignore first line feed of pre
, textarea
and listing
tags according to HTML5 specification.
Allow custom self-closing elements.
Allow custom and known self closing HTML elements.
Insert the required parent element according to the HTML5 specification.
The parser is a modificated version of Angular 6 template parser.