X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/6c83ce4d5608f567f8f94b2f26461b5918e5327e..6f2c69a375055fa5c6ac9dc77eabbb9276032017:/ikiwiki diff --git a/ikiwiki b/ikiwiki index 1159ce769..129076f75 100755 --- a/ikiwiki +++ b/ikiwiki @@ -167,9 +167,10 @@ sub isinlinableimage ($) { $file=~/\.(png|gif|jpg|jpeg)$/; } -sub htmllink ($$) { +sub htmllink { my $page=shift; my $link=shift; + my $noimagelink=shift; my $bestlink=bestlink($page, $link); @@ -188,7 +189,7 @@ sub htmllink ($$) { $bestlink=File::Spec->abs2rel($bestlink, dirname($page)); - if (isinlinableimage($bestlink)) { + if (! $noimagelink && isinlinableimage($bestlink)) { return ""; } return "$link"; @@ -373,15 +374,13 @@ sub rcs_recentchanges ($) { eval q{use Date::Parse}; eval q{use Time::Duration}; - my %sourcepages=reverse %pagesources; - if (-d "$srcdir/.svn") { my $info=`LANG=C svn info $srcdir`; my ($svn_url)=$info=~/^URL: (.*)$/m; - # FIXME: currently assumes that the wiki is under trunk in - # svn. - my ($svn_base)=$svn_url=~m!(/trunk/.*)!; + # FIXME: currently assumes that the wiki is somewhere + # under trunk in svn, doesn't support other layouts. + my ($svn_base)=$svn_url=~m!(/trunk(?:/.*)?)$!; my $div=qr/^--------------------+$/; my $infoline=qr/^r(\d+)\s+\|\s+([^\s]+)\s+\|\s+(\d+-\d+-\d+\s+\d+:\d+:\d+\s+[-+]?\d+).*/; @@ -397,8 +396,8 @@ sub rcs_recentchanges ($) { $user=$2; $when=concise(ago(time - str2time($3))); } - elsif ($state eq 'header' && /^\s+[A-Z]\s+\Q$svn_base\E(.*)/) { - push @pages, $sourcepages{$1}; + elsif ($state eq 'header' && /^\s+[A-Z]\s+\Q$svn_base\E\/(.+)$/) { + push @pages, pagename($1) if length $1; } elsif ($state eq 'header' && /^$/) { $state='body'; @@ -406,7 +405,7 @@ sub rcs_recentchanges ($) { elsif ($state eq 'body' && /$div/) { push @ret, { rev => $rev, user => $user, when => $when, message => $message, - pages => [@pages] }; + pages => [@pages] } if @pages; return @ret if @ret >= $num; $state='header'; @@ -646,12 +645,10 @@ sub cgi () { my $list="