diff --git a/src/line-by-line-printer.js b/src/line-by-line-printer.js index ae12ebd..9b0a2c1 100644 --- a/src/line-by-line-printer.js +++ b/src/line-by-line-printer.js @@ -13,6 +13,7 @@ var Rematch = require('./rematch.js').Rematch; var hoganUtils = require('./hoganjs-utils.js').HoganJsUtils; + var genericTemplatesPath = 'generic'; var baseTemplatesPath = 'line-by-line'; var iconsBaseTemplatesPath = 'icon'; var tagsBaseTemplatesPath = 'tag'; @@ -23,7 +24,7 @@ LineByLinePrinter.prototype.makeFileDiffHtml = function(file, diffs) { var fileDiffTemplate = hoganUtils.template(baseTemplatesPath, 'file-diff'); - var filePathTemplate = hoganUtils.template(baseTemplatesPath, 'file-path'); + var filePathTemplate = hoganUtils.template(genericTemplatesPath, 'file-path'); var fileIconTemplate = hoganUtils.template(iconsBaseTemplatesPath, 'file'); var fileTagTemplate = hoganUtils.template(tagsBaseTemplatesPath, printerUtils.getFileTypeIcon(file)); @@ -41,7 +42,7 @@ }; LineByLinePrinter.prototype.makeLineByLineHtmlWrapper = function(content) { - return hoganUtils.render(baseTemplatesPath, 'wrapper', {'content': content}); + return hoganUtils.render(genericTemplatesPath, 'wrapper', {'content': content}); }; LineByLinePrinter.prototype.generateLineByLineJsonHtml = function(diffFiles) { @@ -67,9 +68,11 @@ }); LineByLinePrinter.prototype.makeColumnLineNumberHtml = function(block) { - return hoganUtils.render(baseTemplatesPath, 'column-line-number', { + return hoganUtils.render(genericTemplatesPath, 'column-line-number', { diffParser: diffParser, - block: utils.escape(block.header) + blockHeader: block.header, + lineClass: 'd2h-code-linenumber', + contentClass: 'd2h-code-line' }); }; @@ -182,18 +185,24 @@ }; LineByLinePrinter.prototype.makeLineHtml = function(type, oldNumber, newNumber, content, prefix) { - return hoganUtils.render(baseTemplatesPath, 'line', + var lineNumberTemplate = hoganUtils.render(baseTemplatesPath, 'numbers', { + oldNumber: utils.valueOrEmpty(oldNumber), + newNumber: utils.valueOrEmpty(newNumber) + }); + + return hoganUtils.render(genericTemplatesPath, 'line', { type: type, - oldNumber: utils.valueOrEmpty(oldNumber), - newNumber: utils.valueOrEmpty(newNumber), + lineClass: 'd2h-code-linenumber', + contentClass: 'd2h-code-line', prefix: prefix && utils.convertWhiteSpaceToNonBreakingSpace(prefix), - content: content && utils.convertWhiteSpaceToNonBreakingSpace(content) + content: content && utils.convertWhiteSpaceToNonBreakingSpace(content), + lineNumber: lineNumberTemplate }); }; LineByLinePrinter.prototype._generateEmptyDiff = function() { - return hoganUtils.render(baseTemplatesPath, 'empty-diff', { + return hoganUtils.render(genericTemplatesPath, 'empty-diff', { diffParser: diffParser }); }; diff --git a/src/side-by-side-printer.js b/src/side-by-side-printer.js index f50f473..1f25ba0 100644 --- a/src/side-by-side-printer.js +++ b/src/side-by-side-printer.js @@ -12,6 +12,12 @@ var utils = require('./utils.js').Utils; var Rematch = require('./rematch.js').Rematch; + var hoganUtils = require('./hoganjs-utils.js').HoganJsUtils; + var genericTemplatesPath = 'generic'; + var baseTemplatesPath = 'side-by-side'; + var iconsBaseTemplatesPath = 'icon'; + var tagsBaseTemplatesPath = 'tag'; + var matcher = Rematch.rematch(function(a, b) { var amod = a.content.substr(1); var bmod = b.content.substr(1); @@ -24,59 +30,48 @@ } SideBySidePrinter.prototype.makeDiffHtml = function(file, diffs) { - return '