wiki_file_prune_regexp => qr{((^|/).svn/|\.\.|^\.|\/\.|\.html?$|\.rss$)},
wiki_link_regexp => qr/\[\[(?:([^\s\]\|]+)\|)?([^\s\]]+)\]\]/,
wiki_processor_regexp => qr/\[\[(\w+)\s+([^\]]+)\]\]/,
- wiki_file_regexp => qr/(^[-A-Za-z0-9_.:\/+]+$)/,
+ wiki_file_regexp => qr/(^[-[:alnum:]_.:\/+]+$)/,
verbose => 0,
wikiname => "wiki",
default_pageext => ".mdwn",
error("internal error: $file cannot be found");
} #}}}
-sub readfile ($) { #{{{
+sub readfile ($;$) { #{{{
my $file=shift;
+ my $binary=shift;
if (-l $file) {
error("cannot read a symlink ($file)");
}
local $/=undef;
- open (IN, "$file") || error("failed to read $file: $!");
+ open (IN, $file) || error("failed to read $file: $!");
+ binmode(IN) if $binary;
my $ret=<IN>;
close IN;
return $ret;
} #}}}
-sub writefile ($$$) { #{{{
+sub writefile ($$$;$) { #{{{
my $file=shift; # can include subdirs
my $destdir=shift; # directory to put file in
my $content=shift;
+ my $binary=shift;
my $test=$file;
while (length $test) {
}
open (OUT, ">$destdir/$file") || error("failed to write $destdir/$file: $!");
+ binmode(OUT) if $binary;
print OUT $content;
close OUT;
} #}}}
sub titlepage ($) { #{{{
my $title=shift;
$title=~y/ /_/;
- $title=~s/([^-A-Za-z0-9_:+\/.])/"__".ord($1)."__"/eg;
+ $title=~s/([^-[:alnum:]_:+\/.])/"__".ord($1)."__"/eg;
return $title;
} #}}}
wikiname => $config{wikiname},
pagebody => $pagebody,
styleurl => styleurl(),
+ baseurl => "$config{url}/",
);
return $template->output;
}#}}}