GithubHelp home page GithubHelp logo

mdasadul / htmltreediff Goto Github PK

View Code? Open in Web Editor NEW

This project forked from richardwarfield/htmltreediff

1.0 1.0 0.0 79 KB

Structure-aware diff for html and xml documents

License: BSD 3-Clause "New" or "Revised" License

Python 99.77% Shell 0.23%

htmltreediff's Introduction

HTML Tree Diff

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.',
...     plaintext=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%.

htmltreediff's People

Contributors

christian-oudard avatar mdasadul avatar lucaswiman avatar

Stargazers

Roman avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.