hook(type => "formbuilder_setup", id => "rename", call => \&formbuilder_setup);
hook(type => "formbuilder", id => "rename", call => \&formbuilder);
hook(type => "sessioncgi", id => "rename", call => \&sessioncgi);
- hook(type => "rename", id => "rename", call => \&rename);
+ hook(type => "rename", id => "rename", call => \&rename_subpages);
}
sub getsetup () {
# insert the standard extensions
my @page_types;
if (exists $IkiWiki::hooks{htmlize}) {
- @page_types=grep { !/^_/ }
- keys %{$IkiWiki::hooks{htmlize}};
+ foreach my $key (grep { !/^_/ } keys %{$IkiWiki::hooks{htmlize}}) {
+ push @page_types, [$key, $IkiWiki::hooks{htmlize}{$key}{longname} || $key];
+ }
}
+ @page_types=sort @page_types;
# make sure the current extension is in the list
my ($ext) = $pagesources{$page}=~/\.([^.]+)$/;
if (! $IkiWiki::hooks{htmlize}{$ext}) {
- unshift(@page_types, $ext);
+ unshift(@page_types, [$ext, $ext]);
}
$f->field(name => "type", type => 'select',
}
# Add subpages to the list of pages to be renamed, if needed.
-sub rename(@) {
+sub rename_subpages (@) {
my %params = @_;
my %torename = %{$params{torename}};
return $content;
}
-sub rename_hook (@) {
+sub rename_hook {
my %params = @_;
my @torename=@{$params{torename}};
$done{$torename->{src}}=1;
}
}
+
push @torename, rename_hook(
torename => \@nextset,
done => \%done,
IkiWiki::rcs_rename($rename->{srcfile}, $rename->{destfile});
}
else {
- if (! CORE::rename($config{srcdir}."/".$rename->{srcfile},
+ if (! rename($config{srcdir}."/".$rename->{srcfile},
$config{srcdir}."/".$rename->{destfile})) {
error("rename: $!");
}