Merge branch 'tf/gitweb-extra-breadcrumbs'
An Gitweb installation that is a part of larger site can optionally show extra links that point at the levels higher than the Gitweb pages itself in the link hierarchy of pages. * tf/gitweb-extra-breadcrumbs: gitweb: allow extra breadcrumbs to prefix the trail
This commit is contained in:
commit
784bdd61ae
@ -336,8 +336,26 @@ $home_link_str::
|
||||
used as the first component of gitweb's "breadcrumb trail":
|
||||
`<home link> / <project> / <action>`. Can be set at build time using
|
||||
the `GITWEB_HOME_LINK_STR` variable. By default it is set to "projects",
|
||||
as this link leads to the list of projects. Other popular choice it to
|
||||
set it to the name of site.
|
||||
as this link leads to the list of projects. Another popular choice is to
|
||||
set it to the name of site. Note that it is treated as raw HTML so it
|
||||
should not be set from untrusted sources.
|
||||
|
||||
@extra_breadcrumbs::
|
||||
Additional links to be added to the start of the breadcrumb trail before
|
||||
the home link, to pages that are logically "above" the gitweb projects
|
||||
list, such as the organization and department which host the gitweb
|
||||
server. Each element of the list is a reference to an array, in which
|
||||
element 0 is the link text (equivalent to `$home_link_str`) and element
|
||||
1 is the target URL (equivalent to `$home_link`).
|
||||
+
|
||||
For example, the following setting produces a breadcrumb trail like
|
||||
"home / dev / projects / ..." where "projects" is the home link.
|
||||
----------------------------------------------------------------------------
|
||||
our @extra_breadcrumbs = (
|
||||
[ 'home' => 'https://www.example.org/' ],
|
||||
[ 'dev' => 'https://dev.example.org/' ],
|
||||
);
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
$logo_url::
|
||||
$logo_label::
|
||||
|
@ -85,6 +85,9 @@ our $project_maxdepth = "++GITWEB_PROJECT_MAXDEPTH++";
|
||||
# string of the home link on top of all pages
|
||||
our $home_link_str = "++GITWEB_HOME_LINK_STR++";
|
||||
|
||||
# extra breadcrumbs preceding the home link
|
||||
our @extra_breadcrumbs = ();
|
||||
|
||||
# name of your site or organization to appear in page titles
|
||||
# replace this with something more descriptive for clearer bookmarks
|
||||
our $site_name = "++GITWEB_SITENAME++"
|
||||
@ -3982,7 +3985,9 @@ sub print_nav_breadcrumbs_path {
|
||||
sub print_nav_breadcrumbs {
|
||||
my %opts = @_;
|
||||
|
||||
print $cgi->a({-href => esc_url($home_link)}, $home_link_str) . " / ";
|
||||
for my $crumb (@extra_breadcrumbs, [ $home_link_str => $home_link ]) {
|
||||
print $cgi->a({-href => esc_url($crumb->[1])}, $crumb->[0]) . " / ";
|
||||
}
|
||||
if (defined $project) {
|
||||
my @dirname = split '/', $project;
|
||||
my $projectbasename = pop @dirname;
|
||||
|
Loading…
Reference in New Issue
Block a user