<body style="font-family: 'Open Sans'">
<h1>@title@</h1>
<p>@description@</p>
- <div id="diff"><!--<![CDATA[
+ <p>Download <a id="patchdownload" href="#">changes.patch</a> which can be applied with <code>git apply changes.patch</code>.</p>
+
+ <div id="diffsource" style="display:none"><!--<![CDATA[
@diffdata@
]]>-->
</div>
+ <div id="diff">Loading ...</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.3/jquery.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.11.0/highlight.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/diff2html/2.3.0/diff2html.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/diff2html/2.3.0/diff2html-ui.min.js"></script>
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/FileSaver.js/1.3.3/FileSaver.min.js"></script>
+
<script>
$(document).ready(function() {
- var diff2htmlUi = new Diff2HtmlUI({diff: $("#diff")[0].childNodes[0].nodeValue});
- diff2htmlUi.draw('#diff', {showFiles: true, matching: 'lines'});
- diff2htmlUi.highlightCode('#diff');
+ var diffText = $("#diffsource")[0].childNodes[0].nodeValue;
+ $("#diffsource").remove();
+ diffText = diffText.substring(10, diffText.length - 3);
+ if (diffText.length == 0) {
+ $("#diff").text("No changes found.");
+ return;
+ }
+
+ $("#patchdownload").click(function() {
+ var blob = new Blob([diffText], { type: "text/plain;charset=utf-8;" });
+ saveAs(blob, "changes.patch");
+ });
+
+ var diff2htmlUi = new Diff2HtmlUI({diff: diffText});
+ diff2htmlUi.draw('#diff', {showFiles: true, matching: 'none'});
+ setTimeout(function() {
+ diff2htmlUi.highlightCode('#diff');
+ }, 100);
});
</script>
</body>