author | Lars Hjemli <hjemli@gmail.com> | 2009-08-11 08:12:35 (UTC) |
---|---|---|
committer | Lars Hjemli <hjemli@gmail.com> | 2009-08-11 08:12:35 (UTC) |
commit | 80550bbe028b551550395653d32a0ba50db540ef (patch) (side-by-side diff) | |
tree | 9dbbe6dbdbb705a55ace4524cca1435290ce4d2a /ui-shared.c | |
parent | 8b2252b0b61617e9de9d9e9ba743881ad62523af (diff) | |
download | cgit-80550bbe028b551550395653d32a0ba50db540ef.zip cgit-80550bbe028b551550395653d32a0ba50db540ef.tar.gz cgit-80550bbe028b551550395653d32a0ba50db540ef.tar.bz2 |
ui-shared: add support for header/footer options when embedded=1
When embedded=1, cgit used to ignore the header and footer options.
But honoring these options when embedded=1 makes it possible to "frame"
the html fragment generated by cgit with any kind of static content,
i.e. it should become easier to integrate cgit with site-specfic
layouts.
Original-patch-by: Mark Constable <markc@renta.net>
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
-rw-r--r-- | ui-shared.c | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/ui-shared.c b/ui-shared.c index 4175bd8..cf06511 100644 --- a/ui-shared.c +++ b/ui-shared.c @@ -476,18 +476,21 @@ void cgit_print_http_headers(struct cgit_context *ctx) htmlf("ETag: \"%s\"\n", ctx->page.etag); html("\n"); if (ctx->env.request_method && !strcmp(ctx->env.request_method, "HEAD")) exit(0); } void cgit_print_docstart(struct cgit_context *ctx) { - if (ctx->cfg.embedded) + if (ctx->cfg.embedded) { + if (ctx->cfg.header) + html_include(ctx->cfg.header); return; + } char *host = cgit_hosturl(); 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"); @@ -515,28 +518,32 @@ void cgit_print_docstart(struct cgit_context *ctx) html("</head>\n"); html("<body>\n"); if (ctx->cfg.header) html_include(ctx->cfg.header); } void cgit_print_docend() { - html("</div>"); + html("</div> <!-- class=content -->\n"); + if (ctx.cfg.embedded) { + html("</div> <!-- id=cgit -->\n"); + if (ctx.cfg.footer) + html_include(ctx.cfg.footer); + return; + } if (ctx.cfg.footer) html_include(ctx.cfg.footer); else { htmlf("<div class='footer'>generated by cgit %s at ", cgit_version); cgit_print_date(time(NULL), FMT_LONGDATE, ctx.cfg.local_time); html("</div>\n"); } - html("</div>"); - if (ctx.cfg.embedded) - return; + html("</div> <!-- id=cgit -->\n"); html("</body>\n</html>\n"); } int print_branch_option(const char *refname, const unsigned char *sha1, int flags, void *cb_data) { char *name = (char *)refname; html_option(name, name, ctx.qry.head); |