Merge pull request #10 from rtfpessoa/fix-diff-html-escaping
fix html escaping on diff
This commit is contained in:
commit
232bf20322
6 changed files with 28 additions and 23 deletions
16
dist/diff2html.js
vendored
16
dist/diff2html.js
vendored
|
|
@ -834,6 +834,7 @@ function require() {
|
|||
|
||||
// dirty hack for browser compatibility
|
||||
var jsDiff = (typeof JsDiff !== "undefined" && JsDiff) || require("../lib/diff.js");
|
||||
var utils = require("./utils.js").Utils;
|
||||
|
||||
function PrinterUtils() {
|
||||
}
|
||||
|
|
@ -876,9 +877,10 @@ function require() {
|
|||
|
||||
diff.forEach(function (part) {
|
||||
var elemType = part.added ? 'ins' : part.removed ? 'del' : null;
|
||||
var escapedValue = utils.escape(part.value);
|
||||
|
||||
if (elemType !== null) highlightedLine += "<" + elemType + ">" + part.value + "</" + elemType + ">";
|
||||
else highlightedLine += part.value;
|
||||
if (elemType !== null) highlightedLine += "<" + elemType + ">" + escapedValue + "</" + elemType + ">";
|
||||
else highlightedLine += escapedValue;
|
||||
});
|
||||
|
||||
return {
|
||||
|
|
@ -1010,18 +1012,15 @@ function require() {
|
|||
} else {
|
||||
var j = 0;
|
||||
var oldLine, newLine;
|
||||
var oldEscapedLine, newEscapedLine;
|
||||
|
||||
if (oldLines.length === newLines.length) {
|
||||
for (j = 0; j < oldLines.length; j++) {
|
||||
oldLine = oldLines[j];
|
||||
newLine = newLines[j];
|
||||
oldEscapedLine = utils.escape(oldLine.content);
|
||||
newEscapedLine = utils.escape(newLine.content);
|
||||
|
||||
config.isCombined = file.isCombined;
|
||||
|
||||
var diff = printerUtils.diffHighlight(oldEscapedLine, newEscapedLine, config);
|
||||
var diff = printerUtils.diffHighlight(oldLine.content, newLine.content, config);
|
||||
|
||||
fileHtml.left += generateSingleLineHtml(oldLine.type, oldLine.oldNumber, diff.first.line, diff.first.prefix);
|
||||
fileHtml.right += generateSingleLineHtml(newLine.type, newLine.newNumber, diff.second.line, diff.second.prefix);
|
||||
|
|
@ -1184,17 +1183,14 @@ function require() {
|
|||
} else {
|
||||
var j = 0;
|
||||
var oldLine, newLine;
|
||||
var oldEscapedLine, newEscapedLine;
|
||||
|
||||
if (oldLines.length === newLines.length) {
|
||||
for (j = 0; j < oldLines.length; j++) {
|
||||
oldLine = oldLines[j];
|
||||
newLine = newLines[j];
|
||||
oldEscapedLine = utils.escape(oldLine.content);
|
||||
newEscapedLine = utils.escape(newLine.content);
|
||||
|
||||
config.isCombined = file.isCombined;
|
||||
var diff = printerUtils.diffHighlight(oldEscapedLine, newEscapedLine, config);
|
||||
var diff = printerUtils.diffHighlight(oldLine.content, newLine.content, config);
|
||||
|
||||
processedOldLines += generateLineHtml(oldLine.type, oldLine.oldNumber, oldLine.newNumber, diff.first.line, diff.first.prefix);
|
||||
processedNewLines += generateLineHtml(newLine.type, newLine.oldNumber, newLine.newNumber, diff.second.line, diff.second.prefix);
|
||||
|
|
|
|||
2
dist/diff2html.min.js
vendored
2
dist/diff2html.min.js
vendored
File diff suppressed because one or more lines are too long
|
|
@ -12,7 +12,7 @@
|
|||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/8.4/styles/github.min.css">
|
||||
|
||||
<!--
|
||||
<link rel="stylesheet" type="text/css" href="../css/diff2html.min.css">
|
||||
<link rel="stylesheet" type="text/css" href="../css/diff2html.css">
|
||||
<script type="text/javascript" src="../lib/diff.js"></script>
|
||||
<script type="text/javascript" src="../lib/fakeRequire.js"></script>
|
||||
<script type="text/javascript" src="../src/utils.js"></script>
|
||||
|
|
@ -190,7 +190,20 @@
|
|||
'@@ -1,3 +0,0 @@\n' +
|
||||
'-define(function() {\n' +
|
||||
'- return typeof undefined;\n' +
|
||||
'-});\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';
|
||||
|
||||
$(document).ready(function () {
|
||||
var diff2Html = Diff2Html;
|
||||
|
|
|
|||
|
|
@ -72,17 +72,14 @@
|
|||
} else {
|
||||
var j = 0;
|
||||
var oldLine, newLine;
|
||||
var oldEscapedLine, newEscapedLine;
|
||||
|
||||
if (oldLines.length === newLines.length) {
|
||||
for (j = 0; j < oldLines.length; j++) {
|
||||
oldLine = oldLines[j];
|
||||
newLine = newLines[j];
|
||||
oldEscapedLine = utils.escape(oldLine.content);
|
||||
newEscapedLine = utils.escape(newLine.content);
|
||||
|
||||
config.isCombined = file.isCombined;
|
||||
var diff = printerUtils.diffHighlight(oldEscapedLine, newEscapedLine, config);
|
||||
var diff = printerUtils.diffHighlight(oldLine.content, newLine.content, config);
|
||||
|
||||
processedOldLines += generateLineHtml(oldLine.type, oldLine.oldNumber, oldLine.newNumber, diff.first.line, diff.first.prefix);
|
||||
processedNewLines += generateLineHtml(newLine.type, newLine.oldNumber, newLine.newNumber, diff.second.line, diff.second.prefix);
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@
|
|||
|
||||
// dirty hack for browser compatibility
|
||||
var jsDiff = (typeof JsDiff !== "undefined" && JsDiff) || require("../lib/diff.js");
|
||||
var utils = require("./utils.js").Utils;
|
||||
|
||||
function PrinterUtils() {
|
||||
}
|
||||
|
|
@ -51,9 +52,10 @@
|
|||
|
||||
diff.forEach(function (part) {
|
||||
var elemType = part.added ? 'ins' : part.removed ? 'del' : null;
|
||||
var escapedValue = utils.escape(part.value);
|
||||
|
||||
if (elemType !== null) highlightedLine += "<" + elemType + ">" + part.value + "</" + elemType + ">";
|
||||
else highlightedLine += part.value;
|
||||
if (elemType !== null) highlightedLine += "<" + elemType + ">" + escapedValue + "</" + elemType + ">";
|
||||
else highlightedLine += escapedValue;
|
||||
});
|
||||
|
||||
return {
|
||||
|
|
|
|||
|
|
@ -96,18 +96,15 @@
|
|||
} else {
|
||||
var j = 0;
|
||||
var oldLine, newLine;
|
||||
var oldEscapedLine, newEscapedLine;
|
||||
|
||||
if (oldLines.length === newLines.length) {
|
||||
for (j = 0; j < oldLines.length; j++) {
|
||||
oldLine = oldLines[j];
|
||||
newLine = newLines[j];
|
||||
oldEscapedLine = utils.escape(oldLine.content);
|
||||
newEscapedLine = utils.escape(newLine.content);
|
||||
|
||||
config.isCombined = file.isCombined;
|
||||
|
||||
var diff = printerUtils.diffHighlight(oldEscapedLine, newEscapedLine, config);
|
||||
var diff = printerUtils.diffHighlight(oldLine.content, newLine.content, config);
|
||||
|
||||
fileHtml.left += generateSingleLineHtml(oldLine.type, oldLine.oldNumber, diff.first.line, diff.first.prefix);
|
||||
fileHtml.right += generateSingleLineHtml(newLine.type, newLine.newNumber, diff.second.line, diff.second.prefix);
|
||||
|
|
|
|||
Loading…
Reference in a new issue