Add atom-support

This enables a page which generates atom feeds for the current branch and
path, heavily inspired by the atom-support in gitweb.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
Tá an tiomantas seo le fáil i:
Lars Hjemli
2008-05-21 08:17:54 +02:00
tuismitheoir 0f0ab148c6
tiomantas b2a3d31e88
D'athraigh 7 comhad le 168 breiseanna agus 0 scriosta

Féach ar an gComhad

@ -34,6 +34,21 @@ void cgit_print_error(char *msg)
html("</div>\n");
}
char *cgit_hosturl()
{
char *host, *port;
host = getenv("SERVER_NAME");
if (!host)
return NULL;
port = getenv("SERVER_PORT");
if (port && atoi(port) != 80)
host = xstrdup(fmt("%s:%d", host, atoi(port)));
else
host = xstrdup(host);
return host;
}
char *cgit_rooturl()
{
if (ctx.cfg.virtual_root)
@ -428,6 +443,7 @@ void cgit_print_http_headers(struct cgit_context *ctx)
void cgit_print_docstart(struct cgit_context *ctx)
{
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");
@ -445,6 +461,13 @@ void cgit_print_docstart(struct cgit_context *ctx)
html_attr(ctx->cfg.favicon);
html("'/>\n");
}
if (host && ctx->repo) {
html("<link rel='alternate' title='Atom feed' href='http://");
html_attr(cgit_hosturl());
html_attr(cgit_fileurl(ctx->repo->url, "atom", ctx->qry.path,
fmt("h=%s", ctx->qry.head)));
html("' type='application/atom+xml'/>");
}
html("</head>\n");
html("<body>\n");
}