Browse Source

Gitweb - provide site headers and footers

This allows web sites with a header and footer standard for each page
to add them to the pages produced by gitweb.

Two new variables $site_header and $site_footer are defined (default
to null) each of which can specify a file containing the header and
footer html.

In addition, if the $stylesheet variable is undefined, a new array
@stylesheets (which defaults to a single element of gitweb.css) can be
used to specify more than one style sheet.  This allows the clasical
gitweb.css styles to be retained, but a site wide style sheet used
within the header and footer areas.

Signed-off-by: Alan Chandler <alan@chandlerfamily.org.uk>
Signed-off-by: Junio C Hamano <junkio@cox.net>
maint
Alan Chandler 18 years ago committed by Junio C Hamano
parent
commit
b2d3476e15
  1. 4
      Makefile
  2. 45
      gitweb/gitweb.perl

4
Makefile

@ -132,6 +132,8 @@ GITWEB_HOMETEXT = indextext.html
GITWEB_CSS = gitweb.css GITWEB_CSS = gitweb.css
GITWEB_LOGO = git-logo.png GITWEB_LOGO = git-logo.png
GITWEB_FAVICON = git-favicon.png GITWEB_FAVICON = git-favicon.png
GITWEB_SITE_HEADER =
GITWEB_SITE_FOOTER =


export prefix bindir gitexecdir template_dir GIT_PYTHON_DIR export prefix bindir gitexecdir template_dir GIT_PYTHON_DIR


@ -675,6 +677,8 @@ gitweb/gitweb.cgi: gitweb/gitweb.perl
-e 's|++GITWEB_CSS++|$(GITWEB_CSS)|g' \ -e 's|++GITWEB_CSS++|$(GITWEB_CSS)|g' \
-e 's|++GITWEB_LOGO++|$(GITWEB_LOGO)|g' \ -e 's|++GITWEB_LOGO++|$(GITWEB_LOGO)|g' \
-e 's|++GITWEB_FAVICON++|$(GITWEB_FAVICON)|g' \ -e 's|++GITWEB_FAVICON++|$(GITWEB_FAVICON)|g' \
-e 's|++GITWEB_SITE_HEADER++|$(GITWEB_SITE_HEADER)|g' \
-e 's|++GITWEB_SITE_FOOTER++|$(GITWEB_SITE_FOOTER)|g' \
$< >$@+ $< >$@+
chmod +x $@+ chmod +x $@+
mv $@+ $@ mv $@+ $@

45
gitweb/gitweb.perl

@ -41,11 +41,19 @@ our $home_link_str = "++GITWEB_HOME_LINK_STR++";
# replace this with something more descriptive for clearer bookmarks # replace this with something more descriptive for clearer bookmarks
our $site_name = "++GITWEB_SITENAME++" || $ENV{'SERVER_NAME'} || "Untitled"; our $site_name = "++GITWEB_SITENAME++" || $ENV{'SERVER_NAME'} || "Untitled";


# filename of html text to include at top of each page
our $site_header = "++GITWEB_SITE_HEADER++";
# html text to include at home page # html text to include at home page
our $home_text = "++GITWEB_HOMETEXT++"; our $home_text = "++GITWEB_HOMETEXT++";
# filename of html text to include at bottom of each page
our $site_footer = "++GITWEB_SITE_FOOTER++";

# URI of stylesheets
our @stylesheets = ("++GITWEB_CSS++");
our $stylesheet;
# default is not to define style sheet, but it can be overwritten later
undef $stylesheet;


# URI of default stylesheet
our $stylesheet = "++GITWEB_CSS++";
# URI of GIT logo # URI of GIT logo
our $logo = "++GITWEB_LOGO++"; our $logo = "++GITWEB_LOGO++";
# URI of GIT favicon, assumed to be image/png type # URI of GIT favicon, assumed to be image/png type
@ -1366,8 +1374,17 @@ sub git_header_html {
<meta name="generator" content="gitweb/$version git/$git_version"/> <meta name="generator" content="gitweb/$version git/$git_version"/>
<meta name="robots" content="index, nofollow"/> <meta name="robots" content="index, nofollow"/>
<title>$title</title> <title>$title</title>
<link rel="stylesheet" type="text/css" href="$stylesheet"/>
EOF EOF
# print out each stylesheet that exist
if (defined $stylesheet) {
#provides backwards capability for those people who define style sheet in a config file
print '<link rel="stylesheet" type="text/css" href="'.$stylesheet.'"/>'."\n";
} else {
foreach my $stylesheet (@stylesheets) {
next unless $stylesheet;
print '<link rel="stylesheet" type="text/css" href="'.$stylesheet.'"/>'."\n";
}
}
if (defined $project) { if (defined $project) {
printf('<link rel="alternate" title="%s log" '. printf('<link rel="alternate" title="%s log" '.
'href="%s" type="application/rss+xml"/>'."\n", 'href="%s" type="application/rss+xml"/>'."\n",
@ -1385,8 +1402,15 @@ EOF
} }


print "</head>\n" . print "</head>\n" .
"<body>\n" . "<body>\n";
"<div class=\"page_header\">\n" .
if (-f $site_header) {
open (my $fd, $site_header);
print <$fd>;
close $fd;
}

print "<div class=\"page_header\">\n" .
"<a href=\"http://www.kernel.org/pub/software/scm/git/docs/\" title=\"git documentation\">" . "<a href=\"http://www.kernel.org/pub/software/scm/git/docs/\" title=\"git documentation\">" .
"<img src=\"$logo\" width=\"72\" height=\"27\" alt=\"git\" style=\"float:right; border-width:0px;\"/>" . "<img src=\"$logo\" width=\"72\" height=\"27\" alt=\"git\" style=\"float:right; border-width:0px;\"/>" .
"</a>\n"; "</a>\n";
@ -1437,8 +1461,15 @@ sub git_footer_html {
print $cgi->a({-href => href(project=>undef, action=>"project_index"), print $cgi->a({-href => href(project=>undef, action=>"project_index"),
-class => "rss_logo"}, "TXT") . "\n"; -class => "rss_logo"}, "TXT") . "\n";
} }
print "</div>\n" . print "</div>\n" ;
"</body>\n" .
if (-f $site_footer) {
open (my $fd, $site_footer);
print <$fd>;
close $fd;
}

print "</body>\n" .
"</html>"; "</html>";
} }



Loading…
Cancel
Save