diff options
| -rw-r--r-- | cgit.c | 4 | ||||
| -rw-r--r-- | cgit.h | 2 | ||||
| -rw-r--r-- | cgitrc.5.txt | 9 | ||||
| -rw-r--r-- | ui-shared.c | 28 |
4 files changed, 37 insertions, 6 deletions
| @@ -51,6 +51,8 @@ void config_cb(const char *name, const char *value) | |||
| 51 | ctx.cfg.virtual_root = ""; | 51 | ctx.cfg.virtual_root = ""; |
| 52 | } else if (!strcmp(name, "nocache")) | 52 | } else if (!strcmp(name, "nocache")) |
| 53 | ctx.cfg.nocache = atoi(value); | 53 | ctx.cfg.nocache = atoi(value); |
| 54 | else if (!strcmp(name, "noheader")) | ||
| 55 | ctx.cfg.noheader = atoi(value); | ||
| 54 | else if (!strcmp(name, "snapshots")) | 56 | else if (!strcmp(name, "snapshots")) |
| 55 | ctx.cfg.snapshots = cgit_parse_snapshots_mask(value); | 57 | ctx.cfg.snapshots = cgit_parse_snapshots_mask(value); |
| 56 | else if (!strcmp(name, "enable-index-links")) | 58 | else if (!strcmp(name, "enable-index-links")) |
| @@ -73,6 +75,8 @@ void config_cb(const char *name, const char *value) | |||
| 73 | ctx.cfg.cache_static_ttl = atoi(value); | 75 | ctx.cfg.cache_static_ttl = atoi(value); |
| 74 | else if (!strcmp(name, "cache-dynamic-ttl")) | 76 | else if (!strcmp(name, "cache-dynamic-ttl")) |
| 75 | ctx.cfg.cache_dynamic_ttl = atoi(value); | 77 | ctx.cfg.cache_dynamic_ttl = atoi(value); |
| 78 | else if (!strcmp(name, "embedded")) | ||
| 79 | ctx.cfg.embedded = atoi(value); | ||
| 76 | else if (!strcmp(name, "max-message-length")) | 80 | else if (!strcmp(name, "max-message-length")) |
| 77 | ctx.cfg.max_msg_len = atoi(value); | 81 | ctx.cfg.max_msg_len = atoi(value); |
| 78 | else if (!strcmp(name, "max-repodesc-length")) | 82 | else if (!strcmp(name, "max-repodesc-length")) |
| @@ -156,6 +156,7 @@ struct cgit_config { | |||
| 156 | int cache_repo_ttl; | 156 | int cache_repo_ttl; |
| 157 | int cache_root_ttl; | 157 | int cache_root_ttl; |
| 158 | int cache_static_ttl; | 158 | int cache_static_ttl; |
| 159 | int embedded; | ||
| 159 | int enable_index_links; | 160 | int enable_index_links; |
| 160 | int enable_log_filecount; | 161 | int enable_log_filecount; |
| 161 | int enable_log_linecount; | 162 | int enable_log_linecount; |
| @@ -167,6 +168,7 @@ struct cgit_config { | |||
| 167 | int max_repodesc_len; | 168 | int max_repodesc_len; |
| 168 | int max_stats; | 169 | int max_stats; |
| 169 | int nocache; | 170 | int nocache; |
| 171 | int noheader; | ||
| 170 | int renamelimit; | 172 | int renamelimit; |
| 171 | int snapshots; | 173 | int snapshots; |
| 172 | int summary_branches; | 174 | int summary_branches; |
diff --git a/cgitrc.5.txt b/cgitrc.5.txt index 683f3b5..a207fe0 100644 --- a/cgitrc.5.txt +++ b/cgitrc.5.txt | |||
| @@ -59,6 +59,11 @@ css:: | |||
| 59 | Url which specifies the css document to include in all cgit pages. | 59 | Url which specifies the css document to include in all cgit pages. |
| 60 | Default value: "/cgit.css". | 60 | Default value: "/cgit.css". |
| 61 | 61 | ||
| 62 | embedded:: | ||
| 63 | Flag which, when set to "1", will make cgit generate a html fragment | ||
| 64 | suitable for embedding in other html pages. Default value: none. See | ||
| 65 | also: "noheader". | ||
| 66 | |||
| 62 | enable-index-links:: | 67 | enable-index-links:: |
| 63 | Flag which, when set to "1", will make cgit generate extra links for | 68 | Flag which, when set to "1", will make cgit generate extra links for |
| 64 | each repo in the repository index (specifically, to the "summary", | 69 | each repo in the repository index (specifically, to the "summary", |
| @@ -153,6 +158,10 @@ nocache:: | |||
| 153 | deprecated, and will not be honored starting with cgit-1.0. Default | 158 | deprecated, and will not be honored starting with cgit-1.0. Default |
| 154 | value: "0". | 159 | value: "0". |
| 155 | 160 | ||
| 161 | noheader:: | ||
| 162 | Flag which, when set to "1", will make cgit omit the standard header | ||
| 163 | on all pages. Default value: none. See also: "embedded". | ||
| 164 | |||
| 156 | renamelimit:: | 165 | renamelimit:: |
| 157 | Maximum number of files to consider when detecting renames. The value | 166 | Maximum number of files to consider when detecting renames. The value |
| 158 | "-1" uses the compiletime value in git (for further info, look at | 167 | "-1" uses the compiletime value in git (for further info, look at |
diff --git a/ui-shared.c b/ui-shared.c index 66d5b82..015c52b 100644 --- a/ui-shared.c +++ b/ui-shared.c | |||
| @@ -469,6 +469,9 @@ void cgit_print_http_headers(struct cgit_context *ctx) | |||
| 469 | { | 469 | { |
| 470 | const char *method = getenv("REQUEST_METHOD"); | 470 | const char *method = getenv("REQUEST_METHOD"); |
| 471 | 471 | ||
| 472 | if (ctx->cfg.embedded) | ||
| 473 | return; | ||
| 474 | |||
| 472 | if (ctx->page.status) | 475 | if (ctx->page.status) |
| 473 | htmlf("Status: %d %s\n", ctx->page.status, ctx->page.statusmsg); | 476 | htmlf("Status: %d %s\n", ctx->page.status, ctx->page.statusmsg); |
| 474 | if (ctx->page.mimetype && ctx->page.charset) | 477 | if (ctx->page.mimetype && ctx->page.charset) |
| @@ -492,6 +495,9 @@ void cgit_print_http_headers(struct cgit_context *ctx) | |||
| 492 | 495 | ||
| 493 | void cgit_print_docstart(struct cgit_context *ctx) | 496 | void cgit_print_docstart(struct cgit_context *ctx) |
| 494 | { | 497 | { |
| 498 | if (ctx->cfg.embedded) | ||
| 499 | return; | ||
| 500 | |||
| 495 | char *host = cgit_hosturl(); | 501 | char *host = cgit_hosturl(); |
| 496 | html(cgit_doctype); | 502 | html(cgit_doctype); |
| 497 | html("<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>\n"); | 503 | html("<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>\n"); |
| @@ -537,6 +543,9 @@ void cgit_print_docend() | |||
| 537 | cgit_print_date(time(NULL), FMT_LONGDATE, ctx.cfg.local_time); | 543 | cgit_print_date(time(NULL), FMT_LONGDATE, ctx.cfg.local_time); |
| 538 | html("</div>\n"); | 544 | html("</div>\n"); |
| 539 | } | 545 | } |
| 546 | html("</div>"); | ||
| 547 | if (ctx.cfg.embedded) | ||
| 548 | return; | ||
| 540 | html("</body>\n</html>\n"); | 549 | html("</body>\n</html>\n"); |
| 541 | } | 550 | } |
| 542 | 551 | ||
| @@ -624,13 +633,8 @@ char *hc(struct cgit_cmd *cmd, const char *page) | |||
| 624 | return (strcmp(cmd ? cmd->name : fallback_cmd, page) ? NULL : "active"); | 633 | return (strcmp(cmd ? cmd->name : fallback_cmd, page) ? NULL : "active"); |
| 625 | } | 634 | } |
| 626 | 635 | ||
| 627 | void cgit_print_pageheader(struct cgit_context *ctx) | 636 | static void print_header(struct cgit_context *ctx) |
| 628 | { | 637 | { |
| 629 | struct cgit_cmd *cmd = cgit_get_cmd(ctx); | ||
| 630 | |||
| 631 | if (!cmd && ctx->repo) | ||
| 632 | fallback_cmd = "summary"; | ||
| 633 | |||
| 634 | html("<table id='header'>\n"); | 638 | html("<table id='header'>\n"); |
| 635 | html("<tr>\n"); | 639 | html("<tr>\n"); |
| 636 | html("<td class='logo' rowspan='2'><a href='"); | 640 | html("<td class='logo' rowspan='2'><a href='"); |
| @@ -671,6 +675,18 @@ void cgit_print_pageheader(struct cgit_context *ctx) | |||
| 671 | html_include(ctx->cfg.index_info); | 675 | html_include(ctx->cfg.index_info); |
| 672 | } | 676 | } |
| 673 | html("</td></tr></table>\n"); | 677 | html("</td></tr></table>\n"); |
| 678 | } | ||
| 679 | |||
| 680 | void cgit_print_pageheader(struct cgit_context *ctx) | ||
| 681 | { | ||
| 682 | struct cgit_cmd *cmd = cgit_get_cmd(ctx); | ||
| 683 | |||
| 684 | if (!cmd && ctx->repo) | ||
| 685 | fallback_cmd = "summary"; | ||
| 686 | |||
| 687 | html("<div id='cgit'>"); | ||
| 688 | if (!ctx->cfg.noheader) | ||
| 689 | print_header(ctx); | ||
| 674 | 690 | ||
| 675 | html("<table class='tabs'><tr><td>\n"); | 691 | html("<table class='tabs'><tr><td>\n"); |
| 676 | if (ctx->repo) { | 692 | if (ctx->repo) { |
