all repos — cgit @ 268b34af23cdcac87aed3300bfe6154cbc65753e

a hyperfast web frontend for git written in c

ui-log: Colorize commit graph

Use the existing coloring logic in Git's graph code to color the lines
between commits in the commit graph.

Whereas Git normally uses ANSI color escapes to produce colors, we here
use graph_set_column_colors() to replace those with HTML color escapes,
that embed the graph lines in <span> tags that apply the desired color
using CSS.

Signed-off-by: Johan Herland <johan@herland.net>
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
Johan Herland johan@herland.net
Mon, 15 Nov 2010 18:39:51 +0100
commit

268b34af23cdcac87aed3300bfe6154cbc65753e

parent

9a8d39c668b98464bac97d4e5442966de63f97b2

2 files changed, 43 insertions(+), 0 deletions(-)

jump to
M cgit.csscgit.css

@@ -158,6 +158,30 @@ font-family: monospace;

white-space: pre; } +table.list td.commitgraph .column1 { + color: #a00; +} + +table.list td.commitgraph .column2 { + color: #0a0; +} + +table.list td.commitgraph .column3 { + color: #aa0; +} + +table.list td.commitgraph .column4 { + color: #00a; +} + +table.list td.commitgraph .column5 { + color: #a0a; +} + +table.list td.commitgraph .column6 { + color: #0aa; +} + table.list td.logsubject { font-family: monospace; font-weight: bold;
M ui-log.cui-log.c

@@ -13,6 +13,21 @@ #include "vector.h"

int files, add_lines, rem_lines; +/* + * The list of available column colors in the commit graph. + */ +static const char *column_colors_html[] = { + "<span class='column1'>", + "<span class='column2'>", + "<span class='column3'>", + "<span class='column4'>", + "<span class='column5'>", + "<span class='column6'>", + "</span>", +}; + +#define COLUMN_COLORS_HTML_MAX (ARRAY_SIZE(column_colors_html) - 1) + void count_lines(char *line, int size) { if (size <= 0)

@@ -273,7 +288,11 @@ }

} if (ctx.repo->enable_commit_graph) { static const char *graph_arg = "--graph"; + static const char *color_arg = "--color"; vector_push(&vec, &graph_arg, 0); + vector_push(&vec, &color_arg, 0); + graph_set_column_colors(column_colors_html, + COLUMN_COLORS_HTML_MAX); } if (path) {