]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/commitdiff
Merge commit 'smcv/beautify'
authorJoey Hess <joey@kodama.kitenet.net>
Sat, 27 Sep 2008 17:00:48 +0000 (13:00 -0400)
committerJoey Hess <joey@kodama.kitenet.net>
Sat, 27 Sep 2008 17:00:48 +0000 (13:00 -0400)
Conflicts:

IkiWiki/Plugin/recentchanges.pm

Note that smcv's approach of using urlto also gets the url right when
redirecting to a non-html file, which is a better approach than my recent
fix to recentchanges

63 files changed:
IkiWiki.pm
IkiWiki/Plugin/aggregate.pm
IkiWiki/Plugin/attachment.pm
IkiWiki/Plugin/editpage.pm
IkiWiki/Plugin/edittemplate.pm
IkiWiki/Plugin/git.pm
IkiWiki/Plugin/htmlscrubber.pm
IkiWiki/Plugin/openid.pm
IkiWiki/Plugin/progress.pm
IkiWiki/Plugin/recentchanges.pm
IkiWiki/Plugin/remove.pm
IkiWiki/Plugin/rename.pm
IkiWiki/Plugin/skeleton.pm.example
IkiWiki/Plugin/tag.pm
IkiWiki/Render.pm
debian/changelog
doc/bugs/No_progress_in_progress_bar.mdwn
doc/bugs/index.html_is_made_visible_by_various_actions.mdwn [new file with mode: 0644]
doc/bugs/multiple_pages_with_same_name.mdwn [new file with mode: 0644]
doc/bugs/syntax_error_in_aggregate.mdwn [new file with mode: 0644]
doc/bugs/tags_base_dir_not_used_when_creating_new_tags.mdwn
doc/bugs/typo_in_skeleton.pm:_sessionncgi.mdwn [new file with mode: 0644]
doc/bugs/unicode_encoded_urls_and_recentchanges.mdwn [new file with mode: 0644]
doc/css_market.mdwn
doc/ikiwiki/directive.mdwn
doc/ikiwiki/directive/edittemplate.mdwn
doc/ikiwiki/formatting.mdwn
doc/ikiwiki/pagespec/attachment.mdwn
doc/ikiwikiusers.mdwn
doc/news/version_2.61.mdwn [deleted file]
doc/news/version_2.65.mdwn [new file with mode: 0644]
doc/plugins/htmlscrubber.mdwn
doc/plugins/write.mdwn
doc/roadmap.mdwn
doc/sandbox.mdwn
doc/todo/Allow_edittemplate_to_set_file_type.mdwn
doc/todo/Better_bug_tracking_support.mdwn
doc/todo/Feature_parity_with_Trac.mdwn
doc/todo/Location_of_pages_starting_with___36__tagbase_should_be_in__by_default.mdwn
doc/todo/automatic_use_of_syntax_plugin_on_source_code_files/discussion.mdwn [new file with mode: 0644]
doc/todo/inline:_numerical_ordering_by_title.mdwn
doc/todo/source_link.mdwn
doc/todo/structured_page_data.mdwn
doc/todo/supporting_comments_via_disussion_pages.mdwn
doc/todo/tracking_bugs_with_dependencies.mdwn
doc/todo/turn_edittemplate_verbosity_off_by_default.mdwn
doc/todo/wikitrails.mdwn [new file with mode: 0644]
doc/todo/wikitrails/discussion.mdwn [new file with mode: 0644]
doc/users/Will.mdwn
ikiwiki.in
po/bg.po
po/cs.po
po/da.po
po/de.po
po/es.po
po/fr.po
po/gu.po
po/ikiwiki.pot
po/pl.po
po/sv.po
po/vi.po
t/pagename.t
templates/renamesummary.tmpl

index 4e4da11c5a016daa9d04c0b6ee04df7f786a14a7..c0f5deab60909e825e11d62a85a9fd170ef523df 100644 (file)
@@ -618,7 +618,7 @@ sub pagename ($) { #{{{
 
        my $type=pagetype($file);
        my $page=$file;
-       $page=~s/\Q.$type\E*$// if defined $type;
+       $page=~s/\Q.$type\E*$// if defined $type && !$hooks{htmlize}{$type}{keepextension};
        return $page;
 } #}}}
 
index 2b40625dbd70bb9fe0da0c271d365948a83619b8..8044f1ed44d33e9d467431c338ea9cdc9765ae65 100644 (file)
@@ -420,11 +420,11 @@ sub expire () { #{{{
                next unless $feed->{expireage} || $feed->{expirecount};
                my $count=0;
                my %seen;
-               foreach my $item (sort { $IkiWiki::pagectime{$b->{page}} <=> $IkiWiki::pagectime{$a->{page}} }
+               foreach my $item (sort { ($IkiWiki::pagectime{$b->{page}} || 0) <=> ($IkiWiki::pagectime{$a->{page}} || 0) }
                                  grep { exists $_->{page} && $_->{feed} eq $feed->{name} }
                                  values %guids) {
                        if ($feed->{expireage}) {
-                               my $days_old = (time - $IkiWiki::pagectime{$item->{page}}) / 60 / 60 / 24;
+                               my $days_old = (time - ($IkiWiki::pagectime{$item->{page}} || 0)) / 60 / 60 / 24;
                                if ($days_old > $feed->{expireage}) {
                                        debug(sprintf(gettext("expiring %s (%s days old)"),
                                                $item->{page}, int($days_old)));
index 999fa4a8609c1b9f48702b3f6132e6d44a87cf71..f1a9b19394701ea82558513ecc423b451ba2ddc4 100644 (file)
@@ -311,6 +311,26 @@ sub match_user ($$;@) { #{{{
        }
 } #}}}
 
+sub match_admin ($$;@) { #{{{
+       shift;
+       shift;
+       my %params=@_;
+       
+       if (! exists $params{user}) {
+               return IkiWiki::FailReason->new("no user specified");
+       }
+
+       if (defined $params{user} && IkiWiki::is_admin($params{user})) {
+               return IkiWiki::SuccessReason->new("user is an admin");
+       }
+       elsif (! defined $params{user}) {
+               return IkiWiki::FailReason->new("not logged in");
+       }
+       else {
+               return IkiWiki::FailReason->new("user is not an admin");
+       }
+} #}}}
+
 sub match_ip ($$;@) { #{{{
        shift;
        my $ip=shift;
index e0705249709dbe17f62ee102b1e225f182e00f6e..687ebf51e63d4c7daebdcf6bfe172ad90674a8da 100644 (file)
@@ -85,8 +85,9 @@ sub cgi_editpage ($$) { #{{{
        });
        decode_form_utf8($form);
        
-       # This untaint is safe because we check file_pruned.
-       my $page=$form->field('page');
+       # This untaint is safe because we check file_pruned and
+       # wiki_file_regexp.
+       my ($page)=$form->field('page')=~/$config{wiki_file_regexp}/;
        $page=possibly_foolish_untaint($page);
        my $absolute=($page =~ s#^/+##);
        if (! defined $page || ! length $page ||
index 98308de135ba42c6efc5d574b261d51cc5f18e29..84c28a9d0dc58887a3f4ce1848eb542e8f897014 100644 (file)
@@ -54,10 +54,14 @@ sub preprocess (@) { #{{{
                error gettext("match not specified")
        }
 
-       $pagestate{$params{page}}{edittemplate}{$params{match}}=$params{template};
+       my $link=IkiWiki::linkpage($params{template});
+       $pagestate{$params{page}}{edittemplate}{$params{match}}=$link;
 
+       return "" if ($params{silent} && IkiWiki::yesno($params{silent}));
+       add_depends($params{page}, $link);
        return sprintf(gettext("edittemplate %s registered for %s"),
-               $params{template}, $params{match});
+               htmllink($params{page}, $params{destpage}, $link),
+               $params{match});
 } # }}}
 
 sub formbuilder (@) { #{{{
@@ -65,7 +69,7 @@ sub formbuilder (@) { #{{{
        my $form=$params{form};
 
        return if $form->field("do") ne "create" ||
-               length $form->field("editcontent");
+               (defined $form->field("editcontent") && length $form->field("editcontent"));
        
        my $page=$form->field("page");
        
@@ -87,8 +91,12 @@ sub formbuilder (@) { #{{{
                        if (exists $pagestate{$registering_page}{edittemplate}) {
                                foreach my $pagespec (sort keys %{$pagestate{$registering_page}{edittemplate}}) {
                                        if (pagespec_match($p, $pagespec, location => $registering_page)) {
+                                               my $template=$pagestate{$registering_page}{edittemplate}{$pagespec};
                                                $form->field(name => "editcontent",
-                                                        value => filltemplate($pagestate{$registering_page}{edittemplate}{$pagespec}, $page));
+                                                        value =>  filltemplate($template, $page));
+                                               $form->field(name => "type",
+                                                        value => pagetype($pagesources{$template}))
+                                                               if $pagesources{$template};
                                                return;
                                        }
                                }
index 08ee4cb63c07a5cc572e33f9f1fac262f4d58cd9..14b0ab2851dc03b561e4c86e9e0c5d660a8ca3a2 100644 (file)
@@ -308,13 +308,16 @@ sub parse_diff_tree ($@) { #{{{
                        my $sha1_to = shift(@tmp);
                        my $status = shift(@tmp);
 
+                       # git does not output utf-8 filenames, but instead
+                       # double-quotes them with the utf-8 characters
+                       # escaped as \nnn\nnn.
                        if ($file =~ m/^"(.*)"$/) {
                                ($file=$1) =~ s/\\([0-7]{1,3})/chr(oct($1))/eg;
                        }
                        $file =~ s/^\Q$prefix\E//;
                        if (length $file) {
                                push @{ $ci{'details'} }, {
-                                       'file'      => decode_utf8($file),
+                                       'file'      => decode("utf8", $file),
                                        'sha1_from' => $sha1_from[0],
                                        'sha1_to'   => $sha1_to,
                                };
index 923907b047b8657e03857c91a500df5eb18911c5..7398c84784632048c41eab1976436578a8bf7027 100644 (file)
@@ -41,10 +41,26 @@ sub getsetup () { #{{{
                        safe => 1,
                        rebuild => undef,
                },
+               htmlscrubber_skip => {
+                       type => "pagespec",
+                       example => "!*/Discussion",
+                       description => "PageSpec specifying pages not to scrub",
+                       link => "ikiwiki/PageSpec",
+                       safe => 1,
+                       rebuild => undef,
+               },
 } #}}}
 
 sub sanitize (@) { #{{{
        my %params=@_;
+
+       if (exists $config{htmlscrubber_skip} &&
+           length $config{htmlscrubber_skip} &&
+           exists $params{destpage} &&
+           pagespec_match($params{destpage}, $config{htmlscrubber_skip})) {
+               return $params{content};
+       }
+
        return scrubber()->scrub($params{content});
 } # }}}
 
index 1818f5283da2497f18c13601d6269792bfeb8cc3..f12cbdaa37fad0c77ada865a521ff68a0d95e785 100644 (file)
@@ -48,7 +48,7 @@ sub formbuilder_setup (@) { #{{{
                # needing to depend on it.
                eval q{use Net::OpenID::Consumer};
                if ($@) {
-                       debug("unable to load Net::OpenID::Consumer, not enabling OpenID login");
+                       debug("unable to load Net::OpenID::Consumer, not enabling OpenID login ($@)");
                        return;
                }
 
index 2c015284e6fd4188f704c1bfceaaf7247c271443..e536f4e23370773aebd296e290d0c84b2ded83ae 100644 (file)
@@ -29,12 +29,11 @@ sub preprocess (@) { #{{{
        if (defined $params{percent}) {
                $fill = $params{percent};
                ($fill) = $fill =~ m/($percentage_pattern)/; # fill is untainted now
+               $fill=~s/%$//;
                if (! defined $fill || ! length $fill || $fill > 100 || $fill < 0) {
                        error(sprintf(gettext("illegal percent value %s"), $params{percent}));
                }
-               elsif ($fill !~ /%$/) {
-                       $fill.="%";
-               }
+               $fill.="%";
        }
        elsif (defined $params{totalpages} and defined $params{donepages}) {
                add_depends($params{page}, $params{totalpages});
index dbb9065d494c9f14c06cb494d9f5296e1598f122..bef0e7085f4f4bbfe3d7986d21cbb30f29cbbce9 100644 (file)
@@ -4,6 +4,7 @@ package IkiWiki::Plugin::recentchanges;
 use warnings;
 use strict;
 use IkiWiki 2.00;
+use Encode;
 
 sub import { #{{{
        hook(type => "getsetup", id => "recentchanges", call => \&getsetup);
@@ -86,7 +87,7 @@ sub cgi ($) { #{{{
                # page they link to is deleted, or newly created, or
                # changes for whatever reason. So this CGI handles that
                # dynamic linking stuff.
-               my $page=$cgi->param("page");
+               my $page=decode_utf8($cgi->param("page"));
                if (!defined $page) {
                        error("missing page parameter");
                }
index b1cb6233d297a671328f32b05927b88f95124525..772be07b59f5ea1ff7b931216940fe0bc4dbaa3f 100644 (file)
@@ -21,11 +21,10 @@ sub getsetup () { #{{{
                },
 } #}}}
 
-sub check_canremove ($$$$) { #{{{
+sub check_canremove ($$$) { #{{{
        my $page=shift;
        my $q=shift;
        my $session=shift;
-       my $attachment=shift;
 
        # Must be a known source file.
        if (! exists $pagesources{$page}) {
@@ -45,11 +44,15 @@ sub check_canremove ($$$$) { #{{{
        # Must be editiable.
        IkiWiki::check_canedit($page, $q, $session);
 
-       # This is sorta overkill, but better safe
-       # than sorry. If a user can't upload an
-       # attachment, don't let them delete it.
-       if ($attachment) {
-               IkiWiki::Plugin::attachment::check_canattach($session, $page, $file);
+       # If a user can't upload an attachment, don't let them delete it.
+       # This is sorta overkill, but better safe than sorry.
+       if (! defined IkiWiki::pagetype($pagesources{$page})) {
+               if (IkiWiki::Plugin::attachment->can("check_canattach")) {
+                       IkiWiki::Plugin::attachment::check_canattach($session, $page, $file);
+               }
+               else {
+                       error("renaming of attachments is not allowed");
+               }
        }
 } #}}}
 
@@ -94,7 +97,7 @@ sub removal_confirm ($$@) { #{{{
        my $attachment=shift;
        my @pages=@_;
 
-       check_canremove($_, $q, $session, $attachment) foreach @pages;
+       check_canremove($_, $q, $session) foreach @pages;
 
        # Save current form state to allow returning to it later
        # without losing any edits.
@@ -167,7 +170,7 @@ sub sessioncgi ($$) { #{{{
                        # and that the user is allowed to edit(/remove) it.
                        my @files;
                        foreach my $page (@pages) {
-                               check_canremove($page, $q, $session, $q->param("attachment"));
+                               check_canremove($page, $q, $session);
                                
                                # This untaint is safe because of the
                                # checks performed above, which verify the
index 77aed9556902d9344c85e0f5c7b0eedf180b0476..4ee377b86c5b5f500eb6acd1323fa174cf4ba709 100644 (file)
@@ -21,14 +21,15 @@ sub getsetup () { #{{{
                },
 } #}}}
 
-sub check_canrename ($$$$$$$) { #{{{
+sub check_canrename ($$$$$$) { #{{{
        my $src=shift;
        my $srcfile=shift;
        my $dest=shift;
        my $destfile=shift;
        my $q=shift;
        my $session=shift;
-       my $attachment=shift;
+
+       my $attachment=! defined IkiWiki::pagetype($pagesources{$src});
 
        # Must be a known source file.
        if (! exists $pagesources{$src}) {
@@ -47,7 +48,12 @@ sub check_canrename ($$$$$$$) { #{{{
        # Must be editable.
        IkiWiki::check_canedit($src, $q, $session);
        if ($attachment) {
-               IkiWiki::Plugin::attachment::check_canattach($session, $src, $srcfile);
+               if (IkiWiki::Plugin::attachment->can("check_canattach")) {
+                       IkiWiki::Plugin::attachment::check_canattach($session, $src, $srcfile);
+               }
+               else {
+                       error("renaming of attachments is not allowed");
+               }
        }
        
        # Dest checks can be omitted by passing undef.
@@ -123,6 +129,18 @@ sub rename_form ($$$) { #{{{
                $f->field(name => "type", type => 'select',
                        options => \@page_types,
                        value => $ext, force => 1);
+               
+               foreach my $p (keys %pagesources) {
+                       if ($pagesources{$p}=~m/^\Q$page\E\//) {
+                               $f->field(name => "subpages",
+                                       label => "",
+                                       type => "checkbox",
+                                       options => [ [ 1 => gettext("Also rename SubPages and attachments") ] ],
+                                       value => 1,
+                                       force => 1);
+                               last;
+                       }
+               }
        }
        $f->field(name => "attachment", type => "hidden");
 
@@ -136,7 +154,7 @@ sub rename_start ($$$$) { #{{{
        my $page=shift;
 
        check_canrename($page, $pagesources{$page}, undef, undef,
-               $q, $session, $attachment);
+               $q, $session);
 
        # Save current form state to allow returning to it later
        # without losing any edits.
@@ -147,11 +165,10 @@ sub rename_start ($$$$) { #{{{
        $session->param(postrename => scalar $q->Vars);
        IkiWiki::cgi_savesession($session);
        
-       my ($f, $buttons)=rename_form($q, $session, $page);
        if (defined $attachment) {
-               $f->field(name => "attachment", value => $attachment, force => 1);
+               $q->param(-name => "attachment", -value => $attachment);
        }
-       
+       my ($f, $buttons)=rename_form($q, $session, $page);
        IkiWiki::showform($f, $buttons, $session, $q);
        exit 0;
 } #}}}
@@ -243,76 +260,97 @@ sub sessioncgi ($$) { #{{{
                        postrename($session);
                }
                elsif ($form->submitted eq 'Rename' && $form->validate) {
+                       # Queue of rename actions to perfom.
+                       my @torename;
+
                        # These untaints are safe because of the checks
-                       # performed in check_canrename below.
+                       # performed in check_canrename later.
                        my $src=$q->param("page");
                        my $srcfile=IkiWiki::possibly_foolish_untaint($pagesources{$src});
                        my $dest=IkiWiki::possibly_foolish_untaint(IkiWiki::titlepage($q->param("new_name")));
-
                        my $destfile=$dest;
                        if (! $q->param("attachment")) {
                                my $type=$q->param('type');
                                if (defined $type && length $type && $IkiWiki::hooks{htmlize}{$type}) {
                                        $type=IkiWiki::possibly_foolish_untaint($type);
-                               } else {
+                               }
+                               else {
                                        my ($ext)=$srcfile=~/\.([^.]+)$/;
                                        $type=$ext;
                                }
                                
                                $destfile.=".".$type;
                        }
-
-                       check_canrename($src, $srcfile, $dest, $destfile,
-                               $q, $session, $q->param("attachment"));
-
-                       # Ensures that the dest directory exists and is ok.
-                       IkiWiki::prep_writefile($destfile, $config{srcdir});
-
-                       # Do rename, update other pages, and refresh site.
-                       IkiWiki::disable_commit_hook() if $config{rcs};
-                       require IkiWiki::Render;
-                       if ($config{rcs}) {
-                               IkiWiki::rcs_rename($srcfile, $destfile);
-                               IkiWiki::rcs_commit_staged(
-                                       sprintf(gettext("rename %s to %s"), $srcfile, $destfile),
-                                       $session->param("name"), $ENV{REMOTE_ADDR});
+                       push @torename, {
+                               src => $src,
+                               srcfile => $srcfile,
+                               dest => $dest,
+                               destfile => $destfile,
+                               required => 1,
+                       };
+
+                       # See if any subpages need to be renamed.
+                       if ($q->param("subpages") && $src ne $dest) {
+                               foreach my $p (keys %pagesources) {
+                                       if ($pagesources{$p}=~m/^\Q$src\E\//) {
+                                               my $d=$pagesources{$p};
+                                               $d=~s/^\Q$src\E\//$dest\//;
+                                               push @torename, {
+                                                       src => $p,
+                                                       srcfile => $pagesources{$p},
+                                                       dest => pagename($d),
+                                                       destfile => $d,
+                                                       required => 0,
+                                               };
+                                       }
+                               }
                        }
-                       else {
-                               if (! rename("$config{srcdir}/$srcfile", "$config{srcdir}/$destfile")) {
-                                       error("rename: $!");
+                       
+                       require IkiWiki::Render;
+                       IkiWiki::disable_commit_hook() if $config{rcs};
+                       my %origpagesources=%pagesources;
+
+                       # First file renaming.
+                       foreach my $rename (@torename) {
+                               if ($rename->{required}) {
+                                       do_rename($rename, $q, $session);
+                               }
+                               else {
+                                       eval {do_rename($rename, $q, $session)};
+                                       if ($@) {
+                                               $rename->{error}=$@;
+                                               next;
+                                       }
                                }
+
+                               # Temporarily tweak pagesources to point to
+                               # the renamed file, in case fixlinks needs
+                               # to edit it.
+                               $pagesources{$rename->{src}}=$rename->{destfile};
                        }
-                       my @fixedlinks;
-                       if ($src ne $dest) {
-                               foreach my $page (keys %links) {
-                                       my $needfix=0;
-                                       foreach my $link (@{$links{$page}}) {
-                                               my $bestlink=bestlink($page, $link);
-                                               if ($bestlink eq $src) {
-                                                       $needfix=1;
+                       IkiWiki::rcs_commit_staged(
+                               sprintf(gettext("rename %s to %s"), $srcfile, $destfile),
+                               $session->param("name"), $ENV{REMOTE_ADDR}) if $config{rcs};
+
+                       # Then link fixups.
+                       foreach my $rename (@torename) {
+                               next if $rename->{src} eq $rename->{dest};
+                               next if $rename->{error};
+                               foreach my $p (fixlinks($rename, $session)) {
+                                       # map old page names to new
+                                       foreach my $r (@torename) {
+                                               next if $rename->{error};
+                                               if ($r->{src} eq $p) {
+                                                       $p=$r->{dest};
                                                        last;
                                                }
                                        }
-                                       if ($needfix) {
-                                               my $file=$pagesources{$page};
-                                               my $oldcontent=readfile($config{srcdir}."/".$file);
-                                               my $content=renamepage_hook($page, $src, $dest, $oldcontent);
-                                               if ($oldcontent ne $content) {
-                                                       my $token=IkiWiki::rcs_prepedit($file);
-                                                       eval { writefile($file, $config{srcdir}, $content) };
-                                                       next if $@;
-                                                       my $conflict=IkiWiki::rcs_commit(
-                                                               $file,
-                                                               sprintf(gettext("update for rename of %s to %s"), $srcfile, $destfile),
-                                                               $token,
-                                                               $session->param("name"), 
-                                                               $ENV{REMOTE_ADDR}
-                                                       );
-                                                       push @fixedlinks, $page if ! defined $conflict;
-                                               }
-                                       }
+                                       push @{$rename->{fixedlinks}}, $p;
                                }
                        }
+
+                       # Then refresh.
+                       %pagesources=%origpagesources;
                        if ($config{rcs}) {
                                IkiWiki::enable_commit_hook();
                                IkiWiki::rcs_update();
@@ -320,47 +358,51 @@ sub sessioncgi ($$) { #{{{
                        IkiWiki::refresh();
                        IkiWiki::saveindex();
 
-                       # Scan for any remaining broken links to $src.
-                       my @brokenlinks;
-                       if ($src ne $dest) {
+                       # Find pages with remaining, broken links.
+                       foreach my $rename (@torename) {
+                               next if $rename->{src} eq $rename->{dest};
+                               
                                foreach my $page (keys %links) {
                                        my $broken=0;
                                        foreach my $link (@{$links{$page}}) {
                                                my $bestlink=bestlink($page, $link);
-                                               if ($bestlink eq $src) {
-                                                       $broken=1;
+                                               if ($bestlink eq $rename->{src}) {
+                                                       push @{$rename->{brokenlinks}}, $page;
                                                        last;
                                                }
                                        }
-                                       push @brokenlinks, $page if $broken;
                                }
                        }
 
-                       # Generate a rename summary, that will be shown at the top
+                       # Generate a summary, that will be shown at the top
                        # of the edit template.
-                       my $template=template("renamesummary.tmpl");
-                       $template->param(src => $srcfile);
-                       $template->param(dest => $destfile);
-                       if ($src ne $dest) {
-                               $template->param(brokenlinks_checked => 1);
-                               $template->param(brokenlinks => [
-                                       map {
-                                               {
-                                                       page => htmllink($dest, $dest, $_,
-                                                                       noimageinline => 1)
-                                               }
-                                       } @brokenlinks
-                               ]);
-                               $template->param(fixedlinks => [
-                                       map {
-                                               {
-                                                       page => htmllink($dest, $dest, $_,
-                                                                       noimageinline => 1)
-                                               }
-                                       } @fixedlinks
-                               ]);
+                       $renamesummary="";
+                       foreach my $rename (@torename) {
+                               my $template=template("renamesummary.tmpl");
+                               $template->param(src => $rename->{srcfile});
+                               $template->param(dest => $rename->{destfile});
+                               $template->param(error => $rename->{error});
+                               if ($rename->{src} ne $rename->{dest}) {
+                                       $template->param(brokenlinks_checked => 1);
+                                       $template->param(brokenlinks => [
+                                               map {
+                                                       {
+                                                               page => htmllink($rename->{dest}, $rename->{dest}, $_,
+                                                                               noimageinline => 1)
+                                                       }
+                                               } @{$rename->{brokenlinks}}
+                                       ]);
+                                       $template->param(fixedlinks => [
+                                               map {
+                                                       {
+                                                               page => htmllink($rename->{dest}, $rename->{dest}, $_,
+                                                                               noimageinline => 1)
+                                                       }
+                                               } @{$rename->{fixedlinks}}
+                                       ]);
+                               }
+                               $renamesummary.=$template->output;
                        }
-                       $renamesummary=$template->output;
 
                        postrename($session, $src, $dest, $q->param("attachment"));
                }
@@ -386,5 +428,70 @@ sub renamepage_hook ($$$$) { #{{{
 
        return $content;
 }# }}}
+                       
+sub do_rename ($$$) { #{{{
+       my $rename=shift;
+       my $q=shift;
+       my $session=shift;
+
+       # First, check if this rename is allowed.
+       check_canrename($rename->{src},
+               $rename->{srcfile},
+               $rename->{dest},
+               $rename->{destfile},
+               $q, $session);
+
+       # Ensure that the dest directory exists and is ok.
+       IkiWiki::prep_writefile($rename->{destfile}, $config{srcdir});
+
+       if ($config{rcs}) {
+               IkiWiki::rcs_rename($rename->{srcfile}, $rename->{destfile});
+       }
+       else {
+               if (! rename($config{srcdir}."/".$rename->{srcfile},
+                            $config{srcdir}."/".$rename->{destfile})) {
+                       error("rename: $!");
+               }
+       }
+
+} # }}}
+
+sub fixlinks ($$$) { #{{{
+       my $rename=shift;
+       my $session=shift;
+
+       my @fixedlinks;
+
+       foreach my $page (keys %links) {
+               my $needfix=0;
+               foreach my $link (@{$links{$page}}) {
+                       my $bestlink=bestlink($page, $link);
+                       if ($bestlink eq $rename->{src}) {
+                               $needfix=1;
+                               last;
+                       }
+               }
+               if ($needfix) {
+                       my $file=$pagesources{$page};
+                       my $oldcontent=readfile($config{srcdir}."/".$file);
+                       my $content=renamepage_hook($page, $rename->{src}, $rename->{dest}, $oldcontent);
+                       if ($oldcontent ne $content) {
+                               my $token=IkiWiki::rcs_prepedit($file);
+                               eval { writefile($file, $config{srcdir}, $content) };
+                               next if $@;
+                               my $conflict=IkiWiki::rcs_commit(
+                                       $file,
+                                       sprintf(gettext("update for rename of %s to %s"), $rename->{srcfile}, $rename->{destfile}),
+                                       $token,
+                                       $session->param("name"), 
+                                       $ENV{REMOTE_ADDR}
+                               );
+                               push @fixedlinks, $page if ! defined $conflict;
+                       }
+               }
+       }
+
+       return @fixedlinks;
+} #}}}
 
 1
index 7878d7c2b09a7eda151d22f07e9da107a1b60154..f844ddb91ddaa96680094d792df96af2ddd4a229 100644 (file)
@@ -165,7 +165,7 @@ sub auth ($$) { #{{{
        debug("skeleton plugin running in auth");
 } #}}}
 
-sub sessionncgi ($$) { #{{{
+sub sessioncgi ($$) { #{{{
        my $cgi=shift;
        my $session=shift;
 
index 74d187cd2d8e132756e9c2f4666b73a0b519510d..bf53209fc18342df934fed8a3b1dd2c9eaf4ae10 100644 (file)
@@ -42,7 +42,6 @@ sub tagpage ($) { #{{{
        my $tag=shift;
                        
        if ($tag !~ m{^\.?/} &&
-           exists $config{tagbase} &&
            defined $config{tagbase}) {
                $tag=$config{tagbase}."/".$tag;
        }
@@ -50,6 +49,21 @@ sub tagpage ($) { #{{{
        return $tag;
 } #}}}
 
+sub taglink ($$$;@) { #{{{
+       my $page=shift;
+       my $destpage=shift;
+       my $tag=shift;
+       my %opts=@_;
+
+       my $link=tagpage($tag);
+
+       # Force tag creation links to create the tag under /tagbase,
+       # if there is a tagbase and this tag used it.
+       $link="/".$link if $tag ne $link;
+
+       return htmllink($page, $destpage, $link, %opts);
+} #}}}
+
 sub preprocess_tag (@) { #{{{
        if (! @_) {
                return "";
@@ -80,16 +94,14 @@ sub preprocess_taglink (@) { #{{{
                        my $tag=IkiWiki::linkpage($2);
                        $tags{$params{page}}{$tag}=1;
                        push @{$links{$params{page}}}, tagpage($tag);
-                       return htmllink($params{page}, $params{destpage},
-                               tagpage($tag),
+                       return taglink($params{page}, $params{destpage}, $tag,
                                linktext => IkiWiki::pagetitle($1));
                }
                else {
                        my $tag=IkiWiki::linkpage($_);
                        $tags{$params{page}}{$tag}=1;
                        push @{$links{$params{page}}}, tagpage($tag);
-                       return htmllink($params{page}, $params{destpage},
-                               tagpage($tag));
+                       return taglink($params{page}, $params{destpage}, $tag);
                }
        }
        grep {
@@ -105,8 +117,7 @@ sub pagetemplate (@) { #{{{
 
        $template->param(tags => [
                map { 
-                       link => htmllink($page, $destpage, tagpage($_),
-                                       rel => "tag")
+                       link => taglink($page, $destpage, $_, rel => "tag")
                }, sort keys %{$tags{$page}}
        ]) if exists $tags{$page} && %{$tags{$page}} && $template->query(name => "tags");
 
index 752d17643b1a18198481f0fc740f843fcd87925c..ceb7c842cb309b0154fcdefe98aea376f6917b33 100644 (file)
@@ -279,7 +279,11 @@ sub refresh () { #{{{
                                else {
                                        $f=~s/^\Q$config{srcdir}\E\/?//;
                                        push @files, $f;
-                                       $exists{pagename($f)}=1;
+                                       my $pagename = pagename($f);
+                                       if ($exists{$pagename}) {
+                                               debug(sprintf(gettext("%s has multiple possible source pages"), $pagename));
+                                       }
+                                       $exists{$pagename}=1;
                                }
                        }
                },
index ffa26613754f0acd1091d8cdbc9e7e24c44f8d0e..2b7dd33c2e338dfe5adffc3ce6d00f6d27f6e2c7 100644 (file)
@@ -1,4 +1,20 @@
-ikiwiki (2.65) UNRELEASED; urgency=low
+ikiwiki (2.66) UNRELEASED; urgency=low
+
+  * recentchanges: Fix redirects to non-page files. 
+  * aggregate: Avoid uninitialized value warnings for pages with no recorded
+    ctime.
+  * attachment: Add admin() pagespec to test if the uploading user is a wiki
+    admin.
+  * git: Fix handling of utf-8 filenames in recentchanges.
+  * tag: Make edit link for new tags ensure that the tags are created
+    inside tagbase, when it's set.
+  * htmlscrubber: Add a config setting that can be used to disable the
+    scrubber acting on a set of pages.
+  * Expand usage message and add --help. Closes: #500344
+
+ -- Joey Hess <joeyh@debian.org>  Thu, 25 Sep 2008 13:45:55 -0400
+
+ikiwiki (2.65) unstable; urgency=low
 
   * aggregate: Expire excess or old items on the same pass that adds them,
     not only on subsequent passes.
@@ -7,8 +23,24 @@ ikiwiki (2.65) UNRELEASED; urgency=low
     elements.
   * progress: Display an error if the progress cannot be parsed, and allow
     the percent parameter to only optionally end with "%".
+  * Fix reversion in use of ikiwiki -verbose -setup with a setup file that
+    enables syslog. Setup output is once again output to stdout in this
+    case.
+  * edittemplate: Default new page file type to the same type as the template.
+    (willu)
+  * edittemplate: Add "silent" parameter. (Willu)
+  * edittemplate: Link to template, to allow creating it. (Willu)
+  * editpage: Add a missing check that the page name contains only legal
+    characters, in addition to the existing check for pruned filenames.
+  * Print a debug message if a page has multiple source files.
+  * Add keepextension parameter to htmlize hook. (Willu)
+  * rename, remove: Don't rely on a form parameter to tell whether the page
+    should be treated as an attachment.
+  * rename: Add support for moving SubPages of a page when renaming it.
+    (Sponsored by The TOVA Company.)
+  * rename: Hide type field from rename form when renaming attachments.
 
- -- Joey Hess <joeyh@debian.org>  Wed, 17 Sep 2008 14:26:56 -0400
+ -- Joey Hess <joeyh@debian.org>  Wed, 24 Sep 2008 17:55:14 -0400
 
 ikiwiki (2.64) unstable; urgency=low
 
index 0b36b9e49977764ae4eaca19d8c06d262103dd0d..d67c55c8e184141f64e47f051097303b613c54e8 100644 (file)
@@ -35,3 +35,9 @@ Anyone can confirm the bug? --[[Paweł|ptecza]]
 
 >>>> You need the `div.progress` and `div.progress-done` from ikiwiki's
 >>>> default `style.css`. --[[Joey]]
+
+>>>>> Thank you for the fix, Joey!
+
+>>>>> I had `div.progress*` in the `style.css` file, but my Epiphany didn't want
+>>>>> to display the progress bar... Now it's OK and I can see beautiful progress,
+>>>>> though I've not changed anything. --[[Paweł|ptecza]]
diff --git a/doc/bugs/index.html_is_made_visible_by_various_actions.mdwn b/doc/bugs/index.html_is_made_visible_by_various_actions.mdwn
new file mode 100644 (file)
index 0000000..580df9e
--- /dev/null
@@ -0,0 +1,10 @@
+When you do various CGI actions, "index.html" is visible in the redirection URL. It's desirable that this is avoided, so there is only one visible URL for each page (search engines don't think that /foo/index.html is equivalent to /foo/, since this is not necessarily true for all servers and configurations).
+
+[The beautify branch in my repository](http://git.debian.org/?p=users/smcv/ikiwiki.git;a=shortlog;h=refs/heads/beautify) contains [[patches|patch]] for all the cases I found by grepping for "htmlpage", which are:
+
+* [[plugins/editpage]] redirects you to the page under various circumstances, most visibly after you finish editing it
+* [[plugins/poll]] redirects you to the poll after voting
+* [[plugins/recentchanges]] redirects you to the relevant page when you click a link
+* [[plugins/remove]] redirects you to the parent of the removed page
+
+I think the coding standard in future should be: use htmlpage when you want a local file, or urlto if you want a URL.
diff --git a/doc/bugs/multiple_pages_with_same_name.mdwn b/doc/bugs/multiple_pages_with_same_name.mdwn
new file mode 100644 (file)
index 0000000..5ddfb1f
--- /dev/null
@@ -0,0 +1,76 @@
+I'm just working on an updated solution to [[todo/automatic_use_of_syntax_plugin_on_source_code_files]] (see also [[plugins/contrib/highlightcode]] or [[plugins/contrib/sourcehighlight]]).
+
+I realised that this is going to have problems when you ask it to process `.c` and `.h` files with the same base name.  e.g. `hello.c` and `hello.h`.
+
+I tested it briefly with `test.java` and `test.mdwn` just to see what would happen.  Things got quite strange.  The source-highlighting plugin was called (probably for the java file), but then when it calls `pagetype($pagesources{$page})` to figure out the file type, that function returns `mdwn`, which confuses things somewhat.
+
+> This is a known possible point of confusion. If there are multiple source
+> files, it will render them both, in an arbitrary sequence, so one "wins".
+> --[[Joey]]
+
+Anyway, I'm thinking about possible solutions.  The best option I've come up with so far is: when registering an htmlize hook, add a new optional paramter 'keep_extension'.  This would make a source file of `hello.c` generate a page with name `hello.c` rather than the current `hello`.  This would keep the pages unique (until someone makes `hello.c.mdwn`...).
+
+Suggestions welcome.
+
+-- [[Will]]
+
+> Ok, this turned out not to be a hard change.  [[patch]] is below.  With this patch you can tell IkiWiki not to drop the suffix when you register a hook: `hook(type => "htmlize", id => $lang, call => \&htmlize, leavesuffix => 1);`
+
+>> I think that's a good solution to the problem that most syntax plugins
+>> have struggled with. It makes sense. It doesn't solve the case where
+>> you have source files without any extension (eg `Makefile`), but at
+>> least it covers the common cases.
+>>
+>> I'm going to be annoying and call it "keepextension", otherwise, applied
+>> as-is. --[[Joey]] [[done]]
+
+    diff --git a/IkiWiki.pm b/IkiWiki.pm
+    index 4e4da11..853f905 100644
+    --- a/IkiWiki.pm
+    +++ b/IkiWiki.pm
+    @@ -618,7 +618,7 @@ sub pagename ($) { #{{{
+     
+       my $type=pagetype($file);
+       my $page=$file;
+    -  $page=~s/\Q.$type\E*$// if defined $type;
+    +  $page=~s/\Q.$type\E*$// if defined $type && !$hooks{htmlize}{$type}{leavesuffix};
+       return $page;
+     } #}}}
+     
+    diff --git a/t/pagename.t b/t/pagename.t
+    index 96e6a87..58811b9 100755
+    --- a/t/pagename.t
+    +++ b/t/pagename.t
+    @@ -6,7 +6,7 @@ use Test::More tests => 5;
+     BEGIN { use_ok("IkiWiki"); }
+     
+     # Used internally.
+    -$IkiWiki::hooks{htmlize}{mdwn}=1;
+    +$IkiWiki::hooks{htmlize}{mdwn}{call}=1;
+     
+     is(pagename("foo.mdwn"), "foo");
+     is(pagename("foo/bar.mdwn"), "foo/bar");
+
+----
+
+I wonder if this patch will also be useful:
+
+> Reasonable, applied.
+
+    diff --git a/IkiWiki/Render.pm b/IkiWiki/Render.pm
+    index 752d176..3f1b67b 100644
+    --- a/IkiWiki/Render.pm
+    +++ b/IkiWiki/Render.pm
+    @@ -279,7 +279,11 @@ sub refresh () { #{{{
+                               else {
+                                       $f=~s/^\Q$config{srcdir}\E\/?//;
+                                       push @files, $f;
+    -                                  $exists{pagename($f)}=1;
+    +                                  my $pagename = pagename($f);
+    +                                  if ($exists{$pagename}) {
+    +                                          warn(sprintf(gettext("Page %s has multiple possible source pages"), $pagename)."\n");
+    +                                  }
+    +                                  $exists{$pagename}=1;
+                               }
+                       }
+               },
diff --git a/doc/bugs/syntax_error_in_aggregate.mdwn b/doc/bugs/syntax_error_in_aggregate.mdwn
new file mode 100644 (file)
index 0000000..1e69e7f
--- /dev/null
@@ -0,0 +1,11 @@
+Current git :
+
+        $ perl -c IkiWiki/Plugin/aggregate.pm  
+        syntax error at IkiWiki/Plugin/aggregate.pm line 427, near "24;"
+        IkiWiki/Plugin/aggregate.pm had compilation errors.
+
+This prevents a Debian package build (due to `t/syntax.t`).
+
+Not knowing the units being used, I don't know where to add the missing parenthesis.
+
+[[done]]
index 9c6189b0829ae6d13d5d991754ab94c2abc96f81..f2243ab2d31f6b1817a46f604c7ab7d29b50a418 100644 (file)
@@ -38,3 +38,6 @@ tags located in tags/ and tags located in whatever/tags/.
 > from the list when creating a new page..
 > 
 > --[[Joey]]
+
+> And, this is [[done]], creating tags with tagbase will put them under the
+> tagbase, unless the tag name starts with "/". --[[Joey]]
diff --git a/doc/bugs/typo_in_skeleton.pm:_sessionncgi.mdwn b/doc/bugs/typo_in_skeleton.pm:_sessionncgi.mdwn
new file mode 100644 (file)
index 0000000..4772ace
--- /dev/null
@@ -0,0 +1,5 @@
+skeleton.pm.example contains the typo "sessionncgi" when defining a sub, which means the skeleton plugin won't work as a session CGI action as-is. [My repository has a patch on the 'trivia' branch](http://git.debian.org/?p=users/smcv/ikiwiki.git;a=commitdiff;h=72ffc85d). --[[smcv]]
+
+[[!tag patch]]
+
+[[done]]
diff --git a/doc/bugs/unicode_encoded_urls_and_recentchanges.mdwn b/doc/bugs/unicode_encoded_urls_and_recentchanges.mdwn
new file mode 100644 (file)
index 0000000..d8696cb
--- /dev/null
@@ -0,0 +1,35 @@
+it appears that unicode characters in the title that are unicode letters are spared the __ filename encoding but instead saved in their utf8 encoding. (correct me if i'm wrong; didn't find the code that does this.) -- see below for examples.
+
+> Filenames can have any alphanumerics in them without the __ escaping.
+> Your locale determines whether various unicode characters are considered
+> alphanumeric. In other words, it just looks at the [[:alpha:]] character
+> class, whatever your locale defines it to be. --[[Joey]]
+
+this is not a problem per se, but (at least with git backend) the recent changes missinterpret the file name character set (it seems to read the filenames as latin1) and both display wrong titles and create broken links.
+
+the problem can be shown with an auto-setup'd ikiwiki without cgi when manually creating utf8 encoded filenames and running ikiwiki with LANG=en_GB.UTF-8 .
+
+> Encoding issue, I figured out a fix. [[done]] --[[Joey]]
+
+>> the link text works now, but the link goes to
+>> `ikiwiki.cgi?page=uml%C3%A4ute&do=recentchanges_link`, which fails with
+>> "missing page". it seems that bestlink can't handle utf8 encoded texts. (the
+>> same happens, by the way, when using meta-redir to a page with high bytes in
+>> the name.)
+>>
+>>> The problem is that all cgi inputs have to be explicitly decoded to
+>>> utf-8, which I've now done for `recentchange_link`.
+>>> 
+>>> I cannot, however, reproduce a problem with meta redir. Here it
+>>> generated the following html, which redirected the browser ok:
+>>>    <meta http-equiv="refresh" content="0; URL=./../â/" />
+>>
+>> update: i've had a look at the git options; you could run git with '-z' (NUL
+>> termination) in the `git_commit_info` function; this would require some
+>> changes in `parse_diff_tree`, but otherwise completely eliminate the
+>> problems with git escaping.
+>> 
+>>> If you would like to develop a patch to that effect, I'd be glad to
+>>> drop the current nasty code.
+>> 
+>> --[[chrysn]]
index 776ab0a451a9d0b77d16e5d681d6aaf6b2c3eca1..26720196f582248919a469e741f74bb47ac71c5b 100644 (file)
@@ -47,7 +47,20 @@ files..)
   templates.
   [[!meta stylesheet="bma"]]
 
+* **[blankoblues.css][1]**, contributed by [[Blanko]]. Can be seen on [Blankoblues Demo][2]. Local.css and templates available [here][3].
+
+* **[contraste.css][4]**, contributed by [[Blanko]]. Can be seen on [Contraste Demo][5]. Local.css and templates available [here][6].
+
 If your web browser allows selecting between multiple stylesheets, this
 page can be viewed using many of the stylesheets above. For example, if
 using Epiphany with the Select Stylesheet extension enabled, use View ->
 Style.  In Firefox or Iceweasel, use View -> Page Style.
+
+<!-- Page links -->
+
+ [1]: http://blankoworld.homelinux.com/demo/ikiwiki/blankoblues/src/local.css (Download Blankoblues CSS)
+ [2]: http://blankoworld.homelinux.com/demo/ikiwiki/blankoblues/htdocs/ (Take a tour on Blankoblues Demo)
+ [3]: http://blankoworld.homelinux.com/demo/ikiwiki/blankoblues/blankoblues.tar.gz (Download local.css and templates for Blankoblues theme)
+ [4]: http://blankoworld.homelinux.com/demo/ikiwiki/contraste/src/local.css (Download Contraste CSS)
+ [5]: http://blankoworld.homelinux.com/demo/ikiwiki/contraste/htdocs/ (Take a tour on Contraste Demo)
+ [6]: http://blankoworld.homelinux.com/demo/ikiwiki/contraste/contraste.tar.gz (Download local.css and templates for Contraste theme)
index 8789849ad693f6604cf33898d0fac05b8f8bb92e..c4342dee8a644ff1778672a3b1ff89ca1d4c2668 100644 (file)
@@ -43,10 +43,3 @@ Here is a list of currently available directives in this wiki:
 
 [[!listdirectives ]]
 """]]
-
-[[!if test="!enabled(listdirectives)" then="""
-Here is a list of all directives documented in this wiki.  Not all of them may be enabled:
-
-[[!inline pages="ikiwiki/directive/* and !*/Discussion" archive="yes" sort=title
-rootpage="ikiwiki/directive/contrib" postformtext="Add a new directive named:" show=0]]
-"""]]
index 779c3fa3c9ef8c6f496d1ae5ca9003195636eddf..d731bdb4708727d4515fc223321a841cbfacc5bf 100644 (file)
@@ -7,7 +7,9 @@ template, insert a [[ikiwiki/directive/template]] directive on some other page.
        \[[!edittemplate template="bugtemplate" match="bugs/*"]]
 
 In the above example, the page named "bugtemplate" is registered as a
-template to be used when any page named "bugs/*" is created.
+template to be used when any page named "bugs/*" is created. To avoid
+the directive displaying a note about the template being registered, add
+"silent=yes".
 
 Often the template page contains a simple skeleton for a particular type of
 page. For the bug report pages in the above example, it might look
index 8b74cd73d7cf9323e40cdf1a7ca2ede961d85b9b..a8e0c58f8a1ce4f0be684436c949ae238e43b664 100644 (file)
@@ -77,7 +77,7 @@ you use the following additional features:
 
 * Insert various [[directives|directive]] onto a page to perform useful
   actions.
-[[!if test="enabled(toc) or enabled(meta) or (enabled(inline) and blog)" then="""
+[[!if test="enabled(toc) or enabled(meta) or (enabled(inline))" then="""
   For example, you can:
 """]]
 
@@ -94,7 +94,7 @@ you use the following additional features:
        \[[!meta title="full page title"]]
 """]]
 
-[[!if test="enabled(inline) and blog" then="""
+[[!if test="enabled(inline)" then="""
   * Create a blog by inlining a set of pages:
 
        \[[!inline pages="blog/*"]]
index 6b86c510b41cfe74b2aad7e0a38a5d259e7e9085..234fcdf02ef18a7223c1c21529962425bed3d44c 100644 (file)
@@ -41,6 +41,10 @@ additional tests:
   Tests whether the attachment is being uploaded by a user with the
   specified username. If openid is enabled, an openid can also be put here.
 
+* adminuser()
+
+  Tests whether the attachment is being uploded by one of the wiki admins.
+
 * ip(address)
 
   Tests whether the attacment is being uploaded from the specified IP
index e4f13b155e1f45b2ae41c06bc97a50f08e7a1d1a..6e234ceed99007c9dfe5728b4b6f11c745f190c5 100644 (file)
@@ -38,6 +38,7 @@ Projects
 * [dist-bugs](http://dist-bugs.kitenet.net/)
 * [Chaos Computer Club Düsseldorf](https://www.chaosdorf.de)
 * [monkeysphere](http://web.monkeysphere.info/)
+* [The Walden Effect](http://www.waldeneffect.org/)
 
 Personal sites and blogs
 ========================
@@ -98,6 +99,7 @@ Personal sites and blogs
 * [madduck's (new) homepage](http://madduck.net)
 * [Olivier Berger's professional homepage](http://www-public.it-sudparis.eu/~berger_o/)
 * [Andrey Tarantsov's homepage](http://www.tarantsov.com/)
+* [Don Marti's blog](http://zgp.org/~dmarti/)
 
 Please feel free to add your own ikiwiki site!
 
diff --git a/doc/news/version_2.61.mdwn b/doc/news/version_2.61.mdwn
deleted file mode 100644 (file)
index 24ab4ae..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-ikiwiki 2.61 released with [[!toggle text="these changes"]]
-[[!toggleable text="""
-   * poll: Fix typo that broke plugin.
-   * graphviz: Fix breakage of the name of the preprocessor directive."""]]
\ No newline at end of file
diff --git a/doc/news/version_2.65.mdwn b/doc/news/version_2.65.mdwn
new file mode 100644 (file)
index 0000000..db6afd9
--- /dev/null
@@ -0,0 +1,25 @@
+ikiwiki 2.65 released with [[!toggle text="these changes"]]
+[[!toggleable text="""
+   * aggregate: Expire excess or old items on the same pass that adds them,
+     not only on subsequent passes.
+   * editdiff: Broken since 2.62 due to wrong syntax, now fixed.
+   * aggregate: Support atom feeds with only a summary element, and no content
+     elements.
+   * progress: Display an error if the progress cannot be parsed, and allow
+     the percent parameter to only optionally end with "%".
+   * Fix reversion in use of ikiwiki -verbose -setup with a setup file that
+     enables syslog. Setup output is once again output to stdout in this
+     case.
+   * edittemplate: Default new page file type to the same type as the template.
+     (willu)
+   * edittemplate: Add "silent" parameter. (Willu)
+   * edittemplate: Link to template, to allow creating it. (Willu)
+   * editpage: Add a missing check that the page name contains only legal
+     characters, in addition to the existing check for pruned filenames.
+   * Print a debug message if a page has multiple source files.
+   * Add keepextension parameter to htmlize hook. (Willu)
+   * rename, remove: Don't rely on a form parameter to tell whether the page
+     should be treated as an attachment.
+   * rename: Add support for moving SubPages of a page when renaming it.
+     (Sponsored by The TOVA Company.)
+   * rename: Hide type field from rename form when renaming attachments."""]]
\ No newline at end of file
index b651ffc99bb70a2d129c5158682c307034fac6c2..7db372e1be272b185dc735f8fb27a79ed612420c 100644 (file)
@@ -31,6 +31,12 @@ Note that enabling or disabling the htmlscrubber plugin also affects some
 other HTML-related functionality, such as whether [[meta]] allows
 potentially unsafe HTML tags.
 
+The `htmlscrubber_skip` configuration setting can be used to skip scrubbing
+of some pages. Set it to a [[PageSpec]], such as "!*/Discussion", and pages
+matching that can have all the evil CSS, JavsScript, and unsafe html
+elements you like. One safe way to use this is to use [[lockedit]] to lock
+those pages, so only admins can edit them.
+
 ----
 
 Some examples of embedded javascript that won't be let through when this
index 920fb8797cfa4a1d09e0947e261dc7455f1f89c7..1cdea6a774b87a7eee6ef1aa2e4a619c312cafb9 100644 (file)
@@ -188,6 +188,10 @@ languages to ikiwiki.
 The function is passed named parameters: "page" and "content" and should
 return the htmlized content.
 
+If `hook` is passed an optional "keepextension" parameter, set to a true
+value, then this extension will not be stripped from the source filename when
+generating the page.
+
 ### pagetemplate
 
        hook(type => "pagetemplate", id => "foo", call => \&pagetemplate);
@@ -518,6 +522,9 @@ parameters are passed to `HTML::Template->new`.
 Passed a page name, returns the base name that will be used for a the html
 page created from it. (Ie, it appends ".html".)
 
+Use this when constructing the filename of a html file. Use `urlto` when
+generating a link to a page.
+
 #### `add_depends($$)`
 
 Makes the specified page depend on the specified [[ikiwiki/PageSpec]].
@@ -719,8 +726,8 @@ Changes can be staged by calls to `rcs_add, `rcs_remove`, and
 Adds the passed file to the archive. The filename is relative to the root
 of the srcdir.
 
-Note that this should not check the new file in, it should only
-prepare for it to be checked in when rcs_commit (or `rcs_commit_staged`) is
+Note that this should not commit the new file, it should only
+prepare for it to be committed when rcs_commit (or `rcs_commit_staged`) is
 called. Note that the file may be in a new subdir that is not yet in
 to version control; the subdir can be added if so.
 
@@ -728,9 +735,9 @@ to version control; the subdir can be added if so.
 
 Remove a file. The filename is relative to the root of the srcdir.
 
-Note that this should not check the removal in, it should only prepare for it
-to be checked in when `rcs_commit` (or `rcs_commit_staged`) is called. Note
-that the new file may be in a new subdir that is not yet inversion
+Note that this should not commit the removal, it should only prepare for it
+to be committed when `rcs_commit` (or `rcs_commit_staged`) is called. Note
+that the new file may be in a new subdir that is not yet in version
 control; the subdir can be added if so.
 
 #### `rcs_rename($$)`
index 2de058b2d2cdd16d1b202eb699eb72d2f2fa208f..6e5b257a67eb63fcce2f50394754a476603c1060 100644 (file)
@@ -46,6 +46,8 @@ Version 3.0 will be an opportunity to make significant transitions.
 * Default to using `aggregateinternal`.
 * Remove deprecated prefs form settings for `allowed_attachments` and
   `locked_pages`.
+* Finalise a new version of the plugin API, exporting additional commonly
+  used functions from IkiWiki.pm
 
 It will include a vast number of new features, bugfixes, and other
 improvements, far too many to list here.
index 424bf46bb25b765b45e1b73f5a601efc18b0533c..9e709172a900f0e23f1defe91e298814489fdbf1 100644 (file)
@@ -2,7 +2,7 @@ This is the SandBox, a page anyone can edit to try out ikiwiki.
 
 ----
 
-Here's a paragraph.
+Here's a paragraph. สวัสดี
 
 The following code block is pre-formatted:
 
@@ -76,6 +76,8 @@ The haiku will change after every save, mind you.
 * [[foo]]
 * WikiLink
 
+Test
+
 -----
 
 This SandBox is also a [[blog]]!
index 9981c530baa3a158a0afcbd0c4dfdc4467715537..b49968c18f2e4185af45f95b9a9f802181d2110d 100644 (file)
@@ -5,6 +5,9 @@ Below is a [[patch]] to [[plugins/edittemplate]] that does a few things:
  * It makes the description of what was registered link to the template page (which gives feedback for typos or allows template creation)
  * It adds a colon to the standard string correcting the syntax.
 
+[[done]] except for the colon change; it's referring to the template as an
+edittemplate there. --[[Joey]]
+
 ----
 
     diff --git a/IkiWiki/Plugin/edittemplate.pm b/IkiWiki/Plugin/edittemplate.pm
@@ -38,3 +41,4 @@ Below is a [[patch]] to [[plugins/edittemplate]] that does a few things:
                                                return;
                                        }
                                }
+
index 628a67fc83844fa27c891f1089bb87fc53e73f22..1a810ad5583cd64ff149ed39863fdd0ea0b5cb75 100644 (file)
@@ -44,7 +44,18 @@ be embedded to the source code repository commit messages.
 >> look like a wikipage anymore, but rather something like the Debian 
 >> BTS web-interface, but it would still benefit from wikilinks to the 
 >> documentation in the wiki etc.
->>
+
+>>> I think it is useful to look at these things separately:
+>>>
+>>> * Bug numbers: See above.
+>>> * Automatic timestamps on comments: this already exists with the inline directive.
+>>> * Email interface: You can certainly get an rss feed of what changes in the wiki.
+>>> * You didn't mention [[todo/structured_page_data]] but that is, I think, part
+>>>     of what you seem to be saying.
+>>> * [[todo/tracking_bugs_with_dependencies]] is also important.
+>>>
+>>> -- [[Will]]
+
 >> About the commit message interface: I was thinking about a project
 >> architecture where the code is kept in a separate revision control
 >> system branch than the metadata (blog, wiki, BTS). This would IMHO
index dab151d81afbd18ba01cdcc42afb6b72e83286c3..8693da5e3075c88305e3050eff00aaebe6606d20 100644 (file)
@@ -7,6 +7,9 @@ Features needed:
  * Source code viewing: This can be handled quite well with a [[shortcut|shortcuts]] to an external source viewer, or by putting
     the source in the wiki itself (see the [[todo/automatic_use_of_syntax_plugin_on_source_code_files]] wishlist item) and using the
     [[plugins/contrib/highlightcode]] or [[plugins/contrib/sourcehighlight]] plugins.
+    * This could be improved with [[todo/source_link]].
+    * Currently the source highlighting is a little problematic, as there can be two source files with the same wikiname.
+       e.g. a `hello-world.c` and `hello-world.h`.  See [[bugs/multiple_pages_with_same_name]]
  * Trac 'Timeline' feature: view history of the RCS - the `recentchanges` button.
  * Trac 'Roadmap' feature: Which TODOs/bugs are needed for which milestones.  Use the [[plugins/progress]] directive to show percentage complete for each milestone.
  * Bug tracking: see [[tips/integrated_issue_tracking_with_ikiwiki]] and [[todo/Updated_bug_tracking_example]].
index d264bd209adeca3d579e34594109d141095a1d47..98a92dddc345a2de8f35058983f0c5e79b872c0d 100644 (file)
@@ -11,3 +11,5 @@ subpage: `<current>/$tagbase/<tagname>`.
 See also: [[bugs/tags_base_dir_not_used_when_creating_new_tags]]
 
 [[!tag wishlist]]
+
+[[done]]
diff --git a/doc/todo/automatic_use_of_syntax_plugin_on_source_code_files/discussion.mdwn b/doc/todo/automatic_use_of_syntax_plugin_on_source_code_files/discussion.mdwn
new file mode 100644 (file)
index 0000000..2fad9f1
--- /dev/null
@@ -0,0 +1,159 @@
+Here is another [[patch]] for this.  It is more up to date than either of the patches linked on the previous page.  It is most similar to [[plugins/contrib/sourcehighlight]].
+
+Note that if this is being used with `c` or `c++` then you'll probably want to wait until [[bugs/multiple_pages_with_same_name]] is fixed.
+
+-- [[Will]]
+
+----
+
+    #!/usr/bin/perl
+    # markup source files
+    package IkiWiki::Plugin::sourcecode;
+    
+    use warnings;
+    use strict;
+    use IkiWiki 2.00;
+    use open qw{:utf8 :std};
+    
+    my %metaheaders;
+    
+    sub import { #{{{
+       hook(type => "getsetup", id => "sourcecode", call => \&getsetup);
+       hook(type => "checkconfig", id => "sourcecode", call => \&checkconfig);
+       hook(type => "pagetemplate", id => "sourcecode", call => \&pagetemplate);
+    } # }}}
+    
+    sub getsetup () { #{{{
+       return 
+               plugin => {
+                       safe => 1,
+                       rebuild => 1, # format plugin
+               },
+               sourcecode_command => {
+                       type => "string",
+                       example => "/usr/bin/source-highlight",
+                       description => "The command to execute to run source-highlight",
+                       safe => 0,
+                       rebuild => 1,
+               },
+               sourcecode_lang => {
+                       type => "string",
+                       example => "c,cpp,h,java",
+                       description => "Comma separated list of suffixes to recognise as source code",
+                       safe => 1,
+                       rebuild => 1,
+               },
+               sourcecode_linenumbers => {
+                       type => "boolean",
+                       example => 1,
+                       description => "Should we add line numbers to the source code",
+                       safe => 1,
+                       rebuild => 1,
+               },
+               sourcecode_css => {
+                       type => "string",
+                       example => "sourcecode_style",
+                       description => "page to use as css file for source",
+                       safe => 1,
+                       rebuild => 1,
+               },
+    } #}}}
+    
+    sub checkconfig () { #{{{
+       if (! $config{sourcecode_lang}) {
+               error("The sourcecode plugin requires a list of suffixes in the 'sourcecode_lang' config option");
+       }
+       
+       if (! $config{sourcecode_command}) {
+               $config{sourcecode_command} = "source-highlight";
+       }
+       
+       if (! length `which $config{sourcecode_command} 2>/dev/null`) {
+               error("The sourcecode plugin is unable to find the $config{sourcecode_command} command");
+       }
+    
+       if (! $config{sourcecode_css}) {
+               $config{sourcecode_css} = "sourcecode_style";
+       }
+       
+       if (! defined $config{sourcecode_linenumbers}) {
+               $config{sourcecode_linenumbers} = 1;
+       }
+       
+       my %langs = ();
+       
+       open(LANGS, "$config{sourcecode_command} --lang-list|");
+       while (<LANGS>) {
+               if ($_ =~ /(\w+) = .+\.lang/) {
+                       $langs{$1} = 1;
+               }
+       }
+       close(LANGS);
+       
+       foreach my $lang (split(/[, ]+/, $config{sourcecode_lang})) {
+               if ($langs{$lang}) {
+                       hook(type => "htmlize", id => $lang, call => \&htmlize);
+               } else {
+                       error("Your installation of source-highlight cannot handle sourcecode language $lang!");
+               }
+       }
+    } #}}}
+    
+    sub htmlize (@) { #{{{
+       my %params=@_;
+    
+       my $page = $params{page};
+    
+       eval q{use FileHandle};
+       error($@) if $@;
+       eval q{use IPC::Open2};
+       error($@) if $@;
+    
+       local(*SPS_IN, *SPS_OUT);  # Create local handles
+    
+       my @args;
+    
+       if ($config{sourcecode_linenumbers}) {
+               push @args, '--line-number= ';
+       }
+    
+       my $pid = open2(*SPS_IN, *SPS_OUT, $config{sourcecode_command},
+                                       '-s', IkiWiki::pagetype($pagesources{$page}),
+                                       '-c', $config{sourcecode_css}, '--no-doc',
+                                       '-f', 'xhtml',
+                                       @args);
+    
+       error("Unable to open $config{sourcecode_command}") unless $pid;
+    
+       print SPS_OUT $params{content};
+       close SPS_OUT;
+    
+       my @html = <SPS_IN>;
+       close SPS_IN;
+       
+       waitpid $pid, 0;
+    
+       my $stylesheet=bestlink($page, $config{sourcecode_css}.".css");
+       if (length $stylesheet) {
+               push @{$metaheaders{$page}}, '<link href="'.urlto($stylesheet, $page).'"'.
+                       ' rel="stylesheet"'.
+                       ' type="text/css" />';
+       }
+    
+       return '<div id="sourcecode">'."\r\n".join("\r\n",@html)."\r\n</div>\n";
+    } # }}}
+    
+    sub pagetemplate (@) { #{{{
+       my %params=@_;
+    
+       my $page=$params{page};
+       my $template=$params{template};
+    
+       if (exists $metaheaders{$page} && $template->query(name => "meta")) {
+               # avoid duplicate meta lines
+               my %seen;
+               $template->param(meta => join("\n", grep { (! $seen{$_}) && ($seen{$_}=1) } @{$metaheaders{$page}}));
+       }
+    } # }}}
+    
+    1
index ecad4f9db1e5a8f4a41d2fc9c3985e3c8b94890c..95511d99885439f4e7f16a106265702df2d273a7 100644 (file)
@@ -20,6 +20,13 @@ anymore.
 
 Do you have any idea how to workaround that issue? --[[Paweł|ptecza]]
 
+> Delete all files. Add files back one at a time, committing after adding
+> each file. Sort by date. --[[Joey]]
+
+>> The simplest solutions are the best :D Thanks for the hint! I didn't
+>> want to do it before, because I was affaid that my Subversion keeps
+>> old date of creation of file. --[[Paweł|ptecza]]
+
 > Maybe you can rename `9.mdwn` to `09.mdwn`? See `rename(1)`, it renames multiple files
 > in one go. --[[buo]]
 
@@ -30,6 +37,17 @@ Do you have any idea how to workaround that issue? --[[Paweł|ptecza]]
 
 >> I don't want to rename all previous files to add `0` prefix. --[[Paweł|ptecza]]
 
+>>> Rather than adding 0's or or a 'sorttype' parameter, I'd just fix the sort order.
+>>> Both MacOS and Windows use a smarter sort order than just lexical in their
+>>> file browsers (e.g. <http://support.microsoft.com/default.aspx?kbid=319827>,
+>>> <http://docs.info.apple.com/article.html?artnum=300989>).
+>>>
+>>> The [Unicode Collation algorithm](http://en.wikipedia.org/wiki/Unicode_collation_algorithm)
+>>> would seem to be a reasonable sort order.  (See also <http://www.unicode.org/unicode/reports/tr10/>.)
+>>> Unfortunately the standard perl implementation, [Unicode::Collate](http://perldoc.perl.org/Unicode/Collate.html)
+>>> doesn't handle the optional [numbers](http://www.unicode.org/unicode/reports/tr10/#Customization)
+>>> extension which is what you want.  --[[Will]]
+
 ---
 
 Below is my simple patch. Feel free to use it or comment!
@@ -38,10 +56,18 @@ I have also 2 considerations for inline sorting:
 
 1. Maybe changing name of `sort` parameter to `sortby` or `sortkey` will
    be good idea?
+
+   > No, that would break existing wikis. --[[Joey]]
+   >> It's no problem. You just have `ikiwiki-transition` utility :D --[[Paweł|ptecza]]
+
 1. Maybe you should use `title` sort key for title from meta plugin and `name`, 
    `filename`, `page` or `pagename` for page names? In the future you can also
    sort by meta author, license or another key.
 
+   > There are many places in ikiwiki that do not use meta title info and
+   > could. I'd prefer to deal with that issue as a whole, not here,
+   > --[[Joey]]
+
 --[[Paweł|ptecza]]
 
     --- inline.pm-orig  2008-09-02 09:53:20.000000000 +0200
@@ -72,3 +98,155 @@ I have also 2 considerations for inline sorting:
         }
 
         if (yesno($params{reverse})) {
+
+> To users, "sort" already determines the type of sort. It can be by title,
+> or by date, etc. Adding a separate "sorttype" value is thus fairly
+> confusing. --[[Joey]]
+
+>> OK. I will be more careful when I play with inline plugin :) --[[Paweł|ptecza]]
+
+---
+
+Joey, have you forgotten about that request? ;) --[[Paweł|ptecza]]
+
+> Okie.  Here is a different [[patch]] based on my comment above.  It doesn't introduce
+> a new key, but rather changes the title sorting order. Two caveats:
+
+ * I've only tested this in `inline`, not the other places I changed the sort order.
+ * I'm unsure if the regexp used in the split should be `/(-?\d+)/` instead of `/(\d+)/`.
+    As written, '-' is interpreted as a hyphen rather than a minus sign.
+
+> --[[Will]]
+
+>> I"m not comfortable with tossing out perl's default collator and trying
+>> to maintain some other one going forward. Especially not for such an
+>> edge case. --[[Joey]]
+
+>> Hi Will! Your idea looks interesting for me, but I'm affraid that it's too big
+>> change in Ikiwiki... Maybe I'm wrong? ;) What do you think, Joey? --[[Paweł|ptecza]]
+
+>>> It isn't that big a change.  It is just supplying a sort order to the sort.  The
+>>> patch is a little larger because I then went through and made that sort
+>>> order available in other places where it makes sense.  (Looking at the
+>>> patch again briefly, I should have also used it in the `map` plugin.)
+>>>
+>>> If you wanted a simple patch, you could just move the `titlecmp` function
+>>> into the inline plugin and only use it there.  The problem with that is that
+>>> it only fixes the inline plugin. -- [[Will]]
+
+>>>> Will, I agree with you that it's improved way of sort order. But on the other
+>>>> hand I prefer to be careful when I change something in a several places,
+>>>> because I don't want to break any working things when I fix one thing.
+>>>> I hope that Joey agree with us too and all Ikiwiki users will be happy
+>>>> after applying your patch ;) --[[Paweł|ptecza]]
+
+----
+
+    diff --git a/IkiWiki.pm b/IkiWiki.pm
+    index c0f5dea..d001f8d 100644
+    --- a/IkiWiki.pm
+    +++ b/IkiWiki.pm
+    @@ -20,7 +20,7 @@ use Exporter q{import};
+     our @EXPORT = qw(hook debug error template htmlpage add_depends pagespec_match
+                      bestlink htmllink readfile writefile pagetype srcfile pagename
+                      displaytime will_render gettext urlto targetpage
+    -           add_underlay
+    +           add_underlay titlecmp
+                      %config %links %pagestate %renderedfiles
+                      %pagesources %destsources);
+     our $VERSION = 2.00; # plugin interface version, next is ikiwiki version
+    @@ -835,6 +835,42 @@ sub titlepage ($) { #{{{
+       return $title;
+     } #}}}
+     
+    +sub titlecmp ($$) { #{{{
+    +  my $titleA=shift;
+    +  my $titleB=shift;
+    +  
+    +  my @listA=split(/(\d+)/,$titleA);
+    +  my @listB=split(/(\d+)/,$titleB);
+    +  
+    +  while (@listA && @listB) {
+    +          # compare bits of text
+    +          my $a = shift @listA;
+    +          my $b = shift @listB;
+    +          my $c = ($a cmp $b);
+    +          return $c if ($c);
+    +
+    +          if (@listA && @listB) {
+    +                  # compare numbers
+    +                  $a = shift @listA;
+    +                  $b = shift @listB;
+    +                  $c = $a <=> $b;
+    +                  return $c if ($c);
+    +                  
+    +                  # 01 is different to 1
+    +                  $c = (length($a) <=> length($b));
+    +                  return $c if ($c);
+    +
+    +                  $c = ($a cmp $b);
+    +                  return $c if ($c);
+    +          }
+    +  }
+    +  
+    +  return 1 if (@listA);
+    +  return -1 if (@listB);
+    +  
+    +  return 0;
+    +} #}}}
+    +
+     sub linkpage ($) { #{{{
+       my $link=shift;
+       my $chars = defined $config{wiki_file_chars} ? $config{wiki_file_chars} : "-[:alnum:]+/.:_";
+    diff --git a/IkiWiki/Plugin/brokenlinks.pm b/IkiWiki/Plugin/brokenlinks.pm
+    index 37752dd..ccaa399 100644
+    --- a/IkiWiki/Plugin/brokenlinks.pm
+    +++ b/IkiWiki/Plugin/brokenlinks.pm
+    @@ -59,7 +59,7 @@ sub preprocess (@) { #{{{
+                       map {
+                               "<li>$_</li>"
+                       }
+    -                  sort @broken)
+    +                  sort titlecmp @broken)
+               ."</ul>\n";
+     } # }}}
+     
+    diff --git a/IkiWiki/Plugin/inline.pm b/IkiWiki/Plugin/inline.pm
+    index 8efef3f..263e7a6 100644
+    --- a/IkiWiki/Plugin/inline.pm
+    +++ b/IkiWiki/Plugin/inline.pm
+    @@ -192,7 +192,7 @@ sub preprocess_inline (@) { #{{{
+       }
+     
+       if (exists $params{sort} && $params{sort} eq 'title') {
+    -          @list=sort { pagetitle(basename($a)) cmp pagetitle(basename($b)) } @list;
+    +          @list=sort { titlecmp(pagetitle(basename($a)),pagetitle(basename($b))) } @list;
+       }
+       elsif (exists $params{sort} && $params{sort} eq 'mtime') {
+               @list=sort { $pagemtime{$b} <=> $pagemtime{$a} } @list;
+    diff --git a/IkiWiki/Plugin/orphans.pm b/IkiWiki/Plugin/orphans.pm
+    index b910758..10a1d87 100644
+    --- a/IkiWiki/Plugin/orphans.pm
+    +++ b/IkiWiki/Plugin/orphans.pm
+    @@ -56,7 +56,7 @@ sub preprocess (@) { #{{{
+                               htmllink($params{page}, $params{destpage}, $_,
+                                        noimageinline => 1).
+                               "</li>"
+    -                  } sort @orphans).
+    +                  } sort titlecmp @orphans).
+               "</ul>\n";
+     } # }}}
+     
+    diff --git a/IkiWiki/Render.pm b/IkiWiki/Render.pm
+    index ceb7c84..00798e1 100644
+    --- a/IkiWiki/Render.pm
+    +++ b/IkiWiki/Render.pm
+    @@ -89,7 +89,7 @@ sub genpage ($$) { #{{{
+               $template->param(have_actions => 1);
+       }
+     
+    -  my @backlinks=sort { $a->{page} cmp $b->{page} } backlinks($page);
+    +  my @backlinks=sort { titlecmp($a->{page}, $b->{page}) } backlinks($page);
+       my ($backlinks, $more_backlinks);
+       if (@backlinks <= $config{numbacklinks} || ! $config{numbacklinks}) {
+               $backlinks=\@backlinks;
index 40886be5565ba58a82f9268c272d13e041a29da0..93791c81af3ec69661b4ac16f1b08bdbb75ac317 100644 (file)
@@ -1,3 +1,104 @@
 How about a direct link from the page header to the source of the latest version, to avoid the need to either use edit or navigate to the current version via the history link?
 
  I'd like this too (and might try to implement it). -- [[jondowland]]
+
+I just implemented this.  There is one [[patch]] to the default page template, and a new plugin.  -- [[Will]]
+
+----
+
+    diff --git a/templates/page.tmpl b/templates/page.tmpl
+    index f2f9c34..3176bed 100644
+    --- a/templates/page.tmpl
+    +++ b/templates/page.tmpl
+    @@ -46,6 +46,9 @@
+     <TMPL_IF NAME="HISTORYURL">
+     <li><a href="<TMPL_VAR HISTORYURL>">History</a></li>
+     </TMPL_IF>
+    +<TMPL_IF NAME="GETSOURCEURL">
+    +<li><a href="<TMPL_VAR GETSOURCEURL>">Get Source</a></li>
+    +</TMPL_IF>
+     <TMPL_IF NAME="PREFSURL">
+     <li><a href="<TMPL_VAR PREFSURL>">Preferences</a></li>
+     </TMPL_IF>
+
+----
+
+    #!/usr/bin/perl
+    package IkiWiki::Plugin::getsource;
+    
+    use warnings;
+    use strict;
+    use IkiWiki;
+    use open qw{:utf8 :std};
+    
+    sub import { #{{{
+       hook(type => "getsetup", id => "getsource", call => \&getsetup);
+       hook(type => "pagetemplate", id => "getsource", call => \&pagetemplate);
+       hook(type => "sessioncgi", id => "getsource", call => \&cgi_getsource);
+    } # }}}
+    
+    sub getsetup () { #{{{
+       return
+               plugin => {
+                       safe => 1,
+                       rebuild => 1,
+               },
+               getsource_mimetype => {
+                       type => "string",
+                       example => "application/octet-stream",
+                       description => "Mime type for returned source.",
+                       safe => 1,
+                       rebuild => 0,
+               },
+    } #}}}
+    
+    sub pagetemplate (@) { #{{{
+       my %params=@_;
+    
+       my $page=$params{page};
+       my $template=$params{template};
+    
+       if (length $config{cgiurl}) {
+               $template->param(getsourceurl => IkiWiki::cgiurl(do => "getsource", page => $page));
+               $template->param(have_actions => 1);
+       }
+    } # }}}
+    
+    sub cgi_getsource ($$) { #{{{
+       my $cgi=shift;
+       my $session=shift;
+    
+       # Note: we use sessioncgi rather than just cgi
+       # because we need $IkiWiki::pagesources{} to be
+       # populated.
+       
+       return unless (defined $cgi->param('do') &&
+                                       $cgi->param("do") eq "getsource");
+    
+       IkiWiki::decode_cgi_utf8($cgi);
+    
+       my $page=$cgi->param('page');
+    
+       if ($IkiWiki::pagesources{$page}) {
+               
+               my $data = IkiWiki::readfile(IkiWiki::srcfile($IkiWiki::pagesources{$page}));
+               
+               if (! $config{getsource_mimetype}) {
+                       $config{getsource_mimetype} = "text/plain";
+               }
+               
+               print "Content-Type: $config{getsource_mimetype}\r\n";
+               
+               print ("\r\n");
+               
+               print $data;
+               
+               exit 0;
+       }
+       
+       error("Unable to find page source for page: $page");
+    
+       exit 0;
+    }
+    
+    1
index 62d5f04d6c1570afc590c9ece01328c50e76944c..2a196ed23b642beff60314b51164a3ac3a300465 100644 (file)
@@ -165,6 +165,89 @@ See also:
 >>>> I've just updated the second of the two patches below.  The two patches are not mutually
 >>>> exclusive, but I'm leaning towards the second as more useful (for the things I'm doing). -- [[Will]]
 
+I think it's awesome that you're writing this code to explore the problem
+space, [[Will]] -- and these plugins are good stabs at at least part of it.
+Let me respond to a few of your comments.. --[[Joey]]
+
+On use cases, one use case is a user posting a bug report with structured
+data in it. A template is one way, but then the user has to deal with the
+format used to store the structured data. This is where a edit-time form
+becomes essential.
+
+> This was the idea with the 'form' plugin.  With the 'data' plugin I was exploring
+> a different approach: try to keep the markup simple enough that the user can edit
+> the markup directly, and still have that be ok.  I admit it is a stretch, but I thought
+> it worth exploring.
+
+Another use case is, after many such bugs have been filed,
+wanting to add a new field to each bug report. To avoid needing to edit
+every bug report it would be good if the fields in a bug report were
+defined somewhere else, so that just that one place can be edited to add
+the new field, and it will show up in each bug report (and in each bug
+report's edit page, as a new form field).
+
+> If I was going to do that, I'd use a perl script on a checked out
+> workspace.  I think you're describing a rare operation and
+> so I'd be happy not having a web interface for it.  Having said that,
+> if you just wanted to change the form for *new* pages, then you
+> can just edit the template used to create new pages.
+
+Re the form plugin, I'm uncomfortable with tying things into
+[[!cpan CGI::FormBuilder]] quite so tightly as you have.
+
+> Yeah :).  But I wanted to explore the space and that was the
+> easiest way to start.
+
+CGI::FormBuilder
+could easily change in a way that broke whole wikis full of pages. Also,
+needing to sanitize FormBuilder fields with security implications is asking
+for trouble, since new FormBuilder features could add new fields, or
+add new features to existing fields (FormBuilder is very DWIM) that open
+new security holes. 
+
+> There is a list of allowed fields.  I only interpret those.
+
+I think that having a type system, that allows defining specific types,
+like "email address", by writing code (that in turn can use FormBuilder),
+is a better approach, since it should avoid becoming a security problem.
+
+> That would be possible.  I think an extension to the 'data' plugin might
+> work here.
+
+One specific security hole, BTW, is that if you allow the `validate` field,
+FormBuilder will happily treat it as a regexp, and we don't want to expose
+arbitrary perl regexps, since they can at least DOS a system, and can
+probably be used to run arbitrary perl code.
+
+> I validate the validate field :).  It only allows validate fields that match
+> `/^[\w\s]+$/`.  This means you can really only use the pre-defined
+> validation types in FormBuilder.
+
+The data plugin only deals with a fairly small corner of the problem space,
+but I think does a nice job at what it does. And could probably be useful
+in a large number of other cases.
+
+> I think the data plugin is more likely to be useful than the form plugin.
+> I was thinking of extending the data directive by allowing an 'id' parameter.
+> When you have an id parameter, then you can display a small form for that
+> data element.  The submission handler would look through the page source
+> for the data directive with the right id parameter and edit it.  This would
+> make the data directive more like the current 'form' plugin.
+
+> That is making things significantly more complex for less significant gain though. --[[Will]]
+
+> Oh, one quick other note.  The data plugin below was designed to handle multiple
+> data elements in a single directive.  e.g.
+
+    \[[!data key="Depends on" link="bugs/bugA" link="bugs/bugB" value=6]]
+
+> would match `data_eq(Depends on,6)`, `data_link(Depends on,bugs/bugA)`, `data_link(Depends on,bugs/bugB)`
+> or, if you applied the patch in [[todo/tracking_bugs_with_dependencies]] then you can use 'defined pagespecs'
+> such as `data_link(Depends on,~openBugs)`.  The ability to label links like this allows separation of
+> dependencies between bugs from arbitrary links.
+
+----
+
     #!/usr/bin/perl
     # Interpret YAML data to make a web form
     package IkiWiki::Plugin::form;
index 80b375db3150d90f4b88105b4519d50fa72b6654..e0495c8c25e16d5d0c81882f9a0eb3831d630ecf 100644 (file)
@@ -182,3 +182,34 @@ My approach is:
 I've also updated Marcelo's code (above) to current ikiwiki, and moved it to a "marceloblogcomment" namespace - it's in the "marcelocomments" branch of my repository (see <http://git.debian.org/?p=users/smcv/ikiwiki.git;a=log;h=refs/heads/marcelocomments>). I had to reconstitute the .tmpl file, which Marcelo didn't post here.
 
 --[[smcv]]
+
+OK, the postcomment branch in my repository contains an implementation. What
+do you think so far? Known issues include:
+
+* The combination of RSS/Atom links and the "post new comment..." button is
+  ugly - I need a way to integrate the "new comment" button into the feed links
+  somehow, like the way inline embeds its own "new blog post..." feature
+  (I don't think the current way really scales, though)
+
+* There are some tweakables (whether to commit comments into the VCS, whether
+  wikilinks are allowed, whether directives are allowed) that are theoretically
+  configurable, but are currently hard-coded
+
+* The wikilink/directive disarming doesn't work unless you have
+  prefixdirectives set (which I just realised)
+
+* \[[!smcvpostcomment]] now displays the comments too, by invoking \[[!inline]]
+  with suitable parameters - but it does so in a very ugly way
+
+* Start-tags in a comment with no corresponding end-tag break page formatting
+  (unless htmltidy is enabled - inline and aggregate have the same problem)
+
+* There is no access control, so anonymous users can always comment, and so
+  can all logged-in users. Perhaps we need to extend canedit() to support
+  different types of edit? Or perhaps I should ignore canedit() and make the
+  access control configurable via a parameter to \[[!smcvpostcomment]]?
+  I'd like to be able to let anonymous (or at least non-admin) users comment
+  on existing pages, but not edit or create pages (but perhaps I'm being too
+  un-wikiish).
+
+--[[smcv]]
index 8435e9f581609e7231caf5e387dc0b04198306c4..3af0458bd25bb403bd5cdf17b00b7aae5fdf5473 100644 (file)
@@ -191,7 +191,7 @@ account all comments above (which doesn't mean it is above reproach :) ).  --[[W
 ----
 
     diff --git a/IkiWiki.pm b/IkiWiki.pm
-    index 4e4da11..2cc5f09 100644
+    index 4e4da11..8b3cdfe 100644
     --- a/IkiWiki.pm
     +++ b/IkiWiki.pm
     @@ -1550,7 +1550,16 @@ sub globlist_to_pagespec ($) { #{{{
@@ -208,7 +208,7 @@ account all comments above (which doesn't mean it is above reproach :) ).  --[[W
     +                                  \))?\s*$
     +                  ) |
     +                          (\s and \s) | (\s or \s)        # or we find 'and' or 'or' somewhere
-    +                  /x);
+    +                  /xs);
      } #}}}
      
      sub safequote ($) { #{{{
@@ -221,7 +221,7 @@ account all comments above (which doesn't mean it is above reproach :) ).  --[[W
        my $spec=shift;
      
        # Support for old-style GlobLists.
-    @@ -1650,7 +1659,9 @@ sub pagespec_translate ($) { #{{{
+    @@ -1650,12 +1659,14 @@ sub pagespec_translate ($) { #{{{
                |
                        \)              # )
                |
@@ -232,18 +232,25 @@ account all comments above (which doesn't mean it is above reproach :) ).  --[[W
                |
                        [^\s()]+        # any other text
                )
+               \s*             # ignore whitespace
+    -  }igx) {
+    +  }igxs) {
+               my $word=$1;
+               if (lc $word eq 'and') {
+                       $code.=' &&';
     @@ -1666,16 +1677,23 @@ sub pagespec_translate ($) { #{{{
                elsif ($word eq "(" || $word eq ")" || $word eq "!") {
                        $code.=' '.$word;
                }
-    +          elsif ($word =~ /^define\(\s*~(\w+)\s*,(.*)\)$/) {
+    -          elsif ($word =~ /^(\w+)\((.*)\)$/) {
+    +          elsif ($word =~ /^define\(\s*~(\w+)\s*,(.*)\)$/s) {
     +                  $code .= " (\$params{specFuncs}->{$1}=";        # (exists \$params{specFuncs}) && 
     +                  $code .= "memoize(";
     +                  $code .= &pagespec_makeperl($2);
     +                  $code .= ")";
     +                  $code .= ") ";
     +          }
-               elsif ($word =~ /^(\w+)\((.*)\)$/) {
+    +          elsif ($word =~ /^(\w+)\((.*)\)$/s) {
                        if (exists $IkiWiki::PageSpec::{"match_$1"}) {
     -                          $code.="IkiWiki::PageSpec::match_$1(\$page, ".safequote($2).", \@_)";
     +                          $code.="IkiWiki::PageSpec::match_$1(\$page, ".safequote($2).", \%params)";
@@ -258,7 +265,7 @@ account all comments above (which doesn't mean it is above reproach :) ).  --[[W
                }
        }
      
-    @@ -1683,23 +1701,36 @@ sub pagespec_translate ($) { #{{{
+    @@ -1683,8 +1701,18 @@ sub pagespec_translate ($) { #{{{
                $code=0;
        }
      
@@ -278,27 +285,16 @@ account all comments above (which doesn't mean it is above reproach :) ).  --[[W
      } #}}}
      
      sub pagespec_match ($$;@) { #{{{
-       my $page=shift;
-       my $spec=shift;
-       my @params=@_;
-    +  my %params=@_;
+    @@ -1699,7 +1727,7 @@ sub pagespec_match ($$;@) { #{{{
      
-       # Backwards compatability with old calling convention.
-       if (@params == 1) {
-    -          unshift @params, 'location';
-    +          %params = { location => $params[1] };
-       }
-     
-    +  $params{specFuncs} = {} unless defined $params{specFuncs};
-    +
        my $sub=pagespec_translate($spec);
        return IkiWiki::FailReason->new("syntax error in pagespec \"$spec\"") if $@;
     -  return $sub->($page, @params);
-    +  return $sub->($page, %params);
+    +  return $sub->($page, @params, specFuncs => {});
      } #}}}
      
      sub pagespec_valid ($) { #{{{
-    @@ -1748,11 +1779,78 @@ sub new { #{{{
+    @@ -1748,11 +1776,78 @@ sub new { #{{{
      
      package IkiWiki::PageSpec;
      
@@ -377,7 +373,7 @@ account all comments above (which doesn't mean it is above reproach :) ).  --[[W
        my $from=exists $params{location} ? $params{location} : '';
        
        # relative matching
-    @@ -1782,11 +1880,16 @@ sub match_internal ($$;@) { #{{{
+    @@ -1782,11 +1877,12 @@ sub match_internal ($$;@) { #{{{
      
      sub match_link ($$;@) { #{{{
        my $page=shift;
@@ -386,17 +382,21 @@ account all comments above (which doesn't mean it is above reproach :) ).  --[[W
        my %params=@_;
     +  my $link=lc($fulllink);
      
-    -  my $from=exists $params{location} ? $params{location} : '';
-    +  if (substr($fulllink, 0, 1) eq '~') {
-    +          return check_named_spec_existential($page, $fulllink, \&match_link, %params);
-    +  }
-     
-    +  my $from=exists $params{location} ? $params{location} : '';
+       my $from=exists $params{location} ? $params{location} : '';
+    -
     +  
        # relative matching
        if ($link =~ m!^\.! && defined $from) {
                $from=~s#/?[^/]+$##;
-    @@ -1811,12 +1914,25 @@ sub match_link ($$;@) { #{{{
+    @@ -1804,19 +1900,32 @@ sub match_link ($$;@) { #{{{
+               }
+               else {
+                       return IkiWiki::SuccessReason->new("$page links to page $p matching $link")
+    -                          if match_glob($p, $link, %params);
+    +                          if match_glob($p, $fulllink, %params);
+               }
+       }
+       return IkiWiki::FailReason->new("$page does not link to $link");
      } #}}}
      
      sub match_backlink ($$;@) { #{{{
@@ -423,7 +423,7 @@ account all comments above (which doesn't mean it is above reproach :) ).  --[[W
      
        if (exists $IkiWiki::pagectime{$testpage}) {
                if ($IkiWiki::pagectime{$page} < $IkiWiki::pagectime{$testpage}) {
-    @@ -1834,6 +1950,11 @@ sub match_created_before ($$;@) { #{{{
+    @@ -1834,6 +1943,11 @@ sub match_created_before ($$;@) { #{{{
      sub match_created_after ($$;@) { #{{{
        my $page=shift;
        my $testpage=shift;
index 4c703b940402de9067a1cadb2fdae18f41542273..87e55685c17ae3005b8a5a0e17212506115490c2 100644 (file)
@@ -28,3 +28,7 @@ I think this (untested) patch might just do the trick:
 --[[madduck]]
 
 [[!tags wishlist patch]]
+
+[[done]], though the patch I eventually applied uses "silent" as the
+parameter name. Sorry for forgetting about this patch until someone else
+implemented it too. --[[Joey]]
diff --git a/doc/todo/wikitrails.mdwn b/doc/todo/wikitrails.mdwn
new file mode 100644 (file)
index 0000000..ca97c94
--- /dev/null
@@ -0,0 +1,41 @@
+## summary
+at times it is useful to have a guided tour or trail through a subset of the pages of a wiki; in pmwiki, this is implemented as [wikitrails](http://www.pmwiki.org/wiki/PmWiki/WikiTrails).
+
+i'm working on a python xmlrpc plugin for ikiwiki to support wikitrails, both as a navigation feature (have "forward" and "back" links based on a sequence) and a modified inline that includes all pages in the trail with appropriate modifications (suitable for printing if necessary).
+
+the current status is published on `git://github.com/github076986099/ikiwiki-plugins.git`; as of now, i don't have a public demo of it.
+
+feedback on both the concept and the code is very much appreciated by [[discussion]] or [email](mailto:chrysn@fsfe.org).
+
+## usage
+
+two preprocessor commands are provided:
+
+### \[[!trail index="my_indexpage"]]
+
+embeds a navigation object with forward and back links as well as an indicator of the current position in the trail.
+
+if index is not specified, a suitable page up the path is used.
+
+this works very well together with the [[sidebar|plugins/sidebar]] plugin if the pages in a directory are roughly the same as the pages in the trail and the `index` is directory index page; just put the \[[!trail]] in the sidebar.
+
+### \[[!trailinclude index="my_indexpage"]]
+
+all pages linked from the index page are included in the same way as \[[!inline]] does, but in the proper sequence, with headings according to the indent in the source page and adoptions for the headings inside the page (a level 2 heading in a page that is a sub-sub-chapter in the whole trail will become a level 5 heading when trailincluded).
+
+## the index page
+
+the index page is parsed as markdown; numbered lists and "`*`" bulleted lists are discovered.
+
+## current issues
+
+ * rebuilding --- currently, there is no propper rebuilding of pages (will use `will_render` and `add_depends`). care has to be taken of how not yet created pages play into this.
+ * inline recursion --- there is simply no guard yet
+ * navigation layout --- has to be both flexible and usable-by-default
+ * heading shifting
+  * currently only works for markdown
+  * can break the limit of html's six heading levels
+ * search for index page is currently next to hardcoded
+ * reading the index --- markdown syntax parsing is currently on a it-can-use-what-i-produce level; maybe integrate with existing mdwn parser
+ * uses undocumented titlepage command
+   > Don't worry about that, titlepage isn't going anywhere, and will probably before a formal part of the api next time I consider api changes. --[[Joey]]
diff --git a/doc/todo/wikitrails/discussion.mdwn b/doc/todo/wikitrails/discussion.mdwn
new file mode 100644 (file)
index 0000000..327e614
--- /dev/null
@@ -0,0 +1,24 @@
+This sounds like a more general version of what I want for
+one-photo-per-page galleries, where each page has previous|up|next links
+(like this plugin) and the index page has a list or grid of thumbnails
+(\[[!inline]] with a specially modified template perhaps). I'll watch this
+with interest! --[[smcv]]
+
+This is a nice idea, I do have my gripes about the imeplementation.
+
+Assuming that the index's list is in mdwn format is not ideal. I guess the
+other way to do it would be to make the index be a directive, something
+like: \[[!trail pages="foo bar baz"]]. Assuming that a flat trail structure
+is enough, otherwise you'd have to get more fancy.
+
+The trailinclude seems a bit redundant with inline, and wanting to inline
+together all pages in a trail for printing or whatever seems like an
+unusual use case anyway?
+
+The !trail directive could be simplified to just \[[!trail my_indexpage]].
+But I wonder if needing to add this directive to every page is the best
+approach. Alternate approach would be to make the trail index cause 
+breadcrums to be automatically inserted at the top of every page on the
+trail. (You'd have to use a directive to define the index for that to work.)
+
+--[[Joey]]
index efa0a1cc6590389153790c8a8915068c7259a87e..b20418e470a826d6bff618548e83bd73e8ea31b2 100644 (file)
@@ -15,6 +15,11 @@ I generally use my [[ikiwiki/openid]] login when editing here: <http://www.cse.u
 >> Is it only working because you have old files in your output directory that aren't
 >> backed by source files any more? -- [[Will]]
 
+>>> This wiki's source is ikiwiki's doc/ directory, which contains all the
+>>> files that are installed into the underlay, including the directive
+>>> documentation. But, it's special that way. 
+>>> I've now enabled listdirectives on this wiki, BTW. --[[Joey]]
+
 ### Open Bugs:
 
 [[!inline pages="link(users/Will) and bugs/* and !bugs/done and !bugs/discussion and !link(patch) and !link(bugs/done) and !bugs/*/*" archive="yes" feeds="no" ]]
index 878d3506519a02e496fdb13564c4591a8d6fb0ea..f96daab0bb9c55233c2a5a1e0f38a0596d3a1e0f 100755 (executable)
@@ -10,7 +10,8 @@ use lib '.'; # For use in nonstandard directory, munged by Makefile.
 use IkiWiki;
 
 sub usage () { #{{{
-       die gettext("usage: ikiwiki [options] source dest"), "\n";
+       die gettext("usage: ikiwiki [options] source dest"), "\n",
+           gettext("       ikiwiki --setup configfile"), "\n";
 } #}}}
 
 sub getconfig () { #{{{
@@ -21,7 +22,13 @@ sub getconfig () { #{{{
                GetOptions(
                        "setup|s=s" => sub {
                                require IkiWiki::Setup;
+                               my $verbose=$config{verbose};
+                               my $syslog=$config{syslog};
                                IkiWiki::Setup::load($_[1]);
+                               $config{setupverbose}=$config{verbose};
+                               $config{setupsyslog}=$config{syslog};
+                               $config{verbose}=$verbose || $config{setupverbose};
+                               $config{syslog}=$syslog;
                                $config{setup}=1;
                        },
                        "dumpsetup|s=s" => \$config{dumpsetup},
@@ -88,6 +95,7 @@ sub getconfig () { #{{{
                                print "ikiwiki version $IkiWiki::version\n";
                                exit;
                        },
+                       "help|h" => sub { $SIG{__WARN__}=sub {}; die },
                ) || usage();
 
                if (! $config{setup} && ! $config{render}) {
@@ -129,15 +137,13 @@ sub main () { #{{{
                        debug(gettext("generating wrappers.."));
                        require IkiWiki::Wrapper;
                        my %origconfig=(%config);
-                       my @wrappers=@{$config{wrappers}};
-                       delete $config{wrappers};
-                       delete $config{genwrappers};
-                       foreach my $wrapper (@wrappers) {
-                               %config=(%origconfig,
-                                       rebuild => 0,
-                                       verbose => undef,
-                                       %{$wrapper},
-                               );
+                       foreach my $wrapper (@{$config{wrappers}}) {
+                               %config=(%origconfig, %{$wrapper});
+                               $config{verbose}=$config{setupverbose}
+                                       if exists $config{setupverbose};
+                               $config{syslog}=$config{setupsyslog}
+                                       if exists $config{setupsyslog};
+                               delete @config{qw(setupsyslog setupverbose wrappers genwrappers rebuild)};
                                checkconfig();
                                if (! $config{cgi} && ! $config{post_commit}) {
                                        $config{post_commit}=1;
index d0ee3fc988fa02717059dc1d345e53c24b3a7213..c26e1364c4b695808773ee86772bb301bcf4ab3b 100644 (file)
--- a/po/bg.po
+++ b/po/bg.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: ikiwiki-bg\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-09-11 18:52-0400\n"
+"POT-Creation-Date: 2008-09-24 17:55-0400\n"
 "PO-Revision-Date: 2007-01-12 01:19+0200\n"
 "Last-Translator: Damyan Ivanov <dam@modsodtsys.com>\n"
 "Language-Team: Bulgarian <dict@fsa-bg.org>\n"
@@ -24,7 +24,7 @@ msgstr "Първо трябва да влезете."
 msgid "login failed, perhaps you need to turn on cookies?"
 msgstr ""
 
-#: ../IkiWiki/CGI.pm:163 ../IkiWiki/Plugin/editpage.pm:310
+#: ../IkiWiki/CGI.pm:163 ../IkiWiki/Plugin/editpage.pm:311
 msgid "Your login session has expired."
 msgstr ""
 
@@ -122,7 +122,7 @@ msgstr ""
 msgid "feed crashed XML::Feed!"
 msgstr "данните от източника предизвикаха грешка в модула XML::Feed!"
 
-#: ../IkiWiki/Plugin/aggregate.pm:584
+#: ../IkiWiki/Plugin/aggregate.pm:590
 #, perl-format
 msgid "creating new page %s"
 msgstr "създаване на нова страницa „%s”"
@@ -131,7 +131,7 @@ msgstr "създаване на нова страницa „%s”"
 msgid "deleting bucket.."
 msgstr ""
 
-#: ../IkiWiki/Plugin/amazon_s3.pm:38 ../ikiwiki.in:193
+#: ../IkiWiki/Plugin/amazon_s3.pm:38 ../ikiwiki.in:197
 msgid "done"
 msgstr "готово"
 
@@ -175,8 +175,8 @@ msgstr ""
 msgid "automatic index generation"
 msgstr ""
 
-#: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:221
-#: ../IkiWiki/Plugin/inline.pm:317 ../IkiWiki/Plugin/opendiscussion.pm:26
+#: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:222
+#: ../IkiWiki/Plugin/inline.pm:323 ../IkiWiki/Plugin/opendiscussion.pm:26
 #: ../IkiWiki/Plugin/orphans.pm:37 ../IkiWiki/Render.pm:79
 #: ../IkiWiki/Render.pm:149
 msgid "discussion"
@@ -207,19 +207,19 @@ msgstr ""
 msgid "no text was copied in this page with id %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/editpage.pm:110
+#: ../IkiWiki/Plugin/editpage.pm:111
 #, perl-format
 msgid "%s is not an editable page"
 msgstr ""
 
-#: ../IkiWiki/Plugin/editpage.pm:277
+#: ../IkiWiki/Plugin/editpage.pm:278
 #, perl-format
 msgid "creating %s"
 msgstr "създаване на %s"
 
-#: ../IkiWiki/Plugin/editpage.pm:295 ../IkiWiki/Plugin/editpage.pm:323
-#: ../IkiWiki/Plugin/editpage.pm:333 ../IkiWiki/Plugin/editpage.pm:368
-#: ../IkiWiki/Plugin/editpage.pm:413
+#: ../IkiWiki/Plugin/editpage.pm:296 ../IkiWiki/Plugin/editpage.pm:324
+#: ../IkiWiki/Plugin/editpage.pm:334 ../IkiWiki/Plugin/editpage.pm:369
+#: ../IkiWiki/Plugin/editpage.pm:414
 #, perl-format
 msgid "editing %s"
 msgstr "промяна на %s"
@@ -234,12 +234,12 @@ msgstr "шаблонът „%s” не е намерен"
 msgid "match not specified"
 msgstr "не е указан файл на обвивката"
 
-#: ../IkiWiki/Plugin/edittemplate.pm:59
+#: ../IkiWiki/Plugin/edittemplate.pm:62
 #, perl-format
 msgid "edittemplate %s registered for %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/edittemplate.pm:125
+#: ../IkiWiki/Plugin/edittemplate.pm:133
 #, fuzzy
 msgid "failed to process"
 msgstr "грешка при обработване на шаблона"
@@ -309,20 +309,20 @@ msgstr "липсващ параметър „id” на шаблона"
 msgid "unknown sort type %s"
 msgstr "непознат вид сортиране „%s”"
 
-#: ../IkiWiki/Plugin/inline.pm:276
+#: ../IkiWiki/Plugin/inline.pm:282
 msgid "Add a new post titled:"
 msgstr ""
 
-#: ../IkiWiki/Plugin/inline.pm:292
+#: ../IkiWiki/Plugin/inline.pm:298
 #, perl-format
 msgid "nonexistant template %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/inline.pm:325 ../IkiWiki/Render.pm:83
+#: ../IkiWiki/Plugin/inline.pm:331 ../IkiWiki/Render.pm:83
 msgid "Discussion"
 msgstr "Дискусия"
 
-#: ../IkiWiki/Plugin/inline.pm:562
+#: ../IkiWiki/Plugin/inline.pm:568
 msgid "RPC::XML::Client not found, not pinging"
 msgstr "модулът „RPC::XML::Client” не е намерен; източникът не е проверен"
 
@@ -535,6 +535,15 @@ msgstr ""
 msgid "at noon on %A"
 msgstr ""
 
+#: ../IkiWiki/Plugin/progress.pm:34
+#, perl-format
+msgid "illegal percent value %s"
+msgstr ""
+
+#: ../IkiWiki/Plugin/progress.pm:59
+msgid "need either `percent` or `totalpages` and `donepages` parameters"
+msgstr ""
+
 #: ../IkiWiki/Plugin/recentchanges.pm:99
 #, fuzzy
 msgid "missing page"
@@ -549,79 +558,83 @@ msgstr ""
 msgid "(Diff truncated)"
 msgstr ""
 
-#: ../IkiWiki/Plugin/remove.pm:32 ../IkiWiki/Plugin/rename.pm:35
+#: ../IkiWiki/Plugin/remove.pm:31 ../IkiWiki/Plugin/rename.pm:36
 #, perl-format
 msgid "%s does not exist"
 msgstr ""
 
-#: ../IkiWiki/Plugin/remove.pm:39
+#: ../IkiWiki/Plugin/remove.pm:38
 #, fuzzy, perl-format
 msgid "%s is not in the srcdir, so it cannot be deleted"
 msgstr ""
 "Страницата „%s” е заключена от потребителя „%s” и не може да бъде променяна"
 
-#: ../IkiWiki/Plugin/remove.pm:42 ../IkiWiki/Plugin/rename.pm:44
+#: ../IkiWiki/Plugin/remove.pm:41 ../IkiWiki/Plugin/rename.pm:45
 #, perl-format
 msgid "%s is not a file"
 msgstr ""
 
-#: ../IkiWiki/Plugin/remove.pm:109
+#: ../IkiWiki/Plugin/remove.pm:112
 #, perl-format
 msgid "confirm removal of %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/remove.pm:145
+#: ../IkiWiki/Plugin/remove.pm:148
 msgid "Please select the attachments to remove."
 msgstr ""
 
-#: ../IkiWiki/Plugin/remove.pm:185
+#: ../IkiWiki/Plugin/remove.pm:188
 msgid "removed"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:41
+#: ../IkiWiki/Plugin/rename.pm:42
 #, perl-format
 msgid "%s is not in the srcdir, so it cannot be renamed"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:56
+#: ../IkiWiki/Plugin/rename.pm:62
 #, fuzzy
 msgid "no change to the file name was specified"
 msgstr "не е указан файл на обвивката"
 
-#: ../IkiWiki/Plugin/rename.pm:62
+#: ../IkiWiki/Plugin/rename.pm:68
 #, perl-format
 msgid "illegal name"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:67
+#: ../IkiWiki/Plugin/rename.pm:73
 #, perl-format
 msgid "%s already exists"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:73
+#: ../IkiWiki/Plugin/rename.pm:79
 #, perl-format
 msgid "%s already exists on disk"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:95
+#: ../IkiWiki/Plugin/rename.pm:101
 #, fuzzy, perl-format
 msgid "rename %s"
 msgstr "обновяване на страницата „%s”"
 
-#: ../IkiWiki/Plugin/rename.pm:206
+#: ../IkiWiki/Plugin/rename.pm:138
+msgid "Also rename SubPages and attachments"
+msgstr ""
+
+#: ../IkiWiki/Plugin/rename.pm:223
 msgid "Only one attachment can be renamed at a time."
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:209
+#: ../IkiWiki/Plugin/rename.pm:226
 msgid "Please select the attachment to rename."
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:277
+#: ../IkiWiki/Plugin/rename.pm:332
 #, perl-format
 msgid "rename %s to %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:306
+#: ../IkiWiki/Plugin/rename.pm:484
 #, fuzzy, perl-format
 msgid "update for rename of %s to %s"
 msgstr "обновяване на страниците от уики „%s”: %s от потребител „%s”"
@@ -789,47 +802,52 @@ msgstr ""
 msgid "<p class=\"error\">Error: %s exited nonzero (%s)"
 msgstr ""
 
-#: ../IkiWiki/Render.pm:277 ../IkiWiki/Render.pm:298
+#: ../IkiWiki/Render.pm:277 ../IkiWiki/Render.pm:302
 #, perl-format
 msgid "skipping bad filename %s"
 msgstr "пропускане на невалидното име на файл „%s”"
 
-#: ../IkiWiki/Render.pm:356
+#: ../IkiWiki/Render.pm:284
+#, perl-format
+msgid "%s has multiple possible source pages"
+msgstr ""
+
+#: ../IkiWiki/Render.pm:360
 #, perl-format
 msgid "removing old page %s"
 msgstr "премахване на старата страница „%s”"
 
-#: ../IkiWiki/Render.pm:396
+#: ../IkiWiki/Render.pm:400
 #, perl-format
 msgid "scanning %s"
 msgstr "сканиране на „%s”"
 
-#: ../IkiWiki/Render.pm:401
+#: ../IkiWiki/Render.pm:405
 #, perl-format
 msgid "rendering %s"
 msgstr "обновяване на страницата „%s”"
 
-#: ../IkiWiki/Render.pm:422
+#: ../IkiWiki/Render.pm:426
 #, perl-format
 msgid "rendering %s, which links to %s"
 msgstr "обновяване на страницата „%s”, съдържаща препратки към „%s”"
 
-#: ../IkiWiki/Render.pm:443
+#: ../IkiWiki/Render.pm:447
 #, perl-format
 msgid "rendering %s, which depends on %s"
 msgstr "обновяване на страницата „%s”, зависеща от „%s”"
 
-#: ../IkiWiki/Render.pm:482
+#: ../IkiWiki/Render.pm:486
 #, perl-format
 msgid "rendering %s, to update its backlinks"
 msgstr "обновяване на „%s” и осъвременяване на обратните връзки"
 
-#: ../IkiWiki/Render.pm:494
+#: ../IkiWiki/Render.pm:498
 #, perl-format
 msgid "removing %s, no longer rendered by %s"
 msgstr "премахване на „%s” понеже не се генерира от „%s”"
 
-#: ../IkiWiki/Render.pm:518
+#: ../IkiWiki/Render.pm:522
 #, perl-format
 msgid "ikiwiki: cannot render %s"
 msgstr "ikiwiki: неуспех при обновяване на страницата „%s”"
@@ -890,19 +908,19 @@ msgstr "успешно генериране на %s"
 msgid "usage: ikiwiki [options] source dest"
 msgstr "формат: ikiwiki [опции] източник местоназначение"
 
-#: ../ikiwiki.in:83
+#: ../ikiwiki.in:89
 msgid "usage: --set var=value"
 msgstr ""
 
-#: ../ikiwiki.in:129
+#: ../ikiwiki.in:135
 msgid "generating wrappers.."
 msgstr "генериране на обвивки..."
 
-#: ../ikiwiki.in:182
+#: ../ikiwiki.in:186
 msgid "rebuilding wiki.."
 msgstr "обновяване на уики..."
 
-#: ../ikiwiki.in:185
+#: ../ikiwiki.in:189
 msgid "refreshing wiki.."
 msgstr "осъвременяване на уики..."
 
index 9af34ee0e875da0ecd8c137bf796fdc0fe907f96..145c62e4f8dc1526aaea305b0467fc965c5c6439 100644 (file)
--- a/po/cs.po
+++ b/po/cs.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: ikiwiki\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-09-11 18:52-0400\n"
+"POT-Creation-Date: 2008-09-24 17:55-0400\n"
 "PO-Revision-Date: 2007-05-09 21:21+0200\n"
 "Last-Translator: Miroslav Kure <kurem@debian.cz>\n"
 "Language-Team: Czech <debian-l10n-czech@lists.debian.org>\n"
@@ -23,7 +23,7 @@ msgstr "Nejprve se musíte přihlásit."
 msgid "login failed, perhaps you need to turn on cookies?"
 msgstr "přihlášení selhalo; možná si musíte povolit cookies?"
 
-#: ../IkiWiki/CGI.pm:163 ../IkiWiki/Plugin/editpage.pm:310
+#: ../IkiWiki/CGI.pm:163 ../IkiWiki/Plugin/editpage.pm:311
 msgid "Your login session has expired."
 msgstr ""
 
@@ -119,7 +119,7 @@ msgstr ""
 msgid "feed crashed XML::Feed!"
 msgstr "zdroj shodil XML::Feed!"
 
-#: ../IkiWiki/Plugin/aggregate.pm:584
+#: ../IkiWiki/Plugin/aggregate.pm:590
 #, perl-format
 msgid "creating new page %s"
 msgstr "vytvářím novou stránku %s"
@@ -128,7 +128,7 @@ msgstr "vytvářím novou stránku %s"
 msgid "deleting bucket.."
 msgstr ""
 
-#: ../IkiWiki/Plugin/amazon_s3.pm:38 ../ikiwiki.in:193
+#: ../IkiWiki/Plugin/amazon_s3.pm:38 ../ikiwiki.in:197
 msgid "done"
 msgstr "hotovo"
 
@@ -172,8 +172,8 @@ msgstr ""
 msgid "automatic index generation"
 msgstr ""
 
-#: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:221
-#: ../IkiWiki/Plugin/inline.pm:317 ../IkiWiki/Plugin/opendiscussion.pm:26
+#: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:222
+#: ../IkiWiki/Plugin/inline.pm:323 ../IkiWiki/Plugin/opendiscussion.pm:26
 #: ../IkiWiki/Plugin/orphans.pm:37 ../IkiWiki/Render.pm:79
 #: ../IkiWiki/Render.pm:149
 msgid "discussion"
@@ -204,19 +204,19 @@ msgstr ""
 msgid "no text was copied in this page with id %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/editpage.pm:110
+#: ../IkiWiki/Plugin/editpage.pm:111
 #, perl-format
 msgid "%s is not an editable page"
 msgstr "%s není editovatelná stránka"
 
-#: ../IkiWiki/Plugin/editpage.pm:277
+#: ../IkiWiki/Plugin/editpage.pm:278
 #, perl-format
 msgid "creating %s"
 msgstr "vytvářím %s"
 
-#: ../IkiWiki/Plugin/editpage.pm:295 ../IkiWiki/Plugin/editpage.pm:323
-#: ../IkiWiki/Plugin/editpage.pm:333 ../IkiWiki/Plugin/editpage.pm:368
-#: ../IkiWiki/Plugin/editpage.pm:413
+#: ../IkiWiki/Plugin/editpage.pm:296 ../IkiWiki/Plugin/editpage.pm:324
+#: ../IkiWiki/Plugin/editpage.pm:334 ../IkiWiki/Plugin/editpage.pm:369
+#: ../IkiWiki/Plugin/editpage.pm:414
 #, perl-format
 msgid "editing %s"
 msgstr "upravuji %s"
@@ -231,12 +231,12 @@ msgstr "šablona %s nebyla nalezena"
 msgid "match not specified"
 msgstr "jméno souboru s obalem nebylo zadáno"
 
-#: ../IkiWiki/Plugin/edittemplate.pm:59
+#: ../IkiWiki/Plugin/edittemplate.pm:62
 #, perl-format
 msgid "edittemplate %s registered for %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/edittemplate.pm:125
+#: ../IkiWiki/Plugin/edittemplate.pm:133
 #, fuzzy
 msgid "failed to process"
 msgstr "nepodařilo se zpracovat:"
@@ -302,20 +302,20 @@ msgstr "chybí parametr %s"
 msgid "unknown sort type %s"
 msgstr "neznámý typ řazení %s"
 
-#: ../IkiWiki/Plugin/inline.pm:276
+#: ../IkiWiki/Plugin/inline.pm:282
 msgid "Add a new post titled:"
 msgstr "Přidat nový příspěvek nazvaný:"
 
-#: ../IkiWiki/Plugin/inline.pm:292
+#: ../IkiWiki/Plugin/inline.pm:298
 #, perl-format
 msgid "nonexistant template %s"
 msgstr "neexistující šablona %s"
 
-#: ../IkiWiki/Plugin/inline.pm:325 ../IkiWiki/Render.pm:83
+#: ../IkiWiki/Plugin/inline.pm:331 ../IkiWiki/Render.pm:83
 msgid "Discussion"
 msgstr "Diskuse"
 
-#: ../IkiWiki/Plugin/inline.pm:562
+#: ../IkiWiki/Plugin/inline.pm:568
 msgid "RPC::XML::Client not found, not pinging"
 msgstr "RPC::XML::Client nebyl nalezen, nepinkám"
 
@@ -524,6 +524,15 @@ msgstr "o půlnoci"
 msgid "at noon on %A"
 msgstr "%A o poledni"
 
+#: ../IkiWiki/Plugin/progress.pm:34
+#, perl-format
+msgid "illegal percent value %s"
+msgstr ""
+
+#: ../IkiWiki/Plugin/progress.pm:59
+msgid "need either `percent` or `totalpages` and `donepages` parameters"
+msgstr ""
+
 #: ../IkiWiki/Plugin/recentchanges.pm:99
 #, fuzzy
 msgid "missing page"
@@ -538,78 +547,82 @@ msgstr ""
 msgid "(Diff truncated)"
 msgstr ""
 
-#: ../IkiWiki/Plugin/remove.pm:32 ../IkiWiki/Plugin/rename.pm:35
+#: ../IkiWiki/Plugin/remove.pm:31 ../IkiWiki/Plugin/rename.pm:36
 #, perl-format
 msgid "%s does not exist"
 msgstr ""
 
-#: ../IkiWiki/Plugin/remove.pm:39
+#: ../IkiWiki/Plugin/remove.pm:38
 #, fuzzy, perl-format
 msgid "%s is not in the srcdir, so it cannot be deleted"
 msgstr "Stránka %s je zamknutá uživatelem %s a nelze ji měnit"
 
-#: ../IkiWiki/Plugin/remove.pm:42 ../IkiWiki/Plugin/rename.pm:44
+#: ../IkiWiki/Plugin/remove.pm:41 ../IkiWiki/Plugin/rename.pm:45
 #, fuzzy, perl-format
 msgid "%s is not a file"
 msgstr "%s není editovatelná stránka"
 
-#: ../IkiWiki/Plugin/remove.pm:109
+#: ../IkiWiki/Plugin/remove.pm:112
 #, perl-format
 msgid "confirm removal of %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/remove.pm:145
+#: ../IkiWiki/Plugin/remove.pm:148
 msgid "Please select the attachments to remove."
 msgstr ""
 
-#: ../IkiWiki/Plugin/remove.pm:185
+#: ../IkiWiki/Plugin/remove.pm:188
 msgid "removed"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:41
+#: ../IkiWiki/Plugin/rename.pm:42
 #, perl-format
 msgid "%s is not in the srcdir, so it cannot be renamed"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:56
+#: ../IkiWiki/Plugin/rename.pm:62
 #, fuzzy
 msgid "no change to the file name was specified"
 msgstr "jméno souboru s obalem nebylo zadáno"
 
-#: ../IkiWiki/Plugin/rename.pm:62
+#: ../IkiWiki/Plugin/rename.pm:68
 #, perl-format
 msgid "illegal name"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:67
+#: ../IkiWiki/Plugin/rename.pm:73
 #, perl-format
 msgid "%s already exists"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:73
+#: ../IkiWiki/Plugin/rename.pm:79
 #, perl-format
 msgid "%s already exists on disk"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:95
+#: ../IkiWiki/Plugin/rename.pm:101
 #, fuzzy, perl-format
 msgid "rename %s"
 msgstr "zpracovávám %s"
 
-#: ../IkiWiki/Plugin/rename.pm:206
+#: ../IkiWiki/Plugin/rename.pm:138
+msgid "Also rename SubPages and attachments"
+msgstr ""
+
+#: ../IkiWiki/Plugin/rename.pm:223
 msgid "Only one attachment can be renamed at a time."
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:209
+#: ../IkiWiki/Plugin/rename.pm:226
 msgid "Please select the attachment to rename."
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:277
+#: ../IkiWiki/Plugin/rename.pm:332
 #, perl-format
 msgid "rename %s to %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:306
+#: ../IkiWiki/Plugin/rename.pm:484
 #, fuzzy, perl-format
 msgid "update for rename of %s to %s"
 msgstr "aktualizace %s (%s) uživatelem %s"
@@ -770,47 +783,52 @@ msgstr ""
 msgid "<p class=\"error\">Error: %s exited nonzero (%s)"
 msgstr ""
 
-#: ../IkiWiki/Render.pm:277 ../IkiWiki/Render.pm:298
+#: ../IkiWiki/Render.pm:277 ../IkiWiki/Render.pm:302
 #, perl-format
 msgid "skipping bad filename %s"
 msgstr "přeskakuji chybné jméno souboru %s"
 
-#: ../IkiWiki/Render.pm:356
+#: ../IkiWiki/Render.pm:284
+#, perl-format
+msgid "%s has multiple possible source pages"
+msgstr ""
+
+#: ../IkiWiki/Render.pm:360
 #, perl-format
 msgid "removing old page %s"
 msgstr "odstraňuji starou stránku %s"
 
-#: ../IkiWiki/Render.pm:396
+#: ../IkiWiki/Render.pm:400
 #, perl-format
 msgid "scanning %s"
 msgstr "prohledávám %s"
 
-#: ../IkiWiki/Render.pm:401
+#: ../IkiWiki/Render.pm:405
 #, perl-format
 msgid "rendering %s"
 msgstr "zpracovávám %s"
 
-#: ../IkiWiki/Render.pm:422
+#: ../IkiWiki/Render.pm:426
 #, perl-format
 msgid "rendering %s, which links to %s"
 msgstr "zpracovávám %s, která odkazuje na %s"
 
-#: ../IkiWiki/Render.pm:443
+#: ../IkiWiki/Render.pm:447
 #, perl-format
 msgid "rendering %s, which depends on %s"
 msgstr "zpracovávám %s, která závisí na %s"
 
-#: ../IkiWiki/Render.pm:482
+#: ../IkiWiki/Render.pm:486
 #, perl-format
 msgid "rendering %s, to update its backlinks"
 msgstr "zpracovávám %s, aby se aktualizovaly zpětné odkazy"
 
-#: ../IkiWiki/Render.pm:494
+#: ../IkiWiki/Render.pm:498
 #, perl-format
 msgid "removing %s, no longer rendered by %s"
 msgstr "odstraňuji %s, již není zpracovávána %s"
 
-#: ../IkiWiki/Render.pm:518
+#: ../IkiWiki/Render.pm:522
 #, perl-format
 msgid "ikiwiki: cannot render %s"
 msgstr "ikiwiki: nelze zpracovat %s"
@@ -871,19 +889,19 @@ msgstr "%s byl úspěšně vytvořen"
 msgid "usage: ikiwiki [options] source dest"
 msgstr "použití: ikiwiki [volby] zdroj cíl"
 
-#: ../ikiwiki.in:83
+#: ../ikiwiki.in:89
 msgid "usage: --set var=value"
 msgstr ""
 
-#: ../ikiwiki.in:129
+#: ../ikiwiki.in:135
 msgid "generating wrappers.."
 msgstr "generuji obaly..."
 
-#: ../ikiwiki.in:182
+#: ../ikiwiki.in:186
 msgid "rebuilding wiki.."
 msgstr "znovu vytvářím wiki..."
 
-#: ../ikiwiki.in:185
+#: ../ikiwiki.in:189
 msgid "refreshing wiki.."
 msgstr "obnovuji wiki..."
 
index c7b03621c3443e4eb33952431568d4c08a8aa010..c5bfc30c988c063788fb7266086e0bfc618274db 100644 (file)
--- a/po/da.po
+++ b/po/da.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: ikiwiki\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-09-11 18:52-0400\n"
+"POT-Creation-Date: 2008-09-24 17:55-0400\n"
 "PO-Revision-Date: 2008-08-11 01:04+0200\n"
 "Last-Translator: Jonas Smedegaard <dr@jones.dk>\n"
 "Language-Team: None\n"
@@ -27,7 +27,7 @@ msgstr "Du skal først logge på."
 msgid "login failed, perhaps you need to turn on cookies?"
 msgstr "Pålogning mislykkedes, måske skal du tillade infokager (cookies)?"
 
-#: ../IkiWiki/CGI.pm:163 ../IkiWiki/Plugin/editpage.pm:310
+#: ../IkiWiki/CGI.pm:163 ../IkiWiki/Plugin/editpage.pm:311
 msgid "Your login session has expired."
 msgstr "Din kørsel (login session) er udløbet"
 
@@ -123,7 +123,7 @@ msgstr "(fødningselementer omgået (escaped))"
 msgid "feed crashed XML::Feed!"
 msgstr "fødning fik XML::Feed til at bryde sammen!"
 
-#: ../IkiWiki/Plugin/aggregate.pm:584
+#: ../IkiWiki/Plugin/aggregate.pm:590
 #, perl-format
 msgid "creating new page %s"
 msgstr "opretter ny side %s"
@@ -132,7 +132,7 @@ msgstr "opretter ny side %s"
 msgid "deleting bucket.."
 msgstr "sletter bundt.."
 
-#: ../IkiWiki/Plugin/amazon_s3.pm:38 ../ikiwiki.in:193
+#: ../IkiWiki/Plugin/amazon_s3.pm:38 ../ikiwiki.in:197
 msgid "done"
 msgstr "færdig"
 
@@ -174,8 +174,8 @@ msgstr "vedhæftningsoplægning"
 msgid "automatic index generation"
 msgstr "automatisk indeks-dannelse"
 
-#: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:221
-#: ../IkiWiki/Plugin/inline.pm:317 ../IkiWiki/Plugin/opendiscussion.pm:26
+#: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:222
+#: ../IkiWiki/Plugin/inline.pm:323 ../IkiWiki/Plugin/opendiscussion.pm:26
 #: ../IkiWiki/Plugin/orphans.pm:37 ../IkiWiki/Render.pm:79
 #: ../IkiWiki/Render.pm:149
 msgid "discussion"
@@ -206,19 +206,19 @@ msgstr "ingen tekst blev kopieret i denne side"
 msgid "no text was copied in this page with id %s"
 msgstr "ingen tekst blev kopieret i denne side med id %s"
 
-#: ../IkiWiki/Plugin/editpage.pm:110
+#: ../IkiWiki/Plugin/editpage.pm:111
 #, perl-format
 msgid "%s is not an editable page"
 msgstr "%s er ikke en redigérbar side"
 
-#: ../IkiWiki/Plugin/editpage.pm:277
+#: ../IkiWiki/Plugin/editpage.pm:278
 #, perl-format
 msgid "creating %s"
 msgstr "opretter %s"
 
-#: ../IkiWiki/Plugin/editpage.pm:295 ../IkiWiki/Plugin/editpage.pm:323
-#: ../IkiWiki/Plugin/editpage.pm:333 ../IkiWiki/Plugin/editpage.pm:368
-#: ../IkiWiki/Plugin/editpage.pm:413
+#: ../IkiWiki/Plugin/editpage.pm:296 ../IkiWiki/Plugin/editpage.pm:324
+#: ../IkiWiki/Plugin/editpage.pm:334 ../IkiWiki/Plugin/editpage.pm:369
+#: ../IkiWiki/Plugin/editpage.pm:414
 #, perl-format
 msgid "editing %s"
 msgstr "redigerer %s"
@@ -231,12 +231,12 @@ msgstr "skabelon %s ikke angivet"
 msgid "match not specified"
 msgstr "sammenligning ikke angivet"
 
-#: ../IkiWiki/Plugin/edittemplate.pm:59
+#: ../IkiWiki/Plugin/edittemplate.pm:62
 #, perl-format
 msgid "edittemplate %s registered for %s"
 msgstr "redigeringsskabelon %s registreret for %s"
 
-#: ../IkiWiki/Plugin/edittemplate.pm:125
+#: ../IkiWiki/Plugin/edittemplate.pm:133
 msgid "failed to process"
 msgstr "dannelsen mislykkedes"
 
@@ -299,20 +299,20 @@ msgstr "mangler pages-parametren"
 msgid "unknown sort type %s"
 msgstr "ukendt sorteringsform %s"
 
-#: ../IkiWiki/Plugin/inline.pm:276
+#: ../IkiWiki/Plugin/inline.pm:282
 msgid "Add a new post titled:"
 msgstr "Tilføj nyt indlæg med følgende titel:"
 
-#: ../IkiWiki/Plugin/inline.pm:292
+#: ../IkiWiki/Plugin/inline.pm:298
 #, perl-format
 msgid "nonexistant template %s"
 msgstr "ikke-eksisterende skabelon: %s"
 
-#: ../IkiWiki/Plugin/inline.pm:325 ../IkiWiki/Render.pm:83
+#: ../IkiWiki/Plugin/inline.pm:331 ../IkiWiki/Render.pm:83
 msgid "Discussion"
 msgstr "Diskussion"
 
-#: ../IkiWiki/Plugin/inline.pm:562
+#: ../IkiWiki/Plugin/inline.pm:568
 msgid "RPC::XML::Client not found, not pinging"
 msgstr "RPC::XML::Client ikke fundet, pinger ikke"
 
@@ -520,6 +520,15 @@ msgstr "ved midnat"
 msgid "at noon on %A"
 msgstr "midt på dagen %A"
 
+#: ../IkiWiki/Plugin/progress.pm:34
+#, fuzzy, perl-format
+msgid "illegal percent value %s"
+msgstr "ugyldigt navn"
+
+#: ../IkiWiki/Plugin/progress.pm:59
+msgid "need either `percent` or `totalpages` and `donepages` parameters"
+msgstr ""
+
 #: ../IkiWiki/Plugin/recentchanges.pm:99
 msgid "missing page"
 msgstr "manglende side"
@@ -533,77 +542,81 @@ msgstr "Siden %s eksisterer ikke."
 msgid "(Diff truncated)"
 msgstr "(Diff trunkeret)"
 
-#: ../IkiWiki/Plugin/remove.pm:32 ../IkiWiki/Plugin/rename.pm:35
+#: ../IkiWiki/Plugin/remove.pm:31 ../IkiWiki/Plugin/rename.pm:36
 #, perl-format
 msgid "%s does not exist"
 msgstr "%s eksisterer ikke"
 
-#: ../IkiWiki/Plugin/remove.pm:39
+#: ../IkiWiki/Plugin/remove.pm:38
 #, perl-format
 msgid "%s is not in the srcdir, so it cannot be deleted"
 msgstr "%s er ikke i srcdir, så kan ikke blive slettet"
 
-#: ../IkiWiki/Plugin/remove.pm:42 ../IkiWiki/Plugin/rename.pm:44
+#: ../IkiWiki/Plugin/remove.pm:41 ../IkiWiki/Plugin/rename.pm:45
 #, perl-format
 msgid "%s is not a file"
 msgstr "%s er ikke en fil"
 
-#: ../IkiWiki/Plugin/remove.pm:109
+#: ../IkiWiki/Plugin/remove.pm:112
 #, perl-format
 msgid "confirm removal of %s"
 msgstr "bekræft at %s bliver fjernet"
 
-#: ../IkiWiki/Plugin/remove.pm:145
+#: ../IkiWiki/Plugin/remove.pm:148
 msgid "Please select the attachments to remove."
 msgstr "Vælg vedhæftning der skal slettes."
 
-#: ../IkiWiki/Plugin/remove.pm:185
+#: ../IkiWiki/Plugin/remove.pm:188
 msgid "removed"
 msgstr "fjernet"
 
-#: ../IkiWiki/Plugin/rename.pm:41
+#: ../IkiWiki/Plugin/rename.pm:42
 #, perl-format
 msgid "%s is not in the srcdir, so it cannot be renamed"
 msgstr "%s er ikke i srcdir, så kan ikke blive omdøbt"
 
-#: ../IkiWiki/Plugin/rename.pm:56
+#: ../IkiWiki/Plugin/rename.pm:62
 msgid "no change to the file name was specified"
 msgstr "ingen ændring til filnavnet blev angivet"
 
-#: ../IkiWiki/Plugin/rename.pm:62
+#: ../IkiWiki/Plugin/rename.pm:68
 #, perl-format
 msgid "illegal name"
 msgstr "ugyldigt navn"
 
-#: ../IkiWiki/Plugin/rename.pm:67
+#: ../IkiWiki/Plugin/rename.pm:73
 #, perl-format
 msgid "%s already exists"
 msgstr "%s eksisterer allerede"
 
-#: ../IkiWiki/Plugin/rename.pm:73
+#: ../IkiWiki/Plugin/rename.pm:79
 #, perl-format
 msgid "%s already exists on disk"
 msgstr "%s eksisterer allerede på disken"
 
-#: ../IkiWiki/Plugin/rename.pm:95
+#: ../IkiWiki/Plugin/rename.pm:101
 #, perl-format
 msgid "rename %s"
 msgstr "omdøb %s"
 
-#: ../IkiWiki/Plugin/rename.pm:206
+#: ../IkiWiki/Plugin/rename.pm:138
+msgid "Also rename SubPages and attachments"
+msgstr ""
+
+#: ../IkiWiki/Plugin/rename.pm:223
 msgid "Only one attachment can be renamed at a time."
 msgstr "Kun en vedhæftning kan blive omdøbt ad gangen."
 
-#: ../IkiWiki/Plugin/rename.pm:209
+#: ../IkiWiki/Plugin/rename.pm:226
 msgid "Please select the attachment to rename."
 msgstr "Vælg vedhæftningen som skal omdøbes."
 
-#: ../IkiWiki/Plugin/rename.pm:277
+#: ../IkiWiki/Plugin/rename.pm:332
 #, perl-format
 msgid "rename %s to %s"
 msgstr "omdøb %s til %s"
 
-#: ../IkiWiki/Plugin/rename.pm:306
+#: ../IkiWiki/Plugin/rename.pm:484
 #, perl-format
 msgid "update for rename of %s to %s"
 msgstr "opdatering til omdøbning af %s til %s"
@@ -762,47 +775,52 @@ msgstr ""
 msgid "<p class=\"error\">Error: %s exited nonzero (%s)"
 msgstr ""
 
-#: ../IkiWiki/Render.pm:277 ../IkiWiki/Render.pm:298
+#: ../IkiWiki/Render.pm:277 ../IkiWiki/Render.pm:302
 #, perl-format
 msgid "skipping bad filename %s"
 msgstr "udelader forkert filnavn %s"
 
-#: ../IkiWiki/Render.pm:356
+#: ../IkiWiki/Render.pm:284
+#, perl-format
+msgid "%s has multiple possible source pages"
+msgstr ""
+
+#: ../IkiWiki/Render.pm:360
 #, perl-format
 msgid "removing old page %s"
 msgstr "fjerner gammel side %s"
 
-#: ../IkiWiki/Render.pm:396
+#: ../IkiWiki/Render.pm:400
 #, perl-format
 msgid "scanning %s"
 msgstr "gennemlæser %s"
 
-#: ../IkiWiki/Render.pm:401
+#: ../IkiWiki/Render.pm:405
 #, perl-format
 msgid "rendering %s"
 msgstr "danner %s"
 
-#: ../IkiWiki/Render.pm:422
+#: ../IkiWiki/Render.pm:426
 #, perl-format
 msgid "rendering %s, which links to %s"
 msgstr "danner %s, som henviser til %s"
 
-#: ../IkiWiki/Render.pm:443
+#: ../IkiWiki/Render.pm:447
 #, perl-format
 msgid "rendering %s, which depends on %s"
 msgstr "danner %s, som afhænger af %s"
 
-#: ../IkiWiki/Render.pm:482
+#: ../IkiWiki/Render.pm:486
 #, perl-format
 msgid "rendering %s, to update its backlinks"
 msgstr "danner %s, for at opdatere dens krydshenvisninger (backlinks)"
 
-#: ../IkiWiki/Render.pm:494
+#: ../IkiWiki/Render.pm:498
 #, perl-format
 msgid "removing %s, no longer rendered by %s"
 msgstr "fjerner %s, ikke længere dannet af %s"
 
-#: ../IkiWiki/Render.pm:518
+#: ../IkiWiki/Render.pm:522
 #, perl-format
 msgid "ikiwiki: cannot render %s"
 msgstr "ikiwiki: kan ikke danne %s"
@@ -863,19 +881,19 @@ msgstr "Korrekt bygget %s"
 msgid "usage: ikiwiki [options] source dest"
 msgstr "brug: ikiwiki [valg] kilde mål"
 
-#: ../ikiwiki.in:83
+#: ../ikiwiki.in:89
 msgid "usage: --set var=value"
 msgstr "brug: --set var=værdi"
 
-#: ../ikiwiki.in:129
+#: ../ikiwiki.in:135
 msgid "generating wrappers.."
 msgstr "bygger wrappers.."
 
-#: ../ikiwiki.in:182
+#: ../ikiwiki.in:186
 msgid "rebuilding wiki.."
 msgstr "genopbygger wiki..."
 
-#: ../ikiwiki.in:185
+#: ../ikiwiki.in:189
 msgid "refreshing wiki.."
 msgstr "genopfrisker wiki..."
 
index 88025f01d2a39ed2fbcff4337332e6c7228731df..e0ffffa377dd6728fc592c5651b0749ba872d105 100644 (file)
--- a/po/de.po
+++ b/po/de.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: ikiwiki 2.40\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-09-11 18:52-0400\n"
+"POT-Creation-Date: 2008-09-24 17:55-0400\n"
 "PO-Revision-Date: 2008-03-03 21:22+0100\n"
 "Last-Translator: Kai Wasserbäch <debian@carbon-project.org>\n"
 "Language-Team: German <debian-l10n-german@lists.debian.org>\n"
@@ -23,7 +23,7 @@ msgid "login failed, perhaps you need to turn on cookies?"
 msgstr ""
 "Anmeldung fehlgeschlagen, möglicherweise müssen Sie zuvor Cookies aktivieren?"
 
-#: ../IkiWiki/CGI.pm:163 ../IkiWiki/Plugin/editpage.pm:310
+#: ../IkiWiki/CGI.pm:163 ../IkiWiki/Plugin/editpage.pm:311
 msgid "Your login session has expired."
 msgstr ""
 
@@ -119,7 +119,7 @@ msgstr "(Feedentitäten maskiert)"
 msgid "feed crashed XML::Feed!"
 msgstr "Feed führte zum Absturz von XML::Feed!"
 
-#: ../IkiWiki/Plugin/aggregate.pm:584
+#: ../IkiWiki/Plugin/aggregate.pm:590
 #, perl-format
 msgid "creating new page %s"
 msgstr "erstelle neue Seite %s"
@@ -128,7 +128,7 @@ msgstr "erstelle neue Seite %s"
 msgid "deleting bucket.."
 msgstr ""
 
-#: ../IkiWiki/Plugin/amazon_s3.pm:38 ../ikiwiki.in:193
+#: ../IkiWiki/Plugin/amazon_s3.pm:38 ../ikiwiki.in:197
 msgid "done"
 msgstr "fertig"
 
@@ -172,8 +172,8 @@ msgstr ""
 msgid "automatic index generation"
 msgstr ""
 
-#: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:221
-#: ../IkiWiki/Plugin/inline.pm:317 ../IkiWiki/Plugin/opendiscussion.pm:26
+#: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:222
+#: ../IkiWiki/Plugin/inline.pm:323 ../IkiWiki/Plugin/opendiscussion.pm:26
 #: ../IkiWiki/Plugin/orphans.pm:37 ../IkiWiki/Render.pm:79
 #: ../IkiWiki/Render.pm:149
 msgid "discussion"
@@ -204,19 +204,19 @@ msgstr ""
 msgid "no text was copied in this page with id %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/editpage.pm:110
+#: ../IkiWiki/Plugin/editpage.pm:111
 #, perl-format
 msgid "%s is not an editable page"
 msgstr "%s ist keine bearbeitbare Seite"
 
-#: ../IkiWiki/Plugin/editpage.pm:277
+#: ../IkiWiki/Plugin/editpage.pm:278
 #, perl-format
 msgid "creating %s"
 msgstr "erstelle %s"
 
-#: ../IkiWiki/Plugin/editpage.pm:295 ../IkiWiki/Plugin/editpage.pm:323
-#: ../IkiWiki/Plugin/editpage.pm:333 ../IkiWiki/Plugin/editpage.pm:368
-#: ../IkiWiki/Plugin/editpage.pm:413
+#: ../IkiWiki/Plugin/editpage.pm:296 ../IkiWiki/Plugin/editpage.pm:324
+#: ../IkiWiki/Plugin/editpage.pm:334 ../IkiWiki/Plugin/editpage.pm:369
+#: ../IkiWiki/Plugin/editpage.pm:414
 #, perl-format
 msgid "editing %s"
 msgstr "bearbeite %s"
@@ -229,12 +229,12 @@ msgstr "Vorlage nicht angegeben"
 msgid "match not specified"
 msgstr "Übereinstimmung nicht angegeben"
 
-#: ../IkiWiki/Plugin/edittemplate.pm:59
+#: ../IkiWiki/Plugin/edittemplate.pm:62
 #, perl-format
 msgid "edittemplate %s registered for %s"
 msgstr "»edittemplate« %s registriert für %s"
 
-#: ../IkiWiki/Plugin/edittemplate.pm:125
+#: ../IkiWiki/Plugin/edittemplate.pm:133
 msgid "failed to process"
 msgstr "Bearbeitung fehlgeschlagen"
 
@@ -301,20 +301,20 @@ msgstr "Parameter %s fehlt"
 msgid "unknown sort type %s"
 msgstr "Unbekannter Sortierungstyp %s"
 
-#: ../IkiWiki/Plugin/inline.pm:276
+#: ../IkiWiki/Plugin/inline.pm:282
 msgid "Add a new post titled:"
 msgstr "Füge einen neuen Beitrag hinzu. Titel:"
 
-#: ../IkiWiki/Plugin/inline.pm:292
+#: ../IkiWiki/Plugin/inline.pm:298
 #, perl-format
 msgid "nonexistant template %s"
 msgstr "nicht-vorhandene Vorlage %s"
 
-#: ../IkiWiki/Plugin/inline.pm:325 ../IkiWiki/Render.pm:83
+#: ../IkiWiki/Plugin/inline.pm:331 ../IkiWiki/Render.pm:83
 msgid "Discussion"
 msgstr "Diskussion"
 
-#: ../IkiWiki/Plugin/inline.pm:562
+#: ../IkiWiki/Plugin/inline.pm:568
 msgid "RPC::XML::Client not found, not pinging"
 msgstr "RPC::XML::Client nicht gefunden, pinge nicht"
 
@@ -522,6 +522,15 @@ msgstr "um Mitternacht"
 msgid "at noon on %A"
 msgstr "am Nachmittag des %A"
 
+#: ../IkiWiki/Plugin/progress.pm:34
+#, perl-format
+msgid "illegal percent value %s"
+msgstr ""
+
+#: ../IkiWiki/Plugin/progress.pm:59
+msgid "need either `percent` or `totalpages` and `donepages` parameters"
+msgstr ""
+
 #: ../IkiWiki/Plugin/recentchanges.pm:99
 msgid "missing page"
 msgstr "fehlende Seite"
@@ -535,78 +544,82 @@ msgstr "Die Seite %s exisitiert nicht."
 msgid "(Diff truncated)"
 msgstr ""
 
-#: ../IkiWiki/Plugin/remove.pm:32 ../IkiWiki/Plugin/rename.pm:35
+#: ../IkiWiki/Plugin/remove.pm:31 ../IkiWiki/Plugin/rename.pm:36
 #, fuzzy, perl-format
 msgid "%s does not exist"
 msgstr "Die Seite %s exisitiert nicht."
 
-#: ../IkiWiki/Plugin/remove.pm:39
+#: ../IkiWiki/Plugin/remove.pm:38
 #, fuzzy, perl-format
 msgid "%s is not in the srcdir, so it cannot be deleted"
 msgstr "%s wurde von %s gesperrt und kann nicht bearbeitet werden"
 
-#: ../IkiWiki/Plugin/remove.pm:42 ../IkiWiki/Plugin/rename.pm:44
+#: ../IkiWiki/Plugin/remove.pm:41 ../IkiWiki/Plugin/rename.pm:45
 #, fuzzy, perl-format
 msgid "%s is not a file"
 msgstr "%s ist keine bearbeitbare Seite"
 
-#: ../IkiWiki/Plugin/remove.pm:109
+#: ../IkiWiki/Plugin/remove.pm:112
 #, perl-format
 msgid "confirm removal of %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/remove.pm:145
+#: ../IkiWiki/Plugin/remove.pm:148
 msgid "Please select the attachments to remove."
 msgstr ""
 
-#: ../IkiWiki/Plugin/remove.pm:185
+#: ../IkiWiki/Plugin/remove.pm:188
 msgid "removed"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:41
+#: ../IkiWiki/Plugin/rename.pm:42
 #, perl-format
 msgid "%s is not in the srcdir, so it cannot be renamed"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:56
+#: ../IkiWiki/Plugin/rename.pm:62
 #, fuzzy
 msgid "no change to the file name was specified"
 msgstr "Dateiname des Wrappers nicht angegeben"
 
-#: ../IkiWiki/Plugin/rename.pm:62
+#: ../IkiWiki/Plugin/rename.pm:68
 #, perl-format
 msgid "illegal name"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:67
+#: ../IkiWiki/Plugin/rename.pm:73
 #, perl-format
 msgid "%s already exists"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:73
+#: ../IkiWiki/Plugin/rename.pm:79
 #, perl-format
 msgid "%s already exists on disk"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:95
+#: ../IkiWiki/Plugin/rename.pm:101
 #, fuzzy, perl-format
 msgid "rename %s"
 msgstr "erzeuge %s"
 
-#: ../IkiWiki/Plugin/rename.pm:206
+#: ../IkiWiki/Plugin/rename.pm:138
+msgid "Also rename SubPages and attachments"
+msgstr ""
+
+#: ../IkiWiki/Plugin/rename.pm:223
 msgid "Only one attachment can be renamed at a time."
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:209
+#: ../IkiWiki/Plugin/rename.pm:226
 msgid "Please select the attachment to rename."
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:277
+#: ../IkiWiki/Plugin/rename.pm:332
 #, perl-format
 msgid "rename %s to %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:306
+#: ../IkiWiki/Plugin/rename.pm:484
 #, perl-format
 msgid "update for rename of %s to %s"
 msgstr ""
@@ -765,47 +778,52 @@ msgstr ""
 msgid "<p class=\"error\">Error: %s exited nonzero (%s)"
 msgstr ""
 
-#: ../IkiWiki/Render.pm:277 ../IkiWiki/Render.pm:298
+#: ../IkiWiki/Render.pm:277 ../IkiWiki/Render.pm:302
 #, perl-format
 msgid "skipping bad filename %s"
 msgstr "überspringe fehlerhaften Dateinamen %s"
 
-#: ../IkiWiki/Render.pm:356
+#: ../IkiWiki/Render.pm:284
+#, perl-format
+msgid "%s has multiple possible source pages"
+msgstr ""
+
+#: ../IkiWiki/Render.pm:360
 #, perl-format
 msgid "removing old page %s"
 msgstr "entferne alte Seite %s"
 
-#: ../IkiWiki/Render.pm:396
+#: ../IkiWiki/Render.pm:400
 #, perl-format
 msgid "scanning %s"
 msgstr "durchsuche %s"
 
-#: ../IkiWiki/Render.pm:401
+#: ../IkiWiki/Render.pm:405
 #, perl-format
 msgid "rendering %s"
 msgstr "erzeuge %s"
 
-#: ../IkiWiki/Render.pm:422
+#: ../IkiWiki/Render.pm:426
 #, perl-format
 msgid "rendering %s, which links to %s"
 msgstr "erzeuge %s, was auf %s verweist"
 
-#: ../IkiWiki/Render.pm:443
+#: ../IkiWiki/Render.pm:447
 #, perl-format
 msgid "rendering %s, which depends on %s"
 msgstr "erzeuge %s, das von %s abhängt"
 
-#: ../IkiWiki/Render.pm:482
+#: ../IkiWiki/Render.pm:486
 #, perl-format
 msgid "rendering %s, to update its backlinks"
 msgstr "erzeuge %s, um dessen Rücklinks zu aktualisieren"
 
-#: ../IkiWiki/Render.pm:494
+#: ../IkiWiki/Render.pm:498
 #, perl-format
 msgid "removing %s, no longer rendered by %s"
 msgstr "entferne %s, wird nicht länger von %s erzeugt"
 
-#: ../IkiWiki/Render.pm:518
+#: ../IkiWiki/Render.pm:522
 #, perl-format
 msgid "ikiwiki: cannot render %s"
 msgstr "ikiwiki: kann %s nicht erzeugen"
@@ -866,19 +884,19 @@ msgstr "%s wurde erfolgreich erstellt"
 msgid "usage: ikiwiki [options] source dest"
 msgstr "Benutzung: ikiwiki [Optionen] Quelle Ziel"
 
-#: ../ikiwiki.in:83
+#: ../ikiwiki.in:89
 msgid "usage: --set var=value"
 msgstr "Benutzung: --set Variable=Wert"
 
-#: ../ikiwiki.in:129
+#: ../ikiwiki.in:135
 msgid "generating wrappers.."
 msgstr "erzeuge Wrapper.."
 
-#: ../ikiwiki.in:182
+#: ../ikiwiki.in:186
 msgid "rebuilding wiki.."
 msgstr "erzeuge Wiki neu.."
 
-#: ../ikiwiki.in:185
+#: ../ikiwiki.in:189
 msgid "refreshing wiki.."
 msgstr "aktualisiere Wiki.."
 
index bcc83033a1d5d0e6d9b5a212e0a64b3b3f60a5da..4033a5ee9c67f97c8dd842ee90e2942987327e55 100644 (file)
--- a/po/es.po
+++ b/po/es.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: es\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-09-11 18:52-0400\n"
+"POT-Creation-Date: 2008-09-24 17:55-0400\n"
 "PO-Revision-Date: 2008-03-06 11:07+0100\n"
 "Last-Translator: Víctor Moral <victor@taquiones.net>\n"
 "Language-Team: Spanish <es@li.org>\n"
@@ -24,7 +24,7 @@ msgid "login failed, perhaps you need to turn on cookies?"
 msgstr ""
 "registro fallido, ¿ tal vez necesita activar las cookies en el navegador ?"
 
-#: ../IkiWiki/CGI.pm:163 ../IkiWiki/Plugin/editpage.pm:310
+#: ../IkiWiki/CGI.pm:163 ../IkiWiki/Plugin/editpage.pm:311
 msgid "Your login session has expired."
 msgstr ""
 
@@ -120,7 +120,7 @@ msgstr "(los caracteres especiales de la fuente de datos están exceptuados)"
 msgid "feed crashed XML::Feed!"
 msgstr "¡ la fuente de datos ha provocado un error fatal en XML::Feed !"
 
-#: ../IkiWiki/Plugin/aggregate.pm:584
+#: ../IkiWiki/Plugin/aggregate.pm:590
 #, perl-format
 msgid "creating new page %s"
 msgstr "creando nueva página %s"
@@ -129,7 +129,7 @@ msgstr "creando nueva página %s"
 msgid "deleting bucket.."
 msgstr ""
 
-#: ../IkiWiki/Plugin/amazon_s3.pm:38 ../ikiwiki.in:193
+#: ../IkiWiki/Plugin/amazon_s3.pm:38 ../ikiwiki.in:197
 msgid "done"
 msgstr "completado"
 
@@ -173,8 +173,8 @@ msgstr ""
 msgid "automatic index generation"
 msgstr ""
 
-#: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:221
-#: ../IkiWiki/Plugin/inline.pm:317 ../IkiWiki/Plugin/opendiscussion.pm:26
+#: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:222
+#: ../IkiWiki/Plugin/inline.pm:323 ../IkiWiki/Plugin/opendiscussion.pm:26
 #: ../IkiWiki/Plugin/orphans.pm:37 ../IkiWiki/Render.pm:79
 #: ../IkiWiki/Render.pm:149
 msgid "discussion"
@@ -205,19 +205,19 @@ msgstr ""
 msgid "no text was copied in this page with id %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/editpage.pm:110
+#: ../IkiWiki/Plugin/editpage.pm:111
 #, perl-format
 msgid "%s is not an editable page"
 msgstr "la página %s no es modificable"
 
-#: ../IkiWiki/Plugin/editpage.pm:277
+#: ../IkiWiki/Plugin/editpage.pm:278
 #, perl-format
 msgid "creating %s"
 msgstr "creando página %s"
 
-#: ../IkiWiki/Plugin/editpage.pm:295 ../IkiWiki/Plugin/editpage.pm:323
-#: ../IkiWiki/Plugin/editpage.pm:333 ../IkiWiki/Plugin/editpage.pm:368
-#: ../IkiWiki/Plugin/editpage.pm:413
+#: ../IkiWiki/Plugin/editpage.pm:296 ../IkiWiki/Plugin/editpage.pm:324
+#: ../IkiWiki/Plugin/editpage.pm:334 ../IkiWiki/Plugin/editpage.pm:369
+#: ../IkiWiki/Plugin/editpage.pm:414
 #, perl-format
 msgid "editing %s"
 msgstr "modificando página %s"
@@ -230,12 +230,12 @@ msgstr "falta indicar la plantilla (template)"
 msgid "match not specified"
 msgstr "falta indicar la coincidencia de páginas (match)"
 
-#: ../IkiWiki/Plugin/edittemplate.pm:59
+#: ../IkiWiki/Plugin/edittemplate.pm:62
 #, perl-format
 msgid "edittemplate %s registered for %s"
 msgstr "plantilla de edición %s registrada para %s"
 
-#: ../IkiWiki/Plugin/edittemplate.pm:125
+#: ../IkiWiki/Plugin/edittemplate.pm:133
 msgid "failed to process"
 msgstr "fallo en el proceso"
 
@@ -303,20 +303,20 @@ msgstr "falta el parámetro %s"
 msgid "unknown sort type %s"
 msgstr "no conozco este tipo de ordenación %s"
 
-#: ../IkiWiki/Plugin/inline.pm:276
+#: ../IkiWiki/Plugin/inline.pm:282
 msgid "Add a new post titled:"
 msgstr "Añadir una entrada nueva titulada:"
 
-#: ../IkiWiki/Plugin/inline.pm:292
+#: ../IkiWiki/Plugin/inline.pm:298
 #, perl-format
 msgid "nonexistant template %s"
 msgstr "la plantilla %s no existe "
 
-#: ../IkiWiki/Plugin/inline.pm:325 ../IkiWiki/Render.pm:83
+#: ../IkiWiki/Plugin/inline.pm:331 ../IkiWiki/Render.pm:83
 msgid "Discussion"
 msgstr "Comentarios"
 
-#: ../IkiWiki/Plugin/inline.pm:562
+#: ../IkiWiki/Plugin/inline.pm:568
 msgid "RPC::XML::Client not found, not pinging"
 msgstr "No he encontrado el componente RPC::XML::Client, no envío señal alguna"
 
@@ -524,6 +524,15 @@ msgstr "a medianoche"
 msgid "at noon on %A"
 msgstr "el %A a media tarde"
 
+#: ../IkiWiki/Plugin/progress.pm:34
+#, perl-format
+msgid "illegal percent value %s"
+msgstr ""
+
+#: ../IkiWiki/Plugin/progress.pm:59
+msgid "need either `percent` or `totalpages` and `donepages` parameters"
+msgstr ""
+
 #: ../IkiWiki/Plugin/recentchanges.pm:99
 msgid "missing page"
 msgstr "página no encontrada"
@@ -537,78 +546,82 @@ msgstr "No existe la página %s."
 msgid "(Diff truncated)"
 msgstr ""
 
-#: ../IkiWiki/Plugin/remove.pm:32 ../IkiWiki/Plugin/rename.pm:35
+#: ../IkiWiki/Plugin/remove.pm:31 ../IkiWiki/Plugin/rename.pm:36
 #, fuzzy, perl-format
 msgid "%s does not exist"
 msgstr "No existe la página %s."
 
-#: ../IkiWiki/Plugin/remove.pm:39
+#: ../IkiWiki/Plugin/remove.pm:38
 #, fuzzy, perl-format
 msgid "%s is not in the srcdir, so it cannot be deleted"
 msgstr "La página %s está bloqueada por %s y no puede modificarse"
 
-#: ../IkiWiki/Plugin/remove.pm:42 ../IkiWiki/Plugin/rename.pm:44
+#: ../IkiWiki/Plugin/remove.pm:41 ../IkiWiki/Plugin/rename.pm:45
 #, fuzzy, perl-format
 msgid "%s is not a file"
 msgstr "la página %s no es modificable"
 
-#: ../IkiWiki/Plugin/remove.pm:109
+#: ../IkiWiki/Plugin/remove.pm:112
 #, perl-format
 msgid "confirm removal of %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/remove.pm:145
+#: ../IkiWiki/Plugin/remove.pm:148
 msgid "Please select the attachments to remove."
 msgstr ""
 
-#: ../IkiWiki/Plugin/remove.pm:185
+#: ../IkiWiki/Plugin/remove.pm:188
 msgid "removed"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:41
+#: ../IkiWiki/Plugin/rename.pm:42
 #, perl-format
 msgid "%s is not in the srcdir, so it cannot be renamed"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:56
+#: ../IkiWiki/Plugin/rename.pm:62
 #, fuzzy
 msgid "no change to the file name was specified"
 msgstr "el programa envoltorio no ha sido especificado"
 
-#: ../IkiWiki/Plugin/rename.pm:62
+#: ../IkiWiki/Plugin/rename.pm:68
 #, perl-format
 msgid "illegal name"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:67
+#: ../IkiWiki/Plugin/rename.pm:73
 #, perl-format
 msgid "%s already exists"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:73
+#: ../IkiWiki/Plugin/rename.pm:79
 #, perl-format
 msgid "%s already exists on disk"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:95
+#: ../IkiWiki/Plugin/rename.pm:101
 #, fuzzy, perl-format
 msgid "rename %s"
 msgstr "convirtiendo %s"
 
-#: ../IkiWiki/Plugin/rename.pm:206
+#: ../IkiWiki/Plugin/rename.pm:138
+msgid "Also rename SubPages and attachments"
+msgstr ""
+
+#: ../IkiWiki/Plugin/rename.pm:223
 msgid "Only one attachment can be renamed at a time."
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:209
+#: ../IkiWiki/Plugin/rename.pm:226
 msgid "Please select the attachment to rename."
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:277
+#: ../IkiWiki/Plugin/rename.pm:332
 #, perl-format
 msgid "rename %s to %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:306
+#: ../IkiWiki/Plugin/rename.pm:484
 #, fuzzy, perl-format
 msgid "update for rename of %s to %s"
 msgstr "actualizado el wiki %s y la página %s por el usuario %s"
@@ -767,49 +780,54 @@ msgstr ""
 msgid "<p class=\"error\">Error: %s exited nonzero (%s)"
 msgstr ""
 
-#: ../IkiWiki/Render.pm:277 ../IkiWiki/Render.pm:298
+#: ../IkiWiki/Render.pm:277 ../IkiWiki/Render.pm:302
 #, perl-format
 msgid "skipping bad filename %s"
 msgstr "ignorando el archivo %s porque su nombre no es correcto"
 
-#: ../IkiWiki/Render.pm:356
+#: ../IkiWiki/Render.pm:284
+#, perl-format
+msgid "%s has multiple possible source pages"
+msgstr ""
+
+#: ../IkiWiki/Render.pm:360
 #, perl-format
 msgid "removing old page %s"
 msgstr "eliminando la antigua página %s"
 
-#: ../IkiWiki/Render.pm:396
+#: ../IkiWiki/Render.pm:400
 #, perl-format
 msgid "scanning %s"
 msgstr "explorando %s"
 
-#: ../IkiWiki/Render.pm:401
+#: ../IkiWiki/Render.pm:405
 #, perl-format
 msgid "rendering %s"
 msgstr "convirtiendo %s"
 
-#: ../IkiWiki/Render.pm:422
+#: ../IkiWiki/Render.pm:426
 #, perl-format
 msgid "rendering %s, which links to %s"
 msgstr "convirtiendo la página %s, la cual referencia a %s"
 
-#: ../IkiWiki/Render.pm:443
+#: ../IkiWiki/Render.pm:447
 #, perl-format
 msgid "rendering %s, which depends on %s"
 msgstr "convirtiendo la página %s, la cual depende de %s"
 
-#: ../IkiWiki/Render.pm:482
+#: ../IkiWiki/Render.pm:486
 #, perl-format
 msgid "rendering %s, to update its backlinks"
 msgstr ""
 "convirtiendo la página %s para actualizar la lista de páginas que hacen "
 "referencia a ella."
 
-#: ../IkiWiki/Render.pm:494
+#: ../IkiWiki/Render.pm:498
 #, perl-format
 msgid "removing %s, no longer rendered by %s"
 msgstr "eliminando la página %s puesto que ya no se deriva de %s"
 
-#: ../IkiWiki/Render.pm:518
+#: ../IkiWiki/Render.pm:522
 #, perl-format
 msgid "ikiwiki: cannot render %s"
 msgstr "ikwiki: no puedo convertir la página %s"
@@ -871,19 +889,19 @@ msgstr "creado con éxito el programa envoltorio %s"
 msgid "usage: ikiwiki [options] source dest"
 msgstr "uso: ikiwiki [opciones] origen destino"
 
-#: ../ikiwiki.in:83
+#: ../ikiwiki.in:89
 msgid "usage: --set var=value"
 msgstr "uso: --set variable=valor"
 
-#: ../ikiwiki.in:129
+#: ../ikiwiki.in:135
 msgid "generating wrappers.."
 msgstr "generando programas auxiliares.."
 
-#: ../ikiwiki.in:182
+#: ../ikiwiki.in:186
 msgid "rebuilding wiki.."
 msgstr "reconstruyendo el wiki.."
 
-#: ../ikiwiki.in:185
+#: ../ikiwiki.in:189
 msgid "refreshing wiki.."
 msgstr "actualizando el wiki.."
 
index 5189728fddaa65216953d3cb49d1a777a15cd060..8a79cd8d1974eb6dc6163706a74d17a106a2a085 100644 (file)
--- a/po/fr.po
+++ b/po/fr.po
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: \n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-09-11 18:52-0400\n"
+"POT-Creation-Date: 2008-09-24 17:55-0400\n"
 "PO-Revision-Date: 2008-04-29 17:46+0200\n"
 "Last-Translator: Christian Perrier <bubulle@debian.org>\n"
 "Language-Team: French <debian-l10n-french@lists.debian.org>\n"
@@ -27,7 +27,7 @@ msgid "login failed, perhaps you need to turn on cookies?"
 msgstr ""
 "Échec de l'identification, vous devriez peut-être autoriser les cookies."
 
-#: ../IkiWiki/CGI.pm:163 ../IkiWiki/Plugin/editpage.pm:310
+#: ../IkiWiki/CGI.pm:163 ../IkiWiki/Plugin/editpage.pm:311
 msgid "Your login session has expired."
 msgstr "Session d'authentification expirée."
 
@@ -123,7 +123,7 @@ msgstr "(échappement des entités de flux)"
 msgid "feed crashed XML::Feed!"
 msgstr "Plantage du flux XML::Feed !"
 
-#: ../IkiWiki/Plugin/aggregate.pm:584
+#: ../IkiWiki/Plugin/aggregate.pm:590
 #, perl-format
 msgid "creating new page %s"
 msgstr "Création de la nouvelle page %s"
@@ -132,7 +132,7 @@ msgstr "Création de la nouvelle page %s"
 msgid "deleting bucket.."
 msgstr ""
 
-#: ../IkiWiki/Plugin/amazon_s3.pm:38 ../ikiwiki.in:193
+#: ../IkiWiki/Plugin/amazon_s3.pm:38 ../ikiwiki.in:197
 msgid "done"
 msgstr "Terminé"
 
@@ -176,8 +176,8 @@ msgstr ""
 msgid "automatic index generation"
 msgstr ""
 
-#: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:221
-#: ../IkiWiki/Plugin/inline.pm:317 ../IkiWiki/Plugin/opendiscussion.pm:26
+#: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:222
+#: ../IkiWiki/Plugin/inline.pm:323 ../IkiWiki/Plugin/opendiscussion.pm:26
 #: ../IkiWiki/Plugin/orphans.pm:37 ../IkiWiki/Render.pm:79
 #: ../IkiWiki/Render.pm:149
 msgid "discussion"
@@ -208,19 +208,19 @@ msgstr ""
 msgid "no text was copied in this page with id %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/editpage.pm:110
+#: ../IkiWiki/Plugin/editpage.pm:111
 #, perl-format
 msgid "%s is not an editable page"
 msgstr "%s n'est pas une page éditable"
 
-#: ../IkiWiki/Plugin/editpage.pm:277
+#: ../IkiWiki/Plugin/editpage.pm:278
 #, perl-format
 msgid "creating %s"
 msgstr "Création de %s"
 
-#: ../IkiWiki/Plugin/editpage.pm:295 ../IkiWiki/Plugin/editpage.pm:323
-#: ../IkiWiki/Plugin/editpage.pm:333 ../IkiWiki/Plugin/editpage.pm:368
-#: ../IkiWiki/Plugin/editpage.pm:413
+#: ../IkiWiki/Plugin/editpage.pm:296 ../IkiWiki/Plugin/editpage.pm:324
+#: ../IkiWiki/Plugin/editpage.pm:334 ../IkiWiki/Plugin/editpage.pm:369
+#: ../IkiWiki/Plugin/editpage.pm:414
 #, perl-format
 msgid "editing %s"
 msgstr "Édition de %s"
@@ -233,12 +233,12 @@ msgstr "modèle (« template ») non indiqué"
 msgid "match not specified"
 msgstr "correspondance non indiquée"
 
-#: ../IkiWiki/Plugin/edittemplate.pm:59
+#: ../IkiWiki/Plugin/edittemplate.pm:62
 #, perl-format
 msgid "edittemplate %s registered for %s"
 msgstr "edittemplate %s enregistré pour %s"
 
-#: ../IkiWiki/Plugin/edittemplate.pm:125
+#: ../IkiWiki/Plugin/edittemplate.pm:133
 msgid "failed to process"
 msgstr "Échec du traitement"
 
@@ -305,20 +305,20 @@ msgstr "Paramètre %s manquant"
 msgid "unknown sort type %s"
 msgstr "Type de tri %s inconnu"
 
-#: ../IkiWiki/Plugin/inline.pm:276
+#: ../IkiWiki/Plugin/inline.pm:282
 msgid "Add a new post titled:"
 msgstr "Ajouter un nouvel article dont le titre est :"
 
-#: ../IkiWiki/Plugin/inline.pm:292
+#: ../IkiWiki/Plugin/inline.pm:298
 #, perl-format
 msgid "nonexistant template %s"
 msgstr "Le modèle (« template ») %s n'existe pas"
 
-#: ../IkiWiki/Plugin/inline.pm:325 ../IkiWiki/Render.pm:83
+#: ../IkiWiki/Plugin/inline.pm:331 ../IkiWiki/Render.pm:83
 msgid "Discussion"
 msgstr "Discussion"
 
-#: ../IkiWiki/Plugin/inline.pm:562
+#: ../IkiWiki/Plugin/inline.pm:568
 msgid "RPC::XML::Client not found, not pinging"
 msgstr "RPC::XML::Client introuvable, pas de réponse au ping"
 
@@ -526,6 +526,15 @@ msgstr "à minuit"
 msgid "at noon on %A"
 msgstr "%A, à midi"
 
+#: ../IkiWiki/Plugin/progress.pm:34
+#, perl-format
+msgid "illegal percent value %s"
+msgstr ""
+
+#: ../IkiWiki/Plugin/progress.pm:59
+msgid "need either `percent` or `totalpages` and `donepages` parameters"
+msgstr ""
+
 #: ../IkiWiki/Plugin/recentchanges.pm:99
 msgid "missing page"
 msgstr "Page manquante"
@@ -539,78 +548,82 @@ msgstr "La page %s n'existe pas."
 msgid "(Diff truncated)"
 msgstr "(fichier de différences tronqué)"
 
-#: ../IkiWiki/Plugin/remove.pm:32 ../IkiWiki/Plugin/rename.pm:35
+#: ../IkiWiki/Plugin/remove.pm:31 ../IkiWiki/Plugin/rename.pm:36
 #, fuzzy, perl-format
 msgid "%s does not exist"
 msgstr "La page %s n'existe pas."
 
-#: ../IkiWiki/Plugin/remove.pm:39
+#: ../IkiWiki/Plugin/remove.pm:38
 #, fuzzy, perl-format
 msgid "%s is not in the srcdir, so it cannot be deleted"
 msgstr "%s est verrouillé par %s et ne peut être édité"
 
-#: ../IkiWiki/Plugin/remove.pm:42 ../IkiWiki/Plugin/rename.pm:44
+#: ../IkiWiki/Plugin/remove.pm:41 ../IkiWiki/Plugin/rename.pm:45
 #, fuzzy, perl-format
 msgid "%s is not a file"
 msgstr "%s n'est pas une page éditable"
 
-#: ../IkiWiki/Plugin/remove.pm:109
+#: ../IkiWiki/Plugin/remove.pm:112
 #, perl-format
 msgid "confirm removal of %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/remove.pm:145
+#: ../IkiWiki/Plugin/remove.pm:148
 msgid "Please select the attachments to remove."
 msgstr ""
 
-#: ../IkiWiki/Plugin/remove.pm:185
+#: ../IkiWiki/Plugin/remove.pm:188
 msgid "removed"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:41
+#: ../IkiWiki/Plugin/rename.pm:42
 #, perl-format
 msgid "%s is not in the srcdir, so it cannot be renamed"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:56
+#: ../IkiWiki/Plugin/rename.pm:62
 #, fuzzy
 msgid "no change to the file name was specified"
 msgstr "Le nom de fichier de l'enrobage n'a pas été indiqué"
 
-#: ../IkiWiki/Plugin/rename.pm:62
+#: ../IkiWiki/Plugin/rename.pm:68
 #, perl-format
 msgid "illegal name"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:67
+#: ../IkiWiki/Plugin/rename.pm:73
 #, perl-format
 msgid "%s already exists"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:73
+#: ../IkiWiki/Plugin/rename.pm:79
 #, perl-format
 msgid "%s already exists on disk"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:95
+#: ../IkiWiki/Plugin/rename.pm:101
 #, fuzzy, perl-format
 msgid "rename %s"
 msgstr "Affichage de %s"
 
-#: ../IkiWiki/Plugin/rename.pm:206
+#: ../IkiWiki/Plugin/rename.pm:138
+msgid "Also rename SubPages and attachments"
+msgstr ""
+
+#: ../IkiWiki/Plugin/rename.pm:223
 msgid "Only one attachment can be renamed at a time."
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:209
+#: ../IkiWiki/Plugin/rename.pm:226
 msgid "Please select the attachment to rename."
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:277
+#: ../IkiWiki/Plugin/rename.pm:332
 #, perl-format
 msgid "rename %s to %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:306
+#: ../IkiWiki/Plugin/rename.pm:484
 #, perl-format
 msgid "update for rename of %s to %s"
 msgstr ""
@@ -770,47 +783,52 @@ msgstr ""
 msgid "<p class=\"error\">Error: %s exited nonzero (%s)"
 msgstr ""
 
-#: ../IkiWiki/Render.pm:277 ../IkiWiki/Render.pm:298
+#: ../IkiWiki/Render.pm:277 ../IkiWiki/Render.pm:302
 #, perl-format
 msgid "skipping bad filename %s"
 msgstr "Omission du fichier au nom incorrect %s"
 
-#: ../IkiWiki/Render.pm:356
+#: ../IkiWiki/Render.pm:284
+#, perl-format
+msgid "%s has multiple possible source pages"
+msgstr ""
+
+#: ../IkiWiki/Render.pm:360
 #, perl-format
 msgid "removing old page %s"
 msgstr "Suppression de l'ancienne page %s"
 
-#: ../IkiWiki/Render.pm:396
+#: ../IkiWiki/Render.pm:400
 #, perl-format
 msgid "scanning %s"
 msgstr "Parcours de %s"
 
-#: ../IkiWiki/Render.pm:401
+#: ../IkiWiki/Render.pm:405
 #, perl-format
 msgid "rendering %s"
 msgstr "Affichage de %s"
 
-#: ../IkiWiki/Render.pm:422
+#: ../IkiWiki/Render.pm:426
 #, perl-format
 msgid "rendering %s, which links to %s"
 msgstr "Affichage de %s, qui est lié à %s"
 
-#: ../IkiWiki/Render.pm:443
+#: ../IkiWiki/Render.pm:447
 #, perl-format
 msgid "rendering %s, which depends on %s"
 msgstr "Affichage de %s, qui dépend de %s"
 
-#: ../IkiWiki/Render.pm:482
+#: ../IkiWiki/Render.pm:486
 #, perl-format
 msgid "rendering %s, to update its backlinks"
 msgstr "Affichage de %s, afin de mettre à jour ses rétroliens"
 
-#: ../IkiWiki/Render.pm:494
+#: ../IkiWiki/Render.pm:498
 #, perl-format
 msgid "removing %s, no longer rendered by %s"
 msgstr "Suppression de %s, qui n'est plus affiché par %s"
 
-#: ../IkiWiki/Render.pm:518
+#: ../IkiWiki/Render.pm:522
 #, perl-format
 msgid "ikiwiki: cannot render %s"
 msgstr "ikiwiki : impossible d'afficher %s"
@@ -872,19 +890,19 @@ msgstr "%s a été créé avec succès"
 msgid "usage: ikiwiki [options] source dest"
 msgstr "Syntaxe : ikiwiki [options] source destination"
 
-#: ../ikiwiki.in:83
+#: ../ikiwiki.in:89
 msgid "usage: --set var=value"
 msgstr "Syntaxe : -- set var=valeur"
 
-#: ../ikiwiki.in:129
+#: ../ikiwiki.in:135
 msgid "generating wrappers.."
 msgstr "Création des fichiers CGI..."
 
-#: ../ikiwiki.in:182
+#: ../ikiwiki.in:186
 msgid "rebuilding wiki.."
 msgstr "Reconstruction du wiki..."
 
-#: ../ikiwiki.in:185
+#: ../ikiwiki.in:189
 msgid "refreshing wiki.."
 msgstr "Rafraîchissement du wiki..."
 
index f5e2e89e3ffcb2a4b37682da4af7ff020c5f4920..d31bd7cd3aab0862dc5c28c5294ed1ccf2000b49 100644 (file)
--- a/po/gu.po
+++ b/po/gu.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: ikiwiki-gu\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-09-11 18:52-0400\n"
+"POT-Creation-Date: 2008-09-24 17:55-0400\n"
 "PO-Revision-Date: 2007-01-11 16:05+0530\n"
 "Last-Translator: Kartik Mistry <kartik.mistry@gmail.com>\n"
 "Language-Team: Gujarati <team@utkarsh.org>\n"
@@ -23,7 +23,7 @@ msgstr "તમારે પ્રથમ લોગ ઇન થવું પડશ
 msgid "login failed, perhaps you need to turn on cookies?"
 msgstr "પ્રવેશ નિષ્ફળ, કદાચ તમારી કુકીઓ સક્રિય બનાવવી પડશે?"
 
-#: ../IkiWiki/CGI.pm:163 ../IkiWiki/Plugin/editpage.pm:310
+#: ../IkiWiki/CGI.pm:163 ../IkiWiki/Plugin/editpage.pm:311
 msgid "Your login session has expired."
 msgstr ""
 
@@ -120,7 +120,7 @@ msgstr ""
 msgid "feed crashed XML::Feed!"
 msgstr "ફીડ ભાંગી ગયું XML::Feed!"
 
-#: ../IkiWiki/Plugin/aggregate.pm:584
+#: ../IkiWiki/Plugin/aggregate.pm:590
 #, perl-format
 msgid "creating new page %s"
 msgstr "નવું પાનું %s બનાવે છે"
@@ -129,7 +129,7 @@ msgstr "નવું પાનું %s બનાવે છે"
 msgid "deleting bucket.."
 msgstr ""
 
-#: ../IkiWiki/Plugin/amazon_s3.pm:38 ../ikiwiki.in:193
+#: ../IkiWiki/Plugin/amazon_s3.pm:38 ../ikiwiki.in:197
 msgid "done"
 msgstr "સંપૂર્ણ"
 
@@ -173,8 +173,8 @@ msgstr ""
 msgid "automatic index generation"
 msgstr ""
 
-#: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:221
-#: ../IkiWiki/Plugin/inline.pm:317 ../IkiWiki/Plugin/opendiscussion.pm:26
+#: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:222
+#: ../IkiWiki/Plugin/inline.pm:323 ../IkiWiki/Plugin/opendiscussion.pm:26
 #: ../IkiWiki/Plugin/orphans.pm:37 ../IkiWiki/Render.pm:79
 #: ../IkiWiki/Render.pm:149
 msgid "discussion"
@@ -205,19 +205,19 @@ msgstr ""
 msgid "no text was copied in this page with id %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/editpage.pm:110
+#: ../IkiWiki/Plugin/editpage.pm:111
 #, perl-format
 msgid "%s is not an editable page"
 msgstr "%s એ સુધારી શકાય તેવું પાનું નથી"
 
-#: ../IkiWiki/Plugin/editpage.pm:277
+#: ../IkiWiki/Plugin/editpage.pm:278
 #, perl-format
 msgid "creating %s"
 msgstr "%s બનાવે છે"
 
-#: ../IkiWiki/Plugin/editpage.pm:295 ../IkiWiki/Plugin/editpage.pm:323
-#: ../IkiWiki/Plugin/editpage.pm:333 ../IkiWiki/Plugin/editpage.pm:368
-#: ../IkiWiki/Plugin/editpage.pm:413
+#: ../IkiWiki/Plugin/editpage.pm:296 ../IkiWiki/Plugin/editpage.pm:324
+#: ../IkiWiki/Plugin/editpage.pm:334 ../IkiWiki/Plugin/editpage.pm:369
+#: ../IkiWiki/Plugin/editpage.pm:414
 #, perl-format
 msgid "editing %s"
 msgstr "%s સુધારે છે"
@@ -232,12 +232,12 @@ msgstr "ટેમ્પલેટ %s મળ્યું નહી"
 msgid "match not specified"
 msgstr "આવરણ ફાઇલનામ સ્પષ્ટ કરેલ નથી"
 
-#: ../IkiWiki/Plugin/edittemplate.pm:59
+#: ../IkiWiki/Plugin/edittemplate.pm:62
 #, perl-format
 msgid "edittemplate %s registered for %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/edittemplate.pm:125
+#: ../IkiWiki/Plugin/edittemplate.pm:133
 #, fuzzy
 msgid "failed to process"
 msgstr "ક્રિયા કરવામાં નિષ્ફળ:"
@@ -303,20 +303,20 @@ msgstr "ખોવાયેલ %s વિકલ્પ"
 msgid "unknown sort type %s"
 msgstr "અજાણ્યો ગોઠવણી પ્રકાર %s"
 
-#: ../IkiWiki/Plugin/inline.pm:276
+#: ../IkiWiki/Plugin/inline.pm:282
 msgid "Add a new post titled:"
 msgstr "આ શિર્ષકથી નવું પોસ્ટ ઉમેરો:"
 
-#: ../IkiWiki/Plugin/inline.pm:292
+#: ../IkiWiki/Plugin/inline.pm:298
 #, perl-format
 msgid "nonexistant template %s"
 msgstr "અસ્તિત્વમાં ન હોય તેવું ટેમ્પલેટ %s"
 
-#: ../IkiWiki/Plugin/inline.pm:325 ../IkiWiki/Render.pm:83
+#: ../IkiWiki/Plugin/inline.pm:331 ../IkiWiki/Render.pm:83
 msgid "Discussion"
 msgstr "ચર્ચા"
 
-#: ../IkiWiki/Plugin/inline.pm:562
+#: ../IkiWiki/Plugin/inline.pm:568
 msgid "RPC::XML::Client not found, not pinging"
 msgstr "RPC::XML::Client મળ્યું નહી, પિંગ કરવામાં આવતું નથી"
 
@@ -525,6 +525,15 @@ msgstr "મધ્યરાત્રે"
 msgid "at noon on %A"
 msgstr "બપોરે %A પર"
 
+#: ../IkiWiki/Plugin/progress.pm:34
+#, perl-format
+msgid "illegal percent value %s"
+msgstr ""
+
+#: ../IkiWiki/Plugin/progress.pm:59
+msgid "need either `percent` or `totalpages` and `donepages` parameters"
+msgstr ""
+
 #: ../IkiWiki/Plugin/recentchanges.pm:99
 #, fuzzy
 msgid "missing page"
@@ -539,78 +548,82 @@ msgstr ""
 msgid "(Diff truncated)"
 msgstr ""
 
-#: ../IkiWiki/Plugin/remove.pm:32 ../IkiWiki/Plugin/rename.pm:35
+#: ../IkiWiki/Plugin/remove.pm:31 ../IkiWiki/Plugin/rename.pm:36
 #, perl-format
 msgid "%s does not exist"
 msgstr ""
 
-#: ../IkiWiki/Plugin/remove.pm:39
+#: ../IkiWiki/Plugin/remove.pm:38
 #, fuzzy, perl-format
 msgid "%s is not in the srcdir, so it cannot be deleted"
 msgstr "%s એ %s દ્વારા તાળું મરાયેલ છે અને તેમાં સુધારો કરી શકાશે નહી"
 
-#: ../IkiWiki/Plugin/remove.pm:42 ../IkiWiki/Plugin/rename.pm:44
+#: ../IkiWiki/Plugin/remove.pm:41 ../IkiWiki/Plugin/rename.pm:45
 #, fuzzy, perl-format
 msgid "%s is not a file"
 msgstr "%s એ સુધારી શકાય તેવું પાનું નથી"
 
-#: ../IkiWiki/Plugin/remove.pm:109
+#: ../IkiWiki/Plugin/remove.pm:112
 #, perl-format
 msgid "confirm removal of %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/remove.pm:145
+#: ../IkiWiki/Plugin/remove.pm:148
 msgid "Please select the attachments to remove."
 msgstr ""
 
-#: ../IkiWiki/Plugin/remove.pm:185
+#: ../IkiWiki/Plugin/remove.pm:188
 msgid "removed"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:41
+#: ../IkiWiki/Plugin/rename.pm:42
 #, perl-format
 msgid "%s is not in the srcdir, so it cannot be renamed"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:56
+#: ../IkiWiki/Plugin/rename.pm:62
 #, fuzzy
 msgid "no change to the file name was specified"
 msgstr "આવરણ ફાઇલનામ સ્પષ્ટ કરેલ નથી"
 
-#: ../IkiWiki/Plugin/rename.pm:62
+#: ../IkiWiki/Plugin/rename.pm:68
 #, perl-format
 msgid "illegal name"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:67
+#: ../IkiWiki/Plugin/rename.pm:73
 #, perl-format
 msgid "%s already exists"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:73
+#: ../IkiWiki/Plugin/rename.pm:79
 #, perl-format
 msgid "%s already exists on disk"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:95
+#: ../IkiWiki/Plugin/rename.pm:101
 #, fuzzy, perl-format
 msgid "rename %s"
 msgstr "રેન્ડર કરે છે %s"
 
-#: ../IkiWiki/Plugin/rename.pm:206
+#: ../IkiWiki/Plugin/rename.pm:138
+msgid "Also rename SubPages and attachments"
+msgstr ""
+
+#: ../IkiWiki/Plugin/rename.pm:223
 msgid "Only one attachment can be renamed at a time."
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:209
+#: ../IkiWiki/Plugin/rename.pm:226
 msgid "Please select the attachment to rename."
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:277
+#: ../IkiWiki/Plugin/rename.pm:332
 #, perl-format
 msgid "rename %s to %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:306
+#: ../IkiWiki/Plugin/rename.pm:484
 #, fuzzy, perl-format
 msgid "update for rename of %s to %s"
 msgstr "%s નો સુધારો %s નાં %s વડે"
@@ -770,47 +783,52 @@ msgstr ""
 msgid "<p class=\"error\">Error: %s exited nonzero (%s)"
 msgstr ""
 
-#: ../IkiWiki/Render.pm:277 ../IkiWiki/Render.pm:298
+#: ../IkiWiki/Render.pm:277 ../IkiWiki/Render.pm:302
 #, perl-format
 msgid "skipping bad filename %s"
 msgstr "ખરાબ ફાઇલ નામ છોડી દે છે %s"
 
-#: ../IkiWiki/Render.pm:356
+#: ../IkiWiki/Render.pm:284
+#, perl-format
+msgid "%s has multiple possible source pages"
+msgstr ""
+
+#: ../IkiWiki/Render.pm:360
 #, perl-format
 msgid "removing old page %s"
 msgstr "જુનાં પાનાં દૂર કરે છે %s"
 
-#: ../IkiWiki/Render.pm:396
+#: ../IkiWiki/Render.pm:400
 #, perl-format
 msgid "scanning %s"
 msgstr "%s શોધે છે"
 
-#: ../IkiWiki/Render.pm:401
+#: ../IkiWiki/Render.pm:405
 #, perl-format
 msgid "rendering %s"
 msgstr "રેન્ડર કરે છે %s"
 
-#: ../IkiWiki/Render.pm:422
+#: ../IkiWiki/Render.pm:426
 #, perl-format
 msgid "rendering %s, which links to %s"
 msgstr "રેન્ડર કરે છે %s, જે %s સાથે જોડાણ ધરાવે છે"
 
-#: ../IkiWiki/Render.pm:443
+#: ../IkiWiki/Render.pm:447
 #, perl-format
 msgid "rendering %s, which depends on %s"
 msgstr "રેન્ડર કરે છે %s, જે %s પર આધારિત છે"
 
-#: ../IkiWiki/Render.pm:482
+#: ../IkiWiki/Render.pm:486
 #, perl-format
 msgid "rendering %s, to update its backlinks"
 msgstr "રેન્ડર કરે છે %s, તેનાં પાછળનાં જોડાણો સુધારવા માટે"
 
-#: ../IkiWiki/Render.pm:494
+#: ../IkiWiki/Render.pm:498
 #, perl-format
 msgid "removing %s, no longer rendered by %s"
 msgstr "દૂર કરે છે %s, હવે %s વડે રેન્ડર કરાતું નથી"
 
-#: ../IkiWiki/Render.pm:518
+#: ../IkiWiki/Render.pm:522
 #, perl-format
 msgid "ikiwiki: cannot render %s"
 msgstr "ikiwiki: %s રેન્ડર કરી શકાતું નથી"
@@ -871,19 +889,19 @@ msgstr "સફળતાપૂર્વક પેદા કરેલ છે %s"
 msgid "usage: ikiwiki [options] source dest"
 msgstr "ઉપયોગ: ikiwiki [વિકલ્પો] source dest"
 
-#: ../ikiwiki.in:83
+#: ../ikiwiki.in:89
 msgid "usage: --set var=value"
 msgstr ""
 
-#: ../ikiwiki.in:129
+#: ../ikiwiki.in:135
 msgid "generating wrappers.."
 msgstr "આવરણ બનાવે છે.."
 
-#: ../ikiwiki.in:182
+#: ../ikiwiki.in:186
 msgid "rebuilding wiki.."
 msgstr "વીકી ફરીથી બનાવે છે.."
 
-#: ../ikiwiki.in:185
+#: ../ikiwiki.in:189
 msgid "refreshing wiki.."
 msgstr "વીકીને તાજી કરે છે.."
 
index 635344b588dc8f02e73530feef6843cebec30920..4fbe4ce1d385fd4da71539badc857b00a7e1a019 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-09-19 12:57-0400\n"
+"POT-Creation-Date: 2008-09-24 17:55-0400\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -24,7 +24,7 @@ msgstr ""
 msgid "login failed, perhaps you need to turn on cookies?"
 msgstr ""
 
-#: ../IkiWiki/CGI.pm:163 ../IkiWiki/Plugin/editpage.pm:310
+#: ../IkiWiki/CGI.pm:163 ../IkiWiki/Plugin/editpage.pm:311
 msgid "Your login session has expired."
 msgstr ""
 
@@ -129,7 +129,7 @@ msgstr ""
 msgid "deleting bucket.."
 msgstr ""
 
-#: ../IkiWiki/Plugin/amazon_s3.pm:38 ../ikiwiki.in:193
+#: ../IkiWiki/Plugin/amazon_s3.pm:38 ../ikiwiki.in:197
 msgid "done"
 msgstr ""
 
@@ -171,7 +171,7 @@ msgstr ""
 msgid "automatic index generation"
 msgstr ""
 
-#: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:221
+#: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:222
 #: ../IkiWiki/Plugin/inline.pm:323 ../IkiWiki/Plugin/opendiscussion.pm:26
 #: ../IkiWiki/Plugin/orphans.pm:37 ../IkiWiki/Render.pm:79
 #: ../IkiWiki/Render.pm:149
@@ -203,19 +203,19 @@ msgstr ""
 msgid "no text was copied in this page with id %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/editpage.pm:110
+#: ../IkiWiki/Plugin/editpage.pm:111
 #, perl-format
 msgid "%s is not an editable page"
 msgstr ""
 
-#: ../IkiWiki/Plugin/editpage.pm:277
+#: ../IkiWiki/Plugin/editpage.pm:278
 #, perl-format
 msgid "creating %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/editpage.pm:295 ../IkiWiki/Plugin/editpage.pm:323
-#: ../IkiWiki/Plugin/editpage.pm:333 ../IkiWiki/Plugin/editpage.pm:368
-#: ../IkiWiki/Plugin/editpage.pm:413
+#: ../IkiWiki/Plugin/editpage.pm:296 ../IkiWiki/Plugin/editpage.pm:324
+#: ../IkiWiki/Plugin/editpage.pm:334 ../IkiWiki/Plugin/editpage.pm:369
+#: ../IkiWiki/Plugin/editpage.pm:414
 #, perl-format
 msgid "editing %s"
 msgstr ""
@@ -228,12 +228,12 @@ msgstr ""
 msgid "match not specified"
 msgstr ""
 
-#: ../IkiWiki/Plugin/edittemplate.pm:59
+#: ../IkiWiki/Plugin/edittemplate.pm:62
 #, perl-format
 msgid "edittemplate %s registered for %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/edittemplate.pm:125
+#: ../IkiWiki/Plugin/edittemplate.pm:133
 msgid "failed to process"
 msgstr ""
 
@@ -512,6 +512,15 @@ msgstr ""
 msgid "at noon on %A"
 msgstr ""
 
+#: ../IkiWiki/Plugin/progress.pm:34
+#, perl-format
+msgid "illegal percent value %s"
+msgstr ""
+
+#: ../IkiWiki/Plugin/progress.pm:59
+msgid "need either `percent` or `totalpages` and `donepages` parameters"
+msgstr ""
+
 #: ../IkiWiki/Plugin/recentchanges.pm:99
 msgid "missing page"
 msgstr ""
@@ -525,77 +534,81 @@ msgstr ""
 msgid "(Diff truncated)"
 msgstr ""
 
-#: ../IkiWiki/Plugin/remove.pm:32 ../IkiWiki/Plugin/rename.pm:35
+#: ../IkiWiki/Plugin/remove.pm:31 ../IkiWiki/Plugin/rename.pm:36
 #, perl-format
 msgid "%s does not exist"
 msgstr ""
 
-#: ../IkiWiki/Plugin/remove.pm:39
+#: ../IkiWiki/Plugin/remove.pm:38
 #, perl-format
 msgid "%s is not in the srcdir, so it cannot be deleted"
 msgstr ""
 
-#: ../IkiWiki/Plugin/remove.pm:42 ../IkiWiki/Plugin/rename.pm:44
+#: ../IkiWiki/Plugin/remove.pm:41 ../IkiWiki/Plugin/rename.pm:45
 #, perl-format
 msgid "%s is not a file"
 msgstr ""
 
-#: ../IkiWiki/Plugin/remove.pm:109
+#: ../IkiWiki/Plugin/remove.pm:112
 #, perl-format
 msgid "confirm removal of %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/remove.pm:145
+#: ../IkiWiki/Plugin/remove.pm:148
 msgid "Please select the attachments to remove."
 msgstr ""
 
-#: ../IkiWiki/Plugin/remove.pm:185
+#: ../IkiWiki/Plugin/remove.pm:188
 msgid "removed"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:41
+#: ../IkiWiki/Plugin/rename.pm:42
 #, perl-format
 msgid "%s is not in the srcdir, so it cannot be renamed"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:56
+#: ../IkiWiki/Plugin/rename.pm:62
 msgid "no change to the file name was specified"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:62
+#: ../IkiWiki/Plugin/rename.pm:68
 #, perl-format
 msgid "illegal name"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:67
+#: ../IkiWiki/Plugin/rename.pm:73
 #, perl-format
 msgid "%s already exists"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:73
+#: ../IkiWiki/Plugin/rename.pm:79
 #, perl-format
 msgid "%s already exists on disk"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:95
+#: ../IkiWiki/Plugin/rename.pm:101
 #, perl-format
 msgid "rename %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:206
+#: ../IkiWiki/Plugin/rename.pm:138
+msgid "Also rename SubPages and attachments"
+msgstr ""
+
+#: ../IkiWiki/Plugin/rename.pm:223
 msgid "Only one attachment can be renamed at a time."
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:209
+#: ../IkiWiki/Plugin/rename.pm:226
 msgid "Please select the attachment to rename."
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:277
+#: ../IkiWiki/Plugin/rename.pm:332
 #, perl-format
 msgid "rename %s to %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:306
+#: ../IkiWiki/Plugin/rename.pm:484
 #, perl-format
 msgid "update for rename of %s to %s"
 msgstr ""
@@ -753,47 +766,52 @@ msgstr ""
 msgid "<p class=\"error\">Error: %s exited nonzero (%s)"
 msgstr ""
 
-#: ../IkiWiki/Render.pm:277 ../IkiWiki/Render.pm:298
+#: ../IkiWiki/Render.pm:277 ../IkiWiki/Render.pm:302
 #, perl-format
 msgid "skipping bad filename %s"
 msgstr ""
 
-#: ../IkiWiki/Render.pm:356
+#: ../IkiWiki/Render.pm:284
+#, perl-format
+msgid "%s has multiple possible source pages"
+msgstr ""
+
+#: ../IkiWiki/Render.pm:360
 #, perl-format
 msgid "removing old page %s"
 msgstr ""
 
-#: ../IkiWiki/Render.pm:396
+#: ../IkiWiki/Render.pm:400
 #, perl-format
 msgid "scanning %s"
 msgstr ""
 
-#: ../IkiWiki/Render.pm:401
+#: ../IkiWiki/Render.pm:405
 #, perl-format
 msgid "rendering %s"
 msgstr ""
 
-#: ../IkiWiki/Render.pm:422
+#: ../IkiWiki/Render.pm:426
 #, perl-format
 msgid "rendering %s, which links to %s"
 msgstr ""
 
-#: ../IkiWiki/Render.pm:443
+#: ../IkiWiki/Render.pm:447
 #, perl-format
 msgid "rendering %s, which depends on %s"
 msgstr ""
 
-#: ../IkiWiki/Render.pm:482
+#: ../IkiWiki/Render.pm:486
 #, perl-format
 msgid "rendering %s, to update its backlinks"
 msgstr ""
 
-#: ../IkiWiki/Render.pm:494
+#: ../IkiWiki/Render.pm:498
 #, perl-format
 msgid "removing %s, no longer rendered by %s"
 msgstr ""
 
-#: ../IkiWiki/Render.pm:518
+#: ../IkiWiki/Render.pm:522
 #, perl-format
 msgid "ikiwiki: cannot render %s"
 msgstr ""
@@ -854,19 +872,19 @@ msgstr ""
 msgid "usage: ikiwiki [options] source dest"
 msgstr ""
 
-#: ../ikiwiki.in:83
+#: ../ikiwiki.in:89
 msgid "usage: --set var=value"
 msgstr ""
 
-#: ../ikiwiki.in:129
+#: ../ikiwiki.in:135
 msgid "generating wrappers.."
 msgstr ""
 
-#: ../ikiwiki.in:182
+#: ../ikiwiki.in:186
 msgid "rebuilding wiki.."
 msgstr ""
 
-#: ../ikiwiki.in:185
+#: ../ikiwiki.in:189
 msgid "refreshing wiki.."
 msgstr ""
 
index 4c2c00fcaa92be6356806bbf7f4332a6c0084e30..4d9255f6b636cc208166df1ecabfb6cdb9323f09 100644 (file)
--- a/po/pl.po
+++ b/po/pl.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: ikiwiki 1.51\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-09-11 18:52-0400\n"
+"POT-Creation-Date: 2008-09-24 17:55-0400\n"
 "PO-Revision-Date: 2007-04-27 22:05+0200\n"
 "Last-Translator: Pawel Tecza <ptecza@net.icm.edu.pl>\n"
 "Language-Team: Debian L10n Polish <debian-l10n-polish@lists.debian.org>\n"
@@ -26,7 +26,7 @@ msgstr ""
 "Nieudane logowanie. Proszę sprawdzić czy w przeglądarce włączone są "
 "ciasteczka (ang. cookies)"
 
-#: ../IkiWiki/CGI.pm:163 ../IkiWiki/Plugin/editpage.pm:310
+#: ../IkiWiki/CGI.pm:163 ../IkiWiki/Plugin/editpage.pm:311
 msgid "Your login session has expired."
 msgstr ""
 
@@ -124,7 +124,7 @@ msgstr ""
 msgid "feed crashed XML::Feed!"
 msgstr "awaria kanału RSS w module XML::Feed!"
 
-#: ../IkiWiki/Plugin/aggregate.pm:584
+#: ../IkiWiki/Plugin/aggregate.pm:590
 #, perl-format
 msgid "creating new page %s"
 msgstr "tworzenie nowej strony %s"
@@ -133,7 +133,7 @@ msgstr "tworzenie nowej strony %s"
 msgid "deleting bucket.."
 msgstr ""
 
-#: ../IkiWiki/Plugin/amazon_s3.pm:38 ../ikiwiki.in:193
+#: ../IkiWiki/Plugin/amazon_s3.pm:38 ../ikiwiki.in:197
 msgid "done"
 msgstr "gotowe"
 
@@ -177,8 +177,8 @@ msgstr ""
 msgid "automatic index generation"
 msgstr ""
 
-#: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:221
-#: ../IkiWiki/Plugin/inline.pm:317 ../IkiWiki/Plugin/opendiscussion.pm:26
+#: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:222
+#: ../IkiWiki/Plugin/inline.pm:323 ../IkiWiki/Plugin/opendiscussion.pm:26
 #: ../IkiWiki/Plugin/orphans.pm:37 ../IkiWiki/Render.pm:79
 #: ../IkiWiki/Render.pm:149
 msgid "discussion"
@@ -209,19 +209,19 @@ msgstr ""
 msgid "no text was copied in this page with id %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/editpage.pm:110
+#: ../IkiWiki/Plugin/editpage.pm:111
 #, perl-format
 msgid "%s is not an editable page"
 msgstr "Strona %s nie może być edytowana"
 
-#: ../IkiWiki/Plugin/editpage.pm:277
+#: ../IkiWiki/Plugin/editpage.pm:278
 #, perl-format
 msgid "creating %s"
 msgstr "tworzenie %s"
 
-#: ../IkiWiki/Plugin/editpage.pm:295 ../IkiWiki/Plugin/editpage.pm:323
-#: ../IkiWiki/Plugin/editpage.pm:333 ../IkiWiki/Plugin/editpage.pm:368
-#: ../IkiWiki/Plugin/editpage.pm:413
+#: ../IkiWiki/Plugin/editpage.pm:296 ../IkiWiki/Plugin/editpage.pm:324
+#: ../IkiWiki/Plugin/editpage.pm:334 ../IkiWiki/Plugin/editpage.pm:369
+#: ../IkiWiki/Plugin/editpage.pm:414
 #, perl-format
 msgid "editing %s"
 msgstr "edycja %s"
@@ -236,12 +236,12 @@ msgstr "nieznaleziony szablon %s"
 msgid "match not specified"
 msgstr "nieokreślona nazwa pliku osłony"
 
-#: ../IkiWiki/Plugin/edittemplate.pm:59
+#: ../IkiWiki/Plugin/edittemplate.pm:62
 #, perl-format
 msgid "edittemplate %s registered for %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/edittemplate.pm:125
+#: ../IkiWiki/Plugin/edittemplate.pm:133
 #, fuzzy
 msgid "failed to process"
 msgstr "awaria w trakcie przetwarzania:"
@@ -311,20 +311,20 @@ msgstr "brakujący parametr %s"
 msgid "unknown sort type %s"
 msgstr "nieznany sposób sortowania %s"
 
-#: ../IkiWiki/Plugin/inline.pm:276
+#: ../IkiWiki/Plugin/inline.pm:282
 msgid "Add a new post titled:"
 msgstr "Tytuł nowego wpisu"
 
-#: ../IkiWiki/Plugin/inline.pm:292
+#: ../IkiWiki/Plugin/inline.pm:298
 #, perl-format
 msgid "nonexistant template %s"
 msgstr "brakujący szablon %s"
 
-#: ../IkiWiki/Plugin/inline.pm:325 ../IkiWiki/Render.pm:83
+#: ../IkiWiki/Plugin/inline.pm:331 ../IkiWiki/Render.pm:83
 msgid "Discussion"
 msgstr "Dyskusja"
 
-#: ../IkiWiki/Plugin/inline.pm:562
+#: ../IkiWiki/Plugin/inline.pm:568
 msgid "RPC::XML::Client not found, not pinging"
 msgstr "Nieznaleziony moduł RPC::XML::Client, brak możliwości pingowania"
 
@@ -539,6 +539,15 @@ msgstr "o północy"
 msgid "at noon on %A"
 msgstr "w południe w %A"
 
+#: ../IkiWiki/Plugin/progress.pm:34
+#, perl-format
+msgid "illegal percent value %s"
+msgstr ""
+
+#: ../IkiWiki/Plugin/progress.pm:59
+msgid "need either `percent` or `totalpages` and `donepages` parameters"
+msgstr ""
+
 #: ../IkiWiki/Plugin/recentchanges.pm:99
 #, fuzzy
 msgid "missing page"
@@ -553,80 +562,84 @@ msgstr ""
 msgid "(Diff truncated)"
 msgstr ""
 
-#: ../IkiWiki/Plugin/remove.pm:32 ../IkiWiki/Plugin/rename.pm:35
+#: ../IkiWiki/Plugin/remove.pm:31 ../IkiWiki/Plugin/rename.pm:36
 #, perl-format
 msgid "%s does not exist"
 msgstr ""
 
-#: ../IkiWiki/Plugin/remove.pm:39
+#: ../IkiWiki/Plugin/remove.pm:38
 #, fuzzy, perl-format
 msgid "%s is not in the srcdir, so it cannot be deleted"
 msgstr ""
 "strona %s jest tymczasowo zablokowana przez użytkownika %s i nie może być "
 "teraz edytowana"
 
-#: ../IkiWiki/Plugin/remove.pm:42 ../IkiWiki/Plugin/rename.pm:44
+#: ../IkiWiki/Plugin/remove.pm:41 ../IkiWiki/Plugin/rename.pm:45
 #, fuzzy, perl-format
 msgid "%s is not a file"
 msgstr "Strona %s nie może być edytowana"
 
-#: ../IkiWiki/Plugin/remove.pm:109
+#: ../IkiWiki/Plugin/remove.pm:112
 #, perl-format
 msgid "confirm removal of %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/remove.pm:145
+#: ../IkiWiki/Plugin/remove.pm:148
 msgid "Please select the attachments to remove."
 msgstr ""
 
-#: ../IkiWiki/Plugin/remove.pm:185
+#: ../IkiWiki/Plugin/remove.pm:188
 msgid "removed"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:41
+#: ../IkiWiki/Plugin/rename.pm:42
 #, perl-format
 msgid "%s is not in the srcdir, so it cannot be renamed"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:56
+#: ../IkiWiki/Plugin/rename.pm:62
 #, fuzzy
 msgid "no change to the file name was specified"
 msgstr "nieokreślona nazwa pliku osłony"
 
-#: ../IkiWiki/Plugin/rename.pm:62
+#: ../IkiWiki/Plugin/rename.pm:68
 #, perl-format
 msgid "illegal name"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:67
+#: ../IkiWiki/Plugin/rename.pm:73
 #, perl-format
 msgid "%s already exists"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:73
+#: ../IkiWiki/Plugin/rename.pm:79
 #, perl-format
 msgid "%s already exists on disk"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:95
+#: ../IkiWiki/Plugin/rename.pm:101
 #, fuzzy, perl-format
 msgid "rename %s"
 msgstr "renderowanie %s"
 
-#: ../IkiWiki/Plugin/rename.pm:206
+#: ../IkiWiki/Plugin/rename.pm:138
+msgid "Also rename SubPages and attachments"
+msgstr ""
+
+#: ../IkiWiki/Plugin/rename.pm:223
 msgid "Only one attachment can be renamed at a time."
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:209
+#: ../IkiWiki/Plugin/rename.pm:226
 msgid "Please select the attachment to rename."
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:277
+#: ../IkiWiki/Plugin/rename.pm:332
 #, perl-format
 msgid "rename %s to %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:306
+#: ../IkiWiki/Plugin/rename.pm:484
 #, fuzzy, perl-format
 msgid "update for rename of %s to %s"
 msgstr "aktualizacja stron wiki %s: %s przez użytkownika %s"
@@ -795,47 +808,52 @@ msgstr ""
 msgid "<p class=\"error\">Error: %s exited nonzero (%s)"
 msgstr ""
 
-#: ../IkiWiki/Render.pm:277 ../IkiWiki/Render.pm:298
+#: ../IkiWiki/Render.pm:277 ../IkiWiki/Render.pm:302
 #, perl-format
 msgid "skipping bad filename %s"
 msgstr "pomijanie nieprawidłowej nazwy pliku %s"
 
-#: ../IkiWiki/Render.pm:356
+#: ../IkiWiki/Render.pm:284
+#, perl-format
+msgid "%s has multiple possible source pages"
+msgstr ""
+
+#: ../IkiWiki/Render.pm:360
 #, perl-format
 msgid "removing old page %s"
 msgstr "usuwanie starej strony %s"
 
-#: ../IkiWiki/Render.pm:396
+#: ../IkiWiki/Render.pm:400
 #, perl-format
 msgid "scanning %s"
 msgstr "skanowanie %s"
 
-#: ../IkiWiki/Render.pm:401
+#: ../IkiWiki/Render.pm:405
 #, perl-format
 msgid "rendering %s"
 msgstr "renderowanie %s"
 
-#: ../IkiWiki/Render.pm:422
+#: ../IkiWiki/Render.pm:426
 #, perl-format
 msgid "rendering %s, which links to %s"
 msgstr "renderowanie %s z odnośnikiem do %s"
 
-#: ../IkiWiki/Render.pm:443
+#: ../IkiWiki/Render.pm:447
 #, perl-format
 msgid "rendering %s, which depends on %s"
 msgstr "renderowanie %s zależącego od %s"
 
-#: ../IkiWiki/Render.pm:482
+#: ../IkiWiki/Render.pm:486
 #, perl-format
 msgid "rendering %s, to update its backlinks"
 msgstr "renderowanie %s w celu aktualizacji powrotnych odnośników"
 
-#: ../IkiWiki/Render.pm:494
+#: ../IkiWiki/Render.pm:498
 #, perl-format
 msgid "removing %s, no longer rendered by %s"
 msgstr "usuwanie %s nie tworzonego już przez %s"
 
-#: ../IkiWiki/Render.pm:518
+#: ../IkiWiki/Render.pm:522
 #, perl-format
 msgid "ikiwiki: cannot render %s"
 msgstr "ikiwiki: awaria w trakcie tworzenia %s"
@@ -896,19 +914,19 @@ msgstr "pomyślnie utworzono %s"
 msgid "usage: ikiwiki [options] source dest"
 msgstr "użycie: ikiwiki [parametry] źródło cel"
 
-#: ../ikiwiki.in:83
+#: ../ikiwiki.in:89
 msgid "usage: --set var=value"
 msgstr ""
 
-#: ../ikiwiki.in:129
+#: ../ikiwiki.in:135
 msgid "generating wrappers.."
 msgstr "tworzenie osłon..."
 
-#: ../ikiwiki.in:182
+#: ../ikiwiki.in:186
 msgid "rebuilding wiki.."
 msgstr "przebudowywanie wiki..."
 
-#: ../ikiwiki.in:185
+#: ../ikiwiki.in:189
 msgid "refreshing wiki.."
 msgstr "odświeżanie wiki..."
 
index 92d65a0d2854def4cc968f7866630f826a591887..f956934ecbcef9c89101cc1058d99ffe829ca30c 100644 (file)
--- a/po/sv.po
+++ b/po/sv.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: ikiwiki\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-09-11 18:52-0400\n"
+"POT-Creation-Date: 2008-09-24 17:55-0400\n"
 "PO-Revision-Date: 2007-01-10 23:47+0100\n"
 "Last-Translator: Daniel Nylander <po@danielnylander.se>\n"
 "Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
@@ -23,7 +23,7 @@ msgstr "Du måste logga in först."
 msgid "login failed, perhaps you need to turn on cookies?"
 msgstr ""
 
-#: ../IkiWiki/CGI.pm:163 ../IkiWiki/Plugin/editpage.pm:310
+#: ../IkiWiki/CGI.pm:163 ../IkiWiki/Plugin/editpage.pm:311
 msgid "Your login session has expired."
 msgstr ""
 
@@ -121,7 +121,7 @@ msgstr ""
 msgid "feed crashed XML::Feed!"
 msgstr "kanalen kraschade XML::Feed!"
 
-#: ../IkiWiki/Plugin/aggregate.pm:584
+#: ../IkiWiki/Plugin/aggregate.pm:590
 #, perl-format
 msgid "creating new page %s"
 msgstr "skapar nya sidan %s"
@@ -130,7 +130,7 @@ msgstr "skapar nya sidan %s"
 msgid "deleting bucket.."
 msgstr ""
 
-#: ../IkiWiki/Plugin/amazon_s3.pm:38 ../ikiwiki.in:193
+#: ../IkiWiki/Plugin/amazon_s3.pm:38 ../ikiwiki.in:197
 msgid "done"
 msgstr "klar"
 
@@ -174,8 +174,8 @@ msgstr ""
 msgid "automatic index generation"
 msgstr ""
 
-#: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:221
-#: ../IkiWiki/Plugin/inline.pm:317 ../IkiWiki/Plugin/opendiscussion.pm:26
+#: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:222
+#: ../IkiWiki/Plugin/inline.pm:323 ../IkiWiki/Plugin/opendiscussion.pm:26
 #: ../IkiWiki/Plugin/orphans.pm:37 ../IkiWiki/Render.pm:79
 #: ../IkiWiki/Render.pm:149
 msgid "discussion"
@@ -206,19 +206,19 @@ msgstr ""
 msgid "no text was copied in this page with id %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/editpage.pm:110
+#: ../IkiWiki/Plugin/editpage.pm:111
 #, perl-format
 msgid "%s is not an editable page"
 msgstr ""
 
-#: ../IkiWiki/Plugin/editpage.pm:277
+#: ../IkiWiki/Plugin/editpage.pm:278
 #, perl-format
 msgid "creating %s"
 msgstr "skapar %s"
 
-#: ../IkiWiki/Plugin/editpage.pm:295 ../IkiWiki/Plugin/editpage.pm:323
-#: ../IkiWiki/Plugin/editpage.pm:333 ../IkiWiki/Plugin/editpage.pm:368
-#: ../IkiWiki/Plugin/editpage.pm:413
+#: ../IkiWiki/Plugin/editpage.pm:296 ../IkiWiki/Plugin/editpage.pm:324
+#: ../IkiWiki/Plugin/editpage.pm:334 ../IkiWiki/Plugin/editpage.pm:369
+#: ../IkiWiki/Plugin/editpage.pm:414
 #, perl-format
 msgid "editing %s"
 msgstr "redigerar %s"
@@ -233,12 +233,12 @@ msgstr "mallen %s hittades inte"
 msgid "match not specified"
 msgstr "filnamn för wrapper har inte angivits"
 
-#: ../IkiWiki/Plugin/edittemplate.pm:59
+#: ../IkiWiki/Plugin/edittemplate.pm:62
 #, perl-format
 msgid "edittemplate %s registered for %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/edittemplate.pm:125
+#: ../IkiWiki/Plugin/edittemplate.pm:133
 #, fuzzy
 msgid "failed to process"
 msgstr "misslyckades med att behandla mall:"
@@ -306,20 +306,20 @@ msgstr "mall saknar id-parameter"
 msgid "unknown sort type %s"
 msgstr "okänd sorteringstyp %s"
 
-#: ../IkiWiki/Plugin/inline.pm:276
+#: ../IkiWiki/Plugin/inline.pm:282
 msgid "Add a new post titled:"
 msgstr ""
 
-#: ../IkiWiki/Plugin/inline.pm:292
+#: ../IkiWiki/Plugin/inline.pm:298
 #, perl-format
 msgid "nonexistant template %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/inline.pm:325 ../IkiWiki/Render.pm:83
+#: ../IkiWiki/Plugin/inline.pm:331 ../IkiWiki/Render.pm:83
 msgid "Discussion"
 msgstr "Diskussion"
 
-#: ../IkiWiki/Plugin/inline.pm:562
+#: ../IkiWiki/Plugin/inline.pm:568
 msgid "RPC::XML::Client not found, not pinging"
 msgstr "RPC::XML::Client hittades inte, pingar inte"
 
@@ -531,6 +531,15 @@ msgstr ""
 msgid "at noon on %A"
 msgstr ""
 
+#: ../IkiWiki/Plugin/progress.pm:34
+#, perl-format
+msgid "illegal percent value %s"
+msgstr ""
+
+#: ../IkiWiki/Plugin/progress.pm:59
+msgid "need either `percent` or `totalpages` and `donepages` parameters"
+msgstr ""
+
 #: ../IkiWiki/Plugin/recentchanges.pm:99
 #, fuzzy
 msgid "missing page"
@@ -545,78 +554,82 @@ msgstr ""
 msgid "(Diff truncated)"
 msgstr ""
 
-#: ../IkiWiki/Plugin/remove.pm:32 ../IkiWiki/Plugin/rename.pm:35
+#: ../IkiWiki/Plugin/remove.pm:31 ../IkiWiki/Plugin/rename.pm:36
 #, perl-format
 msgid "%s does not exist"
 msgstr ""
 
-#: ../IkiWiki/Plugin/remove.pm:39
+#: ../IkiWiki/Plugin/remove.pm:38
 #, fuzzy, perl-format
 msgid "%s is not in the srcdir, so it cannot be deleted"
 msgstr "%s är låst av %s och kan inte redigeras"
 
-#: ../IkiWiki/Plugin/remove.pm:42 ../IkiWiki/Plugin/rename.pm:44
+#: ../IkiWiki/Plugin/remove.pm:41 ../IkiWiki/Plugin/rename.pm:45
 #, perl-format
 msgid "%s is not a file"
 msgstr ""
 
-#: ../IkiWiki/Plugin/remove.pm:109
+#: ../IkiWiki/Plugin/remove.pm:112
 #, perl-format
 msgid "confirm removal of %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/remove.pm:145
+#: ../IkiWiki/Plugin/remove.pm:148
 msgid "Please select the attachments to remove."
 msgstr ""
 
-#: ../IkiWiki/Plugin/remove.pm:185
+#: ../IkiWiki/Plugin/remove.pm:188
 msgid "removed"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:41
+#: ../IkiWiki/Plugin/rename.pm:42
 #, perl-format
 msgid "%s is not in the srcdir, so it cannot be renamed"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:56
+#: ../IkiWiki/Plugin/rename.pm:62
 #, fuzzy
 msgid "no change to the file name was specified"
 msgstr "filnamn för wrapper har inte angivits"
 
-#: ../IkiWiki/Plugin/rename.pm:62
+#: ../IkiWiki/Plugin/rename.pm:68
 #, perl-format
 msgid "illegal name"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:67
+#: ../IkiWiki/Plugin/rename.pm:73
 #, perl-format
 msgid "%s already exists"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:73
+#: ../IkiWiki/Plugin/rename.pm:79
 #, perl-format
 msgid "%s already exists on disk"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:95
+#: ../IkiWiki/Plugin/rename.pm:101
 #, fuzzy, perl-format
 msgid "rename %s"
 msgstr "ritar upp %s"
 
-#: ../IkiWiki/Plugin/rename.pm:206
+#: ../IkiWiki/Plugin/rename.pm:138
+msgid "Also rename SubPages and attachments"
+msgstr ""
+
+#: ../IkiWiki/Plugin/rename.pm:223
 msgid "Only one attachment can be renamed at a time."
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:209
+#: ../IkiWiki/Plugin/rename.pm:226
 msgid "Please select the attachment to rename."
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:277
+#: ../IkiWiki/Plugin/rename.pm:332
 #, perl-format
 msgid "rename %s to %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:306
+#: ../IkiWiki/Plugin/rename.pm:484
 #, fuzzy, perl-format
 msgid "update for rename of %s to %s"
 msgstr "uppdatering av %s, %s av %s"
@@ -784,47 +797,52 @@ msgstr ""
 msgid "<p class=\"error\">Error: %s exited nonzero (%s)"
 msgstr ""
 
-#: ../IkiWiki/Render.pm:277 ../IkiWiki/Render.pm:298
+#: ../IkiWiki/Render.pm:277 ../IkiWiki/Render.pm:302
 #, perl-format
 msgid "skipping bad filename %s"
 msgstr "hoppar över felaktigt filnamn %s"
 
-#: ../IkiWiki/Render.pm:356
+#: ../IkiWiki/Render.pm:284
+#, perl-format
+msgid "%s has multiple possible source pages"
+msgstr ""
+
+#: ../IkiWiki/Render.pm:360
 #, perl-format
 msgid "removing old page %s"
 msgstr "tar bort gammal sida %s"
 
-#: ../IkiWiki/Render.pm:396
+#: ../IkiWiki/Render.pm:400
 #, perl-format
 msgid "scanning %s"
 msgstr "söker av %s"
 
-#: ../IkiWiki/Render.pm:401
+#: ../IkiWiki/Render.pm:405
 #, perl-format
 msgid "rendering %s"
 msgstr "ritar upp %s"
 
-#: ../IkiWiki/Render.pm:422
+#: ../IkiWiki/Render.pm:426
 #, perl-format
 msgid "rendering %s, which links to %s"
 msgstr "ritar upp %s, vilken länkar till %s"
 
-#: ../IkiWiki/Render.pm:443
+#: ../IkiWiki/Render.pm:447
 #, perl-format
 msgid "rendering %s, which depends on %s"
 msgstr "ritar upp %s, vilken är beroende av %s"
 
-#: ../IkiWiki/Render.pm:482
+#: ../IkiWiki/Render.pm:486
 #, perl-format
 msgid "rendering %s, to update its backlinks"
 msgstr "ritar upp %s, för att uppdatera dess bakåtlänkar"
 
-#: ../IkiWiki/Render.pm:494
+#: ../IkiWiki/Render.pm:498
 #, perl-format
 msgid "removing %s, no longer rendered by %s"
 msgstr "tar bort %s, som inte längre ritas upp av %s"
 
-#: ../IkiWiki/Render.pm:518
+#: ../IkiWiki/Render.pm:522
 #, perl-format
 msgid "ikiwiki: cannot render %s"
 msgstr "ikiwiki: kan inte rita upp %s"
@@ -885,19 +903,19 @@ msgstr "generering av %s lyckades"
 msgid "usage: ikiwiki [options] source dest"
 msgstr "användning: ikiwiki [flaggor] källa mål"
 
-#: ../ikiwiki.in:83
+#: ../ikiwiki.in:89
 msgid "usage: --set var=value"
 msgstr ""
 
-#: ../ikiwiki.in:129
+#: ../ikiwiki.in:135
 msgid "generating wrappers.."
 msgstr "genererar wrappers.."
 
-#: ../ikiwiki.in:182
+#: ../ikiwiki.in:186
 msgid "rebuilding wiki.."
 msgstr "bygger om wiki.."
 
-#: ../ikiwiki.in:185
+#: ../ikiwiki.in:189
 msgid "refreshing wiki.."
 msgstr "uppdaterar wiki.."
 
index ed76319b6f13421b082f0681b71edc30e1136c30..da07d535b194cd8b74f4cdc2ae56a72d5fb42852 100644 (file)
--- a/po/vi.po
+++ b/po/vi.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: ikiwiki\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-09-11 18:52-0400\n"
+"POT-Creation-Date: 2008-09-24 17:55-0400\n"
 "PO-Revision-Date: 2007-01-13 15:31+1030\n"
 "Last-Translator: Clytie Siddall <clytie@riverland.net.au>\n"
 "Language-Team: Vietnamese <vi-VN@googlegroups.com>\n"
@@ -24,7 +24,7 @@ msgstr "Trước tiên bạn cần phải đăng nhập."
 msgid "login failed, perhaps you need to turn on cookies?"
 msgstr ""
 
-#: ../IkiWiki/CGI.pm:163 ../IkiWiki/Plugin/editpage.pm:310
+#: ../IkiWiki/CGI.pm:163 ../IkiWiki/Plugin/editpage.pm:311
 msgid "Your login session has expired."
 msgstr ""
 
@@ -122,7 +122,7 @@ msgstr ""
 msgid "feed crashed XML::Feed!"
 msgstr "nguồn tin đã gây ra XML::Feed sụp đổ."
 
-#: ../IkiWiki/Plugin/aggregate.pm:584
+#: ../IkiWiki/Plugin/aggregate.pm:590
 #, perl-format
 msgid "creating new page %s"
 msgstr "đang tạo trang mới %s"
@@ -131,7 +131,7 @@ msgstr "đang tạo trang mới %s"
 msgid "deleting bucket.."
 msgstr ""
 
-#: ../IkiWiki/Plugin/amazon_s3.pm:38 ../ikiwiki.in:193
+#: ../IkiWiki/Plugin/amazon_s3.pm:38 ../ikiwiki.in:197
 msgid "done"
 msgstr "xong"
 
@@ -175,8 +175,8 @@ msgstr ""
 msgid "automatic index generation"
 msgstr ""
 
-#: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:221
-#: ../IkiWiki/Plugin/inline.pm:317 ../IkiWiki/Plugin/opendiscussion.pm:26
+#: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:222
+#: ../IkiWiki/Plugin/inline.pm:323 ../IkiWiki/Plugin/opendiscussion.pm:26
 #: ../IkiWiki/Plugin/orphans.pm:37 ../IkiWiki/Render.pm:79
 #: ../IkiWiki/Render.pm:149
 msgid "discussion"
@@ -207,19 +207,19 @@ msgstr ""
 msgid "no text was copied in this page with id %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/editpage.pm:110
+#: ../IkiWiki/Plugin/editpage.pm:111
 #, perl-format
 msgid "%s is not an editable page"
 msgstr ""
 
-#: ../IkiWiki/Plugin/editpage.pm:277
+#: ../IkiWiki/Plugin/editpage.pm:278
 #, perl-format
 msgid "creating %s"
 msgstr "đang tạo %s"
 
-#: ../IkiWiki/Plugin/editpage.pm:295 ../IkiWiki/Plugin/editpage.pm:323
-#: ../IkiWiki/Plugin/editpage.pm:333 ../IkiWiki/Plugin/editpage.pm:368
-#: ../IkiWiki/Plugin/editpage.pm:413
+#: ../IkiWiki/Plugin/editpage.pm:296 ../IkiWiki/Plugin/editpage.pm:324
+#: ../IkiWiki/Plugin/editpage.pm:334 ../IkiWiki/Plugin/editpage.pm:369
+#: ../IkiWiki/Plugin/editpage.pm:414
 #, perl-format
 msgid "editing %s"
 msgstr "đang sửa %s"
@@ -234,12 +234,12 @@ msgstr "không tìm thấy mẫu %s"
 msgid "match not specified"
 msgstr "chưa xác định tên tập tin bộ bao bọc"
 
-#: ../IkiWiki/Plugin/edittemplate.pm:59
+#: ../IkiWiki/Plugin/edittemplate.pm:62
 #, perl-format
 msgid "edittemplate %s registered for %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/edittemplate.pm:125
+#: ../IkiWiki/Plugin/edittemplate.pm:133
 #, fuzzy
 msgid "failed to process"
 msgstr "mẫu không xử lý được:"
@@ -309,20 +309,20 @@ msgstr "mẫu thiếu tham số id"
 msgid "unknown sort type %s"
 msgstr "kiểu sắp xếp không rõ %s"
 
-#: ../IkiWiki/Plugin/inline.pm:276
+#: ../IkiWiki/Plugin/inline.pm:282
 msgid "Add a new post titled:"
 msgstr ""
 
-#: ../IkiWiki/Plugin/inline.pm:292
+#: ../IkiWiki/Plugin/inline.pm:298
 #, perl-format
 msgid "nonexistant template %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/inline.pm:325 ../IkiWiki/Render.pm:83
+#: ../IkiWiki/Plugin/inline.pm:331 ../IkiWiki/Render.pm:83
 msgid "Discussion"
 msgstr "Thảo luận"
 
-#: ../IkiWiki/Plugin/inline.pm:562
+#: ../IkiWiki/Plugin/inline.pm:568
 msgid "RPC::XML::Client not found, not pinging"
 msgstr "Không tìm thấy RPC::XML::Client nên không gửi gói tin ping"
 
@@ -532,6 +532,15 @@ msgstr ""
 msgid "at noon on %A"
 msgstr ""
 
+#: ../IkiWiki/Plugin/progress.pm:34
+#, perl-format
+msgid "illegal percent value %s"
+msgstr ""
+
+#: ../IkiWiki/Plugin/progress.pm:59
+msgid "need either `percent` or `totalpages` and `donepages` parameters"
+msgstr ""
+
 #: ../IkiWiki/Plugin/recentchanges.pm:99
 #, fuzzy
 msgid "missing page"
@@ -546,78 +555,82 @@ msgstr ""
 msgid "(Diff truncated)"
 msgstr ""
 
-#: ../IkiWiki/Plugin/remove.pm:32 ../IkiWiki/Plugin/rename.pm:35
+#: ../IkiWiki/Plugin/remove.pm:31 ../IkiWiki/Plugin/rename.pm:36
 #, perl-format
 msgid "%s does not exist"
 msgstr ""
 
-#: ../IkiWiki/Plugin/remove.pm:39
+#: ../IkiWiki/Plugin/remove.pm:38
 #, fuzzy, perl-format
 msgid "%s is not in the srcdir, so it cannot be deleted"
 msgstr "%s bị %s khoá nên không thể sửa được"
 
-#: ../IkiWiki/Plugin/remove.pm:42 ../IkiWiki/Plugin/rename.pm:44
+#: ../IkiWiki/Plugin/remove.pm:41 ../IkiWiki/Plugin/rename.pm:45
 #, perl-format
 msgid "%s is not a file"
 msgstr ""
 
-#: ../IkiWiki/Plugin/remove.pm:109
+#: ../IkiWiki/Plugin/remove.pm:112
 #, perl-format
 msgid "confirm removal of %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/remove.pm:145
+#: ../IkiWiki/Plugin/remove.pm:148
 msgid "Please select the attachments to remove."
 msgstr ""
 
-#: ../IkiWiki/Plugin/remove.pm:185
+#: ../IkiWiki/Plugin/remove.pm:188
 msgid "removed"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:41
+#: ../IkiWiki/Plugin/rename.pm:42
 #, perl-format
 msgid "%s is not in the srcdir, so it cannot be renamed"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:56
+#: ../IkiWiki/Plugin/rename.pm:62
 #, fuzzy
 msgid "no change to the file name was specified"
 msgstr "chưa xác định tên tập tin bộ bao bọc"
 
-#: ../IkiWiki/Plugin/rename.pm:62
+#: ../IkiWiki/Plugin/rename.pm:68
 #, perl-format
 msgid "illegal name"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:67
+#: ../IkiWiki/Plugin/rename.pm:73
 #, perl-format
 msgid "%s already exists"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:73
+#: ../IkiWiki/Plugin/rename.pm:79
 #, perl-format
 msgid "%s already exists on disk"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:95
+#: ../IkiWiki/Plugin/rename.pm:101
 #, fuzzy, perl-format
 msgid "rename %s"
 msgstr "đang vẽ %s"
 
-#: ../IkiWiki/Plugin/rename.pm:206
+#: ../IkiWiki/Plugin/rename.pm:138
+msgid "Also rename SubPages and attachments"
+msgstr ""
+
+#: ../IkiWiki/Plugin/rename.pm:223
 msgid "Only one attachment can be renamed at a time."
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:209
+#: ../IkiWiki/Plugin/rename.pm:226
 msgid "Please select the attachment to rename."
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:277
+#: ../IkiWiki/Plugin/rename.pm:332
 #, perl-format
 msgid "rename %s to %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:306
+#: ../IkiWiki/Plugin/rename.pm:484
 #, fuzzy, perl-format
 msgid "update for rename of %s to %s"
 msgstr "cập nhật %2$s của %1$s bởi %3$s"
@@ -785,47 +798,52 @@ msgstr ""
 msgid "<p class=\"error\">Error: %s exited nonzero (%s)"
 msgstr ""
 
-#: ../IkiWiki/Render.pm:277 ../IkiWiki/Render.pm:298
+#: ../IkiWiki/Render.pm:277 ../IkiWiki/Render.pm:302
 #, perl-format
 msgid "skipping bad filename %s"
 msgstr "đang bỏ qua tên tập tin sai %s"
 
-#: ../IkiWiki/Render.pm:356
+#: ../IkiWiki/Render.pm:284
+#, perl-format
+msgid "%s has multiple possible source pages"
+msgstr ""
+
+#: ../IkiWiki/Render.pm:360
 #, perl-format
 msgid "removing old page %s"
 msgstr "đang gỡ bỏ trang cũ %s"
 
-#: ../IkiWiki/Render.pm:396
+#: ../IkiWiki/Render.pm:400
 #, perl-format
 msgid "scanning %s"
 msgstr "đang quét %s"
 
-#: ../IkiWiki/Render.pm:401
+#: ../IkiWiki/Render.pm:405
 #, perl-format
 msgid "rendering %s"
 msgstr "đang vẽ %s"
 
-#: ../IkiWiki/Render.pm:422
+#: ../IkiWiki/Render.pm:426
 #, perl-format
 msgid "rendering %s, which links to %s"
 msgstr "đang vẽ %s mà liên kết tới %s"
 
-#: ../IkiWiki/Render.pm:443
+#: ../IkiWiki/Render.pm:447
 #, perl-format
 msgid "rendering %s, which depends on %s"
 msgstr "đang vẽ %s mà phụ thuộc vào %s"
 
-#: ../IkiWiki/Render.pm:482
+#: ../IkiWiki/Render.pm:486
 #, perl-format
 msgid "rendering %s, to update its backlinks"
 msgstr "đang vẽ %s để cập nhật các liên kết ngược của nó"
 
-#: ../IkiWiki/Render.pm:494
+#: ../IkiWiki/Render.pm:498
 #, perl-format
 msgid "removing %s, no longer rendered by %s"
 msgstr "đang gỡ bỏ %s, không còn được vẽ lại bởi %s"
 
-#: ../IkiWiki/Render.pm:518
+#: ../IkiWiki/Render.pm:522
 #, perl-format
 msgid "ikiwiki: cannot render %s"
 msgstr "ikiwiki: không thể vẽ %s"
@@ -886,19 +904,19 @@ msgstr "%s đã được tạo ra"
 msgid "usage: ikiwiki [options] source dest"
 msgstr "cách sử dụng: ikiwiki [tùy chọn] nguồn đích"
 
-#: ../ikiwiki.in:83
+#: ../ikiwiki.in:89
 msgid "usage: --set var=value"
 msgstr ""
 
-#: ../ikiwiki.in:129
+#: ../ikiwiki.in:135
 msgid "generating wrappers.."
 msgstr "đang tạo ra các bộ bao bọc.."
 
-#: ../ikiwiki.in:182
+#: ../ikiwiki.in:186
 msgid "rebuilding wiki.."
 msgstr "đang xây dựng lại wiki.."
 
-#: ../ikiwiki.in:185
+#: ../ikiwiki.in:189
 msgid "refreshing wiki.."
 msgstr "đang làm tươi wiki.."
 
index 96e6a87f11e87b4e8e945ccc077dc40a2e826ef9..c7f1ce1801d92ee470f901e7f9f1eca35a6fa6fb 100755 (executable)
@@ -6,7 +6,7 @@ use Test::More tests => 5;
 BEGIN { use_ok("IkiWiki"); }
 
 # Used internally.
-$IkiWiki::hooks{htmlize}{mdwn}=1;
+$IkiWiki::hooks{htmlize}{mdwn}{call}=sub {};
 
 is(pagename("foo.mdwn"), "foo");
 is(pagename("foo/bar.mdwn"), "foo/bar");
index e165e81b35b8cd736e4237ebb4928e92b38ac755..60f81b35b9e948c0f1674ef5d7452b8c39c1fca4 100644 (file)
@@ -1,3 +1,9 @@
+<TMPL_IF ERROR>
+<p>
+<b>Failed to rename <TMPL_VAR SRC> to <TMPL_VAR DEST>: </b>
+<TMPL_VAR ERROR>
+</p>
+<TMPL_ELSE>
 <p>
 <b>Successfully renamed <TMPL_VAR SRC> to <TMPL_VAR DEST>.</b>
 </p>
@@ -14,8 +20,7 @@ The following pages still link to <TMPL_VAR SRC>:
 <ul>
 <TMPL_LOOP NAME=BROKENLINKS><li><TMPL_VAR PAGE></li></TMPL_LOOP>
 </ul>
-<TMPL_ELSE>
-No pages have broken links to <TMPL_VAR SRC>.
 </TMPL_IF>
 </TMPL_IF>
 </p>
+</TMPL_IF>