X-Git-Url: https://sipb.mit.edu/gitweb.cgi/ikiwiki.git/blobdiff_plain/e01960e90aae4185771719e9eed00b23d43431a7..1b8f1b867c25c5287926ca538c1b04dbfc17f033:/IkiWiki.pm diff --git a/IkiWiki.pm b/IkiWiki.pm index 230170d85..b326dbdb8 100644 --- a/IkiWiki.pm +++ b/IkiWiki.pm @@ -90,7 +90,7 @@ sub defaultconfig () { #{{{ adminuser => undef, adminemail => undef, plugin => [qw{mdwn inline htmlscrubber passwordauth openid signinedit - lockedit conditional}], + lockedit conditional recentchanges}], libdir => undef, timeformat => '%c', locale => undef, @@ -609,10 +609,38 @@ sub htmllink ($$$;@) { #{{{ return "$linktext"; } #}}} +sub userlink ($) { #{{{ + my $user=shift; + + eval q{use CGI 'escapeHTML'}; + error($@) if $@; + if ($user =~ m!^https?://! && + eval q{use Net::OpenID::VerifiedIdentity; 1} && !$@) { + # Munge user-urls, as used by eg, OpenID. + my $oid=Net::OpenID::VerifiedIdentity->new(identity => $user); + my $display=$oid->display; + # Convert "user.somehost.com" to "user [somehost.com]". + if ($display !~ /\[/) { + $display=~s/^(.*?)\.([^.]+\.[a-z]+)$/$1 [$2]/; + } + # Convert "http://somehost.com/user" to "user [somehost.com]". + if ($display !~ /\[/) { + $display=~s/^https?:\/\/(.+)\/([^\/]+)$/$2 [$1]/; + } + $display=~s!^https?://!!; # make sure this is removed + return "".escapeHTML($display).""; + } + else { + return $user; + } +} #}}} + sub htmlize ($$$) { #{{{ my $page=shift; my $type=shift; my $content=shift; + + my $oneline = $content !~ /\n/; if (exists $hooks{htmlize}{$type}) { $content=$hooks{htmlize}{$type}{call}->( @@ -624,8 +652,6 @@ sub htmlize ($$$) { #{{{ error("htmlization of $type not supported"); } - my $oneline = $content !~ /\n/; - run_hooks(sanitize => sub { $content=shift->( page => $page,