the repository which powers this website
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 <[email protected]> Signed-off-by: Lukas Fleischer <[email protected]>
Peter Wu 2014-01-08
parent 407f71c · commit 4468ec1
-rw-r--r--cgit.css6
-rwxr-xr-xtests/t0104-tree.sh4
-rw-r--r--ui-ssdiff.c8
-rw-r--r--ui-tree.c3
4 files changed, 11 insertions, 10 deletions
diff --git a/cgit.css b/cgit.css
index d467c662..71b0b9b6 100644
--- a/cgit.css
+++ b/cgit.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;
}
diff --git a/tests/t0104-tree.sh b/tests/t0104-tree.sh
index 100b0261..2e140f59 100755
--- a/tests/t0104-tree.sh
+++ b/tests/t0104-tree.sh
@@ -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 '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'
diff --git a/ui-ssdiff.c b/ui-ssdiff.c
index cbe60bd6..08cf513b 100644
--- a/ui-ssdiff.c
+++ b/ui-ssdiff.c
@@ -230,9 +230,9 @@ static void print_ssdiff_line(char *class,
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 @@ static void print_ssdiff_line(char *class,
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)
diff --git a/ui-tree.c b/ui-tree.c
index aa5dee93..52b57b7a 100644
--- a/ui-tree.c
+++ b/ui-tree.c
@@ -21,8 +21,7 @@ struct walk_tree_context {
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");