-rw-r--r-- | cgit.c | 2 | ||||
-rw-r--r-- | cgit.h | 1 | ||||
-rw-r--r-- | cgitrc | 2 | ||||
-rw-r--r-- | ui-shared.c | 5 |
4 files changed, 10 insertions, 0 deletions
@@ -12,32 +12,34 @@ #include "configfile.h" #include "html.h" #include "ui-shared.h" const char *cgit_version = CGIT_VERSION; void config_cb(const char *name, const char *value) { if (!strcmp(name, "root-title")) ctx.cfg.root_title = xstrdup(value); else if (!strcmp(name, "root-desc")) ctx.cfg.root_desc = xstrdup(value); else if (!strcmp(name, "root-readme")) ctx.cfg.root_readme = xstrdup(value); else if (!strcmp(name, "css")) ctx.cfg.css = xstrdup(value); + else if (!strcmp(name, "favicon")) + ctx.cfg.favicon = xstrdup(value); else if (!strcmp(name, "footer")) ctx.cfg.footer = xstrdup(value); else if (!strcmp(name, "logo")) ctx.cfg.logo = xstrdup(value); else if (!strcmp(name, "index-header")) ctx.cfg.index_header = xstrdup(value); else if (!strcmp(name, "index-info")) ctx.cfg.index_info = xstrdup(value); else if (!strcmp(name, "logo-link")) ctx.cfg.logo_link = xstrdup(value); else if (!strcmp(name, "module-link")) ctx.cfg.module_link = xstrdup(value); else if (!strcmp(name, "virtual-root")) { ctx.cfg.virtual_root = trim_end(value, '/'); if (!ctx.cfg.virtual_root && (!strcmp(value, "/"))) ctx.cfg.virtual_root = ""; @@ -112,32 +112,33 @@ struct cgit_query { char *search; char *grep; char *head; char *sha1; char *sha2; char *path; char *name; char *mimetype; int ofs; }; struct cgit_config { char *agefile; char *cache_root; char *clone_prefix; char *css; + char *favicon; char *footer; char *index_header; char *index_info; char *logo; char *logo_link; char *module_link; char *repo_group; char *robots; char *root_title; char *root_desc; char *root_readme; char *script_name; char *virtual_root; int cache_size; int cache_dynamic_ttl; int cache_max_create_time; @@ -94,32 +94,34 @@ #root-desc=a fast web interface for the git dscm ## If specified, the file at this path will be included as HTML in the ## sidebar on the repository index page #index-info= ## If specified, the file at this path will be included as HTML above ## the repository index #index-header= ## Link to css file #css=/cgit/cgit.css +## Link to favicon +#favicon=/favicon.ico ## Link to logo file #logo=/cgit/git-logo.png ## Url loaded when clicking the logo #logo-link=http://www.kernel.org/pub/software/scm/git/docs/ ## Url loaded when clicking a submodule link #module-link=./?repo=%s&page=commit&id=%s ## Shared prefix which, when combined with repo url, becomes the url used ## to clone the repo #clone-prefix= diff --git a/ui-shared.c b/ui-shared.c index 8a00099..6f83d2a 100644 --- a/ui-shared.c +++ b/ui-shared.c @@ -424,32 +424,37 @@ void cgit_print_http_headers(struct cgit_context *ctx) } void cgit_print_docstart(struct cgit_context *ctx) { html(cgit_doctype); html("<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>\n"); html("<head>\n"); html("<title>"); html_txt(ctx->page.title); html("</title>\n"); htmlf("<meta name='generator' content='cgit %s'/>\n", cgit_version); if (ctx->cfg.robots && *ctx->cfg.robots) htmlf("<meta name='robots' content='%s'/>\n", ctx->cfg.robots); html("<link rel='stylesheet' type='text/css' href='"); html_attr(ctx->cfg.css); html("'/>\n"); + if (ctx->cfg.favicon) { + html("<link rel='shortcut icon' href='"); + html_attr(ctx->cfg.favicon); + html("'/>\n"); + } html("</head>\n"); html("<body>\n"); } void cgit_print_docend() { html("</div>"); if (ctx.cfg.footer) html_include(ctx.cfg.footer); else { html("<div class='footer'>generated "); cgit_print_date(time(NULL), FMT_LONGDATE); htmlf(" by cgit %s", cgit_version); html("</div>\n"); } html("</body>\n</html>\n"); |