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,