Reduce line number bloat, fix hover effect

Currently line numbers look like (for blob view and sdiff respectively):

    <a class='no' id='n68' name='n68' href='#n68'>68</a>
    <td class='lineno'><a class='no' href='...#n1' id='n1' name='n1'>1</a></td>

name=".." is unnecessary if the id attribute is set (this even applies
to IE6), so drop it. (aside, in HTML5, the name attribute is gone.)

The line number links can be selected through their parent classes, no
need for another class "no", so drop it too.

For a file with 2000 lines, this yields a saving of 40% (29% gzipped).

While at it, fix the hover effect of line numbers: now the line number
get a black background as was intended.

Signed-off-by: Peter Wu <lekensteyn@gmail.com>
Signed-off-by: Lukas Fleischer <cgit@cryptocrack.de>
This commit is contained in:
Peter Wu 2013-10-03 12:17:23 +02:00 committed by Jason A. Donenfeld
부모 407f71cc06
커밋 4468ec1b15
4개의 변경된 파일11개의 추가작업 그리고 10개의 파일을 삭제

파일 보기

@ -291,13 +291,15 @@ div#cgit table.blob pre {
padding: 0; margin: 0; padding: 0; margin: 0;
} }
div#cgit table.blob a.no, div#cgit table.ssdiff a.no { div#cgit table.blob td.linenumbers a,
div#cgit table.ssdiff td.lineno a {
color: gray; color: gray;
text-align: right; text-align: right;
text-decoration: none; text-decoration: none;
} }
div#cgit table.blob a.no a:hover { div#cgit table.blob td.linenumbers a:hover,
div#cgit table.ssdiff td.lineno a:hover {
color: black; color: black;
} }

파일 보기

@ -10,11 +10,11 @@ test_expect_success 'find file-50' 'grep "file-50" tmp'
test_expect_success 'generate bar/tree/file-50' 'cgit_url "bar/tree/file-50" >tmp' test_expect_success 'generate bar/tree/file-50' 'cgit_url "bar/tree/file-50" >tmp'
test_expect_success 'find line 1' ' test_expect_success 'find line 1' '
grep "<a class=.no. id=.n1. name=.n1. href=.#n1.>1</a>" tmp grep "<a id=.n1. href=.#n1.>1</a>" tmp
' '
test_expect_success 'no line 2' ' test_expect_success 'no line 2' '
! grep "<a class=.no. id=.n2. name=.n2. href=.#n2.>2</a>" tmp ! grep "<a id=.n2. href=.#n2.>2</a>" tmp
' '
test_expect_success 'generate foo+bar/tree' 'cgit_url "foo%2bbar/tree" >tmp' test_expect_success 'generate foo+bar/tree' 'cgit_url "foo%2bbar/tree" >tmp'

파일 보기

@ -230,9 +230,9 @@ static void print_ssdiff_line(char *class,
struct diff_filespec *old_file = cgit_get_current_old_file(); struct diff_filespec *old_file = cgit_get_current_old_file();
char *lineno_str = fmt("n%d", old_line_no); char *lineno_str = fmt("n%d", old_line_no);
char *id_str = fmt("id=%s#%s", is_null_sha1(old_file->sha1)?"HEAD":sha1_to_hex(old_rev_sha1), lineno_str); char *id_str = fmt("id=%s#%s", is_null_sha1(old_file->sha1)?"HEAD":sha1_to_hex(old_rev_sha1), lineno_str);
html("<td class='lineno'><a class='no' href='"); html("<td class='lineno'><a href='");
html(cgit_fileurl(ctx.repo->url, "tree", old_file->path, id_str)); html(cgit_fileurl(ctx.repo->url, "tree", old_file->path, id_str));
htmlf("' id='%s' name='%s'>%s</a>", lineno_str, lineno_str, lineno_str + 1); htmlf("' id='%s'>%s</a>", lineno_str, lineno_str + 1);
html("</td>"); html("</td>");
htmlf("<td class='%s'>", class); htmlf("<td class='%s'>", class);
} else if (old_line) } else if (old_line)
@ -251,9 +251,9 @@ static void print_ssdiff_line(char *class,
struct diff_filespec *new_file = cgit_get_current_new_file(); struct diff_filespec *new_file = cgit_get_current_new_file();
char *lineno_str = fmt("n%d", new_line_no); char *lineno_str = fmt("n%d", new_line_no);
char *id_str = fmt("id=%s#%s", is_null_sha1(new_file->sha1)?"HEAD":sha1_to_hex(new_rev_sha1), lineno_str); char *id_str = fmt("id=%s#%s", is_null_sha1(new_file->sha1)?"HEAD":sha1_to_hex(new_rev_sha1), lineno_str);
html("<td class='lineno'><a class='no' href='"); html("<td class='lineno'><a href='");
html(cgit_fileurl(ctx.repo->url, "tree", new_file->path, id_str)); html(cgit_fileurl(ctx.repo->url, "tree", new_file->path, id_str));
htmlf("' id='%s' name='%s'>%s</a>", lineno_str, lineno_str, lineno_str + 1); htmlf("' id='%s'>%s</a>", lineno_str, lineno_str + 1);
html("</td>"); html("</td>");
htmlf("<td class='%s'>", class); htmlf("<td class='%s'>", class);
} else if (new_line) } else if (new_line)

파일 보기

@ -21,8 +21,7 @@ struct walk_tree_context {
static void print_text_buffer(const char *name, char *buf, unsigned long size) static void print_text_buffer(const char *name, char *buf, unsigned long size)
{ {
unsigned long lineno, idx; unsigned long lineno, idx;
const char *numberfmt = const char *numberfmt = "<a id='n%1$d' href='#n%1$d'>%1$d</a>\n";
"<a class='no' id='n%1$d' name='n%1$d' href='#n%1$d'>%1$d</a>\n";
html("<table summary='blob content' class='blob'>\n"); html("<table summary='blob content' class='blob'>\n");