Re: [PATCH v3] gitweb: allow extra breadcrumbs to prefix the trail

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Jul 4, 2013 at 7:02 PM, Tony Finch <dot@xxxxxxxx> wrote:

> There are often parent pages logically above the gitweb projects
> list, e.g. home pages of the organization and department that host
> the gitweb server. This change allows you to include links to those
> pages in gitweb's breadcrumb trail.
>
> Signed-off-by: Tony Finch <dot@xxxxxxxx>
> Reviewed-by: Jonathan Nieder <jrnieder@xxxxxxxxx>

For what it is worth:

Acked-by: Jakub Narebski <jnareb@xxxxxxxxx>

> ---
>  Documentation/gitweb.conf.txt | 22 ++++++++++++++++++++--
>  gitweb/gitweb.perl            |  7 ++++++-
>  2 files changed, 26 insertions(+), 3 deletions(-)
>
> diff --git a/Documentation/gitweb.conf.txt b/Documentation/gitweb.conf.txt
> index ea0526e..305db63 100644
> --- a/Documentation/gitweb.conf.txt
> +++ b/Documentation/gitweb.conf.txt
> @@ -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.

I wonder if we should change this... but it is issue unrelated to current
patch, which doesn't make situation worse.

> +
> +@extra_breadcrumbs::

@external_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::
> diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl
> index 8d69ada..f429f75 100755
> --- a/gitweb/gitweb.perl
> +++ b/gitweb/gitweb.perl
> @@ -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;
> --
> 1.8.3.1.605.g85318f5
>
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]