Parsers HTML to GOM flavored JSON. A PEG.js parser.
Input:
<!DOCTYPE html><html><head><metacharset="utf-8"><!-- HTML5 empty tag --></head><body><sectioncontenteditable><divstyle='color:black; background-color:transparent'> Hello <ahref="https://thegrid.io">world <spanclass="name big">I am here </span>!</a></div></section></body></html>Output:
[ "<!DOCTYPE html>",{"tag": "html", "children": [{"tag": "head", "children": [{"tag": "meta", "attributes":{"charset": "utf-8" } } ] },{"tag": "body", "children": [{"tag": "section", "attributes":{"contenteditable": true }, "children": [{"tag": "div", "attributes":{"style":{"color": "black", "background-color": "transparent" } }, "children": [ "Hello ",{"tag": "a", "attributes":{"href": "https://thegrid.io" }, "children": [ "world ",{"tag": "span", "attributes":{"class": [ "name", "big" ] }, "children": [ "I am here " ] }, "!" ] } ] } ] } ] } ] } ]- Style attribute parsed to object
- Class attribute parsed to array of classNames
- Supports HTML5 empty tags
- Helpful errors
For more, see the spec.
npm installgrunt test