From 0be7aad67df45beb6b2fbbe82d52a05c8f2a925e Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Mon, 28 Jan 2008 06:16:56 +0100 Subject: Initial work adding support for Bazaar. --- IkiWiki/Rcs/bazaar.pm | 178 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 178 insertions(+) create mode 100644 IkiWiki/Rcs/bazaar.pm (limited to 'IkiWiki') diff --git a/IkiWiki/Rcs/bazaar.pm b/IkiWiki/Rcs/bazaar.pm new file mode 100644 index 000000000..21821586b --- /dev/null +++ b/IkiWiki/Rcs/bazaar.pm @@ -0,0 +1,178 @@ +#!/usr/bin/perl + +use warnings; +use strict; +use IkiWiki; +use Encode; +use open qw{:utf8 :std}; + +package IkiWiki; + +sub bazaar_log($) { + my $out = shift; + my @infos; + + while (<$out>) { + my $line = $_; + my ($key, $value); + + if (/^description:/) { + $key = "description"; + $value = ""; + + # slurp everything as the description text + # until the next changeset + while (<$out>) { + if (/^changeset: /) { + $line = $_; + last; + } + + $value .= $_; + } + + local $/ = ""; + chomp $value; + $infos[$#infos]{$key} = $value; + } + + chomp $line; + ($key, $value) = split /: +/, $line, 2; + + if ($key eq "changeset") { + push @infos, {}; + + # remove the revision index, which is strictly + # local to the repository + $value =~ s/^\d+://; + } + + $infos[$#infos]{$key} = $value; + } + close $out; + + return @infos; +} + +sub rcs_update () { #{{{ + my @cmdline = ("bzr", "$config{srcdir}", "update"); + if (system(@cmdline) != 0) { + warn "'@cmdline' failed: $!"; + } +} #}}} + +sub rcs_prepedit ($) { #{{{ + return ""; +} #}}} + +sub rcs_commit ($$$;$$) { #{{{ + my ($file, $message, $rcstoken, $user, $ipaddr) = @_; + + if (defined $user) { + $user = possibly_foolish_untaint($user); + } + elsif (defined $ipaddr) { + $user = "Anonymous from ".possibly_foolish_untaint($ipaddr); + } + else { + $user = "Anonymous"; + } + + $message = possibly_foolish_untaint($message); + if (! length $message) { + $message = "no message given"; + } + + my @cmdline = ("bzr", "commit", + "-m", $message, "--author", $user, $config{srcdir}); + if (system(@cmdline) != 0) { + warn "'@cmdline' failed: $!"; + } + + return undef; # success +} #}}} + +sub rcs_add ($) { # {{{ + my ($file) = @_; + + my @cmdline = ("bzr", "add", "$config{srcdir}/$file"); + if (system(@cmdline) != 0) { + warn "'@cmdline' failed: $!"; + } +} #}}} + +sub rcs_recentchanges ($) { #{{{ + my ($num) = @_; + + eval q{use CGI 'escapeHTML'}; + error($@) if $@; + + my @cmdline = ("bzr", "log", "-v", "--limit", $num, $config{srcdir}); + open (my $out, "@cmdline |"); + + eval q{use Date::Parse}; + error($@) if $@; + + my @ret; + foreach my $info (bazaar_log($out)) { + my @pages = (); + my @message = (); + + foreach my $msgline (split(/\n/, $info->{description})) { + push @message, { line => $msgline }; + } + + foreach my $file (split / /,$info->{files}) { + my $diffurl = $config{'diffurl'}; + $diffurl =~ s/\[\[file\]\]/$file/go; + $diffurl =~ s/\[\[r2\]\]/$info->{changeset}/go; + + push @pages, { + page => pagename($file), + diffurl => $diffurl, + }; + } + + my $user = $info->{"user"}; + $user =~ s/\s*<.*>\s*$//; + $user =~ s/^\s*//; + + push @ret, { + rev => $info->{"changeset"}, + user => $user, + committype => "bazaar", + when => time - str2time($info->{"date"}), + message => [@message], + pages => [@pages], + }; + } + + return @ret; +} #}}} + +sub rcs_notify () { #{{{ + # TODO +} #}}} + +sub rcs_getctime ($) { #{{{ + my ($file) = @_; + + # XXX filename passes through the shell here, should try to avoid + # that just in case + my @cmdline = ("bzr", "log", "-v", "--limit", '1', "$config{srcdir}/$file"); + open (my $out, "@cmdline |"); + + my @log = bazaar_log($out); + + if (length @log < 1) { + return 0; + } + + eval q{use Date::Parse}; + error($@) if $@; + + my $ctime = str2time($log[0]->{"date"}); + return $ctime; +} #}}} + +1 -- cgit v1.2.3 From d3f91f37ff3e7d043f06706297f78c8e5bc20693 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Mon, 28 Jan 2008 07:30:37 +0100 Subject: Finish bazaar backend and make the remaining test pass. --- IkiWiki/Rcs/bazaar.pm | 69 ++++++++++++++++++++------------------------------- t/bazaar.t | 6 ++--- 2 files changed, 30 insertions(+), 45 deletions(-) (limited to 'IkiWiki') diff --git a/IkiWiki/Rcs/bazaar.pm b/IkiWiki/Rcs/bazaar.pm index 21821586b..80aba6a45 100644 --- a/IkiWiki/Rcs/bazaar.pm +++ b/IkiWiki/Rcs/bazaar.pm @@ -10,44 +10,28 @@ package IkiWiki; sub bazaar_log($) { my $out = shift; - my @infos; + my @infos = (); + my $key = undef; while (<$out>) { my $line = $_; - my ($key, $value); - - if (/^description:/) { - $key = "description"; - $value = ""; - - # slurp everything as the description text - # until the next changeset - while (<$out>) { - if (/^changeset: /) { - $line = $_; - last; - } - - $value .= $_; - } - - local $/ = ""; - chomp $value; + my ($value); + if ($line =~ /^message:/) { + $key = "message"; + $infos[$#infos]{$key} = ""; + } elsif ($line =~ /^(modified|added|renamed|renamed and modified|removed):/) { + $key = "files"; + unless (defined($infos[$#infos]{$key})) { $infos[$#infos]{$key} = ""; } + } elsif (defined($key) and $line =~ /^ (.*)/) { + $infos[$#infos]{$key} .= $1; + } elsif ($line eq "------------------------------------------------------------\n") { + $key = undef; + push (@infos, {}); + } else { + chomp $line; + ($key, $value) = split /: +/, $line, 2; $infos[$#infos]{$key} = $value; - } - - chomp $line; - ($key, $value) = split /: +/, $line, 2; - - if ($key eq "changeset") { - push @infos, {}; - - # remove the revision index, which is strictly - # local to the repository - $value =~ s/^\d+://; - } - - $infos[$#infos]{$key} = $value; + } } close $out; @@ -118,14 +102,14 @@ sub rcs_recentchanges ($) { #{{{ my @pages = (); my @message = (); - foreach my $msgline (split(/\n/, $info->{description})) { + foreach my $msgline (split(/\n/, $info->{message})) { push @message, { line => $msgline }; } - foreach my $file (split / /,$info->{files}) { + foreach my $file (split(/\n/, $info->{files})) { my $diffurl = $config{'diffurl'}; $diffurl =~ s/\[\[file\]\]/$file/go; - $diffurl =~ s/\[\[r2\]\]/$info->{changeset}/go; + $diffurl =~ s/\[\[r2\]\]/$info->{revno}/go; push @pages, { page => pagename($file), @@ -133,15 +117,16 @@ sub rcs_recentchanges ($) { #{{{ }; } - my $user = $info->{"user"}; + my $user = $info->{"committer"}; + if (defined($info->{"author"})) { $user = $info->{"author"}; } $user =~ s/\s*<.*>\s*$//; $user =~ s/^\s*//; push @ret, { - rev => $info->{"changeset"}, + rev => $info->{"revno"}, user => $user, committype => "bazaar", - when => time - str2time($info->{"date"}), + when => time - str2time($info->{"timestamp"}), message => [@message], pages => [@pages], }; @@ -159,7 +144,7 @@ sub rcs_getctime ($) { #{{{ # XXX filename passes through the shell here, should try to avoid # that just in case - my @cmdline = ("bzr", "log", "-v", "--limit", '1', "$config{srcdir}/$file"); + my @cmdline = ("bzr", "log", "--limit", '1', "$config{srcdir}/$file"); open (my $out, "@cmdline |"); my @log = bazaar_log($out); @@ -171,7 +156,7 @@ sub rcs_getctime ($) { #{{{ eval q{use Date::Parse}; error($@) if $@; - my $ctime = str2time($log[0]->{"date"}); + my $ctime = str2time($log[0]->{"timestamp"}); return $ctime; } #}}} diff --git a/t/bazaar.t b/t/bazaar.t index 67a15875f..75534682b 100755 --- a/t/bazaar.t +++ b/t/bazaar.t @@ -44,8 +44,8 @@ my $message = "Added the second page"; my $test2 = readfile("t/test2.mdwn"); writefile('test2.mdwn', $config{srcdir}, $test2); -system "bzr add -R $config{srcdir} $config{srcdir}/test2.mdwn"; -system "bzr commit -R $config{srcdir} -u \"$user\" -m \"$message\" -d \"0 0\""; +system "bzr add $config{srcdir}/test2.mdwn"; +system "bzr commit --author \"$user\" -m \"$message\" $config{srcdir}"; @changes = IkiWiki::rcs_recentchanges(3); @@ -57,6 +57,6 @@ is($changes[0]{pages}[0]{"page"}, "test2.mdwn"); is($changes[1]{pages}[0]{"page"}, "test1.mdwn"); my $ctime = IkiWiki::rcs_getctime("test2.mdwn"); -is($ctime, 0); +ok($ctime >= time() - 20); system "rm -rf $dir"; -- cgit v1.2.3 From 52b16186c407188f27d01e86cd5c985168d976b6 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Mon, 28 Jan 2008 17:33:22 -0500 Subject: update comment This is not only called from post-update in all configurations. Also, the comment was innaccurate about what the post-update hook is passed. --- IkiWiki/Rcs/git.pm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'IkiWiki') diff --git a/IkiWiki/Rcs/git.pm b/IkiWiki/Rcs/git.pm index fea1c11eb..b538c524f 100644 --- a/IkiWiki/Rcs/git.pm +++ b/IkiWiki/Rcs/git.pm @@ -424,14 +424,15 @@ sub rcs_recentchanges ($) { #{{{ sub rcs_notify () { #{{{ # Send notification mail to subscribed users. # + # This is typically run as the post-update hook, though some setups + # may run it from the post-commit hook too. + # # In usual Git usage, hooks/update script is presumed to send # notification mails (see git-receive-pack(1)). But we prefer # hooks/post-update to support IkiWiki commits coming from a # cloned repository (through command line) because post-update # is called _after_ each ref in repository is updated (update - # hook is called _before_ the repository is updated). Since - # post-update hook does not accept command line arguments, we - # don't have an $ENV variable in this function. + # hook is called _before_ the repository is updated). # # Here, we rely on a simple fact: we can extract all parts of the # notification content by parsing the "HEAD" commit (which also -- cgit v1.2.3 From df32ad11399852a22e18c76a31d9991f79c42ca2 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Mon, 28 Jan 2008 17:36:36 -0500 Subject: really fix comment It doesn't really make sense to do notification from a post-commit hook. --- IkiWiki/Rcs/git.pm | 3 --- 1 file changed, 3 deletions(-) (limited to 'IkiWiki') diff --git a/IkiWiki/Rcs/git.pm b/IkiWiki/Rcs/git.pm index b538c524f..f4b8eff58 100644 --- a/IkiWiki/Rcs/git.pm +++ b/IkiWiki/Rcs/git.pm @@ -424,9 +424,6 @@ sub rcs_recentchanges ($) { #{{{ sub rcs_notify () { #{{{ # Send notification mail to subscribed users. # - # This is typically run as the post-update hook, though some setups - # may run it from the post-commit hook too. - # # In usual Git usage, hooks/update script is presumed to send # notification mails (see git-receive-pack(1)). But we prefer # hooks/post-update to support IkiWiki commits coming from a -- cgit v1.2.3 From 84d3856512172b261b06c0220ac405d92655b713 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Mon, 28 Jan 2008 17:41:02 -0500 Subject: test1 --- IkiWiki/Rcs/git.pm | 3 +-- doc/sandbox.mdwn | 2 ++ 2 files changed, 3 insertions(+), 2 deletions(-) (limited to 'IkiWiki') diff --git a/IkiWiki/Rcs/git.pm b/IkiWiki/Rcs/git.pm index f4b8eff58..98c9a5eae 100644 --- a/IkiWiki/Rcs/git.pm +++ b/IkiWiki/Rcs/git.pm @@ -432,8 +432,7 @@ sub rcs_notify () { #{{{ # hook is called _before_ the repository is updated). # # Here, we rely on a simple fact: we can extract all parts of the - # notification content by parsing the "HEAD" commit (which also - # triggers a refresh of IkiWiki pages). + # notification content by parsing the "HEAD" commit. my $ci = git_commit_info('HEAD'); return if !defined $ci; diff --git a/doc/sandbox.mdwn b/doc/sandbox.mdwn index 84175d68c..83d3fac77 100644 --- a/doc/sandbox.mdwn +++ b/doc/sandbox.mdwn @@ -1,5 +1,7 @@ This is the SandBox, a page anyone can edit to try out this fab ikiwiki. +foo + # Table of Contents testhead sandbox -- cgit v1.2.3 From 161947160b60ae6d6e578d712546f7c73d8bdf1c Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Mon, 28 Jan 2008 18:01:51 -0500 Subject: remove extraneous quoting --- IkiWiki/Rcs/git.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'IkiWiki') diff --git a/IkiWiki/Rcs/git.pm b/IkiWiki/Rcs/git.pm index 98c9a5eae..80ffdced2 100644 --- a/IkiWiki/Rcs/git.pm +++ b/IkiWiki/Rcs/git.pm @@ -441,7 +441,7 @@ sub rcs_notify () { #{{{ my ($user, $message); if (@{ $ci->{'comment'} }[0] =~ m/$config{web_commit_regexp}/) { - $user = defined $2 ? "$2" : "$3"; + $user = defined $2 ? $2 : $3; $message = $4; } else { -- cgit v1.2.3 From b11ddb88e608a6dd5e95f95bff2c506674c4fad8 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Mon, 28 Jan 2008 20:34:11 -0500 Subject: add an id field to the rcs_recentchanges return structure There was an undocumented field named "rev", I think "id" is a better name, and nothing uses it yet. --- IkiWiki/Rcs/Stub.pm | 1 + IkiWiki/Rcs/git.pm | 2 +- IkiWiki/Rcs/mercurial.pm | 2 +- IkiWiki/Rcs/monotone.pm | 2 +- IkiWiki/Rcs/svn.pm | 3 ++- IkiWiki/Rcs/tla.pm | 3 ++- 6 files changed, 8 insertions(+), 5 deletions(-) (limited to 'IkiWiki') diff --git a/IkiWiki/Rcs/Stub.pm b/IkiWiki/Rcs/Stub.pm index 19ecfa88d..a979ce3fe 100644 --- a/IkiWiki/Rcs/Stub.pm +++ b/IkiWiki/Rcs/Stub.pm @@ -37,6 +37,7 @@ sub rcs_recentchanges ($) { # Examine the RCS history and generate a list of recent changes. # The data structure returned for each change is: # { + # id => # the RCSs id for this commit # user => # name of user who made the change, # committype => # either "web" or the name of the rcs, # when => # time when the change was made, diff --git a/IkiWiki/Rcs/git.pm b/IkiWiki/Rcs/git.pm index 80ffdced2..9640acfbe 100644 --- a/IkiWiki/Rcs/git.pm +++ b/IkiWiki/Rcs/git.pm @@ -407,7 +407,7 @@ sub rcs_recentchanges ($) { #{{{ } push @rets, { - rev => $sha1, + id => $sha1, user => $user, committype => $type, when => $when, diff --git a/IkiWiki/Rcs/mercurial.pm b/IkiWiki/Rcs/mercurial.pm index 15edb3245..e5258b111 100644 --- a/IkiWiki/Rcs/mercurial.pm +++ b/IkiWiki/Rcs/mercurial.pm @@ -139,7 +139,7 @@ sub rcs_recentchanges ($) { #{{{ $user =~ s/^\s*//; push @ret, { - rev => $info->{"changeset"}, + id => $info->{"changeset"}, user => $user, committype => "mercurial", when => time - str2time($info->{"date"}), diff --git a/IkiWiki/Rcs/monotone.pm b/IkiWiki/Rcs/monotone.pm index 5717e0043..e0f2e046a 100644 --- a/IkiWiki/Rcs/monotone.pm +++ b/IkiWiki/Rcs/monotone.pm @@ -438,7 +438,7 @@ sub rcs_recentchanges ($) { #{{{ } push @ret, { - rev => $rev, + id => $rev, user => $user, committype => $committype, when => $when, diff --git a/IkiWiki/Rcs/svn.pm b/IkiWiki/Rcs/svn.pm index 987469ba0..a32b0a840 100644 --- a/IkiWiki/Rcs/svn.pm +++ b/IkiWiki/Rcs/svn.pm @@ -203,7 +203,8 @@ sub rcs_recentchanges ($) { #{{{ diffurl => $diffurl, } if length $file; } - push @ret, { rev => $rev, + push @ret, { + id => $rev, user => $user, committype => $committype, when => $when, diff --git a/IkiWiki/Rcs/tla.pm b/IkiWiki/Rcs/tla.pm index 1dbc006c1..5275500c3 100644 --- a/IkiWiki/Rcs/tla.pm +++ b/IkiWiki/Rcs/tla.pm @@ -145,7 +145,8 @@ sub rcs_recentchanges ($) { diffurl => $diffurl, } if length $file; } - push @ret, { rev => $change, + push @ret, { + id => $change, user => $user, committype => $committype, when => $when, -- cgit v1.2.3 From 3436fed08169893953fef6858f7645437f39d1b0 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Mon, 28 Jan 2008 21:22:04 -0500 Subject: * inline: The template can check for FIRST and LAST, which will be set for the first and last inlined page. Useful for templates that build tables and the like. --- IkiWiki/Plugin/inline.pm | 2 ++ debian/changelog | 5 +++++ 2 files changed, 7 insertions(+) (limited to 'IkiWiki') diff --git a/IkiWiki/Plugin/inline.pm b/IkiWiki/Plugin/inline.pm index 59eabb606..796cf2cf6 100644 --- a/IkiWiki/Plugin/inline.pm +++ b/IkiWiki/Plugin/inline.pm @@ -231,6 +231,8 @@ sub preprocess_inline (@) { #{{{ $template->param(pageurl => urlto(bestlink($params{page}, $page), $params{destpage})); $template->param(title => pagetitle(basename($page))); $template->param(ctime => displaytime($pagectime{$page}, $params{timeformat})); + $template->param(first => 1) if $page eq $list[0]; + $template->param(last => 1) if $page eq $list[$#list]; if ($actions) { my $file = $pagesources{$page}; diff --git a/debian/changelog b/debian/changelog index 50196b077..6af99590d 100644 --- a/debian/changelog +++ b/debian/changelog @@ -15,6 +15,11 @@ ikiwiki (2.21) UNRELEASED; urgency=low * Add trailing comma to commented-out umask in sample ikiwiki.setup, so that uncommenting it does not break the setup file. + [ Joey Hess ] + * inline: The template can check for FIRST and LAST, which will be + set for the first and last inlined page. Useful for templates that build + tables and the like. + -- Joey Hess Fri, 11 Jan 2008 15:09:37 -0500 ikiwiki (2.20) unstable; urgency=low -- cgit v1.2.3 From e30b96babacb6ac48e571105c9f0627f68cf3bca Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Mon, 28 Jan 2008 21:23:56 -0500 Subject: figured out how rev is used.. --- IkiWiki/Rcs/Stub.pm | 2 +- IkiWiki/Rcs/git.pm | 2 +- IkiWiki/Rcs/mercurial.pm | 2 +- IkiWiki/Rcs/monotone.pm | 2 +- IkiWiki/Rcs/svn.pm | 2 +- IkiWiki/Rcs/tla.pm | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) (limited to 'IkiWiki') diff --git a/IkiWiki/Rcs/Stub.pm b/IkiWiki/Rcs/Stub.pm index a979ce3fe..ab80a9a47 100644 --- a/IkiWiki/Rcs/Stub.pm +++ b/IkiWiki/Rcs/Stub.pm @@ -37,7 +37,7 @@ sub rcs_recentchanges ($) { # Examine the RCS history and generate a list of recent changes. # The data structure returned for each change is: # { - # id => # the RCSs id for this commit + # rev => # the RCSs id for this commit # user => # name of user who made the change, # committype => # either "web" or the name of the rcs, # when => # time when the change was made, diff --git a/IkiWiki/Rcs/git.pm b/IkiWiki/Rcs/git.pm index 9640acfbe..80ffdced2 100644 --- a/IkiWiki/Rcs/git.pm +++ b/IkiWiki/Rcs/git.pm @@ -407,7 +407,7 @@ sub rcs_recentchanges ($) { #{{{ } push @rets, { - id => $sha1, + rev => $sha1, user => $user, committype => $type, when => $when, diff --git a/IkiWiki/Rcs/mercurial.pm b/IkiWiki/Rcs/mercurial.pm index e5258b111..15edb3245 100644 --- a/IkiWiki/Rcs/mercurial.pm +++ b/IkiWiki/Rcs/mercurial.pm @@ -139,7 +139,7 @@ sub rcs_recentchanges ($) { #{{{ $user =~ s/^\s*//; push @ret, { - id => $info->{"changeset"}, + rev => $info->{"changeset"}, user => $user, committype => "mercurial", when => time - str2time($info->{"date"}), diff --git a/IkiWiki/Rcs/monotone.pm b/IkiWiki/Rcs/monotone.pm index e0f2e046a..5717e0043 100644 --- a/IkiWiki/Rcs/monotone.pm +++ b/IkiWiki/Rcs/monotone.pm @@ -438,7 +438,7 @@ sub rcs_recentchanges ($) { #{{{ } push @ret, { - id => $rev, + rev => $rev, user => $user, committype => $committype, when => $when, diff --git a/IkiWiki/Rcs/svn.pm b/IkiWiki/Rcs/svn.pm index a32b0a840..002527bdd 100644 --- a/IkiWiki/Rcs/svn.pm +++ b/IkiWiki/Rcs/svn.pm @@ -204,7 +204,7 @@ sub rcs_recentchanges ($) { #{{{ } if length $file; } push @ret, { - id => $rev, + rev => $rev, user => $user, committype => $committype, when => $when, diff --git a/IkiWiki/Rcs/tla.pm b/IkiWiki/Rcs/tla.pm index 5275500c3..ffb6ee521 100644 --- a/IkiWiki/Rcs/tla.pm +++ b/IkiWiki/Rcs/tla.pm @@ -146,7 +146,7 @@ sub rcs_recentchanges ($) { } if length $file; } push @ret, { - id => $change, + rev => $change, user => $user, committype => $committype, when => $when, -- cgit v1.2.3 From ad4f7bc075d95f96ceed7d46ef401e93dceddfd7 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Mon, 28 Jan 2008 22:47:43 -0500 Subject: remove debug message This can legitimately happen when there's a simple merge. --- IkiWiki/Rcs/git.pm | 2 -- 1 file changed, 2 deletions(-) (limited to 'IkiWiki') diff --git a/IkiWiki/Rcs/git.pm b/IkiWiki/Rcs/git.pm index 80ffdced2..271104f3e 100644 --- a/IkiWiki/Rcs/git.pm +++ b/IkiWiki/Rcs/git.pm @@ -247,8 +247,6 @@ sub _parse_diff_tree ($@) { #{{{ last; } - debug("No detail in diff-tree output") if !defined $ci{'details'}; - return \%ci; } #}}} -- cgit v1.2.3 From 9f25e3436b2b918845acbd8cf2ff2d358e0ea105 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Mon, 28 Jan 2008 22:57:22 -0500 Subject: change rcs_recentchanges when to absolute, not relative, time No point in using a relative time value in rcs_recentchanges. Different consumers of the info want different things. --- IkiWiki/CGI.pm | 2 +- IkiWiki/Rcs/git.pm | 2 +- IkiWiki/Rcs/mercurial.pm | 2 +- IkiWiki/Rcs/monotone.pm | 2 +- IkiWiki/Rcs/svn.pm | 2 +- IkiWiki/Rcs/tla.pm | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) (limited to 'IkiWiki') diff --git a/IkiWiki/CGI.pm b/IkiWiki/CGI.pm index 65a1d7fa0..03c448923 100644 --- a/IkiWiki/CGI.pm +++ b/IkiWiki/CGI.pm @@ -100,7 +100,7 @@ sub cgi_recentchanges ($) { #{{{ my $changelog=[rcs_recentchanges(100)]; foreach my $change (@$changelog) { - $change->{when} = concise(ago($change->{when})); + $change->{when} = concise(ago(time - $change->{when})); $change->{user} = userlink($change->{user}); diff --git a/IkiWiki/Rcs/git.pm b/IkiWiki/Rcs/git.pm index 271104f3e..f70582136 100644 --- a/IkiWiki/Rcs/git.pm +++ b/IkiWiki/Rcs/git.pm @@ -372,7 +372,7 @@ sub rcs_recentchanges ($) { #{{{ my ($sha1, $when) = ( $ci->{'sha1'}, - time - $ci->{'author_epoch'} + $ci->{'author_epoch'} ); my (@pages, @messages); diff --git a/IkiWiki/Rcs/mercurial.pm b/IkiWiki/Rcs/mercurial.pm index 15edb3245..13a88379c 100644 --- a/IkiWiki/Rcs/mercurial.pm +++ b/IkiWiki/Rcs/mercurial.pm @@ -142,7 +142,7 @@ sub rcs_recentchanges ($) { #{{{ rev => $info->{"changeset"}, user => $user, committype => "mercurial", - when => time - str2time($info->{"date"}), + when => str2time($info->{"date"}), message => [@message], pages => [@pages], }; diff --git a/IkiWiki/Rcs/monotone.pm b/IkiWiki/Rcs/monotone.pm index 5717e0043..b48ac92db 100644 --- a/IkiWiki/Rcs/monotone.pm +++ b/IkiWiki/Rcs/monotone.pm @@ -416,7 +416,7 @@ sub rcs_recentchanges ($) { #{{{ $committype = "monotone"; } } elsif ($cert->{name} eq "date") { - $when = time - str2time($cert->{value}, 'UTC'); + $when = str2time($cert->{value}, 'UTC'); } elsif ($cert->{name} eq "changelog") { my $messageText = $cert->{value}; # split the changelog into multiple diff --git a/IkiWiki/Rcs/svn.pm b/IkiWiki/Rcs/svn.pm index 002527bdd..075f8da5a 100644 --- a/IkiWiki/Rcs/svn.pm +++ b/IkiWiki/Rcs/svn.pm @@ -171,7 +171,7 @@ sub rcs_recentchanges ($) { #{{{ my $rev = $logentry->{revision}; my $user = $logentry->{author}; - my $when=time - str2time($logentry->{date}, 'UTC'); + my $when=str2time($logentry->{date}, 'UTC'); foreach my $msgline (split(/\n/, $logentry->{msg})) { push @message, { line => $msgline }; diff --git a/IkiWiki/Rcs/tla.pm b/IkiWiki/Rcs/tla.pm index ffb6ee521..15824ffaf 100644 --- a/IkiWiki/Rcs/tla.pm +++ b/IkiWiki/Rcs/tla.pm @@ -120,7 +120,7 @@ sub rcs_recentchanges ($) { split(/ /, "$newfiles $modfiles .arch-ids/fake.id"); my $sdate = $head->get("Standard-date"); - my $when = time - str2time($sdate, 'UTC'); + my $when = str2time($sdate, 'UTC'); my $committype = "web"; if (defined $summ && $summ =~ /$config{web_commit_regexp}/) { -- cgit v1.2.3 From 29f3082772095030895111f199d6420ef1835250 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Mon, 28 Jan 2008 22:58:31 -0500 Subject: move userlink to IkiWiki.pm I have a plugin that needs to use userlink. --- IkiWiki.pm | 28 ++++++++++++++++++++++++++++ IkiWiki/CGI.pm | 28 ---------------------------- 2 files changed, 28 insertions(+), 28 deletions(-) (limited to 'IkiWiki') diff --git a/IkiWiki.pm b/IkiWiki.pm index 46060c1b2..15402211f 100644 --- a/IkiWiki.pm +++ b/IkiWiki.pm @@ -609,6 +609,34 @@ sub htmllink ($$$;@) { #{{{ return "$linktext"; } #}}} +sub userlink ($) { #{{{ + my $user=shift; + + eval q{use CGI 'escapeHTML'}; + error($@) if $@; + if ($user =~ m!^https?://! && + eval q{use Net::OpenID::VerifiedIdentity; 1} && !$@) { + # Munge user-urls, as used by eg, OpenID. + my $oid=Net::OpenID::VerifiedIdentity->new(identity => $user); + my $display=$oid->display; + # Convert "user.somehost.com" to "user [somehost.com]". + if ($display !~ /\[/) { + $display=~s/^(.*?)\.([^.]+\.[a-z]+)$/$1 [$2]/; + } + # Convert "http://somehost.com/user" to "user [somehost.com]". + if ($display !~ /\[/) { + $display=~s/^https?:\/\/(.+)\/([^\/]+)$/$2 [$1]/; + } + $display=~s!^https?://!!; # make sure this is removed + return "".escapeHTML($display).""; + } + else { + return htmllink("", "", escapeHTML( + length $config{userdir} ? $config{userdir}."/".$user : $user + ), noimageinline => 1); + } +} #}}} + sub htmlize ($$$) { #{{{ my $page=shift; my $type=shift; diff --git a/IkiWiki/CGI.pm b/IkiWiki/CGI.pm index 03c448923..5de90e1a8 100644 --- a/IkiWiki/CGI.pm +++ b/IkiWiki/CGI.pm @@ -726,32 +726,4 @@ sub cgi (;$$) { #{{{ } } #}}} -sub userlink ($) { #{{{ - my $user=shift; - - eval q{use CGI 'escapeHTML'}; - error($@) if $@; - if ($user =~ m!^https?://! && - eval q{use Net::OpenID::VerifiedIdentity; 1} && !$@) { - # Munge user-urls, as used by eg, OpenID. - my $oid=Net::OpenID::VerifiedIdentity->new(identity => $user); - my $display=$oid->display; - # Convert "user.somehost.com" to "user [somehost.com]". - if ($display !~ /\[/) { - $display=~s/^(.*?)\.([^.]+\.[a-z]+)$/$1 [$2]/; - } - # Convert "http://somehost.com/user" to "user [somehost.com]". - if ($display !~ /\[/) { - $display=~s/^https?:\/\/(.+)\/([^\/]+)$/$2 [$1]/; - } - $display=~s!^https?://!!; # make sure this is removed - return "".escapeHTML($display).""; - } - else { - return htmllink("", "", escapeHTML( - length $config{userdir} ? $config{userdir}."/".$user : $user - ), noimageinline => 1); - } -} #}}} - 1 -- cgit v1.2.3 From 0d2894711c6aeadcee0d4f2799a0956f7beed499 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Mon, 28 Jan 2008 23:08:48 -0500 Subject: support for internal-use page types If a page type starts with an underscore, hide it from the list of page types in the edit form, and don't allow editing pages of that type. This allows for plugins to add page types for internal use. --- IkiWiki/CGI.pm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'IkiWiki') diff --git a/IkiWiki/CGI.pm b/IkiWiki/CGI.pm index 5de90e1a8..5062a448f 100644 --- a/IkiWiki/CGI.pm +++ b/IkiWiki/CGI.pm @@ -341,7 +341,7 @@ sub cgi_editpage ($$) { #{{{ if (exists $pagesources{$page} && $form->field("do") ne "create") { $file=$pagesources{$page}; $type=pagetype($file); - if (! defined $type) { + if (! defined $type || $type=~/^_/) { error(sprintf(gettext("%s is not an editable page"), $page)); } if (! $form->submitted) { @@ -470,7 +470,8 @@ sub cgi_editpage ($$) { #{{{ my @page_types; if (exists $hooks{htmlize}) { - @page_types=keys %{$hooks{htmlize}}; + @page_types=grep { !/^_/ } + keys %{$hooks{htmlize}}; } $form->tmpl_param("page_select", 1); -- cgit v1.2.3 From 2d3dc86d07a7ebf5f638084259ae2d9c2c63e6b6 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Mon, 28 Jan 2008 23:48:27 -0500 Subject: * prettydate,ddate: Don't ignore time formats passed to displaytime function. --- IkiWiki/Plugin/ddate.pm | 6 +++++- IkiWiki/Plugin/prettydate.pm | 5 ++++- debian/changelog | 2 ++ 3 files changed, 11 insertions(+), 2 deletions(-) (limited to 'IkiWiki') diff --git a/IkiWiki/Plugin/ddate.pm b/IkiWiki/Plugin/ddate.pm index 6b67f4202..d081cb509 100644 --- a/IkiWiki/Plugin/ddate.pm +++ b/IkiWiki/Plugin/ddate.pm @@ -18,6 +18,10 @@ sub checkconfig () { #{{{ sub IkiWiki::displaytime ($;$) { #{{{ my $time=shift; + my $format=shift; + if (! defined $format) { + $format=$config{timeformat}; + } eval q{ use DateTime; use DateTime::Calendar::Discordian; @@ -27,7 +31,7 @@ sub IkiWiki::displaytime ($;$) { #{{{ } my $dt = DateTime->from_epoch(epoch => $time); my $dd = DateTime::Calendar::Discordian->from_object(object => $dt); - return $dd->strftime($IkiWiki::config{timeformat}); + return $dd->strftime($format); } #}}} 5 diff --git a/IkiWiki/Plugin/prettydate.pm b/IkiWiki/Plugin/prettydate.pm index b6110e427..745e6a1de 100644 --- a/IkiWiki/Plugin/prettydate.pm +++ b/IkiWiki/Plugin/prettydate.pm @@ -63,6 +63,10 @@ sub checkconfig () { #{{{ sub IkiWiki::displaytime ($;$) { #{{{ my $time=shift; + my $format=shift; + if (! defined $format) { + $format=$config{prettydateformat}; + } eval q{use Date::Format}; error($@) if $@; @@ -93,7 +97,6 @@ sub IkiWiki::displaytime ($;$) { #{{{ $t=~s{\%A-}{my @yest=@t; $yest[6]--; strftime("%A", \@yest)}eg; - my $format=$config{prettydateformat}; $format=~s/\%X/$t/g; return strftime($format, \@t); } #}}} diff --git a/debian/changelog b/debian/changelog index 6af99590d..b098bf966 100644 --- a/debian/changelog +++ b/debian/changelog @@ -19,6 +19,8 @@ ikiwiki (2.21) UNRELEASED; urgency=low * inline: The template can check for FIRST and LAST, which will be set for the first and last inlined page. Useful for templates that build tables and the like. + * prettydate,ddate: Don't ignore time formats passed to displaytime + function. -- Joey Hess Fri, 11 Jan 2008 15:09:37 -0500 -- cgit v1.2.3 From 5921b86fccde90e5a9c77623d808be06f40cbe47 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Mon, 28 Jan 2008 23:56:26 -0500 Subject: proof of concept implementation of static recentchanges Currently hardcoded to write to recentchanges/*, and the page format needs to be rethought to be usable for aggregation, but it basically works. --- IkiWiki/Plugin/recentchanges.pm | 92 +++++++++++++++++++++++++++++++++++++++++ doc/plugins/recentchanges.mdwn | 14 +++++++ doc/recentchanges.mdwn | 6 +-- doc/todo/recentchanges.mdwn | 7 +--- doc/wikitemplates.mdwn | 3 +- templates/change.tmpl | 42 ++++++++++++------- templates/recentchanges.tmpl | 65 +++-------------------------- 7 files changed, 145 insertions(+), 84 deletions(-) create mode 100644 IkiWiki/Plugin/recentchanges.pm create mode 100644 doc/plugins/recentchanges.mdwn (limited to 'IkiWiki') diff --git a/IkiWiki/Plugin/recentchanges.pm b/IkiWiki/Plugin/recentchanges.pm new file mode 100644 index 000000000..94a2d4c33 --- /dev/null +++ b/IkiWiki/Plugin/recentchanges.pm @@ -0,0 +1,92 @@ +#!/usr/bin/perl +package IkiWiki::Plugin::recentchanges; + +use warnings; +use strict; +use IkiWiki 2.00; + +sub import { #{{{ + hook(type => "checkconfig", id => "recentchanges", + call => \&checkconfig); + hook(type => "needsbuild", id => "recentchanges", + call => \&needsbuild); + hook(type => "preprocess", id => "recentchanges", + call => \&preprocess); + hook(type => "htmlize", id => "_change", + call => \&htmlize); +} #}}} + +sub checkconfig () { #{{{ + updatechanges(); +} #}}} + +sub needsbuild () { #{{{ + # TODO +} #}}} + +sub preprocess (@) { #{{{ + my %params=@_; + + # TODO + + return ""; +} #}}} + +# Pages with extension _change have plain html markup, pass through. +sub htmlize (@) { #{{{ + my %params=@_; + return $params{content}; +} #}}} + +sub store ($$) { #{{{ + my $change=shift; + my $subdir=shift; + + my $page="$subdir/change_".IkiWiki::titlepage($change->{rev}); + + # Optimisation to avoid re-writing pages. Assumes commits never + # change, or that any changes are not important. + return if exists $pagesources{$page} && ! $config{rebuild}; + + # Limit pages to first 10, and add links to the changed pages. + my $is_excess = exists $change->{pages}[10]; + delete @{$change->{pages}}[10 .. @{$change->{pages}}] if $is_excess; + $change->{pages} = [ + map { + if (length $config{url}) { + $_->{link} = "{page},"")."\">". + IkiWiki::pagetitle($_->{page}).""; + } + else { + $_->{link} = IkiWiki::pagetitle($_->{page}); + } + $_; + } @{$change->{pages}} + ]; + push @{$change->{pages}}, { link => '...' } if $is_excess; + + # Fill out a template with the change info. + $change->{user} = IkiWiki::userlink($change->{user}); + my $ctime=$change->{when}; + $change->{when} = IkiWiki::displaytime($change->{when}, "%X %x"); + my $template=template("change.tmpl", blind_cache => 1); + $template->param(%$change); + $template->param(baseurl => "$config{url}/") if length $config{url}; + IkiWiki::run_hooks(pagetemplate => sub { + shift->(page => $page, destpage => $page, template => $template); + }); + + writefile($page."._change", $config{srcdir}, $template->output); + utime $ctime, $ctime, "$config{srcdir}/$page._change"; +} #}}} + +sub updatechanges () { #{{{ + my @changelog=IkiWiki::rcs_recentchanges(100); + foreach my $change (@changelog) { + store($change, "recentchanges"); + } + # TODO: delete old +} #}}} + +1 diff --git a/doc/plugins/recentchanges.mdwn b/doc/plugins/recentchanges.mdwn new file mode 100644 index 000000000..9e0d8dc51 --- /dev/null +++ b/doc/plugins/recentchanges.mdwn @@ -0,0 +1,14 @@ +[[template id=plugin name=recentchanges core=1 author="[[Joey]]"]] + +This plugin examines the [[revision_control_system|rcs]] history and +generates a page describing each recent change made to the wiki. These +pages can be joined together with [[inline]] to generate the +[[RecentChanges]] page. + +Typically only the RecentChanges page will use the plugin, but you can +use it elsewhere too if you like. It's used like this: + + \[[recentchanges pages="*" num=100 template=change]] + +The pages describing recent changes will be created as [[subpages|subpage]] +of the page where the `recentchanges` directive is placed. diff --git a/doc/recentchanges.mdwn b/doc/recentchanges.mdwn index 2e67f02e7..a027bf462 100644 --- a/doc/recentchanges.mdwn +++ b/doc/recentchanges.mdwn @@ -1,3 +1,3 @@ -ikiwiki generates the list of recent changes by examining the history of -the [[revision_control_system|rcs]] that the wiki is configured to use. You -have to have [[CGI]] set up for this feature to be enabled. +[[recentchanges pages="*" num=100 template=change]] +[[inline pages="recentchanges/change_* and !*/Discussion" +template=recentchanges show=0]] diff --git a/doc/todo/recentchanges.mdwn b/doc/todo/recentchanges.mdwn index bdd7948e4..75334659a 100644 --- a/doc/todo/recentchanges.mdwn +++ b/doc/todo/recentchanges.mdwn @@ -107,11 +107,8 @@ Here's a full design for redoing recentchanges, based on Ethan's ideas: aggregator, or they can set up their own page that uses the recentchanges directive for only the pages they want. * The `rcs_notify` functions will be removed. -* `rcs_getchange` is passed a change id (as returned from rcs_recentchanges) - and a partially filled out HTML::Template and fills out the remainer of the - template. So if a template is used that includes diffs, it will need to run - some expensive diffing operation, wikis with less resources can use a - template that doesn't include diffs and avoid that overhead. +* To add diffs, another plugin can add a pagetemplate hook that calls + a `rcs_diff`. (optional) * So to update the changes files, just call `rcs_recentchanges`, create files for each new id, and delete files for each id that is no longer included. diff --git a/doc/wikitemplates.mdwn b/doc/wikitemplates.mdwn index 4588b948e..8a579e183 100644 --- a/doc/wikitemplates.mdwn +++ b/doc/wikitemplates.mdwn @@ -10,11 +10,12 @@ located in /usr/share/ikiwiki/templates by default. * `page.tmpl` - Used for displaying all regular wiki pages. * `misc.tmpl` - Generic template used for any page that doesn't have a custom template. -* `recentchanges.tmpl` - Used for the RecentChanges page. * `editpage.tmpl` - Create/edit page. * `notifymail.tmpl` - Not a html template, this is used to generate change notification mails for users who have subscribed to changes to a page. +* `recentchanges.tmpl` - Used to generate a RecentChanges table with inline. +* `change.tmpl` - Used to create a page describing a change made to the wiki. * `passwordmail.tmpl` - Not a html template, this is used to generate the mail with the user's password in it. * `rsspage.tmpl` - Used for generating rss feeds for [blogs|[ikiwiki/blog]]. diff --git a/templates/change.tmpl b/templates/change.tmpl index af257a7ce..9dbc97ec2 100644 --- a/templates/change.tmpl +++ b/templates/change.tmpl @@ -1,15 +1,27 @@ -[[meta title=""" -
-"""]] -[[meta author=""]] - - - - "> - diff - - - - - - + + + + + + + + "> + diff + + + + + + + + + + + + + +
+
+
+ + diff --git a/templates/recentchanges.tmpl b/templates/recentchanges.tmpl index e03482f43..2e33b79f9 100644 --- a/templates/recentchanges.tmpl +++ b/templates/recentchanges.tmpl @@ -1,26 +1,4 @@ - - - - - -<TMPL_VAR TITLE> - - - - - - - - -
- -/ - -
- -
-
+ @@ -30,42 +8,9 @@ - - - - - - - - - - - - + + +
- - - "> - diff - - - - - - -
- - -
-
-
-
-
- - - - - + -- cgit v1.2.3 From 2ff726e87595d7496245f7c01e2bb217004979c0 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Tue, 29 Jan 2008 00:07:55 -0500 Subject: don't render internal-use pages, and document them --- IkiWiki/Render.pm | 1 + debian/changelog | 2 ++ doc/plugins/write.mdwn | 5 +++++ 3 files changed, 8 insertions(+) (limited to 'IkiWiki') diff --git a/IkiWiki/Render.pm b/IkiWiki/Render.pm index 4fefadf09..5684f8092 100644 --- a/IkiWiki/Render.pm +++ b/IkiWiki/Render.pm @@ -193,6 +193,7 @@ sub render ($) { #{{{ my $type=pagetype($file); my $srcfile=srcfile($file); if (defined $type) { + return if $type=~/^_/; my $page=pagename($file); delete $depends{$page}; will_render($page, htmlpage($page), 1); diff --git a/debian/changelog b/debian/changelog index b098bf966..b57ef1178 100644 --- a/debian/changelog +++ b/debian/changelog @@ -21,6 +21,8 @@ ikiwiki (2.21) UNRELEASED; urgency=low tables and the like. * prettydate,ddate: Don't ignore time formats passed to displaytime function. + * Pages with extensions starting with "_" are internal-use, and will + not be rendered or web-edited. -- Joey Hess Fri, 11 Jan 2008 15:09:37 -0500 diff --git a/doc/plugins/write.mdwn b/doc/plugins/write.mdwn index 0da425402..76fa3f0d7 100644 --- a/doc/plugins/write.mdwn +++ b/doc/plugins/write.mdwn @@ -143,6 +143,11 @@ specifies the filename extension that a file must have to be htmlized using this plugin. This is how you can add support for new and exciting markup languages to ikiwiki. +Note that if you choose a filename extension that starts with "_", +ikiwiki will not render the page, or allow the page to be edited with the +web interface. This is useful for certian types of internal-use pages, but +should generally be avoided. + The function is passed named parameters: "page" and "content" and should return the htmlized content. -- cgit v1.2.3 From d7fdd04b5a113b6dded40cb79b670b16570c11b3 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Tue, 29 Jan 2008 00:36:58 -0500 Subject: * Removed support for sending commit notification mails. Along with it went the svnrepo and notify settings, though both will be ignored if left in setup files. --- IkiWiki.pm | 2 - IkiWiki/CGI.pm | 13 +--- IkiWiki/Rcs/Stub.pm | 7 -- IkiWiki/Rcs/git.pm | 41 ---------- IkiWiki/Rcs/mercurial.pm | 4 - IkiWiki/Rcs/monotone.pm | 48 ------------ IkiWiki/Rcs/svn.pm | 38 ---------- IkiWiki/Rcs/tla.pm | 45 ----------- IkiWiki/UserInfo.pm | 87 ---------------------- IkiWiki/Wrapper.pm | 16 ---- debian/changelog | 3 + doc/bugs/git_mail_notification_race.mdwn | 2 + doc/features.mdwn | 7 +- doc/ikiwiki.setup | 3 - doc/index/discussion.mdwn | 3 + doc/rcs/monotone.mdwn | 1 - doc/setup.mdwn | 3 +- ...e_to_this_page__34___checkbox_on_edit_form.mdwn | 6 +- doc/todo/bzr.mdwn | 2 + doc/todo/mercurial.mdwn | 2 +- doc/usage.mdwn | 10 --- doc/wikitemplates.mdwn | 3 - docwiki.setup | 7 +- ikiwiki.in | 8 +- t/svn.t | 9 ++- templates/notifymail.tmpl | 4 - 26 files changed, 33 insertions(+), 341 deletions(-) delete mode 100644 templates/notifymail.tmpl (limited to 'IkiWiki') diff --git a/IkiWiki.pm b/IkiWiki.pm index b326dbdb8..2c3ddac23 100644 --- a/IkiWiki.pm +++ b/IkiWiki.pm @@ -62,7 +62,6 @@ sub defaultconfig () { #{{{ cgi => 0, post_commit => 0, rcs => '', - notify => 0, url => '', cgiurl => '', historyurl => '', @@ -76,7 +75,6 @@ sub defaultconfig () { #{{{ w3mmode => 0, wrapper => undef, wrappermode => undef, - svnrepo => undef, svnpath => "trunk", gitorigin_branch => "origin", gitmaster_branch => "master", diff --git a/IkiWiki/CGI.pm b/IkiWiki/CGI.pm index 5062a448f..55ee5d86a 100644 --- a/IkiWiki/CGI.pm +++ b/IkiWiki/CGI.pm @@ -242,9 +242,6 @@ sub cgi_prefs ($$) { #{{{ $form->field(name => "do", type => "hidden"); $form->field(name => "email", size => 50, fieldset => "preferences"); - $form->field(name => "subscriptions", size => 50, - fieldset => "preferences", - comment => "(".htmllink("", "", "ikiwiki/PageSpec", noimageinline => 1).")"); $form->field(name => "banned_users", size => 50, fieldset => "admin"); @@ -256,8 +253,6 @@ sub cgi_prefs ($$) { #{{{ if (! $form->submitted) { $form->field(name => "email", force => 1, value => userinfo_get($user_name, "email")); - $form->field(name => "subscriptions", force => 1, - value => userinfo_get($user_name, "subscriptions")); if (is_admin($user_name)) { $form->field(name => "banned_users", force => 1, value => join(" ", get_banned_users())); @@ -274,11 +269,9 @@ sub cgi_prefs ($$) { #{{{ return; } elsif ($form->submitted eq 'Save Preferences' && $form->validate) { - foreach my $field (qw(email subscriptions)) { - if (defined $form->field($field)) { - userinfo_set($user_name, $field, $form->field($field)) || - error("failed to set $field"); - } + if (defined $form->field('email')) { + userinfo_set($user_name, 'email', $form->field('email')) || + error("failed to set email"); } if (is_admin($user_name)) { set_banned_users(grep { ! is_admin($_) } diff --git a/IkiWiki/Rcs/Stub.pm b/IkiWiki/Rcs/Stub.pm index ab80a9a47..df347f6a9 100644 --- a/IkiWiki/Rcs/Stub.pm +++ b/IkiWiki/Rcs/Stub.pm @@ -57,13 +57,6 @@ sub rcs_recentchanges ($) { # } } -sub rcs_notify () { - # This function is called when a change is committed to the wiki, - # and ikiwiki is running as a post-commit hook from the RCS. - # It should examine the repository to somehow determine what pages - # changed, and then send emails to users subscribed to those pages. -} - sub rcs_getctime ($) { # Optional, used to get the page creation time from the RCS. error gettext("getctime not implemented"); diff --git a/IkiWiki/Rcs/git.pm b/IkiWiki/Rcs/git.pm index f70582136..26a6f4266 100644 --- a/IkiWiki/Rcs/git.pm +++ b/IkiWiki/Rcs/git.pm @@ -419,47 +419,6 @@ sub rcs_recentchanges ($) { #{{{ return @rets; } #}}} -sub rcs_notify () { #{{{ - # Send notification mail to subscribed users. - # - # In usual Git usage, hooks/update script is presumed to send - # notification mails (see git-receive-pack(1)). But we prefer - # hooks/post-update to support IkiWiki commits coming from a - # cloned repository (through command line) because post-update - # is called _after_ each ref in repository is updated (update - # hook is called _before_ the repository is updated). - # - # Here, we rely on a simple fact: we can extract all parts of the - # notification content by parsing the "HEAD" commit. - - my $ci = git_commit_info('HEAD'); - return if !defined $ci; - - my @changed_pages = map { $_->{'file'} } @{ $ci->{'details'} }; - - my ($user, $message); - if (@{ $ci->{'comment'} }[0] =~ m/$config{web_commit_regexp}/) { - $user = defined $2 ? $2 : $3; - $message = $4; - } - else { - $user = $ci->{'author_username'}; - $message = join "\n", @{ $ci->{'comment'} }; - } - - my $sha1 = $ci->{'sha1'}; - - require IkiWiki::UserInfo; - send_commit_mails( - sub { - $message; - }, - sub { - join "\n", run_or_die('git', 'diff', "${sha1}^", $sha1); - }, $user, @changed_pages - ); -} #}}} - sub rcs_getctime ($) { #{{{ my $file=shift; # Remove srcdir prefix diff --git a/IkiWiki/Rcs/mercurial.pm b/IkiWiki/Rcs/mercurial.pm index 13a88379c..db6a396ac 100644 --- a/IkiWiki/Rcs/mercurial.pm +++ b/IkiWiki/Rcs/mercurial.pm @@ -151,10 +151,6 @@ sub rcs_recentchanges ($) { #{{{ return @ret; } #}}} -sub rcs_notify () { #{{{ - # TODO -} #}}} - sub rcs_getctime ($) { #{{{ my ($file) = @_; diff --git a/IkiWiki/Rcs/monotone.pm b/IkiWiki/Rcs/monotone.pm index b48ac92db..0ae2c1a32 100644 --- a/IkiWiki/Rcs/monotone.pm +++ b/IkiWiki/Rcs/monotone.pm @@ -452,54 +452,6 @@ sub rcs_recentchanges ($) { #{{{ return @ret; } #}}} -sub rcs_notify () { #{{{ - debug("The monotone rcs_notify function is currently untested. Use at own risk!"); - - if (! exists $ENV{REV}) { - error(gettext("REV is not set, not running from mtn post-commit hook, cannot send notifications")); - } - if ($ENV{REV} !~ m/($sha1_pattern)/) { # sha1 is untainted now - error(gettext("REV is not a valid revision identifier, cannot send notifications")); - } - my $rev = $1; - - check_config(); - - my $automator = Monotone->new(); - $automator->open(undef, $config{mtnrootdir}); - - my $certs = [read_certs($automator, $rev)]; - my $user; - my $message; - my $when; - - foreach my $cert (@$certs) { - if ($cert->{signature} eq "ok" && $cert->{trust} eq "trusted") { - if ($cert->{name} eq "author") { - $user = $cert->{value}; - } elsif ($cert->{name} eq "date") { - $when = $cert->{value}; - } elsif ($cert->{name} eq "changelog") { - $message = $cert->{value}; - } - } - } - - my @changed_pages = get_changed_files($automator, $rev); - - $automator->close(); - - require IkiWiki::UserInfo; - send_commit_mails( - sub { - return $message; - }, - sub { - `mtn --root=$config{mtnrootdir} au content_diff -r $rev`; - }, - $user, @changed_pages); -} #}}} - sub rcs_getctime ($) { #{{{ my $file=shift; diff --git a/IkiWiki/Rcs/svn.pm b/IkiWiki/Rcs/svn.pm index 075f8da5a..f7d2242f0 100644 --- a/IkiWiki/Rcs/svn.pm +++ b/IkiWiki/Rcs/svn.pm @@ -217,44 +217,6 @@ sub rcs_recentchanges ($) { #{{{ return @ret; } #}}} -sub rcs_notify () { #{{{ - if (! exists $ENV{REV}) { - error(gettext("REV is not set, not running from svn post-commit hook, cannot send notifications")); - } - my $rev=int(possibly_foolish_untaint($ENV{REV})); - - my $user=`svnlook author $config{svnrepo} -r $rev`; - chomp $user; - - my $message=`svnlook log $config{svnrepo} -r $rev`; - if ($message=~/$config{web_commit_regexp}/) { - $user=defined $2 ? "$2" : "$3"; - $message=$4; - } - - my @changed_pages; - foreach my $change (`svnlook changed $config{svnrepo} -r $rev`) { - chomp $change; - if (length $config{svnpath}) { - if ($change =~ /^[A-Z]+\s+\Q$config{svnpath}\E\/(.*)/) { - push @changed_pages, $1; - } - } - else { - push @changed_pages, $change; - } - } - - require IkiWiki::UserInfo; - send_commit_mails( - sub { - return $message; - }, - sub { - `svnlook diff $config{svnrepo} -r $rev --no-diff-deleted`; - }, $user, @changed_pages); -} #}}} - sub rcs_getctime ($) { #{{{ my $file=shift; diff --git a/IkiWiki/Rcs/tla.pm b/IkiWiki/Rcs/tla.pm index 15824ffaf..ecc561bde 100644 --- a/IkiWiki/Rcs/tla.pm +++ b/IkiWiki/Rcs/tla.pm @@ -160,51 +160,6 @@ sub rcs_recentchanges ($) { return @ret; } -sub rcs_notify () { #{{{ - # FIXME: Not set - if (! exists $ENV{ARCH_VERSION}) { - error("ARCH_VERSION is not set, not running from tla post-commit hook, cannot send notifications"); - } - my $rev=int(possibly_foolish_untaint($ENV{REV})); - - eval q{use Mail::Header}; - error($@) if $@; - open(LOG, $ENV{"ARCH_LOG"}); - my $head = Mail::Header->new(\*LOG); - close(LOG); - - my $user = $head->get("Creator"); - - my $newfiles = $head->get("New-files"); - my $modfiles = $head->get("Modified-files"); - my $remfiles = $head->get("Removed-files"); - - my @changed_pages = grep { !/(^.*\/)?\.arch-ids\/.*\.id$/ } - split(/ /, "$newfiles $modfiles $remfiles .arch-ids/fake.id"); - - require IkiWiki::UserInfo; - send_commit_mails( - sub { - my $message = $head->get("Summary"); - if ($message =~ /$config{web_commit_regexp}/) { - $user=defined $2 ? "$2" : "$3"; - $message=$4; - } - }, - sub { - my $logs = `tla logs -d $config{srcdir}`; - my @changesets = reverse split(/\n/, $logs); - my $i; - - for($i=0;$i<$#changesets;$i++) { - last if $changesets[$i] eq $rev; - } - - my $revminusone = $changesets[$i+1]; - `tla diff -d $ENV{ARCH_TREE_ROOT} $revminusone`; - }, $user, @changed_pages); -} #}}} - sub rcs_getctime ($) { #{{{ my $file=shift; eval q{use Date::Parse}; diff --git a/IkiWiki/UserInfo.pm b/IkiWiki/UserInfo.pm index cfc27609d..2ffc51c55 100644 --- a/IkiWiki/UserInfo.pm +++ b/IkiWiki/UserInfo.pm @@ -92,91 +92,4 @@ sub set_banned_users (@) { #{{{ return userinfo_store($userinfo); } #}}} -sub commit_notify_list ($@) { #{{{ - my $committer=shift; - my @pages = map pagename($_), @_; - - my @ret; - my $userinfo=userinfo_retrieve(); - foreach my $user (keys %{$userinfo}) { - next if $user eq $committer; - if (exists $userinfo->{$user}->{subscriptions} && - length $userinfo->{$user}->{subscriptions} && - exists $userinfo->{$user}->{email} && - length $userinfo->{$user}->{email} && - grep { pagespec_match($_, - $userinfo->{$user}->{subscriptions}, - user => $committer) } - map pagename($_), @_) { - push @ret, $userinfo->{$user}->{email}; - } - } - return @ret; -} #}}} - -sub send_commit_mails ($$$@) { #{{{ - my $messagesub=shift; - my $diffsub=shift; - my $user=shift; - my @changed_pages=@_; - - return unless @changed_pages; - - my @email_recipients=commit_notify_list($user, @changed_pages); - if (@email_recipients) { - # TODO: if a commit spans multiple pages, this will send - # subscribers a diff that might contain pages they did not - # sign up for. Should separate the diff per page and - # reassemble into one mail with just the pages subscribed to. - my $diff=$diffsub->(); - my $message=$messagesub->(); - - my $pagelist; - if (@changed_pages > 2) { - $pagelist="$changed_pages[0] $changed_pages[1] ..."; - } - else { - $pagelist.=join(" ", @changed_pages); - } - #translators: The three variables are the name of the wiki, - #translators: A list of one or more pages that were changed, - #translators: And the name of the user making the change. - #translators: This is used as the subject of a commit email. - my $subject=sprintf(gettext("update of %s's %s by %s"), - $config{wikiname}, $pagelist, $user); - - my $template=template("notifymail.tmpl"); - $template->param( - wikiname => $config{wikiname}, - diff => $diff, - user => $user, - message => $message, - ); - - # Daemonize, in case the mail sending takes a while. - defined(my $pid = fork) or error("Can't fork: $!"); - return if $pid; - setsid() or error("Can't start a new session: $!"); - chdir '/'; - open STDIN, '/dev/null'; - open STDOUT, '>/dev/null'; - open STDERR, '>&STDOUT' or error("Can't dup stdout: $!"); - - unlockwiki(); # don't need to keep a lock on the wiki - - eval q{use Mail::Sendmail}; - error($@) if $@; - foreach my $email (@email_recipients) { - sendmail( - To => $email, - From => "$config{wikiname} <$config{adminemail}>", - Subject => $subject, - Message => $template->output, - ); - } - - exit 0; # daemon process done - } -} #}}} - 1 diff --git a/IkiWiki/Wrapper.pm b/IkiWiki/Wrapper.pm index 2103ea53a..90a4c46c7 100644 --- a/IkiWiki/Wrapper.pm +++ b/IkiWiki/Wrapper.pm @@ -36,22 +36,6 @@ sub gen_wrapper () { #{{{ addenv("$var", s); EOF } - if ($config{rcs} eq "svn" && $config{notify}) { - # Support running directly as hooks/post-commit by passing - # $2 in REV in the environment. - $envsave.=<<"EOF" - if (argc == 3) - addenv("REV", argv[2]); - else if ((s=getenv("REV"))) - addenv("REV", s); -EOF - } - if ($config{rcs} eq "tla" && $config{notify}) { - $envsave.=<<"EOF" - if ((s=getenv("ARCH_VERSION"))) - addenv("ARCH_VERSION", s); -EOF - } $Data::Dumper::Indent=0; # no newlines my $configstring=Data::Dumper->Dump([\%config], ['*config']); diff --git a/debian/changelog b/debian/changelog index b57ef1178..47273ea94 100644 --- a/debian/changelog +++ b/debian/changelog @@ -23,6 +23,9 @@ ikiwiki (2.21) UNRELEASED; urgency=low function. * Pages with extensions starting with "_" are internal-use, and will not be rendered or web-edited. + * Removed support for sending commit notification mails. Along with it went + the svnrepo and notify settings, though both will be ignored if left in + setup files. -- Joey Hess Fri, 11 Jan 2008 15:09:37 -0500 diff --git a/doc/bugs/git_mail_notification_race.mdwn b/doc/bugs/git_mail_notification_race.mdwn index 3538b0764..58bd82325 100644 --- a/doc/bugs/git_mail_notification_race.mdwn +++ b/doc/bugs/git_mail_notification_race.mdwn @@ -1,3 +1,5 @@ +[[done]] (in this branch); fixed removing email notification support! + I was suprised to receive two mails from ikiwiki about one web edit: 1 F Oct 30 To joey+ikiwiki update of ikiwiki's plugins/contrib/gallery.mdwn by http://arpitjain11.myopenid.com/ diff --git a/doc/features.mdwn b/doc/features.mdwn index a7b5c19ab..42eede916 100644 --- a/doc/features.mdwn +++ b/doc/features.mdwn @@ -127,7 +127,7 @@ with that there's no new commit marker syntax to learn. Nearly the definition of a wiki, although perhaps ikiwiki challenges how much of that web gunk a wiki really needs. These features are optional -and can be enabled by enabling [[CGI]]. +and can be enabled by enabling [[CGI]] and a [[Revision_Control_Systems|rcs]]. ### User registration @@ -161,11 +161,6 @@ Well, sorta. Rather than implementing YA history browser, it can link to ikiwiki can use the [[HyperEstraier]] search engine to add powerful full text search capabilities to your wiki. -### Commit mails - -ikiwiki can be configured to send you commit mails with diffs of changes -to selected pages. - ### [[w3mmode]] Can be set up so that w3m can be used to browse a wiki and edit pages diff --git a/doc/ikiwiki.setup b/doc/ikiwiki.setup index 44cb35425..c9616e849 100644 --- a/doc/ikiwiki.setup +++ b/doc/ikiwiki.setup @@ -23,7 +23,6 @@ use IkiWiki::Setup::Standard { #rcs => "svn", #historyurl => "http://svn.example.org/trunk/[[file]]", #diffurl => "http://svn.example.org/trunk/[[file]]?root=wiki&r1=[[r1]]&r2=[[r2]]", - #svnrepo => "/svn/wiki", #svnpath => "trunk", # Git stuff. @@ -72,8 +71,6 @@ use IkiWiki::Setup::Standard { # # what you want. # wrapper => "/svn/wikirepo/hooks/post-commit", # wrappermode => "04755", - # # Enable mail notifications of commits. - # notify => 1, # # Log to syslog since svn post-commit hooks # # hide output and errors. # syslog => 1, diff --git a/doc/index/discussion.mdwn b/doc/index/discussion.mdwn index d5a48f282..4cf38e9cb 100644 --- a/doc/index/discussion.mdwn +++ b/doc/index/discussion.mdwn @@ -405,6 +405,9 @@ I'm playing around with various ways that I can use subversion with ikiwiki. > away without running the post-commit wrapper on commit, and all you lose > is the ability to send commit notification emails. +> (And now that [[recentchanges]] includes rss, you can just subscribe to +> that, no need to worry about commit notification emails anymore.) + * Is it possible / sensible to have ikiwiki share a subversion repository with other data (either completely unrelated files or another ikiwiki instance)? This works in part but again the post-commit hook seems problematic. --[[AdamShand]] diff --git a/doc/rcs/monotone.mdwn b/doc/rcs/monotone.mdwn index d79381571..1d3cd2bc4 100644 --- a/doc/rcs/monotone.mdwn +++ b/doc/rcs/monotone.mdwn @@ -10,7 +10,6 @@ The module is available from the monotone source repository at: Monotone support works, but there are still a few minor missing bits (listed here so they are not forgotten): * At the moment there are no links to display diffs between revisions. It shouldn't be hard to add links to a [ViewMTN](http://grahame.angrygoats.net/moinmoin/ViewMTN) instance, but it hasn't been done yet. -* The [[post-commit]] hook support, so that Ikiwiki sends change notifications when people commit using Monotone rather than the web interface, is partially implemented and untested. * Documentation (this page) could be improved. There is also a mismatch between the way Ikiwiki handles conflicts and the way Monotone handles conflicts. At present, if there is a conflict, then Ikiwiki will commit a revision with conflict markers before presenting it to the user. This is ugly, but there is no clean way to fix it at present. diff --git a/doc/setup.mdwn b/doc/setup.mdwn index af1adc235..9bf7f7c7b 100644 --- a/doc/setup.mdwn +++ b/doc/setup.mdwn @@ -180,8 +180,7 @@ about using the git repositories. Once your wiki is checked in to the revision control system, you should configure ikiwiki to use revision control. Edit your ikiwiki.setup, and uncomment the lines for the revision control system -you chose to use. Be sure to set `svnrepo` to $REPOSITORY, if using -subversion. Uncomment the block for the wrapper for your revision +you chose to use. Uncomment the block for the wrapper for your revision control system, and configure the wrapper path in that block appropriately (for Git, it should be `$REPOSITORY/hooks/post-update`). diff --git a/doc/todo/__34__subscribe_to_this_page__34___checkbox_on_edit_form.mdwn b/doc/todo/__34__subscribe_to_this_page__34___checkbox_on_edit_form.mdwn index 70970c6cc..dc456bbbf 100644 --- a/doc/todo/__34__subscribe_to_this_page__34___checkbox_on_edit_form.mdwn +++ b/doc/todo/__34__subscribe_to_this_page__34___checkbox_on_edit_form.mdwn @@ -3,4 +3,8 @@ user to add a page to their subscribed list while editing. This would prove particularly useful for [[todo]] and [bug](bugs) items, to allow users to receive notifications for activity on their reports. ---[[JoshTriplett]] \ No newline at end of file +--[[JoshTriplett]] + +I went and removed commit notification mails entirely, the idea is that you +subscribe using the [[RecentChanges]] rss feed, and filter it on your end. +Good enough? --[[Joey]] diff --git a/doc/todo/bzr.mdwn b/doc/todo/bzr.mdwn index 9650b9da8..51ae08146 100644 --- a/doc/todo/bzr.mdwn +++ b/doc/todo/bzr.mdwn @@ -4,6 +4,8 @@ rcs_commit was only changed to work around bzr's lack of a switch to set the username). bzr_log could probably be written better by someone better at perl, and rcs_getctime and rcs_notify aren't written at all. --[[bma]] +(rcs_notify is not needed in this branch --[[Joey]]) + #!/usr/bin/perl use warnings; diff --git a/doc/todo/mercurial.mdwn b/doc/todo/mercurial.mdwn index e5de93521..608c7d681 100644 --- a/doc/todo/mercurial.mdwn +++ b/doc/todo/mercurial.mdwn @@ -1,6 +1,6 @@ * Need to get post commit hook working (or an example of how to use it.) * See below. --[[bma]] -* rcs_notify is not implemented +* rcs_notify is not implemented (not needed in this branch --[[Joey]]) * Is the code sufficiently robust? It just warns when mercurial fails. * When rcs_commit is called with a $user that is an openid, it will be passed through to mercurial -u. Will mercurial choke on this? diff --git a/doc/usage.mdwn b/doc/usage.mdwn index 136e969c2..354e266f1 100644 --- a/doc/usage.mdwn +++ b/doc/usage.mdwn @@ -133,11 +133,6 @@ configuration options of their own. access controlled by a group, it makes sense for the ikiwiki wrappers to run setgid to that group. -* --notify, --no-notify - - Enable email notification of commits. This should be used when running - ikiwiki as a [[post-commit]] hook. - * --rcs=svn|git|.., --no-rcs Enable or disable use of a [[revision_control_system|rcs]]. @@ -151,11 +146,6 @@ configuration options of their own. No revision control is enabled by default. -* --svnrepo /svn/wiki - - Specify the location of the svn repository for the wiki. This is required - for using --notify with [[Subversion|rcs/svn]]. - * --svnpath trunk Specify the path inside your svn repository where the wiki is located. diff --git a/doc/wikitemplates.mdwn b/doc/wikitemplates.mdwn index 8a579e183..b8341b637 100644 --- a/doc/wikitemplates.mdwn +++ b/doc/wikitemplates.mdwn @@ -11,9 +11,6 @@ located in /usr/share/ikiwiki/templates by default. * `misc.tmpl` - Generic template used for any page that doesn't have a custom template. * `editpage.tmpl` - Create/edit page. -* `notifymail.tmpl` - Not a html template, this is used to - generate change notification mails for users who have subscribed to - changes to a page. * `recentchanges.tmpl` - Used to generate a RecentChanges table with inline. * `change.tmpl` - Used to create a page describing a change made to the wiki. * `passwordmail.tmpl` - Not a html template, this is used to diff --git a/docwiki.setup b/docwiki.setup index 0a6a86678..5793d87bf 100644 --- a/docwiki.setup +++ b/docwiki.setup @@ -15,5 +15,10 @@ use IkiWiki::Setup::Standard { syslog => 0, userdir => "users", usedirs => 0, - add_plugins => [qw{goodstuff version haiku polygen fortune}], + rcs => 'git', + rss => 1, + cgiurl => "http://ikiwiki.info/ikiwiki.cgi", + url => "http://ikiwiki.info", + add_plugins => [qw{goodstuff version haiku polygen fortune + recentchanges }], } diff --git a/ikiwiki.in b/ikiwiki.in index 2aeaf94ec..9d1f6b520 100755 --- a/ikiwiki.in +++ b/ikiwiki.in @@ -36,12 +36,10 @@ sub getconfig () { #{{{ "cgi!" => \$config{cgi}, "discussion!" => \$config{discussion}, "w3mmode!" => \$config{w3mmode}, - "notify!" => \$config{notify}, "url=s" => \$config{url}, "cgiurl=s" => \$config{cgiurl}, "historyurl=s" => \$config{historyurl}, "diffurl=s" => \$config{diffurl}, - "svnrepo" => \$config{svnrepo}, "svnpath" => \$config{svnpath}, "adminemail=s" => \$config{adminemail}, "timeformat=s" => \$config{timeformat}, @@ -132,10 +130,7 @@ sub main () { #{{{ commandline_render(); } elsif ($config{post_commit} && ! commit_hook_enabled()) { - if ($config{notify}) { - loadindex(); - rcs_notify(); - } + # do nothing } else { lockwiki(); @@ -143,7 +138,6 @@ sub main () { #{{{ require IkiWiki::Render; rcs_update(); refresh(); - rcs_notify() if $config{notify}; saveindex(); } } #}}} diff --git a/t/svn.t b/t/svn.t index a1878a73d..8a8282c73 100755 --- a/t/svn.t +++ b/t/svn.t @@ -21,13 +21,14 @@ BEGIN { use_ok("IkiWiki"); } %config=IkiWiki::defaultconfig(); $config{rcs} = "svn"; $config{srcdir} = "$dir/src"; -$config{svnrepo} = "$dir/repo"; $config{svnpath} = "trunk"; IkiWiki::checkconfig(); -system "svnadmin create $config{svnrepo} >/dev/null"; -system "svn mkdir file://$config{svnrepo}/trunk -m add >/dev/null"; -system "svn co file://$config{svnrepo}/trunk $config{srcdir} >/dev/null"; +my $svnrepo = "$dir/repo"; + +system "svnadmin create $svnrepo >/dev/null"; +system "svn mkdir file://$svnrepo/trunk -m add >/dev/null"; +system "svn co file://$svnrepo/trunk $config{srcdir} >/dev/null"; # Web commit my $test1 = readfile("t/test1.mdwn"); diff --git a/templates/notifymail.tmpl b/templates/notifymail.tmpl deleted file mode 100644 index e3a1dd330..000000000 --- a/templates/notifymail.tmpl +++ /dev/null @@ -1,4 +0,0 @@ -The following change was made by : - - - -- cgit v1.2.3 From d2a369537688d31884a2a90886768dfc90b8d706 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Tue, 29 Jan 2008 01:03:15 -0500 Subject: some parameteraisation and generalisation --- IkiWiki/Plugin/recentchanges.pm | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) (limited to 'IkiWiki') diff --git a/IkiWiki/Plugin/recentchanges.pm b/IkiWiki/Plugin/recentchanges.pm index 94a2d4c33..6b36ea4c8 100644 --- a/IkiWiki/Plugin/recentchanges.pm +++ b/IkiWiki/Plugin/recentchanges.pm @@ -17,7 +17,8 @@ sub import { #{{{ } #}}} sub checkconfig () { #{{{ - updatechanges(); + my @changes=IkiWiki::rcs_recentchanges(100); + updatechanges("*", "recentchanges", \@changes); } #}}} sub needsbuild () { #{{{ @@ -45,7 +46,7 @@ sub store ($$) { #{{{ my $page="$subdir/change_".IkiWiki::titlepage($change->{rev}); # Optimisation to avoid re-writing pages. Assumes commits never - # change, or that any changes are not important. + # change (or that any changes are not important). return if exists $pagesources{$page} && ! $config{rebuild}; # Limit pages to first 10, and add links to the changed pages. @@ -67,24 +68,28 @@ sub store ($$) { #{{{ push @{$change->{pages}}, { link => '...' } if $is_excess; # Fill out a template with the change info. - $change->{user} = IkiWiki::userlink($change->{user}); - my $ctime=$change->{when}; - $change->{when} = IkiWiki::displaytime($change->{when}, "%X %x"); my $template=template("change.tmpl", blind_cache => 1); - $template->param(%$change); + $template->param( + user => IkiWiki::userlink($change->{user}), + when => IkiWiki::displaytime($change->{when}, "%X %x"), + pages => $change->{pages}, + message => $change->{message}, + ); $template->param(baseurl => "$config{url}/") if length $config{url}; IkiWiki::run_hooks(pagetemplate => sub { shift->(page => $page, destpage => $page, template => $template); }); writefile($page."._change", $config{srcdir}, $template->output); - utime $ctime, $ctime, "$config{srcdir}/$page._change"; + utime $change->{when}, $change->{when}, "$config{srcdir}/$page._change"; } #}}} -sub updatechanges () { #{{{ - my @changelog=IkiWiki::rcs_recentchanges(100); - foreach my $change (@changelog) { - store($change, "recentchanges"); +sub updatechanges ($$) { #{{{ + my $pagespec=shift; + my $subdir=shift; + my @changes=@{shift()}; + foreach my $change (@changes) { + store($change, $subdir); } # TODO: delete old } #}}} -- cgit v1.2.3 From 21f44880cdd8f23264b2416bf39793aadcb87df6 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Tue, 29 Jan 2008 01:48:55 -0500 Subject: non-tabular recentchanges display Doesn't look as good as the old table, but works as a rss feed. --- IkiWiki.pm | 23 +++++++++++++----- IkiWiki/CGI.pm | 53 ----------------------------------------- IkiWiki/Plugin/recentchanges.pm | 23 +++++++++++++----- doc/recentchanges.mdwn | 3 +-- doc/wikitemplates.mdwn | 1 - templates/change.tmpl | 49 ++++++++++++++++++------------------- templates/recentchanges.tmpl | 16 ------------- 7 files changed, 58 insertions(+), 110 deletions(-) delete mode 100644 templates/recentchanges.tmpl (limited to 'IkiWiki') diff --git a/IkiWiki.pm b/IkiWiki.pm index 2c3ddac23..c70307b5f 100644 --- a/IkiWiki.pm +++ b/IkiWiki.pm @@ -607,14 +607,11 @@ sub htmllink ($$$;@) { #{{{ return "$linktext"; } #}}} -sub userlink ($) { #{{{ +sub openiduser ($) { #{{{ my $user=shift; - eval q{use CGI 'escapeHTML'}; - error($@) if $@; if ($user =~ m!^https?://! && eval q{use Net::OpenID::VerifiedIdentity; 1} && !$@) { - # Munge user-urls, as used by eg, OpenID. my $oid=Net::OpenID::VerifiedIdentity->new(identity => $user); my $display=$oid->display; # Convert "user.somehost.com" to "user [somehost.com]". @@ -626,10 +623,24 @@ sub userlink ($) { #{{{ $display=~s/^https?:\/\/(.+)\/([^\/]+)$/$2 [$1]/; } $display=~s!^https?://!!; # make sure this is removed - return "".escapeHTML($display).""; + eval q{use CGI 'escapeHTML'}; + error($@) if $@; + return escapeHTML($display); + } + return; +} + +sub userlink ($) { #{{{ + my $user=shift; + + my $oiduser=openiduser($user); + if (defined $oiduser) { + return "$oiduser"; } else { - return $user; + return htmllink("", "", escapeHTML( + length $config{userdir} ? $config{userdir}."/".$user : $user + ), noimageinline => 1); } } #}}} diff --git a/IkiWiki/CGI.pm b/IkiWiki/CGI.pm index 55ee5d86a..c8c1b63dd 100644 --- a/IkiWiki/CGI.pm +++ b/IkiWiki/CGI.pm @@ -84,53 +84,6 @@ sub decode_cgi_utf8 ($) { #{{{ } } #}}} -sub cgi_recentchanges ($) { #{{{ - my $q=shift; - - # Optimisation: building recentchanges means calculating lots of - # links. Memoizing htmllink speeds it up a lot (can't be memoized - # during page builds as the return values may change, but they - # won't here.) - eval q{use Memoize}; - error($@) if $@; - memoize("htmllink"); - - eval q{use Time::Duration}; - error($@) if $@; - - my $changelog=[rcs_recentchanges(100)]; - foreach my $change (@$changelog) { - $change->{when} = concise(ago(time - $change->{when})); - - $change->{user} = userlink($change->{user}); - - my $is_excess = exists $change->{pages}[10]; # limit pages to first 10 - delete @{$change->{pages}}[10 .. @{$change->{pages}}] if $is_excess; - $change->{pages} = [ - map { - $_->{link} = htmllink("", "", $_->{page}, - noimageinline => 1, - linktext => pagetitle($_->{page})); - $_; - } @{$change->{pages}} - ]; - push @{$change->{pages}}, { link => '...' } if $is_excess; - } - - my $template=template("recentchanges.tmpl"); - $template->param( - title => "RecentChanges", - indexlink => indexlink(), - wikiname => $config{wikiname}, - changelog => $changelog, - baseurl => baseurl(), - ); - run_hooks(pagetemplate => sub { - shift->(page => "", destpage => "", template => $template); - }); - print $q->header(-charset => 'utf-8'), $template->output; -} #}}} - # Check if the user is signed in. If not, redirect to the signin form and # save their place to return to later. sub needsignin ($$) { #{{{ @@ -661,12 +614,6 @@ sub cgi (;$$) { #{{{ } } - # Things that do not need a session. - if ($do eq 'recentchanges') { - cgi_recentchanges($q); - return; - } - # Need to lock the wiki before getting a session. lockwiki(); diff --git a/IkiWiki/Plugin/recentchanges.pm b/IkiWiki/Plugin/recentchanges.pm index 6b36ea4c8..fb9841ffd 100644 --- a/IkiWiki/Plugin/recentchanges.pm +++ b/IkiWiki/Plugin/recentchanges.pm @@ -67,14 +67,25 @@ sub store ($$) { #{{{ ]; push @{$change->{pages}}, { link => '...' } if $is_excess; + # Take the first line of the commit message as a summary. + my $m=shift @{$change->{message}}; + $change->{summary}=$m->{line}; + + # See if the committer is an openid. + my $oiduser=IkiWiki::openiduser($change->{user}); + if (defined $oiduser) { + $change->{authorurl}=$change->{user}; + $change->{user}=$oiduser; + } + elsif (length $config{url}) { + $change->{authorurl}="$config{url}/". + (length $config{userdir} ? "$config{userdir}/" : ""). + $change->{user}; + } + # Fill out a template with the change info. my $template=template("change.tmpl", blind_cache => 1); - $template->param( - user => IkiWiki::userlink($change->{user}), - when => IkiWiki::displaytime($change->{when}, "%X %x"), - pages => $change->{pages}, - message => $change->{message}, - ); + $template->param(%$change); $template->param(baseurl => "$config{url}/") if length $config{url}; IkiWiki::run_hooks(pagetemplate => sub { shift->(page => $page, destpage => $page, template => $template); diff --git a/doc/recentchanges.mdwn b/doc/recentchanges.mdwn index a027bf462..b2c7f5d07 100644 --- a/doc/recentchanges.mdwn +++ b/doc/recentchanges.mdwn @@ -1,3 +1,2 @@ [[recentchanges pages="*" num=100 template=change]] -[[inline pages="recentchanges/change_* and !*/Discussion" -template=recentchanges show=0]] +[[inline pages="recentchanges/change_* and !*/Discussion" show=0]] diff --git a/doc/wikitemplates.mdwn b/doc/wikitemplates.mdwn index b8341b637..1f6325b4b 100644 --- a/doc/wikitemplates.mdwn +++ b/doc/wikitemplates.mdwn @@ -11,7 +11,6 @@ located in /usr/share/ikiwiki/templates by default. * `misc.tmpl` - Generic template used for any page that doesn't have a custom template. * `editpage.tmpl` - Create/edit page. -* `recentchanges.tmpl` - Used to generate a RecentChanges table with inline. * `change.tmpl` - Used to create a page describing a change made to the wiki. * `passwordmail.tmpl` - Not a html template, this is used to generate the mail with the user's password in it. diff --git a/templates/change.tmpl b/templates/change.tmpl index 9dbc97ec2..f02b5eb19 100644 --- a/templates/change.tmpl +++ b/templates/change.tmpl @@ -1,27 +1,24 @@ +[[meta author=""""""]] + +[[meta authorurl=""""""]] + +[[meta title=""""""]] +

+ + +
+
+
+

+

+ + + + "> + diff + + + + +changed via - - - - - - - "> - diff - - - - - - - - - - - - - -
-
-
- - diff --git a/templates/recentchanges.tmpl b/templates/recentchanges.tmpl deleted file mode 100644 index 2e33b79f9..000000000 --- a/templates/recentchanges.tmpl +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - - - -
usertimechanges
-
-- cgit v1.2.3 From 38e79f206edf7a6ae80fb2beeb026eadff0a4e0c Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Tue, 29 Jan 2008 04:44:05 -0500 Subject: more style improvements --- IkiWiki/Plugin/recentchanges.pm | 11 +++++++--- doc/recentchanges.mdwn | 5 ++++- doc/style.css | 48 ++++++++++++++++++++++++++++++----------- templates/change.tmpl | 26 ++++++++++++++++------ templates/inlinechange.tmpl | 6 +----- 5 files changed, 68 insertions(+), 28 deletions(-) (limited to 'IkiWiki') diff --git a/IkiWiki/Plugin/recentchanges.pm b/IkiWiki/Plugin/recentchanges.pm index fb9841ffd..bdd386c7b 100644 --- a/IkiWiki/Plugin/recentchanges.pm +++ b/IkiWiki/Plugin/recentchanges.pm @@ -68,8 +68,9 @@ sub store ($$) { #{{{ push @{$change->{pages}}, { link => '...' } if $is_excess; # Take the first line of the commit message as a summary. - my $m=shift @{$change->{message}}; - $change->{summary}=$m->{line}; + #my $m=shift @{$change->{message}}; + #$change->{summary}=$m->{line}; + #delete $change->{message} unless @{$change->{message}}; # See if the committer is an openid. my $oiduser=IkiWiki::openiduser($change->{user}); @@ -85,7 +86,11 @@ sub store ($$) { #{{{ # Fill out a template with the change info. my $template=template("change.tmpl", blind_cache => 1); - $template->param(%$change); + $template->param( + %$change, + commitdate => displaytime($change->{when}, "%x %x"), + wikiname => $config{wikiname}, + ); $template->param(baseurl => "$config{url}/") if length $config{url}; IkiWiki::run_hooks(pagetemplate => sub { shift->(page => $page, destpage => $page, template => $template); diff --git a/doc/recentchanges.mdwn b/doc/recentchanges.mdwn index b2c7f5d07..4e9ee91ec 100644 --- a/doc/recentchanges.mdwn +++ b/doc/recentchanges.mdwn @@ -1,2 +1,5 @@ +Recent changes to this wiki: + [[recentchanges pages="*" num=100 template=change]] -[[inline pages="recentchanges/change_* and !*/Discussion" show=0]] +[[inline pages="recentchanges/change_* and !*/Discussion" +template=inlinechange show=0]] diff --git a/doc/style.css b/doc/style.css index 0fa15d2b1..026d2c881 100644 --- a/doc/style.css +++ b/doc/style.css @@ -70,27 +70,49 @@ img { border-style: none; } -/* Stuff for the RecentChanges table. */ -tr.changeheader { +div.recentchanges { + border-style: solid; + border-width: 1px; + overflow: auto; + width: 100%; background: #eee; color: black !important; } -tr.changeinfo { - background: #eee; +.recentchanges .metadata { + padding: 0px 0.5em; +} +.recentchanges .changelog { + font-style: italic; + clear: both; + display: block; + padding: 1px 2px; + background: white !important; color: black !important; } -th.changeheader { - padding: 1px .3em; +.recentchanges .desc { + display: none; +} +.recentchanges .committer { + float: left; + margin: 0; + width: 40%; } -td.changeinfo { - padding: 1px .3em; +.recentchanges .committype { + float: left; + margin: 0; + width: 5%; + font-size: small; } -td.changetime { - white-space: nowrap; - padding: 1px .3em; +.recentchanges .changedate { + float: left; + margin: 0; + width: 35%; + font-size: small; } -td.changelog { - font-style: italic; +.recentchanges .pagelinks { + float: right; + margin: 0; + width: 60%; } /* Used for adding a blog page. */ diff --git a/templates/change.tmpl b/templates/change.tmpl index f02b5eb19..6df365250 100644 --- a/templates/change.tmpl +++ b/templates/change.tmpl @@ -2,16 +2,17 @@ [[meta authorurl=""""""]] -[[meta title=""""""]] -

+[[meta title="""update of 's """]] +


-

-

- +

+ diff --git a/templates/inlinechange.tmpl b/templates/inlinechange.tmpl index 669911184..340a157d1 100644 --- a/templates/inlinechange.tmpl +++ b/templates/inlinechange.tmpl @@ -1,11 +1,7 @@ -
+
-
Date:
- - -
-- cgit v1.2.3 From 85eb1abc6198f16f6f887e811186ea4a7c095e1d Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Tue, 29 Jan 2008 04:45:54 -0500 Subject: typo --- IkiWiki/Plugin/recentchanges.pm | 2 +- po/bg.po | 168 +++++++++++++++++++--------------------- po/cs.po | 162 +++++++++++++++++++------------------- po/da.po | 160 ++++++++++++++++++-------------------- po/es.po | 162 ++++++++++++++++++-------------------- po/fr.po | 163 ++++++++++++++++++-------------------- po/gu.po | 156 ++++++++++++++++++------------------- po/ikiwiki.pot | 125 ++++++++++++------------------ po/pl.po | 165 +++++++++++++++++++-------------------- po/sv.po | 165 +++++++++++++++++++-------------------- po/vi.po | 159 ++++++++++++++++++------------------- 11 files changed, 746 insertions(+), 841 deletions(-) (limited to 'IkiWiki') diff --git a/IkiWiki/Plugin/recentchanges.pm b/IkiWiki/Plugin/recentchanges.pm index bdd386c7b..5727f9af1 100644 --- a/IkiWiki/Plugin/recentchanges.pm +++ b/IkiWiki/Plugin/recentchanges.pm @@ -88,7 +88,7 @@ sub store ($$) { #{{{ my $template=template("change.tmpl", blind_cache => 1); $template->param( %$change, - commitdate => displaytime($change->{when}, "%x %x"), + commitdate => displaytime($change->{when}, "%X %x"), wikiname => $config{wikiname}, ); $template->param(baseurl => "$config{url}/") if length $config{url}; diff --git a/po/bg.po b/po/bg.po index 50c2afc46..32132475e 100644 --- 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-01-09 02:42-0500\n" +"POT-Creation-Date: 2008-01-29 04:45-0500\n" "PO-Revision-Date: 2007-01-12 01:19+0200\n" "Last-Translator: Damyan Ivanov \n" "Language-Team: Bulgarian \n" @@ -16,120 +16,120 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.11.4\n" -#: ../IkiWiki/CGI.pm:172 +#: ../IkiWiki/CGI.pm:125 msgid "You need to log in first." msgstr "Първо трябва да влезете." -#: ../IkiWiki/CGI.pm:202 +#: ../IkiWiki/CGI.pm:155 msgid "login failed, perhaps you need to turn on cookies?" msgstr "" -#: ../IkiWiki/CGI.pm:231 +#: ../IkiWiki/CGI.pm:184 msgid "Login" msgstr "" -#: ../IkiWiki/CGI.pm:232 +#: ../IkiWiki/CGI.pm:185 #, fuzzy msgid "Preferences" msgstr "Предпочитанията са запазени." -#: ../IkiWiki/CGI.pm:233 +#: ../IkiWiki/CGI.pm:186 msgid "Admin" msgstr "" -#: ../IkiWiki/CGI.pm:289 +#: ../IkiWiki/CGI.pm:235 msgid "Preferences saved." msgstr "Предпочитанията са запазени." -#: ../IkiWiki/CGI.pm:345 +#: ../IkiWiki/CGI.pm:291 #, perl-format msgid "%s is not an editable page" msgstr "" -#: ../IkiWiki/CGI.pm:436 ../IkiWiki/Plugin/brokenlinks.pm:24 -#: ../IkiWiki/Plugin/inline.pm:239 ../IkiWiki/Plugin/opendiscussion.pm:17 +#: ../IkiWiki/CGI.pm:382 ../IkiWiki/Plugin/brokenlinks.pm:24 +#: ../IkiWiki/Plugin/inline.pm:241 ../IkiWiki/Plugin/opendiscussion.pm:17 #: ../IkiWiki/Plugin/orphans.pm:28 ../IkiWiki/Render.pm:98 #: ../IkiWiki/Render.pm:178 msgid "discussion" msgstr "дискусия" -#: ../IkiWiki/CGI.pm:482 +#: ../IkiWiki/CGI.pm:429 #, perl-format msgid "creating %s" msgstr "създаване на %s" -#: ../IkiWiki/CGI.pm:500 ../IkiWiki/CGI.pm:519 ../IkiWiki/CGI.pm:529 -#: ../IkiWiki/CGI.pm:563 ../IkiWiki/CGI.pm:611 +#: ../IkiWiki/CGI.pm:447 ../IkiWiki/CGI.pm:466 ../IkiWiki/CGI.pm:476 +#: ../IkiWiki/CGI.pm:510 ../IkiWiki/CGI.pm:558 #, perl-format msgid "editing %s" msgstr "промяна на %s" -#: ../IkiWiki/CGI.pm:705 +#: ../IkiWiki/CGI.pm:646 msgid "You are banned." msgstr "Достъпът ви е забранен." -#: ../IkiWiki/Plugin/aggregate.pm:71 +#: ../IkiWiki/Plugin/aggregate.pm:82 #, fuzzy, perl-format msgid "missing %s parameter" msgstr "липсващ параметър „id” на шаблона" -#: ../IkiWiki/Plugin/aggregate.pm:99 +#: ../IkiWiki/Plugin/aggregate.pm:110 msgid "new feed" msgstr "нов източник" -#: ../IkiWiki/Plugin/aggregate.pm:113 +#: ../IkiWiki/Plugin/aggregate.pm:124 msgid "posts" msgstr "съобщения" -#: ../IkiWiki/Plugin/aggregate.pm:115 +#: ../IkiWiki/Plugin/aggregate.pm:126 msgid "new" msgstr "ново" -#: ../IkiWiki/Plugin/aggregate.pm:231 +#: ../IkiWiki/Plugin/aggregate.pm:236 #, perl-format msgid "expiring %s (%s days old)" msgstr "премахване на „%s” (на %s дни)" -#: ../IkiWiki/Plugin/aggregate.pm:238 +#: ../IkiWiki/Plugin/aggregate.pm:243 #, perl-format msgid "expiring %s" msgstr "премахване на „%s”" -#: ../IkiWiki/Plugin/aggregate.pm:264 +#: ../IkiWiki/Plugin/aggregate.pm:269 #, perl-format msgid "processed ok at %s" msgstr "е обработен нормално от %s" -#: ../IkiWiki/Plugin/aggregate.pm:269 +#: ../IkiWiki/Plugin/aggregate.pm:274 #, perl-format msgid "checking feed %s ..." msgstr "проверка на източника „%s”" -#: ../IkiWiki/Plugin/aggregate.pm:274 +#: ../IkiWiki/Plugin/aggregate.pm:279 #, perl-format msgid "could not find feed at %s" msgstr "не е намерен източник на адрес „%s”" -#: ../IkiWiki/Plugin/aggregate.pm:289 +#: ../IkiWiki/Plugin/aggregate.pm:294 #, fuzzy msgid "feed not found" msgstr "шаблонът „%s” не е намерен" -#: ../IkiWiki/Plugin/aggregate.pm:300 +#: ../IkiWiki/Plugin/aggregate.pm:305 #, perl-format msgid "(invalid UTF-8 stripped from feed)" msgstr "" -#: ../IkiWiki/Plugin/aggregate.pm:306 +#: ../IkiWiki/Plugin/aggregate.pm:311 #, perl-format msgid "(feed entities escaped)" msgstr "" -#: ../IkiWiki/Plugin/aggregate.pm:312 +#: ../IkiWiki/Plugin/aggregate.pm:317 msgid "feed crashed XML::Feed!" msgstr "данните от източника предизвикаха грешка в модула XML::Feed!" -#: ../IkiWiki/Plugin/aggregate.pm:386 +#: ../IkiWiki/Plugin/aggregate.pm:391 #, perl-format msgid "creating new page %s" msgstr "създаване на нова страницa „%s”" @@ -227,11 +227,11 @@ msgstr "" msgid "nonexistant template %s" msgstr "" -#: ../IkiWiki/Plugin/inline.pm:247 ../IkiWiki/Render.pm:102 +#: ../IkiWiki/Plugin/inline.pm:249 ../IkiWiki/Render.pm:102 msgid "Discussion" msgstr "Дискусия" -#: ../IkiWiki/Plugin/inline.pm:461 +#: ../IkiWiki/Plugin/inline.pm:463 msgid "RPC::XML::Client not found, not pinging" msgstr "модулът „RPC::XML::Client” не е намерен; източникът не е проверен" @@ -253,17 +253,17 @@ msgstr "" "грешка при зареждането на perl-модула „Markdown.pm” (%s) или „/usr/bin/" "markdown” (%s)" -#: ../IkiWiki/Plugin/meta.pm:132 +#: ../IkiWiki/Plugin/meta.pm:124 #, fuzzy msgid "stylesheet not found" msgstr "шаблонът „%s” не е намерен" -#: ../IkiWiki/Plugin/meta.pm:156 +#: ../IkiWiki/Plugin/meta.pm:148 #, fuzzy msgid "redir page not found" msgstr "шаблонът „%s” не е намерен" -#: ../IkiWiki/Plugin/meta.pm:169 +#: ../IkiWiki/Plugin/meta.pm:161 #, fuzzy msgid "redir cycle is not allowed" msgstr "шаблонът „%s” не е намерен" @@ -388,15 +388,15 @@ msgstr "" msgid "%A night" msgstr "" -#: ../IkiWiki/Plugin/prettydate.pm:74 +#: ../IkiWiki/Plugin/prettydate.pm:78 msgid "at teatime on %A" msgstr "" -#: ../IkiWiki/Plugin/prettydate.pm:78 +#: ../IkiWiki/Plugin/prettydate.pm:82 msgid "at midnight" msgstr "" -#: ../IkiWiki/Plugin/prettydate.pm:81 +#: ../IkiWiki/Plugin/prettydate.pm:85 msgid "at noon on %A" msgstr "" @@ -516,7 +516,7 @@ msgstr "" msgid "code includes disallowed latex commands" msgstr "" -#: ../IkiWiki/Plugin/teximg.pm:97 +#: ../IkiWiki/Plugin/teximg.pm:96 #, fuzzy msgid "failed to generate image from code" msgstr "грешка при запис на файла „%s”: %s" @@ -525,75 +525,51 @@ msgstr "грешка при запис на файла „%s”: %s" msgid "(not toggleable in preview mode)" msgstr "" -#: ../IkiWiki/Rcs/Stub.pm:68 +#: ../IkiWiki/Rcs/Stub.pm:62 msgid "getctime not implemented" msgstr "функцията „getctime” не е реализирана" -#: ../IkiWiki/Rcs/monotone.pm:459 -#, fuzzy -msgid "" -"REV is not set, not running from mtn post-commit hook, cannot send " -"notifications" -msgstr "" -"Променливата от обкръжението „REV” не е указана. Програмата не се изпълнява " -"като „svn post-commit hook”. Няма да бъдат разпратени известявания" - -#: ../IkiWiki/Rcs/monotone.pm:462 -#, fuzzy -msgid "REV is not a valid revision identifier, cannot send notifications" -msgstr "" -"Променливата от обкръжението „REV” не е указана. Програмата не се изпълнява " -"като „svn post-commit hook”. Няма да бъдат разпратени известявания" - -#: ../IkiWiki/Rcs/svn.pm:221 -msgid "" -"REV is not set, not running from svn post-commit hook, cannot send " -"notifications" -msgstr "" -"Променливата от обкръжението „REV” не е указана. Програмата не се изпълнява " -"като „svn post-commit hook”. Няма да бъдат разпратени известявания" - -#: ../IkiWiki/Render.pm:275 ../IkiWiki/Render.pm:296 +#: ../IkiWiki/Render.pm:276 ../IkiWiki/Render.pm:297 #, perl-format msgid "skipping bad filename %s" msgstr "пропускане на невалидното име на файл „%s”" -#: ../IkiWiki/Render.pm:338 +#: ../IkiWiki/Render.pm:339 #, perl-format msgid "removing old page %s" msgstr "премахване на старата страница „%s”" -#: ../IkiWiki/Render.pm:371 +#: ../IkiWiki/Render.pm:372 #, perl-format msgid "scanning %s" msgstr "сканиране на „%s”" -#: ../IkiWiki/Render.pm:376 +#: ../IkiWiki/Render.pm:377 #, perl-format msgid "rendering %s" msgstr "обновяване на страницата „%s”" -#: ../IkiWiki/Render.pm:388 +#: ../IkiWiki/Render.pm:389 #, perl-format msgid "rendering %s, which links to %s" msgstr "обновяване на страницата „%s”, съдържаща препратки към „%s”" -#: ../IkiWiki/Render.pm:405 +#: ../IkiWiki/Render.pm:406 #, perl-format msgid "rendering %s, which depends on %s" msgstr "обновяване на страницата „%s”, зависеща от „%s”" -#: ../IkiWiki/Render.pm:443 +#: ../IkiWiki/Render.pm:444 #, perl-format msgid "rendering %s, to update its backlinks" msgstr "обновяване на „%s” и осъвременяване на обратните връзки" -#: ../IkiWiki/Render.pm:455 +#: ../IkiWiki/Render.pm:456 #, perl-format msgid "removing %s, no longer rendered by %s" msgstr "премахване на „%s” понеже не се генерира от „%s”" -#: ../IkiWiki/Render.pm:481 +#: ../IkiWiki/Render.pm:482 #, perl-format msgid "ikiwiki: cannot render %s" msgstr "ikiwiki: неуспех при обновяване на страницата „%s”" @@ -621,15 +597,6 @@ msgstr "осъвременяване на уики..." msgid "done" msgstr "готово" -#. translators: The three variables are the name of the wiki, -#. translators: A list of one or more pages that were changed, -#. translators: And the name of the user making the change. -#. translators: This is used as the subject of a commit email. -#: ../IkiWiki/UserInfo.pm:145 -#, perl-format -msgid "update of %s's %s by %s" -msgstr "обновяване на страниците от уики „%s”: %s от потребител „%s”" - #: ../IkiWiki/Wrapper.pm:16 #, perl-format msgid "%s doesn't seem to be executable" @@ -645,19 +612,19 @@ msgstr "не е указан файл на обвивката" #. translators: The first parameter is a filename, and the second is #. translators: a (probably not translated) error message. -#: ../IkiWiki/Wrapper.pm:64 +#: ../IkiWiki/Wrapper.pm:48 #, perl-format msgid "failed to write %s: %s" msgstr "грешка при запис на файла „%s”: %s" #. translators: The parameter is a C filename. -#: ../IkiWiki/Wrapper.pm:115 +#: ../IkiWiki/Wrapper.pm:99 #, perl-format msgid "failed to compile %s" msgstr "крешка при компилиране на файла %s" #. translators: The parameter is a filename. -#: ../IkiWiki/Wrapper.pm:135 +#: ../IkiWiki/Wrapper.pm:119 #, perl-format msgid "successfully generated %s" msgstr "успешно генериране на %s" @@ -666,17 +633,17 @@ msgstr "успешно генериране на %s" msgid "usage: ikiwiki [options] source dest" msgstr "формат: ikiwiki [опции] източник местоназначение" -#: ../ikiwiki.in:83 +#: ../ikiwiki.in:81 msgid "usage: --set var=value" msgstr "" -#: ../IkiWiki.pm:129 +#: ../IkiWiki.pm:127 msgid "Must specify url to wiki with --url when using --cgi" msgstr "" "При използване на пареметъра „--cgi” е необходимо да се укаже и " "местоположението на уикито чрез параметъра „--url”" -#: ../IkiWiki.pm:198 ../IkiWiki.pm:199 +#: ../IkiWiki.pm:196 ../IkiWiki.pm:197 msgid "Error" msgstr "Грешка" @@ -684,11 +651,38 @@ msgstr "Грешка" #. translators: preprocessor directive name, #. translators: the second a page name, the #. translators: third a number. -#: ../IkiWiki.pm:722 +#: ../IkiWiki.pm:767 #, perl-format msgid "%s preprocessing loop detected on %s at depth %i" msgstr "открита е циклична завидимост при %s на „%s” на дълбочина %i" +#, fuzzy +#~ msgid "" +#~ "REV is not set, not running from mtn post-commit hook, cannot send " +#~ "notifications" +#~ msgstr "" +#~ "Променливата от обкръжението „REV” не е указана. Програмата не се " +#~ "изпълнява като „svn post-commit hook”. Няма да бъдат разпратени " +#~ "известявания" + +#, fuzzy +#~ msgid "REV is not a valid revision identifier, cannot send notifications" +#~ msgstr "" +#~ "Променливата от обкръжението „REV” не е указана. Програмата не се " +#~ "изпълнява като „svn post-commit hook”. Няма да бъдат разпратени " +#~ "известявания" + +#~ msgid "" +#~ "REV is not set, not running from svn post-commit hook, cannot send " +#~ "notifications" +#~ msgstr "" +#~ "Променливата от обкръжението „REV” не е указана. Програмата не се " +#~ "изпълнява като „svn post-commit hook”. Няма да бъдат разпратени " +#~ "известявания" + +#~ msgid "update of %s's %s by %s" +#~ msgstr "обновяване на страниците от уики „%s”: %s от потребител „%s”" + #, fuzzy #~ msgid "%s not found" #~ msgstr "шаблонът „%s” не е намерен" diff --git a/po/cs.po b/po/cs.po index 17e27c704..84ece7103 100644 --- 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-01-09 02:42-0500\n" +"POT-Creation-Date: 2008-01-29 04:45-0500\n" "PO-Revision-Date: 2007-05-09 21:21+0200\n" "Last-Translator: Miroslav Kure \n" "Language-Team: Czech \n" @@ -15,118 +15,118 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../IkiWiki/CGI.pm:172 +#: ../IkiWiki/CGI.pm:125 msgid "You need to log in first." msgstr "Nejprve se musíte přihlásit." -#: ../IkiWiki/CGI.pm:202 +#: ../IkiWiki/CGI.pm:155 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:231 +#: ../IkiWiki/CGI.pm:184 msgid "Login" msgstr "Přihlášení" -#: ../IkiWiki/CGI.pm:232 +#: ../IkiWiki/CGI.pm:185 msgid "Preferences" msgstr "Předvolby" -#: ../IkiWiki/CGI.pm:233 +#: ../IkiWiki/CGI.pm:186 msgid "Admin" msgstr "Správce" -#: ../IkiWiki/CGI.pm:289 +#: ../IkiWiki/CGI.pm:235 msgid "Preferences saved." msgstr "Nastavení uloženo." -#: ../IkiWiki/CGI.pm:345 +#: ../IkiWiki/CGI.pm:291 #, perl-format msgid "%s is not an editable page" msgstr "%s není editovatelná stránka" -#: ../IkiWiki/CGI.pm:436 ../IkiWiki/Plugin/brokenlinks.pm:24 -#: ../IkiWiki/Plugin/inline.pm:239 ../IkiWiki/Plugin/opendiscussion.pm:17 +#: ../IkiWiki/CGI.pm:382 ../IkiWiki/Plugin/brokenlinks.pm:24 +#: ../IkiWiki/Plugin/inline.pm:241 ../IkiWiki/Plugin/opendiscussion.pm:17 #: ../IkiWiki/Plugin/orphans.pm:28 ../IkiWiki/Render.pm:98 #: ../IkiWiki/Render.pm:178 msgid "discussion" msgstr "diskuse" -#: ../IkiWiki/CGI.pm:482 +#: ../IkiWiki/CGI.pm:429 #, perl-format msgid "creating %s" msgstr "vytvářím %s" -#: ../IkiWiki/CGI.pm:500 ../IkiWiki/CGI.pm:519 ../IkiWiki/CGI.pm:529 -#: ../IkiWiki/CGI.pm:563 ../IkiWiki/CGI.pm:611 +#: ../IkiWiki/CGI.pm:447 ../IkiWiki/CGI.pm:466 ../IkiWiki/CGI.pm:476 +#: ../IkiWiki/CGI.pm:510 ../IkiWiki/CGI.pm:558 #, perl-format msgid "editing %s" msgstr "upravuji %s" -#: ../IkiWiki/CGI.pm:705 +#: ../IkiWiki/CGI.pm:646 msgid "You are banned." msgstr "Jste vyhoštěni." -#: ../IkiWiki/Plugin/aggregate.pm:71 +#: ../IkiWiki/Plugin/aggregate.pm:82 #, perl-format msgid "missing %s parameter" msgstr "chybí parametr %s" -#: ../IkiWiki/Plugin/aggregate.pm:99 +#: ../IkiWiki/Plugin/aggregate.pm:110 msgid "new feed" msgstr "nový zdroj" -#: ../IkiWiki/Plugin/aggregate.pm:113 +#: ../IkiWiki/Plugin/aggregate.pm:124 msgid "posts" msgstr "příspěvky" -#: ../IkiWiki/Plugin/aggregate.pm:115 +#: ../IkiWiki/Plugin/aggregate.pm:126 msgid "new" msgstr "nový" -#: ../IkiWiki/Plugin/aggregate.pm:231 +#: ../IkiWiki/Plugin/aggregate.pm:236 #, perl-format msgid "expiring %s (%s days old)" msgstr "expiruji %s (stará %s dnů)" -#: ../IkiWiki/Plugin/aggregate.pm:238 +#: ../IkiWiki/Plugin/aggregate.pm:243 #, perl-format msgid "expiring %s" msgstr "expiruji %s" -#: ../IkiWiki/Plugin/aggregate.pm:264 +#: ../IkiWiki/Plugin/aggregate.pm:269 #, perl-format msgid "processed ok at %s" msgstr "zpracováno ok %s" -#: ../IkiWiki/Plugin/aggregate.pm:269 +#: ../IkiWiki/Plugin/aggregate.pm:274 #, perl-format msgid "checking feed %s ..." msgstr "kontroluji zdroj %s ..." -#: ../IkiWiki/Plugin/aggregate.pm:274 +#: ../IkiWiki/Plugin/aggregate.pm:279 #, perl-format msgid "could not find feed at %s" msgstr "nemohu najít zdroj na %s" -#: ../IkiWiki/Plugin/aggregate.pm:289 +#: ../IkiWiki/Plugin/aggregate.pm:294 msgid "feed not found" msgstr "zdroj nebyl nalezen" -#: ../IkiWiki/Plugin/aggregate.pm:300 +#: ../IkiWiki/Plugin/aggregate.pm:305 #, perl-format msgid "(invalid UTF-8 stripped from feed)" msgstr "(neplatné UTF-8 bylo ze zdroje odstraněno)" -#: ../IkiWiki/Plugin/aggregate.pm:306 +#: ../IkiWiki/Plugin/aggregate.pm:311 #, perl-format msgid "(feed entities escaped)" msgstr "" -#: ../IkiWiki/Plugin/aggregate.pm:312 +#: ../IkiWiki/Plugin/aggregate.pm:317 msgid "feed crashed XML::Feed!" msgstr "zdroj shodil XML::Feed!" -#: ../IkiWiki/Plugin/aggregate.pm:386 +#: ../IkiWiki/Plugin/aggregate.pm:391 #, perl-format msgid "creating new page %s" msgstr "vytvářím novou stránku %s" @@ -220,11 +220,11 @@ msgstr "Přidat nový příspěvek nazvaný:" msgid "nonexistant template %s" msgstr "neexistující šablona %s" -#: ../IkiWiki/Plugin/inline.pm:247 ../IkiWiki/Render.pm:102 +#: ../IkiWiki/Plugin/inline.pm:249 ../IkiWiki/Render.pm:102 msgid "Discussion" msgstr "Diskuse" -#: ../IkiWiki/Plugin/inline.pm:461 +#: ../IkiWiki/Plugin/inline.pm:463 msgid "RPC::XML::Client not found, not pinging" msgstr "RPC::XML::Client nebyl nalezen, nepinkám" @@ -243,16 +243,16 @@ msgid "failed to load Markdown.pm perl module (%s) or /usr/bin/markdown (%s)" msgstr "" "selhalo nahrání perlového modulu Markdown.pm (%s) nebo /usr/bin/markdown (%s)" -#: ../IkiWiki/Plugin/meta.pm:132 +#: ../IkiWiki/Plugin/meta.pm:124 msgid "stylesheet not found" msgstr "styl nebyl nalezen" -#: ../IkiWiki/Plugin/meta.pm:156 +#: ../IkiWiki/Plugin/meta.pm:148 #, fuzzy msgid "redir page not found" msgstr "zdroj nebyl nalezen" -#: ../IkiWiki/Plugin/meta.pm:169 +#: ../IkiWiki/Plugin/meta.pm:161 #, fuzzy msgid "redir cycle is not allowed" msgstr "zdroj nebyl nalezen" @@ -377,15 +377,15 @@ msgstr "%A pozdě večer" msgid "%A night" msgstr "%A v noci" -#: ../IkiWiki/Plugin/prettydate.pm:74 +#: ../IkiWiki/Plugin/prettydate.pm:78 msgid "at teatime on %A" msgstr "%A během odpoledního čaje" -#: ../IkiWiki/Plugin/prettydate.pm:78 +#: ../IkiWiki/Plugin/prettydate.pm:82 msgid "at midnight" msgstr "o půlnoci" -#: ../IkiWiki/Plugin/prettydate.pm:81 +#: ../IkiWiki/Plugin/prettydate.pm:85 msgid "at noon on %A" msgstr "%A o poledni" @@ -497,7 +497,7 @@ msgstr "chybí hodnoty" msgid "code includes disallowed latex commands" msgstr "" -#: ../IkiWiki/Plugin/teximg.pm:97 +#: ../IkiWiki/Plugin/teximg.pm:96 #, fuzzy msgid "failed to generate image from code" msgstr "nelze změnit velikost: %s" @@ -506,72 +506,51 @@ msgstr "nelze změnit velikost: %s" msgid "(not toggleable in preview mode)" msgstr "" -#: ../IkiWiki/Rcs/Stub.pm:68 +#: ../IkiWiki/Rcs/Stub.pm:62 msgid "getctime not implemented" msgstr "getctime není implementováno" -#: ../IkiWiki/Rcs/monotone.pm:459 -#, fuzzy -msgid "" -"REV is not set, not running from mtn post-commit hook, cannot send " -"notifications" -msgstr "" -"REV není nastavena, není spuštěna ze svn post-commit, nemohu zaslat oznámení" - -#: ../IkiWiki/Rcs/monotone.pm:462 -#, fuzzy -msgid "REV is not a valid revision identifier, cannot send notifications" -msgstr "" -"REV není nastavena, není spuštěna ze svn post-commit, nemohu zaslat oznámení" - -#: ../IkiWiki/Rcs/svn.pm:221 -msgid "" -"REV is not set, not running from svn post-commit hook, cannot send " -"notifications" -msgstr "" -"REV není nastavena, není spuštěna ze svn post-commit, nemohu zaslat oznámení" - -#: ../IkiWiki/Render.pm:275 ../IkiWiki/Render.pm:296 +#: ../IkiWiki/Render.pm:276 ../IkiWiki/Render.pm:297 #, perl-format msgid "skipping bad filename %s" msgstr "přeskakuji chybné jméno souboru %s" -#: ../IkiWiki/Render.pm:338 +#: ../IkiWiki/Render.pm:339 #, perl-format msgid "removing old page %s" msgstr "odstraňuji starou stránku %s" -#: ../IkiWiki/Render.pm:371 +#: ../IkiWiki/Render.pm:372 #, perl-format msgid "scanning %s" msgstr "prohledávám %s" -#: ../IkiWiki/Render.pm:376 +#: ../IkiWiki/Render.pm:377 #, perl-format msgid "rendering %s" msgstr "zpracovávám %s" -#: ../IkiWiki/Render.pm:388 +#: ../IkiWiki/Render.pm:389 #, perl-format msgid "rendering %s, which links to %s" msgstr "zpracovávám %s, která odkazuje na %s" -#: ../IkiWiki/Render.pm:405 +#: ../IkiWiki/Render.pm:406 #, perl-format msgid "rendering %s, which depends on %s" msgstr "zpracovávám %s, která závisí na %s" -#: ../IkiWiki/Render.pm:443 +#: ../IkiWiki/Render.pm:444 #, perl-format msgid "rendering %s, to update its backlinks" msgstr "zpracovávám %s, aby se aktualizovaly zpětné odkazy" -#: ../IkiWiki/Render.pm:455 +#: ../IkiWiki/Render.pm:456 #, perl-format msgid "removing %s, no longer rendered by %s" msgstr "odstraňuji %s, již není zpracovávána %s" -#: ../IkiWiki/Render.pm:481 +#: ../IkiWiki/Render.pm:482 #, perl-format msgid "ikiwiki: cannot render %s" msgstr "ikiwiki: nelze zpracovat %s" @@ -599,15 +578,6 @@ msgstr "obnovuji wiki..." msgid "done" msgstr "hotovo" -#. translators: The three variables are the name of the wiki, -#. translators: A list of one or more pages that were changed, -#. translators: And the name of the user making the change. -#. translators: This is used as the subject of a commit email. -#: ../IkiWiki/UserInfo.pm:145 -#, perl-format -msgid "update of %s's %s by %s" -msgstr "aktualizace %s (%s) uživatelem %s" - #: ../IkiWiki/Wrapper.pm:16 #, perl-format msgid "%s doesn't seem to be executable" @@ -623,19 +593,19 @@ msgstr "jméno souboru s obalem nebylo zadáno" #. translators: The first parameter is a filename, and the second is #. translators: a (probably not translated) error message. -#: ../IkiWiki/Wrapper.pm:64 +#: ../IkiWiki/Wrapper.pm:48 #, perl-format msgid "failed to write %s: %s" msgstr "nelze zapsat %s: %s" #. translators: The parameter is a C filename. -#: ../IkiWiki/Wrapper.pm:115 +#: ../IkiWiki/Wrapper.pm:99 #, perl-format msgid "failed to compile %s" msgstr "nelze zkompilovat %s" #. translators: The parameter is a filename. -#: ../IkiWiki/Wrapper.pm:135 +#: ../IkiWiki/Wrapper.pm:119 #, perl-format msgid "successfully generated %s" msgstr "%s byl úspěšně vytvořen" @@ -644,15 +614,15 @@ 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:81 msgid "usage: --set var=value" msgstr "" -#: ../IkiWiki.pm:129 +#: ../IkiWiki.pm:127 msgid "Must specify url to wiki with --url when using --cgi" msgstr "Při použití --cgi musíte pomocí --url zadat url k wiki" -#: ../IkiWiki.pm:198 ../IkiWiki.pm:199 +#: ../IkiWiki.pm:196 ../IkiWiki.pm:197 msgid "Error" msgstr "Chyba" @@ -660,11 +630,35 @@ msgstr "Chyba" #. translators: preprocessor directive name, #. translators: the second a page name, the #. translators: third a number. -#: ../IkiWiki.pm:722 +#: ../IkiWiki.pm:767 #, perl-format msgid "%s preprocessing loop detected on %s at depth %i" msgstr "Byla rozpoznána smyčka direktivy %s na %s v hloubce %i" +#, fuzzy +#~ msgid "" +#~ "REV is not set, not running from mtn post-commit hook, cannot send " +#~ "notifications" +#~ msgstr "" +#~ "REV není nastavena, není spuštěna ze svn post-commit, nemohu zaslat " +#~ "oznámení" + +#, fuzzy +#~ msgid "REV is not a valid revision identifier, cannot send notifications" +#~ msgstr "" +#~ "REV není nastavena, není spuštěna ze svn post-commit, nemohu zaslat " +#~ "oznámení" + +#~ msgid "" +#~ "REV is not set, not running from svn post-commit hook, cannot send " +#~ "notifications" +#~ msgstr "" +#~ "REV není nastavena, není spuštěna ze svn post-commit, nemohu zaslat " +#~ "oznámení" + +#~ msgid "update of %s's %s by %s" +#~ msgstr "aktualizace %s (%s) uživatelem %s" + #~ msgid "%s not found" #~ msgstr "%s nenalezen" diff --git a/po/da.po b/po/da.po index 256ae21df..8157b963d 100644 --- 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-01-09 02:42-0500\n" +"POT-Creation-Date: 2008-01-29 04:45-0500\n" "PO-Revision-Date: 2007-10-16 23:07+0100\n" "Last-Translator: Jonas Smedegaard \n" "Language-Team: Danish \n" @@ -18,118 +18,118 @@ msgstr "" "X-Poedit-Country: DENMARK\n" "X-Poedit-SourceCharset: utf-8\n" -#: ../IkiWiki/CGI.pm:172 +#: ../IkiWiki/CGI.pm:125 msgid "You need to log in first." msgstr "Du skal først logge på." -#: ../IkiWiki/CGI.pm:202 +#: ../IkiWiki/CGI.pm:155 msgid "login failed, perhaps you need to turn on cookies?" msgstr "Pålogning fejlede, måske skal du tillade infokager (cookies)?" -#: ../IkiWiki/CGI.pm:231 +#: ../IkiWiki/CGI.pm:184 msgid "Login" msgstr "Pålogning" -#: ../IkiWiki/CGI.pm:232 +#: ../IkiWiki/CGI.pm:185 msgid "Preferences" msgstr "Indstillinger" -#: ../IkiWiki/CGI.pm:233 +#: ../IkiWiki/CGI.pm:186 msgid "Admin" msgstr "Admin" -#: ../IkiWiki/CGI.pm:289 +#: ../IkiWiki/CGI.pm:235 msgid "Preferences saved." msgstr "Indstillinger gemt" -#: ../IkiWiki/CGI.pm:345 +#: ../IkiWiki/CGI.pm:291 #, perl-format msgid "%s is not an editable page" msgstr "%s er ikke en redigérbar side" -#: ../IkiWiki/CGI.pm:436 ../IkiWiki/Plugin/brokenlinks.pm:24 -#: ../IkiWiki/Plugin/inline.pm:239 ../IkiWiki/Plugin/opendiscussion.pm:17 +#: ../IkiWiki/CGI.pm:382 ../IkiWiki/Plugin/brokenlinks.pm:24 +#: ../IkiWiki/Plugin/inline.pm:241 ../IkiWiki/Plugin/opendiscussion.pm:17 #: ../IkiWiki/Plugin/orphans.pm:28 ../IkiWiki/Render.pm:98 #: ../IkiWiki/Render.pm:178 msgid "discussion" msgstr "diskussion" -#: ../IkiWiki/CGI.pm:482 +#: ../IkiWiki/CGI.pm:429 #, perl-format msgid "creating %s" msgstr "opretter %s" -#: ../IkiWiki/CGI.pm:500 ../IkiWiki/CGI.pm:519 ../IkiWiki/CGI.pm:529 -#: ../IkiWiki/CGI.pm:563 ../IkiWiki/CGI.pm:611 +#: ../IkiWiki/CGI.pm:447 ../IkiWiki/CGI.pm:466 ../IkiWiki/CGI.pm:476 +#: ../IkiWiki/CGI.pm:510 ../IkiWiki/CGI.pm:558 #, perl-format msgid "editing %s" msgstr "redigerer %s" -#: ../IkiWiki/CGI.pm:705 +#: ../IkiWiki/CGI.pm:646 msgid "You are banned." msgstr "Du er banlyst." -#: ../IkiWiki/Plugin/aggregate.pm:71 +#: ../IkiWiki/Plugin/aggregate.pm:82 #, perl-format msgid "missing %s parameter" msgstr "mangler parametren %s" -#: ../IkiWiki/Plugin/aggregate.pm:99 +#: ../IkiWiki/Plugin/aggregate.pm:110 msgid "new feed" msgstr "ny fødning" -#: ../IkiWiki/Plugin/aggregate.pm:113 +#: ../IkiWiki/Plugin/aggregate.pm:124 msgid "posts" msgstr "indlæg" -#: ../IkiWiki/Plugin/aggregate.pm:115 +#: ../IkiWiki/Plugin/aggregate.pm:126 msgid "new" msgstr "nyt" -#: ../IkiWiki/Plugin/aggregate.pm:231 +#: ../IkiWiki/Plugin/aggregate.pm:236 #, perl-format msgid "expiring %s (%s days old)" msgstr "udløber %s (%s dage gammel)" -#: ../IkiWiki/Plugin/aggregate.pm:238 +#: ../IkiWiki/Plugin/aggregate.pm:243 #, perl-format msgid "expiring %s" msgstr "udløber %s" -#: ../IkiWiki/Plugin/aggregate.pm:264 +#: ../IkiWiki/Plugin/aggregate.pm:269 #, perl-format msgid "processed ok at %s" msgstr "korrekt dannet ved %s" -#: ../IkiWiki/Plugin/aggregate.pm:269 +#: ../IkiWiki/Plugin/aggregate.pm:274 #, perl-format msgid "checking feed %s ..." msgstr "undersøger fødning %s ..." -#: ../IkiWiki/Plugin/aggregate.pm:274 +#: ../IkiWiki/Plugin/aggregate.pm:279 #, perl-format msgid "could not find feed at %s" msgstr "kunne ikke finde fødning ved %s" -#: ../IkiWiki/Plugin/aggregate.pm:289 +#: ../IkiWiki/Plugin/aggregate.pm:294 msgid "feed not found" msgstr "fødning ikke fundet" -#: ../IkiWiki/Plugin/aggregate.pm:300 +#: ../IkiWiki/Plugin/aggregate.pm:305 #, perl-format msgid "(invalid UTF-8 stripped from feed)" msgstr "(defekt UTF-8 fjernet fra fødning)" -#: ../IkiWiki/Plugin/aggregate.pm:306 +#: ../IkiWiki/Plugin/aggregate.pm:311 #, perl-format msgid "(feed entities escaped)" msgstr "" -#: ../IkiWiki/Plugin/aggregate.pm:312 +#: ../IkiWiki/Plugin/aggregate.pm:317 msgid "feed crashed XML::Feed!" msgstr "fødning fik XML::Feed til at bryde sammen!" -#: ../IkiWiki/Plugin/aggregate.pm:386 +#: ../IkiWiki/Plugin/aggregate.pm:391 #, perl-format msgid "creating new page %s" msgstr "opretter ny side %s" @@ -223,11 +223,11 @@ msgstr "Tilføj nyt indlæg med følgende titel:" msgid "nonexistant template %s" msgstr "ikke-eksisterende skabelon: %s" -#: ../IkiWiki/Plugin/inline.pm:247 ../IkiWiki/Render.pm:102 +#: ../IkiWiki/Plugin/inline.pm:249 ../IkiWiki/Render.pm:102 msgid "Discussion" msgstr "Diskussion" -#: ../IkiWiki/Plugin/inline.pm:461 +#: ../IkiWiki/Plugin/inline.pm:463 msgid "RPC::XML::Client not found, not pinging" msgstr "RPC::XML::Client ikke fundet, pinger ikke" @@ -247,16 +247,16 @@ msgstr "" "Indlæsning af perl-modulet Markdown.pm (%s) eller /usr/bin/markdown (%s) " "mislykkedes" -#: ../IkiWiki/Plugin/meta.pm:132 +#: ../IkiWiki/Plugin/meta.pm:124 msgid "stylesheet not found" msgstr "stilsnit (stylesheet) ikke fundet" -#: ../IkiWiki/Plugin/meta.pm:156 +#: ../IkiWiki/Plugin/meta.pm:148 #, fuzzy msgid "redir page not found" msgstr "fødning ikke fundet" -#: ../IkiWiki/Plugin/meta.pm:169 +#: ../IkiWiki/Plugin/meta.pm:161 #, fuzzy msgid "redir cycle is not allowed" msgstr "fødning ikke fundet" @@ -381,15 +381,15 @@ msgstr "sent %A aften" msgid "%A night" msgstr "%A nat" -#: ../IkiWiki/Plugin/prettydate.pm:74 +#: ../IkiWiki/Plugin/prettydate.pm:78 msgid "at teatime on %A" msgstr "ved tetid %A" -#: ../IkiWiki/Plugin/prettydate.pm:78 +#: ../IkiWiki/Plugin/prettydate.pm:82 msgid "at midnight" msgstr "ved midnat" -#: ../IkiWiki/Plugin/prettydate.pm:81 +#: ../IkiWiki/Plugin/prettydate.pm:85 msgid "at noon on %A" msgstr "midt på dagen %A" @@ -500,7 +500,7 @@ msgstr "manglende tex-kode" msgid "code includes disallowed latex commands" msgstr "kode indeholder ikke-tilladte latec-kommandoer" -#: ../IkiWiki/Plugin/teximg.pm:97 +#: ../IkiWiki/Plugin/teximg.pm:96 msgid "failed to generate image from code" msgstr "billedopbygning fra kode mislykkedes" @@ -508,72 +508,51 @@ msgstr "billedopbygning fra kode mislykkedes" msgid "(not toggleable in preview mode)" msgstr "" -#: ../IkiWiki/Rcs/Stub.pm:68 +#: ../IkiWiki/Rcs/Stub.pm:62 msgid "getctime not implemented" msgstr "getctime ikke implementeret" -#: ../IkiWiki/Rcs/monotone.pm:459 -msgid "" -"REV is not set, not running from mtn post-commit hook, cannot send " -"notifications" -msgstr "" -"REV ikke angivet, afvikles ikke fra mtn post-commit hook, kan ikke sende " -"orienteringer" - -#: ../IkiWiki/Rcs/monotone.pm:462 -msgid "REV is not a valid revision identifier, cannot send notifications" -msgstr "" -"REV er ikke en gyldig revisionsidentifikation, kan ikke sende orienteringer" - -#: ../IkiWiki/Rcs/svn.pm:221 -msgid "" -"REV is not set, not running from svn post-commit hook, cannot send " -"notifications" -msgstr "" -"REV ikke angivet, afvikles ikke fra svn post-commit hook, kan ikke sende " -"orienteringer" - -#: ../IkiWiki/Render.pm:275 ../IkiWiki/Render.pm:296 +#: ../IkiWiki/Render.pm:276 ../IkiWiki/Render.pm:297 #, perl-format msgid "skipping bad filename %s" msgstr "udelader forkert filnavn %s" -#: ../IkiWiki/Render.pm:338 +#: ../IkiWiki/Render.pm:339 #, perl-format msgid "removing old page %s" msgstr "fjerner gammel side %s" -#: ../IkiWiki/Render.pm:371 +#: ../IkiWiki/Render.pm:372 #, perl-format msgid "scanning %s" msgstr "gennemlæser %s" -#: ../IkiWiki/Render.pm:376 +#: ../IkiWiki/Render.pm:377 #, perl-format msgid "rendering %s" msgstr "danner %s" -#: ../IkiWiki/Render.pm:388 +#: ../IkiWiki/Render.pm:389 #, perl-format msgid "rendering %s, which links to %s" msgstr "danner %s, som henviser til %s" -#: ../IkiWiki/Render.pm:405 +#: ../IkiWiki/Render.pm:406 #, perl-format msgid "rendering %s, which depends on %s" msgstr "danner %s, som afhænger af %s" -#: ../IkiWiki/Render.pm:443 +#: ../IkiWiki/Render.pm:444 #, perl-format msgid "rendering %s, to update its backlinks" msgstr "danner %s, for at opdatere dens krydshenvisninger (backlinks)" -#: ../IkiWiki/Render.pm:455 +#: ../IkiWiki/Render.pm:456 #, perl-format msgid "removing %s, no longer rendered by %s" msgstr "fjerner %s, ikke længere dannet af %s" -#: ../IkiWiki/Render.pm:481 +#: ../IkiWiki/Render.pm:482 #, perl-format msgid "ikiwiki: cannot render %s" msgstr "ikiwiki: kan ikke danne %s" @@ -601,15 +580,6 @@ msgstr "genopfrisker wiki..." msgid "done" msgstr "færdig" -#. translators: The three variables are the name of the wiki, -#. translators: A list of one or more pages that were changed, -#. translators: And the name of the user making the change. -#. translators: This is used as the subject of a commit email. -#: ../IkiWiki/UserInfo.pm:145 -#, perl-format -msgid "update of %s's %s by %s" -msgstr "opdatering på %s på %s af %s" - #: ../IkiWiki/Wrapper.pm:16 #, perl-format msgid "%s doesn't seem to be executable" @@ -625,19 +595,19 @@ msgstr "wrapper-navn ikke angivet" #. translators: The first parameter is a filename, and the second is #. translators: a (probably not translated) error message. -#: ../IkiWiki/Wrapper.pm:64 +#: ../IkiWiki/Wrapper.pm:48 #, perl-format msgid "failed to write %s: %s" msgstr "skrivning ad %s mislykkedes: %s" #. translators: The parameter is a C filename. -#: ../IkiWiki/Wrapper.pm:115 +#: ../IkiWiki/Wrapper.pm:99 #, perl-format msgid "failed to compile %s" msgstr "kompilering af %s mislykkedes" #. translators: The parameter is a filename. -#: ../IkiWiki/Wrapper.pm:135 +#: ../IkiWiki/Wrapper.pm:119 #, perl-format msgid "successfully generated %s" msgstr "Korrekt bygget %s" @@ -646,15 +616,15 @@ msgstr "Korrekt bygget %s" msgid "usage: ikiwiki [options] source dest" msgstr "brug: ikiwiki [valg] kilde mål" -#: ../ikiwiki.in:83 +#: ../ikiwiki.in:81 msgid "usage: --set var=value" msgstr "brug: --set var=værdi" -#: ../IkiWiki.pm:129 +#: ../IkiWiki.pm:127 msgid "Must specify url to wiki with --url when using --cgi" msgstr "Skal angive url til wiki med --url når der bruges --cgi" -#: ../IkiWiki.pm:198 ../IkiWiki.pm:199 +#: ../IkiWiki.pm:196 ../IkiWiki.pm:197 msgid "Error" msgstr "Fejl" @@ -662,7 +632,29 @@ msgstr "Fejl" #. translators: preprocessor directive name, #. translators: the second a page name, the #. translators: third a number. -#: ../IkiWiki.pm:722 +#: ../IkiWiki.pm:767 #, perl-format msgid "%s preprocessing loop detected on %s at depth %i" msgstr "%s forudberegningssløkke fundet på %s ved dybde %i" + +#~ msgid "" +#~ "REV is not set, not running from mtn post-commit hook, cannot send " +#~ "notifications" +#~ msgstr "" +#~ "REV ikke angivet, afvikles ikke fra mtn post-commit hook, kan ikke sende " +#~ "orienteringer" + +#~ msgid "REV is not a valid revision identifier, cannot send notifications" +#~ msgstr "" +#~ "REV er ikke en gyldig revisionsidentifikation, kan ikke sende " +#~ "orienteringer" + +#~ msgid "" +#~ "REV is not set, not running from svn post-commit hook, cannot send " +#~ "notifications" +#~ msgstr "" +#~ "REV ikke angivet, afvikles ikke fra svn post-commit hook, kan ikke sende " +#~ "orienteringer" + +#~ msgid "update of %s's %s by %s" +#~ msgstr "opdatering på %s på %s af %s" diff --git a/po/es.po b/po/es.po index effca6032..f93a518a5 100644 --- 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-01-09 02:42-0500\n" +"POT-Creation-Date: 2008-01-29 04:45-0500\n" "PO-Revision-Date: 2007-12-20 11:25+0100\n" "Last-Translator: Víctor Moral \n" "Language-Team: Spanish \n" @@ -15,119 +15,119 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../IkiWiki/CGI.pm:172 +#: ../IkiWiki/CGI.pm:125 msgid "You need to log in first." msgstr "Antes es necesario identificarse." -#: ../IkiWiki/CGI.pm:202 +#: ../IkiWiki/CGI.pm:155 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:231 +#: ../IkiWiki/CGI.pm:184 msgid "Login" msgstr "Identificación" -#: ../IkiWiki/CGI.pm:232 +#: ../IkiWiki/CGI.pm:185 msgid "Preferences" msgstr "Preferencias" -#: ../IkiWiki/CGI.pm:233 +#: ../IkiWiki/CGI.pm:186 msgid "Admin" msgstr "Administración" -#: ../IkiWiki/CGI.pm:289 +#: ../IkiWiki/CGI.pm:235 msgid "Preferences saved." msgstr "Las preferencias se han guardado." -#: ../IkiWiki/CGI.pm:345 +#: ../IkiWiki/CGI.pm:291 #, perl-format msgid "%s is not an editable page" msgstr "la página %s no es modificable" -#: ../IkiWiki/CGI.pm:436 ../IkiWiki/Plugin/brokenlinks.pm:24 -#: ../IkiWiki/Plugin/inline.pm:239 ../IkiWiki/Plugin/opendiscussion.pm:17 +#: ../IkiWiki/CGI.pm:382 ../IkiWiki/Plugin/brokenlinks.pm:24 +#: ../IkiWiki/Plugin/inline.pm:241 ../IkiWiki/Plugin/opendiscussion.pm:17 #: ../IkiWiki/Plugin/orphans.pm:28 ../IkiWiki/Render.pm:98 #: ../IkiWiki/Render.pm:178 msgid "discussion" msgstr "comentarios" -#: ../IkiWiki/CGI.pm:482 +#: ../IkiWiki/CGI.pm:429 #, perl-format msgid "creating %s" msgstr "creando página %s" -#: ../IkiWiki/CGI.pm:500 ../IkiWiki/CGI.pm:519 ../IkiWiki/CGI.pm:529 -#: ../IkiWiki/CGI.pm:563 ../IkiWiki/CGI.pm:611 +#: ../IkiWiki/CGI.pm:447 ../IkiWiki/CGI.pm:466 ../IkiWiki/CGI.pm:476 +#: ../IkiWiki/CGI.pm:510 ../IkiWiki/CGI.pm:558 #, perl-format msgid "editing %s" msgstr "modificando página %s" -#: ../IkiWiki/CGI.pm:705 +#: ../IkiWiki/CGI.pm:646 msgid "You are banned." msgstr "Ha sido expulsado." -#: ../IkiWiki/Plugin/aggregate.pm:71 +#: ../IkiWiki/Plugin/aggregate.pm:82 #, perl-format msgid "missing %s parameter" msgstr "falta el parámetro %s" -#: ../IkiWiki/Plugin/aggregate.pm:99 +#: ../IkiWiki/Plugin/aggregate.pm:110 msgid "new feed" msgstr "nueva entrada" -#: ../IkiWiki/Plugin/aggregate.pm:113 +#: ../IkiWiki/Plugin/aggregate.pm:124 msgid "posts" msgstr "entradas" -#: ../IkiWiki/Plugin/aggregate.pm:115 +#: ../IkiWiki/Plugin/aggregate.pm:126 msgid "new" msgstr "nuevo" -#: ../IkiWiki/Plugin/aggregate.pm:231 +#: ../IkiWiki/Plugin/aggregate.pm:236 #, perl-format msgid "expiring %s (%s days old)" msgstr "%s caducada (%s días de antigüedad)" -#: ../IkiWiki/Plugin/aggregate.pm:238 +#: ../IkiWiki/Plugin/aggregate.pm:243 #, perl-format msgid "expiring %s" msgstr "%s caducada" -#: ../IkiWiki/Plugin/aggregate.pm:264 +#: ../IkiWiki/Plugin/aggregate.pm:269 #, perl-format msgid "processed ok at %s" msgstr "proceso completado con éxito a %s" -#: ../IkiWiki/Plugin/aggregate.pm:269 +#: ../IkiWiki/Plugin/aggregate.pm:274 #, perl-format msgid "checking feed %s ..." msgstr "comprobando fuente de datos %s ..." -#: ../IkiWiki/Plugin/aggregate.pm:274 +#: ../IkiWiki/Plugin/aggregate.pm:279 #, perl-format msgid "could not find feed at %s" msgstr "no puedo encontrar la fuente de datos en %s" -#: ../IkiWiki/Plugin/aggregate.pm:289 +#: ../IkiWiki/Plugin/aggregate.pm:294 msgid "feed not found" msgstr "fuente de datos no encontrada" -#: ../IkiWiki/Plugin/aggregate.pm:300 +#: ../IkiWiki/Plugin/aggregate.pm:305 #, perl-format msgid "(invalid UTF-8 stripped from feed)" msgstr "(una secuencia UTF-8 inválida ha sido eliminada de la fuente de datos)" -#: ../IkiWiki/Plugin/aggregate.pm:306 +#: ../IkiWiki/Plugin/aggregate.pm:311 #, perl-format msgid "(feed entities escaped)" msgstr "" -#: ../IkiWiki/Plugin/aggregate.pm:312 +#: ../IkiWiki/Plugin/aggregate.pm:317 msgid "feed crashed XML::Feed!" msgstr "¡ la fuente de datos ha provocado un error fatal en XML::Feed!" -#: ../IkiWiki/Plugin/aggregate.pm:386 +#: ../IkiWiki/Plugin/aggregate.pm:391 #, perl-format msgid "creating new page %s" msgstr "creando nueva página %s" @@ -221,11 +221,11 @@ msgstr "Añadir una entrada nueva titulada:" msgid "nonexistant template %s" msgstr "la plantilla %s no existe " -#: ../IkiWiki/Plugin/inline.pm:247 ../IkiWiki/Render.pm:102 +#: ../IkiWiki/Plugin/inline.pm:249 ../IkiWiki/Render.pm:102 msgid "Discussion" msgstr "Comentarios" -#: ../IkiWiki/Plugin/inline.pm:461 +#: ../IkiWiki/Plugin/inline.pm:463 msgid "RPC::XML::Client not found, not pinging" msgstr "No he encontrado el componente RPC::XML::Client, no envío señal alguna" @@ -245,15 +245,15 @@ msgstr "" "no he podido cargar el módulo Perl Markdown.pm (%s) ó no he podido ejecutar " "el programa /usr/bin/markdown (%s)" -#: ../IkiWiki/Plugin/meta.pm:132 +#: ../IkiWiki/Plugin/meta.pm:124 msgid "stylesheet not found" msgstr "hoja de estilo no encontrada " -#: ../IkiWiki/Plugin/meta.pm:156 +#: ../IkiWiki/Plugin/meta.pm:148 msgid "redir page not found" msgstr "falta la página a donde redirigir" -#: ../IkiWiki/Plugin/meta.pm:169 +#: ../IkiWiki/Plugin/meta.pm:161 msgid "redir cycle is not allowed" msgstr "ciclo de redirección no permitido" @@ -377,15 +377,15 @@ msgstr "a última hora de la tarde del $A" msgid "%A night" msgstr "la noche del %A" -#: ../IkiWiki/Plugin/prettydate.pm:74 +#: ../IkiWiki/Plugin/prettydate.pm:78 msgid "at teatime on %A" msgstr "el %A a la hora del té" -#: ../IkiWiki/Plugin/prettydate.pm:78 +#: ../IkiWiki/Plugin/prettydate.pm:82 msgid "at midnight" msgstr "a medianoche" -#: ../IkiWiki/Plugin/prettydate.pm:81 +#: ../IkiWiki/Plugin/prettydate.pm:85 msgid "at noon on %A" msgstr "el %A a media tarde" @@ -496,7 +496,7 @@ msgstr "falta el código tex" msgid "code includes disallowed latex commands" msgstr "el código incluye órdenes latex anuladas" -#: ../IkiWiki/Plugin/teximg.pm:97 +#: ../IkiWiki/Plugin/teximg.pm:96 msgid "failed to generate image from code" msgstr "no he podido crear la imagen desde el código" @@ -504,75 +504,53 @@ msgstr "no he podido crear la imagen desde el código" msgid "(not toggleable in preview mode)" msgstr "(no se puede cambiar en el modo de previsualización)" -#: ../IkiWiki/Rcs/Stub.pm:68 +#: ../IkiWiki/Rcs/Stub.pm:62 msgid "getctime not implemented" msgstr "la funcionalidad getctime no está incluida" -#: ../IkiWiki/Rcs/monotone.pm:459 -msgid "" -"REV is not set, not running from mtn post-commit hook, cannot send " -"notifications" -msgstr "" -"La variable de entorno REV no está definida, por lo que no puede funcionar " -"svn post-commit desde monotone; no puedo enviar ninguna notificación" - -#: ../IkiWiki/Rcs/monotone.pm:462 -msgid "REV is not a valid revision identifier, cannot send notifications" -msgstr "" -"REV no es un identificador de revisión válido, por lo que no puedo enviar " -"ninguna notificación" - -#: ../IkiWiki/Rcs/svn.pm:221 -msgid "" -"REV is not set, not running from svn post-commit hook, cannot send " -"notifications" -msgstr "" -"La variable de entorno REV no está definida, por lo que no puede funcionar " -"svn post-commit; no puedo enviar ninguna notificación" - -#: ../IkiWiki/Render.pm:275 ../IkiWiki/Render.pm:296 +#: ../IkiWiki/Render.pm:276 ../IkiWiki/Render.pm:297 #, perl-format msgid "skipping bad filename %s" msgstr "ignorando el archivo %s porque su nombre no es correcto" -#: ../IkiWiki/Render.pm:338 +#: ../IkiWiki/Render.pm:339 #, perl-format msgid "removing old page %s" msgstr "eliminando la antigua página %s" -#: ../IkiWiki/Render.pm:371 +#: ../IkiWiki/Render.pm:372 #, perl-format msgid "scanning %s" msgstr "explorando %s" -#: ../IkiWiki/Render.pm:376 +#: ../IkiWiki/Render.pm:377 #, perl-format msgid "rendering %s" msgstr "convirtiendo %s" -#: ../IkiWiki/Render.pm:388 +#: ../IkiWiki/Render.pm:389 #, perl-format msgid "rendering %s, which links to %s" msgstr "convirtiendo la página %s, la cual referencia a %s" -#: ../IkiWiki/Render.pm:405 +#: ../IkiWiki/Render.pm:406 #, perl-format msgid "rendering %s, which depends on %s" msgstr "convirtiendo la página %s, la cual depende de %s" -#: ../IkiWiki/Render.pm:443 +#: ../IkiWiki/Render.pm:444 #, 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:455 +#: ../IkiWiki/Render.pm:456 #, 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:481 +#: ../IkiWiki/Render.pm:482 #, perl-format msgid "ikiwiki: cannot render %s" msgstr "ikwiki: no puedo convertir la página %s" @@ -600,15 +578,6 @@ msgstr "actualizando el wiki.." msgid "done" msgstr "completado" -#. translators: The three variables are the name of the wiki, -#. translators: A list of one or more pages that were changed, -#. translators: And the name of the user making the change. -#. translators: This is used as the subject of a commit email. -#: ../IkiWiki/UserInfo.pm:145 -#, perl-format -msgid "update of %s's %s by %s" -msgstr "actualizado el wiki %s y la página %s por el usuario %s" - #: ../IkiWiki/Wrapper.pm:16 #, perl-format msgid "%s doesn't seem to be executable" @@ -625,19 +594,19 @@ msgstr "el programa envoltorio no ha sido especificado" #. translators: The first parameter is a filename, and the second is #. translators: a (probably not translated) error message. -#: ../IkiWiki/Wrapper.pm:64 +#: ../IkiWiki/Wrapper.pm:48 #, perl-format msgid "failed to write %s: %s" msgstr "no puedo escribir en %s: %s" #. translators: The parameter is a C filename. -#: ../IkiWiki/Wrapper.pm:115 +#: ../IkiWiki/Wrapper.pm:99 #, perl-format msgid "failed to compile %s" msgstr "ha fallado la compilación del programa %s" #. translators: The parameter is a filename. -#: ../IkiWiki/Wrapper.pm:135 +#: ../IkiWiki/Wrapper.pm:119 #, perl-format msgid "successfully generated %s" msgstr "creado con éxito el programa envoltorio %s" @@ -646,17 +615,17 @@ 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:81 msgid "usage: --set var=value" msgstr "uso: --set variable=valor" -#: ../IkiWiki.pm:129 +#: ../IkiWiki.pm:127 msgid "Must specify url to wiki with --url when using --cgi" msgstr "" "Es obligatorio especificar un url al wiki con el parámetro --url si se " "utiliza el parámetro --cgi" -#: ../IkiWiki.pm:198 ../IkiWiki.pm:199 +#: ../IkiWiki.pm:196 ../IkiWiki.pm:197 msgid "Error" msgstr "Error" @@ -664,13 +633,36 @@ msgstr "Error" #. translators: preprocessor directive name, #. translators: the second a page name, the #. translators: third a number. -#: ../IkiWiki.pm:722 +#: ../IkiWiki.pm:767 #, perl-format msgid "%s preprocessing loop detected on %s at depth %i" msgstr "" "se ha detectado un bucle de preprocesado %s en la página %s en la vuelta " "número %i" +#~ msgid "" +#~ "REV is not set, not running from mtn post-commit hook, cannot send " +#~ "notifications" +#~ msgstr "" +#~ "La variable de entorno REV no está definida, por lo que no puede " +#~ "funcionar svn post-commit desde monotone; no puedo enviar ninguna " +#~ "notificación" + +#~ msgid "REV is not a valid revision identifier, cannot send notifications" +#~ msgstr "" +#~ "REV no es un identificador de revisión válido, por lo que no puedo enviar " +#~ "ninguna notificación" + +#~ msgid "" +#~ "REV is not set, not running from svn post-commit hook, cannot send " +#~ "notifications" +#~ msgstr "" +#~ "La variable de entorno REV no está definida, por lo que no puede " +#~ "funcionar svn post-commit; no puedo enviar ninguna notificación" + +#~ msgid "update of %s's %s by %s" +#~ msgstr "actualizado el wiki %s y la página %s por el usuario %s" + #~ msgid "link is no longer supported" #~ msgstr "el metadato link ya no puede usarse" diff --git a/po/fr.po b/po/fr.po index aed567f39..b6769a969 100644 --- a/po/fr.po +++ b/po/fr.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: ikiwiki\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2008-01-09 02:42-0500\n" +"POT-Creation-Date: 2008-01-29 04:45-0500\n" "PO-Revision-Date: 2007-08-28 21:05+0200\n" "Last-Translator: Cyril Brulebois \n" "Language-Team: French \n" @@ -17,119 +17,119 @@ msgstr "" "X-Poedit-Language: French\n" "X-Poedit-Country: FRANCE\n" -#: ../IkiWiki/CGI.pm:172 +#: ../IkiWiki/CGI.pm:125 msgid "You need to log in first." msgstr "Vous devez d'abord vous identifier." -#: ../IkiWiki/CGI.pm:202 +#: ../IkiWiki/CGI.pm:155 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:231 +#: ../IkiWiki/CGI.pm:184 msgid "Login" msgstr "S’identifier" -#: ../IkiWiki/CGI.pm:232 +#: ../IkiWiki/CGI.pm:185 msgid "Preferences" msgstr "Préférences" -#: ../IkiWiki/CGI.pm:233 +#: ../IkiWiki/CGI.pm:186 msgid "Admin" msgstr "Administrateur" -#: ../IkiWiki/CGI.pm:289 +#: ../IkiWiki/CGI.pm:235 msgid "Preferences saved." msgstr "Les préférences ont été enregistrées." -#: ../IkiWiki/CGI.pm:345 +#: ../IkiWiki/CGI.pm:291 #, perl-format msgid "%s is not an editable page" msgstr "%s n'est pas une page éditable" -#: ../IkiWiki/CGI.pm:436 ../IkiWiki/Plugin/brokenlinks.pm:24 -#: ../IkiWiki/Plugin/inline.pm:239 ../IkiWiki/Plugin/opendiscussion.pm:17 +#: ../IkiWiki/CGI.pm:382 ../IkiWiki/Plugin/brokenlinks.pm:24 +#: ../IkiWiki/Plugin/inline.pm:241 ../IkiWiki/Plugin/opendiscussion.pm:17 #: ../IkiWiki/Plugin/orphans.pm:28 ../IkiWiki/Render.pm:98 #: ../IkiWiki/Render.pm:178 msgid "discussion" msgstr "Discussion" -#: ../IkiWiki/CGI.pm:482 +#: ../IkiWiki/CGI.pm:429 #, perl-format msgid "creating %s" msgstr "Création de %s" -#: ../IkiWiki/CGI.pm:500 ../IkiWiki/CGI.pm:519 ../IkiWiki/CGI.pm:529 -#: ../IkiWiki/CGI.pm:563 ../IkiWiki/CGI.pm:611 +#: ../IkiWiki/CGI.pm:447 ../IkiWiki/CGI.pm:466 ../IkiWiki/CGI.pm:476 +#: ../IkiWiki/CGI.pm:510 ../IkiWiki/CGI.pm:558 #, perl-format msgid "editing %s" msgstr "Édition de %s" -#: ../IkiWiki/CGI.pm:705 +#: ../IkiWiki/CGI.pm:646 msgid "You are banned." msgstr "Vous avez été banni." -#: ../IkiWiki/Plugin/aggregate.pm:71 +#: ../IkiWiki/Plugin/aggregate.pm:82 #, perl-format msgid "missing %s parameter" msgstr "Paramètre %s manquant" -#: ../IkiWiki/Plugin/aggregate.pm:99 +#: ../IkiWiki/Plugin/aggregate.pm:110 msgid "new feed" msgstr "Nouveau flux" -#: ../IkiWiki/Plugin/aggregate.pm:113 +#: ../IkiWiki/Plugin/aggregate.pm:124 msgid "posts" msgstr "Articles" -#: ../IkiWiki/Plugin/aggregate.pm:115 +#: ../IkiWiki/Plugin/aggregate.pm:126 msgid "new" msgstr "Nouveau" -#: ../IkiWiki/Plugin/aggregate.pm:231 +#: ../IkiWiki/Plugin/aggregate.pm:236 #, perl-format msgid "expiring %s (%s days old)" msgstr "Fin de validité de %s (date de %s jours)" -#: ../IkiWiki/Plugin/aggregate.pm:238 +#: ../IkiWiki/Plugin/aggregate.pm:243 #, perl-format msgid "expiring %s" msgstr "Fin de validité de %s" -#: ../IkiWiki/Plugin/aggregate.pm:264 +#: ../IkiWiki/Plugin/aggregate.pm:269 #, perl-format msgid "processed ok at %s" msgstr "A été correctement traité à %s" -#: ../IkiWiki/Plugin/aggregate.pm:269 +#: ../IkiWiki/Plugin/aggregate.pm:274 #, perl-format msgid "checking feed %s ..." msgstr "Vérification du flux %s..." -#: ../IkiWiki/Plugin/aggregate.pm:274 +#: ../IkiWiki/Plugin/aggregate.pm:279 #, perl-format msgid "could not find feed at %s" msgstr "Impossible de trouver de flux à %s" -#: ../IkiWiki/Plugin/aggregate.pm:289 +#: ../IkiWiki/Plugin/aggregate.pm:294 msgid "feed not found" msgstr "Flux introuvable " -#: ../IkiWiki/Plugin/aggregate.pm:300 +#: ../IkiWiki/Plugin/aggregate.pm:305 #, perl-format msgid "(invalid UTF-8 stripped from feed)" msgstr "(chaîne UTF-8 non valable supprimée du flux)" -#: ../IkiWiki/Plugin/aggregate.pm:306 +#: ../IkiWiki/Plugin/aggregate.pm:311 #, perl-format msgid "(feed entities escaped)" msgstr "" -#: ../IkiWiki/Plugin/aggregate.pm:312 +#: ../IkiWiki/Plugin/aggregate.pm:317 msgid "feed crashed XML::Feed!" msgstr "Plantage du flux XML::Feed !" -#: ../IkiWiki/Plugin/aggregate.pm:386 +#: ../IkiWiki/Plugin/aggregate.pm:391 #, perl-format msgid "creating new page %s" msgstr "Création de la nouvelle page %s" @@ -225,11 +225,11 @@ msgstr "Ajouter un nouvel article dont le titre est :" msgid "nonexistant template %s" msgstr "Le modèle (« template ») %s n'existe pas" -#: ../IkiWiki/Plugin/inline.pm:247 ../IkiWiki/Render.pm:102 +#: ../IkiWiki/Plugin/inline.pm:249 ../IkiWiki/Render.pm:102 msgid "Discussion" msgstr "Discussion" -#: ../IkiWiki/Plugin/inline.pm:461 +#: ../IkiWiki/Plugin/inline.pm:463 msgid "RPC::XML::Client not found, not pinging" msgstr "RPC::XML::Client introuvable, pas de réponse au ping" @@ -249,16 +249,16 @@ msgstr "" "Échec du chargement du module Perl Markdown.pm (%s) ou de /usr/bin/markdown " "(%s)" -#: ../IkiWiki/Plugin/meta.pm:132 +#: ../IkiWiki/Plugin/meta.pm:124 msgid "stylesheet not found" msgstr "Feuille de style introuvable " -#: ../IkiWiki/Plugin/meta.pm:156 +#: ../IkiWiki/Plugin/meta.pm:148 #, fuzzy msgid "redir page not found" msgstr "Flux introuvable " -#: ../IkiWiki/Plugin/meta.pm:169 +#: ../IkiWiki/Plugin/meta.pm:161 #, fuzzy msgid "redir cycle is not allowed" msgstr "Flux introuvable " @@ -383,15 +383,15 @@ msgstr "tard %A soir" msgid "%A night" msgstr "%A, durant la nuit" -#: ../IkiWiki/Plugin/prettydate.pm:74 +#: ../IkiWiki/Plugin/prettydate.pm:78 msgid "at teatime on %A" msgstr "%A, à l'heure du thé" -#: ../IkiWiki/Plugin/prettydate.pm:78 +#: ../IkiWiki/Plugin/prettydate.pm:82 msgid "at midnight" msgstr "à minuit" -#: ../IkiWiki/Plugin/prettydate.pm:81 +#: ../IkiWiki/Plugin/prettydate.pm:85 msgid "at noon on %A" msgstr "%A, à midi" @@ -502,7 +502,7 @@ msgstr "Il manque le code TeX" msgid "code includes disallowed latex commands" msgstr "Le code comporte des commandes LaTeX non permises" -#: ../IkiWiki/Plugin/teximg.pm:97 +#: ../IkiWiki/Plugin/teximg.pm:96 msgid "failed to generate image from code" msgstr "Échec de la création de l'image à partir du code" @@ -510,74 +510,51 @@ msgstr "Échec de la création de l'image à partir du code" msgid "(not toggleable in preview mode)" msgstr "" -#: ../IkiWiki/Rcs/Stub.pm:68 +#: ../IkiWiki/Rcs/Stub.pm:62 msgid "getctime not implemented" msgstr "getctime n'est pas implémenté" -#: ../IkiWiki/Rcs/monotone.pm:459 -msgid "" -"REV is not set, not running from mtn post-commit hook, cannot send " -"notifications" -msgstr "" -"REV n'est pas défini; impossible de lancer le post-commit de mtn etd'envoyer " -"les notifications" - -#: ../IkiWiki/Rcs/monotone.pm:462 -msgid "REV is not a valid revision identifier, cannot send notifications" -msgstr "" -"REV n'est pas un identifiant de révision valable, impossible d'envoyer les " -"notifications" - -#: ../IkiWiki/Rcs/svn.pm:221 -msgid "" -"REV is not set, not running from svn post-commit hook, cannot send " -"notifications" -msgstr "" -"REV n'est pas défini, pas de lancement depuis le système de rapport par mail " -"après un commit sur le SVN (« hook post-commit »), impossible d'envoyer des " -"notifications" - -#: ../IkiWiki/Render.pm:275 ../IkiWiki/Render.pm:296 +#: ../IkiWiki/Render.pm:276 ../IkiWiki/Render.pm:297 #, perl-format msgid "skipping bad filename %s" msgstr "Omission du fichier au nom incorrect %s" -#: ../IkiWiki/Render.pm:338 +#: ../IkiWiki/Render.pm:339 #, perl-format msgid "removing old page %s" msgstr "Suppression de l'ancienne page %s" -#: ../IkiWiki/Render.pm:371 +#: ../IkiWiki/Render.pm:372 #, perl-format msgid "scanning %s" msgstr "Parcours de %s" -#: ../IkiWiki/Render.pm:376 +#: ../IkiWiki/Render.pm:377 #, perl-format msgid "rendering %s" msgstr "Affichage de %s" -#: ../IkiWiki/Render.pm:388 +#: ../IkiWiki/Render.pm:389 #, perl-format msgid "rendering %s, which links to %s" msgstr "Affichage de %s, qui est lié à %s" -#: ../IkiWiki/Render.pm:405 +#: ../IkiWiki/Render.pm:406 #, perl-format msgid "rendering %s, which depends on %s" msgstr "Affichage de %s, qui dépend de %s" -#: ../IkiWiki/Render.pm:443 +#: ../IkiWiki/Render.pm:444 #, perl-format msgid "rendering %s, to update its backlinks" msgstr "Affichage de %s, afin de mettre à jour ses rétroliens" -#: ../IkiWiki/Render.pm:455 +#: ../IkiWiki/Render.pm:456 #, perl-format msgid "removing %s, no longer rendered by %s" msgstr "Suppression de %s, qui n'est plus affiché par %s" -#: ../IkiWiki/Render.pm:481 +#: ../IkiWiki/Render.pm:482 #, perl-format msgid "ikiwiki: cannot render %s" msgstr "ikiwiki : impossible d'afficher %s" @@ -605,15 +582,6 @@ msgstr "Rafraîchissement du wiki..." msgid "done" msgstr "Terminé" -#. translators: The three variables are the name of the wiki, -#. translators: A list of one or more pages that were changed, -#. translators: And the name of the user making the change. -#. translators: This is used as the subject of a commit email. -#: ../IkiWiki/UserInfo.pm:145 -#, perl-format -msgid "update of %s's %s by %s" -msgstr "Wiki %s, les pages %s ont été mises à jour par %s" - #: ../IkiWiki/Wrapper.pm:16 #, perl-format msgid "%s doesn't seem to be executable" @@ -630,19 +598,19 @@ msgstr "Le nom de fichier de l'enrobage n'a pas été indiqué" #. translators: The first parameter is a filename, and the second is #. translators: a (probably not translated) error message. -#: ../IkiWiki/Wrapper.pm:64 +#: ../IkiWiki/Wrapper.pm:48 #, perl-format msgid "failed to write %s: %s" msgstr "Échec de l'écriture de %s : %s" #. translators: The parameter is a C filename. -#: ../IkiWiki/Wrapper.pm:115 +#: ../IkiWiki/Wrapper.pm:99 #, perl-format msgid "failed to compile %s" msgstr "Échec de la compilation de %s" #. translators: The parameter is a filename. -#: ../IkiWiki/Wrapper.pm:135 +#: ../IkiWiki/Wrapper.pm:119 #, perl-format msgid "successfully generated %s" msgstr "%s a été créé avec succès" @@ -651,17 +619,17 @@ 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:81 msgid "usage: --set var=value" msgstr "Syntaxe : -- set var=valeur" -#: ../IkiWiki.pm:129 +#: ../IkiWiki.pm:127 msgid "Must specify url to wiki with --url when using --cgi" msgstr "" "Vous devez indiquer une URL vers le wiki par --url lors de l'utilisation de " "--cgi" -#: ../IkiWiki.pm:198 ../IkiWiki.pm:199 +#: ../IkiWiki.pm:196 ../IkiWiki.pm:197 msgid "Error" msgstr "Erreur" @@ -669,12 +637,35 @@ msgstr "Erreur" #. translators: preprocessor directive name, #. translators: the second a page name, the #. translators: third a number. -#: ../IkiWiki.pm:722 +#: ../IkiWiki.pm:767 #, perl-format msgid "%s preprocessing loop detected on %s at depth %i" msgstr "" "%s une boucle a été détectée dans le prétraitement de %s, à la profondeur %i" +#~ msgid "" +#~ "REV is not set, not running from mtn post-commit hook, cannot send " +#~ "notifications" +#~ msgstr "" +#~ "REV n'est pas défini; impossible de lancer le post-commit de mtn " +#~ "etd'envoyer les notifications" + +#~ msgid "REV is not a valid revision identifier, cannot send notifications" +#~ msgstr "" +#~ "REV n'est pas un identifiant de révision valable, impossible d'envoyer " +#~ "les notifications" + +#~ msgid "" +#~ "REV is not set, not running from svn post-commit hook, cannot send " +#~ "notifications" +#~ msgstr "" +#~ "REV n'est pas défini, pas de lancement depuis le système de rapport par " +#~ "mail après un commit sur le SVN (« hook post-commit »), impossible " +#~ "d'envoyer des notifications" + +#~ msgid "update of %s's %s by %s" +#~ msgstr "Wiki %s, les pages %s ont été mises à jour par %s" + #~ msgid "%s not found" #~ msgstr "%s introuvable " diff --git a/po/gu.po b/po/gu.po index 53775705d..b50fd4813 100644 --- 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-01-09 02:42-0500\n" +"POT-Creation-Date: 2008-01-29 04:45-0500\n" "PO-Revision-Date: 2007-01-11 16:05+0530\n" "Last-Translator: Kartik Mistry \n" "Language-Team: Gujarati \n" @@ -15,119 +15,119 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../IkiWiki/CGI.pm:172 +#: ../IkiWiki/CGI.pm:125 msgid "You need to log in first." msgstr "તમારે પ્રથમ લોગ ઇન થવું પડશે." -#: ../IkiWiki/CGI.pm:202 +#: ../IkiWiki/CGI.pm:155 msgid "login failed, perhaps you need to turn on cookies?" msgstr "પ્રવેશ નિષ્ફળ, કદાચ તમારી કુકીઓ સક્રિય બનાવવી પડશે?" -#: ../IkiWiki/CGI.pm:231 +#: ../IkiWiki/CGI.pm:184 msgid "Login" msgstr "" -#: ../IkiWiki/CGI.pm:232 +#: ../IkiWiki/CGI.pm:185 #, fuzzy msgid "Preferences" msgstr "પ્રાથમિકતાઓ સંગ્રહાઇ." -#: ../IkiWiki/CGI.pm:233 +#: ../IkiWiki/CGI.pm:186 msgid "Admin" msgstr "" -#: ../IkiWiki/CGI.pm:289 +#: ../IkiWiki/CGI.pm:235 msgid "Preferences saved." msgstr "પ્રાથમિકતાઓ સંગ્રહાઇ." -#: ../IkiWiki/CGI.pm:345 +#: ../IkiWiki/CGI.pm:291 #, perl-format msgid "%s is not an editable page" msgstr "%s એ સુધારી શકાય તેવું પાનું નથી" -#: ../IkiWiki/CGI.pm:436 ../IkiWiki/Plugin/brokenlinks.pm:24 -#: ../IkiWiki/Plugin/inline.pm:239 ../IkiWiki/Plugin/opendiscussion.pm:17 +#: ../IkiWiki/CGI.pm:382 ../IkiWiki/Plugin/brokenlinks.pm:24 +#: ../IkiWiki/Plugin/inline.pm:241 ../IkiWiki/Plugin/opendiscussion.pm:17 #: ../IkiWiki/Plugin/orphans.pm:28 ../IkiWiki/Render.pm:98 #: ../IkiWiki/Render.pm:178 msgid "discussion" msgstr "ચર્ચા" -#: ../IkiWiki/CGI.pm:482 +#: ../IkiWiki/CGI.pm:429 #, perl-format msgid "creating %s" msgstr "%s બનાવે છે" -#: ../IkiWiki/CGI.pm:500 ../IkiWiki/CGI.pm:519 ../IkiWiki/CGI.pm:529 -#: ../IkiWiki/CGI.pm:563 ../IkiWiki/CGI.pm:611 +#: ../IkiWiki/CGI.pm:447 ../IkiWiki/CGI.pm:466 ../IkiWiki/CGI.pm:476 +#: ../IkiWiki/CGI.pm:510 ../IkiWiki/CGI.pm:558 #, perl-format msgid "editing %s" msgstr "%s સુધારે છે" -#: ../IkiWiki/CGI.pm:705 +#: ../IkiWiki/CGI.pm:646 msgid "You are banned." msgstr "તમારા પર પ્રતિબંધ છે." -#: ../IkiWiki/Plugin/aggregate.pm:71 +#: ../IkiWiki/Plugin/aggregate.pm:82 #, perl-format msgid "missing %s parameter" msgstr "ખોવાયેલ %s વિકલ્પ" -#: ../IkiWiki/Plugin/aggregate.pm:99 +#: ../IkiWiki/Plugin/aggregate.pm:110 msgid "new feed" msgstr "નવું ફીડ" -#: ../IkiWiki/Plugin/aggregate.pm:113 +#: ../IkiWiki/Plugin/aggregate.pm:124 msgid "posts" msgstr "પોસ્ટ" -#: ../IkiWiki/Plugin/aggregate.pm:115 +#: ../IkiWiki/Plugin/aggregate.pm:126 msgid "new" msgstr "નવું" -#: ../IkiWiki/Plugin/aggregate.pm:231 +#: ../IkiWiki/Plugin/aggregate.pm:236 #, perl-format msgid "expiring %s (%s days old)" msgstr "જુનું કરે છે %s (%s દિવસો જુનું)" -#: ../IkiWiki/Plugin/aggregate.pm:238 +#: ../IkiWiki/Plugin/aggregate.pm:243 #, perl-format msgid "expiring %s" msgstr "જુનું કરે છે %s" -#: ../IkiWiki/Plugin/aggregate.pm:264 +#: ../IkiWiki/Plugin/aggregate.pm:269 #, perl-format msgid "processed ok at %s" msgstr "આના પર બરાબર છે %s" -#: ../IkiWiki/Plugin/aggregate.pm:269 +#: ../IkiWiki/Plugin/aggregate.pm:274 #, perl-format msgid "checking feed %s ..." msgstr "ફીડ %s ચકાસે છે ..." -#: ../IkiWiki/Plugin/aggregate.pm:274 +#: ../IkiWiki/Plugin/aggregate.pm:279 #, perl-format msgid "could not find feed at %s" msgstr "%s પર ફીડ મળી શક્યું નહી" -#: ../IkiWiki/Plugin/aggregate.pm:289 +#: ../IkiWiki/Plugin/aggregate.pm:294 msgid "feed not found" msgstr "ફીડ મળ્યું નહી" -#: ../IkiWiki/Plugin/aggregate.pm:300 +#: ../IkiWiki/Plugin/aggregate.pm:305 #, fuzzy, perl-format msgid "(invalid UTF-8 stripped from feed)" msgstr "ફીડમાંથી અયોગ્ય રીતે UTF-8 નીકાળેલ છે" -#: ../IkiWiki/Plugin/aggregate.pm:306 +#: ../IkiWiki/Plugin/aggregate.pm:311 #, perl-format msgid "(feed entities escaped)" msgstr "" -#: ../IkiWiki/Plugin/aggregate.pm:312 +#: ../IkiWiki/Plugin/aggregate.pm:317 msgid "feed crashed XML::Feed!" msgstr "ફીડ ભાંગી ગયું XML::Feed!" -#: ../IkiWiki/Plugin/aggregate.pm:386 +#: ../IkiWiki/Plugin/aggregate.pm:391 #, perl-format msgid "creating new page %s" msgstr "નવું પાનું %s બનાવે છે" @@ -221,11 +221,11 @@ msgstr "આ શિર્ષકથી નવું પોસ્ટ ઉમેર msgid "nonexistant template %s" msgstr "અસ્તિત્વમાં ન હોય તેવું ટેમ્પલેટ %s" -#: ../IkiWiki/Plugin/inline.pm:247 ../IkiWiki/Render.pm:102 +#: ../IkiWiki/Plugin/inline.pm:249 ../IkiWiki/Render.pm:102 msgid "Discussion" msgstr "ચર્ચા" -#: ../IkiWiki/Plugin/inline.pm:461 +#: ../IkiWiki/Plugin/inline.pm:463 msgid "RPC::XML::Client not found, not pinging" msgstr "RPC::XML::Client મળ્યું નહી, પિંગ કરવામાં આવતું નથી" @@ -243,16 +243,16 @@ msgstr "%s એ %s દ્વારા તાળું મરાયેલ છે msgid "failed to load Markdown.pm perl module (%s) or /usr/bin/markdown (%s)" msgstr "Markdown.pm પર્લ મોડ્યુલ (%s) અથવા /usr/bin/markdown (%s) લાવવામાં નિષ્ફળ" -#: ../IkiWiki/Plugin/meta.pm:132 +#: ../IkiWiki/Plugin/meta.pm:124 msgid "stylesheet not found" msgstr "સ્ટાઇલશીટ મળ્યું નહી" -#: ../IkiWiki/Plugin/meta.pm:156 +#: ../IkiWiki/Plugin/meta.pm:148 #, fuzzy msgid "redir page not found" msgstr "ફીડ મળ્યું નહી" -#: ../IkiWiki/Plugin/meta.pm:169 +#: ../IkiWiki/Plugin/meta.pm:161 #, fuzzy msgid "redir cycle is not allowed" msgstr "ફીડ મળ્યું નહી" @@ -378,15 +378,15 @@ msgstr "મોડા %A સાંજે" msgid "%A night" msgstr "%A રાત્રે" -#: ../IkiWiki/Plugin/prettydate.pm:74 +#: ../IkiWiki/Plugin/prettydate.pm:78 msgid "at teatime on %A" msgstr "ચા ના સમયે %A પર" -#: ../IkiWiki/Plugin/prettydate.pm:78 +#: ../IkiWiki/Plugin/prettydate.pm:82 msgid "at midnight" msgstr "મધ્યરાત્રે" -#: ../IkiWiki/Plugin/prettydate.pm:81 +#: ../IkiWiki/Plugin/prettydate.pm:85 msgid "at noon on %A" msgstr "બપોરે %A પર" @@ -498,7 +498,7 @@ msgstr "ખોવાયેલ કિંમતો" msgid "code includes disallowed latex commands" msgstr "" -#: ../IkiWiki/Plugin/teximg.pm:97 +#: ../IkiWiki/Plugin/teximg.pm:96 #, fuzzy msgid "failed to generate image from code" msgstr "માપ બદલવામાં નિષ્ફળ: %s" @@ -507,69 +507,51 @@ msgstr "માપ બદલવામાં નિષ્ફળ: %s" msgid "(not toggleable in preview mode)" msgstr "" -#: ../IkiWiki/Rcs/Stub.pm:68 +#: ../IkiWiki/Rcs/Stub.pm:62 msgid "getctime not implemented" msgstr "getctime અમલમાં મૂકાયેલ નથી" -#: ../IkiWiki/Rcs/monotone.pm:459 -#, fuzzy -msgid "" -"REV is not set, not running from mtn post-commit hook, cannot send " -"notifications" -msgstr "REV ગોઠવેલ નથી, svn post-commit hook માંથી ચાલતું નથી, નોંધ મોકલી શકાશે નહી" - -#: ../IkiWiki/Rcs/monotone.pm:462 -#, fuzzy -msgid "REV is not a valid revision identifier, cannot send notifications" -msgstr "REV ગોઠવેલ નથી, svn post-commit hook માંથી ચાલતું નથી, નોંધ મોકલી શકાશે નહી" - -#: ../IkiWiki/Rcs/svn.pm:221 -msgid "" -"REV is not set, not running from svn post-commit hook, cannot send " -"notifications" -msgstr "REV ગોઠવેલ નથી, svn post-commit hook માંથી ચાલતું નથી, નોંધ મોકલી શકાશે નહી" - -#: ../IkiWiki/Render.pm:275 ../IkiWiki/Render.pm:296 +#: ../IkiWiki/Render.pm:276 ../IkiWiki/Render.pm:297 #, perl-format msgid "skipping bad filename %s" msgstr "ખરાબ ફાઇલ નામ છોડી દે છે %s" -#: ../IkiWiki/Render.pm:338 +#: ../IkiWiki/Render.pm:339 #, perl-format msgid "removing old page %s" msgstr "જુનાં પાનાં દૂર કરે છે %s" -#: ../IkiWiki/Render.pm:371 +#: ../IkiWiki/Render.pm:372 #, perl-format msgid "scanning %s" msgstr "%s શોધે છે" -#: ../IkiWiki/Render.pm:376 +#: ../IkiWiki/Render.pm:377 #, perl-format msgid "rendering %s" msgstr "રેન્ડર કરે છે %s" -#: ../IkiWiki/Render.pm:388 +#: ../IkiWiki/Render.pm:389 #, perl-format msgid "rendering %s, which links to %s" msgstr "રેન્ડર કરે છે %s, જે %s સાથે જોડાણ ધરાવે છે" -#: ../IkiWiki/Render.pm:405 +#: ../IkiWiki/Render.pm:406 #, perl-format msgid "rendering %s, which depends on %s" msgstr "રેન્ડર કરે છે %s, જે %s પર આધારિત છે" -#: ../IkiWiki/Render.pm:443 +#: ../IkiWiki/Render.pm:444 #, perl-format msgid "rendering %s, to update its backlinks" msgstr "રેન્ડર કરે છે %s, તેનાં પાછળનાં જોડાણો સુધારવા માટે" -#: ../IkiWiki/Render.pm:455 +#: ../IkiWiki/Render.pm:456 #, perl-format msgid "removing %s, no longer rendered by %s" msgstr "દૂર કરે છે %s, હવે %s વડે રેન્ડર કરાતું નથી" -#: ../IkiWiki/Render.pm:481 +#: ../IkiWiki/Render.pm:482 #, perl-format msgid "ikiwiki: cannot render %s" msgstr "ikiwiki: %s રેન્ડર કરી શકાતું નથી" @@ -597,15 +579,6 @@ msgstr "વીકીને તાજી કરે છે.." msgid "done" msgstr "સંપૂર્ણ" -#. translators: The three variables are the name of the wiki, -#. translators: A list of one or more pages that were changed, -#. translators: And the name of the user making the change. -#. translators: This is used as the subject of a commit email. -#: ../IkiWiki/UserInfo.pm:145 -#, perl-format -msgid "update of %s's %s by %s" -msgstr "%s નો સુધારો %s નાં %s વડે" - #: ../IkiWiki/Wrapper.pm:16 #, perl-format msgid "%s doesn't seem to be executable" @@ -621,19 +594,19 @@ msgstr "આવરણ ફાઇલનામ સ્પષ્ટ કરેલ ન #. translators: The first parameter is a filename, and the second is #. translators: a (probably not translated) error message. -#: ../IkiWiki/Wrapper.pm:64 +#: ../IkiWiki/Wrapper.pm:48 #, perl-format msgid "failed to write %s: %s" msgstr "%s લખવામાં નિષ્ફળ: %s" #. translators: The parameter is a C filename. -#: ../IkiWiki/Wrapper.pm:115 +#: ../IkiWiki/Wrapper.pm:99 #, perl-format msgid "failed to compile %s" msgstr "%s કમ્પાઇલ કરવામાં નિષ્ફળ" #. translators: The parameter is a filename. -#: ../IkiWiki/Wrapper.pm:135 +#: ../IkiWiki/Wrapper.pm:119 #, perl-format msgid "successfully generated %s" msgstr "સફળતાપૂર્વક પેદા કરેલ છે %s" @@ -642,15 +615,15 @@ msgstr "સફળતાપૂર્વક પેદા કરેલ છે %s" msgid "usage: ikiwiki [options] source dest" msgstr "ઉપયોગ: ikiwiki [વિકલ્પો] source dest" -#: ../ikiwiki.in:83 +#: ../ikiwiki.in:81 msgid "usage: --set var=value" msgstr "" -#: ../IkiWiki.pm:129 +#: ../IkiWiki.pm:127 msgid "Must specify url to wiki with --url when using --cgi" msgstr "જ્યારે --cgi ઉપયોગ કરતાં હોય ત્યારે વીકીનું યુઆરએલ સ્પષ્ટ કરવું જ પડશે" -#: ../IkiWiki.pm:198 ../IkiWiki.pm:199 +#: ../IkiWiki.pm:196 ../IkiWiki.pm:197 msgid "Error" msgstr "ક્ષતિ" @@ -658,11 +631,32 @@ msgstr "ક્ષતિ" #. translators: preprocessor directive name, #. translators: the second a page name, the #. translators: third a number. -#: ../IkiWiki.pm:722 +#: ../IkiWiki.pm:767 #, perl-format msgid "%s preprocessing loop detected on %s at depth %i" msgstr "%s પર શોધાયેલ લુપ %s પર ચલાવે છે %i ઉંડાણ પર" +#, fuzzy +#~ msgid "" +#~ "REV is not set, not running from mtn post-commit hook, cannot send " +#~ "notifications" +#~ msgstr "" +#~ "REV ગોઠવેલ નથી, svn post-commit hook માંથી ચાલતું નથી, નોંધ મોકલી શકાશે નહી" + +#, fuzzy +#~ msgid "REV is not a valid revision identifier, cannot send notifications" +#~ msgstr "" +#~ "REV ગોઠવેલ નથી, svn post-commit hook માંથી ચાલતું નથી, નોંધ મોકલી શકાશે નહી" + +#~ msgid "" +#~ "REV is not set, not running from svn post-commit hook, cannot send " +#~ "notifications" +#~ msgstr "" +#~ "REV ગોઠવેલ નથી, svn post-commit hook માંથી ચાલતું નથી, નોંધ મોકલી શકાશે નહી" + +#~ msgid "update of %s's %s by %s" +#~ msgstr "%s નો સુધારો %s નાં %s વડે" + #~ msgid "%s not found" #~ msgstr "ટેમ્પલેટ %s મળ્યું નહી" diff --git a/po/ikiwiki.pot b/po/ikiwiki.pot index 2c08c5aaf..d8d00812b 100644 --- a/po/ikiwiki.pot +++ b/po/ikiwiki.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2008-01-10 14:54-0500\n" +"POT-Creation-Date: 2008-01-29 04:45-0500\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -16,118 +16,118 @@ msgstr "" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" -#: ../IkiWiki/CGI.pm:172 +#: ../IkiWiki/CGI.pm:125 msgid "You need to log in first." msgstr "" -#: ../IkiWiki/CGI.pm:202 +#: ../IkiWiki/CGI.pm:155 msgid "login failed, perhaps you need to turn on cookies?" msgstr "" -#: ../IkiWiki/CGI.pm:231 +#: ../IkiWiki/CGI.pm:184 msgid "Login" msgstr "" -#: ../IkiWiki/CGI.pm:232 +#: ../IkiWiki/CGI.pm:185 msgid "Preferences" msgstr "" -#: ../IkiWiki/CGI.pm:233 +#: ../IkiWiki/CGI.pm:186 msgid "Admin" msgstr "" -#: ../IkiWiki/CGI.pm:289 +#: ../IkiWiki/CGI.pm:235 msgid "Preferences saved." msgstr "" -#: ../IkiWiki/CGI.pm:345 +#: ../IkiWiki/CGI.pm:291 #, perl-format msgid "%s is not an editable page" msgstr "" -#: ../IkiWiki/CGI.pm:436 ../IkiWiki/Plugin/brokenlinks.pm:24 -#: ../IkiWiki/Plugin/inline.pm:239 ../IkiWiki/Plugin/opendiscussion.pm:17 +#: ../IkiWiki/CGI.pm:382 ../IkiWiki/Plugin/brokenlinks.pm:24 +#: ../IkiWiki/Plugin/inline.pm:241 ../IkiWiki/Plugin/opendiscussion.pm:17 #: ../IkiWiki/Plugin/orphans.pm:28 ../IkiWiki/Render.pm:98 #: ../IkiWiki/Render.pm:178 msgid "discussion" msgstr "" -#: ../IkiWiki/CGI.pm:482 +#: ../IkiWiki/CGI.pm:429 #, perl-format msgid "creating %s" msgstr "" -#: ../IkiWiki/CGI.pm:500 ../IkiWiki/CGI.pm:519 ../IkiWiki/CGI.pm:529 -#: ../IkiWiki/CGI.pm:563 ../IkiWiki/CGI.pm:611 +#: ../IkiWiki/CGI.pm:447 ../IkiWiki/CGI.pm:466 ../IkiWiki/CGI.pm:476 +#: ../IkiWiki/CGI.pm:510 ../IkiWiki/CGI.pm:558 #, perl-format msgid "editing %s" msgstr "" -#: ../IkiWiki/CGI.pm:705 +#: ../IkiWiki/CGI.pm:646 msgid "You are banned." msgstr "" -#: ../IkiWiki/Plugin/aggregate.pm:71 +#: ../IkiWiki/Plugin/aggregate.pm:82 #, perl-format msgid "missing %s parameter" msgstr "" -#: ../IkiWiki/Plugin/aggregate.pm:99 +#: ../IkiWiki/Plugin/aggregate.pm:110 msgid "new feed" msgstr "" -#: ../IkiWiki/Plugin/aggregate.pm:113 +#: ../IkiWiki/Plugin/aggregate.pm:124 msgid "posts" msgstr "" -#: ../IkiWiki/Plugin/aggregate.pm:115 +#: ../IkiWiki/Plugin/aggregate.pm:126 msgid "new" msgstr "" -#: ../IkiWiki/Plugin/aggregate.pm:231 +#: ../IkiWiki/Plugin/aggregate.pm:236 #, perl-format msgid "expiring %s (%s days old)" msgstr "" -#: ../IkiWiki/Plugin/aggregate.pm:238 +#: ../IkiWiki/Plugin/aggregate.pm:243 #, perl-format msgid "expiring %s" msgstr "" -#: ../IkiWiki/Plugin/aggregate.pm:264 +#: ../IkiWiki/Plugin/aggregate.pm:269 #, perl-format msgid "processed ok at %s" msgstr "" -#: ../IkiWiki/Plugin/aggregate.pm:269 +#: ../IkiWiki/Plugin/aggregate.pm:274 #, perl-format msgid "checking feed %s ..." msgstr "" -#: ../IkiWiki/Plugin/aggregate.pm:274 +#: ../IkiWiki/Plugin/aggregate.pm:279 #, perl-format msgid "could not find feed at %s" msgstr "" -#: ../IkiWiki/Plugin/aggregate.pm:289 +#: ../IkiWiki/Plugin/aggregate.pm:294 msgid "feed not found" msgstr "" -#: ../IkiWiki/Plugin/aggregate.pm:300 +#: ../IkiWiki/Plugin/aggregate.pm:305 #, perl-format msgid "(invalid UTF-8 stripped from feed)" msgstr "" -#: ../IkiWiki/Plugin/aggregate.pm:306 +#: ../IkiWiki/Plugin/aggregate.pm:311 #, perl-format msgid "(feed entities escaped)" msgstr "" -#: ../IkiWiki/Plugin/aggregate.pm:312 +#: ../IkiWiki/Plugin/aggregate.pm:317 msgid "feed crashed XML::Feed!" msgstr "" -#: ../IkiWiki/Plugin/aggregate.pm:386 +#: ../IkiWiki/Plugin/aggregate.pm:391 #, perl-format msgid "creating new page %s" msgstr "" @@ -218,11 +218,11 @@ msgstr "" msgid "nonexistant template %s" msgstr "" -#: ../IkiWiki/Plugin/inline.pm:247 ../IkiWiki/Render.pm:102 +#: ../IkiWiki/Plugin/inline.pm:249 ../IkiWiki/Render.pm:102 msgid "Discussion" msgstr "" -#: ../IkiWiki/Plugin/inline.pm:461 +#: ../IkiWiki/Plugin/inline.pm:463 msgid "RPC::XML::Client not found, not pinging" msgstr "" @@ -372,15 +372,15 @@ msgstr "" msgid "%A night" msgstr "" -#: ../IkiWiki/Plugin/prettydate.pm:74 +#: ../IkiWiki/Plugin/prettydate.pm:78 msgid "at teatime on %A" msgstr "" -#: ../IkiWiki/Plugin/prettydate.pm:78 +#: ../IkiWiki/Plugin/prettydate.pm:82 msgid "at midnight" msgstr "" -#: ../IkiWiki/Plugin/prettydate.pm:81 +#: ../IkiWiki/Plugin/prettydate.pm:85 msgid "at noon on %A" msgstr "" @@ -499,67 +499,51 @@ msgstr "" msgid "(not toggleable in preview mode)" msgstr "" -#: ../IkiWiki/Rcs/Stub.pm:68 +#: ../IkiWiki/Rcs/Stub.pm:62 msgid "getctime not implemented" msgstr "" -#: ../IkiWiki/Rcs/monotone.pm:459 -msgid "" -"REV is not set, not running from mtn post-commit hook, cannot send " -"notifications" -msgstr "" - -#: ../IkiWiki/Rcs/monotone.pm:462 -msgid "REV is not a valid revision identifier, cannot send notifications" -msgstr "" - -#: ../IkiWiki/Rcs/svn.pm:221 -msgid "" -"REV is not set, not running from svn post-commit hook, cannot send " -"notifications" -msgstr "" - -#: ../IkiWiki/Render.pm:275 ../IkiWiki/Render.pm:296 +#: ../IkiWiki/Render.pm:276 ../IkiWiki/Render.pm:297 #, perl-format msgid "skipping bad filename %s" msgstr "" -#: ../IkiWiki/Render.pm:338 +#: ../IkiWiki/Render.pm:339 #, perl-format msgid "removing old page %s" msgstr "" -#: ../IkiWiki/Render.pm:371 +#: ../IkiWiki/Render.pm:372 #, perl-format msgid "scanning %s" msgstr "" -#: ../IkiWiki/Render.pm:376 +#: ../IkiWiki/Render.pm:377 #, perl-format msgid "rendering %s" msgstr "" -#: ../IkiWiki/Render.pm:388 +#: ../IkiWiki/Render.pm:389 #, perl-format msgid "rendering %s, which links to %s" msgstr "" -#: ../IkiWiki/Render.pm:405 +#: ../IkiWiki/Render.pm:406 #, perl-format msgid "rendering %s, which depends on %s" msgstr "" -#: ../IkiWiki/Render.pm:443 +#: ../IkiWiki/Render.pm:444 #, perl-format msgid "rendering %s, to update its backlinks" msgstr "" -#: ../IkiWiki/Render.pm:455 +#: ../IkiWiki/Render.pm:456 #, perl-format msgid "removing %s, no longer rendered by %s" msgstr "" -#: ../IkiWiki/Render.pm:481 +#: ../IkiWiki/Render.pm:482 #, perl-format msgid "ikiwiki: cannot render %s" msgstr "" @@ -587,15 +571,6 @@ msgstr "" msgid "done" msgstr "" -#. translators: The three variables are the name of the wiki, -#. translators: A list of one or more pages that were changed, -#. translators: And the name of the user making the change. -#. translators: This is used as the subject of a commit email. -#: ../IkiWiki/UserInfo.pm:145 -#, perl-format -msgid "update of %s's %s by %s" -msgstr "" - #: ../IkiWiki/Wrapper.pm:16 #, perl-format msgid "%s doesn't seem to be executable" @@ -611,19 +586,19 @@ msgstr "" #. translators: The first parameter is a filename, and the second is #. translators: a (probably not translated) error message. -#: ../IkiWiki/Wrapper.pm:64 +#: ../IkiWiki/Wrapper.pm:48 #, perl-format msgid "failed to write %s: %s" msgstr "" #. translators: The parameter is a C filename. -#: ../IkiWiki/Wrapper.pm:115 +#: ../IkiWiki/Wrapper.pm:99 #, perl-format msgid "failed to compile %s" msgstr "" #. translators: The parameter is a filename. -#: ../IkiWiki/Wrapper.pm:135 +#: ../IkiWiki/Wrapper.pm:119 #, perl-format msgid "successfully generated %s" msgstr "" @@ -632,15 +607,15 @@ msgstr "" msgid "usage: ikiwiki [options] source dest" msgstr "" -#: ../ikiwiki.in:83 +#: ../ikiwiki.in:81 msgid "usage: --set var=value" msgstr "" -#: ../IkiWiki.pm:129 +#: ../IkiWiki.pm:127 msgid "Must specify url to wiki with --url when using --cgi" msgstr "" -#: ../IkiWiki.pm:198 ../IkiWiki.pm:199 +#: ../IkiWiki.pm:196 ../IkiWiki.pm:197 msgid "Error" msgstr "" @@ -648,7 +623,7 @@ msgstr "" #. translators: preprocessor directive name, #. translators: the second a page name, the #. translators: third a number. -#: ../IkiWiki.pm:732 +#: ../IkiWiki.pm:767 #, perl-format msgid "%s preprocessing loop detected on %s at depth %i" msgstr "" diff --git a/po/pl.po b/po/pl.po index a6b08a607..c3b9b0c1d 100644 --- 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-01-09 02:42-0500\n" +"POT-Creation-Date: 2008-01-29 04:45-0500\n" "PO-Revision-Date: 2007-04-27 22:05+0200\n" "Last-Translator: Pawel Tecza \n" "Language-Team: Debian L10n Polish \n" @@ -16,122 +16,122 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../IkiWiki/CGI.pm:172 +#: ../IkiWiki/CGI.pm:125 msgid "You need to log in first." msgstr "Proszę najpierw zalogować się." -#: ../IkiWiki/CGI.pm:202 +#: ../IkiWiki/CGI.pm:155 msgid "login failed, perhaps you need to turn on cookies?" msgstr "" "Nieudane logowanie. Proszę sprawdzić czy w przeglądarce włączone są " "ciasteczka (ang. cookies)" -#: ../IkiWiki/CGI.pm:231 +#: ../IkiWiki/CGI.pm:184 msgid "Login" msgstr "" -#: ../IkiWiki/CGI.pm:232 +#: ../IkiWiki/CGI.pm:185 #, fuzzy msgid "Preferences" msgstr "Preferencje zapisane." -#: ../IkiWiki/CGI.pm:233 +#: ../IkiWiki/CGI.pm:186 msgid "Admin" msgstr "" -#: ../IkiWiki/CGI.pm:289 +#: ../IkiWiki/CGI.pm:235 msgid "Preferences saved." msgstr "Preferencje zapisane." -#: ../IkiWiki/CGI.pm:345 +#: ../IkiWiki/CGI.pm:291 #, perl-format msgid "%s is not an editable page" msgstr "Strona %s nie może być edytowana" -#: ../IkiWiki/CGI.pm:436 ../IkiWiki/Plugin/brokenlinks.pm:24 -#: ../IkiWiki/Plugin/inline.pm:239 ../IkiWiki/Plugin/opendiscussion.pm:17 +#: ../IkiWiki/CGI.pm:382 ../IkiWiki/Plugin/brokenlinks.pm:24 +#: ../IkiWiki/Plugin/inline.pm:241 ../IkiWiki/Plugin/opendiscussion.pm:17 #: ../IkiWiki/Plugin/orphans.pm:28 ../IkiWiki/Render.pm:98 #: ../IkiWiki/Render.pm:178 msgid "discussion" msgstr "dyskusja" -#: ../IkiWiki/CGI.pm:482 +#: ../IkiWiki/CGI.pm:429 #, perl-format msgid "creating %s" msgstr "tworzenie %s" -#: ../IkiWiki/CGI.pm:500 ../IkiWiki/CGI.pm:519 ../IkiWiki/CGI.pm:529 -#: ../IkiWiki/CGI.pm:563 ../IkiWiki/CGI.pm:611 +#: ../IkiWiki/CGI.pm:447 ../IkiWiki/CGI.pm:466 ../IkiWiki/CGI.pm:476 +#: ../IkiWiki/CGI.pm:510 ../IkiWiki/CGI.pm:558 #, perl-format msgid "editing %s" msgstr "edycja %s" -#: ../IkiWiki/CGI.pm:705 +#: ../IkiWiki/CGI.pm:646 msgid "You are banned." msgstr "Twój dostęp został zabroniony przez administratora." -#: ../IkiWiki/Plugin/aggregate.pm:71 +#: ../IkiWiki/Plugin/aggregate.pm:82 #, fuzzy, perl-format msgid "missing %s parameter" msgstr "brakujący parametr %s" -#: ../IkiWiki/Plugin/aggregate.pm:99 +#: ../IkiWiki/Plugin/aggregate.pm:110 msgid "new feed" msgstr "nowy kanał RSS" -#: ../IkiWiki/Plugin/aggregate.pm:113 +#: ../IkiWiki/Plugin/aggregate.pm:124 msgid "posts" msgstr "wpisy" -#: ../IkiWiki/Plugin/aggregate.pm:115 +#: ../IkiWiki/Plugin/aggregate.pm:126 msgid "new" msgstr "nowy wpis" -#: ../IkiWiki/Plugin/aggregate.pm:231 +#: ../IkiWiki/Plugin/aggregate.pm:236 #, perl-format msgid "expiring %s (%s days old)" msgstr "wygasający wpis %s (ma już %s dni)" -#: ../IkiWiki/Plugin/aggregate.pm:238 +#: ../IkiWiki/Plugin/aggregate.pm:243 #, perl-format msgid "expiring %s" msgstr "wygasający wpis %s" -#: ../IkiWiki/Plugin/aggregate.pm:264 +#: ../IkiWiki/Plugin/aggregate.pm:269 #, perl-format msgid "processed ok at %s" msgstr "kanał RSS przetworzony w dniu %s" -#: ../IkiWiki/Plugin/aggregate.pm:269 +#: ../IkiWiki/Plugin/aggregate.pm:274 #, perl-format msgid "checking feed %s ..." msgstr "sprawdzanie kanału RSS %s..." -#: ../IkiWiki/Plugin/aggregate.pm:274 +#: ../IkiWiki/Plugin/aggregate.pm:279 #, perl-format msgid "could not find feed at %s" msgstr "nie znaleziono kanału RSS pod adresem %s" -#: ../IkiWiki/Plugin/aggregate.pm:289 +#: ../IkiWiki/Plugin/aggregate.pm:294 #, fuzzy msgid "feed not found" msgstr "nieznaleziony kanał RSS" -#: ../IkiWiki/Plugin/aggregate.pm:300 +#: ../IkiWiki/Plugin/aggregate.pm:305 #, fuzzy, perl-format msgid "(invalid UTF-8 stripped from feed)" msgstr "Nieprawidłowe kodowanie UTF-8 usunięte z kanału RSS" -#: ../IkiWiki/Plugin/aggregate.pm:306 +#: ../IkiWiki/Plugin/aggregate.pm:311 #, perl-format msgid "(feed entities escaped)" msgstr "" -#: ../IkiWiki/Plugin/aggregate.pm:312 +#: ../IkiWiki/Plugin/aggregate.pm:317 msgid "feed crashed XML::Feed!" msgstr "awaria kanału RSS w module XML::Feed!" -#: ../IkiWiki/Plugin/aggregate.pm:386 +#: ../IkiWiki/Plugin/aggregate.pm:391 #, perl-format msgid "creating new page %s" msgstr "tworzenie nowej strony %s" @@ -229,11 +229,11 @@ msgstr "Tytuł nowego wpisu" msgid "nonexistant template %s" msgstr "brakujący szablon %s" -#: ../IkiWiki/Plugin/inline.pm:247 ../IkiWiki/Render.pm:102 +#: ../IkiWiki/Plugin/inline.pm:249 ../IkiWiki/Render.pm:102 msgid "Discussion" msgstr "Dyskusja" -#: ../IkiWiki/Plugin/inline.pm:461 +#: ../IkiWiki/Plugin/inline.pm:463 msgid "RPC::XML::Client not found, not pinging" msgstr "Nieznaleziony moduł RPC::XML::Client, brak możliwości pingowania" @@ -256,17 +256,17 @@ msgstr "" "Awaria w trakcie ładowania perlowego modułu Markdown.pm (%s) lub " "uruchamiania programu /usr/bin/markdown (%s)" -#: ../IkiWiki/Plugin/meta.pm:132 +#: ../IkiWiki/Plugin/meta.pm:124 #, fuzzy msgid "stylesheet not found" msgstr "nieznaleziony szablon ze stylami CSS" -#: ../IkiWiki/Plugin/meta.pm:156 +#: ../IkiWiki/Plugin/meta.pm:148 #, fuzzy msgid "redir page not found" msgstr "nieznaleziony kanał RSS" -#: ../IkiWiki/Plugin/meta.pm:169 +#: ../IkiWiki/Plugin/meta.pm:161 #, fuzzy msgid "redir cycle is not allowed" msgstr "nieznaleziony kanał RSS" @@ -392,15 +392,15 @@ msgstr "późnym wieczorem w %A" msgid "%A night" msgstr "nocą w %A" -#: ../IkiWiki/Plugin/prettydate.pm:74 +#: ../IkiWiki/Plugin/prettydate.pm:78 msgid "at teatime on %A" msgstr "w porze śniadaniowej w %A" -#: ../IkiWiki/Plugin/prettydate.pm:78 +#: ../IkiWiki/Plugin/prettydate.pm:82 msgid "at midnight" msgstr "o północy" -#: ../IkiWiki/Plugin/prettydate.pm:81 +#: ../IkiWiki/Plugin/prettydate.pm:85 msgid "at noon on %A" msgstr "w południe w %A" @@ -521,7 +521,7 @@ msgstr "brakujące wartości" msgid "code includes disallowed latex commands" msgstr "" -#: ../IkiWiki/Plugin/teximg.pm:97 +#: ../IkiWiki/Plugin/teximg.pm:96 #, fuzzy msgid "failed to generate image from code" msgstr "awaria w trakcie zmiany rozmiaru: %s" @@ -530,75 +530,51 @@ msgstr "awaria w trakcie zmiany rozmiaru: %s" msgid "(not toggleable in preview mode)" msgstr "" -#: ../IkiWiki/Rcs/Stub.pm:68 +#: ../IkiWiki/Rcs/Stub.pm:62 msgid "getctime not implemented" msgstr "niedostępna funkcja getctime" -#: ../IkiWiki/Rcs/monotone.pm:459 -#, fuzzy -msgid "" -"REV is not set, not running from mtn post-commit hook, cannot send " -"notifications" -msgstr "" -"Brak możliwości wysłania powiadomień od Subversion przez \"haczyk\" post-" -"commit z powodu nieustawionego parametru REV" - -#: ../IkiWiki/Rcs/monotone.pm:462 -#, fuzzy -msgid "REV is not a valid revision identifier, cannot send notifications" -msgstr "" -"Brak możliwości wysłania powiadomień od Subversion przez \"haczyk\" post-" -"commit z powodu nieustawionego parametru REV" - -#: ../IkiWiki/Rcs/svn.pm:221 -msgid "" -"REV is not set, not running from svn post-commit hook, cannot send " -"notifications" -msgstr "" -"Brak możliwości wysłania powiadomień od Subversion przez \"haczyk\" post-" -"commit z powodu nieustawionego parametru REV" - -#: ../IkiWiki/Render.pm:275 ../IkiWiki/Render.pm:296 +#: ../IkiWiki/Render.pm:276 ../IkiWiki/Render.pm:297 #, perl-format msgid "skipping bad filename %s" msgstr "pomijanie nieprawidłowej nazwy pliku %s" -#: ../IkiWiki/Render.pm:338 +#: ../IkiWiki/Render.pm:339 #, perl-format msgid "removing old page %s" msgstr "usuwanie starej strony %s" -#: ../IkiWiki/Render.pm:371 +#: ../IkiWiki/Render.pm:372 #, perl-format msgid "scanning %s" msgstr "skanowanie %s" -#: ../IkiWiki/Render.pm:376 +#: ../IkiWiki/Render.pm:377 #, perl-format msgid "rendering %s" msgstr "renderowanie %s" -#: ../IkiWiki/Render.pm:388 +#: ../IkiWiki/Render.pm:389 #, perl-format msgid "rendering %s, which links to %s" msgstr "renderowanie %s z odnośnikiem do %s" -#: ../IkiWiki/Render.pm:405 +#: ../IkiWiki/Render.pm:406 #, perl-format msgid "rendering %s, which depends on %s" msgstr "renderowanie %s zależącego od %s" -#: ../IkiWiki/Render.pm:443 +#: ../IkiWiki/Render.pm:444 #, perl-format msgid "rendering %s, to update its backlinks" msgstr "renderowanie %s w celu aktualizacji powrotnych odnośników" -#: ../IkiWiki/Render.pm:455 +#: ../IkiWiki/Render.pm:456 #, perl-format msgid "removing %s, no longer rendered by %s" msgstr "usuwanie %s nie tworzonego już przez %s" -#: ../IkiWiki/Render.pm:481 +#: ../IkiWiki/Render.pm:482 #, perl-format msgid "ikiwiki: cannot render %s" msgstr "ikiwiki: awaria w trakcie tworzenia %s" @@ -626,15 +602,6 @@ msgstr "odświeżanie wiki..." msgid "done" msgstr "gotowe" -#. translators: The three variables are the name of the wiki, -#. translators: A list of one or more pages that were changed, -#. translators: And the name of the user making the change. -#. translators: This is used as the subject of a commit email. -#: ../IkiWiki/UserInfo.pm:145 -#, perl-format -msgid "update of %s's %s by %s" -msgstr "aktualizacja stron wiki %s: %s przez użytkownika %s" - #: ../IkiWiki/Wrapper.pm:16 #, perl-format msgid "%s doesn't seem to be executable" @@ -650,19 +617,19 @@ msgstr "nieokreślona nazwa pliku osłony" #. translators: The first parameter is a filename, and the second is #. translators: a (probably not translated) error message. -#: ../IkiWiki/Wrapper.pm:64 +#: ../IkiWiki/Wrapper.pm:48 #, perl-format msgid "failed to write %s: %s" msgstr "awaria w trakcie zapisu %s: %s" #. translators: The parameter is a C filename. -#: ../IkiWiki/Wrapper.pm:115 +#: ../IkiWiki/Wrapper.pm:99 #, perl-format msgid "failed to compile %s" msgstr "awaria w trakcie kompilowania %s" #. translators: The parameter is a filename. -#: ../IkiWiki/Wrapper.pm:135 +#: ../IkiWiki/Wrapper.pm:119 #, perl-format msgid "successfully generated %s" msgstr "pomyślnie utworzono %s" @@ -671,17 +638,17 @@ 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:81 msgid "usage: --set var=value" msgstr "" -#: ../IkiWiki.pm:129 +#: ../IkiWiki.pm:127 msgid "Must specify url to wiki with --url when using --cgi" msgstr "" "Użycie parametru --cgi wymaga podania adresu URL do wiki za pomocą parametru " "--url" -#: ../IkiWiki.pm:198 ../IkiWiki.pm:199 +#: ../IkiWiki.pm:196 ../IkiWiki.pm:197 msgid "Error" msgstr "Błąd" @@ -689,11 +656,35 @@ msgstr "Błąd" #. translators: preprocessor directive name, #. translators: the second a page name, the #. translators: third a number. -#: ../IkiWiki.pm:722 +#: ../IkiWiki.pm:767 #, perl-format msgid "%s preprocessing loop detected on %s at depth %i" msgstr "polecenie preprocesora %s wykryte w %s na głębokości %i" +#, fuzzy +#~ msgid "" +#~ "REV is not set, not running from mtn post-commit hook, cannot send " +#~ "notifications" +#~ msgstr "" +#~ "Brak możliwości wysłania powiadomień od Subversion przez \"haczyk\" post-" +#~ "commit z powodu nieustawionego parametru REV" + +#, fuzzy +#~ msgid "REV is not a valid revision identifier, cannot send notifications" +#~ msgstr "" +#~ "Brak możliwości wysłania powiadomień od Subversion przez \"haczyk\" post-" +#~ "commit z powodu nieustawionego parametru REV" + +#~ msgid "" +#~ "REV is not set, not running from svn post-commit hook, cannot send " +#~ "notifications" +#~ msgstr "" +#~ "Brak możliwości wysłania powiadomień od Subversion przez \"haczyk\" post-" +#~ "commit z powodu nieustawionego parametru REV" + +#~ msgid "update of %s's %s by %s" +#~ msgstr "aktualizacja stron wiki %s: %s przez użytkownika %s" + #, fuzzy #~ msgid "%s not found" #~ msgstr "nie znaleziono %s" diff --git a/po/sv.po b/po/sv.po index 5874415ac..3aa8b312b 100644 --- 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-01-09 02:42-0500\n" +"POT-Creation-Date: 2008-01-29 04:45-0500\n" "PO-Revision-Date: 2007-01-10 23:47+0100\n" "Last-Translator: Daniel Nylander \n" "Language-Team: Swedish \n" @@ -15,120 +15,120 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../IkiWiki/CGI.pm:172 +#: ../IkiWiki/CGI.pm:125 msgid "You need to log in first." msgstr "Du måste logga in först." -#: ../IkiWiki/CGI.pm:202 +#: ../IkiWiki/CGI.pm:155 msgid "login failed, perhaps you need to turn on cookies?" msgstr "" -#: ../IkiWiki/CGI.pm:231 +#: ../IkiWiki/CGI.pm:184 msgid "Login" msgstr "" -#: ../IkiWiki/CGI.pm:232 +#: ../IkiWiki/CGI.pm:185 #, fuzzy msgid "Preferences" msgstr "Inställningar sparades." -#: ../IkiWiki/CGI.pm:233 +#: ../IkiWiki/CGI.pm:186 msgid "Admin" msgstr "" -#: ../IkiWiki/CGI.pm:289 +#: ../IkiWiki/CGI.pm:235 msgid "Preferences saved." msgstr "Inställningar sparades." -#: ../IkiWiki/CGI.pm:345 +#: ../IkiWiki/CGI.pm:291 #, perl-format msgid "%s is not an editable page" msgstr "" -#: ../IkiWiki/CGI.pm:436 ../IkiWiki/Plugin/brokenlinks.pm:24 -#: ../IkiWiki/Plugin/inline.pm:239 ../IkiWiki/Plugin/opendiscussion.pm:17 +#: ../IkiWiki/CGI.pm:382 ../IkiWiki/Plugin/brokenlinks.pm:24 +#: ../IkiWiki/Plugin/inline.pm:241 ../IkiWiki/Plugin/opendiscussion.pm:17 #: ../IkiWiki/Plugin/orphans.pm:28 ../IkiWiki/Render.pm:98 #: ../IkiWiki/Render.pm:178 msgid "discussion" msgstr "diskussion" -#: ../IkiWiki/CGI.pm:482 +#: ../IkiWiki/CGI.pm:429 #, perl-format msgid "creating %s" msgstr "skapar %s" -#: ../IkiWiki/CGI.pm:500 ../IkiWiki/CGI.pm:519 ../IkiWiki/CGI.pm:529 -#: ../IkiWiki/CGI.pm:563 ../IkiWiki/CGI.pm:611 +#: ../IkiWiki/CGI.pm:447 ../IkiWiki/CGI.pm:466 ../IkiWiki/CGI.pm:476 +#: ../IkiWiki/CGI.pm:510 ../IkiWiki/CGI.pm:558 #, perl-format msgid "editing %s" msgstr "redigerar %s" -#: ../IkiWiki/CGI.pm:705 +#: ../IkiWiki/CGI.pm:646 msgid "You are banned." msgstr "Du är bannlyst." -#: ../IkiWiki/Plugin/aggregate.pm:71 +#: ../IkiWiki/Plugin/aggregate.pm:82 #, fuzzy, perl-format msgid "missing %s parameter" msgstr "mall saknar id-parameter" -#: ../IkiWiki/Plugin/aggregate.pm:99 +#: ../IkiWiki/Plugin/aggregate.pm:110 msgid "new feed" msgstr "ny kanal" -#: ../IkiWiki/Plugin/aggregate.pm:113 +#: ../IkiWiki/Plugin/aggregate.pm:124 msgid "posts" msgstr "inlägg" -#: ../IkiWiki/Plugin/aggregate.pm:115 +#: ../IkiWiki/Plugin/aggregate.pm:126 msgid "new" msgstr "ny" -#: ../IkiWiki/Plugin/aggregate.pm:231 +#: ../IkiWiki/Plugin/aggregate.pm:236 #, perl-format msgid "expiring %s (%s days old)" msgstr "låter %s gå ut (%s dagar gammal)" -#: ../IkiWiki/Plugin/aggregate.pm:238 +#: ../IkiWiki/Plugin/aggregate.pm:243 #, perl-format msgid "expiring %s" msgstr "låter %s gå ut" -#: ../IkiWiki/Plugin/aggregate.pm:264 +#: ../IkiWiki/Plugin/aggregate.pm:269 #, perl-format msgid "processed ok at %s" msgstr "behandlad ok på %s" -#: ../IkiWiki/Plugin/aggregate.pm:269 +#: ../IkiWiki/Plugin/aggregate.pm:274 #, perl-format msgid "checking feed %s ..." msgstr "kontrollerar kanalen %s ..." -#: ../IkiWiki/Plugin/aggregate.pm:274 +#: ../IkiWiki/Plugin/aggregate.pm:279 #, perl-format msgid "could not find feed at %s" msgstr "kunde inte hitta kanalen på %s" -#: ../IkiWiki/Plugin/aggregate.pm:289 +#: ../IkiWiki/Plugin/aggregate.pm:294 #, fuzzy msgid "feed not found" msgstr "mallen %s hittades inte" -#: ../IkiWiki/Plugin/aggregate.pm:300 +#: ../IkiWiki/Plugin/aggregate.pm:305 #, perl-format msgid "(invalid UTF-8 stripped from feed)" msgstr "" -#: ../IkiWiki/Plugin/aggregate.pm:306 +#: ../IkiWiki/Plugin/aggregate.pm:311 #, perl-format msgid "(feed entities escaped)" msgstr "" -#: ../IkiWiki/Plugin/aggregate.pm:312 +#: ../IkiWiki/Plugin/aggregate.pm:317 msgid "feed crashed XML::Feed!" msgstr "kanalen kraschade XML::Feed!" -#: ../IkiWiki/Plugin/aggregate.pm:386 +#: ../IkiWiki/Plugin/aggregate.pm:391 #, perl-format msgid "creating new page %s" msgstr "skapar nya sidan %s" @@ -224,11 +224,11 @@ msgstr "" msgid "nonexistant template %s" msgstr "" -#: ../IkiWiki/Plugin/inline.pm:247 ../IkiWiki/Render.pm:102 +#: ../IkiWiki/Plugin/inline.pm:249 ../IkiWiki/Render.pm:102 msgid "Discussion" msgstr "Diskussion" -#: ../IkiWiki/Plugin/inline.pm:461 +#: ../IkiWiki/Plugin/inline.pm:463 msgid "RPC::XML::Client not found, not pinging" msgstr "RPC::XML::Client hittades inte, pingar inte" @@ -249,17 +249,17 @@ msgstr "" "misslyckades med att läsa in Perl-modulen Markdown.pm (%s) eller /usr/bin/" "markdown (%s)" -#: ../IkiWiki/Plugin/meta.pm:132 +#: ../IkiWiki/Plugin/meta.pm:124 #, fuzzy msgid "stylesheet not found" msgstr "mallen %s hittades inte" -#: ../IkiWiki/Plugin/meta.pm:156 +#: ../IkiWiki/Plugin/meta.pm:148 #, fuzzy msgid "redir page not found" msgstr "mallen %s hittades inte" -#: ../IkiWiki/Plugin/meta.pm:169 +#: ../IkiWiki/Plugin/meta.pm:161 #, fuzzy msgid "redir cycle is not allowed" msgstr "mallen %s hittades inte" @@ -384,15 +384,15 @@ msgstr "" msgid "%A night" msgstr "" -#: ../IkiWiki/Plugin/prettydate.pm:74 +#: ../IkiWiki/Plugin/prettydate.pm:78 msgid "at teatime on %A" msgstr "" -#: ../IkiWiki/Plugin/prettydate.pm:78 +#: ../IkiWiki/Plugin/prettydate.pm:82 msgid "at midnight" msgstr "" -#: ../IkiWiki/Plugin/prettydate.pm:81 +#: ../IkiWiki/Plugin/prettydate.pm:85 msgid "at noon on %A" msgstr "" @@ -512,7 +512,7 @@ msgstr "" msgid "code includes disallowed latex commands" msgstr "" -#: ../IkiWiki/Plugin/teximg.pm:97 +#: ../IkiWiki/Plugin/teximg.pm:96 #, fuzzy msgid "failed to generate image from code" msgstr "misslyckades med att skriva %s: %s" @@ -521,75 +521,51 @@ msgstr "misslyckades med att skriva %s: %s" msgid "(not toggleable in preview mode)" msgstr "" -#: ../IkiWiki/Rcs/Stub.pm:68 +#: ../IkiWiki/Rcs/Stub.pm:62 msgid "getctime not implemented" msgstr "getctime inte implementerad" -#: ../IkiWiki/Rcs/monotone.pm:459 -#, fuzzy -msgid "" -"REV is not set, not running from mtn post-commit hook, cannot send " -"notifications" -msgstr "" -"REV är inte inställt, kör inte från svn post-commit-hook, kan inte skicka " -"notifieringar" - -#: ../IkiWiki/Rcs/monotone.pm:462 -#, fuzzy -msgid "REV is not a valid revision identifier, cannot send notifications" -msgstr "" -"REV är inte inställt, kör inte från svn post-commit-hook, kan inte skicka " -"notifieringar" - -#: ../IkiWiki/Rcs/svn.pm:221 -msgid "" -"REV is not set, not running from svn post-commit hook, cannot send " -"notifications" -msgstr "" -"REV är inte inställt, kör inte från svn post-commit-hook, kan inte skicka " -"notifieringar" - -#: ../IkiWiki/Render.pm:275 ../IkiWiki/Render.pm:296 +#: ../IkiWiki/Render.pm:276 ../IkiWiki/Render.pm:297 #, perl-format msgid "skipping bad filename %s" msgstr "hoppar över felaktigt filnamn %s" -#: ../IkiWiki/Render.pm:338 +#: ../IkiWiki/Render.pm:339 #, perl-format msgid "removing old page %s" msgstr "tar bort gammal sida %s" -#: ../IkiWiki/Render.pm:371 +#: ../IkiWiki/Render.pm:372 #, perl-format msgid "scanning %s" msgstr "söker av %s" -#: ../IkiWiki/Render.pm:376 +#: ../IkiWiki/Render.pm:377 #, perl-format msgid "rendering %s" msgstr "ritar upp %s" -#: ../IkiWiki/Render.pm:388 +#: ../IkiWiki/Render.pm:389 #, perl-format msgid "rendering %s, which links to %s" msgstr "ritar upp %s, vilken länkar till %s" -#: ../IkiWiki/Render.pm:405 +#: ../IkiWiki/Render.pm:406 #, perl-format msgid "rendering %s, which depends on %s" msgstr "ritar upp %s, vilken är beroende av %s" -#: ../IkiWiki/Render.pm:443 +#: ../IkiWiki/Render.pm:444 #, perl-format msgid "rendering %s, to update its backlinks" msgstr "ritar upp %s, för att uppdatera dess bakåtlänkar" -#: ../IkiWiki/Render.pm:455 +#: ../IkiWiki/Render.pm:456 #, 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:481 +#: ../IkiWiki/Render.pm:482 #, perl-format msgid "ikiwiki: cannot render %s" msgstr "ikiwiki: kan inte rita upp %s" @@ -617,15 +593,6 @@ msgstr "uppdaterar wiki.." msgid "done" msgstr "klar" -#. translators: The three variables are the name of the wiki, -#. translators: A list of one or more pages that were changed, -#. translators: And the name of the user making the change. -#. translators: This is used as the subject of a commit email. -#: ../IkiWiki/UserInfo.pm:145 -#, perl-format -msgid "update of %s's %s by %s" -msgstr "uppdatering av %s, %s av %s" - #: ../IkiWiki/Wrapper.pm:16 #, perl-format msgid "%s doesn't seem to be executable" @@ -641,19 +608,19 @@ msgstr "filnamn för wrapper har inte angivits" #. translators: The first parameter is a filename, and the second is #. translators: a (probably not translated) error message. -#: ../IkiWiki/Wrapper.pm:64 +#: ../IkiWiki/Wrapper.pm:48 #, perl-format msgid "failed to write %s: %s" msgstr "misslyckades med att skriva %s: %s" #. translators: The parameter is a C filename. -#: ../IkiWiki/Wrapper.pm:115 +#: ../IkiWiki/Wrapper.pm:99 #, perl-format msgid "failed to compile %s" msgstr "misslyckades med att kompilera %s" #. translators: The parameter is a filename. -#: ../IkiWiki/Wrapper.pm:135 +#: ../IkiWiki/Wrapper.pm:119 #, perl-format msgid "successfully generated %s" msgstr "generering av %s lyckades" @@ -662,15 +629,15 @@ 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:81 msgid "usage: --set var=value" msgstr "" -#: ../IkiWiki.pm:129 +#: ../IkiWiki.pm:127 msgid "Must specify url to wiki with --url when using --cgi" msgstr "Måste ange url till wiki med --url när --cgi används" -#: ../IkiWiki.pm:198 ../IkiWiki.pm:199 +#: ../IkiWiki.pm:196 ../IkiWiki.pm:197 msgid "Error" msgstr "Fel" @@ -678,11 +645,35 @@ msgstr "Fel" #. translators: preprocessor directive name, #. translators: the second a page name, the #. translators: third a number. -#: ../IkiWiki.pm:722 +#: ../IkiWiki.pm:767 #, perl-format msgid "%s preprocessing loop detected on %s at depth %i" msgstr "%s förbehandlingsslinga detekterades på %s, djup %i" +#, fuzzy +#~ msgid "" +#~ "REV is not set, not running from mtn post-commit hook, cannot send " +#~ "notifications" +#~ msgstr "" +#~ "REV är inte inställt, kör inte från svn post-commit-hook, kan inte skicka " +#~ "notifieringar" + +#, fuzzy +#~ msgid "REV is not a valid revision identifier, cannot send notifications" +#~ msgstr "" +#~ "REV är inte inställt, kör inte från svn post-commit-hook, kan inte skicka " +#~ "notifieringar" + +#~ msgid "" +#~ "REV is not set, not running from svn post-commit hook, cannot send " +#~ "notifications" +#~ msgstr "" +#~ "REV är inte inställt, kör inte från svn post-commit-hook, kan inte skicka " +#~ "notifieringar" + +#~ msgid "update of %s's %s by %s" +#~ msgstr "uppdatering av %s, %s av %s" + #, fuzzy #~ msgid "%s not found" #~ msgstr "mallen %s hittades inte" diff --git a/po/vi.po b/po/vi.po index 39095259c..248275b08 100644 --- 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-01-09 02:42-0500\n" +"POT-Creation-Date: 2008-01-29 04:45-0500\n" "PO-Revision-Date: 2007-01-13 15:31+1030\n" "Last-Translator: Clytie Siddall \n" "Language-Team: Vietnamese \n" @@ -16,120 +16,120 @@ msgstr "" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: LocFactoryEditor 1.6fc1\n" -#: ../IkiWiki/CGI.pm:172 +#: ../IkiWiki/CGI.pm:125 msgid "You need to log in first." msgstr "Trước tiên bạn cần phải đăng nhập." -#: ../IkiWiki/CGI.pm:202 +#: ../IkiWiki/CGI.pm:155 msgid "login failed, perhaps you need to turn on cookies?" msgstr "" -#: ../IkiWiki/CGI.pm:231 +#: ../IkiWiki/CGI.pm:184 msgid "Login" msgstr "" -#: ../IkiWiki/CGI.pm:232 +#: ../IkiWiki/CGI.pm:185 #, fuzzy msgid "Preferences" msgstr "Tùy thích đã được lưu." -#: ../IkiWiki/CGI.pm:233 +#: ../IkiWiki/CGI.pm:186 msgid "Admin" msgstr "" -#: ../IkiWiki/CGI.pm:289 +#: ../IkiWiki/CGI.pm:235 msgid "Preferences saved." msgstr "Tùy thích đã được lưu." -#: ../IkiWiki/CGI.pm:345 +#: ../IkiWiki/CGI.pm:291 #, perl-format msgid "%s is not an editable page" msgstr "" -#: ../IkiWiki/CGI.pm:436 ../IkiWiki/Plugin/brokenlinks.pm:24 -#: ../IkiWiki/Plugin/inline.pm:239 ../IkiWiki/Plugin/opendiscussion.pm:17 +#: ../IkiWiki/CGI.pm:382 ../IkiWiki/Plugin/brokenlinks.pm:24 +#: ../IkiWiki/Plugin/inline.pm:241 ../IkiWiki/Plugin/opendiscussion.pm:17 #: ../IkiWiki/Plugin/orphans.pm:28 ../IkiWiki/Render.pm:98 #: ../IkiWiki/Render.pm:178 msgid "discussion" msgstr "thảo luận" -#: ../IkiWiki/CGI.pm:482 +#: ../IkiWiki/CGI.pm:429 #, perl-format msgid "creating %s" msgstr "đang tạo %s" -#: ../IkiWiki/CGI.pm:500 ../IkiWiki/CGI.pm:519 ../IkiWiki/CGI.pm:529 -#: ../IkiWiki/CGI.pm:563 ../IkiWiki/CGI.pm:611 +#: ../IkiWiki/CGI.pm:447 ../IkiWiki/CGI.pm:466 ../IkiWiki/CGI.pm:476 +#: ../IkiWiki/CGI.pm:510 ../IkiWiki/CGI.pm:558 #, perl-format msgid "editing %s" msgstr "đang sửa %s" -#: ../IkiWiki/CGI.pm:705 +#: ../IkiWiki/CGI.pm:646 msgid "You are banned." msgstr "Bạn bị cấm ra." -#: ../IkiWiki/Plugin/aggregate.pm:71 +#: ../IkiWiki/Plugin/aggregate.pm:82 #, fuzzy, perl-format msgid "missing %s parameter" msgstr "mẫu thiếu tham số id" -#: ../IkiWiki/Plugin/aggregate.pm:99 +#: ../IkiWiki/Plugin/aggregate.pm:110 msgid "new feed" msgstr "nguồn tin mới" -#: ../IkiWiki/Plugin/aggregate.pm:113 +#: ../IkiWiki/Plugin/aggregate.pm:124 msgid "posts" msgstr "bài" -#: ../IkiWiki/Plugin/aggregate.pm:115 +#: ../IkiWiki/Plugin/aggregate.pm:126 msgid "new" msgstr "mới" -#: ../IkiWiki/Plugin/aggregate.pm:231 +#: ../IkiWiki/Plugin/aggregate.pm:236 #, perl-format msgid "expiring %s (%s days old)" msgstr "đang mãn hạn %s (cũ %s ngày)" -#: ../IkiWiki/Plugin/aggregate.pm:238 +#: ../IkiWiki/Plugin/aggregate.pm:243 #, perl-format msgid "expiring %s" msgstr "đang mãn hạn %s" -#: ../IkiWiki/Plugin/aggregate.pm:264 +#: ../IkiWiki/Plugin/aggregate.pm:269 #, perl-format msgid "processed ok at %s" msgstr "đã xử lý được ở %s" -#: ../IkiWiki/Plugin/aggregate.pm:269 +#: ../IkiWiki/Plugin/aggregate.pm:274 #, perl-format msgid "checking feed %s ..." msgstr "đang kiểm tra nguồn tin %s ..." -#: ../IkiWiki/Plugin/aggregate.pm:274 +#: ../IkiWiki/Plugin/aggregate.pm:279 #, perl-format msgid "could not find feed at %s" msgstr "không tìm thấy nguồn tin ở %s" -#: ../IkiWiki/Plugin/aggregate.pm:289 +#: ../IkiWiki/Plugin/aggregate.pm:294 #, fuzzy msgid "feed not found" msgstr "không tìm thấy mẫu %s" -#: ../IkiWiki/Plugin/aggregate.pm:300 +#: ../IkiWiki/Plugin/aggregate.pm:305 #, perl-format msgid "(invalid UTF-8 stripped from feed)" msgstr "" -#: ../IkiWiki/Plugin/aggregate.pm:306 +#: ../IkiWiki/Plugin/aggregate.pm:311 #, perl-format msgid "(feed entities escaped)" msgstr "" -#: ../IkiWiki/Plugin/aggregate.pm:312 +#: ../IkiWiki/Plugin/aggregate.pm:317 msgid "feed crashed XML::Feed!" msgstr "nguồn tin đã gây ra XML::Feed sụp đổ." -#: ../IkiWiki/Plugin/aggregate.pm:386 +#: ../IkiWiki/Plugin/aggregate.pm:391 #, perl-format msgid "creating new page %s" msgstr "đang tạo trang mới %s" @@ -227,11 +227,11 @@ msgstr "" msgid "nonexistant template %s" msgstr "" -#: ../IkiWiki/Plugin/inline.pm:247 ../IkiWiki/Render.pm:102 +#: ../IkiWiki/Plugin/inline.pm:249 ../IkiWiki/Render.pm:102 msgid "Discussion" msgstr "Thảo luận" -#: ../IkiWiki/Plugin/inline.pm:461 +#: ../IkiWiki/Plugin/inline.pm:463 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" @@ -250,17 +250,17 @@ msgstr "%s bị %s khoá nên không thể sửa được" msgid "failed to load Markdown.pm perl module (%s) or /usr/bin/markdown (%s)" msgstr "lỗi nạp mô-đun perl Markdown.pm (%s) hay « /usr/bin/markdown » (%s)" -#: ../IkiWiki/Plugin/meta.pm:132 +#: ../IkiWiki/Plugin/meta.pm:124 #, fuzzy msgid "stylesheet not found" msgstr "không tìm thấy mẫu %s" -#: ../IkiWiki/Plugin/meta.pm:156 +#: ../IkiWiki/Plugin/meta.pm:148 #, fuzzy msgid "redir page not found" msgstr "không tìm thấy mẫu %s" -#: ../IkiWiki/Plugin/meta.pm:169 +#: ../IkiWiki/Plugin/meta.pm:161 #, fuzzy msgid "redir cycle is not allowed" msgstr "không tìm thấy mẫu %s" @@ -385,15 +385,15 @@ msgstr "" msgid "%A night" msgstr "" -#: ../IkiWiki/Plugin/prettydate.pm:74 +#: ../IkiWiki/Plugin/prettydate.pm:78 msgid "at teatime on %A" msgstr "" -#: ../IkiWiki/Plugin/prettydate.pm:78 +#: ../IkiWiki/Plugin/prettydate.pm:82 msgid "at midnight" msgstr "" -#: ../IkiWiki/Plugin/prettydate.pm:81 +#: ../IkiWiki/Plugin/prettydate.pm:85 msgid "at noon on %A" msgstr "" @@ -513,7 +513,7 @@ msgstr "" msgid "code includes disallowed latex commands" msgstr "" -#: ../IkiWiki/Plugin/teximg.pm:97 +#: ../IkiWiki/Plugin/teximg.pm:96 #, fuzzy msgid "failed to generate image from code" msgstr "lỗi ghi %s: %s" @@ -522,72 +522,51 @@ msgstr "lỗi ghi %s: %s" msgid "(not toggleable in preview mode)" msgstr "" -#: ../IkiWiki/Rcs/Stub.pm:68 +#: ../IkiWiki/Rcs/Stub.pm:62 msgid "getctime not implemented" msgstr "chưa thực hiện getctime" -#: ../IkiWiki/Rcs/monotone.pm:459 -#, fuzzy -msgid "" -"REV is not set, not running from mtn post-commit hook, cannot send " -"notifications" -msgstr "" -"Chưa đặt REV, không chạy từ móc sau gài vào nên không thể gửi thông báo" - -#: ../IkiWiki/Rcs/monotone.pm:462 -#, fuzzy -msgid "REV is not a valid revision identifier, cannot send notifications" -msgstr "" -"Chưa đặt REV, không chạy từ móc sau gài vào nên không thể gửi thông báo" - -#: ../IkiWiki/Rcs/svn.pm:221 -msgid "" -"REV is not set, not running from svn post-commit hook, cannot send " -"notifications" -msgstr "" -"Chưa đặt REV, không chạy từ móc sau gài vào nên không thể gửi thông báo" - -#: ../IkiWiki/Render.pm:275 ../IkiWiki/Render.pm:296 +#: ../IkiWiki/Render.pm:276 ../IkiWiki/Render.pm:297 #, perl-format msgid "skipping bad filename %s" msgstr "đang bỏ qua tên tập tin sai %s" -#: ../IkiWiki/Render.pm:338 +#: ../IkiWiki/Render.pm:339 #, perl-format msgid "removing old page %s" msgstr "đang gỡ bỏ trang cũ %s" -#: ../IkiWiki/Render.pm:371 +#: ../IkiWiki/Render.pm:372 #, perl-format msgid "scanning %s" msgstr "đang quét %s" -#: ../IkiWiki/Render.pm:376 +#: ../IkiWiki/Render.pm:377 #, perl-format msgid "rendering %s" msgstr "đang vẽ %s" -#: ../IkiWiki/Render.pm:388 +#: ../IkiWiki/Render.pm:389 #, perl-format msgid "rendering %s, which links to %s" msgstr "đang vẽ %s mà liên kết tới %s" -#: ../IkiWiki/Render.pm:405 +#: ../IkiWiki/Render.pm:406 #, perl-format msgid "rendering %s, which depends on %s" msgstr "đang vẽ %s mà phụ thuộc vào %s" -#: ../IkiWiki/Render.pm:443 +#: ../IkiWiki/Render.pm:444 #, 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:455 +#: ../IkiWiki/Render.pm:456 #, 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:481 +#: ../IkiWiki/Render.pm:482 #, perl-format msgid "ikiwiki: cannot render %s" msgstr "ikiwiki: không thể vẽ %s" @@ -615,15 +594,6 @@ msgstr "đang làm tươi wiki.." msgid "done" msgstr "xong" -#. translators: The three variables are the name of the wiki, -#. translators: A list of one or more pages that were changed, -#. translators: And the name of the user making the change. -#. translators: This is used as the subject of a commit email. -#: ../IkiWiki/UserInfo.pm:145 -#, perl-format -msgid "update of %s's %s by %s" -msgstr "cập nhật %2$s của %1$s bởi %3$s" - #: ../IkiWiki/Wrapper.pm:16 #, perl-format msgid "%s doesn't seem to be executable" @@ -639,19 +609,19 @@ msgstr "chưa xác định tên tập tin bộ bao bọc" #. translators: The first parameter is a filename, and the second is #. translators: a (probably not translated) error message. -#: ../IkiWiki/Wrapper.pm:64 +#: ../IkiWiki/Wrapper.pm:48 #, perl-format msgid "failed to write %s: %s" msgstr "lỗi ghi %s: %s" #. translators: The parameter is a C filename. -#: ../IkiWiki/Wrapper.pm:115 +#: ../IkiWiki/Wrapper.pm:99 #, perl-format msgid "failed to compile %s" msgstr "lỗi biên dịch %s" #. translators: The parameter is a filename. -#: ../IkiWiki/Wrapper.pm:135 +#: ../IkiWiki/Wrapper.pm:119 #, perl-format msgid "successfully generated %s" msgstr "%s đã được tạo ra" @@ -660,15 +630,15 @@ 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:81 msgid "usage: --set var=value" msgstr "" -#: ../IkiWiki.pm:129 +#: ../IkiWiki.pm:127 msgid "Must specify url to wiki with --url when using --cgi" msgstr "Cần phải xác định địa chỉ URL tới wiki với « --url » khi dùng « --cgi »" -#: ../IkiWiki.pm:198 ../IkiWiki.pm:199 +#: ../IkiWiki.pm:196 ../IkiWiki.pm:197 msgid "Error" msgstr "Lỗi" @@ -676,11 +646,32 @@ msgstr "Lỗi" #. translators: preprocessor directive name, #. translators: the second a page name, the #. translators: third a number. -#: ../IkiWiki.pm:722 +#: ../IkiWiki.pm:767 #, perl-format msgid "%s preprocessing loop detected on %s at depth %i" msgstr "vòng lặp tiền xử lý %s được phát hiện trên %s ở độ sâu %i" +#, fuzzy +#~ msgid "" +#~ "REV is not set, not running from mtn post-commit hook, cannot send " +#~ "notifications" +#~ msgstr "" +#~ "Chưa đặt REV, không chạy từ móc sau gài vào nên không thể gửi thông báo" + +#, fuzzy +#~ msgid "REV is not a valid revision identifier, cannot send notifications" +#~ msgstr "" +#~ "Chưa đặt REV, không chạy từ móc sau gài vào nên không thể gửi thông báo" + +#~ msgid "" +#~ "REV is not set, not running from svn post-commit hook, cannot send " +#~ "notifications" +#~ msgstr "" +#~ "Chưa đặt REV, không chạy từ móc sau gài vào nên không thể gửi thông báo" + +#~ msgid "update of %s's %s by %s" +#~ msgstr "cập nhật %2$s của %1$s bởi %3$s" + #, fuzzy #~ msgid "%s not found" #~ msgstr "không tìm thấy mẫu %s" -- cgit v1.2.3 From 7a4b7b1964f35527571aee78fb7048284e5d5061 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Tue, 29 Jan 2008 12:20:17 -0500 Subject: update RecentChanges action to point to page --- IkiWiki/Render.pm | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'IkiWiki') diff --git a/IkiWiki/Render.pm b/IkiWiki/Render.pm index 5684f8092..cfe039916 100644 --- a/IkiWiki/Render.pm +++ b/IkiWiki/Render.pm @@ -82,9 +82,11 @@ sub genpage ($$) { #{{{ if (length $config{cgiurl}) { $template->param(editurl => cgiurl(do => "edit", page => pagetitle($page, 1))); $template->param(prefsurl => cgiurl(do => "prefs")); - if ($config{rcs}) { - $template->param(recentchangesurl => cgiurl(do => "recentchanges")); - } + $actions++; + } + + if ($config{rcs}) { + $template->param(recentchangesurl => urlto("recentchanges", $page)); $actions++; } -- cgit v1.2.3 From 598d338b11cbcbf5d87517f3b8fcd99e357a31a2 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Tue, 29 Jan 2008 12:37:39 -0500 Subject: escape wikilinks and preprocessor directives --- IkiWiki/Plugin/recentchanges.pm | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) (limited to 'IkiWiki') diff --git a/IkiWiki/Plugin/recentchanges.pm b/IkiWiki/Plugin/recentchanges.pm index 5727f9af1..6c9848ba3 100644 --- a/IkiWiki/Plugin/recentchanges.pm +++ b/IkiWiki/Plugin/recentchanges.pm @@ -6,8 +6,6 @@ use strict; use IkiWiki 2.00; sub import { #{{{ - hook(type => "checkconfig", id => "recentchanges", - call => \&checkconfig); hook(type => "needsbuild", id => "recentchanges", call => \&needsbuild); hook(type => "preprocess", id => "recentchanges", @@ -16,15 +14,11 @@ sub import { #{{{ call => \&htmlize); } #}}} -sub checkconfig () { #{{{ +sub needsbuild () { #{{{ my @changes=IkiWiki::rcs_recentchanges(100); updatechanges("*", "recentchanges", \@changes); } #}}} -sub needsbuild () { #{{{ - # TODO -} #}}} - sub preprocess (@) { #{{{ my %params=@_; @@ -96,7 +90,10 @@ sub store ($$) { #{{{ shift->(page => $page, destpage => $page, template => $template); }); - writefile($page."._change", $config{srcdir}, $template->output); + my $html=$template->output; + # escape wikilinks and preprocessor stuff + $html=~s/(?{when}, $change->{when}, "$config{srcdir}/$page._change"; } #}}} -- cgit v1.2.3 From 152f32547fb6fef046d8c21b218fa2dec96b6061 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Tue, 29 Jan 2008 12:39:28 -0500 Subject: indicate that an internal page will be rendered even if skipping it This is important to do because until will_render is called, ikiwiki doesn't know that the page exists. This avoids recentchanges re-writing every change page every run. --- IkiWiki/Render.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'IkiWiki') diff --git a/IkiWiki/Render.pm b/IkiWiki/Render.pm index cfe039916..02f6b4b1c 100644 --- a/IkiWiki/Render.pm +++ b/IkiWiki/Render.pm @@ -195,10 +195,10 @@ sub render ($) { #{{{ my $type=pagetype($file); my $srcfile=srcfile($file); if (defined $type) { - return if $type=~/^_/; my $page=pagename($file); delete $depends{$page}; will_render($page, htmlpage($page), 1); + return if $type=~/^_/; my $content=htmlize($page, $type, linkify($page, $page, -- cgit v1.2.3 From a5ad70a8dc6d3aee22f29b84509ce945163d43dd Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Tue, 29 Jan 2008 12:59:49 -0500 Subject: updates --- IkiWiki/Plugin/recentchanges.pm | 34 +++++++++++++++++++++------------- 1 file changed, 21 insertions(+), 13 deletions(-) (limited to 'IkiWiki') diff --git a/IkiWiki/Plugin/recentchanges.pm b/IkiWiki/Plugin/recentchanges.pm index 6c9848ba3..1c52a00f2 100644 --- a/IkiWiki/Plugin/recentchanges.pm +++ b/IkiWiki/Plugin/recentchanges.pm @@ -14,9 +14,10 @@ sub import { #{{{ call => \&htmlize); } #}}} -sub needsbuild () { #{{{ +sub needsbuild ($) { #{{{ + my $needsbuild=shift; my @changes=IkiWiki::rcs_recentchanges(100); - updatechanges("*", "recentchanges", \@changes); + push @$needsbuild, updatechanges("*", "recentchanges", \@changes); } #}}} sub preprocess (@) { #{{{ @@ -61,11 +62,6 @@ sub store ($$) { #{{{ ]; push @{$change->{pages}}, { link => '...' } if $is_excess; - # Take the first line of the commit message as a summary. - #my $m=shift @{$change->{message}}; - #$change->{summary}=$m->{line}; - #delete $change->{message} unless @{$change->{message}}; - # See if the committer is an openid. my $oiduser=IkiWiki::openiduser($change->{user}); if (defined $oiduser) { @@ -78,6 +74,15 @@ sub store ($$) { #{{{ $change->{user}; } + # escape wikilinks and preprocessor stuff in commit messages + if (ref $change->{message}) { + foreach my $field (@{$change->{message}}) { + if (exists $field->{line}) { + $field->{line} =~ s/(? 1); $template->param( @@ -90,21 +95,24 @@ sub store ($$) { #{{{ shift->(page => $page, destpage => $page, template => $template); }); - my $html=$template->output; - # escape wikilinks and preprocessor stuff - $html=~s/(?{when}, $change->{when}, "$config{srcdir}/$page._change"; + my $file=$page."._change"; + writefile($file, $config{srcdir}, $template->output); + utime $change->{when}, $change->{when}, "$config{srcdir}/$file"; + return $file; } #}}} sub updatechanges ($$) { #{{{ my $pagespec=shift; my $subdir=shift; my @changes=@{shift()}; + my @ret; foreach my $change (@changes) { - store($change, $subdir); + my $file=store($change, $subdir); + push @ret, $file if defined $file; } # TODO: delete old + + return @ret; } #}}} 1 -- cgit v1.2.3 From e1ce482e4146d1036e1ae512c73e54f69ff52f0d Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Tue, 29 Jan 2008 13:08:32 -0500 Subject: add refresh hook --- IkiWiki/Render.pm | 2 ++ 1 file changed, 2 insertions(+) (limited to 'IkiWiki') diff --git a/IkiWiki/Render.pm b/IkiWiki/Render.pm index 02f6b4b1c..aa9b73141 100644 --- a/IkiWiki/Render.pm +++ b/IkiWiki/Render.pm @@ -259,6 +259,8 @@ sub refresh () { #{{{ $test=dirname($test); } } + + run_hooks(refresh => sub { shift->() }); # find existing pages my %exists; -- cgit v1.2.3 From 35bc35660cafad2e8661077a9196bbf9b6fd3663 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Tue, 29 Jan 2008 13:08:48 -0500 Subject: use new refresh hook --- IkiWiki/Plugin/recentchanges.pm | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) (limited to 'IkiWiki') diff --git a/IkiWiki/Plugin/recentchanges.pm b/IkiWiki/Plugin/recentchanges.pm index 1c52a00f2..2525785e7 100644 --- a/IkiWiki/Plugin/recentchanges.pm +++ b/IkiWiki/Plugin/recentchanges.pm @@ -6,18 +6,17 @@ use strict; use IkiWiki 2.00; sub import { #{{{ - hook(type => "needsbuild", id => "recentchanges", - call => \&needsbuild); + hook(type => "refresh", id => "recentchanges", + call => \&refresh); hook(type => "preprocess", id => "recentchanges", call => \&preprocess); hook(type => "htmlize", id => "_change", call => \&htmlize); } #}}} -sub needsbuild ($) { #{{{ - my $needsbuild=shift; +sub refresh ($) { #{{{ my @changes=IkiWiki::rcs_recentchanges(100); - push @$needsbuild, updatechanges("*", "recentchanges", \@changes); + updatechanges("*", "recentchanges", \@changes); } #}}} sub preprocess (@) { #{{{ @@ -98,21 +97,18 @@ sub store ($$) { #{{{ my $file=$page."._change"; writefile($file, $config{srcdir}, $template->output); utime $change->{when}, $change->{when}, "$config{srcdir}/$file"; - return $file; } #}}} sub updatechanges ($$) { #{{{ my $pagespec=shift; my $subdir=shift; my @changes=@{shift()}; - my @ret; + foreach my $change (@changes) { - my $file=store($change, $subdir); - push @ret, $file if defined $file; + store($change, $subdir); } - # TODO: delete old - return @ret; + # TODO: delete old } #}}} 1 -- cgit v1.2.3 From 47ee266163202f15fca3b108fad294bec262405a Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Tue, 29 Jan 2008 15:05:49 -0500 Subject: improve support for internal pages This makes it a lot quicker to deal with lots of recentchanges pages appearing and disappearing. It avoids needing to clutter up pagespecs with exclusions for those pages, by making normal pagespecs not match them. --- IkiWiki.pm | 32 ++++++++++++++-------------- IkiWiki/Render.pm | 47 +++++++++++++++++++++++++++++++++--------- debian/changelog | 6 ++++-- doc/ikiwiki/pagespec.mdwn | 6 ++++-- doc/plugins/brokenlinks.mdwn | 2 +- doc/plugins/orphans.mdwn | 4 ++-- doc/plugins/pagecount.mdwn | 2 +- doc/plugins/recentchanges.mdwn | 2 ++ doc/plugins/write.mdwn | 18 +++++++++++----- 9 files changed, 80 insertions(+), 39 deletions(-) (limited to 'IkiWiki') diff --git a/IkiWiki.pm b/IkiWiki.pm index c70307b5f..db2605672 100644 --- a/IkiWiki.pm +++ b/IkiWiki.pm @@ -260,6 +260,12 @@ sub pagetype ($) { #{{{ return; } #}}} +sub isinternal ($) { #{{{ + my $page=shift; + return exists $pagesources{$page} && + $pagesources{$page} =~ /\._([^.]+)$/; +} #}}} + sub pagename ($) { #{{{ my $file=shift; @@ -1287,13 +1293,22 @@ sub match_glob ($$;@) { #{{{ $glob=~s/\\\?/./g; if ($page=~/^$glob$/i) { - return IkiWiki::SuccessReason->new("$glob matches $page"); + if (! IkiWiki::isinternal($page) || $params{internal}) { + return IkiWiki::SuccessReason->new("$glob matches $page"); + } + else { + return IkiWiki::FailReason->new("$glob matches $page, but the page is an internal page"); + } } else { return IkiWiki::FailReason->new("$glob does not match $page"); } } #}}} +sub match_internal ($$;@) { #{{{ + return match_glob($_[0], $_[1], @_, internal => 1) +} #}}} + sub match_link ($$;@) { #{{{ my $page=shift; my $link=lc(shift); @@ -1389,19 +1404,4 @@ sub match_creation_year ($$;@) { #{{{ } } #}}} -sub match_user ($$;@) { #{{{ - shift; - my $user=shift; - my %params=@_; - - return IkiWiki::FailReason->new('cannot match user') - unless exists $params{user}; - if ($user eq $params{user}) { - return IkiWiki::SuccessReason->new("user is $user") - } - else { - return IkiWiki::FailReason->new("user is not $user"); - } -} #}}} - 1 diff --git a/IkiWiki/Render.pm b/IkiWiki/Render.pm index aa9b73141..b5b461499 100644 --- a/IkiWiki/Render.pm +++ b/IkiWiki/Render.pm @@ -319,15 +319,19 @@ sub refresh () { #{{{ }, $dir); }; - my %rendered; + my (%rendered, @add, @del, @internal); # check for added or removed pages - my @add; foreach my $file (@files) { my $page=pagename($file); $pagesources{$page}=$file; if (! $pagemtime{$page}) { - push @add, $file; + if (isinternal($page)) { + push @internal, $file; + } + else { + push @add, $file; + } $pagecase{lc $page}=$page; if ($config{getctime} && -e "$config{srcdir}/$file") { $pagectime{$page}=rcs_getctime("$config{srcdir}/$file"); @@ -337,11 +341,15 @@ sub refresh () { #{{{ } } } - my @del; foreach my $page (keys %pagemtime) { if (! $exists{$page}) { - debug(sprintf(gettext("removing old page %s"), $page)); - push @del, $pagesources{$page}; + if (isinternal($page)) { + push @internal, $pagesources{$page}; + } + else { + debug(sprintf(gettext("removing old page %s"), $page)); + push @del, $pagesources{$page}; + } $links{$page}=[]; $renderedfiles{$page}=[]; $pagemtime{$page}=0; @@ -366,7 +374,12 @@ sub refresh () { #{{{ $mtime > $pagemtime{$page} || $forcerebuild{$page}) { $pagemtime{$page}=$mtime; - push @needsbuild, $file; + if (isinternal($page)) { + push @internal, $file; + } + else { + push @needsbuild, $file; + } } } run_hooks(needsbuild => sub { shift->(\@needsbuild) }); @@ -382,6 +395,15 @@ sub refresh () { #{{{ render($file); $rendered{$file}=1; } + foreach my $file (@internal) { + # internal pages are not rendered + my $page=pagename($file); + delete $depends{$page}; + foreach my $old (@{$renderedfiles{$page}}) { + delete $destsources{$old}; + } + $renderedfiles{$page}=[]; + } # rebuild pages that link to added or removed pages if (@add || @del) { @@ -397,13 +419,17 @@ sub refresh () { #{{{ } } - if (%rendered || @del) { + if (%rendered || @del || @internal) { + my @changed=(keys %rendered, @del); + # rebuild dependant pages foreach my $f (@files) { next if $rendered{$f}; my $p=pagename($f); if (exists $depends{$p}) { - foreach my $file (keys %rendered, @del) { + # only consider internal files + # if the page explicitly depends on such files + foreach my $file (@changed, $depends{$p}=~/internal\(/ ? @internal : ()) { next if $f eq $file; my $page=pagename($file); if (pagespec_match($page, $depends{$p}, location => $p)) { @@ -419,7 +445,7 @@ sub refresh () { #{{{ # handle backlinks; if a page has added/removed links, # update the pages it links to my %linkchanged; - foreach my $file (keys %rendered, @del) { + foreach my $file (@changed) { my $page=pagename($file); if (exists $links{$page}) { @@ -441,6 +467,7 @@ sub refresh () { #{{{ } } } + foreach my $link (keys %linkchanged) { my $linkfile=$pagesources{$link}; if (defined $linkfile) { diff --git a/debian/changelog b/debian/changelog index 8530bdd7e..c608531e1 100644 --- a/debian/changelog +++ b/debian/changelog @@ -22,13 +22,15 @@ ikiwiki (2.21) UNRELEASED; urgency=low * prettydate,ddate: Don't ignore time formats passed to displaytime function. * Pages with extensions starting with "_" are internal-use, and will - not be rendered or web-edited. + not be rendered or web-edited, or matched by normal pagespecs. + * Add "internal()" pagespec that matches internal-use pages. * RecentChanges is now a static html page, that's updated whenever a commit is made to the wiki. It's built as a blog using inline, so it can have an rss feed that users can subscribe to. * Removed support for sending commit notification mails. Along with it went the svnrepo and notify settings, though both will be ignored if left in - setup files. + setup files. Also gone with it is the "user()" pagespec. + * Add refresh hook. -- Joey Hess Fri, 11 Jan 2008 15:09:37 -0500 diff --git a/doc/ikiwiki/pagespec.mdwn b/doc/ikiwiki/pagespec.mdwn index 5c6433ed3..e1a476202 100644 --- a/doc/ikiwiki/pagespec.mdwn +++ b/doc/ikiwiki/pagespec.mdwn @@ -33,8 +33,10 @@ functions: was created * "`created_before(page)`" - match only pages created before the given page was created -* "`user(name)`" - only available in page subscription preferences, match - only changes made by this user +* "`glob(foo)`" - match pages that match the given glob `foo`. Just writing + the glob by itself is actually a shorthand for this function. +* "`internal(foo)`" - like `glob()`, but matches even internal-use + pages that globs do not usually match. For example, to match all pages in a blog that link to the page about music and were written in 2005: diff --git a/doc/plugins/brokenlinks.mdwn b/doc/plugins/brokenlinks.mdwn index 5c906e17b..208d7120b 100644 --- a/doc/plugins/brokenlinks.mdwn +++ b/doc/plugins/brokenlinks.mdwn @@ -10,4 +10,4 @@ pages to search for broken links, default is search them all. If this plugin is turned on, here's a list of broken links on this wiki: -[[brokenlinks pages="* and !recentchanges/change_* and !recentchanges"]] +[[brokenlinks pages="* and !recentchanges"]] diff --git a/doc/plugins/orphans.mdwn b/doc/plugins/orphans.mdwn index 6c6ebd6f9..74f4bae08 100644 --- a/doc/plugins/orphans.mdwn +++ b/doc/plugins/orphans.mdwn @@ -15,6 +15,6 @@ orphans. Here's a list of orphaned pages on this wiki: [[orphans pages="* and !news/* and !todo/* and !bugs/* and !users/* and -!recentchanges/change_* and !recentchanges and !examples/* and !tips/* and -!sandbox/* and !wikiicons/* and !plugins/*"]] +!recentchanges and !examples/* and !tips/* and !sandbox/* and +!wikiicons/* and !plugins/*"]] """]] diff --git a/doc/plugins/pagecount.mdwn b/doc/plugins/pagecount.mdwn index c4cefd946..8f7029df8 100644 --- a/doc/plugins/pagecount.mdwn +++ b/doc/plugins/pagecount.mdwn @@ -10,5 +10,5 @@ pages to count, default is to count them all. This plugin is included in ikiwiki, but is not enabled by default. If it is turned on it can tell us that this wiki includes -[[pagecount pages="* and !recentchanges/change_* and !recentchanges"]] +[[pagecount pages="* and !recentchanges"]] pages, of which [[pagecount pages="*/Discussion"]] are discussion pages. diff --git a/doc/plugins/recentchanges.mdwn b/doc/plugins/recentchanges.mdwn index 9e0d8dc51..69073adf0 100644 --- a/doc/plugins/recentchanges.mdwn +++ b/doc/plugins/recentchanges.mdwn @@ -9,6 +9,8 @@ Typically only the RecentChanges page will use the plugin, but you can use it elsewhere too if you like. It's used like this: \[[recentchanges pages="*" num=100 template=change]] + \[[inline pages="internal(recentchanges/change_*)" + template=recentchanges show=0]] The pages describing recent changes will be created as [[subpages|subpage]] of the page where the `recentchanges` directive is placed. diff --git a/doc/plugins/write.mdwn b/doc/plugins/write.mdwn index 9e27cc27f..4de7e434d 100644 --- a/doc/plugins/write.mdwn +++ b/doc/plugins/write.mdwn @@ -151,11 +151,6 @@ specifies the filename extension that a file must have to be htmlized using this plugin. This is how you can add support for new and exciting markup languages to ikiwiki. -Note that if you choose a filename extension that starts with "_", -ikiwiki will not render the page, or allow the page to be edited with the -web interface. This is useful for certian types of internal-use pages, but -should generally be avoided. - The function is passed named parameters: "page" and "content" and should return the htmlized content. @@ -536,6 +531,19 @@ destination file, as registered by `will_render`. Passed a page and an extension, returns the filename that page will be rendered to. +## Internal use pages + +Sometimes it's useful to put pages in the wiki without having them be +rendered to individual html files. Such internal use pages are collected +together to form the RecentChanges page, for example. + +To make an internal use page, register a filename extension that starts +with "_". Internal use pages cannot be edited with the web interface, are +not scanned for wikilinks (though wikilinks and preprocessor directives can +still appear on them, this is rarely a good idea), and are not matched by +regular PageSpecs glob patterns, but instead only by a special `internal()` +[[ikiwiki/PageSpec]]. + ## RCS plugins ikiwiki's support for [[revision_control_systems|rcs]] also uses pluggable -- cgit v1.2.3 From cabd5140c4d6255afdcb527e7f6d7e7815e4aa43 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Tue, 29 Jan 2008 15:22:23 -0500 Subject: add code to delete old change pages --- IkiWiki/Plugin/recentchanges.pm | 16 +++++++++++++--- po/ikiwiki.pot | 28 ++++++++++++++-------------- 2 files changed, 27 insertions(+), 17 deletions(-) (limited to 'IkiWiki') diff --git a/IkiWiki/Plugin/recentchanges.pm b/IkiWiki/Plugin/recentchanges.pm index 2525785e7..8f707afc4 100644 --- a/IkiWiki/Plugin/recentchanges.pm +++ b/IkiWiki/Plugin/recentchanges.pm @@ -41,7 +41,7 @@ sub store ($$) { #{{{ # Optimisation to avoid re-writing pages. Assumes commits never # change (or that any changes are not important). - return if exists $pagesources{$page} && ! $config{rebuild}; + return $page if exists $pagesources{$page} && ! $config{rebuild}; # Limit pages to first 10, and add links to the changed pages. my $is_excess = exists $change->{pages}[10]; @@ -97,18 +97,28 @@ sub store ($$) { #{{{ my $file=$page."._change"; writefile($file, $config{srcdir}, $template->output); utime $change->{when}, $change->{when}, "$config{srcdir}/$file"; + + return $page; } #}}} sub updatechanges ($$) { #{{{ my $pagespec=shift; my $subdir=shift; my @changes=@{shift()}; + + my %seen; + # add new changes foreach my $change (@changes) { - store($change, $subdir); + $seen{store($change, $subdir)}=1; } - # TODO: delete old + # delete old and excess changes + foreach my $page (keys %pagesources) { + if ($page=~/^\Q$subdir\E\/change_/ && ! $seen{$page}) { + unlink($config{srcdir}.'/'.$pagesources{$page}); + } + } } #}}} 1 diff --git a/po/ikiwiki.pot b/po/ikiwiki.pot index d8d00812b..98882d535 100644 --- a/po/ikiwiki.pot +++ b/po/ikiwiki.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2008-01-29 04:45-0500\n" +"POT-Creation-Date: 2008-01-29 15:21-0500\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -47,8 +47,8 @@ msgstr "" #: ../IkiWiki/CGI.pm:382 ../IkiWiki/Plugin/brokenlinks.pm:24 #: ../IkiWiki/Plugin/inline.pm:241 ../IkiWiki/Plugin/opendiscussion.pm:17 -#: ../IkiWiki/Plugin/orphans.pm:28 ../IkiWiki/Render.pm:98 -#: ../IkiWiki/Render.pm:178 +#: ../IkiWiki/Plugin/orphans.pm:28 ../IkiWiki/Render.pm:100 +#: ../IkiWiki/Render.pm:180 msgid "discussion" msgstr "" @@ -218,7 +218,7 @@ msgstr "" msgid "nonexistant template %s" msgstr "" -#: ../IkiWiki/Plugin/inline.pm:249 ../IkiWiki/Render.pm:102 +#: ../IkiWiki/Plugin/inline.pm:249 ../IkiWiki/Render.pm:104 msgid "Discussion" msgstr "" @@ -503,47 +503,47 @@ msgstr "" msgid "getctime not implemented" msgstr "" -#: ../IkiWiki/Render.pm:276 ../IkiWiki/Render.pm:297 +#: ../IkiWiki/Render.pm:280 ../IkiWiki/Render.pm:301 #, perl-format msgid "skipping bad filename %s" msgstr "" -#: ../IkiWiki/Render.pm:339 +#: ../IkiWiki/Render.pm:350 #, perl-format msgid "removing old page %s" msgstr "" -#: ../IkiWiki/Render.pm:372 +#: ../IkiWiki/Render.pm:389 #, perl-format msgid "scanning %s" msgstr "" -#: ../IkiWiki/Render.pm:377 +#: ../IkiWiki/Render.pm:394 #, perl-format msgid "rendering %s" msgstr "" -#: ../IkiWiki/Render.pm:389 +#: ../IkiWiki/Render.pm:415 #, perl-format msgid "rendering %s, which links to %s" msgstr "" -#: ../IkiWiki/Render.pm:406 +#: ../IkiWiki/Render.pm:436 #, perl-format msgid "rendering %s, which depends on %s" msgstr "" -#: ../IkiWiki/Render.pm:444 +#: ../IkiWiki/Render.pm:475 #, perl-format msgid "rendering %s, to update its backlinks" msgstr "" -#: ../IkiWiki/Render.pm:456 +#: ../IkiWiki/Render.pm:487 #, perl-format msgid "removing %s, no longer rendered by %s" msgstr "" -#: ../IkiWiki/Render.pm:482 +#: ../IkiWiki/Render.pm:513 #, perl-format msgid "ikiwiki: cannot render %s" msgstr "" @@ -623,7 +623,7 @@ msgstr "" #. translators: preprocessor directive name, #. translators: the second a page name, the #. translators: third a number. -#: ../IkiWiki.pm:767 +#: ../IkiWiki.pm:773 #, perl-format msgid "%s preprocessing loop detected on %s at depth %i" msgstr "" -- cgit v1.2.3 From 8b31c53366bbee51b36501443eafd0f712ee6a4c Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Tue, 29 Jan 2008 15:51:32 -0500 Subject: added configuration for recentchanges I kept it to a simple global configuration, rather than using the preprocessor directive for recentchanges, because that had chicken and egg problems and seemed overcomplicated. This should work reasonably well, though it would be good to add some more metadata so that more customised recentchanges pages can be made. --- IkiWiki/Plugin/recentchanges.pm | 54 +++++++++++++++++------------------------ IkiWiki/Render.pm | 4 +-- doc/cgi.mdwn | 6 +++-- doc/ikiwiki.setup | 3 +++ doc/plugins/recentchanges.mdwn | 8 ++---- doc/recentchanges.mdwn | 1 - doc/usage.mdwn | 6 ++--- docwiki.setup | 8 ++---- po/ikiwiki.pot | 2 +- t/pagespec_match.t | 3 --- 10 files changed, 38 insertions(+), 57 deletions(-) (limited to 'IkiWiki') diff --git a/IkiWiki/Plugin/recentchanges.pm b/IkiWiki/Plugin/recentchanges.pm index 8f707afc4..f5982604b 100644 --- a/IkiWiki/Plugin/recentchanges.pm +++ b/IkiWiki/Plugin/recentchanges.pm @@ -6,25 +6,30 @@ use strict; use IkiWiki 2.00; sub import { #{{{ - hook(type => "refresh", id => "recentchanges", - call => \&refresh); - hook(type => "preprocess", id => "recentchanges", - call => \&preprocess); - hook(type => "htmlize", id => "_change", - call => \&htmlize); + hook(type => "checkconfig", id => "recentchanges", call => \&checkconfig); + hook(type => "refresh", id => "recentchanges", call => \&refresh); + hook(type => "htmlize", id => "_change", call => \&htmlize); } #}}} -sub refresh ($) { #{{{ - my @changes=IkiWiki::rcs_recentchanges(100); - updatechanges("*", "recentchanges", \@changes); +sub checkconfig () { #{{{ + $config{recentchangespage}='recentchanges' unless defined $config{recentchangespage}; + $config{recentchangesnum}=100 unless defined $config{recentchangesnum}; } #}}} -sub preprocess (@) { #{{{ - my %params=@_; - - # TODO +sub refresh ($) { #{{{ + my %seen; - return ""; + # add new changes + foreach my $change (IkiWiki::rcs_recentchanges($config{recentchangesnum})) { + $seen{store($change, $config{recentchangespage})}=1; + } + + # delete old and excess changes + foreach my $page (keys %pagesources) { + if ($page=~/^\Q$config{recentchangespage}\E\/change_/ && ! $seen{$page}) { + unlink($config{srcdir}.'/'.$pagesources{$page}); + } + } } #}}} # Pages with extension _change have plain html markup, pass through. @@ -33,11 +38,10 @@ sub htmlize (@) { #{{{ return $params{content}; } #}}} -sub store ($$) { #{{{ +sub store ($$$) { #{{{ my $change=shift; - my $subdir=shift; - - my $page="$subdir/change_".IkiWiki::titlepage($change->{rev}); + + my $page="$config{recentchangespage}/change_".IkiWiki::titlepage($change->{rev}); # Optimisation to avoid re-writing pages. Assumes commits never # change (or that any changes are not important). @@ -102,23 +106,9 @@ sub store ($$) { #{{{ } #}}} sub updatechanges ($$) { #{{{ - my $pagespec=shift; my $subdir=shift; my @changes=@{shift()}; - my %seen; - - # add new changes - foreach my $change (@changes) { - $seen{store($change, $subdir)}=1; - } - - # delete old and excess changes - foreach my $page (keys %pagesources) { - if ($page=~/^\Q$subdir\E\/change_/ && ! $seen{$page}) { - unlink($config{srcdir}.'/'.$pagesources{$page}); - } - } } #}}} 1 diff --git a/IkiWiki/Render.pm b/IkiWiki/Render.pm index b5b461499..ed359bdd7 100644 --- a/IkiWiki/Render.pm +++ b/IkiWiki/Render.pm @@ -85,8 +85,8 @@ sub genpage ($$) { #{{{ $actions++; } - if ($config{rcs}) { - $template->param(recentchangesurl => urlto("recentchanges", $page)); + if ($config{rcs} && exists $config{recentchangespage}) { + $template->param(recentchangesurl => urlto($config{recentchangespage}, $page)); $actions++; } diff --git a/doc/cgi.mdwn b/doc/cgi.mdwn index 22d8c4332..1448fa4d5 100644 --- a/doc/cgi.mdwn +++ b/doc/cgi.mdwn @@ -1,3 +1,5 @@ -While ikiwiki is primarily a wiki compiler, which generates static html pages, it does use CGI for two important wiki features, online page editing and the [[RecentChanges]] display. +While ikiwiki is primarily a wiki compiler, which generates static html +pages, it does use CGI for online page editing. -To enable CGI, you need to create and install an ikiwiki.cgi wrapper. [[Setup]] explains how to do this. \ No newline at end of file +To enable CGI, you need to create and install an ikiwiki.cgi wrapper. +[[Setup]] explains how to do this. diff --git a/doc/ikiwiki.setup b/doc/ikiwiki.setup index af27f1d7e..9bf542981 100644 --- a/doc/ikiwiki.setup +++ b/doc/ikiwiki.setup @@ -115,6 +115,9 @@ use IkiWiki::Setup::Standard { #account_creation_password => "example", # Uncomment to force ikiwiki to run with a particular umask. #umask => 022, + # Default settings for the recentchanges page. + #recentchangespage => "recentchanges", + #recentchangesnum => 100, # To add plugins, list them here. #add_plugins => [qw{goodstuff search wikitext camelcase diff --git a/doc/plugins/recentchanges.mdwn b/doc/plugins/recentchanges.mdwn index 69073adf0..8647985c9 100644 --- a/doc/plugins/recentchanges.mdwn +++ b/doc/plugins/recentchanges.mdwn @@ -5,12 +5,8 @@ generates a page describing each recent change made to the wiki. These pages can be joined together with [[inline]] to generate the [[RecentChanges]] page. -Typically only the RecentChanges page will use the plugin, but you can -use it elsewhere too if you like. It's used like this: +Typically only the RecentChanges page will use the pages generated by this +plugin, but you can use it elsewhere too if you like. It's used like this: - \[[recentchanges pages="*" num=100 template=change]] \[[inline pages="internal(recentchanges/change_*)" template=recentchanges show=0]] - -The pages describing recent changes will be created as [[subpages|subpage]] -of the page where the `recentchanges` directive is placed. diff --git a/doc/recentchanges.mdwn b/doc/recentchanges.mdwn index d702b0f34..2dd218520 100644 --- a/doc/recentchanges.mdwn +++ b/doc/recentchanges.mdwn @@ -1,5 +1,4 @@ Recent changes to this wiki: -[[recentchanges pages="*" num=100 template=change]] [[inline pages="internal(recentchanges/change_*) and !*/Discussion" template=recentchanges show=0]] diff --git a/doc/usage.mdwn b/doc/usage.mdwn index 354e266f1..f34d5bad6 100644 --- a/doc/usage.mdwn +++ b/doc/usage.mdwn @@ -33,8 +33,7 @@ These options control the mode that ikiwiki operates in. * --cgi Enable [[CGI]] mode. In cgi mode ikiwiki runs as a cgi script, and - supports editing pages, signing in, registration, and displaying - [[RecentChanges]]. + supports editing pages, signing in, and registration. To use ikiwiki as a [[CGI]] program you need to use --wrapper or --setup to generate a wrapper. The wrapper will generally need to run suid 6755 to @@ -141,8 +140,7 @@ configuration options of their own. whatever the revision control system you select uses. In [[CGI]] mode, with a revision control system enabled, pages edited via - the web will be committed. Also, the [[RecentChanges]] link will be placed - on pages. + the web will be committed. No revision control is enabled by default. diff --git a/docwiki.setup b/docwiki.setup index 5793d87bf..e8f680a20 100644 --- a/docwiki.setup +++ b/docwiki.setup @@ -15,10 +15,6 @@ use IkiWiki::Setup::Standard { syslog => 0, userdir => "users", usedirs => 0, - rcs => 'git', - rss => 1, - cgiurl => "http://ikiwiki.info/ikiwiki.cgi", - url => "http://ikiwiki.info", - add_plugins => [qw{goodstuff version haiku polygen fortune - recentchanges }], + add_plugins => [qw{goodstuff version haiku polygen fortune}], + disable_plugins => [qw{recentchanges}], } diff --git a/po/ikiwiki.pot b/po/ikiwiki.pot index 98882d535..4e43f5da9 100644 --- a/po/ikiwiki.pot +++ b/po/ikiwiki.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2008-01-29 15:21-0500\n" +"POT-Creation-Date: 2008-01-29 15:46-0500\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/t/pagespec_match.t b/t/pagespec_match.t index 3a641c6a8..cb98ab149 100755 --- a/t/pagespec_match.t +++ b/t/pagespec_match.t @@ -67,9 +67,6 @@ ok(! pagespec_match("foo", "creation_day(3)"), "other day"); ok(! pagespec_match("foo", "no_such_function(foo)"), "foo"); -ok(pagespec_match("foo", "foo and user(bar)", user => "bar"), "user"); -ok(! pagespec_match("foo", "foo and user(bar)", user => "baz"), "user fail"); - my $ret=pagespec_match("foo", "(invalid"); ok(! $ret, "syntax error"); ok($ret eq "syntax error", "error message"); -- cgit v1.2.3 From 9875bc10d14d50f543f4aab3ce4e9dae060b8c23 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Tue, 29 Jan 2008 15:53:49 -0500 Subject: avoid redundant recentpages action on the recentchanges page itself --- IkiWiki/Render.pm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'IkiWiki') diff --git a/IkiWiki/Render.pm b/IkiWiki/Render.pm index ed359bdd7..4495b9cfd 100644 --- a/IkiWiki/Render.pm +++ b/IkiWiki/Render.pm @@ -85,7 +85,8 @@ sub genpage ($$) { #{{{ $actions++; } - if ($config{rcs} && exists $config{recentchangespage}) { + if ($config{rcs} && exists $config{recentchangespage} && + $page ne $config{recentchangespage}) { $template->param(recentchangesurl => urlto($config{recentchangespage}, $page)); $actions++; } -- cgit v1.2.3 From bc49e284ac96ca0058bfe4b026d23022d5d3f659 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Tue, 29 Jan 2008 16:05:31 -0500 Subject: make the author metadata for changes pages be the un-munged openid --- IkiWiki/Plugin/recentchanges.pm | 1 + 1 file changed, 1 insertion(+) (limited to 'IkiWiki') diff --git a/IkiWiki/Plugin/recentchanges.pm b/IkiWiki/Plugin/recentchanges.pm index f5982604b..9dad0af5e 100644 --- a/IkiWiki/Plugin/recentchanges.pm +++ b/IkiWiki/Plugin/recentchanges.pm @@ -66,6 +66,7 @@ sub store ($$$) { #{{{ push @{$change->{pages}}, { link => '...' } if $is_excess; # See if the committer is an openid. + $change->{author}=$change->{user}; my $oiduser=IkiWiki::openiduser($change->{user}); if (defined $oiduser) { $change->{authorurl}=$change->{user}; -- cgit v1.2.3 From 64a8c828b8cfa342118dd6e28b9dff43d83c6311 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Tue, 29 Jan 2008 17:16:51 -0500 Subject: * meta: Add pagespec functions to match against title, author, authorurl, license, and copyright. This can be used to create custom RecentChanges. * meta: To support the pagespec functions, metadata about pages has to be retained as pagestate. * Fix encoding bug when pagestate values contained spaces. --- IkiWiki.pm | 2 +- IkiWiki/Plugin/meta.pm | 122 +++++++++++++++++++++++++++-------------- IkiWiki/Render.pm | 1 + debian/changelog | 5 ++ doc/ikiwiki/pagespec.mdwn | 7 ++- doc/plugins/recentchanges.mdwn | 14 +++++ doc/plugins/write.mdwn | 18 +++--- docwiki.setup | 4 +- po/ikiwiki.pot | 32 +++++------ templates/change.tmpl | 2 +- 10 files changed, 136 insertions(+), 71 deletions(-) (limited to 'IkiWiki') diff --git a/IkiWiki.pm b/IkiWiki.pm index db2605672..016c664b5 100644 --- a/IkiWiki.pm +++ b/IkiWiki.pm @@ -973,7 +973,7 @@ sub saveindex () { #{{{ if (exists $pagestate{$page}) { foreach my $id (@hookids) { foreach my $key (keys %{$pagestate{$page}{$id}}) { - $line.=' '.$id.'_'.encode_entities($key)."=".encode_entities($pagestate{$page}{$id}{$key}); + $line.=' '.$id.'_'.encode_entities($key)."=".encode_entities($pagestate{$page}{$id}{$key}, " \t\n"); } } } diff --git a/IkiWiki/Plugin/meta.pm b/IkiWiki/Plugin/meta.pm index d2c6e7f8b..849a13e37 100644 --- a/IkiWiki/Plugin/meta.pm +++ b/IkiWiki/Plugin/meta.pm @@ -6,13 +6,7 @@ use warnings; use strict; use IkiWiki 2.00; -my %meta; -my %title; -my %permalink; -my %author; -my %authorurl; -my %license; -my %copyright; +my %metaheaders; sub import { #{{{ hook(type => "needsbuild", id => "meta", call => \&needsbuild); @@ -71,16 +65,16 @@ sub preprocess (@) { #{{{ # Metadata collection that needs to happen during the scan pass. if ($key eq 'title') { - $title{$page}=HTML::Entities::encode_numeric($value); + $pagestate{$page}{meta}{title}=HTML::Entities::encode_numeric($value); } elsif ($key eq 'license') { - push @{$meta{$page}}, ''; - $license{$page}=$value; + push @{$metaheaders{$page}}, ''; + $pagestate{$page}{meta}{license}=$value; return ""; } elsif ($key eq 'copyright') { - push @{$meta{$page}}, ''; - $copyright{$page}=$value; + push @{$metaheaders{$page}}, ''; + $pagestate{$page}{meta}{copyright}=$value; return ""; } elsif ($key eq 'link' && ! %params) { @@ -89,11 +83,11 @@ sub preprocess (@) { #{{{ return ""; } elsif ($key eq 'author') { - $author{$page}=$value; + $pagestate{$page}{meta}{author}=$value; # fallthorough } elsif ($key eq 'authorurl') { - $authorurl{$page}=$value; + $pagestate{$page}{meta}{authorurl}=$value; # fallthrough } @@ -111,8 +105,8 @@ sub preprocess (@) { #{{{ } } elsif ($key eq 'permalink') { - $permalink{$page}=$value; - push @{$meta{$page}}, scrub(''); + $pagestate{$page}{meta}{permalink}=$value; + push @{$metaheaders{$page}}, scrub(''); } elsif ($key eq 'stylesheet') { my $rel=exists $params{rel} ? $params{rel} : "alternate stylesheet"; @@ -123,17 +117,17 @@ sub preprocess (@) { #{{{ if (! length $stylesheet) { return "[[meta ".gettext("stylesheet not found")."]]"; } - push @{$meta{$page}}, '"; } elsif ($key eq 'openid') { if (exists $params{server}) { - push @{$meta{$page}}, ''; } - push @{$meta{$page}}, ''; } elsif ($key eq 'redir') { @@ -172,11 +166,11 @@ sub preprocess (@) { #{{{ if (! $safe) { $redir=scrub($redir); } - push @{$meta{$page}}, $redir; + push @{$metaheaders{$page}}, $redir; } elsif ($key eq 'link') { if (%params) { - push @{$meta{$page}}, scrub("'); } @@ -197,32 +191,80 @@ sub pagetemplate (@) { #{{{ my $destpage=$params{destpage}; my $template=$params{template}; - if (exists $meta{$page} && $template->query(name => "meta")) { + if (exists $metaheaders{$page} && $template->query(name => "meta")) { # avoid duplicate meta lines my %seen; - $template->param(meta => join("\n", grep { (! $seen{$_}) && ($seen{$_}=1) } @{$meta{$page}})); + $template->param(meta => join("\n", grep { (! $seen{$_}) && ($seen{$_}=1) } @{$metaheaders{$page}})); } - if (exists $title{$page} && $template->query(name => "title")) { - $template->param(title => $title{$page}); + if (exists $pagestate{$page}{meta}{title} && $template->query(name => "title")) { + $template->param(title => $pagestate{$page}{meta}{title}); $template->param(title_overridden => 1); } - $template->param(permalink => $permalink{$page}) - if exists $permalink{$page} && $template->query(name => "permalink"); - $template->param(author => $author{$page}) - if exists $author{$page} && $template->query(name => "author"); - $template->param(authorurl => $authorurl{$page}) - if exists $authorurl{$page} && $template->query(name => "authorurl"); - if (exists $license{$page} && $template->query(name => "license") && - ($page eq $destpage || ! exists $license{$destpage} || - $license{$page} ne $license{$destpage})) { - $template->param(license => htmlize($page, $destpage, $license{$page})); + foreach my $field (qw{author authorurl permalink}) { + $template->param($field => $pagestate{$page}{meta}{$field}) + if exists $pagestate{$page}{meta}{$field} && $template->query(name => $field); } - if (exists $copyright{$page} && $template->query(name => "copyright") && - ($page eq $destpage || ! exists $copyright{$destpage} || - $copyright{$page} ne $copyright{$destpage})) { - $template->param(copyright => htmlize($page, $destpage, $copyright{$page})); + + foreach my $field (qw{license copyright}) { + if (exists $pagestate{$page}{meta}{$field} && $template->query(name => $field) && + ($page eq $destpage || ! exists $pagestate{$destpage}{meta}{$field} || + $pagestate{$page}{meta}{$field} ne $pagestate{$destpage}{meta}{$field})) { + $template->param($field => htmlize($page, $destpage, $pagestate{$page}{meta}{$field})); + } } } # }}} +sub match { #{{{ + my $field=shift; + my $page=shift; + + # turn glob into a safe regexp + my $re=quotemeta(shift); + $re=~s/\\\*/.*/g; + $re=~s/\\\?/./g; + + my $val; + if (exists $pagestate{$page}{meta}{$field}) { + $val=$pagestate{$page}{meta}{$field}; + } + elsif ($field eq 'title') { + $val=pagetitle($page); + } + + if (defined $val) { + if ($val=~/^$re$/i) { + return IkiWiki::SuccessReason->new("$re matches $field of $page"); + } + else { + return IkiWiki::FailReason->new("$re does not match $field of $page"); + } + } + else { + return IkiWiki::FailReason->new("$page does not have a $field"); + } +} #}}} + +package IkiWiki::PageSpec; + +sub match_title ($$;@) { #{{{ + IkiWiki::Plugin::meta::match("title", @_); +} #}}} + +sub match_author ($$;@) { #{{{ + IkiWiki::Plugin::meta::match("author", @_); +} #}}} + +sub match_authorurl ($$;@) { #{{{ + IkiWiki::Plugin::meta::match("authorurl", @_); +} #}}} + +sub match_license ($$;@) { #{{{ + IkiWiki::Plugin::meta::match("license", @_); +} #}}} + +sub match_copyright ($$;@) { #{{{ + IkiWiki::Plugin::meta::match("copyright", @_); +} #}}} + 1 diff --git a/IkiWiki/Render.pm b/IkiWiki/Render.pm index 4495b9cfd..76e8ef1f4 100644 --- a/IkiWiki/Render.pm +++ b/IkiWiki/Render.pm @@ -377,6 +377,7 @@ sub refresh () { #{{{ $pagemtime{$page}=$mtime; if (isinternal($page)) { push @internal, $file; + scan($file); } else { push @needsbuild, $file; diff --git a/debian/changelog b/debian/changelog index c608531e1..77202ed1f 100644 --- a/debian/changelog +++ b/debian/changelog @@ -31,6 +31,11 @@ ikiwiki (2.21) UNRELEASED; urgency=low the svnrepo and notify settings, though both will be ignored if left in setup files. Also gone with it is the "user()" pagespec. * Add refresh hook. + * meta: Add pagespec functions to match against title, author, authorurl, + license, and copyright. This can be used to create custom RecentChanges. + * meta: To support the pagespec functions, metadata about pages has to be + retained as pagestate. + * Fix encoding bug when pagestate values contained spaces. -- Joey Hess Fri, 11 Jan 2008 15:09:37 -0500 diff --git a/doc/ikiwiki/pagespec.mdwn b/doc/ikiwiki/pagespec.mdwn index e1a476202..3cd6bb9f4 100644 --- a/doc/ikiwiki/pagespec.mdwn +++ b/doc/ikiwiki/pagespec.mdwn @@ -33,10 +33,13 @@ functions: was created * "`created_before(page)`" - match only pages created before the given page was created -* "`glob(foo)`" - match pages that match the given glob `foo`. Just writing +* "`glob(someglob)`" - match pages that match the given glob. Just writing the glob by itself is actually a shorthand for this function. -* "`internal(foo)`" - like `glob()`, but matches even internal-use +* "`internal(glob)`" - like `glob()`, but matches even internal-use pages that globs do not usually match. +* "`title(glob)`", "`author(glob)`", "`authorurl(glob)`", + "`license(glob)`", "`copyright(glob)`" - match pages that have the given + metadata, matching the specified glob. For example, to match all pages in a blog that link to the page about music and were written in 2005: diff --git a/doc/plugins/recentchanges.mdwn b/doc/plugins/recentchanges.mdwn index 8647985c9..b48dcbacf 100644 --- a/doc/plugins/recentchanges.mdwn +++ b/doc/plugins/recentchanges.mdwn @@ -10,3 +10,17 @@ plugin, but you can use it elsewhere too if you like. It's used like this: \[[inline pages="internal(recentchanges/change_*)" template=recentchanges show=0]] + +Here's an example of how to show only changes to "bugs/*". +This matches against the title of the change, which includes a list of +modified pages. + + \[[inline pages="internal(recentchanges/change_*) and title(*bugs/*)" + template=recentchanges show=0]] + +Here's an example of how to show only changes that Joey didn't make. +(Joey commits sometimes as user `joey`, and sometimes via openid.) + + \[[inline pages="internal(recentchanges/change_*) and + !author(joey) and !author(http://joey.kitenet.net*)" + template=recentchanges show=0]] diff --git a/doc/plugins/write.mdwn b/doc/plugins/write.mdwn index 79da6a612..9c3a36b8f 100644 --- a/doc/plugins/write.mdwn +++ b/doc/plugins/write.mdwn @@ -533,18 +533,16 @@ rendered to. ## Internal use pages -Sometimes it's useful to put pages in the wiki without having them be -rendered to individual html files. Such internal use pages are collected -together to form the RecentChanges page, for example. +Sometimes it's useful to put pages in the wiki without the overhead of +having them be rendered to individual html files. Such internal use pages +are collected together to form the RecentChanges page, for example. To make an internal use page, register a filename extension that starts -with "_". Internal use pages cannot be edited with the web interface, are -not scanned for wikilinks (though wikilinks and preprocessor directives can -appear on them, this is rarely a good idea and should be done with caution), -and are not matched by regular PageSpecs glob patterns, but instead only by a -special `internal()` [[ikiwiki/PageSpec]]. - -Ikiwiki is optimised to handle lots of internal use pages, very quickly. +with "_". Internal use pages cannot be edited with the web interface, +generally shouldn't contain wikilinks or preprocessor directives (use +either on them with extreme caution), and are not matched by regular +PageSpecs glob patterns, but instead only by a special `internal()` +[[ikiwiki/PageSpec]]. ## RCS plugins diff --git a/docwiki.setup b/docwiki.setup index e8f680a20..ab9696b81 100644 --- a/docwiki.setup +++ b/docwiki.setup @@ -15,6 +15,8 @@ use IkiWiki::Setup::Standard { syslog => 0, userdir => "users", usedirs => 0, + rcs => "git", + rss => 1, + url => "http://ikiwiki.info/", add_plugins => [qw{goodstuff version haiku polygen fortune}], - disable_plugins => [qw{recentchanges}], } diff --git a/po/ikiwiki.pot b/po/ikiwiki.pot index 4e43f5da9..027e10e8a 100644 --- a/po/ikiwiki.pot +++ b/po/ikiwiki.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2008-01-29 15:46-0500\n" +"POT-Creation-Date: 2008-01-29 17:15-0500\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -47,8 +47,8 @@ msgstr "" #: ../IkiWiki/CGI.pm:382 ../IkiWiki/Plugin/brokenlinks.pm:24 #: ../IkiWiki/Plugin/inline.pm:241 ../IkiWiki/Plugin/opendiscussion.pm:17 -#: ../IkiWiki/Plugin/orphans.pm:28 ../IkiWiki/Render.pm:100 -#: ../IkiWiki/Render.pm:180 +#: ../IkiWiki/Plugin/orphans.pm:28 ../IkiWiki/Render.pm:101 +#: ../IkiWiki/Render.pm:181 msgid "discussion" msgstr "" @@ -218,7 +218,7 @@ msgstr "" msgid "nonexistant template %s" msgstr "" -#: ../IkiWiki/Plugin/inline.pm:249 ../IkiWiki/Render.pm:104 +#: ../IkiWiki/Plugin/inline.pm:249 ../IkiWiki/Render.pm:105 msgid "Discussion" msgstr "" @@ -240,15 +240,15 @@ msgstr "" msgid "failed to load Markdown.pm perl module (%s) or /usr/bin/markdown (%s)" msgstr "" -#: ../IkiWiki/Plugin/meta.pm:124 +#: ../IkiWiki/Plugin/meta.pm:118 msgid "stylesheet not found" msgstr "" -#: ../IkiWiki/Plugin/meta.pm:148 +#: ../IkiWiki/Plugin/meta.pm:142 msgid "redir page not found" msgstr "" -#: ../IkiWiki/Plugin/meta.pm:161 +#: ../IkiWiki/Plugin/meta.pm:155 msgid "redir cycle is not allowed" msgstr "" @@ -503,47 +503,47 @@ msgstr "" msgid "getctime not implemented" msgstr "" -#: ../IkiWiki/Render.pm:280 ../IkiWiki/Render.pm:301 +#: ../IkiWiki/Render.pm:281 ../IkiWiki/Render.pm:302 #, perl-format msgid "skipping bad filename %s" msgstr "" -#: ../IkiWiki/Render.pm:350 +#: ../IkiWiki/Render.pm:351 #, perl-format msgid "removing old page %s" msgstr "" -#: ../IkiWiki/Render.pm:389 +#: ../IkiWiki/Render.pm:391 #, perl-format msgid "scanning %s" msgstr "" -#: ../IkiWiki/Render.pm:394 +#: ../IkiWiki/Render.pm:396 #, perl-format msgid "rendering %s" msgstr "" -#: ../IkiWiki/Render.pm:415 +#: ../IkiWiki/Render.pm:417 #, perl-format msgid "rendering %s, which links to %s" msgstr "" -#: ../IkiWiki/Render.pm:436 +#: ../IkiWiki/Render.pm:438 #, perl-format msgid "rendering %s, which depends on %s" msgstr "" -#: ../IkiWiki/Render.pm:475 +#: ../IkiWiki/Render.pm:477 #, perl-format msgid "rendering %s, to update its backlinks" msgstr "" -#: ../IkiWiki/Render.pm:487 +#: ../IkiWiki/Render.pm:489 #, perl-format msgid "removing %s, no longer rendered by %s" msgstr "" -#: ../IkiWiki/Render.pm:513 +#: ../IkiWiki/Render.pm:515 #, perl-format msgid "ikiwiki: cannot render %s" msgstr "" diff --git a/templates/change.tmpl b/templates/change.tmpl index 570d47559..f9941ae70 100644 --- a/templates/change.tmpl +++ b/templates/change.tmpl @@ -2,7 +2,7 @@ [[meta authorurl=""""""]] -[[meta title="""update of 's """]] +[[meta title="""update of 's """]]