Thread (15 messages) flat view 15 messages, 3 authors, 2016-06-15

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

From: Jakub Narębski <hidden>
Date: 2016-06-15 22:58:00

On Thu, Jul 4, 2013 at 5:56 PM, Tony Finch [off-list ref] wrote:
Jakub Narębski [off-list ref] wrote:
quoted
First, do I understand correctly that @extra_breadcrumbs are rendered *after*
$home_link*, and in exactly the same manner?
Before the home link, and yes, in the same manner. The extra breadcrumbs
are for links to parent pages above gitweb in some hierarchy.
Hmmm... I would have thought that they were after home link. I wonder
if leaving it up to user to configure @extra_breadcrumbs to include $home_link
in appropriate place (the unshift / push solution to adding to
@extra_breadcrumbs,
starting with $home_link) would be good idea, or over-engineering.

In what situation do you need those extra breadcrumbs useful? What
necessity / itch to scratch is behind idea of this patch?
quoted
But now I think that we can do better, simply put $home_link_str and $home_link
in @extra_breadcrumbs / @top_level_breadcrumbs / @nav_breadcrumbs before
using it,
We could save a line that way:

-       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]) . " / ";
+       }
And avoid a bit of code duplication; now we are sure that both
@extra_breadcrumbs and $home_link are rendered in the same way.
quoted
P.S. It is a bit late, but wouldn't { name => $link_name, href => $link_url }
(like %features hash) be a better solution than [ $link_name, $link_url ],
i.e. hashref (named parameters) instead of arrayref (positional parameters).
You wouldn't have to remember which is first: text or URL.
I thought the fat arrow would be mnemonic enough, and less verbose.
Yes, hashref solution is a bit verbose. I don't like abusing fat arrow notation,
but here it gives nice mnemonic (hopefully explained in documentation).

-- 
Jakub Narebski
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help