-rw-r--r-- | cgit.css | 23 | ||||
-rw-r--r-- | ui-shared.c | 5 |
2 files changed, 16 insertions, 12 deletions
@@ -1,170 +1,173 @@ body { font-family: arial; font-size: normal; background: white; padding: 0em; - margin: 0.5em 1em; + margin: 0em; } h2 { font-size: 120%; font-weight: bold; margin-bottom: 0.5em; } a { color: blue; text-decoration: none; } a:hover { text-decoration: underline; } table.list { border: none; border-collapse: collapse; } table.list tr { background: white; } table.list tr:hover { background: #eee; } table.list tr.nohover:hover { background: white; } table.list th { font-weight: normal; border-bottom: solid 1px #777; padding: 0.1em 0.5em 0.1em 0.5em; vertical-align: baseline; } table.list td { border: none; padding: 0.1em 0.5em 0.1em 0.5em; } img { border: none; } - -div#header { +table#layout { + width: 100%; + border-collapse: collapse; + margin: 0px; +} +td#header { background-color: #ddd; padding: 0.25em 0.25em 0.25em 0.5em; font-size: 150%; font-weight: bold; - border: solid 1px #aaa; + border-bottom: solid 1px #aaa; vertical-align: middle; - margin-bottom: 2em; } -div#header img#logo { +td#header img#logo { float: right; } -div#header input { +td#header input { float: right; margin: 0.25em 1em; } -div#header a { +td#header a { color: black; } -div#content { - margin: 0.5em 0.5em; +td#content { + padding: 1em 0.5em; } div#blob { border: solid 1px black; } div.error { color: red; font-weight: bold; margin: 1em 2em; } div.ls-blob, div.ls-dir { font-family: monospace; } div.ls-dir a { font-weight: bold; } th.filesize, td.filesize { text-align: right; } td.filesize { font-family: monospace; } td.filemode { font-family: monospace; } td.blob { white-space: pre; font-family: monospace; background-color: white; } table.nowrap td { white-space: nowrap; } table.commit-info { border-collapse: collapse; margin-top: 1.5em; } table.commit-info th { text-align: left; font-weight: normal; padding: 0.1em 1em 0.1em 0.1em; } table.commit-info td { font-weight: normal; padding: 0.1em 1em 0.1em 0.1em; } div.commit-subject { font-weight: bold; font-size: 125%; margin: 1.5em 0em 0.5em 0em; padding: 0em; } div.commit-msg { white-space: pre; font-family: monospace; } table.diffstat { border-collapse: collapse; margin-top: 1.5em; } table.diffstat th { font-weight: normal; text-align: left; text-decoration: underline; padding: 0.1em 1em 0.1em 0.1em; font-size: 100%; } table.diffstat td { padding: 0.1em 1em 0.1em 0.1em; font-size: 100%; } table.diffstat td span.modechange { padding-left: 1em; color: red; } table.diffstat td.add a { color: green; } table.diffstat td.del a { color: red; } table.diffstat td.upd a { color: blue; } table.diffstat td.summary { /* border-top: solid 1px black; */ color: #888; padding-top: 0.5em; } table.diff td { border: solid 1px black; diff --git a/ui-shared.c b/ui-shared.c index bebd3e0..6300516 100644 --- a/ui-shared.c +++ b/ui-shared.c @@ -14,126 +14,127 @@ const char cgit_doctype[] = static char *http_date(time_t t) { static char day[][4] = {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"}; static char month[][4] = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Now", "Dec"}; struct tm *tm = gmtime(&t); return fmt("%s, %02d %s %04d %02d:%02d:%02d GMT", day[tm->tm_wday], tm->tm_mday, month[tm->tm_mon], 1900+tm->tm_year, tm->tm_hour, tm->tm_min, tm->tm_sec); } static long ttl_seconds(long ttl) { if (ttl<0) return 60 * 60 * 24 * 365; else return ttl * 60; } void cgit_print_error(char *msg) { html("<div class='error'>"); html_txt(msg); html("</div>\n"); } char *cgit_repourl(const char *reponame) { if (cgit_virtual_root) { return fmt("%s/%s/", cgit_virtual_root, reponame); } else { return fmt("?r=%s", reponame); } } char *cgit_pageurl(const char *reponame, const char *pagename, const char *query) { if (cgit_virtual_root) { return fmt("%s/%s/%s/?%s", cgit_virtual_root, reponame, pagename, query); } else { return fmt("?r=%s&p=%s&%s", reponame, pagename, query); } } char *cgit_currurl() { if (!cgit_virtual_root) return "./cgit.cgi"; else if (cgit_query_page) return fmt("%s/%s/%s/", cgit_virtual_root, cgit_query_repo, cgit_query_page); else if (cgit_query_repo) return fmt("%s/%s/", cgit_virtual_root, cgit_query_repo); else return fmt("%s/", cgit_virtual_root); } void cgit_print_date(unsigned long secs) { char buf[32]; struct tm *time; time = gmtime(&secs); strftime(buf, sizeof(buf), "%Y-%m-%d %H:%M:%S", time); html_txt(buf); } void cgit_print_docstart(char *title, struct cacheitem *item) { html("Content-Type: text/html; charset=utf-8\n"); htmlf("Last-Modified: %s\n", http_date(item->st.st_mtime)); htmlf("Expires: %s\n", http_date(item->st.st_mtime + ttl_seconds(item->ttl))); html("\n"); html(cgit_doctype); html("<html>\n"); html("<head>\n"); html("<title>"); html_txt(title); html("</title>\n"); htmlf("<meta name='generator' content='cgit v%s'/>\n", cgit_version); html("<link rel='stylesheet' type='text/css' href='"); html_attr(cgit_css); html("'/>\n"); html("</head>\n"); html("<body>\n"); } void cgit_print_docend() { + html("</td></tr></table>"); html("</body>\n</html>\n"); } void cgit_print_pageheader(char *title, int show_search) { - html("<div id='header'>"); + html("<table id='layout'><tr><td id='header'>"); htmlf("<a href='%s'>", cgit_logo_link); htmlf("<img id='logo' src='%s'/>\n", cgit_logo); htmlf("</a>"); if (show_search) { html("<form method='get' href='"); html_attr(cgit_currurl()); html("'>"); if (cgit_query_head) html_hidden("h", cgit_query_head); if (cgit_query_sha1) html_hidden("id", cgit_query_sha1); if (cgit_query_sha2) html_hidden("id2", cgit_query_sha2); html("<input type='text' name='q' value='"); html_attr(cgit_query_search); html("'/></form>"); } if (cgit_query_repo) htmlf("<a href='%s'>", cgit_repourl(cgit_query_repo)); html_txt(title); if (cgit_query_repo) html("</a>"); - html("</div>"); + html("</td></tr><tr><td id='content'>"); } |