wiki_file_prune_regexp => qr{((^|/).svn/|\.\.|^\.|\/\.|\.x?html?$|\.rss$|\.atom$|.arch-ids/|{arch}/)},
wiki_link_regexp => qr/\[\[(?:([^\]\|]+)\|)?([^\s\]]+)\]\]/,
wiki_file_regexp => qr/(^[-[:alnum:]_.:\/+]+$)/,
+ web_commit_regexp => qr/^web commit (by (.*?(?=: )|[^:]+)|from (\d+\.\d+\.\d+\.\d+)):?(.*)/,
verbose => 0,
syslog => 0,
wikiname => "wiki",
my $changelog=[rcs_recentchanges(100)];
foreach my $change (@$changelog) {
$change->{when} = concise(ago($change->{when}));
- $change->{user} = htmllink("", "", escapeHTML($change->{user}), 1);
+
+ if ($change->{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 => $change->{user});
+ $change->{user} = "<a href=\"".$change->{user}."\">".escapeHTML($oid->display)."</a>";
+ }
+ else {
+ $change->{user} = htmllink("", "", escapeHTML($change->{user}), 1);
+ }
my $is_excess = exists $change->{pages}[10]; # limit pages to first 10
delete @{$change->{pages}}[10 .. @{$change->{pages}}] if $is_excess;
my $master_branch = 'master'; # working branch
my $sha1_pattern = qr/[0-9a-fA-F]{40}/; # pattern to validate Git sha1sums
my $dummy_commit_msg = 'dummy commit'; # message to skip in recent changes
-my $web_commit_msg = qr/^web commit (by (\w+)|from (\d+\.\d+\.\d+\.\d+)):?(.*)/;
sub _safe_git (&@) { #{{{
# Start a child process safely without resorting /bin/sh.
push @message, { line => $title };
if (defined $message[0] &&
- $message[0]->{line} =~ m/$web_commit_msg/) {
+ $message[0]->{line} =~ m/$config{web_commit_regexp}/) {
$user=defined $2 ? "$2" : "$3";
$message[0]->{line}=$4;
} else {
my @changed_pages = map { $_->{'file'} } @{ $ci->{'details'} };
my ($user, $message);
- if (@{ $ci->{'comment'} }[0] =~ m/$web_commit_msg/) {
+ if (@{ $ci->{'comment'} }[0] =~ m/$config{web_commit_regexp}/) {
$user = defined $2 ? "$2" : "$3";
$message = $4;
} else {
package IkiWiki;
-my $svn_webcommit=qr/^web commit (by (\w+)|from (\d+\.\d+\.\d+\.\d+)):?(.*)/;
-
# svn needs LC_CTYPE set to a UTF-8 locale, so try to find one. Any will do.
sub find_lc_ctype() {
my $current = setlocale(LC_CTYPE());
my $committype="web";
if (defined $message[0] &&
- $message[0]->{line}=~/$svn_webcommit/) {
+ $message[0]->{line}=~/$config{web_commit_regexp}/) {
$user=defined $2 ? "$2" : "$3";
$message[0]->{line}=$4;
}
my $user=`svnlook author $config{svnrepo} -r $rev`;
chomp $user;
my $message=`svnlook log $config{svnrepo} -r $rev`;
- if ($message=~/$svn_webcommit/) {
+ if ($message=~/$config{web_commit_regexp}/) {
$user=defined $2 ? "$2" : "$3";
$message=$4;
}
package IkiWiki;
-my $tla_webcommit=qr/^web commit (by (\w+)|from (\d+\.\d+\.\d+\.\d+)):?(.*)/;
-
sub quiet_system (@) {
# See Debian bug #385939.
open (SAVEOUT, ">&STDOUT");
my $when = time - str2time($sdate, 'UTC');
my $committype = "web";
- if (defined $summ && $summ =~ /$tla_webcommit/) {
+ if (defined $summ && $summ =~ /$config{web_commit_regexp}/) {
$user = defined $2 ? "$2" : "$3";
$summ = $4;
}
my @changed_pages = grep { !/(^.*\/)?\.arch-ids\/.*\.id$/ }
split(/ /, "$newfiles $modfiles $remfiles .arch-ids/fake.id");
- if ($message =~ /$tla_webcommit/) {
+ if ($message =~ /$config{web_commit_regexp}/) {
$user=defined $2 ? "$2" : "$3";
$message=$4;
}
+ikiwiki (1.34) unstable; urgency=low
+
+ The httpauth setting in config files has been removed. To enable
+ httpauth support on your wiki, you should now enable the httpauth plugin,
+ instead.
+
+ This release includes OpenID support that is enabled through the openid
+ plugin. I recommend turning this on to make it easier for users to sign
+ in to your wiki.
+
+ -- Joey Hess <joeyh@debian.org> Sun, 19 Nov 2006 20:53:05 -0500
+
ikiwiki (1.32) unstable; urgency=low
There is a change to the plugin interface in this version. Any plugins that
ikiwiki (1.34) UNRELEASED; urgency=low
- * Make auth methods pluggable.
- * Move httpauth support to a plugin.
* Add an openid plugin to support logging in using OpenID.
+ * Web commits by OpenID users will record the full OpenID url for the user,
+ but in recentchanges, these urls will be converted to a simplified display
+ form+link.
+ * Modified svn, git, tla backends to recognise such web commits.
+ * Move httpauth support to a plugin.
-- Joey Hess <joeyh@debian.org> Sun, 19 Nov 2006 16:40:26 -0500