Line numbers on blob pages
This commit is contained in:
parent
3f77fb211d
commit
0a4451bc15
2 changed files with 38 additions and 6 deletions
15
style.css
15
style.css
|
@ -21,6 +21,15 @@ a:hover {
|
|||
text-decoration: underline;
|
||||
}
|
||||
|
||||
#blob a {
|
||||
color: #777;
|
||||
}
|
||||
|
||||
#blob a:hover {
|
||||
color: blue;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
table thead td {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
@ -29,10 +38,14 @@ table td {
|
|||
padding: 0 0.4em;
|
||||
}
|
||||
|
||||
#content table tr:hover td {
|
||||
#log tr:hover td, #files tr:hover td {
|
||||
background-color: #eee;
|
||||
}
|
||||
|
||||
td.num {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.desc {
|
||||
color: #777;
|
||||
}
|
||||
|
|
29
urmoms.c
29
urmoms.c
|
@ -241,7 +241,28 @@ printtimeshort(FILE *fp, const git_time *intime)
|
|||
void
|
||||
writeblobhtml(FILE *fp, const git_blob *blob)
|
||||
{
|
||||
xmlencode(fp, git_blob_rawcontent(blob), (size_t)git_blob_rawsize(blob));
|
||||
off_t i = 0;
|
||||
size_t n = 1;
|
||||
char *nfmt = "<a href=\"#l%d\" id=\"l%d\">%d</a>\n";
|
||||
const char *s = git_blob_rawcontent(blob);
|
||||
git_off_t len = git_blob_rawsize(blob);
|
||||
|
||||
fputs("<table id=\"blob\"><tr><td class=\"num\"><pre>\n", fp);
|
||||
|
||||
if (len) {
|
||||
fprintf(fp, nfmt, n, n, n);
|
||||
while (i < len - 1) {
|
||||
if (s[i] == '\n') {
|
||||
n++;
|
||||
fprintf(fp, nfmt, n, n, n);
|
||||
}
|
||||
i++;
|
||||
}
|
||||
}
|
||||
|
||||
fputs("</pre></td><td><pre>\n", fp);
|
||||
xmlencode(fp, s, (size_t)len);
|
||||
fputs("</pre></td></tr></table>\n", fp);
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -392,7 +413,7 @@ writelog(FILE *fp)
|
|||
git_revwalk_simplify_first_parent(w);
|
||||
|
||||
/* TODO: also make "expanded" log ? (with message body) */
|
||||
fputs("<table><thead>\n<tr><td>Age</td><td>Commit message</td><td>Author</td>"
|
||||
fputs("<table id=\"log\"><thead>\n<tr><td>Age</td><td>Commit message</td><td>Author</td>"
|
||||
"<td>Files</td><td>+</td><td>-</td></tr>\n</thead><tbody>\n", fp);
|
||||
while (!git_revwalk_next(&id, w)) {
|
||||
relpath = "";
|
||||
|
@ -553,11 +574,9 @@ writeblob(const git_index_entry *entry)
|
|||
if (git_blob_is_binary((git_blob *)obj)) {
|
||||
fprintf(fp, "<p>Binary file</p>\n");
|
||||
} else {
|
||||
fputs("<pre>\n", fp);
|
||||
writeblobhtml(fp, (git_blob *)obj);
|
||||
if (ferror(fp))
|
||||
err(1, "fwrite");
|
||||
fputs("</pre>\n", fp);
|
||||
}
|
||||
git_object_free(obj);
|
||||
writefooter(fp);
|
||||
|
@ -575,7 +594,7 @@ writefiles(FILE *fp)
|
|||
git_index *index;
|
||||
size_t count, i;
|
||||
|
||||
fputs("<table><thead>\n"
|
||||
fputs("<table id=\"files\"><thead>\n"
|
||||
"<tr><td>Mode</td><td>Name</td><td>Size</td></tr>\n"
|
||||
"</thead><tbody>\n", fp);
|
||||
|
||||
|
|
Loading…
Reference in a new issue