git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: "Jakub Narębski" <jnareb@gmail.com>
To: Tony Finch <dot@dotat.at>
Cc: git@vger.kernel.org, Jonathan Nieder <jrnieder@gmail.com>
Subject: Re: [PATCH v3] gitweb: allow extra breadcrumbs to prefix the trail
Date: Thu, 4 Jul 2013 19:42:19 +0200	[thread overview]
Message-ID: <CANQwDwf56CQZJ25-Lc9WJYeB4Q7_4LVPx45yq9EQ8c17NsJp4g@mail.gmail.com> (raw)
In-Reply-To: <E1UunDD-0004Xd-Vv@hermes-2.csi.cam.ac.uk>

On Thu, Jul 4, 2013 at 7:02 PM, Tony Finch <dot@dotat.at> 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@dotat.at>
> Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>

For what it is worth:

Acked-by: Jakub Narebski <jnareb@gmail.com>

> ---
>  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
>

  reply	other threads:[~2013-07-04 17:42 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-07-02 15:49 [PATCH] gitweb: allow extra breadcrumbs to prefix the trail Tony Finch
2013-07-02 15:49 ` [PATCH v2] " Tony Finch
2013-07-03 21:59 ` [PATCH] " Jonathan Nieder
2013-07-03 22:11   ` Jakub Narębski
2013-07-04  8:44     ` Tony Finch
2013-07-04 14:40       ` Jakub Narębski
2013-07-04 15:11         ` Tony Finch
2013-07-04 15:34           ` Jakub Narębski
2013-07-04 15:56             ` Tony Finch
2013-07-04 16:32               ` Jakub Narębski
2013-07-04 17:08                 ` Tony Finch
2013-07-04 17:31                   ` Jakub Narębski
2013-07-04 17:02 ` [PATCH v3] " Tony Finch
2013-07-04 17:42   ` Jakub Narębski [this message]
2013-07-07  1:05   ` Jonathan Nieder

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CANQwDwf56CQZJ25-Lc9WJYeB4Q7_4LVPx45yq9EQ8c17NsJp4g@mail.gmail.com \
    --to=jnareb@gmail.com \
    --cc=dot@dotat.at \
    --cc=git@vger.kernel.org \
    --cc=jrnieder@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).