2015-12-24 11:27:07 +00:00
|
|
|
# diff2html
|
2014-08-30 02:54:52 +00:00
|
|
|
|
2015-12-23 20:19:10 +00:00
|
|
|
[](https://www.codacy.com/app/Codacy/diff2html)
|
|
|
|
|
[](https://www.codacy.com/app/Codacy/diff2html)
|
2016-07-12 12:13:44 +00:00
|
|
|
[](https://circleci.com/gh/rtfpessoa/diff2html)
|
|
|
|
|
[](https://dependencyci.com/github/rtfpessoa/diff2html)
|
2015-12-20 22:22:26 +00:00
|
|
|
|
2015-12-24 11:27:07 +00:00
|
|
|
[](https://www.npmjs.com/package/diff2html)
|
2016-02-13 00:35:01 +00:00
|
|
|
[](https://david-dm.org/rtfpessoa/diff2html)
|
2016-02-13 00:35:54 +00:00
|
|
|
[](https://david-dm.org/rtfpessoa/diff2html#info=devDependencies)
|
2015-12-24 11:27:07 +00:00
|
|
|
|
|
|
|
|
[]()
|
|
|
|
|
[]()
|
|
|
|
|
[](https://www.npmjs.com/package/diff2html)
|
|
|
|
|
[](https://gitter.im/rtfpessoa/diff2html?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
|
|
|
|
|
|
2016-05-06 22:19:12 +00:00
|
|
|
diff2html generates pretty HTML diffs from git or unified diff output.
|
2015-12-24 11:27:07 +00:00
|
|
|
|
|
|
|
|
[](https://nodei.co/npm/diff2html/)
|
2014-08-30 02:54:52 +00:00
|
|
|
|
|
|
|
|
## Features
|
|
|
|
|
|
2016-05-06 22:19:12 +00:00
|
|
|
* Supports git and unified diffs
|
|
|
|
|
|
2016-05-01 19:52:25 +00:00
|
|
|
* Line by line and Side by side diff
|
2014-08-30 02:54:52 +00:00
|
|
|
|
2016-05-01 19:52:25 +00:00
|
|
|
* New and old line numbers
|
2014-08-30 02:54:52 +00:00
|
|
|
|
2016-05-01 19:52:25 +00:00
|
|
|
* Inserted and removed lines
|
2014-08-30 22:33:12 +00:00
|
|
|
|
2014-08-30 02:54:52 +00:00
|
|
|
* GitHub like style
|
|
|
|
|
|
2015-07-19 21:34:46 +00:00
|
|
|
* Code syntax highlight
|
|
|
|
|
|
2015-11-25 16:37:26 +00:00
|
|
|
* Line similarity matching
|
|
|
|
|
|
2016-05-01 19:52:25 +00:00
|
|
|
* Easy code selection
|
|
|
|
|
|
2014-09-14 19:50:17 +00:00
|
|
|
## Online Example
|
2014-08-30 02:54:52 +00:00
|
|
|
|
2016-07-23 09:20:29 +00:00
|
|
|
> Go to [diff2html](https://diff2html.xyz/)
|
2014-08-30 22:33:12 +00:00
|
|
|
|
2014-09-08 17:15:51 +00:00
|
|
|
## Distributions
|
|
|
|
|
|
|
|
|
|
* [WebJar](http://www.webjars.org/)
|
|
|
|
|
|
|
|
|
|
* [Node Module](https://www.npmjs.org/package/diff2html)
|
|
|
|
|
|
2015-07-18 23:23:36 +00:00
|
|
|
* [Bower Package](http://bower.io/search/?q=diff2html)
|
|
|
|
|
|
2015-07-19 21:08:17 +00:00
|
|
|
* [Node CLI](https://www.npmjs.org/package/diff2html-cli)
|
|
|
|
|
|
2015-07-18 23:23:36 +00:00
|
|
|
* Manually download and import `dist/diff2html.min.js` into your page
|
2014-09-08 17:15:51 +00:00
|
|
|
|
|
|
|
|
## How to use
|
|
|
|
|
|
2015-10-19 11:47:49 +00:00
|
|
|
> Pretty HTML diff
|
2014-08-30 22:33:12 +00:00
|
|
|
|
2015-10-19 11:47:49 +00:00
|
|
|
Diff2Html.getPrettyHtml(exInput, configuration)
|
2014-08-30 02:54:52 +00:00
|
|
|
|
2014-08-30 22:33:12 +00:00
|
|
|
> Intermediate Json From Git Word Diff Output
|
|
|
|
|
|
2014-09-14 19:50:17 +00:00
|
|
|
Diff2Html.getJsonFromDiff(exInput)
|
2014-08-30 22:33:12 +00:00
|
|
|
|
2015-10-19 11:47:49 +00:00
|
|
|
> Check out the `index.html` for a complete example.
|
2014-09-14 19:50:17 +00:00
|
|
|
|
2015-10-19 11:47:49 +00:00
|
|
|
## Configuration
|
|
|
|
|
The HTML output accepts a Javascript object with configuration. Possible options:
|
2014-09-14 19:50:17 +00:00
|
|
|
|
2015-10-19 11:47:49 +00:00
|
|
|
- `inputFormat`: the format of the input data: `'diff'` or `'json'`, default is `'diff'`
|
|
|
|
|
- `outputFormat`: the format of the output data: `'line-by-line'` or `'side-by-side'`, default is `'line-by-line'`
|
|
|
|
|
- `showFiles`: show a file list before the diff: `true` or `false`, default is `false`
|
2015-12-09 22:17:26 +00:00
|
|
|
- `matching`: matching level: `'lines'` for matching lines, `'words'` for matching lines and words or `'none'`, default is `none`
|
2016-05-21 22:16:43 +00:00
|
|
|
- `synchronisedScroll`: scroll both panes in side-by-side mode: `true` or `false`, default is `false`
|
2015-11-25 16:37:26 +00:00
|
|
|
- `matchWordsThreshold`: similarity threshold for word matching, default is 0.25
|
2016-04-14 11:01:25 +00:00
|
|
|
- `matchingMaxComparisons`: perform at most this much comparisons for line matching a block of changes, default is `2500`
|
2014-08-30 02:54:52 +00:00
|
|
|
|
2016-02-07 14:19:23 +00:00
|
|
|
## Diff2HtmlUI Helper
|
|
|
|
|
|
|
|
|
|
> Simple wrapper to ease simple tasks in the browser such as: code highlight and js effects
|
|
|
|
|
|
|
|
|
|
### How to use
|
|
|
|
|
|
2016-04-15 22:21:30 +00:00
|
|
|
> HTML resource imports
|
|
|
|
|
|
|
|
|
|
```html
|
|
|
|
|
<!-- CSS -->
|
|
|
|
|
<link rel="stylesheet" type="text/css" href="dist/diff2html.css">
|
|
|
|
|
|
|
|
|
|
<!-- Javascripts -->
|
|
|
|
|
<script type="text/javascript" src="dist/diff2html.js"></script>
|
|
|
|
|
<script type="text/javascript" src="dist/diff2html-ui.js"></script>
|
|
|
|
|
```
|
|
|
|
|
|
2016-02-07 14:19:23 +00:00
|
|
|
> Init
|
|
|
|
|
|
|
|
|
|
```js
|
|
|
|
|
var diff2htmlUi = new Diff2HtmlUI({diff: diffString});
|
|
|
|
|
// or
|
|
|
|
|
var diff2htmlUi = new Diff2HtmlUI({json: diffJson});
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
> Draw
|
|
|
|
|
|
|
|
|
|
```js
|
|
|
|
|
diff2htmlUi.draw('html-target-elem', {inputFormat: 'json', showFiles: true, matching: 'lines'});
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
> Highlight Code
|
|
|
|
|
|
|
|
|
|
```js
|
|
|
|
|
diff2htmlUi.highlightCode('html-target-elem');
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
> Collapse File Summary List
|
|
|
|
|
|
|
|
|
|
```js
|
|
|
|
|
diff2htmlUi.fileListCloseable('html-target-elem', false);
|
|
|
|
|
```
|
2014-08-30 02:54:52 +00:00
|
|
|
|
2015-10-19 11:47:49 +00:00
|
|
|
## Syntax Highlight
|
2015-07-19 21:08:17 +00:00
|
|
|
|
|
|
|
|
> Add the dependencies.
|
|
|
|
|
Choose one color scheme, and add the main highlight code.
|
|
|
|
|
If your favourite language is not included in the default package also add its javascript highlight file.
|
|
|
|
|
|
|
|
|
|
```html
|
|
|
|
|
<!-- Stylesheet -->
|
2016-04-25 18:41:00 +00:00
|
|
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.3.0/styles/github.min.css">
|
2016-02-07 14:19:23 +00:00
|
|
|
|
|
|
|
|
<!-- Javascripts -->
|
2016-04-25 18:41:00 +00:00
|
|
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.3/jquery.js"></script>
|
|
|
|
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.3.0/highlight.min.js"></script>
|
|
|
|
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.3.0/languages/scala.min.js"></script>
|
2016-02-07 14:19:23 +00:00
|
|
|
<script type="text/javascript" src="dist/diff2html-ui.js"></script>
|
|
|
|
|
```
|
2015-07-19 21:08:17 +00:00
|
|
|
|
2016-02-07 14:19:23 +00:00
|
|
|
> Invoke the Diff2HtmlUI helper
|
|
|
|
|
|
|
|
|
|
```js
|
|
|
|
|
$(document).ready(function() {
|
|
|
|
|
var diff2htmlUi = new Diff2HtmlUI({diff: lineDiffExample});
|
|
|
|
|
diff2htmlUi.draw('#line-by-line', {inputFormat: 'json', showFiles: true, matching: 'lines'});
|
|
|
|
|
diff2htmlUi.highlightCode('#line-by-line');
|
|
|
|
|
});
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## Collapsable File Summary List
|
|
|
|
|
|
|
|
|
|
> Add the dependencies.
|
|
|
|
|
|
|
|
|
|
```html
|
2015-07-19 21:08:17 +00:00
|
|
|
<!-- Javascripts -->
|
2016-04-25 18:41:00 +00:00
|
|
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.3/jquery.js"></script>
|
2016-02-07 14:19:23 +00:00
|
|
|
<script type="text/javascript" src="dist/diff2html-ui.js"></script>
|
2015-07-19 21:08:17 +00:00
|
|
|
```
|
|
|
|
|
|
2016-02-07 14:19:23 +00:00
|
|
|
> Invoke the Diff2HtmlUI helper
|
2015-07-19 21:08:17 +00:00
|
|
|
|
|
|
|
|
```js
|
2016-02-07 14:19:23 +00:00
|
|
|
$(document).ready(function() {
|
|
|
|
|
var diff2htmlUi = new Diff2HtmlUI({diff: lineDiffExample});
|
|
|
|
|
diff2htmlUi.draw('#line-by-line', {inputFormat: 'json', showFiles: true, matching: 'lines'});
|
|
|
|
|
diff2htmlUi.fileListCloseable('#line-by-line', false);
|
2015-07-19 21:08:17 +00:00
|
|
|
});
|
|
|
|
|
```
|
|
|
|
|
|
2014-08-30 22:33:12 +00:00
|
|
|
## Contributions
|
2014-08-30 02:54:52 +00:00
|
|
|
|
2015-12-23 20:19:10 +00:00
|
|
|
This is a developer friendly project, all the contributions are welcome.
|
|
|
|
|
To contribute just send a pull request with your changes following the guidelines described in `CONTRIBUTING.md`.
|
|
|
|
|
I will try to review them as soon as possible.
|
2014-08-30 02:54:52 +00:00
|
|
|
|
|
|
|
|
## License
|
|
|
|
|
|
2016-04-25 18:41:00 +00:00
|
|
|
Copyright 2014-2016 Rodrigo Fernandes. Released under the terms of the MIT license.
|
2014-08-30 02:54:52 +00:00
|
|
|
|
2014-08-30 22:33:12 +00:00
|
|
|
## Thanks
|
|
|
|
|
|
|
|
|
|
This project is inspired in [pretty-diff](https://github.com/scottgonzalez/pretty-diff) by [Scott González](https://github.com/scottgonzalez).
|
|
|
|
|
|
2014-08-30 02:54:52 +00:00
|
|
|
---
|