From 0cbb50841ac82e08e715bbff614f96c7d5ba22fa Mon Sep 17 00:00:00 2001
From: Lars Hjemli
Date: Thu, 22 Jan 2009 23:33:56 +0100
Subject: Add support for an 'embedded' option in cgitrc
When activated, cgit will neither generate http headers nor any 'framing'
html elements (like and
). Also, all page content is now
wrapped in a element to make it easier to select the
correct cgit classes when embedded/themed.
Suggested-by: Matt Sealey
Signed-off-by: Lars Hjemli
---
cgit.c | 2 ++
cgit.h | 1 +
ui-shared.c | 10 ++++++++++
3 files changed, 13 insertions(+)
diff --git a/cgit.c b/cgit.c
index 64d95f9..2aef44d 100644
--- a/cgit.c
+++ b/cgit.c
@@ -71,6 +71,8 @@ void config_cb(const char *name, const char *value)
ctx.cfg.cache_static_ttl = atoi(value);
else if (!strcmp(name, "cache-dynamic-ttl"))
ctx.cfg.cache_dynamic_ttl = atoi(value);
+ else if (!strcmp(name, "embedded"))
+ ctx.cfg.embedded = atoi(value);
else if (!strcmp(name, "max-message-length"))
ctx.cfg.max_msg_len = atoi(value);
else if (!strcmp(name, "max-repodesc-length"))
diff --git a/cgit.h b/cgit.h
index 5f7af51..73d7208 100644
--- a/cgit.h
+++ b/cgit.h
@@ -171,6 +171,7 @@ struct cgit_config {
int summary_branches;
int summary_log;
int summary_tags;
+ int embedded;
};
struct cgit_page {
diff --git a/ui-shared.c b/ui-shared.c
index de77bbf..f18b2c7 100644
--- a/ui-shared.c
+++ b/ui-shared.c
@@ -456,6 +456,9 @@ void cgit_print_age(time_t t, time_t max_relative, char *format)
void cgit_print_http_headers(struct cgit_context *ctx)
{
+ if (ctx->cfg.embedded)
+ return;
+
if (ctx->page.mimetype && ctx->page.charset)
htmlf("Content-Type: %s; charset=%s\n", ctx->page.mimetype,
ctx->page.charset);
@@ -473,6 +476,9 @@ void cgit_print_http_headers(struct cgit_context *ctx)
void cgit_print_docstart(struct cgit_context *ctx)
{
+ if (ctx->cfg.embedded)
+ return;
+
char *host = cgit_hosturl();
html(cgit_doctype);
html("\n");
@@ -515,6 +521,9 @@ void cgit_print_docend()
cgit_print_date(time(NULL), FMT_LONGDATE, ctx.cfg.local_time);
html("
\n");
}
+ html("");
+ if (ctx.cfg.embedded)
+ return;
html("\n\n");
}
@@ -609,6 +618,7 @@ void cgit_print_pageheader(struct cgit_context *ctx)
if (!cmd && ctx->repo)
fallback_cmd = "summary";
+ html("");
html("