-sub code_footer ($) {
- my ($env) = @_;
- my $u = prurl($env, $CODE_URL);
- qq(AGPL code for this site: git clone <a\nhref="$u">$u</a>)
+sub inboxes { () } # TODO
+
+sub coderepos ($) {
+ my ($ctx) = @_;
+ $ctx->{ibx} // return inboxes($ctx);
+ my $cr = $ctx->{ibx}->{coderepo} // return ();
+ my $upfx = ($ctx->{-upfx} // ''). '../';
+ my $pfx = $ctx->{base_url} //= $ctx->base_url;
+ my $up = $upfx =~ tr!/!/!;
+ $pfx =~ s!/[^/]+\z!/! for (1..$up);
+ $pfx .= '/' if substr($pfx, -1, 1) ne '/';
+ my $buf = '<a id=code>' .
+ 'Code repositories for project(s) associated with this '.
+ $ctx->{ibx}->thing_type . "\n";
+ for my $git (@{$ctx->{www}->{pi_cfg}->repo_objs($ctx->{ibx})}) {
+ for ($git->pub_urls($ctx->{env})) {
+ my $u = m!\A(?:[a-z\+]+:)?//!i ? $_ : $pfx.$_;
+ $u = ascii_html(prurl($ctx->{env}, $u));
+ $buf .= qq(\n\t<a\nhref="$u">$u</a>);
+ }
+ }
+ ($buf);