History

Add support for an 'embedded' option in cgitrc

When activated, cgit will neither generate http headers nor any 'framing' html elements (like <html> and <body>). Also, all page content is now wrapped in a <div id='cgit'> element to make it easier to select the correct cgit classes when embedded/themed.

Lars Hjemli committed 17 years ago

Commit 0cbb5081 parent 8cc02873 files · +13 −0Browse files

Unified · Split

3 files
  1. cgit.c +2 −0
  2. cgit.h +1 −0
  3. ui-shared.c +10 −0
cgit.c+2−0
@@ -71,6 +71,8 @@ void config_cb(const char *name, const char *value) · 70 unmodified lines
7171 ctx.cfg.cache_static_ttl = atoi(value);
7272 else if (!strcmp(name, "cache-dynamic-ttl"))
7373 ctx.cfg.cache_dynamic_ttl = atoi(value);
74+ else if (!strcmp(name, "embedded"))
75+ ctx.cfg.embedded = atoi(value);
7476 else if (!strcmp(name, "max-message-length"))
7577 ctx.cfg.max_msg_len = atoi(value);
7678 else if (!strcmp(name, "max-repodesc-length"))
cgit.h+1−0
@@ -171,6 +171,7 @@ struct cgit_config { · 170 unmodified lines
171171 int summary_branches;
172172 int summary_log;
173173 int summary_tags;
174+ int embedded;
174175 };
175176
176177 struct cgit_page {
ui-shared.c+10−0
@@ -456,6 +456,9 @@ void cgit_print_age(time_t t, time_t max_relative, char *format) · 455 unmodified lines
456456
457457 void cgit_print_http_headers(struct cgit_context *ctx)
458458 {
459+ if (ctx->cfg.embedded)
460+ return;
461+
459462 if (ctx->page.mimetype && ctx->page.charset)
460463 htmlf("Content-Type: %s; charset=%s\n", ctx->page.mimetype,
461464 ctx->page.charset);
@@ -473,6 +476,9 @@ void cgit_print_http_headers(struct cgit_context *ctx) · 11 unmodified lines
473476
474477 void cgit_print_docstart(struct cgit_context *ctx)
475478 {
479+ if (ctx->cfg.embedded)
480+ return;
481+
476482 char *host = cgit_hosturl();
477483 html(cgit_doctype);
478484 html("<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>\n");
@@ -515,6 +521,9 @@ void cgit_print_docend() · 36 unmodified lines
515521 cgit_print_date(time(NULL), FMT_LONGDATE, ctx.cfg.local_time);
516522 html("</div>\n");
517523 }
524+ html("</div>");
525+ if (ctx.cfg.embedded)
526+ return;
518527 html("</body>\n</html>\n");
519528 }
520529
@@ -609,6 +618,7 @@ void cgit_print_pageheader(struct cgit_context *ctx) · 88 unmodified lines
609618 if (!cmd && ctx->repo)
610619 fallback_cmd = "summary";
611620
621+ html("<div id='cgit'>");
612622 html("<table id='header'>\n");
613623 html("<tr>\n");
614624 html("<td class='logo' rowspan='2'><a href='");