I think we should use posthtml-like (bemjson-like) structure for internal representation to make diff calculation process cleaner and more flexible.
Current reports are non-informative on big projects.
Current way we comparing html documents leak on big files and don't feel quotes in attributes.
That's why we should think about core code refactoring.
Representation proposal
HtmlNode {
meta: MetaData, // Different meta data, raw string, another helpful data
tag: String,
classList: ClassesCollection, // Set of classes
attrs: Object<String, HtmlAttr>, // Map of attributes with attrs meta info like quote types
//? dataAttrs: Object<String, HtmlAttr>, // Map of data attributes
content: Array<TextNode, CommentNode, HtmlNode>
}
I think we should use posthtml-like (bemjson-like) structure for internal representation to make diff calculation process cleaner and more flexible.
Current reports are non-informative on big projects. Current way we comparing html documents leak on big files and don't feel quotes in attributes.
That's why we should think about core code refactoring.
Representation proposal
Samples proposal
→
Report proposal
(Something like https://github.com/chaijs/deep-eql mixed with https://github.com/debitoor/chai-subset)
Futher possible features
bemEntities
with a set ofBemjsonNodes
otBemEntityNames
.