This repository has been archived by the owner on Sep 11, 2024. It is now read-only.
Show diff for formatted messages in the edit history #3244
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Implements last bit of element-hq/element-web#9493
The way it works is by first diffing the html tree, and for text nodes that changed, still do the diff-match-patch library we were already using before for plain text diffs.
Diffs are applied to a DOM tree from parsing the base message.
On point of attention is avoiding XSS attacks here. I've taking care to avoid this, but would be a good point to focus on during review.
This adds a dependency (dom-diff) of about 27K.
Some screenshots, plain text diffs still working:
Making sure text doesn't get interpreted as HTML:
More elaborate example with block elements: