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}}