Migrate website to main branch
This commit is contained in:
parent
4b77d69d5a
commit
57a288a564
20 changed files with 2261 additions and 282 deletions
|
|
@ -86,7 +86,7 @@ let dif2html = require("diff2html").Diff2Html
|
|||
|
||||
> Check out the `docs/diff2html.d.ts` for a complete API definition in TypeScript.
|
||||
|
||||
> Check out the `docs/index.html` for a demo example.
|
||||
> Check out the `docs/demo.html` for a demo example.
|
||||
|
||||
## Configuration
|
||||
The HTML output accepts a Javascript object with configuration. Possible options:
|
||||
|
|
|
|||
17
bower.json
17
bower.json
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"name": "diff2html",
|
||||
"version": "2.0.2",
|
||||
"homepage": "http://rtfpessoa.github.io/diff2html/",
|
||||
"homepage": "https://diff2html.xyz",
|
||||
"description": "Fast Diff to colorized HTML",
|
||||
"keywords": [
|
||||
"git",
|
||||
|
|
@ -38,12 +38,15 @@
|
|||
],
|
||||
"ignore": [
|
||||
"**/.*",
|
||||
"webpack.config.js",
|
||||
"package.json",
|
||||
"release.sh",
|
||||
"circle.yml",
|
||||
"css",
|
||||
"docs",
|
||||
"scripts",
|
||||
"src",
|
||||
"test"
|
||||
"test",
|
||||
"typescript",
|
||||
"circle.yml",
|
||||
"CONTRIBUTING.md",
|
||||
"CREDITS.md",
|
||||
"npm-shrinkwrap.json",
|
||||
"package.json"
|
||||
]
|
||||
}
|
||||
|
|
|
|||
422
docs/demo.html
Normal file
422
docs/demo.html
Normal file
|
|
@ -0,0 +1,422 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en" class="js">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<!--[if IE]>
|
||||
<meta http-equiv='X-UA-Compatible' content='IE=edge,chrome=1'/>
|
||||
<![endif]-->
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
<meta name="description" content="Diff parser and pretty html generator">
|
||||
<meta name="keywords" content="diff2html,git,diff,unified,pretty,html,css,javaccript">
|
||||
<meta name="author" content="Rodrigo Fernandes (rtfpessoa)">
|
||||
|
||||
<title>diff2html</title>
|
||||
|
||||
<!-- search engine -->
|
||||
<link rel="canonical" href="https://diff2html.xyz">
|
||||
|
||||
<!-- open graph -->
|
||||
<meta property="og:title" content="diff2html">
|
||||
<meta property="og:type" content="website">
|
||||
|
||||
<meta property="og:description"
|
||||
content="Diff parser and pretty html generator.">
|
||||
|
||||
<meta property="og:url" content="https://diff2html.xyz">
|
||||
<meta property="og:site_name" content="diff2html">
|
||||
|
||||
<!-- Bootstrap -->
|
||||
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css"
|
||||
integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous">
|
||||
|
||||
<!-- Custom styles for this template -->
|
||||
<link href="main.css" rel="stylesheet">
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.6.0/styles/github.min.css">
|
||||
|
||||
<!-- diff2html -->
|
||||
<link rel="stylesheet" type="text/css" href="assets/diff2html.css">
|
||||
<!-- -->
|
||||
|
||||
|
||||
<script>
|
||||
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
||||
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
|
||||
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
|
||||
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
|
||||
|
||||
ga('create', 'UA-78351861-2', 'auto');
|
||||
ga('send', 'pageview');
|
||||
|
||||
</script>
|
||||
</head>
|
||||
<body class="swag-line template-index">
|
||||
<div class="container-overflow-wrap">
|
||||
|
||||
<div class="container">
|
||||
<nav class="navbar navbar-default navbar-tall navbar-full" role="navigation">
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#global-nav">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
<a class="navbar-brand" href="index.html">diff2html</a>
|
||||
</div>
|
||||
|
||||
<div class="collapse navbar-collapse" id="global-nav">
|
||||
<div class="navbar-right">
|
||||
<ul class="nav navbar-nav">
|
||||
|
||||
<li>
|
||||
<a href="index.html#install">Getting Started</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="index.html#cli">CLI</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="demo.html">Demo</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="https://github.com/rtfpessoa/diff2html#how-to-use" target="_blank">Docs</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="https://github.com/rtfpessoa/diff2html/issues/new" target="_blank">Support</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<h1>Line by Line</h1>
|
||||
|
||||
<div id="line-by-line" style="margin: 0 auto;">
|
||||
</div>
|
||||
|
||||
<h1>Side by Side</h1>
|
||||
|
||||
<div id="side-by-side" style="margin: 0 auto;">
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<footer class="footer clearfix">
|
||||
<p class="col-xs-10 col-xs-offset-1">
|
||||
Website originally designed and built by
|
||||
<a href="https://twitter.com/mdo" target="_blank">@mdo</a>,
|
||||
<a href="https://twitter.com/fat" target="_blank">@fat</a>, and
|
||||
<a href="https://twitter.com/dhg" target="_blank">@dhg</a>,
|
||||
adapted with <span class="hero-red">❤</span> by
|
||||
<a href="https://twitter.com/rtfpessoa" target="_blank">@rtfpessoa</a>.
|
||||
</p>
|
||||
<ul class="footer-list col-xs-10 col-xs-offset-1">
|
||||
|
||||
<li class="footer-list-item">
|
||||
<a class="footer-list-link" href="https://github.com/rtfpessoa/diff2html#how-to-use"
|
||||
target="_blank">FAQ</a>
|
||||
</li>
|
||||
|
||||
<li class="footer-list-item">
|
||||
<a class="footer-list-link" href="https://diff2html.xyz">diff2html</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</footer>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- General JavaScript -->
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.3/jquery.min.js"></script>
|
||||
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"
|
||||
integrity="sha384-0mSbJDEHialfmuBBQP6A4Qrprq5OVfW37PRR3j5ELqxss1yVqOtnepnHVP9aJ7xS"
|
||||
crossorigin="anonymous"></script>
|
||||
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "http://schema.org/",
|
||||
"@type": "SoftwareSourceCode",
|
||||
"name": "diff2html",
|
||||
"author": "Rodrigo Fernandes",
|
||||
"image": "https://diff2html.xyz/img/snapshot-3.png",
|
||||
"description": "Diff parser and pretty html generator.",
|
||||
"codeRepository": "https://github.com/rtfpessoa/diff2html",
|
||||
"programmingLanguage": "JavaScript",
|
||||
"runtimePlatform": "Node >= 0.12",
|
||||
"mainEntityOfPage": "https://diff2html.xyz/"
|
||||
}
|
||||
</script>
|
||||
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.6.0/highlight.min.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.6.0/languages/scala.min.js"></script>
|
||||
|
||||
<!-- diff2html -->
|
||||
<script type="text/javascript" src="assets/diff2html.js"></script>
|
||||
<script type="text/javascript" src="assets/diff2html-ui.js"></script>
|
||||
<!-- -->
|
||||
|
||||
<script>
|
||||
var lineDiffExample =
|
||||
"--- a/src/my/really/big/path/sample.js\n" +
|
||||
"+++ b/src/my/small/path/sample.js\n" +
|
||||
"@@ -1 +1,2 @@\n" +
|
||||
"-test\n" +
|
||||
"+test1r\n" +
|
||||
"+test2r\n" +
|
||||
'diff --git a/src/core/init.java b/src/core/init.java\n' +
|
||||
'index e49196a..50f310c 100644\n' +
|
||||
'--- a/src/core/init.java\n' +
|
||||
'+++ b/src/core/init.java\n' +
|
||||
'@@ -101,7 +101,7 @@\n' +
|
||||
' /**\n' +
|
||||
' * Setter for property filesize.\n' +
|
||||
' *\n' +
|
||||
" * @param filesize value of property 'filesize'.\n" +
|
||||
' */\n' +
|
||||
' public void setFilesize(int filesize) {\n' +
|
||||
'- this.filesizeOld = filesizeOld;\n' +
|
||||
'+ this.filesizeNew = filesizeNew;\n' +
|
||||
' }\n' +
|
||||
'diff --git a/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/coverage.init b/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/coverage.init\n' +
|
||||
'index fc56817..e8e7e49 100644\n' +
|
||||
'--- a/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/coverage.init\n' +
|
||||
'+++ b/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/coverage.init\n' +
|
||||
'@@ -19,7 +19,7 @@\n' +
|
||||
' -opt "\-nostart"\n' +
|
||||
' \n' +
|
||||
' # skip stopenv\n' +
|
||||
'--do "runbvt,stopenv,getlogs,pullcoveragedata,stopenv,getlogs,pullcoveragedata,stopenv,getlogs,pullcoveragedata,stopenv,getlogs,pullcoveragedata,stopenv,getlogs,pullcoveragedata,stopenv,getlogs,pullcoveragedata,stopenv,getlogs,pullcoveragedata,stopenv,getlogs,pullcoveragedata,stopenv,getlogs,pullcoveragedata,stopenv,getlogs,pullcoveragedata"\n' +
|
||||
'+-do "runbvt,getlogs,pullcoveragedata"\n' +
|
||||
' \n' +
|
||||
' ##########################################\n' +
|
||||
' # logs files to bring back to base\n' +
|
||||
'diff --git a/src/attributes/attr.js b/src/attributes/attr.js\n' +
|
||||
'index facdd41..b627fe8 100644\n' +
|
||||
'--- a/src/attributes/attr.js\n' +
|
||||
'+++ b/src/attributes/attr.js\n' +
|
||||
'@@ -1,11 +1,10 @@\n' +
|
||||
' define([\n' +
|
||||
' "../core",\n' +
|
||||
' "../var/rnotwhite",\n' +
|
||||
'- "../var/strundefined",\n' +
|
||||
' "../core/access",\n' +
|
||||
' "./support",\n' +
|
||||
' "../selector"\n' +
|
||||
'-], function( jQuery, rnotwhite, strundefined, access, support ) {\n' +
|
||||
'+], function( jQuery, rnotwhite, access, support ) {\n' +
|
||||
' \n' +
|
||||
' var nodeHook, boolHook,\n' +
|
||||
' attrHandle = jQuery.expr.attrHandle;\n' +
|
||||
'@@ -33,7 +32,7 @@ jQuery.extend({\n' +
|
||||
' }\n' +
|
||||
' \n' +
|
||||
' // Fallback to prop when attributes are not supported\n' +
|
||||
'- if ( typeof elem.getAttribute === strundefined ) {\n' +
|
||||
'+ if ( !elem.getAttribute ) {\n' +
|
||||
' return jQuery.prop( elem, name, value );\n' +
|
||||
' }\n' +
|
||||
' \n' +
|
||||
'diff --git a/src/attributes/classes.js b/src/attributes/classes.js\n' +
|
||||
'index c617824..c8d1393 100644\n' +
|
||||
'--- a/src/attributes/classes.js\n' +
|
||||
'+++ b/src/attributes/classes.js\n' +
|
||||
'@@ -1,10 +1,9 @@\n' +
|
||||
' define([\n' +
|
||||
' "../core",\n' +
|
||||
' "../var/rnotwhite",\n' +
|
||||
'- "../var/strundefined",\n' +
|
||||
' "../data/var/dataPriv",\n' +
|
||||
' "../core/init"\n' +
|
||||
'-], function( jQuery, rnotwhite, strundefined, dataPriv ) {\n' +
|
||||
'+], function( jQuery, rnotwhite, dataPriv ) {\n' +
|
||||
' \n' +
|
||||
' var rclass = /[\\t\\r\\n\\f]/g;\n' +
|
||||
' \n' +
|
||||
'@@ -128,7 +127,7 @@ jQuery.fn.extend({\n' +
|
||||
' }\n' +
|
||||
' \n' +
|
||||
' // Toggle whole class name\n' +
|
||||
'- } else if ( type === strundefined || type === "boolean" ) {\n' +
|
||||
'+ } else if ( value === undefined || type === "boolean" ) {\n' +
|
||||
' if ( this.className ) {\n' +
|
||||
' // store className if set\n' +
|
||||
' dataPriv.set( this, "__className__", this.className );\n' +
|
||||
'diff --git a/src/core/init.js b/src/core/init.js\n' +
|
||||
'index e49196a..50f310c 100644\n' +
|
||||
'--- a/src/core/init.js\n' +
|
||||
'+++ b/src/core/init.js\n' +
|
||||
'@@ -101,7 +101,7 @@ var rootjQuery,\n' +
|
||||
' // HANDLE: $(function)\n' +
|
||||
' // Shortcut for document ready\n' +
|
||||
' } else if ( jQuery.isFunction( selector ) ) {\n' +
|
||||
'- return typeof rootjQuery.ready !== "undefined" ?\n' +
|
||||
'+ return rootjQuery.ready !== undefined ?\n' +
|
||||
' rootjQuery.ready( selector ) :\n' +
|
||||
' // Execute immediately if ready is not present\n' +
|
||||
' selector( jQuery );\n' +
|
||||
'diff --git a/src/event.js b/src/event.js\n' +
|
||||
'index 7336f4d..6183f70 100644\n' +
|
||||
'--- a/src/event.js\n' +
|
||||
'+++ b/src/event.js\n' +
|
||||
'@@ -1,6 +1,5 @@\n' +
|
||||
' define([\n' +
|
||||
' "./core",\n' +
|
||||
'- "./var/strundefined",\n' +
|
||||
' "./var/rnotwhite",\n' +
|
||||
' "./var/hasOwn",\n' +
|
||||
' "./var/slice",\n' +
|
||||
'@@ -10,7 +9,7 @@ define([\n' +
|
||||
' "./core/init",\n' +
|
||||
' "./data/accepts",\n' +
|
||||
' "./selector"\n' +
|
||||
'-], function( jQuery, strundefined, rnotwhite, hasOwn, slice, support, dataPriv ) {\n' +
|
||||
'+], function( jQuery, rnotwhite, hasOwn, slice, support, dataPriv ) {\n' +
|
||||
' \n' +
|
||||
' var\n' +
|
||||
' rkeyEvent = /^key/,\n' +
|
||||
'@@ -72,7 +71,7 @@ jQuery.event = {\n' +
|
||||
' eventHandle = elemData.handle = function( e ) {\n' +
|
||||
' // Discard the second event of a jQuery.event.trigger() and\n' +
|
||||
' // when an event is called after a page has unloaded\n' +
|
||||
'- return typeof jQuery !== strundefined && jQuery.event.triggered !== e.type ?\n' +
|
||||
'+ return typeof jQuery !== "undefined" && jQuery.event.triggered !== e.type ?\n' +
|
||||
' jQuery.event.dispatch.apply( elem, arguments ) : undefined;\n' +
|
||||
' };\n' +
|
||||
' }\n' +
|
||||
'diff --git a/src/exports/global.js b/src/exports/global.js\n' +
|
||||
'index 6513287..1db4144 100644\n' +
|
||||
'--- a/src/exports/global.js\n' +
|
||||
'+++ b/src/exports/global.js\n' +
|
||||
'@@ -1,7 +1,9 @@\n' +
|
||||
' define([\n' +
|
||||
'- "../core",\n' +
|
||||
'- "../var/strundefined"\n' +
|
||||
'-], function( jQuery, strundefined ) {\n' +
|
||||
'+ "../core"\n' +
|
||||
'+], function( jQuery ) {\n' +
|
||||
'+\n' +
|
||||
'+/* exported noGlobal */\n' +
|
||||
'+/* global noGlobal: false */\n' +
|
||||
' \n' +
|
||||
' var\n' +
|
||||
' // Map over jQuery in case of overwrite\n' +
|
||||
'@@ -25,7 +27,7 @@ jQuery.noConflict = function( deep ) {\n' +
|
||||
' // Expose jQuery and $ identifiers, even in AMD\n' +
|
||||
' // (#7102#comment:10, https://github.com/jquery/jquery/pull/557)\n' +
|
||||
' // and CommonJS for browser emulators (#13566)\n' +
|
||||
'-if ( typeof noGlobal === strundefined ) {\n' +
|
||||
'+if ( !noGlobal ) {\n' +
|
||||
' window.jQuery = window.$ = jQuery;\n' +
|
||||
' }\n' +
|
||||
' \n' +
|
||||
'diff --git a/src/offset.js b/src/offset.js\n' +
|
||||
'index cc6ffb4..fa51f18 100644\n' +
|
||||
'--- a/src/offset.js\n' +
|
||||
'+++ b/src/offset.js\n' +
|
||||
'@@ -1,6 +1,5 @@\n' +
|
||||
' define([\n' +
|
||||
' "./core",\n' +
|
||||
'- "./var/strundefined",\n' +
|
||||
' "./core/access",\n' +
|
||||
' "./css/var/rnumnonpx",\n' +
|
||||
' "./css/curCSS",\n' +
|
||||
'@@ -10,7 +9,7 @@ define([\n' +
|
||||
' "./core/init",\n' +
|
||||
' "./css",\n' +
|
||||
' "./selector" // contains\n' +
|
||||
'-], function( jQuery, strundefined, access, rnumnonpx, curCSS, addGetHookIf, support ) {\n' +
|
||||
'+], function( jQuery, access, rnumnonpx, curCSS, addGetHookIf, support ) {\n' +
|
||||
' \n' +
|
||||
' var docElem = window.document.documentElement;\n' +
|
||||
' \n' +
|
||||
'@@ -99,7 +98,7 @@ jQuery.fn.extend({\n' +
|
||||
' \n' +
|
||||
' // Support: BlackBerry 5, iOS 3 (original iPhone)\n' +
|
||||
' // If we dont have gBCR, just use 0,0 rather than error\n' +
|
||||
'- if ( typeof elem.getBoundingClientRect !== strundefined ) {\n' +
|
||||
'+ if ( elem.getBoundingClientRect !== undefined ) {\n' +
|
||||
' box = elem.getBoundingClientRect();\n' +
|
||||
' }\n' +
|
||||
' win = getWindow( doc );\n' +
|
||||
'diff --git a/src/var/strundefined.js b/src/var/strundefined.js\n' +
|
||||
'deleted file mode 100644\n' +
|
||||
'index 04e16b0..0000000\n' +
|
||||
'--- a/src/var/strundefined.js\n' +
|
||||
'+++ /dev/null\n' +
|
||||
'@@ -1,3 +0,0 @@\n' +
|
||||
'-define(function() {\n' +
|
||||
'- return typeof undefined;\n' +
|
||||
'-});\n' +
|
||||
'diff --git a/components/textdiff/textdiff.html b/components/textdiff/textdiff.html\n' +
|
||||
'index a3484bf..82209af 100644\n' +
|
||||
'--- a/components/textdiff/textdiff.html\n' +
|
||||
'+++ b/components/textdiff/textdiff.html\n' +
|
||||
'@@ -1,6 +1,8 @@\n' +
|
||||
' <!-- ko if: isShowingDiffs -->\n' +
|
||||
' <div>\n' +
|
||||
'- <div data-bind="event: { load: setDom($element) }"></div>\n' +
|
||||
'+ <!-- ko if: isParsed -->\n' +
|
||||
'+ <div data-bind="template: {nodes: ko.utils.parseHtmlFragment(htmlSrc())}"></div>\n' +
|
||||
'+ <!-- /ko -->\n' +
|
||||
' <div class="btn-load-more" data-bind="visible: loadMoreCount() > 0">\n' +
|
||||
' </div>\n' +
|
||||
'diff --git a/test.js b/test.js\n' +
|
||||
'new file mode 100644\n' +
|
||||
'index 0000000..e1e22ec\n' +
|
||||
'--- /dev/null\n' +
|
||||
'+++ b/test.js\n' +
|
||||
'@@ -0,0 +1,6 @@\n' +
|
||||
"+var parser = require('./source/git-parser');\n" +
|
||||
'+\n' +
|
||||
"+var text = 'diff --git a/components/app/app.html b/components/app/app.html\\nindex ecb7a95..027bd9b 100644\\n--- a/components/app/app.html\\n+++ b/components/app/app.html\\n@@ -52,0 +53,3 @@\\n+\\n+\\n+\\n@@ -56,0 +60,3 @@\\n+\\n+\\n+\\n'\n" +
|
||||
'+var patchLineList = [ false, false, false, false ];\n' +
|
||||
'+\n' +
|
||||
'+console.log(parser.parsePatchDiffResult(text, patchLineList));\n' +
|
||||
"diff --git a/a.xml b/b.xml\n" +
|
||||
"index e54317e..82a9a56 100644\n" +
|
||||
"--- a/a.xml\n" +
|
||||
"+++ b/b.xml\n" +
|
||||
"@@ -242,4 +242,6 @@ need to create a new job for native server java api and move these tests to a ne\n" +
|
||||
" </packages>\n" +
|
||||
" </test>\n" +
|
||||
" -->\n" +
|
||||
"+\n" +
|
||||
"+\n" +
|
||||
"--- a/sample.js\n" +
|
||||
"+++ b/sample.js\n" +
|
||||
"@@ -1 +1,2 @@\n" +
|
||||
"-test\n" +
|
||||
"+test1r\n" +
|
||||
"+test2r\n";
|
||||
|
||||
$(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);
|
||||
diff2htmlUi.highlightCode('#line-by-line');
|
||||
|
||||
diff2htmlUi.draw('#side-by-side', {
|
||||
inputFormat: 'json',
|
||||
showFiles: true,
|
||||
matching: 'lines',
|
||||
outputFormat: 'side-by-side',
|
||||
synchronisedScroll: true
|
||||
});
|
||||
diff2htmlUi.fileListCloseable('#side-by-side', false);
|
||||
diff2htmlUi.highlightCode('#side-by-side');
|
||||
});
|
||||
</script>
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
BIN
docs/favicon.ico
Normal file
BIN
docs/favicon.ico
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 4.6 KiB |
BIN
docs/img/snapshot-1.png
Normal file
BIN
docs/img/snapshot-1.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 92 KiB |
BIN
docs/img/snapshot-2.png
Normal file
BIN
docs/img/snapshot-2.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 73 KiB |
BIN
docs/img/snapshot-3.png
Normal file
BIN
docs/img/snapshot-3.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 121 KiB |
667
docs/index.html
667
docs/index.html
|
|
@ -1,292 +1,411 @@
|
|||
<!doctype html>
|
||||
<html lang="en">
|
||||
<!DOCTYPE html>
|
||||
<html lang="en" class="js">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Diff to HTML by rtfpessoa</title>
|
||||
<!--[if IE]>
|
||||
<meta http-equiv='X-UA-Compatible' content='IE=edge,chrome=1'/>
|
||||
<![endif]-->
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
<!--
|
||||
Diff to HTML (index.html)
|
||||
Author: rtfpessoa
|
||||
-->
|
||||
<meta name="description" content="Diff parser and pretty html generator">
|
||||
<meta name="keywords" content="diff2html,git,diff,unified,pretty,html,css,javaccript">
|
||||
<meta name="author" content="Rodrigo Fernandes (rtfpessoa)">
|
||||
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.6.0/styles/github.min.css">
|
||||
<title>diff2html</title>
|
||||
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.3/jquery.js"></script>
|
||||
<!-- search engine -->
|
||||
<link rel="canonical" href="https://diff2html.xyz">
|
||||
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.6.0/highlight.min.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.6.0/languages/scala.min.js"></script>
|
||||
<!-- open graph -->
|
||||
<meta property="og:title" content="diff2html">
|
||||
<meta property="og:type" content="website">
|
||||
|
||||
<!-- diff2html -->
|
||||
<link rel="stylesheet" type="text/css" href="../dist/diff2html.css">
|
||||
<script type="text/javascript" src="../dist/diff2html.js"></script>
|
||||
<script type="text/javascript" src="../dist/diff2html-ui.js"></script>
|
||||
<!-- -->
|
||||
<meta property="og:description"
|
||||
content="Diff parser and pretty html generator.">
|
||||
|
||||
<meta property="og:url" content="https://diff2html.xyz">
|
||||
<meta property="og:site_name" content="diff2html">
|
||||
|
||||
<!-- Bootstrap -->
|
||||
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css"
|
||||
integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous">
|
||||
|
||||
<!-- Custom styles for this template -->
|
||||
<link href="main.css" rel="stylesheet">
|
||||
|
||||
<script>
|
||||
var lineDiffExample =
|
||||
"--- a/src/my/really/big/path/sample.js\n" +
|
||||
"+++ b/src/my/small/path/sample.js\n" +
|
||||
"@@ -1 +1,2 @@\n" +
|
||||
"-test\n" +
|
||||
"+test1r\n" +
|
||||
"+test2r\n" +
|
||||
'diff --git a/src/core/init.java b/src/core/init.java\n' +
|
||||
'index e49196a..50f310c 100644\n' +
|
||||
'--- a/src/core/init.java\n' +
|
||||
'+++ b/src/core/init.java\n' +
|
||||
'@@ -101,7 +101,7 @@\n' +
|
||||
' /**\n' +
|
||||
' * Setter for property filesize.\n' +
|
||||
' *\n' +
|
||||
" * @param filesize value of property 'filesize'.\n" +
|
||||
' */\n' +
|
||||
' public void setFilesize(int filesize) {\n' +
|
||||
'- this.filesizeOld = filesizeOld;\n' +
|
||||
'+ this.filesizeNew = filesizeNew;\n' +
|
||||
' }\n' +
|
||||
'diff --git a/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/coverage.init b/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/coverage.init\n' +
|
||||
'index fc56817..e8e7e49 100644\n' +
|
||||
'--- a/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/coverage.init\n' +
|
||||
'+++ b/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/coverage.init\n' +
|
||||
'@@ -19,7 +19,7 @@\n' +
|
||||
' -opt "\-nostart"\n' +
|
||||
' \n' +
|
||||
' # skip stopenv\n' +
|
||||
'--do "runbvt,stopenv,getlogs,pullcoveragedata,stopenv,getlogs,pullcoveragedata,stopenv,getlogs,pullcoveragedata,stopenv,getlogs,pullcoveragedata,stopenv,getlogs,pullcoveragedata,stopenv,getlogs,pullcoveragedata,stopenv,getlogs,pullcoveragedata,stopenv,getlogs,pullcoveragedata,stopenv,getlogs,pullcoveragedata,stopenv,getlogs,pullcoveragedata"\n' +
|
||||
'+-do "runbvt,getlogs,pullcoveragedata"\n' +
|
||||
' \n' +
|
||||
' ##########################################\n' +
|
||||
' # logs files to bring back to base\n' +
|
||||
'diff --git a/src/attributes/attr.js b/src/attributes/attr.js\n' +
|
||||
'index facdd41..b627fe8 100644\n' +
|
||||
'--- a/src/attributes/attr.js\n' +
|
||||
'+++ b/src/attributes/attr.js\n' +
|
||||
'@@ -1,11 +1,10 @@\n' +
|
||||
' define([\n' +
|
||||
' "../core",\n' +
|
||||
' "../var/rnotwhite",\n' +
|
||||
'- "../var/strundefined",\n' +
|
||||
' "../core/access",\n' +
|
||||
' "./support",\n' +
|
||||
' "../selector"\n' +
|
||||
'-], function( jQuery, rnotwhite, strundefined, access, support ) {\n' +
|
||||
'+], function( jQuery, rnotwhite, access, support ) {\n' +
|
||||
' \n' +
|
||||
' var nodeHook, boolHook,\n' +
|
||||
' attrHandle = jQuery.expr.attrHandle;\n' +
|
||||
'@@ -33,7 +32,7 @@ jQuery.extend({\n' +
|
||||
' }\n' +
|
||||
' \n' +
|
||||
' // Fallback to prop when attributes are not supported\n' +
|
||||
'- if ( typeof elem.getAttribute === strundefined ) {\n' +
|
||||
'+ if ( !elem.getAttribute ) {\n' +
|
||||
' return jQuery.prop( elem, name, value );\n' +
|
||||
' }\n' +
|
||||
' \n' +
|
||||
'diff --git a/src/attributes/classes.js b/src/attributes/classes.js\n' +
|
||||
'index c617824..c8d1393 100644\n' +
|
||||
'--- a/src/attributes/classes.js\n' +
|
||||
'+++ b/src/attributes/classes.js\n' +
|
||||
'@@ -1,10 +1,9 @@\n' +
|
||||
' define([\n' +
|
||||
' "../core",\n' +
|
||||
' "../var/rnotwhite",\n' +
|
||||
'- "../var/strundefined",\n' +
|
||||
' "../data/var/dataPriv",\n' +
|
||||
' "../core/init"\n' +
|
||||
'-], function( jQuery, rnotwhite, strundefined, dataPriv ) {\n' +
|
||||
'+], function( jQuery, rnotwhite, dataPriv ) {\n' +
|
||||
' \n' +
|
||||
' var rclass = /[\\t\\r\\n\\f]/g;\n' +
|
||||
' \n' +
|
||||
'@@ -128,7 +127,7 @@ jQuery.fn.extend({\n' +
|
||||
' }\n' +
|
||||
' \n' +
|
||||
' // Toggle whole class name\n' +
|
||||
'- } else if ( type === strundefined || type === "boolean" ) {\n' +
|
||||
'+ } else if ( value === undefined || type === "boolean" ) {\n' +
|
||||
' if ( this.className ) {\n' +
|
||||
' // store className if set\n' +
|
||||
' dataPriv.set( this, "__className__", this.className );\n' +
|
||||
'diff --git a/src/core/init.js b/src/core/init.js\n' +
|
||||
'index e49196a..50f310c 100644\n' +
|
||||
'--- a/src/core/init.js\n' +
|
||||
'+++ b/src/core/init.js\n' +
|
||||
'@@ -101,7 +101,7 @@ var rootjQuery,\n' +
|
||||
' // HANDLE: $(function)\n' +
|
||||
' // Shortcut for document ready\n' +
|
||||
' } else if ( jQuery.isFunction( selector ) ) {\n' +
|
||||
'- return typeof rootjQuery.ready !== "undefined" ?\n' +
|
||||
'+ return rootjQuery.ready !== undefined ?\n' +
|
||||
' rootjQuery.ready( selector ) :\n' +
|
||||
' // Execute immediately if ready is not present\n' +
|
||||
' selector( jQuery );\n' +
|
||||
'diff --git a/src/event.js b/src/event.js\n' +
|
||||
'index 7336f4d..6183f70 100644\n' +
|
||||
'--- a/src/event.js\n' +
|
||||
'+++ b/src/event.js\n' +
|
||||
'@@ -1,6 +1,5 @@\n' +
|
||||
' define([\n' +
|
||||
' "./core",\n' +
|
||||
'- "./var/strundefined",\n' +
|
||||
' "./var/rnotwhite",\n' +
|
||||
' "./var/hasOwn",\n' +
|
||||
' "./var/slice",\n' +
|
||||
'@@ -10,7 +9,7 @@ define([\n' +
|
||||
' "./core/init",\n' +
|
||||
' "./data/accepts",\n' +
|
||||
' "./selector"\n' +
|
||||
'-], function( jQuery, strundefined, rnotwhite, hasOwn, slice, support, dataPriv ) {\n' +
|
||||
'+], function( jQuery, rnotwhite, hasOwn, slice, support, dataPriv ) {\n' +
|
||||
' \n' +
|
||||
' var\n' +
|
||||
' rkeyEvent = /^key/,\n' +
|
||||
'@@ -72,7 +71,7 @@ jQuery.event = {\n' +
|
||||
' eventHandle = elemData.handle = function( e ) {\n' +
|
||||
' // Discard the second event of a jQuery.event.trigger() and\n' +
|
||||
' // when an event is called after a page has unloaded\n' +
|
||||
'- return typeof jQuery !== strundefined && jQuery.event.triggered !== e.type ?\n' +
|
||||
'+ return typeof jQuery !== "undefined" && jQuery.event.triggered !== e.type ?\n' +
|
||||
' jQuery.event.dispatch.apply( elem, arguments ) : undefined;\n' +
|
||||
' };\n' +
|
||||
' }\n' +
|
||||
'diff --git a/src/exports/global.js b/src/exports/global.js\n' +
|
||||
'index 6513287..1db4144 100644\n' +
|
||||
'--- a/src/exports/global.js\n' +
|
||||
'+++ b/src/exports/global.js\n' +
|
||||
'@@ -1,7 +1,9 @@\n' +
|
||||
' define([\n' +
|
||||
'- "../core",\n' +
|
||||
'- "../var/strundefined"\n' +
|
||||
'-], function( jQuery, strundefined ) {\n' +
|
||||
'+ "../core"\n' +
|
||||
'+], function( jQuery ) {\n' +
|
||||
'+\n' +
|
||||
'+/* exported noGlobal */\n' +
|
||||
'+/* global noGlobal: false */\n' +
|
||||
' \n' +
|
||||
' var\n' +
|
||||
' // Map over jQuery in case of overwrite\n' +
|
||||
'@@ -25,7 +27,7 @@ jQuery.noConflict = function( deep ) {\n' +
|
||||
' // Expose jQuery and $ identifiers, even in AMD\n' +
|
||||
' // (#7102#comment:10, https://github.com/jquery/jquery/pull/557)\n' +
|
||||
' // and CommonJS for browser emulators (#13566)\n' +
|
||||
'-if ( typeof noGlobal === strundefined ) {\n' +
|
||||
'+if ( !noGlobal ) {\n' +
|
||||
' window.jQuery = window.$ = jQuery;\n' +
|
||||
' }\n' +
|
||||
' \n' +
|
||||
'diff --git a/src/offset.js b/src/offset.js\n' +
|
||||
'index cc6ffb4..fa51f18 100644\n' +
|
||||
'--- a/src/offset.js\n' +
|
||||
'+++ b/src/offset.js\n' +
|
||||
'@@ -1,6 +1,5 @@\n' +
|
||||
' define([\n' +
|
||||
' "./core",\n' +
|
||||
'- "./var/strundefined",\n' +
|
||||
' "./core/access",\n' +
|
||||
' "./css/var/rnumnonpx",\n' +
|
||||
' "./css/curCSS",\n' +
|
||||
'@@ -10,7 +9,7 @@ define([\n' +
|
||||
' "./core/init",\n' +
|
||||
' "./css",\n' +
|
||||
' "./selector" // contains\n' +
|
||||
'-], function( jQuery, strundefined, access, rnumnonpx, curCSS, addGetHookIf, support ) {\n' +
|
||||
'+], function( jQuery, access, rnumnonpx, curCSS, addGetHookIf, support ) {\n' +
|
||||
' \n' +
|
||||
' var docElem = window.document.documentElement;\n' +
|
||||
' \n' +
|
||||
'@@ -99,7 +98,7 @@ jQuery.fn.extend({\n' +
|
||||
' \n' +
|
||||
' // Support: BlackBerry 5, iOS 3 (original iPhone)\n' +
|
||||
' // If we dont have gBCR, just use 0,0 rather than error\n' +
|
||||
'- if ( typeof elem.getBoundingClientRect !== strundefined ) {\n' +
|
||||
'+ if ( elem.getBoundingClientRect !== undefined ) {\n' +
|
||||
' box = elem.getBoundingClientRect();\n' +
|
||||
' }\n' +
|
||||
' win = getWindow( doc );\n' +
|
||||
'diff --git a/src/var/strundefined.js b/src/var/strundefined.js\n' +
|
||||
'deleted file mode 100644\n' +
|
||||
'index 04e16b0..0000000\n' +
|
||||
'--- a/src/var/strundefined.js\n' +
|
||||
'+++ /dev/null\n' +
|
||||
'@@ -1,3 +0,0 @@\n' +
|
||||
'-define(function() {\n' +
|
||||
'- return typeof undefined;\n' +
|
||||
'-});\n' +
|
||||
'diff --git a/components/textdiff/textdiff.html b/components/textdiff/textdiff.html\n' +
|
||||
'index a3484bf..82209af 100644\n' +
|
||||
'--- a/components/textdiff/textdiff.html\n' +
|
||||
'+++ b/components/textdiff/textdiff.html\n' +
|
||||
'@@ -1,6 +1,8 @@\n' +
|
||||
' <!-- ko if: isShowingDiffs -->\n' +
|
||||
' <div>\n' +
|
||||
'- <div data-bind="event: { load: setDom($element) }"></div>\n' +
|
||||
'+ <!-- ko if: isParsed -->\n' +
|
||||
'+ <div data-bind="template: {nodes: ko.utils.parseHtmlFragment(htmlSrc())}"></div>\n' +
|
||||
'+ <!-- /ko -->\n' +
|
||||
' <div class="btn-load-more" data-bind="visible: loadMoreCount() > 0">\n' +
|
||||
' </div>\n' +
|
||||
'diff --git a/test.js b/test.js\n' +
|
||||
'new file mode 100644\n' +
|
||||
'index 0000000..e1e22ec\n' +
|
||||
'--- /dev/null\n' +
|
||||
'+++ b/test.js\n' +
|
||||
'@@ -0,0 +1,6 @@\n' +
|
||||
"+var parser = require('./source/git-parser');\n" +
|
||||
'+\n' +
|
||||
"+var text = 'diff --git a/components/app/app.html b/components/app/app.html\\nindex ecb7a95..027bd9b 100644\\n--- a/components/app/app.html\\n+++ b/components/app/app.html\\n@@ -52,0 +53,3 @@\\n+\\n+\\n+\\n@@ -56,0 +60,3 @@\\n+\\n+\\n+\\n'\n" +
|
||||
'+var patchLineList = [ false, false, false, false ];\n' +
|
||||
'+\n' +
|
||||
'+console.log(parser.parsePatchDiffResult(text, patchLineList));\n' +
|
||||
"diff --git a/a.xml b/b.xml\n" +
|
||||
"index e54317e..82a9a56 100644\n" +
|
||||
"--- a/a.xml\n" +
|
||||
"+++ b/b.xml\n" +
|
||||
"@@ -242,4 +242,6 @@ need to create a new job for native server java api and move these tests to a ne\n" +
|
||||
" </packages>\n" +
|
||||
" </test>\n" +
|
||||
" -->\n" +
|
||||
"+\n" +
|
||||
"+\n" +
|
||||
"--- a/sample.js\n" +
|
||||
"+++ b/sample.js\n" +
|
||||
"@@ -1 +1,2 @@\n" +
|
||||
"-test\n" +
|
||||
"+test1r\n" +
|
||||
"+test2r\n";
|
||||
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
||||
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
|
||||
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
|
||||
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
|
||||
|
||||
$(document).ready(function() {
|
||||
var diff2htmlUi = new Diff2HtmlUI({diff: lineDiffExample});
|
||||
ga('create', 'UA-78351861-2', 'auto');
|
||||
ga('send', 'pageview');
|
||||
|
||||
diff2htmlUi.draw('#line-by-line', {inputFormat: 'json', showFiles: true, matching: 'lines'});
|
||||
diff2htmlUi.fileListCloseable('#line-by-line', false);
|
||||
diff2htmlUi.highlightCode('#line-by-line');
|
||||
</script>
|
||||
</head>
|
||||
<body class="swag-line template-index">
|
||||
<div class="container-overflow-wrap">
|
||||
|
||||
diff2htmlUi.draw('#side-by-side', {
|
||||
inputFormat: 'json',
|
||||
showFiles: true,
|
||||
matching: 'lines',
|
||||
outputFormat: 'side-by-side',
|
||||
synchronisedScroll: true
|
||||
});
|
||||
diff2htmlUi.fileListCloseable('#side-by-side', false);
|
||||
diff2htmlUi.highlightCode('#side-by-side');
|
||||
});
|
||||
<div class="container">
|
||||
<nav class="navbar navbar-default navbar-tall navbar-full" role="navigation">
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#global-nav">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
<a class="navbar-brand" href="index.html">diff2html</a>
|
||||
</div>
|
||||
|
||||
<div class="collapse navbar-collapse" id="global-nav">
|
||||
<div class="navbar-right">
|
||||
<ul class="nav navbar-nav">
|
||||
|
||||
<li>
|
||||
<a href="index.html#install">Getting Started</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="index.html#cli">CLI</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="demo.html">Demo</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="https://github.com/rtfpessoa/diff2html#how-to-use" target="_blank">Docs</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="https://github.com/rtfpessoa/diff2html/issues/new" target="_blank">Support</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<div class="hero hero-homepage">
|
||||
<span class="hero-booticon">
|
||||
<span class="hero-green">diff</span><span class="hero-black">2</span><span
|
||||
class="hero-red">html</span>
|
||||
</span>
|
||||
<h1 class="hero-header">Diff parser and pretty html generator</h1>
|
||||
<h4 class="text-muted">Better diffs, unmatched reviews.</h4>
|
||||
<a class="btn btn-lg" href="demo.html">Demo</a>
|
||||
|
||||
<div class="screenshots screenshots-fan clearfix">
|
||||
|
||||
<img class="screenshot hidden-xs" src="img/snapshot-2.png">
|
||||
|
||||
<a class="screenshot" href="demo.html#side-by-side">
|
||||
<img src="img/snapshot-3.png">
|
||||
</a>
|
||||
|
||||
<a class="screenshot hidden-xs" href="demo.html#line-by-line">
|
||||
<img src="img/snapshot-1.png">
|
||||
</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<div class="row row-padded-small row-bordered">
|
||||
<div class="col-sm-8 col-sm-offset-2 text-center">
|
||||
<h2 class="m-b-md">Each diff provides a comprehensive visualization of the code changes,
|
||||
helping developpers identify problems and better understand the changes.</h2>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row row-padded-small homepage-grid row-bordered p-t text-center">
|
||||
<div class="col-sm-4">
|
||||
<span class="svg-icon-large">
|
||||
<svg aria-hidden="true" class="octicon octicon-diff" height="16" version="1.1"
|
||||
viewBox="0 0 14 16" width="14"><path
|
||||
d="M6 7h2v1H6v2h-1V8H3v-1h2V5h1v2zM3 13h5v-1H3v1z m4.5-11l3.5 3.5v9.5c0 0.55-0.45 1-1 1H1c-0.55 0-1-0.45-1-1V3c0-0.55 0.45-1 1-1h6.5z m2.5 4L7 3H1v12h9V6zM8.5 0S3 0 3 0v1h5l4 4v8h1V4.5L8.5 0z"></path></svg>
|
||||
</span>
|
||||
<h5><strong>Line by Line and Side by Side changes</strong></h5>
|
||||
<p class="text-muted">Each diff features a line by line and side by side preview of your
|
||||
changes.</p>
|
||||
</div>
|
||||
|
||||
<div class="col-sm-4">
|
||||
<span class="svg-icon-large">
|
||||
<svg aria-hidden="true" class="octicon octicon-tasklist" height="16" version="1.1"
|
||||
viewBox="0 0 16 16" width="16"><path
|
||||
d="M15.41 9H7.59c-0.59 0-0.59-0.41-0.59-1s0-1 0.59-1h7.81c0.59 0 0.59 0.41 0.59 1s0 1-0.59 1zM9.59 4c-0.59 0-0.59-0.41-0.59-1s0-1 0.59-1h5.81c0.59 0 0.59 0.41 0.59 1s0 1-0.59 1H9.59zM0 3.91l1.41-1.3 1.59 1.59L7.09 0l1.41 1.41-5.5 5.5L0 3.91z m7.59 8.09h7.81c0.59 0 0.59 0.41 0.59 1s0 1-0.59 1H7.59c-0.59 0-0.59-0.41-0.59-1s0-1 0.59-1z"></path></svg>
|
||||
</span>
|
||||
<h5><strong>Code syntax highlight</strong></h5>
|
||||
<p class="text-muted">All the code changes are syntax highlighted using <a
|
||||
href="https://highlightjs.org/">highlight.js</a>,
|
||||
providing more readability.</p>
|
||||
</div>
|
||||
|
||||
<div class="col-sm-4">
|
||||
<span class="svg-icon-large">
|
||||
<svg aria-hidden="true" class="octicon octicon-clippy" height="16" version="1.1"
|
||||
viewBox="0 0 14 16"
|
||||
width="14">
|
||||
<path d="M2 12h4v1H2v-1z m5-6H2v1h5v-1z m2 3V7L6 10l3 3V11h5V9H9z m-4.5-1H2v1h2.5v-1zM2 11h2.5v-1H2v1z m9 1h1v2c-0.02 0.28-0.11 0.52-0.3 0.7s-0.42 0.28-0.7 0.3H1c-0.55 0-1-0.45-1-1V3c0-0.55 0.45-1 1-1h3C4 0.89 4.89 0 6 0s2 0.89 2 2h3c0.55 0 1 0.45 1 1v5h-1V5H1v9h10V12zM2 4h8c0-0.55-0.45-1-1-1h-1c-0.55 0-1-0.45-1-1s-0.45-1-1-1-1 0.45-1 1-0.45 1-1 1h-1c-0.55 0-1 0.45-1 1z"></path>
|
||||
</svg>
|
||||
</span>
|
||||
<h5><strong>Line similarity matching</strong></h5>
|
||||
<p class="text-muted">Similar lines are paired, allowing for easier change tracking.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="install" class="row-padded-small row-centered row-bordered">
|
||||
<div class="col-md-12">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<h3><strong>Install with Bower</strong></h3>
|
||||
<p>You can install and manage diff2html's CSS and JS using Bower:</p>
|
||||
<div class="homepage-code-example">
|
||||
<p><span class="unselectable">> $ </span><span class="text-muted">bower install diff2html</span></p>
|
||||
<span class="btn-clipboard" data-clipboard-text="bower install diff2html" title="Copy">Copy</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<h3><strong>Install with npm</strong></h3>
|
||||
<p>You can also install diff2html using npm:</p>
|
||||
<div class="homepage-code-example">
|
||||
<p><span class="unselectable">> $ </span><span class="text-muted">npm install diff2html</span></p>
|
||||
<span class="btn-clipboard" data-clipboard-text="npm install diff2html" title="Copy">Copy</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row row-padded-small">
|
||||
<div class="col-md-12">
|
||||
<a href="https://github.com/rtfpessoa/diff2html#how-to-use" target="_blank">
|
||||
Find usage examples in the Docs
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="cli" class="row row-padded-small row-centered row-bordered">
|
||||
<div class="col-xs-10 col-xs-offset-1 col-md-6 col-md-offset-0">
|
||||
<h3><strong>With command line integration</strong></h3>
|
||||
<h4 class="m-b-md">We work hard to make sure you can have your diffs in a simple and flexible
|
||||
way. Go <a href="https://github.com/rtfpessoa/diff2html-cli" target="_blank">here full
|
||||
documentation</a>.</h4>
|
||||
</div>
|
||||
<div class="col-xs-10 col-xs-offset-1 col-md-6 col-md-offset-0">
|
||||
<div class="homepage-terminal-example">
|
||||
<p class="m-b-md">
|
||||
<span class="unselectable">> $ </span><span class="text-muted">npm install -g diff2html-cli</span><br>
|
||||
<span class="unselectable">diff2html cli installed!</span>
|
||||
</p>
|
||||
<p class="m-b-md">
|
||||
<span class="unselectable">> $ </span><span class="text-muted">diff2html</span><br>
|
||||
<span class="unselectable">Previous commit changes on your browser</span>
|
||||
</p>
|
||||
<p>
|
||||
<span class="unselectable">> $ <span class="text-muted">is that it?</span><br>
|
||||
Yup, it's that simple.</span>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="users" class="row row-padded-small row-centered row-bordered">
|
||||
<div class="col-md-12">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<h3><strong>Projects using diff2html</strong></h3>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row row-eq-height">
|
||||
<div class="col-md-3 m-b-lg">
|
||||
<div class="panel panel-default panel-profile m-b-0">
|
||||
<div class="panel-body text-center">
|
||||
<h5 class="panel-title">diff2html-cli</h5>
|
||||
<p class="m-b">diff2html from your terminal to the browser.</p>
|
||||
<a href="https://github.com/rtfpessoa/diff2html-cli" target="_blank"
|
||||
class="btn btn-primary-outline btn-sm m-b">
|
||||
<span class="icon icon-add-user"></span> View GitHub
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-3 m-b-lg">
|
||||
<div class="panel panel-default panel-profile m-b-0">
|
||||
<div class="panel-body text-center">
|
||||
<h5 class="panel-title">Codacy</h5>
|
||||
<p class="m-b">Check code style, security, duplication, complexity and coverage on every change.</p>
|
||||
<a href="https://www.codacy.com" target="_blank"
|
||||
class="btn btn-primary-outline btn-sm m-b">
|
||||
<span class="icon icon-add-user"></span> Website
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-3 m-b-lg">
|
||||
<div class="panel panel-default panel-profile m-b-0">
|
||||
<div class="panel-body text-center">
|
||||
<h5 class="panel-title">Ungit</h5>
|
||||
<p class="m-b">The easiest way to use git. On any platform. Anywhere.</p>
|
||||
<a href="https://github.com/FredrikNoren/ungit" target="_blank"
|
||||
class="btn btn-primary-outline btn-sm m-b">
|
||||
<span class="icon icon-add-user"></span> View GitHub
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-3 m-b-lg">
|
||||
<div class="panel panel-default panel-profile m-b-0">
|
||||
<div class="panel-body text-center">
|
||||
<h5 class="panel-title">Diffy</h5>
|
||||
<p class="m-b">Share your diffs and explain your ideas without committing.</p>
|
||||
<a href="https://diffy.org/" target="_blank"
|
||||
class="btn btn-primary-outline btn-sm m-b">
|
||||
<span class="icon icon-add-user"></span> Website
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row row-eq-height">
|
||||
<div class="col-md-3 m-b-lg">
|
||||
<div class="panel panel-default panel-profile m-b-0">
|
||||
<div class="panel-body text-center">
|
||||
<h5 class="panel-title">diff-pane</h5>
|
||||
<p class="m-b">Atom - Diff two panes.</p>
|
||||
<a href="https://github.com/t-ari/diff-pane" target="_blank"
|
||||
class="btn btn-primary-outline btn-sm m-b">
|
||||
<span class="icon icon-add-user"></span> View GitHub
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-3 m-b-lg">
|
||||
<div class="panel panel-default panel-profile m-b-0">
|
||||
<div class="panel-body text-center">
|
||||
<h5 class="panel-title">node-giff</h5>
|
||||
<p class="m-b">Display git diff on browser.</p>
|
||||
<a href="https://github.com/do7be/node-giff" target="_blank"
|
||||
class="btn btn-primary-outline btn-sm m-b">
|
||||
<span class="icon icon-add-user"></span> View GitHub
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-3 m-b-lg">
|
||||
<div class="panel panel-default panel-profile m-b-0">
|
||||
<div class="panel-body text-center">
|
||||
<h5 class="panel-title">edgar-monitor</h5>
|
||||
<p class="m-b">A module that processes new Edgar filings and sends out
|
||||
notifications.</p>
|
||||
<a href="https://github.com/buzzfeed-openlab/edgar-monitor" target="_blank"
|
||||
class="btn btn-primary-outline btn-sm m-b">
|
||||
<span class="icon icon-add-user"></span> View GitHub
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-3 m-b-lg">
|
||||
<div class="panel panel-default panel-profile m-b-0">
|
||||
<div class="panel-body text-center">
|
||||
<h5 class="panel-title">node-git</h5>
|
||||
<p class="m-b">Execute Git Command by Node.js.</p>
|
||||
<a href="https://github.com/liangshuai/node-git" target="_blank"
|
||||
class="btn btn-primary-outline btn-sm m-b">
|
||||
<span class="icon icon-add-user"></span> View GitHub
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-3 m-b-lg">
|
||||
<div class="panel panel-default panel-profile m-b-0">
|
||||
<div class="panel-body text-center">
|
||||
<h5 class="panel-title">Jenkins</h5>
|
||||
<p class="m-b">Show diffs between builds</p>
|
||||
<a href="https://wiki.jenkins-ci.org/display/JENKINS/Last+Changes+Plugin" target="_blank"
|
||||
class="btn btn-primary-outline btn-sm m-b">
|
||||
<span class="icon icon-add-user"></span> Website
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row row-padded-small text-center">
|
||||
<div class="col-sm-8 col-sm-offset-2 text-center">
|
||||
<h3><strong>Open Source</strong></h3>
|
||||
<h4 class="m-b-md">diff2html is open source.
|
||||
If you'd like to be part of the diff2html community or help us improve,
|
||||
find us on <a href="https://github.com/rtfpessoa/diff2html" target="_blank">GitHub</a> and
|
||||
<a href="https://gitter.im/rtfpessoa/diff2html" target="_blank">Gitter</a>. Need any help?
|
||||
</h4>
|
||||
<a class="btn btn-md" href="https://github.com/rtfpessoa/diff2html#how-to-use" target="_blank">
|
||||
Read more in the Docs
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<footer class="footer clearfix">
|
||||
<p class="col-xs-10 col-xs-offset-1">
|
||||
Website originally designed and built by
|
||||
<a href="https://twitter.com/mdo" target="_blank">@mdo</a>,
|
||||
<a href="https://twitter.com/fat" target="_blank">@fat</a>, and
|
||||
<a href="https://twitter.com/dhg" target="_blank">@dhg</a>,
|
||||
adapted with <span class="hero-red">❤</span> by
|
||||
<a href="https://twitter.com/rtfpessoa" target="_blank">@rtfpessoa</a>.
|
||||
</p>
|
||||
<ul class="footer-list col-xs-10 col-xs-offset-1">
|
||||
|
||||
<li class="footer-list-item">
|
||||
<a class="footer-list-link" href="https://github.com/rtfpessoa/diff2html#how-to-use"
|
||||
target="_blank">FAQ</a>
|
||||
</li>
|
||||
|
||||
<li class="footer-list-item">
|
||||
<a class="footer-list-link" href="https://diff2html.xyz">diff2html</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</footer>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- General JavaScript -->
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.3/jquery.min.js"></script>
|
||||
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"
|
||||
integrity="sha384-0mSbJDEHialfmuBBQP6A4Qrprq5OVfW37PRR3j5ELqxss1yVqOtnepnHVP9aJ7xS"
|
||||
crossorigin="anonymous"></script>
|
||||
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "http://schema.org/",
|
||||
"@type": "SoftwareSourceCode",
|
||||
"name": "diff2html",
|
||||
"author": "Rodrigo Fernandes",
|
||||
"image": "https://diff2html.xyz/img/snapshot-3.png",
|
||||
"description": "Diff parser and pretty html generator.",
|
||||
"codeRepository": "https://github.com/rtfpessoa/diff2html",
|
||||
"programmingLanguage": "JavaScript",
|
||||
"runtimePlatform": "Node >= 0.12",
|
||||
"mainEntityOfPage": "https://diff2html.xyz/"
|
||||
}
|
||||
</script>
|
||||
|
||||
</head>
|
||||
<body style="text-align: center; font-family: 'Source Sans Pro',sans-serif;">
|
||||
<h1>Diff to HTML by <a href="https://github.com/rtfpessoa">rtfpessoa</a></h1>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/1.5.10/clipboard.min.js"></script>
|
||||
|
||||
<h2>Line by Line</h2>
|
||||
<script>
|
||||
new Clipboard(document.getElementsByClassName("btn-clipboard"));
|
||||
</script>
|
||||
|
||||
<div id="line-by-line" style="margin: 0 auto; max-width: 900px;">
|
||||
</div>
|
||||
|
||||
<h2>Side by Side</h2>
|
||||
|
||||
<div id="side-by-side" style="margin: 0 auto;">
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
|||
693
docs/main.css
Normal file
693
docs/main.css
Normal file
|
|
@ -0,0 +1,693 @@
|
|||
/*!
|
||||
* Copyright Colossal 2015
|
||||
* Adapted by @rtfpessoa
|
||||
*/
|
||||
|
||||
.m-b-md {
|
||||
margin-bottom: 23px !important
|
||||
}
|
||||
|
||||
.p-t {
|
||||
padding-top: 15px !important
|
||||
}
|
||||
|
||||
@media (min-width: 768px) {
|
||||
p.m-b {
|
||||
height: 75px;
|
||||
}
|
||||
}
|
||||
|
||||
.errors ul {
|
||||
list-style: none;
|
||||
margin: 0;
|
||||
padding: 0
|
||||
}
|
||||
|
||||
.btn {
|
||||
display: inline-block;
|
||||
color: #fff;
|
||||
background: #26A65B;
|
||||
font-weight: 400
|
||||
}
|
||||
|
||||
.btn:hover {
|
||||
color: #fff;
|
||||
background: #5dbe5d;
|
||||
}
|
||||
|
||||
.btn-clipboard {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
z-index: 10;
|
||||
display: block;
|
||||
padding: 5px 8px;
|
||||
font-size: 12px;
|
||||
color: #fff;
|
||||
background-color: #767676;
|
||||
border-radius: 0 4px 0 4px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.btn-clipboard:hover {
|
||||
color: #000;
|
||||
background-color: #dcdfe4;
|
||||
}
|
||||
|
||||
.footer {
|
||||
position: relative;
|
||||
padding: 40px 0;
|
||||
text-align: center;
|
||||
font-size: 14px;
|
||||
border-top: 1px solid #dcdfe4
|
||||
}
|
||||
|
||||
.footer p {
|
||||
margin-bottom: 5px
|
||||
}
|
||||
|
||||
.footer a {
|
||||
color: #26A65B;
|
||||
}
|
||||
|
||||
.container a {
|
||||
color: #26A65B;
|
||||
}
|
||||
|
||||
.container a.btn {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.footer-list-item, .footer-social-buttons li {
|
||||
display: inline-block
|
||||
}
|
||||
|
||||
.footer-list-item:not(:last-child):after {
|
||||
content: "\b7"
|
||||
}
|
||||
|
||||
.footer > ul {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
@media (min-width: 768px) {
|
||||
.footer {
|
||||
padding: 60px 0
|
||||
}
|
||||
}
|
||||
|
||||
label, legend {
|
||||
font-size: 12px;
|
||||
display: block;
|
||||
margin-bottom: 3px;
|
||||
font-weight: 400
|
||||
}
|
||||
|
||||
.form-wrapper input:not(.input-as-link) {
|
||||
width: 100%;
|
||||
box-sizing: border-box;
|
||||
margin-bottom: 15px
|
||||
}
|
||||
|
||||
.form-wrapper .btn {
|
||||
margin-top: 20px
|
||||
}
|
||||
|
||||
@media (min-width: 768px) {
|
||||
}
|
||||
|
||||
@media (min-width: 768px) {
|
||||
.container {
|
||||
width: 710px
|
||||
}
|
||||
|
||||
.row-centered {
|
||||
display: -webkit-box;
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
-webkit-box-align: center;
|
||||
-ms-flex-align: center;
|
||||
align-items: center;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 992px) {
|
||||
.container {
|
||||
width: 890px
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 1200px) {
|
||||
.container {
|
||||
width: 1050px
|
||||
}
|
||||
}
|
||||
|
||||
.row-padded {
|
||||
padding-top: 80px;
|
||||
padding-bottom: 90px
|
||||
}
|
||||
|
||||
.row-bordered {
|
||||
position: relative
|
||||
}
|
||||
|
||||
.row-bordered:before {
|
||||
content: '';
|
||||
display: block;
|
||||
width: 80%;
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
left: 50%;
|
||||
margin-left: -40%;
|
||||
height: 1px;
|
||||
background: -webkit-radial-gradient(center, ellipse, rgba(0, 0, 0, 0.2) 0, rgba(255, 255, 255, 0) 75%);
|
||||
background: -webkit-radial-gradient(center ellipse, rgba(0, 0, 0, 0.2) 0, rgba(255, 255, 255, 0) 75%);
|
||||
background: radial-gradient(ellipse at center, rgba(0, 0, 0, 0.2) 0, rgba(255, 255, 255, 0) 75%)
|
||||
}
|
||||
|
||||
.row .screenshot {
|
||||
margin-bottom: 40px
|
||||
}
|
||||
|
||||
.container-overflow-wrap {
|
||||
overflow: hidden
|
||||
}
|
||||
|
||||
.hero {
|
||||
position: relative;
|
||||
text-align: center;
|
||||
padding: 80px 0;
|
||||
border-bottom: 1px solid #dcdfe4
|
||||
}
|
||||
|
||||
.hero > .hero-header:first-child {
|
||||
margin-top: 0
|
||||
}
|
||||
|
||||
.hero-booticon {
|
||||
font-family: Helvetica Neue, Helvetica, Arial, sans-serif;
|
||||
margin: 0 auto 30px;
|
||||
width: 100%;
|
||||
font-size: 8vw;
|
||||
display: block;
|
||||
font-weight: 500;
|
||||
text-align: center;
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
.hero-homepage.hero {
|
||||
padding-top: 0;
|
||||
padding-bottom: 40px;
|
||||
overflow: hidden;
|
||||
border-bottom: 0;
|
||||
border-bottom: 1px solid #dcdfe4;
|
||||
}
|
||||
|
||||
.hero-homepage > .btn {
|
||||
margin-top: 20px
|
||||
}
|
||||
|
||||
.jumbo-list-item h3 {
|
||||
margin-top: 0
|
||||
}
|
||||
|
||||
.jumbo-list-item.row .screenshot {
|
||||
margin-bottom: 0
|
||||
}
|
||||
|
||||
@media (min-width: 992px) {
|
||||
|
||||
.jumbo-list-item.row .screenshot {
|
||||
margin-bottom: -10px
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
hr {
|
||||
border-width: 0;
|
||||
border-top: 1px solid #dcdfe4;
|
||||
margin: 20px 0 30px
|
||||
}
|
||||
|
||||
.swag-line:before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
display: block;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
height: 5px;
|
||||
z-index: 2;
|
||||
background-color: #26A65B;
|
||||
background: -webkit-linear-gradient(45deg, #28a142, #26A65B);
|
||||
background: linear-gradient(45deg, #28a142, #26A65B)
|
||||
}
|
||||
|
||||
@media (min-width: 768px) {
|
||||
|
||||
}
|
||||
|
||||
.navbar {
|
||||
background-color: #fff;
|
||||
border: 0 #fff;
|
||||
}
|
||||
|
||||
.navbar-header {
|
||||
text-align: center
|
||||
}
|
||||
|
||||
.navbar-brand {
|
||||
height: auto;
|
||||
padding: 19px 25px;
|
||||
font-size: 16px;
|
||||
display: inline-block;
|
||||
float: none;
|
||||
text-align: center;
|
||||
margin: 5px 0 0
|
||||
}
|
||||
|
||||
.navbar-nav {
|
||||
margin-right: -15px
|
||||
}
|
||||
|
||||
.navbar-nav > li > a {
|
||||
font-size: 14px
|
||||
}
|
||||
|
||||
.navbar-default .navbar-brand, .navbar-default .navbar-brand:focus, .navbar-default .navbar-brand:hover, .navbar-default .navbar-nav > li > a, .navbar-default .navbar-nav > li > a:focus, .navbar-default .navbar-nav > li > a:hover {
|
||||
background: transparent;
|
||||
color: #293a46;
|
||||
font-weight: 300
|
||||
}
|
||||
|
||||
.navbar-default .navbar-toggle {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 7px;
|
||||
border-color: #fff;
|
||||
color: #293a46;
|
||||
margin-right: 0
|
||||
}
|
||||
|
||||
.navbar-default .navbar-toggle:hover, .navbar-default .navbar-toggle:focus {
|
||||
background: #f9f9f9;
|
||||
border-color: #f9f9f9
|
||||
}
|
||||
|
||||
.navbar-minimal .navbar-header {
|
||||
text-align: center !important;
|
||||
float: none !important
|
||||
}
|
||||
|
||||
.navbar-default .navbar-form a.btn {
|
||||
margin-left: 10px
|
||||
}
|
||||
|
||||
.navbar-fixed-bottom .navbar-nav, .navbar-fixed-bottom .navbar-header {
|
||||
display: none
|
||||
}
|
||||
|
||||
.navbar-fixed-bottom .navbar-nav > .open > a, .navbar-fixed-bottom .navbar-nav > .open > a:focus, .navbar-fixed-bottom .navbar-nav > .open > a:hover {
|
||||
color: inherit;
|
||||
background-color: inherit
|
||||
}
|
||||
|
||||
.navbar-fixed-bottom .dropdown-menu > li > a {
|
||||
font-weight: 300;
|
||||
padding: 8px 24px
|
||||
}
|
||||
|
||||
.navbar-fixed-bottom small {
|
||||
font-size: 70%
|
||||
}
|
||||
|
||||
.navbar-fixed-bottom .navbar-brand {
|
||||
padding: 16px 25px
|
||||
}
|
||||
|
||||
@media (min-width: 768px) {
|
||||
.navbar-full .navbar-brand {
|
||||
margin-left: -25px
|
||||
}
|
||||
|
||||
.navbar-tall {
|
||||
height: 125px
|
||||
}
|
||||
|
||||
.navbar-tall .navbar-header, .navbar-tall .navbar-nav {
|
||||
line-height: 125px;
|
||||
text-align: left
|
||||
}
|
||||
|
||||
.navbar-brand {
|
||||
float: none;
|
||||
display: inline-block;
|
||||
text-align: left;
|
||||
margin: 0
|
||||
}
|
||||
|
||||
.navbar-nav > li > a {
|
||||
display: inline-block;
|
||||
margin-left: 13px
|
||||
}
|
||||
|
||||
.navbar-nav > li:first-child > a {
|
||||
margin-left: 0
|
||||
}
|
||||
|
||||
.navbar-fixed-bottom .navbar-nav, .navbar-fixed-bottom .navbar-header {
|
||||
display: block
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
.screenshot {
|
||||
display: block;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.screenshot > img {
|
||||
width: 100%
|
||||
}
|
||||
|
||||
.screenshots-fan {
|
||||
margin-top: 50px
|
||||
}
|
||||
|
||||
.screenshots-fan .screenshot {
|
||||
position: relative;
|
||||
width: auto;
|
||||
display: inline-block;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.screenshots-fan .screenshot:last-child, .screenshots-fan .screenshot:first-child {
|
||||
z-index: 2
|
||||
}
|
||||
|
||||
.screenshots-fan .screenshot, .screenshots-fanWithDevices .screenshot:last-child {
|
||||
z-index: 3
|
||||
}
|
||||
|
||||
.screenshot-crop > img {
|
||||
position: absolute;
|
||||
top: 0
|
||||
}
|
||||
|
||||
@media (min-width: 768px) {
|
||||
.screenshots-fan {
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
margin-top: 60px;
|
||||
height: 200px
|
||||
}
|
||||
|
||||
.screenshots-fan .screenshot {
|
||||
height: auto;
|
||||
top: 10px;
|
||||
width: 350px
|
||||
}
|
||||
|
||||
.screenshots-fan .screenshot:first-child, .screenshots-fan .screenshot:last-child {
|
||||
width: 250px;
|
||||
position: absolute;
|
||||
top: 65px
|
||||
}
|
||||
|
||||
.screenshots-fan .screenshot:first-child {
|
||||
left: 10px
|
||||
}
|
||||
|
||||
.screenshots-fan .screenshot:last-child {
|
||||
left: auto;
|
||||
right: 10px
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 992px) {
|
||||
.screenshots-fan {
|
||||
margin-top: 60px;
|
||||
height: 240px
|
||||
}
|
||||
|
||||
.screenshots-fan .screenshot {
|
||||
width: 400px
|
||||
}
|
||||
|
||||
.screenshots-fan .screenshot:first-child, .screenshots-fan .screenshot:last-child {
|
||||
width: 300px
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 1200px) {
|
||||
.screenshots-fan {
|
||||
margin-top: 80px;
|
||||
height: 380px
|
||||
}
|
||||
|
||||
.screenshots-fan .screenshot {
|
||||
width: 550px
|
||||
}
|
||||
|
||||
.screenshots-fan .screenshot:first-child, .screenshots-fan .screenshot:last-child {
|
||||
width: 450px
|
||||
}
|
||||
}
|
||||
|
||||
.table {
|
||||
width: 100%
|
||||
}
|
||||
|
||||
.table > tbody > tr > td:last-child {
|
||||
text-align: right
|
||||
}
|
||||
|
||||
.table > thead > tr > th {
|
||||
font-size: 12px;
|
||||
font-weight: 400;
|
||||
text-align: left
|
||||
}
|
||||
|
||||
.table > thead > tr > th, .table > tbody > tr > td {
|
||||
padding: 20px;
|
||||
text-align: left;
|
||||
border-bottom: 1px solid #dcdfe4
|
||||
}
|
||||
|
||||
.table > thead > tr > th:first-child, .table > tbody > tr > td:first-child {
|
||||
padding-left: 0
|
||||
}
|
||||
|
||||
.table > thead > tr > th:last-child, .table > tbody > tr > td:last-child {
|
||||
padding-right: 0
|
||||
}
|
||||
|
||||
.thumbnail-mini p {
|
||||
line-height: 1.6
|
||||
}
|
||||
|
||||
body {
|
||||
font-size: 16px;
|
||||
font-family: Roboto, sans-serif;
|
||||
font-weight: 300;
|
||||
line-height: 1.6
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 26px;
|
||||
font-weight: 300
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 18px;
|
||||
font-weight: 300
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-size: 26px;
|
||||
font-weight: 300
|
||||
}
|
||||
|
||||
h4 {
|
||||
font-size: 16px;
|
||||
font-weight: 300
|
||||
}
|
||||
|
||||
h5 {
|
||||
font-size: 16px;
|
||||
font-weight: 400
|
||||
}
|
||||
|
||||
h1, h2, h3, h4, h5 {
|
||||
line-height: 1.4
|
||||
}
|
||||
|
||||
h1, h2 {
|
||||
margin: 10px 0
|
||||
}
|
||||
|
||||
h5 {
|
||||
margin: 6px 0
|
||||
}
|
||||
|
||||
@media (min-width: 768px) {
|
||||
body {
|
||||
font-size: 16px;
|
||||
font-family: Roboto, sans-serif;
|
||||
font-weight: 300;
|
||||
line-height: 1.6
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 38px;
|
||||
font-weight: 300
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 26px;
|
||||
font-weight: 300;
|
||||
line-height: 1.4
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-size: 26px;
|
||||
font-weight: 300
|
||||
}
|
||||
|
||||
h4 {
|
||||
font-size: 18px;
|
||||
font-weight: 300
|
||||
}
|
||||
|
||||
h5 {
|
||||
font-size: 16px;
|
||||
font-weight: 400
|
||||
}
|
||||
}
|
||||
|
||||
body {
|
||||
color: #293a46;
|
||||
}
|
||||
|
||||
a {
|
||||
text-decoration: none;
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
a:hover, a:focus {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.nav li a {
|
||||
text-decoration: none;
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
.nav li a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.text-muted {
|
||||
color: #697176
|
||||
}
|
||||
|
||||
.popup-item p:last-child {
|
||||
margin-bottom: 5px
|
||||
}
|
||||
|
||||
.template-index h3 {
|
||||
font-size: 21px;
|
||||
margin-bottom: 12px
|
||||
}
|
||||
|
||||
.template-index h4 {
|
||||
color: #697176;
|
||||
line-height: 1.6
|
||||
}
|
||||
|
||||
.template-index h4 a, .template-index p a {
|
||||
color: #26A65B;
|
||||
}
|
||||
|
||||
.template-index h5 {
|
||||
font-size: 17px;
|
||||
margin-bottom: 8px
|
||||
}
|
||||
|
||||
.homepage-grid h3 {
|
||||
font-size: 22px
|
||||
}
|
||||
|
||||
.homepage-terminal-example, .homepage-code-example {
|
||||
position: relative;
|
||||
font-family: monospace;
|
||||
background: #272b38;
|
||||
color: #48d8a0;
|
||||
border-radius: 8px;
|
||||
padding: 30px
|
||||
}
|
||||
|
||||
.homepage-terminal-example .text-muted,
|
||||
.homepage-code-example .text-muted {
|
||||
color: #6a7490
|
||||
}
|
||||
|
||||
@media (min-width: 768px) {
|
||||
.homepage-terminal-example {
|
||||
padding: 50px;
|
||||
}
|
||||
|
||||
.homepage-code-example {
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
.homepage-code-example > p {
|
||||
margin: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.homepage-xs-grid > div {
|
||||
padding-left: 30px;
|
||||
padding-right: 30px;
|
||||
margin-bottom: 50px
|
||||
}
|
||||
|
||||
.homepage-xs-grid h3 {
|
||||
font-size: 22px
|
||||
}
|
||||
|
||||
.hero-green {
|
||||
color: #26A65B;
|
||||
}
|
||||
|
||||
.hero-black {
|
||||
color: #353535;
|
||||
}
|
||||
|
||||
.hero-red {
|
||||
color: #CB2C37;
|
||||
}
|
||||
|
||||
.svg-icon-large {
|
||||
width: 50px;
|
||||
display: block;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
.svg-icon-large > svg {
|
||||
width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
.row-padded-small {
|
||||
padding: 40px 0;
|
||||
}
|
||||
|
||||
*.unselectable {
|
||||
-webkit-touch-callout: none;
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
}
|
||||
1
docs/robots.txt
Normal file
1
docs/robots.txt
Normal file
|
|
@ -0,0 +1 @@
|
|||
User-agent: *
|
||||
16
docs/sitemap.xml
Normal file
16
docs/sitemap.xml
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<urlset
|
||||
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9
|
||||
http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">
|
||||
<url>
|
||||
<loc>https://diff2html.xyz/</loc>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://diff2html.xyz/index.html</loc>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://diff2html.xyz/demo.html</loc>
|
||||
</url>
|
||||
</urlset>
|
||||
|
|
@ -37,6 +37,7 @@
|
|||
"preferGlobal": true,
|
||||
"scripts": {
|
||||
"release": "./scripts/release.sh",
|
||||
"release-website": "node ./scripts/release-website.js",
|
||||
"release-bower": "./scripts/update-bower-version.sh",
|
||||
"templates": "./scripts/hulk.js --wrapper node --variable 'browserTemplates' ./src/templates/*.mustache > ./src/templates/diff2html-templates.js",
|
||||
"style": "eslint src/*.js src/ui/js/*.js",
|
||||
|
|
@ -44,7 +45,7 @@
|
|||
"check-coverage": "istanbul check-coverage --statements 90 --functions 90 --branches 85 --lines 90 ./coverage/coverage.json",
|
||||
"test": "npm run coverage && npm run check-coverage",
|
||||
"codacy": "npm run coverage && cat ./coverage/lcov.info | codacy-coverage",
|
||||
"preversion": "npm run release && npm test",
|
||||
"preversion": "npm run release && npm run release-website && npm test",
|
||||
"version": "npm run release-bower && git add -A src dist package.json bower.json",
|
||||
"postversion": "git push && git push --tags"
|
||||
},
|
||||
|
|
|
|||
28
scripts/release-website.js
Normal file
28
scripts/release-website.js
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
var fs = require('fs');
|
||||
|
||||
var hogan = require('hogan.js');
|
||||
|
||||
var template = hogan.compile(readFile('website/templates/template.mustache'));
|
||||
|
||||
var index = readFile('website/templates/index.partial.html');
|
||||
var indexScripts = readFile('website/templates/index-scripts.partial.html');
|
||||
|
||||
var demo = readFile('website/templates/demo.partial.html');
|
||||
var demoAssets = readFile('website/templates/demo-assets.partial.html');
|
||||
var demoScripts = readFile('website/templates/demo-scripts.partial.html');
|
||||
|
||||
var indexHtml = template.render({assets: '', scripts: indexScripts, content: index});
|
||||
|
||||
writeFile('docs/index.html', indexHtml);
|
||||
|
||||
var demoHtml = template.render({assets: demoAssets, scripts: demoScripts, content: demo});
|
||||
|
||||
writeFile('docs/demo.html', demoHtml);
|
||||
|
||||
function readFile(filePath) {
|
||||
return fs.readFileSync(filePath, 'utf8');
|
||||
}
|
||||
|
||||
function writeFile(filePath, content) {
|
||||
return fs.writeFileSync(filePath, content);
|
||||
}
|
||||
5
website/templates/demo-assets.partial.html
Normal file
5
website/templates/demo-assets.partial.html
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.6.0/styles/github.min.css">
|
||||
|
||||
<!-- diff2html -->
|
||||
<link rel="stylesheet" type="text/css" href="assets/diff2html.css">
|
||||
<!-- -->
|
||||
264
website/templates/demo-scripts.partial.html
Normal file
264
website/templates/demo-scripts.partial.html
Normal file
|
|
@ -0,0 +1,264 @@
|
|||
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.6.0/highlight.min.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.6.0/languages/scala.min.js"></script>
|
||||
|
||||
<!-- diff2html -->
|
||||
<script type="text/javascript" src="assets/diff2html.js"></script>
|
||||
<script type="text/javascript" src="assets/diff2html-ui.js"></script>
|
||||
<!-- -->
|
||||
|
||||
<script>
|
||||
var lineDiffExample =
|
||||
"--- a/src/my/really/big/path/sample.js\n" +
|
||||
"+++ b/src/my/small/path/sample.js\n" +
|
||||
"@@ -1 +1,2 @@\n" +
|
||||
"-test\n" +
|
||||
"+test1r\n" +
|
||||
"+test2r\n" +
|
||||
'diff --git a/src/core/init.java b/src/core/init.java\n' +
|
||||
'index e49196a..50f310c 100644\n' +
|
||||
'--- a/src/core/init.java\n' +
|
||||
'+++ b/src/core/init.java\n' +
|
||||
'@@ -101,7 +101,7 @@\n' +
|
||||
' /**\n' +
|
||||
' * Setter for property filesize.\n' +
|
||||
' *\n' +
|
||||
" * @param filesize value of property 'filesize'.\n" +
|
||||
' */\n' +
|
||||
' public void setFilesize(int filesize) {\n' +
|
||||
'- this.filesizeOld = filesizeOld;\n' +
|
||||
'+ this.filesizeNew = filesizeNew;\n' +
|
||||
' }\n' +
|
||||
'diff --git a/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/coverage.init b/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/coverage.init\n' +
|
||||
'index fc56817..e8e7e49 100644\n' +
|
||||
'--- a/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/coverage.init\n' +
|
||||
'+++ b/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/src/very/long/file/path/coverage.init\n' +
|
||||
'@@ -19,7 +19,7 @@\n' +
|
||||
' -opt "\-nostart"\n' +
|
||||
' \n' +
|
||||
' # skip stopenv\n' +
|
||||
'--do "runbvt,stopenv,getlogs,pullcoveragedata,stopenv,getlogs,pullcoveragedata,stopenv,getlogs,pullcoveragedata,stopenv,getlogs,pullcoveragedata,stopenv,getlogs,pullcoveragedata,stopenv,getlogs,pullcoveragedata,stopenv,getlogs,pullcoveragedata,stopenv,getlogs,pullcoveragedata,stopenv,getlogs,pullcoveragedata,stopenv,getlogs,pullcoveragedata"\n' +
|
||||
'+-do "runbvt,getlogs,pullcoveragedata"\n' +
|
||||
' \n' +
|
||||
' ##########################################\n' +
|
||||
' # logs files to bring back to base\n' +
|
||||
'diff --git a/src/attributes/attr.js b/src/attributes/attr.js\n' +
|
||||
'index facdd41..b627fe8 100644\n' +
|
||||
'--- a/src/attributes/attr.js\n' +
|
||||
'+++ b/src/attributes/attr.js\n' +
|
||||
'@@ -1,11 +1,10 @@\n' +
|
||||
' define([\n' +
|
||||
' "../core",\n' +
|
||||
' "../var/rnotwhite",\n' +
|
||||
'- "../var/strundefined",\n' +
|
||||
' "../core/access",\n' +
|
||||
' "./support",\n' +
|
||||
' "../selector"\n' +
|
||||
'-], function( jQuery, rnotwhite, strundefined, access, support ) {\n' +
|
||||
'+], function( jQuery, rnotwhite, access, support ) {\n' +
|
||||
' \n' +
|
||||
' var nodeHook, boolHook,\n' +
|
||||
' attrHandle = jQuery.expr.attrHandle;\n' +
|
||||
'@@ -33,7 +32,7 @@ jQuery.extend({\n' +
|
||||
' }\n' +
|
||||
' \n' +
|
||||
' // Fallback to prop when attributes are not supported\n' +
|
||||
'- if ( typeof elem.getAttribute === strundefined ) {\n' +
|
||||
'+ if ( !elem.getAttribute ) {\n' +
|
||||
' return jQuery.prop( elem, name, value );\n' +
|
||||
' }\n' +
|
||||
' \n' +
|
||||
'diff --git a/src/attributes/classes.js b/src/attributes/classes.js\n' +
|
||||
'index c617824..c8d1393 100644\n' +
|
||||
'--- a/src/attributes/classes.js\n' +
|
||||
'+++ b/src/attributes/classes.js\n' +
|
||||
'@@ -1,10 +1,9 @@\n' +
|
||||
' define([\n' +
|
||||
' "../core",\n' +
|
||||
' "../var/rnotwhite",\n' +
|
||||
'- "../var/strundefined",\n' +
|
||||
' "../data/var/dataPriv",\n' +
|
||||
' "../core/init"\n' +
|
||||
'-], function( jQuery, rnotwhite, strundefined, dataPriv ) {\n' +
|
||||
'+], function( jQuery, rnotwhite, dataPriv ) {\n' +
|
||||
' \n' +
|
||||
' var rclass = /[\\t\\r\\n\\f]/g;\n' +
|
||||
' \n' +
|
||||
'@@ -128,7 +127,7 @@ jQuery.fn.extend({\n' +
|
||||
' }\n' +
|
||||
' \n' +
|
||||
' // Toggle whole class name\n' +
|
||||
'- } else if ( type === strundefined || type === "boolean" ) {\n' +
|
||||
'+ } else if ( value === undefined || type === "boolean" ) {\n' +
|
||||
' if ( this.className ) {\n' +
|
||||
' // store className if set\n' +
|
||||
' dataPriv.set( this, "__className__", this.className );\n' +
|
||||
'diff --git a/src/core/init.js b/src/core/init.js\n' +
|
||||
'index e49196a..50f310c 100644\n' +
|
||||
'--- a/src/core/init.js\n' +
|
||||
'+++ b/src/core/init.js\n' +
|
||||
'@@ -101,7 +101,7 @@ var rootjQuery,\n' +
|
||||
' // HANDLE: $(function)\n' +
|
||||
' // Shortcut for document ready\n' +
|
||||
' } else if ( jQuery.isFunction( selector ) ) {\n' +
|
||||
'- return typeof rootjQuery.ready !== "undefined" ?\n' +
|
||||
'+ return rootjQuery.ready !== undefined ?\n' +
|
||||
' rootjQuery.ready( selector ) :\n' +
|
||||
' // Execute immediately if ready is not present\n' +
|
||||
' selector( jQuery );\n' +
|
||||
'diff --git a/src/event.js b/src/event.js\n' +
|
||||
'index 7336f4d..6183f70 100644\n' +
|
||||
'--- a/src/event.js\n' +
|
||||
'+++ b/src/event.js\n' +
|
||||
'@@ -1,6 +1,5 @@\n' +
|
||||
' define([\n' +
|
||||
' "./core",\n' +
|
||||
'- "./var/strundefined",\n' +
|
||||
' "./var/rnotwhite",\n' +
|
||||
' "./var/hasOwn",\n' +
|
||||
' "./var/slice",\n' +
|
||||
'@@ -10,7 +9,7 @@ define([\n' +
|
||||
' "./core/init",\n' +
|
||||
' "./data/accepts",\n' +
|
||||
' "./selector"\n' +
|
||||
'-], function( jQuery, strundefined, rnotwhite, hasOwn, slice, support, dataPriv ) {\n' +
|
||||
'+], function( jQuery, rnotwhite, hasOwn, slice, support, dataPriv ) {\n' +
|
||||
' \n' +
|
||||
' var\n' +
|
||||
' rkeyEvent = /^key/,\n' +
|
||||
'@@ -72,7 +71,7 @@ jQuery.event = {\n' +
|
||||
' eventHandle = elemData.handle = function( e ) {\n' +
|
||||
' // Discard the second event of a jQuery.event.trigger() and\n' +
|
||||
' // when an event is called after a page has unloaded\n' +
|
||||
'- return typeof jQuery !== strundefined && jQuery.event.triggered !== e.type ?\n' +
|
||||
'+ return typeof jQuery !== "undefined" && jQuery.event.triggered !== e.type ?\n' +
|
||||
' jQuery.event.dispatch.apply( elem, arguments ) : undefined;\n' +
|
||||
' };\n' +
|
||||
' }\n' +
|
||||
'diff --git a/src/exports/global.js b/src/exports/global.js\n' +
|
||||
'index 6513287..1db4144 100644\n' +
|
||||
'--- a/src/exports/global.js\n' +
|
||||
'+++ b/src/exports/global.js\n' +
|
||||
'@@ -1,7 +1,9 @@\n' +
|
||||
' define([\n' +
|
||||
'- "../core",\n' +
|
||||
'- "../var/strundefined"\n' +
|
||||
'-], function( jQuery, strundefined ) {\n' +
|
||||
'+ "../core"\n' +
|
||||
'+], function( jQuery ) {\n' +
|
||||
'+\n' +
|
||||
'+/* exported noGlobal */\n' +
|
||||
'+/* global noGlobal: false */\n' +
|
||||
' \n' +
|
||||
' var\n' +
|
||||
' // Map over jQuery in case of overwrite\n' +
|
||||
'@@ -25,7 +27,7 @@ jQuery.noConflict = function( deep ) {\n' +
|
||||
' // Expose jQuery and $ identifiers, even in AMD\n' +
|
||||
' // (#7102#comment:10, https://github.com/jquery/jquery/pull/557)\n' +
|
||||
' // and CommonJS for browser emulators (#13566)\n' +
|
||||
'-if ( typeof noGlobal === strundefined ) {\n' +
|
||||
'+if ( !noGlobal ) {\n' +
|
||||
' window.jQuery = window.$ = jQuery;\n' +
|
||||
' }\n' +
|
||||
' \n' +
|
||||
'diff --git a/src/offset.js b/src/offset.js\n' +
|
||||
'index cc6ffb4..fa51f18 100644\n' +
|
||||
'--- a/src/offset.js\n' +
|
||||
'+++ b/src/offset.js\n' +
|
||||
'@@ -1,6 +1,5 @@\n' +
|
||||
' define([\n' +
|
||||
' "./core",\n' +
|
||||
'- "./var/strundefined",\n' +
|
||||
' "./core/access",\n' +
|
||||
' "./css/var/rnumnonpx",\n' +
|
||||
' "./css/curCSS",\n' +
|
||||
'@@ -10,7 +9,7 @@ define([\n' +
|
||||
' "./core/init",\n' +
|
||||
' "./css",\n' +
|
||||
' "./selector" // contains\n' +
|
||||
'-], function( jQuery, strundefined, access, rnumnonpx, curCSS, addGetHookIf, support ) {\n' +
|
||||
'+], function( jQuery, access, rnumnonpx, curCSS, addGetHookIf, support ) {\n' +
|
||||
' \n' +
|
||||
' var docElem = window.document.documentElement;\n' +
|
||||
' \n' +
|
||||
'@@ -99,7 +98,7 @@ jQuery.fn.extend({\n' +
|
||||
' \n' +
|
||||
' // Support: BlackBerry 5, iOS 3 (original iPhone)\n' +
|
||||
' // If we dont have gBCR, just use 0,0 rather than error\n' +
|
||||
'- if ( typeof elem.getBoundingClientRect !== strundefined ) {\n' +
|
||||
'+ if ( elem.getBoundingClientRect !== undefined ) {\n' +
|
||||
' box = elem.getBoundingClientRect();\n' +
|
||||
' }\n' +
|
||||
' win = getWindow( doc );\n' +
|
||||
'diff --git a/src/var/strundefined.js b/src/var/strundefined.js\n' +
|
||||
'deleted file mode 100644\n' +
|
||||
'index 04e16b0..0000000\n' +
|
||||
'--- a/src/var/strundefined.js\n' +
|
||||
'+++ /dev/null\n' +
|
||||
'@@ -1,3 +0,0 @@\n' +
|
||||
'-define(function() {\n' +
|
||||
'- return typeof undefined;\n' +
|
||||
'-});\n' +
|
||||
'diff --git a/components/textdiff/textdiff.html b/components/textdiff/textdiff.html\n' +
|
||||
'index a3484bf..82209af 100644\n' +
|
||||
'--- a/components/textdiff/textdiff.html\n' +
|
||||
'+++ b/components/textdiff/textdiff.html\n' +
|
||||
'@@ -1,6 +1,8 @@\n' +
|
||||
' <!-- ko if: isShowingDiffs -->\n' +
|
||||
' <div>\n' +
|
||||
'- <div data-bind="event: { load: setDom($element) }"></div>\n' +
|
||||
'+ <!-- ko if: isParsed -->\n' +
|
||||
'+ <div data-bind="template: {nodes: ko.utils.parseHtmlFragment(htmlSrc())}"></div>\n' +
|
||||
'+ <!-- /ko -->\n' +
|
||||
' <div class="btn-load-more" data-bind="visible: loadMoreCount() > 0">\n' +
|
||||
' </div>\n' +
|
||||
'diff --git a/test.js b/test.js\n' +
|
||||
'new file mode 100644\n' +
|
||||
'index 0000000..e1e22ec\n' +
|
||||
'--- /dev/null\n' +
|
||||
'+++ b/test.js\n' +
|
||||
'@@ -0,0 +1,6 @@\n' +
|
||||
"+var parser = require('./source/git-parser');\n" +
|
||||
'+\n' +
|
||||
"+var text = 'diff --git a/components/app/app.html b/components/app/app.html\\nindex ecb7a95..027bd9b 100644\\n--- a/components/app/app.html\\n+++ b/components/app/app.html\\n@@ -52,0 +53,3 @@\\n+\\n+\\n+\\n@@ -56,0 +60,3 @@\\n+\\n+\\n+\\n'\n" +
|
||||
'+var patchLineList = [ false, false, false, false ];\n' +
|
||||
'+\n' +
|
||||
'+console.log(parser.parsePatchDiffResult(text, patchLineList));\n' +
|
||||
"diff --git a/a.xml b/b.xml\n" +
|
||||
"index e54317e..82a9a56 100644\n" +
|
||||
"--- a/a.xml\n" +
|
||||
"+++ b/b.xml\n" +
|
||||
"@@ -242,4 +242,6 @@ need to create a new job for native server java api and move these tests to a ne\n" +
|
||||
" </packages>\n" +
|
||||
" </test>\n" +
|
||||
" -->\n" +
|
||||
"+\n" +
|
||||
"+\n" +
|
||||
"--- a/sample.js\n" +
|
||||
"+++ b/sample.js\n" +
|
||||
"@@ -1 +1,2 @@\n" +
|
||||
"-test\n" +
|
||||
"+test1r\n" +
|
||||
"+test2r\n";
|
||||
|
||||
$(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);
|
||||
diff2htmlUi.highlightCode('#line-by-line');
|
||||
|
||||
diff2htmlUi.draw('#side-by-side', {
|
||||
inputFormat: 'json',
|
||||
showFiles: true,
|
||||
matching: 'lines',
|
||||
outputFormat: 'side-by-side',
|
||||
synchronisedScroll: true
|
||||
});
|
||||
diff2htmlUi.fileListCloseable('#side-by-side', false);
|
||||
diff2htmlUi.highlightCode('#side-by-side');
|
||||
});
|
||||
</script>
|
||||
9
website/templates/demo.partial.html
Normal file
9
website/templates/demo.partial.html
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
<h1>Line by Line</h1>
|
||||
|
||||
<div id="line-by-line" style="margin: 0 auto;">
|
||||
</div>
|
||||
|
||||
<h1>Side by Side</h1>
|
||||
|
||||
<div id="side-by-side" style="margin: 0 auto;">
|
||||
</div>
|
||||
5
website/templates/index-scripts.partial.html
Normal file
5
website/templates/index-scripts.partial.html
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
<script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/1.5.10/clipboard.min.js"></script>
|
||||
|
||||
<script>
|
||||
new Clipboard(document.getElementsByClassName("btn-clipboard"));
|
||||
</script>
|
||||
264
website/templates/index.partial.html
Normal file
264
website/templates/index.partial.html
Normal file
|
|
@ -0,0 +1,264 @@
|
|||
<div class="hero hero-homepage">
|
||||
<span class="hero-booticon">
|
||||
<span class="hero-green">diff</span><span class="hero-black">2</span><span
|
||||
class="hero-red">html</span>
|
||||
</span>
|
||||
<h1 class="hero-header">Diff parser and pretty html generator</h1>
|
||||
<h4 class="text-muted">Better diffs, unmatched reviews.</h4>
|
||||
<a class="btn btn-lg" href="demo.html">Demo</a>
|
||||
|
||||
<div class="screenshots screenshots-fan clearfix">
|
||||
|
||||
<img class="screenshot hidden-xs" src="img/snapshot-2.png">
|
||||
|
||||
<a class="screenshot" href="demo.html#side-by-side">
|
||||
<img src="img/snapshot-3.png">
|
||||
</a>
|
||||
|
||||
<a class="screenshot hidden-xs" href="demo.html#line-by-line">
|
||||
<img src="img/snapshot-1.png">
|
||||
</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<div class="row row-padded-small row-bordered">
|
||||
<div class="col-sm-8 col-sm-offset-2 text-center">
|
||||
<h2 class="m-b-md">Each diff provides a comprehensive visualization of the code changes,
|
||||
helping developpers identify problems and better understand the changes.</h2>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row row-padded-small homepage-grid row-bordered p-t text-center">
|
||||
<div class="col-sm-4">
|
||||
<span class="svg-icon-large">
|
||||
<svg aria-hidden="true" class="octicon octicon-diff" height="16" version="1.1"
|
||||
viewBox="0 0 14 16" width="14"><path
|
||||
d="M6 7h2v1H6v2h-1V8H3v-1h2V5h1v2zM3 13h5v-1H3v1z m4.5-11l3.5 3.5v9.5c0 0.55-0.45 1-1 1H1c-0.55 0-1-0.45-1-1V3c0-0.55 0.45-1 1-1h6.5z m2.5 4L7 3H1v12h9V6zM8.5 0S3 0 3 0v1h5l4 4v8h1V4.5L8.5 0z"></path></svg>
|
||||
</span>
|
||||
<h5><strong>Line by Line and Side by Side changes</strong></h5>
|
||||
<p class="text-muted">Each diff features a line by line and side by side preview of your
|
||||
changes.</p>
|
||||
</div>
|
||||
|
||||
<div class="col-sm-4">
|
||||
<span class="svg-icon-large">
|
||||
<svg aria-hidden="true" class="octicon octicon-tasklist" height="16" version="1.1"
|
||||
viewBox="0 0 16 16" width="16"><path
|
||||
d="M15.41 9H7.59c-0.59 0-0.59-0.41-0.59-1s0-1 0.59-1h7.81c0.59 0 0.59 0.41 0.59 1s0 1-0.59 1zM9.59 4c-0.59 0-0.59-0.41-0.59-1s0-1 0.59-1h5.81c0.59 0 0.59 0.41 0.59 1s0 1-0.59 1H9.59zM0 3.91l1.41-1.3 1.59 1.59L7.09 0l1.41 1.41-5.5 5.5L0 3.91z m7.59 8.09h7.81c0.59 0 0.59 0.41 0.59 1s0 1-0.59 1H7.59c-0.59 0-0.59-0.41-0.59-1s0-1 0.59-1z"></path></svg>
|
||||
</span>
|
||||
<h5><strong>Code syntax highlight</strong></h5>
|
||||
<p class="text-muted">All the code changes are syntax highlighted using <a
|
||||
href="https://highlightjs.org/">highlight.js</a>,
|
||||
providing more readability.</p>
|
||||
</div>
|
||||
|
||||
<div class="col-sm-4">
|
||||
<span class="svg-icon-large">
|
||||
<svg aria-hidden="true" class="octicon octicon-clippy" height="16" version="1.1"
|
||||
viewBox="0 0 14 16"
|
||||
width="14">
|
||||
<path d="M2 12h4v1H2v-1z m5-6H2v1h5v-1z m2 3V7L6 10l3 3V11h5V9H9z m-4.5-1H2v1h2.5v-1zM2 11h2.5v-1H2v1z m9 1h1v2c-0.02 0.28-0.11 0.52-0.3 0.7s-0.42 0.28-0.7 0.3H1c-0.55 0-1-0.45-1-1V3c0-0.55 0.45-1 1-1h3C4 0.89 4.89 0 6 0s2 0.89 2 2h3c0.55 0 1 0.45 1 1v5h-1V5H1v9h10V12zM2 4h8c0-0.55-0.45-1-1-1h-1c-0.55 0-1-0.45-1-1s-0.45-1-1-1-1 0.45-1 1-0.45 1-1 1h-1c-0.55 0-1 0.45-1 1z"></path>
|
||||
</svg>
|
||||
</span>
|
||||
<h5><strong>Line similarity matching</strong></h5>
|
||||
<p class="text-muted">Similar lines are paired, allowing for easier change tracking.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="install" class="row-padded-small row-centered row-bordered">
|
||||
<div class="col-md-12">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<h3><strong>Install with Bower</strong></h3>
|
||||
<p>You can install and manage diff2html's CSS and JS using Bower:</p>
|
||||
<div class="homepage-code-example">
|
||||
<p><span class="unselectable">> $ </span><span class="text-muted">bower install diff2html</span></p>
|
||||
<span class="btn-clipboard" data-clipboard-text="bower install diff2html" title="Copy">Copy</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<h3><strong>Install with npm</strong></h3>
|
||||
<p>You can also install diff2html using npm:</p>
|
||||
<div class="homepage-code-example">
|
||||
<p><span class="unselectable">> $ </span><span class="text-muted">npm install diff2html</span></p>
|
||||
<span class="btn-clipboard" data-clipboard-text="npm install diff2html" title="Copy">Copy</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row row-padded-small">
|
||||
<div class="col-md-12">
|
||||
<a href="https://github.com/rtfpessoa/diff2html#how-to-use" target="_blank">
|
||||
Find usage examples in the Docs
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="cli" class="row row-padded-small row-centered row-bordered">
|
||||
<div class="col-xs-10 col-xs-offset-1 col-md-6 col-md-offset-0">
|
||||
<h3><strong>With command line integration</strong></h3>
|
||||
<h4 class="m-b-md">We work hard to make sure you can have your diffs in a simple and flexible
|
||||
way. Go <a href="https://github.com/rtfpessoa/diff2html-cli" target="_blank">here full
|
||||
documentation</a>.</h4>
|
||||
</div>
|
||||
<div class="col-xs-10 col-xs-offset-1 col-md-6 col-md-offset-0">
|
||||
<div class="homepage-terminal-example">
|
||||
<p class="m-b-md">
|
||||
<span class="unselectable">> $ </span><span class="text-muted">npm install -g diff2html-cli</span><br>
|
||||
<span class="unselectable">diff2html cli installed!</span>
|
||||
</p>
|
||||
<p class="m-b-md">
|
||||
<span class="unselectable">> $ </span><span class="text-muted">diff2html</span><br>
|
||||
<span class="unselectable">Previous commit changes on your browser</span>
|
||||
</p>
|
||||
<p>
|
||||
<span class="unselectable">> $ <span class="text-muted">is that it?</span><br>
|
||||
Yup, it's that simple.</span>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="users" class="row row-padded-small row-centered row-bordered">
|
||||
<div class="col-md-12">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<h3><strong>Projects using diff2html</strong></h3>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row row-eq-height">
|
||||
<div class="col-md-3 m-b-lg">
|
||||
<div class="panel panel-default panel-profile m-b-0">
|
||||
<div class="panel-body text-center">
|
||||
<h5 class="panel-title">diff2html-cli</h5>
|
||||
<p class="m-b">diff2html from your terminal to the browser.</p>
|
||||
<a href="https://github.com/rtfpessoa/diff2html-cli" target="_blank"
|
||||
class="btn btn-primary-outline btn-sm m-b">
|
||||
<span class="icon icon-add-user"></span> View GitHub
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-3 m-b-lg">
|
||||
<div class="panel panel-default panel-profile m-b-0">
|
||||
<div class="panel-body text-center">
|
||||
<h5 class="panel-title">Codacy</h5>
|
||||
<p class="m-b">Check code style, security, duplication, complexity and coverage on every change.</p>
|
||||
<a href="https://www.codacy.com" target="_blank"
|
||||
class="btn btn-primary-outline btn-sm m-b">
|
||||
<span class="icon icon-add-user"></span> Website
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-3 m-b-lg">
|
||||
<div class="panel panel-default panel-profile m-b-0">
|
||||
<div class="panel-body text-center">
|
||||
<h5 class="panel-title">Ungit</h5>
|
||||
<p class="m-b">The easiest way to use git. On any platform. Anywhere.</p>
|
||||
<a href="https://github.com/FredrikNoren/ungit" target="_blank"
|
||||
class="btn btn-primary-outline btn-sm m-b">
|
||||
<span class="icon icon-add-user"></span> View GitHub
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-3 m-b-lg">
|
||||
<div class="panel panel-default panel-profile m-b-0">
|
||||
<div class="panel-body text-center">
|
||||
<h5 class="panel-title">Diffy</h5>
|
||||
<p class="m-b">Share your diffs and explain your ideas without committing.</p>
|
||||
<a href="https://diffy.org/" target="_blank"
|
||||
class="btn btn-primary-outline btn-sm m-b">
|
||||
<span class="icon icon-add-user"></span> Website
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row row-eq-height">
|
||||
<div class="col-md-3 m-b-lg">
|
||||
<div class="panel panel-default panel-profile m-b-0">
|
||||
<div class="panel-body text-center">
|
||||
<h5 class="panel-title">diff-pane</h5>
|
||||
<p class="m-b">Atom - Diff two panes.</p>
|
||||
<a href="https://github.com/t-ari/diff-pane" target="_blank"
|
||||
class="btn btn-primary-outline btn-sm m-b">
|
||||
<span class="icon icon-add-user"></span> View GitHub
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-3 m-b-lg">
|
||||
<div class="panel panel-default panel-profile m-b-0">
|
||||
<div class="panel-body text-center">
|
||||
<h5 class="panel-title">node-giff</h5>
|
||||
<p class="m-b">Display git diff on browser.</p>
|
||||
<a href="https://github.com/do7be/node-giff" target="_blank"
|
||||
class="btn btn-primary-outline btn-sm m-b">
|
||||
<span class="icon icon-add-user"></span> View GitHub
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-3 m-b-lg">
|
||||
<div class="panel panel-default panel-profile m-b-0">
|
||||
<div class="panel-body text-center">
|
||||
<h5 class="panel-title">edgar-monitor</h5>
|
||||
<p class="m-b">A module that processes new Edgar filings and sends out
|
||||
notifications.</p>
|
||||
<a href="https://github.com/buzzfeed-openlab/edgar-monitor" target="_blank"
|
||||
class="btn btn-primary-outline btn-sm m-b">
|
||||
<span class="icon icon-add-user"></span> View GitHub
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-3 m-b-lg">
|
||||
<div class="panel panel-default panel-profile m-b-0">
|
||||
<div class="panel-body text-center">
|
||||
<h5 class="panel-title">node-git</h5>
|
||||
<p class="m-b">Execute Git Command by Node.js.</p>
|
||||
<a href="https://github.com/liangshuai/node-git" target="_blank"
|
||||
class="btn btn-primary-outline btn-sm m-b">
|
||||
<span class="icon icon-add-user"></span> View GitHub
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-3 m-b-lg">
|
||||
<div class="panel panel-default panel-profile m-b-0">
|
||||
<div class="panel-body text-center">
|
||||
<h5 class="panel-title">Jenkins</h5>
|
||||
<p class="m-b">Show diffs between builds</p>
|
||||
<a href="https://wiki.jenkins-ci.org/display/JENKINS/Last+Changes+Plugin" target="_blank"
|
||||
class="btn btn-primary-outline btn-sm m-b">
|
||||
<span class="icon icon-add-user"></span> Website
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row row-padded-small text-center">
|
||||
<div class="col-sm-8 col-sm-offset-2 text-center">
|
||||
<h3><strong>Open Source</strong></h3>
|
||||
<h4 class="m-b-md">diff2html is open source.
|
||||
If you'd like to be part of the diff2html community or help us improve,
|
||||
find us on <a href="https://github.com/rtfpessoa/diff2html" target="_blank">GitHub</a> and
|
||||
<a href="https://gitter.im/rtfpessoa/diff2html" target="_blank">Gitter</a>. Need any help?
|
||||
</h4>
|
||||
<a class="btn btn-md" href="https://github.com/rtfpessoa/diff2html#how-to-use" target="_blank">
|
||||
Read more in the Docs
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
149
website/templates/template.mustache
Normal file
149
website/templates/template.mustache
Normal file
|
|
@ -0,0 +1,149 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en" class="js">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<!--[if IE]>
|
||||
<meta http-equiv='X-UA-Compatible' content='IE=edge,chrome=1'/>
|
||||
<![endif]-->
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
<meta name="description" content="Diff parser and pretty html generator">
|
||||
<meta name="keywords" content="diff2html,git,diff,unified,pretty,html,css,javaccript">
|
||||
<meta name="author" content="Rodrigo Fernandes (rtfpessoa)">
|
||||
|
||||
<title>diff2html</title>
|
||||
|
||||
<!-- search engine -->
|
||||
<link rel="canonical" href="https://diff2html.xyz">
|
||||
|
||||
<!-- open graph -->
|
||||
<meta property="og:title" content="diff2html">
|
||||
<meta property="og:type" content="website">
|
||||
|
||||
<meta property="og:description"
|
||||
content="Diff parser and pretty html generator.">
|
||||
|
||||
<meta property="og:url" content="https://diff2html.xyz">
|
||||
<meta property="og:site_name" content="diff2html">
|
||||
|
||||
<!-- Bootstrap -->
|
||||
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css"
|
||||
integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous">
|
||||
|
||||
<!-- Custom styles for this template -->
|
||||
<link href="main.css" rel="stylesheet">
|
||||
|
||||
{{#assets}}
|
||||
{{{assets}}}
|
||||
|
||||
{{/assets}}
|
||||
<script>
|
||||
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
||||
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
|
||||
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
|
||||
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
|
||||
|
||||
ga('create', 'UA-78351861-2', 'auto');
|
||||
ga('send', 'pageview');
|
||||
|
||||
</script>
|
||||
</head>
|
||||
<body class="swag-line template-index">
|
||||
<div class="container-overflow-wrap">
|
||||
|
||||
<div class="container">
|
||||
<nav class="navbar navbar-default navbar-tall navbar-full" role="navigation">
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#global-nav">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
<a class="navbar-brand" href="index.html">diff2html</a>
|
||||
</div>
|
||||
|
||||
<div class="collapse navbar-collapse" id="global-nav">
|
||||
<div class="navbar-right">
|
||||
<ul class="nav navbar-nav">
|
||||
|
||||
<li>
|
||||
<a href="index.html#install">Getting Started</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="index.html#cli">CLI</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="demo.html">Demo</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="https://github.com/rtfpessoa/diff2html#how-to-use" target="_blank">Docs</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="https://github.com/rtfpessoa/diff2html/issues/new" target="_blank">Support</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
{{{content}}}
|
||||
|
||||
</div>
|
||||
|
||||
<footer class="footer clearfix">
|
||||
<p class="col-xs-10 col-xs-offset-1">
|
||||
Website originally designed and built by
|
||||
<a href="https://twitter.com/mdo" target="_blank">@mdo</a>,
|
||||
<a href="https://twitter.com/fat" target="_blank">@fat</a>, and
|
||||
<a href="https://twitter.com/dhg" target="_blank">@dhg</a>,
|
||||
adapted with <span class="hero-red">❤</span> by
|
||||
<a href="https://twitter.com/rtfpessoa" target="_blank">@rtfpessoa</a>.
|
||||
</p>
|
||||
<ul class="footer-list col-xs-10 col-xs-offset-1">
|
||||
|
||||
<li class="footer-list-item">
|
||||
<a class="footer-list-link" href="https://github.com/rtfpessoa/diff2html#how-to-use"
|
||||
target="_blank">FAQ</a>
|
||||
</li>
|
||||
|
||||
<li class="footer-list-item">
|
||||
<a class="footer-list-link" href="https://diff2html.xyz">diff2html</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</footer>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- General JavaScript -->
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.3/jquery.min.js"></script>
|
||||
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"
|
||||
integrity="sha384-0mSbJDEHialfmuBBQP6A4Qrprq5OVfW37PRR3j5ELqxss1yVqOtnepnHVP9aJ7xS"
|
||||
crossorigin="anonymous"></script>
|
||||
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "http://schema.org/",
|
||||
"@type": "SoftwareSourceCode",
|
||||
"name": "diff2html",
|
||||
"author": "Rodrigo Fernandes",
|
||||
"image": "https://diff2html.xyz/img/snapshot-3.png",
|
||||
"description": "Diff parser and pretty html generator.",
|
||||
"codeRepository": "https://github.com/rtfpessoa/diff2html",
|
||||
"programmingLanguage": "JavaScript",
|
||||
"runtimePlatform": "Node >= 0.12",
|
||||
"mainEntityOfPage": "https://diff2html.xyz/"
|
||||
}
|
||||
</script>
|
||||
|
||||
{{#scripts}}
|
||||
{{{scripts}}}
|
||||
|
||||
{{/scripts}}
|
||||
</body>
|
||||
</html>
|
||||
Loading…
Reference in a new issue