代码对比/归并
1 <!DOCTYPE html> 2 <html lang="zh"> 3 <head> 4 <title>代码对比/归并title> 5 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 6 <meta http-equiv="Content-Language" content="zh-CN" /> 7 <link rel="stylesheet" href="https://tool.oschina.net/css/basic.css?20120912" type="text/css" /> 8 <script type="text/javascript" src='https://tool.oschina.net/js/jquery/jquery-1.7.2.js'>script> 9 <link rel="stylesheet" href='https://tool.oschina.net/js/bootstrap/css/bootstrap.min.css' /> 10 <script type="text/javascript" src='https://tool.oschina.net/js/jquery/jquery.cookies.2.2.0.min.js'>script> 11 <script src='https://tool.oschina.net/js/bootstrap/js/bootstrap.min.js'>script> 12 head> 13 <body> 14 <script type="text/javascript" src="https://tool.oschina.net/js/mergely-2.5/lib/codemirror.min.js">script> 15 <link rel="stylesheet" type="text/css" href="https://tool.oschina.net/js/mergely-2.5/lib/mergely.css" /> 16 <script type="text/javascript" src="https://tool.oschina.net/js/mergely-2.5/lib/mergely.min.js">script> 17 <link rel="stylesheet" type="text/css" href="https://tool.oschina.net/js/mergely-2.5/lib/codemirror.css" /> 18 <script id="render_js" type="text/javascript" src="https://tool.oschina.net/js/CodeMirror-2.25/mode/javascript/javascript.js">script> 19 <script> 20 var l_files; 21 var r_files; 22 23 $(document).ready(function() { 24 $('#diff').mergely({ 25 cmsettings: { 26 mode: "javascript", 27 readOnly: false, 28 lineWrapping: true 29 } 30 }); 31 }); 32 33 function leftFileSelect(files) { 34 l_files = files; 35 setLeft(l_files); 36 } 37 38 function rightFileSelect(files) { 39 r_files = files; 40 setRight(r_files); 41 } 42 43 function setRight(files) { 44 f = files[0]; 45 var reader = new FileReader(); 46 reader.onload = (function(file) { 47 return function(e) { 48 $('#diff').mergely("rhs", this.result); 49 }; 50 })(f); 51 reader.readAsText(f, $('#r_encode').val()); 52 } 53 54 function setLeft(files) { 55 f = files[0]; 56 var f_name = f.name; 57 var f_type = f_name.substring(f_name.lastIndexOf(".")); 58 switch (f_type) { 59 case ".js": 60 setRender("javascript/javascript.js"); 61 break; 62 case ".css": 63 setRender("css/css.js"); 64 break; 65 case ".go": 66 setRender("go/go.js"); 67 break; 68 case ".groovy": 69 setRender("groovy/groovy.js"); 70 break; 71 case ".c", ".cpp": 72 setRender("clike/clike.js"); 73 break; 74 case ".php": 75 setRender("php/php.js"); 76 break; 77 case ".xml": 78 setRender("xml/xml.js"); 79 break; 80 case ".html": 81 setRender("htmlembedded/htmlembedded.js"); 82 break; 83 case ".less": 84 setRender("less/less.js"); 85 break; 86 case ".lua": 87 setRender("lua/lua.js"); 88 break; 89 case ".md": 90 setRender("markdown/markdown.js"); 91 break; 92 case ".vm": 93 setRender("velocity/velocity.js"); 94 break; 95 case ".py": 96 setRender("python/python.js"); 97 break; 98 case ".properties": 99 setRender("properties/properties.js"); 100 break; 101 case ".rb": 102 setRender("ruby/ruby.js"); 103 break; 104 case ".sh": 105 setRender("shell/shell.js"); 106 break; 107 case ".sql": 108 setRender("plsql/plsql.js"); 109 break; 110 case ".erl": 111 setRender("erlang/erlang.js"); 112 break; 113 case ".coffee": 114 setRender("coffeescript/coffeescript.js"); 115 break; 116 case ".pl": 117 setRender("perl/perl.js"); 118 break; 119 defualt: setRender("clike/clike.js"); 120 } 121 var reader = new FileReader(); 122 reader.onload = (function(file) { 123 return function(e) { 124 $('#diff').mergely("lhs", this.result); 125 }; 126 })(f); 127 reader.readAsText(f, $('#l_encode').val()); 128 } 129 130 function setLeftCode() { 131 if (null != l_files) 132 setLeft(l_files); 133 } 134 135 function setRightCode() { 136 if (null != r_files) 137 setRight(r_files); 138 } 139 140 function setRender(type) { 141 var base_src = "/js/CodeMirror-2.25/mode/"; 142 $("#render_js").attr("src", base_src + type); 143 } 144 script> 145 <div id="mainContent" class="wrapper"> 146 <form class="form-inline well" style="margin:10px 0 0 0;"> 147 <div style="float:left;"> 148 <label>选择第一个文件:label> 149 <input type="file" id="file" onchange="leftFileSelect(this.files)" single /> 150 <label>编码:label> 151 <select id="l_encode" value="UTF-8" class="span1" onchange="setLeftCode();"> 152 <option value="UTF-8">UTF-8option> 153 <option value="GBK">GBKoption> 154 <option value="GB2312">GB2312option> 155 <option value="GB18030">GB18030option> 156 <option value="ISO-8859-2">ISO-8859-2option> 157 select> 158 div> 159 <div style="float:right;"> 160 <label>选择第二个文件:label> 161 <input type="file" id="file" onchange="rightFileSelect(this.files)" single /> 162 <label>编码:label> 163 <select id="r_encode" value="UTF-8" class="span1" onchange="setRightCode();"> 164 <option value="UTF-8">UTF-8option> 165 <option value="GBK">GBKoption> 166 <option value="GB2312">GB2312option> 167 <option value="GB18030">GB18030option> 168 <option value="ISO-8859-2">ISO-8859-2option> 169 select> 170 div> 171 form> 172 div> 173 <div id="diff" class="toolUsing">div> 174 body> 175 html>