Merge branch 'index-header'

* index-header:
  Teach cgit howto include an external file on index page.
  Add html_include()
This commit is contained in:
Lars Hjemli 2007-05-20 14:33:59 +02:00
commit 977a0b173d
4 changed files with 24 additions and 0 deletions

2
cgit.h
View File

@ -75,6 +75,7 @@ extern struct repoinfo *cgit_repo;
extern char *cgit_root_title; extern char *cgit_root_title;
extern char *cgit_css; extern char *cgit_css;
extern char *cgit_logo; extern char *cgit_logo;
extern char *cgit_index_header;
extern char *cgit_logo_link; extern char *cgit_logo_link;
extern char *cgit_module_link; extern char *cgit_module_link;
extern char *cgit_virtual_root; extern char *cgit_virtual_root;
@ -144,6 +145,7 @@ extern void html_hidden(char *name, char *value);
extern void html_link_open(char *url, char *title, char *class); extern void html_link_open(char *url, char *title, char *class);
extern void html_link_close(void); extern void html_link_close(void);
extern void html_filemode(unsigned short mode); extern void html_filemode(unsigned short mode);
extern int html_include(const char *filename);
extern int cgit_read_config(const char *filename, configfn fn); extern int cgit_read_config(const char *filename, configfn fn);
extern int cgit_parse_query(char *txt, configfn fn); extern int cgit_parse_query(char *txt, configfn fn);

14
html.c
View File

@ -166,3 +166,17 @@ void html_filemode(unsigned short mode)
html_fileperm(mode >> 3); html_fileperm(mode >> 3);
html_fileperm(mode); html_fileperm(mode);
} }
int html_include(const char *filename)
{
FILE *f;
char buf[4096];
size_t len;
if (!(f = fopen(filename, "r")))
return -1;
while((len = fread(buf, 1, 4096, f)) > 0)
write(htmlfd, buf, len);
fclose(f);
return 0;
}

View File

@ -14,6 +14,7 @@ struct repoinfo *cgit_repo;
char *cgit_root_title = "Git repository browser"; char *cgit_root_title = "Git repository browser";
char *cgit_css = "/cgit.css"; char *cgit_css = "/cgit.css";
char *cgit_logo = "/git-logo.png"; char *cgit_logo = "/git-logo.png";
char *cgit_index_header = NULL;
char *cgit_logo_link = "http://www.kernel.org/pub/software/scm/git/docs/"; char *cgit_logo_link = "http://www.kernel.org/pub/software/scm/git/docs/";
char *cgit_module_link = "./?repo=%s&page=commit&id=%s"; char *cgit_module_link = "./?repo=%s&page=commit&id=%s";
char *cgit_virtual_root = NULL; char *cgit_virtual_root = NULL;
@ -101,6 +102,8 @@ void cgit_global_config_cb(const char *name, const char *value)
cgit_css = xstrdup(value); cgit_css = xstrdup(value);
else if (!strcmp(name, "logo")) else if (!strcmp(name, "logo"))
cgit_logo = xstrdup(value); cgit_logo = xstrdup(value);
else if (!strcmp(name, "index-header"))
cgit_index_header = xstrdup(value);
else if (!strcmp(name, "logo-link")) else if (!strcmp(name, "logo-link"))
cgit_logo_link = xstrdup(value); cgit_logo_link = xstrdup(value);
else if (!strcmp(name, "module-link")) else if (!strcmp(name, "module-link"))

View File

@ -17,6 +17,11 @@ void cgit_print_repolist(struct cacheitem *item)
cgit_print_pageheader(cgit_root_title, 0); cgit_print_pageheader(cgit_root_title, 0);
html("<table class='list nowrap'>"); html("<table class='list nowrap'>");
if (cgit_index_header) {
html("<tr class='nohover'><td colspan='4' class='include-block'>");
html_include(cgit_index_header);
html("</td></tr>");
}
html("<tr class='nohover'>" html("<tr class='nohover'>"
"<th class='left'>Name</th>" "<th class='left'>Name</th>"
"<th class='left'>Description</th>" "<th class='left'>Description</th>"