Structure aware diff of XML and HTML documents.
The intended use is to concisely show the edits that have been made in a document, so that authors of html content can review their work.
What do we mean by “HTML Tree Diff”?
HTML: The inputs to the diff function are HTML documents
Tree: It considers the full XML tree structure of the inputs, not just text based changes.
Diff: The output is human-readable HTML, using <ins> and <del> tags to show the changes.
Command line interface
You can execute htmltreediff.cli directly as a python module, passing it html files to diff:
$ python -m htmltreediff.cli one.html two.html
<h1>
<del>
one
</del>
<ins>
two
</ins>
</h1>
Python API
You can also use htmltreediff from within a python program as a library.
For HTML Changes:
>>> from htmltreediff import diff
>>> print diff('<h1>...one...</h1>', '<h1>...two...</h1>', pretty=True)
<h1>
...
<del>
one
</del>
<ins>
two
</ins>
...
</h1>
And also for text-only changes:
>>> print diff( ... 'The quick brown fox jumps over the lazy dog.', ... 'The very quick brown foxes jump over the dog.', ... html=False, ... ) The <ins>very </ins>quick brown <del>fox jumps</del><ins>foxes jump</ins> over the<del> lazy</del> dog.
Running the unit tests
The unit test suite requires the packages nose and coverage to run. Just run the run_tests.sh script, and all the tests will run, with code coverage. Code coverage should always be at 100%.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file html-tree-diff-0.1.2.tar.gz.
File metadata
- Download URL: html-tree-diff-0.1.2.tar.gz
- Upload date:
- Size: 22.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
eb7f7be7c2bef85de648738b04984ccd674597acbb6bdb1a227858ab9b442fb9
|
|
| MD5 |
6bc02e9b3dac3fb443b3b5691b74c0f5
|
|
| BLAKE2b-256 |
16ea355c959c63c2bed029265f7c9b67a5361a786b22cf7aacd32ee79c5c7d6b
|