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
diff --git a/cgit.c b/cgit.c index 513ea12..2039ab1 100644 --- a/cgit.c +++ b/cgit.c | |||
@@ -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")) |
diff --git a/cgit.h b/cgit.h index 78b30ba..8c64efe 100644 --- a/cgit.h +++ b/cgit.h | |||
@@ -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) { |