X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;ds=sidebyside;f=lib%2FPublicInbox%2FWwwStream.pm;fp=lib%2FPublicInbox%2FWwwStream.pm;h=0416db0b474200dc9f534d4797276159d0e15a80;hb=038d977cc25177759537a89ca078701f14d3ace0;hp=aee78170c713df91ea1186264080fb32a7e2dbfa;hpb=63cafb59760fdb73a15c22210c59fe0f13d79e88;p=public-inbox.git diff --git a/lib/PublicInbox/WwwStream.pm b/lib/PublicInbox/WwwStream.pm index aee78170..0416db0b 100644 --- a/lib/PublicInbox/WwwStream.pm +++ b/lib/PublicInbox/WwwStream.pm @@ -1,4 +1,4 @@ -# Copyright (C) 2016-2021 all contributors +# Copyright (C) all contributors # License: AGPL-3.0+ # # HTML body stream for which yields getline+close methods for @@ -86,17 +86,17 @@ sub coderepos ($) { my $cr = $ctx->{ibx}->{coderepo} // return (); my $cfg = $ctx->{www}->{pi_cfg}; my $upfx = ($ctx->{-upfx} // ''). '../'; - my @ret; + my $pfx = $ctx->{base_url} //= $ctx->base_url; + my $up = $upfx =~ tr!/!/!; + $pfx =~ s!/[^/]+\z!/! for (1..$up); + my @ret = ('' . + 'Code repositories for project(s) associated with this '. + $ctx->{ibx}->thing_type . "\n"); for my $cr_name (@$cr) { - $ret[0] //= <Code repositories for project(s) associated with this inbox: -EOF my $urls = $cfg->get_all("coderepo.$cr_name.cgiturl"); if ($urls) { for (@$urls) { - # relative or absolute URL?, prefix relative - # "foo.git" with appropriate number of "../" - my $u = m!\A(?:[a-z\+]+:)?//! ? $_ : $upfx.$_; + my $u = m!\A(?:[a-z\+]+:)?//! ? $_ : $pfx.$_; $u = ascii_html(prurl($ctx->{env}, $u)); $ret[0] .= qq(\n\t$u); }