The VisualDiff tool inside VisualEditor is the best I've seen for showing a human-readable difference between revisions of HTML. I'd like to use it in a stand-alone diff tool, but it's proving hard to extract. I'm not sure how to instantiate a VisualEditor DataModel DocumentNodes object from a string, like is done here:
https://tchanders.github.io/treeDiffer.js
Has anyone done this before or does anyone have any tips on how to populate a ve.dm.DocumentNode from HTML not in the VisualEditor?