X-Git-Url: https://sipb.mit.edu/gitweb.cgi/ikiwiki.git/blobdiff_plain/055179cb4cc9b8bc9b204e1a9f83b1f59e13824e..852999c5e1d62ce9302e6e7c8a14b8ac4741d802:/IkiWiki.pm diff --git a/IkiWiki.pm b/IkiWiki.pm index ab94f8622..b0ac8bbb4 100644 --- a/IkiWiki.pm +++ b/IkiWiki.pm @@ -32,7 +32,7 @@ memoize("file_pruned"); sub defaultconfig () { #{{{ return - wiki_file_prune_regexps => [qr/\.\./, qr/^\./, qr/\/\./, + wiki_file_prune_regexps => [qr/(^|\/)\.\.(\/|$)/, qr/^\./, qr/\/\./, qr/\.x?html?$/, qr/\.ikiwiki-new$/, qr/(^|\/).svn\//, qr/.arch-ids\//, qr/{arch}\//, qr/(^|\/)_MTN\//, @@ -680,7 +680,7 @@ sub preprocess ($$$;$$) { #{{{ # consider it significant. my @params; while ($params =~ m{ - (?:(\w+)=)? # 1: named parameter key? + (?:([-\w]+)=)? # 1: named parameter key? (?: """(.*?)""" # 2: triple-quoted value | @@ -740,11 +740,11 @@ sub preprocess ($$$;$$) { #{{{ $content =~ s{ (\\?) # 1: escape? \[\[ # directive open - (\w+) # 2: command + ([-\w]+) # 2: command \s+ ( # 3: the parameters.. (?: - (?:\w+=)? # named parameter key? + (?:[-\w]+=)? # named parameter key? (?: """.*?""" # triple-quoted value | @@ -871,7 +871,7 @@ sub loadindex () { #{{{ $pagecase{lc $page}=$page; foreach my $k (grep /_/, keys %items) { my ($id, $key)=split(/_/, $k, 2); - $pagestate{$page}{decode_entities($id)}{decode_entities($key)}=$items{$k}; + $pagestate{$page}{decode_entities($id)}{decode_entities($key)}=$items{$k}[0]; } } $oldrenderedfiles{$page}=[@{$items{dest}}]; @@ -1067,10 +1067,10 @@ sub file_pruned ($$) { #{{{ require File::Spec; my $file=File::Spec->canonpath(shift); my $base=File::Spec->canonpath(shift); - $file =~ s#^\Q$base\E/*##; + $file =~ s#^\Q$base\E/+##; my $regexp='('.join('|', @{$config{wiki_file_prune_regexps}}).')'; - return $file =~ m/$regexp/; + return $file =~ m/$regexp/ && $file ne $base; } #}}} sub gettext { #{{{