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);
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 {
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");
}
{
html("<table id='header'>\n");
html("<tr>\n");
- html("<td class='logo' rowspan='2'><a href='");
- if (ctx->cfg.logo_link)
- html_attr(ctx->cfg.logo_link);
- else
- html_attr(cgit_rooturl());
- html("'><img src='");
- html_attr(ctx->cfg.logo);
- html("' alt='cgit logo'/></a></td>\n");
+
+ if (ctx->cfg.logo && ctx->cfg.logo[0] != 0) {
+ html("<td class='logo' rowspan='2'><a href='");
+ if (ctx->cfg.logo_link)
+ html_attr(ctx->cfg.logo_link);
+ else
+ html_attr(cgit_rooturl());
+ html("'><img src='");
+ html_attr(ctx->cfg.logo);
+ html("' alt='cgit logo'/></a></td>\n");
+ }
html("<td class='main'>");
if (ctx->repo) {
const char *hex, int snapshots)
{
const struct cgit_snapshot_format* f;
+ char *prefix;
char *filename;
+ unsigned char sha1[20];
+ if (get_sha1(fmt("refs/tags/%s", hex), sha1) == 0 &&
+ (hex[0] == 'v' || hex[0] == 'V') && isdigit(hex[1]))
+ hex++;
+ prefix = xstrdup(fmt("%s-%s", cgit_repobasename(repo), hex));
for (f = cgit_snapshot_formats; f->suffix; f++) {
if (!(snapshots & f->bit))
continue;
- filename = fmt("%s-%s%s", cgit_repobasename(repo), hex,
- f->suffix);
+ filename = fmt("%s%s", prefix, f->suffix);
cgit_snapshot_link(filename, NULL, NULL, NULL, NULL, filename);
html("<br/>");
}