# Note: preserve order of params, some plugins may
# consider it significant.
my @params;
- while ($params =~ /(\w+)=\"?([^"]+)"?(\s+|$)/g) {
- push @params, $1, $2;
+ while ($params =~ /(?:(\w+)=)?(?:"([^"]+)"|(\S+))(?:\s+|$)/g) {
+ if (defined $1) {
+ push @params, $1, (defined $2 ? $2 : $3);
+ }
+ else {
+ push @params, (defined $2 ? $2 : $3), '';
+ }
}
return $hooks{preprocess}{$command}{call}->(@params, page => $page);
}
}
} #}}}
+sub filter ($$) {
+ my $page=shift;
+ my $content=shift;
+
+ if (exists $hooks{filter}) {
+ foreach my $id (keys %{$hooks{filter}}) {
+ $content=$hooks{filter}{$id}{call}->(
+ page => $page,
+ content => $content
+ );
+ }
+ }
+
+ return $content;
+}
+
sub render ($) { #{{{
my $file=shift;
my $page=pagename($file);
delete $depends{$page};
- if (exists $hooks{filter}) {
- foreach my $id (keys %{$hooks{filter}}) {
- $content=$hooks{filter}{$id}{call}->(
- page => $page,
- content => $content
- );
- }
- }
+ $content=filter($page, $content);
$links{$page}=[findlinks($page, $content)];