aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitea <gitea@fake.local>2020-11-01 17:15:50 -0600
committerGitea <gitea@fake.local>2020-11-01 17:15:50 -0600
commitcbb0657cfacf5f745d6da3ef80b2dd9d1d8d502e (patch)
treed0066e3a1d5f1a9fbdf9a525a3840b77fe461f8c
parent95e0e836a12ae8ec410b8ca030113ab20188ab76 (diff)
Update styles
-rw-r--r--README.md2
-rwxr-xr-xgitweb.cgi67
-rw-r--r--static/gitweb.css950
-rw-r--r--static/my_gitweb.css702
4 files changed, 1272 insertions, 449 deletions
diff --git a/README.md b/README.md
index 435a7c2..763b460 100644
--- a/README.md
+++ b/README.md
@@ -6,7 +6,7 @@ Gitweb is a CGI git repository viewer.
## Major changes
- Summary includes readme and tree views
- Description box includes clone command
-- Edited styles
+- Edited styles, including using [gitweb-theme](https://github.com/kogakure/gitweb-theme)
## Install
Follow the same instructions for [gitweb](https://git-scm.com/book/en/v2/Git-on-the-Server-GitWeb) for your webserver.
diff --git a/gitweb.cgi b/gitweb.cgi
index 2992e0f..1938a7c 100755
--- a/gitweb.cgi
+++ b/gitweb.cgi
@@ -78,6 +78,7 @@ sub evaluate_uri {
our $home_link = $my_uri || "/";
}
+my %lang_counts = ();
our $default_owner = "";
# core git executable to use
@@ -265,6 +266,18 @@ our %avatar_size = (
'double' => 32
);
+our %language_types = (
+ 'c' => 'c',
+ 'h' => 'c',
+ 'java' => 'java',
+ 'py' => 'python',
+ 'js' => 'javascript',
+ 'json' => 'json',
+ 'html' => 'html',
+ 'css' => 'css',
+ 'sh' => 'shell'
+);
+
# Used to set the maximum load that we will still respond to gitweb queries.
# If server load exceed this value then return "503 server busy" error.
# If gitweb cannot determined server load, it is taken to be 0.
@@ -4693,6 +4706,7 @@ sub git_print_tree_entry {
my %base_key = ();
$base_key{'hash_base'} = $hash_base if defined $hash_base;
+
# The format of a table row is: mode list link. Where mode is
# the mode of the entry, list is the name of the entry, an href,
# and link is the action links of the entry.
@@ -4706,6 +4720,12 @@ sub git_print_tree_entry {
$cgi->a({-href => href(action=>"blob", hash=>$t->{'hash'},
file_name=>"$basedir$t->{'name'}", %base_key),
-class => "list"}, esc_path($t->{'name'}));
+
+ my $ext = $t->{'name'} =~ s/.*\.//r;
+ if(exists $language_types{$ext} and exists $t->{'size'}){
+ $lang_counts{$ext}+=$t->{'size'};
+ }
+
if (S_ISLNK(oct $t->{'mode'})) {
my $link_target = git_get_link_target($t->{'hash'});
if ($link_target) {
@@ -4755,6 +4775,7 @@ sub git_print_tree_entry {
file_name=>"$basedir$t->{'name'}",
%base_key)},
"tree");
+
if (defined $hash_base) {
print " | " .
$cgi->a({-href => href(action=>"history", hash_base=>$hash_base,
@@ -5684,7 +5705,7 @@ sub format_sort_th {
if ($order eq $name) {
$sort_th .= "<th>$header</th>\n";
} else {
- $sort_th .= "<th>" .
+ $sort_th .= "<th class=\"".$name."\">" .
$cgi->a({-href => href(-replay=>1, order=>$name),
-class => "header"}, $header) .
"</th>\n";
@@ -5727,7 +5748,7 @@ sub git_project_list_rows {
-class => "list"},
esc_html_match_hl($pr->{'path'}, $search_regexp)) .
"</td>\n" .
- "<td>" . $cgi->a({-href => href(project=>$pr->{'path'}, action=>"summary"),
+ "<td class=\"descr\">" . $cgi->a({-href => href(project=>$pr->{'path'}, action=>"summary"),
-class => "list",
-title => $pr->{'descr_long'}},
$search_regexp
@@ -5744,7 +5765,7 @@ sub git_project_list_rows {
}
print"<td class=\"link\">" .
$cgi->a({-href => href(project=>$pr->{'path'}, action=>"summary")}, "summary") . " | " .
- $cgi->a({-href => href(project=>$pr->{'path'}, action=>"shortlog")}, "shortlog") . " | " .
+ #$cgi->a({-href => href(project=>$pr->{'path'}, action=>"shortlog")}, "shortlog") . " | " .
$cgi->a({-href => href(project=>$pr->{'path'}, action=>"log")}, "log") . " | " .
$cgi->a({-href => href(project=>$pr->{'path'}, action=>"tree")}, "tree") .
($pr->{'forks'} ? " | " . $cgi->a({-href => href(project=>$pr->{'path'}, action=>"forks")}, "forks") : '') .
@@ -6563,14 +6584,15 @@ sub git_summary {
git_print_page_nav('summary','', $head);
my $proj_head_hash = git_get_head_hash($project);
- print "<div class=\"title\">&nbsp;</div>\n";
+ #print "<div class=\"title\">&nbsp;</div>\n";
print "<div class=\"repo_header\">";
# --------------------------- README
- print "<div class=\"readme\">";
if (!$prevent_xss) {
+
my $file_name = "README.md";
my $readme_blob_hash = git_get_hash_by_path($proj_head_hash, "README.md", "blob");
if ($readme_blob_hash) { # if README.md exists
+ print "<div class=\"readme\">";
#print "<div class=\"header\">readme</div>\n";
my $cmd_markdownify = $GIT . " " . git_cmd() . " cat-file blob " . $readme_blob_hash . " | pandoc |";
open FOO, $cmd_markdownify or die_error(500, "Open git-cat-file blob '$hash' failed");
@@ -6578,9 +6600,9 @@ sub git_summary {
print $_;
}
close(FOO);
+ print "</div>";
}
}
- print "</div>";
# --------------------------- END README
#------------------------ Projects list table
print "<table class=\"projects_list\">\n";
@@ -7221,6 +7243,8 @@ sub git_tree_only {
print "</tr>\n";
}
+
+ %lang_counts = ();
foreach my $line (@entries) {
my %t = parse_ls_tree_line($line, -z => 1, -l => $show_sizes);
@@ -7235,8 +7259,29 @@ sub git_tree_only {
print "</tr>\n";
}
- print "</table>\n" .
- "</div>";
+ print "</table>\n";
+ print_lang_counts();
+ print "</div>";
+
+}
+
+sub print_lang_counts {
+
+ my $total = 0;
+ for (keys %lang_counts){
+ $total += $lang_counts{$_};
+ }
+ if($total == 0) {
+ return;
+ }
+ print "<div class=\"portion\"><span>Found: </span>";
+ for (keys %lang_counts){
+ my $percent = %lang_counts{$_}/$total * 100;
+ my $type = $language_types{$_};
+ printf("<span>%d%% %s</span> ", $percent, $type);
+ }
+ print "</div>\n";
+
}
sub git_tree {
@@ -7330,6 +7375,7 @@ sub git_tree {
print "</tr>\n";
}
+ %lang_counts = ();
foreach my $line (@entries) {
my %t = parse_ls_tree_line($line, -z => 1, -l => $show_sizes);
@@ -7344,8 +7390,9 @@ sub git_tree {
print "</tr>\n";
}
- print "</table>\n" .
- "</div>";
+ print "</table>\n";
+ print_lang_counts();
+ print "</div>\n";
git_footer_html();
}
diff --git a/static/gitweb.css b/static/gitweb.css
index 7b30c07..4fd4542 100644
--- a/static/gitweb.css
+++ b/static/gitweb.css
@@ -1,640 +1,715 @@
-body {
- font-family: sans-serif;
- font-size: small;
- border: solid #d9d8d1;
- border-width: 1px;
- margin: 10px;
- background-color: #ffffff;
- color: #000000;
-}
+/* Reset
+------------------------------------------------------------------------- */
-a {
- color: #0000cc;
-}
+/* Based on http://meyerweb.com/eric/tools/css/reset/ */
+/* v1.0 | 20080212 */
-a:hover, a:visited, a:active {
- color: #880000;
+html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p,
+blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em,
+font, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b,
+u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table,
+caption, tbody, tfoot, thead, tr, th, td {
+ margin: 0;
+ padding: 0;
+ border: 0;
+ outline: 0;
+ font-size: 100%;
+ vertical-align: baseline;
+ background: transparent;
}
-span.cntrl {
- border: dashed #aaaaaa;
- border-width: 1px;
- padding: 0px 2px 0px 2px;
- margin: 0px 2px 0px 2px;
-}
+ol, ul { list-style: none; }
-img.logo {
- float: right;
- border-width: 0px;
-}
+blockquote, q { quotes: none; }
-img.avatar {
- vertical-align: middle;
+blockquote:before, blockquote:after,
+q:before, q:after {
+ content: '';
+ content: none;
}
-img.blob {
- max-height: 100%;
- max-width: 100%;
-}
+:focus { outline: 0; }
-a.list img.avatar {
- border-style: none;
-}
+ins { text-decoration: none; }
-div.page_header {
- height: 25px;
- padding: 8px;
- font-size: 150%;
- font-weight: bold;
- background-color: #d9d8d1;
-}
+del { text-decoration: line-through; }
-div.page_header a:visited, a.header {
- color: #0000cc;
+table {
+ border-collapse: collapse;
+ border-spacing: 0;
}
-div.page_header a:hover {
- color: #880000;
-}
+a { outline: none; }
-div.page_nav {
- padding: 8px;
-}
+/* General
+---------------------------------------------------------------------------- */
-div.page_nav a:visited {
- color: #0000cc;
+html {
+ position: relative;
+ min-height: 100%;
}
-div.page_path {
- padding: 8px;
- font-weight: bold;
- border: solid #d9d8d1;
- border-width: 0px 0px 1px;
-}
-
-div.page_footer {
- height: 22px;
- padding: 4px 8px;
- background-color: #d9d8d1;
+body {
+ font: 13px Helvetica,arial,freesans,clean,sans-serif;
+ line-height: 1.4;
+ margin: 0 0 105px;
+ background-color: #fff;
+ color: #000000;
}
-div.page_footer_text {
- line-height: 22px;
- float: left;
- color: #555555;
- font-style: italic;
+/* Monospaced Fonts */
+.sha1, .mode, .diff_tree .list, .pre, .diff, .patchset {
+ font-family: 'Consolas','Bitstream Vera Sans Mono',monospace;
}
-div#generating_info {
- margin: 4px;
- font-size: smaller;
- text-align: center;
- color: #505050;
+a:link, a:visited {
+ color: #4183C4;
+ text-decoration: none;
}
-div.page_body {
- padding: 8px;
- font-family: monospace;
+a:hover {
+ text-decoration: underline;
}
-div.title, a.title {
- display: block;
- padding: 6px 8px;
- font-weight: bold;
- background-color: #edece6;
- text-decoration: none;
- color: #000000;
+td.list a[href*='tree'], td.list a[href*='blob'] {
+ padding-left: 20px;
+ display: block;
+ float: left;
+ height: 16px;
+ line-height: 16px;
}
-div.readme {
- padding: 8px;
+td.list a[href*='tree'] {
+ background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABq0lEQVQ4y8WTu4oUQRSGv+rtGVuxhwVFdFEEE2c3d0HYTEMTn8DEVxADQTDUF9DMwMxQMBMx8AEWzRQ3cBHd9TI91+2urjq/QbczY2IygSep4nD+79yqnCRWsYQVbWVACvDh5ZXdrLe15dwyT1TjT/sxFFeB6i+VA2B6+cb7kAI4Jf0LO087zjlQI8Y5Qvnj0sHug321XoC1bk+K9eHk6+s7wPMUgKAS88eqb4+Jfg2SHs7lZBvX2Nh+2EUCDGSAcMnJsx9f7NxfAGqXyDzRd5EJO/pMPT1gcviGTnYOVIN5pAAE8v7dLrKL8xnglFk4ws9Afko9HpH3b5Gd2mwb/lOBmgrSdYhJugDUCenxM6xv3p4HCsP8F0LxCsUhCkMURihOyM7fg0osASTFEpu9a4LjGIUCqwcoDiEUrX+E4hRUQb20RiokC1j9vckUhygU7X3QZh7NAVKYL7YBeMkRUfjVCotF2XGIwnghtrJpMywB5G0QZj9P1JNujuWJ1AHLQadRrACPkuZ0SSSWpeStWgDK6tHek5vbiOs48n++XQHurcf0rFng//6NvwG+iB9/4duaTgAAAABJRU5ErkJgggo=) center left no-repeat;
}
-a.title:hover {
- background-color: #d9d8d1;
+td.list a[href*='blob'] {
+ background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAA6ElEQVQoFQXBMW5TQRgGwNnHnoE0QbiCjoIooUmTU3AuS1BwIoTSUdJBigg3GCWOg9/++zHTop078wIAsPMrE4SL5/1aIyMjIyMjz/m0tbFECFdrPeaQQw75mz/5nZH7fN7aWILmauSYfznmmIfss8vIUx7zZWsTTXM5vpWvTk5Wq9VHQP/gtgOLa0Qpw940vAQdaG6thpOhlOkG0AEuAVGmEkAH+G4YSikxXQM6wDsAMRFAB/ihDNNUmN4DOsAbBAEAdICfpmmaAt4COoj2GgCASbIkZh1NAACznhQt2itnFgAAlF3u/gMDtJXPzQxoswAAAABJRU5ErkJgggo=) center left no-repeat;
}
-div.title_text {
- padding: 6px 0px;
- border: solid #d9d8d1;
- border-width: 0px 0px 1px;
- font-family: monospace;
+i {
+ font-style: normal;
}
-div.log_body {
- padding: 8px 8px 8px 150px;
+td, th {
+ padding: 5px;
}
-span.age {
- position: relative;
- float: left;
- width: 142px;
- font-style: italic;
+.page_nav br {
+ display: none;
}
-span.signoff {
- color: #888888;
+#generating_info {
+ font-size: 10px;
+ color: #aaa;
+ text-align: center;
}
-div.log_link {
- padding: 0px 8px;
- font-size: 70%;
- font-family: sans-serif;
- font-style: normal;
- position: relative;
- float: left;
- width: 136px;
+#generating_time, #generating_cmd {
+ font-weight: bold;
}
-div.list_head {
- padding: 6px 8px 4px;
- border: solid #d9d8d1;
- border-width: 1px 0px 0px;
- font-style: italic;
-}
+/* Page Header
+---------------------------------------------------------------------------- */
-.author_date, .author {
- font-style: italic;
+.page_header {
+ height: 50px;
+ line-height: 50px;
+ position: relative;
+ padding: 0 27px;
+ margin-bottom: 20px;
+ font-size: 20px;
+ font-family: Helvetica, Arial, Freesans, Clean, sans-serif;
+ background: #FFFFFF; /* old browsers */
+ background: -moz-linear-gradient(top, #FFFFFF 0%, #F5F5F5 100%); /* firefox */
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#FFFFFF), color-stop(100%,#F5F5F5)); /* webkit */
+ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#FFFFFF', endColorstr='#F5F5F5',GradientType=0 ); /* ie */
+ background: -o-linear-gradient(top, #FFFFFF 0%, #F5F5F5 100%);
+ border-bottom: 1px solid #dfdfdf;
}
-div.author_date {
- padding: 8px;
- border: solid #d9d8d1;
- border-width: 0px 0px 1px 0px;
+.page_header a:link, .page_header a:visited {
+ color: #4183C4;
+ text-decoration: none;
+ padding: 3px;
+ font-weight: bold;
}
-a.list {
- text-decoration: none;
- color: #000000;
+.page_header a:hover {
+ font-weight: bold;
+ padding: 3px;
+ text-decoration: underline;
}
-a.subject, a.name {
- font-weight: bold;
+.page_header a:first-child {
+ background: transparent;
}
-table.tags a.subject {
- font-weight: normal;
+.page_header img.logo {
+ position: relative;
+ top: 7px;
+ margin-right: 5px;
}
-a.list:hover {
- text-decoration: underline;
- color: #880000;
-}
+/* Page Footer
+---------------------------------------------------------------------------- */
-a.text {
- text-decoration: none;
- color: #0000cc;
+.page_footer {
+ position: absolute;
+ left: 0;
+ bottom: 0;
+ width: 100%;
+ height: 80px;
+ line-height: 80px;
+ margin-top: 15px;
+ background: #f1f1f1;
+ border-top: 2px solid #ddd;
+ border-bottom: 1px solid #ddd;
}
-a.text:visited {
- text-decoration: none;
- color: #880000;
+.page_footer_text {
+ color: #666;
+ display: inline;
+ float: left;
+ margin-left: 25px;
+ width: 80%;
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis;
}
-a.text:hover {
- text-decoration: underline;
- color: #880000;
+a.rss_logo {
+ float: right;
+ padding: 3px 1px;
+ width: 35px;
+ line-height: 10px;
+ border: 1px solid;
+ border-color: #fcc7a5 #7d3302 #3e1a01 #ff954e;
+ color: #ffffff;
+ background-color: #ff6600;
+ font-weight: bold;
+ font-family: sans-serif;
+ font-size: 80%;
+ text-align: center;
+ text-decoration: none;
+ margin-top: 30px;
+ margin-left: 5px;
}
-table {
- padding: 8px 4px;
- border-spacing: 0;
+a.rss_logo:hover {
+ background-color: #ee5500;
}
-table.diff_tree {
- font-family: monospace;
+.rss_logo {
+ margin-right: 25px;
+ background: yellow;
}
-table.combined.diff_tree th {
- text-align: center;
+.rss_logo:last-child {
+ margin-right: 5px;
}
-table.combined.diff_tree td {
- padding-right: 24px;
-}
+/* Index include
+---------------------------------------------------------------------------- */
-table.combined.diff_tree th.link,
-table.combined.diff_tree td.link {
- padding: 0px 2px;
+.index_include {
+ width: 95%;
+ margin: 0 auto 15px;
+ background: -moz-linear-gradient(center top , #FFFFFF 0%, #F5F5F5 100%) repeat scroll 0 0 transparent;
+ border: 1px solid #DFDFDF;
+ padding: 8px;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
}
-table.combined.diff_tree td.nochange a {
- color: #6666ff;
-}
+/* Elements
+---------------------------------------------------------------------------- */
-table.combined.diff_tree td.nochange a:hover,
-table.combined.diff_tree td.nochange a:visited {
- color: #d06666;
+.project_list,
+.shortlog,
+.tree,
+.commit_search,
+.history {
+ width: 95%;
+ margin: 0 auto 15px auto;
+ border: 1px solid #d8d8d8;
+ -moz-box-shadow: 0 0 3px rgba(0,0,0,0.2);
+ -webkit-box-shadow: 0 0 3px rgba(0,0,0,0.2);
+ box-shadow: 0 0 3px rgba(0,0,0,0.2);
}
-table.blame {
- border-collapse: collapse;
+.project_list th,
+.shortlog th,
+.tree th,
+.commit_search th {
+ color: #afafaf;
+ font-weight: normal;
}
-table.blame td {
- padding: 0px 5px;
- font-size: 100%;
- vertical-align: top;
+.project_list th {
+ font-weight: bold;
}
-th {
- padding: 2px 5px;
- font-size: 100%;
- text-align: left;
+.project_list tr,
+.shortlog tr,
+.tree tr,
+.commit_search tr {
+ background: #eaeaea;
+ height: 2.5em;
+ text-align: left;
+ color: #545454;
}
-/* do not change row style on hover for 'blame' view */
-tr.light,
-table.blame .light:hover {
- background-color: #ffffff;
+.project_list tr.dark, .project_list tr.light,
+.shortlog tr.dark, .shortlog tr.light,
+.tree tr.dark, .tree tr.light,
+.commit_search tr.dark, .commit_search tr.light,
+.history tr.dark, .history tr.light,
+.heads tr.dark, .heads tr.light {
+ background: #F9F9F9; /* old browsers */
+ background: -moz-linear-gradient(top, #F9F9F9 0%, #EFEFEF 100%); /* firefox */
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#F9F9F9), color-stop(100%,#EFEFEF)); /* webkit */
+ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#F9F9F9', endColorstr='#EFEFEF',GradientType=0 ); /* ie */
+ background: -o-linear-gradient(top, #F9F9F9 0%, #EFEFEF 100%);
+ height: 2.5em;
+ border-bottom: 1px solid #e1e1e1;
}
-tr.dark,
-table.blame .dark:hover {
- background-color: #f6f6f0;
+th .header {
+ background: transparent;
+ border: 0;
+ padding: 0;
+ font-weight: bold;
}
-/* currently both use the same, but it can change */
-tr.light:hover,
-tr.dark:hover {
- background-color: #edece6;
+.tree {
+ width: 100%;
+ margin: 0;
}
-/* boundary commits in 'blame' view */
-/* and commits without "previous" */
-tr.boundary td.sha1,
-tr.no-previous td.linenr {
- font-weight: bold;
+.projsearch {
+ position: absolute;
+ right: 4%;
+ top: 15px;
}
-/* for 'blame_incremental', during processing */
-tr.color1 { background-color: #f6fff6; }
-tr.color2 { background-color: #f6f6ff; }
-tr.color3 { background-color: #fff6f6; }
-
-td {
- padding: 2px 5px;
- font-size: 100%;
- vertical-align: top;
+.projsearch a {
+ display: none;
}
-td.link, td.selflink {
- padding: 2px 5px;
- font-family: sans-serif;
- font-size: 70%;
+.commit_search {
+ background: #eaeaea;
}
-td.selflink {
- padding-right: 0px;
+.page_nav,
+.list_head,
+.page_path,
+.search {
+ width: 94%;
+ background: #eaeaea;
+ color: #545454;
+ border: 1px solid #d8d8d8;
+ padding: 5px;
+ margin: 0 auto 15px auto;
}
-td.sha1 {
- font-family: monospace;
+.history {
+ background: #eaeaea;
}
-.error {
- color: red;
- background-color: yellow;
+.title {
+ margin: 0 auto 15px auto;
+ padding: 5px;
+ width: 95%;
}
-td.current_head {
- text-decoration: underline;
+.readme {
+ background: #eaf2f5;
+ border: 1px solid #bedce7;
+ -moz-box-sizing: border-box;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ margin: 0 auto 15px auto;
+ padding: 15px;
+ width: 95%;
}
-td.category {
- background-color: #d9d8d1;
- border-top: 1px solid #000000;
- border-left: 1px solid #000000;
- font-weight: bold;
+.readme h1 {
+ display: block;
+ font-size: 2em;
+ font-weight: bold;
+ margin-bottom: 0.67em;
+ margin-top: 0;
}
-table.diff_tree span.file_status.new {
- color: #008000;
+.readme h2 {
+ font-size: 1.5em;
+ font-weight: bold;
+ margin-bottom: 0.83em;
}
-table.diff_tree span.file_status.deleted {
- color: #c00000;
-}
-table.diff_tree span.file_status.moved,
-table.diff_tree span.file_status.mode_chnge {
- color: #777777;
+.readme h3 {
+ font-size: 1.17em;
+ font-weight: bold;
+ margin-bottom: 1em;
}
-table.diff_tree span.file_status.copied {
- color: #70a070;
+.readme p {
+ margin-bottom: 1em;
}
-table.project_list {
- width: 100%;
-}
-/* noage: "No commits" */
-table.project_list td.noage {
- color: #808080;
- font-style: italic;
+.readme ul {
+ list-style: disc;
+ margin-bottom: 1em;
+ margin-left: 1.5em;
}
-/* age2: 60*60*24*2 <= age */
-table.project_list td.age2, table.blame td.age2 {
- font-style: italic;
+.readme ul ul {
+ margin-bottom: 0;
}
-/* age1: 60*60*2 <= age < 60*60*24*2 */
-table.project_list td.age1 {
- color: #009900;
- font-style: italic;
+.readme ol {
+ list-style: decimal;
+ margin-bottom: 1em;
+ margin-left: 1.5em;
}
-table.blame td.age1 {
- color: #009900;
- background: transparent;
+.readme ol ol {
+ margin-bottom: 0;
}
-/* age0: age < 60*60*2 */
-table.project_list td.age0 {
- color: #009900;
- font-style: italic;
- font-weight: bold;
+.readme pre {
+ font-family: monospace;
+ margin: 1em 0;
+ white-space: pre;
}
-table.blame td.age0 {
- color: #009900;
- background: transparent;
- font-weight: bold;
+.readme tt, .readme code, .readme kbd, .readme samp {
+ font-family: monospace;
}
-td.pre, div.pre, div.diff {
- font-family: monospace;
- font-size: 12px;
- white-space: pre;
+.readme blockquote {
+ margin: 1em;
}
-td.mode {
- font-family: monospace;
+.projects_list,
+.tags {
+ width: 95%;
+ background: #f0f0f0;
+ color: #545454;
+ border: 1px solid #d8d8d8;
+ padding: 5px;
+ margin: 0 auto 15px auto;
}
-/* progress of blame_interactive */
-div#progress_bar {
- height: 2px;
- margin-bottom: -2px;
- background-color: #d8d9d0;
-}
-div#progress_info {
- float: right;
- text-align: right;
+.heads {
+ width: 95%;
+ color: #545454;
+ border: 1px solid #d8d8d8;
+ padding: 5px;
+ margin: 0 auto 15px auto;
}
-/* format of (optional) objects size in 'tree' view */
-td.size {
- font-family: monospace;
- text-align: right;
+.header {
+ width: 94%;
+ margin: 0 auto 0 auto;
+ background: #eaf2f5;
+ border: 1px solid #bedce7;
+ padding: 5px;
}
-/* styling of diffs (patchsets): commitdiff and blobdiff views */
-div.diff.header,
-div.diff.extended_header {
- white-space: normal;
+.header .age {
+ float: left;
+ color: #000;
+ font-weight: bold;
+ width: 10em;
}
-div.diff.header {
- font-weight: bold;
-
- background-color: #edece6;
-
- margin-top: 4px;
- padding: 4px 0px 2px 0px;
- border: solid #d9d8d1;
- border-width: 1px 0px 1px 0px;
+.title_text {
+ width: 94%;
+ background: #eaf2f5;
+ border: 1px solid #bedce7;
+ padding: 5px;
+ margin: 0 auto 0 auto;
}
-div.diff.header a.path {
- text-decoration: underline;
+.log_body {
+ width: 94%;
+ background: #eaf2f5;
+ border: 1px solid #bedce7;
+ border-top: 0;
+ padding: 5px;
+ margin: 0 auto 15px auto;
}
-div.diff.extended_header,
-div.diff.extended_header a.path,
-div.diff.extended_header a.hash {
- color: #777777;
+.page_body {
+ line-height: 1.4em;
+ width: 94%;
+ background: #f8f8f8;
+ border: 1px solid #d8d8d8;
+ padding: 5px;
+ margin: 0px auto 15px auto;
}
-div.diff.extended_header .info {
- color: #b0b0b0;
+.diff_tree {
+ width: 95%;
+ background: #f0f0f0;
+ border: 1px solid #d8d8d8;
+ padding: 5px;
+ margin: 0 auto 15px auto;
}
-div.diff.extended_header {
- background-color: #f6f5ee;
- padding: 2px 0px 2px 0px;
+.page_body > .list_head {
+ width: 98.5%;
}
-div.diff a.list,
-div.diff a.path,
-div.diff a.hash {
- text-decoration: none;
+.page_body > .diff_tree {
+ width: 99.5%;
}
-div.diff a.list:hover,
-div.diff a.path:hover,
-div.diff a.hash:hover {
- text-decoration: underline;
+.patch > .header {
+ width: 99%;
}
-div.diff.to_file a.path,
-div.diff.to_file {
- color: #007000;
+.author .avatar,
+.author_date .avatar {
+ position: relative;
+ top: 3px;
}
-div.diff.add {
- color: #008800;
+.object_header .avatar {
+ border: 1px solid #D8D8D8;
+ float: right;
}
-div.diff.add span.marked {
- background-color: #aaffaa;
+.object_header td,
+.object_header th {
+ vertical-align: top;
}
-div.diff.from_file a.path,
-div.diff.from_file {
- color: #aa0000;
-}
+/* Refs
+---------------------------------------------------------------------------- */
-div.diff.rem {
- color: #cc0000;
+span.refs span {
+ color: #707070;
+ display: inline-block;
+ margin: 0;
+ background-color: #eee;
+ border: 1px solid #ccc;
+ border-radius: 3px;
+ height: 18px;
+ padding: 0 6px;
+ text-overflow: ellipsis;
}
-div.diff.rem span.marked {
- background-color: #ffaaaa;
+span.refs span.ref {
+ color: #707070;
+ display: inline-block;
+ margin: 0;
+ background-color: #c4c4ff;
+ border: 1px solid #7878ff;
+ border-radius: 3px;
+ height: 18px;
+ padding: 0 6px;
+ text-overflow: ellipsis;
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAMAAABhEH5lAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3gIKFSUnpolg7AAAAHJQTFRFAAAAVVWqZmbMVVXVYGDgbW3td3fuc3PzdHT0cHD1d3f6dHT6dnb7dHT7dnb8dnb8dnb9d3f9dnb+eHj+d3f+eHj+d3f+d3f+d3f+eHj+d3f+eHj+d3f+eHj+d3f+d3f+eHj+d3f+d3f+d3f+eHj/////V9oQhQAAACR0Uk5TAAIEBQcNDhMVGCotNTZAT217i5CgobvExtjZ4eLr7vP09ff7uqQ6cgAAAAFiS0dEJcMByQ8AAABUSURBVBjTpc43AoAwDENRh95bgNBM1f3PyOpslD++RSJ61YgH5M2IbIkn4GocSR1MZVBL4t2n4FgkbaxI8Sqph041WknZCWAIrcmEUbpf3lNe0N9u59YFYHnZ78gAAAAASUVORK5CYII=);
+ background-repeat: no-repeat;
+ padding-left: 18px;
}
-div.diff.chunk_header a,
-div.diff.chunk_header {
- color: #990099;
+span.refs span.tag {
+ color: #707070;
+ display: inline-block;
+ margin: 0;
+ background-color: #ffffab;
+ border: 1px solid #d9d93b;
+ border-radius: 3px;
+ height: 18px;
+ padding: 0 6px;
+ text-overflow: ellipsis;
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAMAAABhEH5lAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3gIKFSUZZ+h9RwAAAGZQTFRFAAAAtrYkwMBAwMBAx8c4yso11NQ71NQ51dU52Ng71tY519c719c719c62Ng719c719c62Ng72dk62Ng62Ng72Ng72dk62Ng72Ng62dk62dk72dk62Ng62dk72Ng72Ng72dk7////ou/AnQAAACB0Uk5TAAYHCxESLjRCWWlqa4uNkpissbrO19jc3ufs8vf6/f7atAU2AAAAAWJLR0QhxGwNFgAAAF1JREFUGFeNy0cOgCAABVGw94rY5d//lC7omhhn+ZIh5Gf1xPk0Zi5dAABROIQjSU/fsAXhDkCUljAv8jW2wlQpaixpo4Nj+dtatVpjkSJjLNaizRVpvhBCu/4h391jzw1lU12Z7wAAAABJRU5ErkJggg==);
+ background-repeat: no-repeat;
+ padding-left: 18px;
}
-div.diff.chunk_header {
- border: dotted #ffe0ff;
- border-width: 1px 0px 0px 0px;
- margin-top: 2px;
+span.refs span.head {
+ color: #707070;
+ display: inline-block;
+ margin: 0;
+ background-color: #c4ffc4;
+ border: 1px solid #78ff78;
+ border-radius: 3px;
+ height: 18px;
+ padding: 0 6px;
+ text-overflow: ellipsis;
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3gIKFSYDsafX/gAAAUpJREFUOMvVkjFLA0EQhd/s7l06MSCihbV/wC5/QBDEIFYWprRIIQQJFqKFQi4kUbBQsFSwtrUQLQULUTBFLCzVIgimCXe7z0q5yIWcqfRVwzDzMTNvgL8mSUqWw3JOtFQJdsIwLDYyjdYgkEmkazl2oVtQWk36nn8AYBYASmFpxmizGtnoqO7Vb+M9KglEkASdpWU872nvVCiPRpuTnz2JIHGyqX3d0kZfR1G0Ht+g/do+FIhOBbLW3n/FNb/28D0puZ+dyL44ur1UoH5yzt2JyIj6UGdDgwrPhYzSagNEszJaeU/lWlylbmnaeGZZICsAppxzi6nt73HK85oQCMknOuarpno+FIjglVjZDXaCS2yDv3rIHlCb88FY0BlUl3hs7ektkhckb5DFWhoz+n12zr7ZPLpYUqLm0oBMn8NUzLhpAgjpWMS/1CcSJ3ykD7Rk1QAAAABJRU5ErkJggg==);
+ background-repeat: no-repeat;
+ padding-left: 18px;
}
-div.diff.chunk_header span.chunk_info {
- background-color: #ffeeff;
+span.refs a {
+ color: #4e4e4e;
+ font: 11px "Bitstream Vera Sans Mono", "DejaVu Sans Mono", Monaco, monospace;
+ line-height: 18px;
}
-div.diff.chunk_header span.section {
- color: #aa22aa;
-}
+/* Diffs
+---------------------------------------------------------------------------- */
-div.diff.incomplete {
- color: #cccccc;
+div.diff.to_file a.path,
+div.diff.to_file {
+ color: #007000;
}
-div.diff.nodifferences {
- font-weight: bold;
- color: #600000;
+div.diff.from_file a.path,
+div.diff.from_file {
+ color: #aa0000;
}
-/* side-by-side diff */
-div.chunk_block {
- overflow: hidden;
+.patch .header {
+ margin: 0;
}
-div.chunk_block div.old {
- float: left;
- width: 50%;
- overflow: hidden;
+.patchset {
+ overflow-x: auto;
+ overflow-y: hidden;
}
-div.chunk_block div.new {
- margin-left: 50%;
- width: 50%;
+.chunk_header {
+ background: #eaf2f5;
+ color: #999;
}
-div.chunk_block.rem div.old div.diff.rem {
- background-color: #fff5f5;
+.rem {
+ background: #ffdddd;
}
-div.chunk_block.add div.new div.diff.add {
- background-color: #f8fff8;
+.rem .marked {
+ background: #ffaaaa;
}
-div.chunk_block.chg div div.diff {
- background-color: #fffff0;
+.add {
+ background: #ddffdd;
}
-div.chunk_block.ctx div div.diff.ctx {
- color: #404040;
+.add .marked {
+ background: #7dff7d;
}
-
-div.index_include {
- border: solid #d9d8d1;
- border-width: 0px 0px 1px;
- padding: 12px 8px;
+.extended_header {
+ width: 99.5%;
}
-div.search {
- font-size: 100%;
- font-weight: normal;
- margin: 4px 8px;
- float: right;
- top: 56px;
- right: 12px
+div.chunk_block {
+ overflow: hidden;
}
-div.projsearch {
- text-align: center;
- margin: 20px 0px;
+div.chunk_block div.old {
+ float: left;
+ width: 50%;
+ overflow: hidden;
+ border-right: 5px solid #EAF2F5;
}
-div.projsearch form {
- margin-bottom: 2px;
+div.chunk_block.rem,
+div.chunk_block.add {
+ background: transparent;
}
-td.linenr {
- text-align: right;
+div.chunk_block div.old .add,
+div.chunk_block div.old .rem {
+ padding-right: 3px;
}
-a.linenr {
- color: #999999;
- text-decoration: none
+div.chunk_block div.new .add,
+div.chunk_block div.new .rem {
+ padding-left: 3px;
}
-a.rss_logo {
- float: right;
- padding: 3px 5px;
- line-height: 10px;
- border: 1px solid;
- border-color: #fcc7a5 #7d3302 #3e1a01 #ff954e;
- color: #ffffff;
- background-color: #ff6600;
- font-weight: bold;
- font-family: sans-serif;
- font-size: 70%;
- text-align: center;
- text-decoration: none;
+div.chunk_block div.new {
+ margin-left: 50%;
+ width: 50%;
+ border-left: 5px solid #EAF2F5;
}
-a.rss_logo:hover {
- background-color: #ee5500;
-}
+/* Category
+---------------------------------------------------------------------------- */
-a.rss_logo.generic {
- background-color: #ff8800;
+td.category {
+ background: #E6F1F6; /* old browsers */
+ background: -moz-linear-gradient(top, #C8D8E7 0%, #E6F1F3 100%); /* firefox */
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#C8D8E7), color-stop(100%,#E6F1F3)); /* webkit */
+ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#C8D8E7', endColorstr='#E6F1F3',GradientType=0 ); /* ie */
+ background: -o-linear-gradient(top, #C8D8E7 0%, #E6F1F3 100%);
+ font-weight: bold;
+ border-bottom: 1px solid #D1D1D1;
+ border-top: 1px solid #D1D1D1;
}
-a.rss_logo.generic:hover {
- background-color: #ee7700;
+/* Age
+---------------------------------------------------------------------------- */
+
+/* noage: "No commits" */
+.project_list td.noage {
+ color: #cdcdcd;
}
-span.refs span {
- padding: 0px 4px;
- font-size: 70%;
- font-weight: normal;
- border: 1px solid;
- background-color: #ffaaff;
- border-color: #ffccff #ff00ee #ff00ee #ffccff;
+/* age2: 60*60*24*2 <= age */
+.project_list td.age2, .blame td.age2 {
+ color: #545454;
}
-span.refs span a {
- text-decoration: none;
- color: inherit;
+/* age1: 60*60*2 <= age < 60*60*24*2 */
+.project_list td.age1 {
+ color: #009900;
}
-span.refs span a:hover {
- text-decoration: underline;
+/* age0: age < 60*60*2 */
+.project_list td.age0 {
+ color: #009900;
+ font-weight: bold;
}
-span.refs span.indirect {
- font-style: italic;
+/* File status
+---------------------------------------------------------------------------- */
+
+.diff_tree span.file_status.new {
+ color: #008000;
}
-span.refs span.ref {
- background-color: #aaaaff;
- border-color: #ccccff #0033cc #0033cc #ccccff;
+table.diff_tree span.file_status.deleted {
+ color: #c00000;
}
-span.refs span.tag {
- background-color: #ffffaa;
- border-color: #ffffcc #ffee00 #ffee00 #ffffcc;
+table.diff_tree span.file_status.moved,
+table.diff_tree span.file_status.mode_chnge {
+ color: #545454;
}
-span.refs span.head {
- background-color: #aaffaa;
- border-color: #ccffcc #00cc33 #00cc33 #ccffcc;
+table.diff_tree span.file_status.copied {
+ color: #70a070;
}
-span.atnight {
- color: #cc0000;
+span.cntrl {
+ border: dashed #aaaaaa;
+ border-width: 1px;
+ padding: 0px 2px 0px 2px;
+ margin: 0px 2px 0px 2px;
}
span.match {
- color: #e00000;
+ background: #aaffaa;
+ color: #000;
}
-div.binary {
- font-style: italic;
+td.error {
+ color: red;
+ background: yellow;
}
-div.remote {
- margin: .5em;
- border: 1px solid #d9d8d1;
- display: inline-block;
+/* blob view */
+
+td.pre, div.pre, div.diff {
+ white-space: pre-wrap;
}
/* JavaScript-based timezone manipulation */
@@ -643,11 +718,11 @@ div.remote {
position: absolute;
/* "top: 0; right: 0;" would be better, if not for bugs in browsers */
top: 0; left: 0;
- border: 1px solid;
+ border: 1px solid #d8d8d8;
padding: 2px;
background-color: #f0f0f0;
font-style: normal;
- color: #000000;
+ color: #545454;
cursor: auto;
}
@@ -657,7 +732,7 @@ div.remote {
/* float: right; */
position: absolute;
top: 0px; right: 0px;
- border: 1px solid green;
+ border: 1px solid #ffaaaa;
margin: 1px 1px 1px 1px;
padding-bottom: 2px;
width: 12px;
@@ -665,34 +740,33 @@ div.remote {
font-size: 9px;
font-weight: bold;
text-align: center;
- background-color: #fff0f0;
+ background-color: #ffdddd;
cursor: pointer;
}
-.repo_header {
+.portion {
display: flex;
- flex-direction: row;
- justify-content: space-between;
+ justify-content: right;
}
-
-.projects_list {
- border: 1px solid black;
+.portion span{
+ margin-right: 1em;
}
/* Style definition generated by highlight 2.4.5, http://www.andre-simon.de/ */
/* Highlighting theme definition: */
-.num { color:#2928ff; }
+.num { color:#6ecf36; }
.esc { color:#ff00ff; }
-.str { color:#ff0000; }
+.str { color:#ff00d3; background-color: #edc9ec }
.dstr { color:#818100; }
.slc { color:#838183; font-style:italic; }
.com { color:#838183; font-style:italic; }
.dir { color:#008200; }
.sym { color:#000000; }
.line { color:#555555; }
-.kwa { color:#000000; font-weight:bold; }
-.kwb { color:#830000; }
-.kwc { color:#000000; font-weight:bold; }
-.kwd { color:#010181; }
+.kwa { color:#666666; font-weight:bold; }
+.kwb { color:#6b3099; }
+.kwc { color:#d4663d; }
+.kwd { color:#2928ff; }
+
diff --git a/static/my_gitweb.css b/static/my_gitweb.css
new file mode 100644
index 0000000..774ad4e
--- /dev/null
+++ b/static/my_gitweb.css
@@ -0,0 +1,702 @@
+body {
+ font-family: sans-serif;
+ font-size: 14pt;
+ border: solid #d9d8d1;
+ border-width: 1px;
+ margin: 10px;
+ background-color: #ffffff;
+ color: #000000;
+}
+
+a {
+ color: #0000cc;
+}
+
+a:hover, a:visited, a:active {
+ color: #880000;
+}
+
+span.cntrl {
+ border: dashed #aaaaaa;
+ border-width: 1px;
+ padding: 0px 2px 0px 2px;
+ margin: 0px 2px 0px 2px;
+}
+
+img.logo {
+ float: right;
+ border-width: 0px;
+}
+
+img.avatar {
+ vertical-align: middle;
+}
+
+img.blob {
+ max-height: 100%;
+ max-width: 100%;
+}
+
+a.list img.avatar {
+ border-style: none;
+}
+
+div.page_header {
+ height: 25px;
+ padding: 8px;
+ font-size: 150%;
+ font-weight: bold;
+ background-color: #d9d8d1;
+}
+
+div.page_header a:visited, a.header {
+ color: #0000cc;
+}
+
+div.page_header a:hover {
+ color: #880000;
+}
+
+div.page_nav {
+ padding: 8px;
+}
+
+div.page_nav a:visited {
+ color: #0000cc;
+}
+
+div.page_path {
+ padding: 8px;
+ font-weight: bold;
+ border: solid #d9d8d1;
+ border-width: 0px 0px 1px;
+}
+
+div.page_footer {
+ height: 22px;
+ padding: 4px 8px;
+ background-color: #d9d8d1;
+}
+
+div.page_footer_text {
+ line-height: 22px;
+ float: left;
+ color: #555555;
+ font-style: italic;
+}
+
+div#generating_info {
+ margin: 4px;
+ font-size: smaller;
+ text-align: center;
+ color: #505050;
+}
+
+div.page_body {
+ padding: 8px;
+ font-family: monospace;
+}
+
+div.title, a.title {
+ display: block;
+ padding: 6px 8px;
+ font-weight: bold;
+ background-color: #edece6;
+ text-decoration: none;
+ color: #000000;
+}
+
+div.readme {
+ padding: 8px;
+}
+
+a.title:hover {
+ background-color: #d9d8d1;
+}
+
+div.title_text {
+ padding: 6px 0px;
+ border: solid #d9d8d1;
+ border-width: 0px 0px 1px;
+ font-family: monospace;
+}
+
+div.log_body {
+ padding: 8px 8px 8px 150px;
+}
+
+span.age {
+ position: relative;
+ float: left;
+ width: 142px;
+ font-style: italic;
+}
+
+span.signoff {
+ color: #888888;
+}
+
+div.log_link {
+ padding: 0px 8px;
+ font-size: 70%;
+ font-family: sans-serif;
+ font-style: normal;
+ position: relative;
+ float: left;
+ width: 136px;
+}
+
+div.list_head {
+ padding: 6px 8px 4px;
+ border: solid #d9d8d1;
+ border-width: 1px 0px 0px;
+ font-style: italic;
+}
+
+.author_date, .author {
+ font-style: italic;
+}
+
+div.author_date {
+ padding: 8px;
+ border: solid #d9d8d1;
+ border-width: 0px 0px 1px 0px;
+}
+
+a.list {
+ text-decoration: none;
+ color: #000000;
+}
+
+a.subject, a.name {
+ font-weight: bold;
+}
+
+table.tags a.subject {
+ font-weight: normal;
+}
+
+a.list:hover {
+ text-decoration: underline;
+ color: #880000;
+}
+
+a.text {
+ text-decoration: none;
+ color: #0000cc;
+}
+
+a.text:visited {
+ text-decoration: none;
+ color: #880000;
+}
+
+a.text:hover {
+ text-decoration: underline;
+ color: #880000;
+}
+
+table {
+ padding: 8px 4px;
+ border-spacing: 0;
+}
+
+table.diff_tree {
+ font-family: monospace;
+}
+
+table.combined.diff_tree th {
+ text-align: center;
+}
+
+table.combined.diff_tree td {
+ padding-right: 24px;
+}
+
+table.combined.diff_tree th.link,
+table.combined.diff_tree td.link {
+ padding: 0px 2px;
+}
+
+table.combined.diff_tree td.nochange a {
+ color: #6666ff;
+}
+
+table.combined.diff_tree td.nochange a:hover,
+table.combined.diff_tree td.nochange a:visited {
+ color: #d06666;
+}
+
+table.blame {
+ border-collapse: collapse;
+}
+
+table.blame td {
+ padding: 0px 5px;
+ font-size: 100%;
+ vertical-align: top;
+}
+
+th {
+ padding: 2px 5px;
+ font-size: 100%;
+ text-align: left;
+}
+
+/* do not change row style on hover for 'blame' view */
+tr.light,
+table.blame .light:hover {
+ background-color: #ffffff;
+}
+
+tr.dark,
+table.blame .dark:hover {
+ background-color: #f6f6f0;
+}
+
+/* currently both use the same, but it can change */
+tr.light:hover,
+tr.dark:hover {
+ background-color: #edece6;
+}
+
+/* boundary commits in 'blame' view */
+/* and commits without "previous" */
+tr.boundary td.sha1,
+tr.no-previous td.linenr {
+ font-weight: bold;
+}
+
+/* for 'blame_incremental', during processing */
+tr.color1 { background-color: #f6fff6; }
+tr.color2 { background-color: #f6f6ff; }
+tr.color3 { background-color: #fff6f6; }
+
+td {
+ padding: 2px 5px;
+ font-size: 100%;
+ vertical-align: top;
+}
+
+td.link, td.selflink {
+ padding: 2px 5px;
+ font-family: sans-serif;
+ font-size: 70%;
+}
+
+td.selflink {
+ padding-right: 0px;
+}
+
+td.sha1 {
+ font-family: monospace;
+}
+
+.error {
+ color: red;
+ background-color: yellow;
+}
+
+td.current_head {
+ text-decoration: underline;
+}
+
+td.category {
+ background-color: #d9d8d1;
+ border-top: 1px solid #000000;
+ border-left: 1px solid #000000;
+ font-weight: bold;
+}
+
+table.diff_tree span.file_status.new {
+ color: #008000;
+}
+
+table.diff_tree span.file_status.deleted {
+ color: #c00000;
+}
+
+table.diff_tree span.file_status.moved,
+table.diff_tree span.file_status.mode_chnge {
+ color: #777777;
+}
+
+table.diff_tree span.file_status.copied {
+ color: #70a070;
+}
+
+table.project_list, table.commit_search, table.shortlog, table.tree, table.heads, table.diff_tree {
+ width: 100%;
+}
+/* noage: "No commits" */
+table.project_list td.noage {
+ color: #808080;
+ font-style: italic;
+}
+
+/* age2: 60*60*24*2 <= age */
+table.project_list td.age2, table.blame td.age2 {
+ font-style: italic;
+}
+
+/* age1: 60*60*2 <= age < 60*60*24*2 */
+table.project_list td.age1 {
+ color: #009900;
+ font-style: italic;
+}
+
+table.blame td.age1 {
+ color: #009900;
+ background: transparent;
+}
+
+/* age0: age < 60*60*2 */
+table.project_list td.age0 {
+ color: #009900;
+ font-style: italic;
+ font-weight: bold;
+}
+
+table.blame td.age0 {
+ color: #009900;
+ background: transparent;
+ font-weight: bold;
+}
+
+td.pre, div.pre, div.diff {
+ font-family: monospace;
+ font-size: 12px;
+ white-space: pre;
+}
+
+td.mode {
+ font-family: monospace;
+}
+
+/* progress of blame_interactive */
+div#progress_bar {
+ height: 2px;
+ margin-bottom: -2px;
+ background-color: #d8d9d0;
+}
+div#progress_info {
+ float: right;
+ text-align: right;
+}
+
+/* format of (optional) objects size in 'tree' view */
+td.size {
+ font-family: monospace;
+ text-align: right;
+}
+
+/* styling of diffs (patchsets): commitdiff and blobdiff views */
+div.diff.header,
+div.diff.extended_header {
+ white-space: normal;
+}
+
+div.diff.header {
+ font-weight: bold;
+
+ background-color: #edece6;
+
+ margin-top: 4px;
+ padding: 4px 0px 2px 0px;
+ border: solid #d9d8d1;
+ border-width: 1px 0px 1px 0px;
+}
+
+div.diff.header a.path {
+ text-decoration: underline;
+}
+
+div.diff.extended_header,
+div.diff.extended_header a.path,
+div.diff.extended_header a.hash {
+ color: #777777;
+}
+
+div.diff.extended_header .info {
+ color: #b0b0b0;
+}
+
+div.diff.extended_header {
+ background-color: #f6f5ee;
+ padding: 2px 0px 2px 0px;
+}
+
+div.diff a.list,
+div.diff a.path,
+div.diff a.hash {
+ text-decoration: none;
+}
+
+div.diff a.list:hover,
+div.diff a.path:hover,
+div.diff a.hash:hover {
+ text-decoration: underline;
+}
+
+div.diff.to_file a.path,
+div.diff.to_file {
+ color: #007000;
+}
+
+div.diff.add {
+ color: #008800;
+}
+
+div.diff.add span.marked {
+ background-color: #aaffaa;
+}
+
+div.diff.from_file a.path,
+div.diff.from_file {
+ color: #aa0000;
+}
+
+div.diff.rem {
+ color: #cc0000;
+}
+
+div.diff.rem span.marked {
+ background-color: #ffaaaa;
+}
+
+div.diff.chunk_header a,
+div.diff.chunk_header {
+ color: #990099;
+}
+
+div.diff.chunk_header {
+ border: dotted #ffe0ff;
+ border-width: 1px 0px 0px 0px;
+ margin-top: 2px;
+}
+
+div.diff.chunk_header span.chunk_info {
+ background-color: #ffeeff;
+}
+
+div.diff.chunk_header span.section {
+ color: #aa22aa;
+}
+
+div.diff.incomplete {
+ color: #cccccc;
+}
+
+div.diff.nodifferences {
+ font-weight: bold;
+ color: #600000;
+}
+
+/* side-by-side diff */
+div.chunk_block {
+ overflow: hidden;
+}
+
+div.chunk_block div.old {
+ float: left;
+ width: 50%;
+ overflow: hidden;
+}
+
+div.chunk_block div.new {
+ margin-left: 50%;
+ width: 50%;
+}
+
+div.chunk_block.rem div.old div.diff.rem {
+ background-color: #fff5f5;
+}
+div.chunk_block.add div.new div.diff.add {
+ background-color: #f8fff8;
+}
+div.chunk_block.chg div div.diff {
+ background-color: #fffff0;
+}
+div.chunk_block.ctx div div.diff.ctx {
+ color: #404040;
+}
+
+
+div.index_include {
+ border: solid #d9d8d1;
+ border-width: 0px 0px 1px;
+ padding: 12px 8px;
+}
+
+div.search {
+ font-size: 100%;
+ font-weight: normal;
+ margin: 4px 8px;
+ float: right;
+ top: 56px;
+ right: 12px
+}
+
+div.projsearch {
+ text-align: center;
+ margin: 20px 0px;
+}
+
+div.projsearch form {
+ margin-bottom: 2px;
+}
+
+td.linenr {
+ text-align: right;
+}
+
+a.linenr {
+ color: #999999;
+ text-decoration: none
+}
+
+a.rss_logo {
+ float: right;
+ padding: 3px 5px;
+ line-height: 10px;
+ border: 1px solid;
+ border-color: #fcc7a5 #7d3302 #3e1a01 #ff954e;
+ color: #ffffff;
+ background-color: #ff6600;
+ font-weight: bold;
+ font-family: sans-serif;
+ font-size: 70%;
+ text-align: center;
+ text-decoration: none;
+}
+
+a.rss_logo:hover {
+ background-color: #ee5500;
+}
+
+a.rss_logo.generic {
+ background-color: #ff8800;
+}
+
+a.rss_logo.generic:hover {
+ background-color: #ee7700;
+}
+
+span.refs span {
+ padding: 0px 4px;
+ font-size: 70%;
+ font-weight: normal;
+ border: 1px solid;
+ background-color: #ffaaff;
+ border-color: #ffccff #ff00ee #ff00ee #ffccff;
+}
+
+span.refs span a {
+ text-decoration: none;
+ color: inherit;
+}
+
+span.refs span a:hover {
+ text-decoration: underline;
+}
+
+span.refs span.indirect {
+ font-style: italic;
+}
+
+span.refs span.ref {
+ background-color: #aaaaff;
+ border-color: #ccccff #0033cc #0033cc #ccccff;
+}
+
+span.refs span.tag {
+ background-color: #ffffaa;
+ border-color: #ffffcc #ffee00 #ffee00 #ffffcc;
+}
+
+span.refs span.head {
+ background-color: #aaffaa;
+ border-color: #ccffcc #00cc33 #00cc33 #ccffcc;
+}
+
+span.atnight {
+ color: #cc0000;
+}
+
+span.match {
+ color: #e00000;
+}
+
+div.binary {
+ font-style: italic;
+}
+
+div.remote {
+ margin: .5em;
+ border: 1px solid #d9d8d1;
+ display: inline-block;
+}
+
+/* JavaScript-based timezone manipulation */
+
+.popup { /* timezone selection UI */
+ position: absolute;
+ /* "top: 0; right: 0;" would be better, if not for bugs in browsers */
+ top: 0; left: 0;
+ border: 1px solid;
+ padding: 2px;
+ background-color: #f0f0f0;
+ font-style: normal;
+ color: #000000;
+ cursor: auto;
+}
+
+.close-button { /* close timezone selection UI without selecting */
+ /* float doesn't work within absolutely positioned container,
+ * if width of container is not set explicitly */
+ /* float: right; */
+ position: absolute;
+ top: 0px; right: 0px;
+ border: 1px solid green;
+ margin: 1px 1px 1px 1px;
+ padding-bottom: 2px;
+ width: 12px;
+ height: 10px;
+ font-size: 9px;
+ font-weight: bold;
+ text-align: center;
+ background-color: #fff0f0;
+ cursor: pointer;
+}
+
+.repo_header {
+ display: flex;
+ flex-direction: row;
+ justify-content: space-between;
+}
+
+.projects_list {
+ border: 1px solid black;
+}
+
+/* Style definition generated by highlight 2.4.5, http://www.andre-simon.de/ */
+
+/* Highlighting theme definition: */
+
+.num { color:#2928ff; }
+.esc { color:#ff00ff; }
+.str { color:#ff0000; }
+.dstr { color:#818100; }
+.slc { color:#838183; font-style:italic; }
+.com { color:#838183; font-style:italic; }
+.dir { color:#008200; }
+.sym { color:#000000; }
+.line { color:#555555; }
+.kwa { color:#000000; font-weight:bold; }
+.kwb { color:#830000; }
+.kwc { color:#000000; font-weight:bold; }
+.kwd { color:#010181; }
+
+@media only screen and (max-width: 800px) {
+ .descr {display:none;}
+}