下の [2004-01-14-1] で書いたやつを作ってみた.
結構いい加減.
### URL を短くして表示
# usage: {{shorten_url(URL, LEN_MAX)}}
# Ex.: {{shorten_url('http://example.com/abc/def/00101033/
# 0123456/aaaaaaaaaaaa/aaaaaaaaaaaa/index.html')}}
sub shorten_url {
my ($url, $max) = @_;
$max = 60 if not defined $max;
$url =~ s/\s+//gsm;
my $urlstr = $url;
my $ext = $url;
$ext =~ s/.+(\/.+)$/$1/;
$max = $max - length($ext);
$urlstr =~ s/^(.{$max}).+$/$1 ...$ext/;
return qq(<a href="$url">$urlstr</a>);
}
http://www.hostname.com/aaaaaaaaa/bbbbbbb/cccccc/dddddddd/eeeeeee/fffffff/gggggggg/hhhhhhhh/
みたいな URL は知りません.