all repos — cgit @ 4468ec1b15becf3838d8cf38440c527c487565a4

a hyperfast web frontend for git written in c

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>
Peter Wu lekensteyn@gmail.com
Thu, 03 Oct 2013 12:17:23 +0200
commit

4468ec1b15becf3838d8cf38440c527c487565a4

parent

407f71cc061564d63b7358dd36a5bfebda05b15a

4 files changed, 11 insertions(+), 10 deletions(-)

jump to
M cgit.csscgit.css

@@ -291,13 +291,15 @@ div#cgit table.blob pre {

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; text-align: right; 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; }
M tests/t0104-tree.shtests/t0104-tree.sh

@@ -10,11 +10,11 @@

test_expect_success 'generate bar/tree/file-50' 'cgit_url "bar/tree/file-50" >tmp' 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' ' - ! 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'
M ui-ssdiff.cui-ssdiff.c

@@ -230,9 +230,9 @@ if (old_line_no > 0) {

struct diff_filespec *old_file = cgit_get_current_old_file(); 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); - 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)); - 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>"); htmlf("<td class='%s'>", class); } else if (old_line)

@@ -251,9 +251,9 @@ if (new_line_no > 0) {

struct diff_filespec *new_file = cgit_get_current_new_file(); 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); - 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)); - 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>"); htmlf("<td class='%s'>", class); } else if (new_line)
M ui-tree.cui-tree.c

@@ -21,8 +21,7 @@

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