sub absolute_urls ($$) { #{{{
# sucky sub because rss sucks
my $content=shift;
- my $url=shift;
+ my $baseurl=shift;
+ my $url=$baseurl;
$url=~s/[^\/]+$//;
- $content=~s/<a\s+href="(?![^:]+:\/\/)([^"]+)"/<a href="$url$1"/ig;
- $content=~s/<img\s+src="(?![^:]+:\/\/)([^"]+)"/<img src="$url$1"/ig;
+ $content=~s/(<a(?:\s+(?:class|id)="?\w+"?)?)\s+href="(#[^"]+)"/$1 href="$baseurl$2"/ig;
+ $content=~s/(<a(?:\s+(?:class|id)="?\w+"?)?)\s+href="(?![^:]+:\/\/)([^"]+)"/$1 href="$url$2"/ig;
+ $content=~s/(<img(?:\s+(?:class|id)="?\w+"?)?)\s+src="(?![^:]+:\/\/)([^"]+)"/$1 src="$url$2"/ig;
return $content;
} #}}}
} #}}}
sub pingurl (@) { #{{{
- return unless $config{pingurl} && %toping;
+ return unless @{$config{pingurl}} && %toping;
eval q{require RPC::XML::Client};
if ($@) {
}
# daemonize here so slow pings don't slow down wiki updates
- eval q{use POSIX ’setsid’};
- chdir '/';
- open STDIN, '/dev/null';
- open STDOUT, '>/dev/null';
defined(my $pid = fork) or error("Can't fork: $!");
return if $pid;
+ chdir '/';
+ eval q{use POSIX ’setsid’};
setsid() or error("Can't start a new session: $!");
+ open STDIN, '/dev/null';
+ open STDOUT, '>/dev/null';
open STDERR, '>&STDOUT' or error("Can’t dup stdout: $!");
# Don't need to keep a lock on the wiki as a daemon.