new diff style

This commit is contained in:
German Laullon
2010-12-09 13:59:22 -08:00
parent da6a75c607
commit 875e7cfcfd
2 changed files with 37 additions and 16 deletions
+7 -5
View File
@@ -226,16 +226,17 @@
- (NSString *) parseDiff:(NSString *)txt
{
txt=[self parseHTML:txt];
NSArray *lines = [txt componentsSeparatedByString:@"\n"];
NSString *line;
NSMutableString *res=[NSMutableString string];
[res appendString:@"<table class='diff'>"];
[res appendString:@"<table class='diff'><thead><tr><td colspan='3'>"];
int i=0;
while(i<[lines count]){
line=[lines objectAtIndex:i];
if([[line substringToIndex:2] isEqualToString:@"@@"]){
[res appendString:@"</td></tr></thead><tbody>"];
int l_int,l_count,l_line;
int r_int,r_count,r_line;
@@ -252,12 +253,11 @@
r_line=r_int=[[pos_r objectAtIndex:0]integerValue];
r_count=[[pos_r objectAtIndex:1]integerValue];
[res appendString:[NSString stringWithFormat:@"<tr class='header'><td colspan=3>%@</td></tr>",line]];
[res appendString:[NSString stringWithFormat:@"<tr class='header'><td colspan='3'>%@</td></tr>",line]];
do{
line=[lines objectAtIndex:++i];
NSString *s=[line substringToIndex:1];
line=[line substringFromIndex:1];
if([s isEqualToString:@" "]){
[res appendString:[NSString stringWithFormat:@"<tr><td class='l'>%d</td><td class='r'>%d</td>",l_line++,r_line++]];
@@ -269,10 +269,12 @@
[res appendString:[NSString stringWithFormat:@"<td class='code'>%@</td></tr>",line]];
}while(l_line<(l_int+l_count) && r_line<(r_int+r_count));
}else{
[res appendString:[NSString stringWithFormat:@"<p>%@</p>",line]];
}
i++;
}
[res appendString:@"</table>"];
[res appendString:@"</tbody></table>"];
return res;
}
+30 -11
View File
@@ -1,45 +1,64 @@
table.diff{
table.diff {
font-family: Menlo, Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;
border: 1px solid #8f8f8f;
width: 100%;
border-collapse: collapse;
margin-left: 5px;
margin-right: 5px;
margin-left: 5px;
}
table.diff tr td{
font-family: Menlo, Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;
table.diff tr td {
font-size: 11px;
white-space: pre;
padding-left: 5px;
padding-right: 5px;
}
table.diff td.code{
table.diff td.code {
width: 100%;
border-left: 2px solid #d0d0d0;
}
table.diff tr.header td{
table.diff tr.header td {
border: 1px solid #8f8f8f;
padding: 5px;
}
table.diff tr td.r{
table.diff tr td.r {
border-left: 1px solid #909090;
}
table.diff tr.r{
table.diff tr.r {
background-color: rgba(0,255,0,0.1);
}
table.diff tr.l{
table.diff tr.l {
background-color: rgba(255,0,0,0.1);
}
table.diff tr.r td.code{
table.diff tr.r td.code {
border-left-color: rgba(0,255,0,0.2);
}
table.diff tr.l td.code{
table.diff tr.l td.code {
border-left-color: rgba(255,0,0,0.2);
}
table.diff thead tr td p {
margin: 0;
}
#diff table.diff thead {
background-image: -webkit-gradient(linear,left top,left bottom, color-stop(0, rgba(244, 244, 244,1)), color-stop(1, rgba(215,215,215,1)));
}
#diff table.diff thead tr td {
padding: 5px;
}
#diff table.diff tbody tr.header {
background-image: -webkit-gradient(linear,left top,left bottom, color-stop(0, rgba(206,206,206,1)), color-stop(1, rgba(166,166,166,1)));
/* Saf4
+, Chrome */
}