github.com/billybanfield/evergreen@v0.0.0-20170525200750-eeee692790f7/service/templates/diff.html (about) 1 {{define "base"}} 2 <html> 3 <script src="/static/js/jquery.js"></script> 4 <style type="text/css"> 5 .addition{ background-color:#9f9; } 6 .deletion{ background-color: #faa; } 7 .filestat{ font-weight:bold; } 8 .rawdiff{ display:none; } 9 </style> 10 <script type="text/javascript"> 11 $(document).ready(function(){ 12 inputBlocks = $('code.rawdiff') 13 for(var i=0;i<inputBlocks.length;i++){ 14 var outputBlock = $('<code></code>') 15 $('#output').append($('<pre></pre>').append(outputBlock)) 16 lines = $(inputBlocks[i]).text().split('\n') 17 var prevclass = undefined 18 var prevelement = undefined 19 for(var j = 0; j < lines.length; ++j){ 20 if(lines[j].substring(0,3) == "+++"){ 21 classname = "filestat" 22 }else if(lines[j].substring(0,3) == "---"){ 23 classname = "filestat" 24 }else if(lines[j][0] == "+"){ 25 classname = "addition" 26 }else if(lines[j][0] == '-'){ 27 classname = 'deletion' 28 }else{ 29 classname = undefined 30 } 31 if(classname == prevclass && prevelement != undefined){ 32 var x = $(prevelement) 33 x.text(x.text() + lines[j] + "\n") 34 }else{ 35 var newspan = $('<span></span>').text(lines[j] + "\n") 36 if(classname){ 37 newspan.addClass(classname) 38 } 39 outputBlock.append(newspan) 40 prevelement = newspan 41 prevclass = classname 42 } 43 } 44 } 45 $('#input_code').remove() 46 }) 47 </script> 48 49 <body> 50 <div id="output"> 51 {{range .Patches}} 52 <code class="rawdiff">{{.PatchSet.Patch}}</code> 53 {{end}} 54 </div> 55 </body> 56 57 </html> 58 {{end}}