aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Bundle/IkiWiki.pm12
-rw-r--r--Bundle/IkiWiki/Extras.pm4
-rw-r--r--IkiWiki.pm87
-rw-r--r--IkiWiki/CGI.pm29
-rw-r--r--IkiWiki/Plugin/404.pm77
-rw-r--r--IkiWiki/Plugin/aggregate.pm5
-rw-r--r--IkiWiki/Plugin/bzr.pm20
-rw-r--r--IkiWiki/Plugin/comments.pm39
-rw-r--r--IkiWiki/Plugin/editpage.pm66
-rw-r--r--IkiWiki/Plugin/goto.pm75
-rw-r--r--IkiWiki/Plugin/graphviz.pm2
-rw-r--r--IkiWiki/Plugin/inline.pm12
-rw-r--r--IkiWiki/Plugin/meta.pm7
-rw-r--r--IkiWiki/Plugin/recentchanges.pm47
-rw-r--r--IkiWiki/Plugin/shortcut.pm14
-rw-r--r--IkiWiki/Plugin/sparkline.pm2
-rw-r--r--IkiWiki/Plugin/tag.pm8
-rw-r--r--IkiWiki/Plugin/template.pm3
-rw-r--r--IkiWiki/Plugin/underlay.pm40
-rw-r--r--IkiWiki/Plugin/wmd.pm44
-rw-r--r--IkiWiki/Setup/Automator.pm13
-rw-r--r--IkiWiki/Wrapper.pm8
-rwxr-xr-xMakefile.PL14
-rw-r--r--debian/changelog71
-rw-r--r--debian/compat2
-rw-r--r--debian/control6
-rw-r--r--debian/copyright6
-rw-r--r--debian/docs1
-rw-r--r--debian/link2
-rwxr-xr-xdebian/rules48
-rw-r--r--doc/bugs/Aggregated_Atom_feeds_are_double-encoded.mdwn22
-rw-r--r--doc/bugs/INC_location_not_set_correctly_in_make_test.mdwn24
-rw-r--r--doc/bugs/PNG_triggers_UTF-8_error_in_MimeInfo.pm.mdwn25
-rw-r--r--doc/bugs/bzr_plugin_does_not_define_rcs__95__diff.mdwn27
-rw-r--r--doc/bugs/cannot_reliably_use_meta_in_template.mdwn4
-rw-r--r--doc/bugs/html5_support.mdwn47
-rw-r--r--doc/bugs/pagetitle_function_does_not_respect_meta_titles.mdwn219
-rw-r--r--doc/bugs/remove_orphaned_sparkline-php_from_Suggests.mdwn20
-rw-r--r--doc/bugs/shortcut_plugin_will_not_work_without_shortcuts.mdwn.mdwn33
-rw-r--r--doc/bugs/support_for_openid2_logins.mdwn10
-rw-r--r--doc/bugs/tags__44___backlinks_and_3.x.mdwn34
-rw-r--r--doc/css_market.mdwn13
-rw-r--r--doc/css_market/actiontabs.css122
-rw-r--r--doc/download.mdwn7
-rw-r--r--doc/examples/softwaresite/index.mdwn2
-rw-r--r--doc/forum/Migrating_old_repository_to_new_ikiwiki_system__63__.mdwn58
-rw-r--r--doc/forum/chinese_character_problem.mdwn4
-rw-r--r--doc/forum/usedirs___38___indexpages_using_problem.mdwn12
-rw-r--r--doc/git.mdwn1
-rw-r--r--doc/ikiwiki/directive/meta.mdwn9
-rw-r--r--doc/ikiwiki/pagespec.mdwn3
-rw-r--r--doc/ikiwikiusers.mdwn18
-rw-r--r--doc/news/openid.mdwn2
-rw-r--r--doc/news/version_3.02.mdwn24
-rw-r--r--doc/news/version_3.06.mdwn3
-rw-r--r--doc/plugins/404.mdwn20
-rw-r--r--doc/plugins/contrib/default_content_for___42__copyright__42___and___42__license__42__.mdwn2
-rw-r--r--doc/plugins/contrib/gallery.mdwn2
-rw-r--r--doc/plugins/contrib/po.mdwn60
-rw-r--r--doc/plugins/contrib/sourcehighlight.mdwn15
-rw-r--r--doc/plugins/contrib/underlay.mdwn58
-rw-r--r--doc/plugins/creole.mdwn8
-rw-r--r--doc/plugins/creole/discussion.mdwn4
-rw-r--r--doc/plugins/google/discussion.mdwn6
-rw-r--r--doc/plugins/goto.mdwn10
-rw-r--r--doc/plugins/mdwn/discussion.mdwn7
-rw-r--r--doc/plugins/passwordauth/discussion.mdwn56
-rw-r--r--doc/plugins/shortcut/discussion.mdwn11
-rw-r--r--doc/plugins/tag.mdwn3
-rw-r--r--doc/plugins/tag/discussion.mdwn6
-rw-r--r--doc/plugins/textile/discussion.mdwn1
-rw-r--r--doc/plugins/underlay.mdwn14
-rw-r--r--doc/plugins/write.mdwn29
-rw-r--r--doc/sandbox.mdwn4
-rw-r--r--doc/setup/byhand.mdwn11
-rw-r--r--doc/setup/discussion.mdwn16
-rw-r--r--doc/tips/dot_cgi.mdwn7
-rw-r--r--doc/tips/github.mdwn2
-rw-r--r--doc/tips/howto_avoid_flooding_aggregators.mdwn16
-rw-r--r--doc/todo/Add_showdown_GUI_input__47__edit.mdwn2
-rw-r--r--doc/todo/Allow_disabling_edit_and_preferences_links.mdwn6
-rw-r--r--doc/todo/Allow_filenames_that_are_all_type.mdwn41
-rw-r--r--doc/todo/Gallery.mdwn8
-rw-r--r--doc/todo/Option_to_make_title_an_h1__63__.mdwn2
-rw-r--r--doc/todo/RecentChanges_page_links_without_cgi_wrapper.mdwn26
-rw-r--r--doc/todo/apache_404_ErrorDocument_handler.mdwn9
-rw-r--r--doc/todo/auto-create_tag_pages_according_to_a_template.mdwn99
-rw-r--r--doc/todo/automatic_use_of_syntax_plugin_on_source_code_files/discussion.mdwn277
-rw-r--r--doc/todo/comments.mdwn35
-rw-r--r--doc/todo/discussion_page_as_blog.mdwn2
-rw-r--r--doc/todo/generic___39__do__61__goto__39___for_CGI.mdwn28
-rw-r--r--doc/todo/latex.mdwn3
-rw-r--r--doc/todo/mdwn_preview.mdwn116
-rw-r--r--doc/todo/mercurial.mdwn60
-rw-r--r--doc/todo/need_global_renamepage_hook.mdwn48
-rw-r--r--doc/todo/overriding_displayed_modification_time.mdwn12
-rw-r--r--doc/todo/pingback_support.mdwn17
-rw-r--r--doc/todo/redirect_automatically_after_rename.mdwn10
-rw-r--r--doc/todo/syntax_highlighting.mdwn5
-rw-r--r--doc/todo/tag_pagespec_function.mdwn34
-rw-r--r--doc/todo/tla.mdwn3
-rw-r--r--doc/todo/using_meta_titles_for_parentlinks.html122
-rw-r--r--doc/todo/wikiwyg.mdwn5
-rw-r--r--doc/users/jelmer.mdwn1
-rw-r--r--doc/users/smcv/gallery.mdwn21
-rw-r--r--doc/users/svend.mdwn4
-rw-r--r--doc/users/weakish.mdwn1
-rwxr-xr-xikiwiki.in6
-rwxr-xr-xpm_filter2
-rw-r--r--po/bg.po169
-rw-r--r--po/cs.po169
-rw-r--r--po/da.po167
-rw-r--r--po/de.po242
-rw-r--r--po/es.po186
-rw-r--r--po/fr.po171
-rw-r--r--po/gu.po169
-rw-r--r--po/ikiwiki.pot164
-rw-r--r--po/pl.po169
-rw-r--r--po/sv.po169
-rw-r--r--po/vi.po169
-rwxr-xr-xt/404.t44
-rwxr-xr-xt/pagename.t29
-rwxr-xr-xt/pagetype.mdwn14
-rw-r--r--templates/googleform.tmpl4
-rw-r--r--templates/misc.tmpl2
125 files changed, 3353 insertions, 1564 deletions
diff --git a/Bundle/IkiWiki.pm b/Bundle/IkiWiki.pm
index 74832323a..769791d30 100644
--- a/Bundle/IkiWiki.pm
+++ b/Bundle/IkiWiki.pm
@@ -16,17 +16,17 @@ perl -MCPAN -e 'install Bundle::IkiWiki'
=head1 CONTENTS
-XML::Simple
Text::Markdown
-Date::Parse
-HTML::Template
HTML::Scrubber
-CGI
+HTML::Template
+HTML::Parser
+URI
+XML::Simple
+Date::Parse
CGI::FormBuilder
CGI::Session
Mail::Sendmail
-HTML::Parser
-URI
+CGI
Data::Dumper
=head1 AUTHOR
diff --git a/Bundle/IkiWiki/Extras.pm b/Bundle/IkiWiki/Extras.pm
index abf596f00..582d4a966 100644
--- a/Bundle/IkiWiki/Extras.pm
+++ b/Bundle/IkiWiki/Extras.pm
@@ -31,6 +31,10 @@ Text::Textile
Text::WikiFormat
XML::Feed
Net::Amazon::S3
+Text::WikiCreole
+Term::ReadLine::Gnu
+HTML::Tree
+Authen::Passphrase
=head1 AUTHOR
diff --git a/IkiWiki.pm b/IkiWiki.pm
index 66fea4369..f580d1f0d 100644
--- a/IkiWiki.pm
+++ b/IkiWiki.pm
@@ -627,27 +627,32 @@ sub dirname ($) {
return $file;
}
-sub pagetype ($) {
+sub isinternal ($) {
my $page=shift;
+ return exists $pagesources{$page} &&
+ $pagesources{$page} =~ /\._([^.]+)$/;
+}
+
+sub pagetype ($) {
+ my $file=shift;
- if ($page =~ /\.([^.]+)$/) {
+ if ($file =~ /\.([^.]+)$/) {
return $1 if exists $hooks{htmlize}{$1};
}
+ elsif ($hooks{htmlize}{basename($file)}{noextension}) {
+ return basename($file);
+ }
return;
}
-sub isinternal ($) {
- my $page=shift;
- return exists $pagesources{$page} &&
- $pagesources{$page} =~ /\._([^.]+)$/;
-}
-
sub pagename ($) {
my $file=shift;
my $type=pagetype($file);
my $page=$file;
- $page=~s/\Q.$type\E*$// if defined $type && !$hooks{htmlize}{$type}{keepextension};
+ $page=~s/\Q.$type\E*$//
+ if defined $type && !$hooks{htmlize}{$type}{keepextension}
+ && !$hooks{htmlize}{$type}{noextension};
if ($config{indexpages} && $page=~/(.*)\/index$/) {
$page=$1;
}
@@ -1293,6 +1298,70 @@ sub indexlink () {
return "<a href=\"$config{url}\">$config{wikiname}</a>";
}
+sub check_canedit ($$$;$) {
+ my $page=shift;
+ my $q=shift;
+ my $session=shift;
+ my $nonfatal=shift;
+
+ my $canedit;
+ run_hooks(canedit => sub {
+ return if defined $canedit;
+ my $ret=shift->($page, $q, $session);
+ if (defined $ret) {
+ if ($ret eq "") {
+ $canedit=1;
+ }
+ elsif (ref $ret eq 'CODE') {
+ $ret->() unless $nonfatal;
+ $canedit=0;
+ }
+ elsif (defined $ret) {
+ error($ret) unless $nonfatal;
+ $canedit=0;
+ }
+ }
+ });
+ return defined $canedit ? $canedit : 1;
+}
+
+sub check_content (@) {
+ my %params=@_;
+
+ return 1 if ! exists $hooks{checkcontent}; # optimisation
+
+ if (exists $pagesources{$params{page}}) {
+ my @diff;
+ my %old=map { $_ => 1 }
+ split("\n", readfile(srcfile($pagesources{$params{page}})));
+ foreach my $line (split("\n", $params{content})) {
+ push @diff, $line if ! exists $old{$_};
+ }
+ $params{content}=join("\n", @diff);
+ }
+
+ my $ok;
+ run_hooks(checkcontent => sub {
+ return if defined $ok;
+ my $ret=shift->(%params);
+ if (defined $ret) {
+ if ($ret eq "") {
+ $ok=1;
+ }
+ elsif (ref $ret eq 'CODE') {
+ $ret->() unless $params{nonfatal};
+ $ok=0;
+ }
+ elsif (defined $ret) {
+ error($ret) unless $params{nonfatal};
+ $ok=0;
+ }
+ }
+
+ });
+ return defined $ok ? $ok : 1;
+}
+
my $wikilock;
sub lockwiki () {
diff --git a/IkiWiki/CGI.pm b/IkiWiki/CGI.pm
index 3fadc462e..04f24b04f 100644
--- a/IkiWiki/CGI.pm
+++ b/IkiWiki/CGI.pm
@@ -142,7 +142,12 @@ sub cgi_postsignin ($$) {
exit;
}
else {
- error(gettext("login failed, perhaps you need to turn on cookies?"));
+ if ($config{sslcookie} && ! $q->https()) {
+ error(gettext("probable misconfiguration: sslcookie is set, but you are attepting to login via http, not https"));
+ }
+ else {
+ error(gettext("login failed, perhaps you need to turn on cookies?"));
+ }
}
}
@@ -229,6 +234,20 @@ sub cgi_prefs ($$) {
showform($form, $buttons, $session, $q);
}
+sub cgi_custom_failure ($$) {
+ my $header=shift;
+ my $message=shift;
+
+ print $header;
+ print $message;
+
+ # Internet Explod^Hrer won't show custom 404 responses
+ # unless they're >= 512 bytes
+ print ' ' x 512;
+
+ exit;
+}
+
sub check_banned ($$) {
my $q=shift;
my $session=shift;
@@ -236,11 +255,11 @@ sub check_banned ($$) {
my $name=$session->param("name");
if (defined $name) {
if (grep { $name eq $_ } @{$config{banned_users}}) {
- print $q->header(-status => "403 Forbidden");
$session->delete();
- print gettext("You are banned.");
cgi_savesession($session);
- exit;
+ cgi_custom_failure(
+ $q->header(-status => "403 Forbidden"),
+ gettext("You are banned."));
}
}
}
@@ -317,7 +336,7 @@ sub cgi (;$$) {
error("\"do\" parameter missing");
}
}
-
+
# Need to lock the wiki before getting a session.
lockwiki();
loadindex();
diff --git a/IkiWiki/Plugin/404.pm b/IkiWiki/Plugin/404.pm
new file mode 100644
index 000000000..5550ea7d1
--- /dev/null
+++ b/IkiWiki/Plugin/404.pm
@@ -0,0 +1,77 @@
+#!/usr/bin/perl
+# Copyright © 2009 Simon McVittie <http://smcv.pseudorandom.co.uk/>
+# Licensed under the GNU GPL, version 2, or any later version published by the
+# Free Software Foundation
+package IkiWiki::Plugin::404;
+
+use warnings;
+use strict;
+use IkiWiki 3.00;
+
+sub import {
+ hook(type => "cgi", id => '404', call => \&cgi);
+ IkiWiki::loadplugin("goto");
+}
+
+sub getsetup () {
+ return
+ plugin => {
+ # not really a matter of safety, but enabling/disabling
+ # through a web interface is useless - it needs web
+ # server admin action too
+ safe => 0,
+ rebuild => 0,
+ }
+}
+
+sub cgi_page_from_404 ($$$) {
+ my $path = shift;
+ my $baseurl = shift;
+ my $usedirs = shift;
+
+ # fail if missing from environment or whatever
+ return undef unless defined $path;
+ return undef unless defined $baseurl;
+
+ # with usedirs on, path is like /~fred/foo/bar/ or /~fred/foo/bar or
+ # /~fred/foo/bar/index.html
+ # with usedirs off, path is like /~fred/foo/bar.html
+ # baseurl is like 'http://people.example.com/~fred'
+
+ # convert baseurl to ~fred
+ unless ($baseurl =~ s{^https?://[^/]+/?}{}) {
+ return undef;
+ }
+
+ # convert path to /~fred/foo/bar
+ if ($usedirs) {
+ $path =~ s/\/*(?:index\.$config{htmlext})?$//;
+ }
+ else {
+ $path =~ s/\.$config{htmlext}$//;
+ }
+
+ # remove /~fred/
+ unless ($path =~ s{^/*\Q$baseurl\E/*}{}) {
+ return undef;
+ }
+
+ # special case for the index
+ unless ($path) {
+ return 'index';
+ }
+
+ return $path;
+}
+
+sub cgi ($) {
+ my $cgi=shift;
+
+ if ($ENV{REDIRECT_STATUS} eq '404') {
+ my $page = cgi_page_from_404($ENV{REDIRECT_URL},
+ $config{url}, $config{usedirs});
+ IkiWiki::Plugin::goto::cgi_goto($cgi, $page);
+ }
+}
+
+1;
diff --git a/IkiWiki/Plugin/aggregate.pm b/IkiWiki/Plugin/aggregate.pm
index c667ee2a9..e1baae666 100644
--- a/IkiWiki/Plugin/aggregate.pm
+++ b/IkiWiki/Plugin/aggregate.pm
@@ -534,6 +534,11 @@ sub aggregate (@) {
}
foreach my $entry ($f->entries) {
+ # XML::Feed doesn't work around XML::Atom's bizarre
+ # API, so we will. Real unicode strings? Yes please.
+ # See [[bugs/Aggregated_Atom_feeds_are_double-encoded]]
+ local $XML::Atom::ForceUnicode = 1;
+
my $c=$entry->content;
# atom feeds may have no content, only a summary
if (! defined $c && ref $entry->summary) {
diff --git a/IkiWiki/Plugin/bzr.pm b/IkiWiki/Plugin/bzr.pm
index 16c959069..883007367 100644
--- a/IkiWiki/Plugin/bzr.pm
+++ b/IkiWiki/Plugin/bzr.pm
@@ -255,6 +255,26 @@ sub rcs_recentchanges ($) {
return @ret;
}
+sub rcs_diff ($) {
+ my $taintedrev=shift;
+ my ($rev) = $taintedrev =~ /^(\d+(\.\d+)*)$/; # untaint
+
+ my $prevspec = "before:" . $rev;
+ my $revspec = "revno:" . $rev;
+ my @cmdline = ("bzr", "diff", "--old", $config{srcdir},
+ "--new", $config{srcdir},
+ "-r", $prevspec . ".." . $revspec);
+ open (my $out, "@cmdline |");
+
+ my @lines = <$out>;
+ if (wantarray) {
+ return @lines;
+ }
+ else {
+ return join("", @lines);
+ }
+}
+
sub rcs_getctime ($) {
my ($file) = @_;
diff --git a/IkiWiki/Plugin/comments.pm b/IkiWiki/Plugin/comments.pm
index b2243ce4c..ee53dbc91 100644
--- a/IkiWiki/Plugin/comments.pm
+++ b/IkiWiki/Plugin/comments.pm
@@ -25,8 +25,9 @@ sub import {
hook(type => "sessioncgi", id => 'comment', call => \&sessioncgi);
hook(type => "htmlize", id => "_comment", call => \&htmlize);
hook(type => "pagetemplate", id => "comments", call => \&pagetemplate);
- hook(type => "cgi", id => "comments", call => \&linkcgi);
hook(type => "formbuilder_setup", id => "comments", call => \&formbuilder_setup);
+ # Load goto to fix up user page links for logged-in commenters
+ IkiWiki::loadplugin("goto");
IkiWiki::loadplugin("inline");
}
@@ -167,7 +168,7 @@ sub preprocess {
}
else {
$commentauthorurl = IkiWiki::cgiurl(
- do => 'commenter',
+ do => 'goto',
page => (length $config{userdir}
? "$config{userdir}/$commentuser"
: "$commentuser"));
@@ -235,35 +236,6 @@ sub preprocess {
return $content;
}
-# This is exactly the same as recentchanges_link :-(
-sub linkcgi ($) {
- my $cgi=shift;
- if (defined $cgi->param('do') && $cgi->param('do') eq "commenter") {
-
- my $page=decode_utf8($cgi->param("page"));
- if (! defined $page) {
- error("missing page parameter");
- }
-
- IkiWiki::loadindex();
-
- my $link=bestlink("", $page);
- if (! length $link) {
- print "Content-type: text/html\n\n";
- print IkiWiki::misctemplate(gettext(gettext("missing page")),
- "<p>".
- sprintf(gettext("The page %s does not exist."),
- htmllink("", "", $page)).
- "</p>");
- }
- else {
- IkiWiki::redirect($cgi, urlto($link, undef, 1));
- }
-
- exit;
- }
-}
-
sub sessioncgi ($$) {
my $cgi=shift;
my $session=shift;
@@ -477,7 +449,7 @@ sub editcomment ($$) {
IkiWiki::printheader($session);
print IkiWiki::misctemplate(gettext(gettext("comment stored for moderation")),
"<p>".
- gettext("Your comment will be posted after moderator review"),
+ gettext("Your comment will be posted after moderator review").
"</p>");
exit;
}
@@ -633,7 +605,8 @@ sub formbuilder_setup (@) {
my %params=@_;
my $form=$params{form};
- if ($form->title eq "preferences") {
+ if ($form->title eq "preferences" &&
+ IkiWiki::is_admin($params{session}->param("name"))) {
push @{$params{buttons}}, "Comment Moderation";
if ($form->submitted && $form->submitted eq "Comment Moderation") {
commentmoderation($params{cgi}, $params{session});
diff --git a/IkiWiki/Plugin/editpage.pm b/IkiWiki/Plugin/editpage.pm
index 480e82804..0068a6b11 100644
--- a/IkiWiki/Plugin/editpage.pm
+++ b/IkiWiki/Plugin/editpage.pm
@@ -51,73 +51,9 @@ sub refresh () {
# Back to ikiwiki namespace for the rest, this code is very much
# internal to ikiwiki even though it's separated into a plugin,
-# and other plugins use the functions below.
+# and other plugins use the function below.
package IkiWiki;
-sub check_canedit ($$$;$) {
- my $page=shift;
- my $q=shift;
- my $session=shift;
- my $nonfatal=shift;
-
- my $canedit;
- run_hooks(canedit => sub {
- return if defined $canedit;
- my $ret=shift->($page, $q, $session);
- if (defined $ret) {
- if ($ret eq "") {
- $canedit=1;
- }
- elsif (ref $ret eq 'CODE') {
- $ret->() unless $nonfatal;
- $canedit=0;
- }
- elsif (defined $ret) {
- error($ret) unless $nonfatal;
- $canedit=0;
- }
- }
- });
- return defined $canedit ? $canedit : 1;
-}
-
-sub check_content (@) {
- my %params=@_;
-
- return 1 if ! exists $hooks{checkcontent}; # optimisation
-
- if (exists $pagesources{$params{page}}) {
- my @diff;
- my %old=map { $_ => 1 }
- split("\n", readfile(srcfile($pagesources{$params{page}})));
- foreach my $line (split("\n", $params{content})) {
- push @diff, $line if ! exists $old{$_};
- }
- $params{diff}=join("\n", @diff);
- }
-
- my $ok;
- run_hooks(checkcontent => sub {
- return if defined $ok;
- my $ret=shift->(%params);
- if (defined $ret) {
- if ($ret eq "") {
- $ok=1;
- }
- elsif (ref $ret eq 'CODE') {
- $ret->() unless $params{nonfatal};
- $ok=0;
- }
- elsif (defined $ret) {
- error($ret) unless $params{nonfatal};
- $ok=0;
- }
- }
-
- });
- return defined $ok ? $ok : 1;
-}
-
sub cgi_editpage ($$) {
my $q=shift;
my $session=shift;
diff --git a/IkiWiki/Plugin/goto.pm b/IkiWiki/Plugin/goto.pm
new file mode 100644
index 000000000..3f40c5859
--- /dev/null
+++ b/IkiWiki/Plugin/goto.pm
@@ -0,0 +1,75 @@
+#!/usr/bin/perl
+package IkiWiki::Plugin::goto;
+
+use warnings;
+use strict;
+use IkiWiki 3.00;
+
+sub import {
+ hook(type => "cgi", id => 'goto', call => \&cgi);
+}
+
+sub getsetup () {
+ return
+ plugin => {
+ safe => 1,
+ rebuild => 0,
+ }
+}
+
+# cgi_goto(CGI, [page])
+# Redirect to a specified page, or display "not found". If not specified,
+# the page param from the CGI object is used.
+sub cgi_goto ($;$) {
+ my $q = shift;
+ my $page = shift;
+
+ if (!defined $page) {
+ $page = IkiWiki::decode_utf8($q->param("page"));
+
+ if (!defined $page) {
+ error("missing page parameter");
+ }
+ }
+
+ IkiWiki::loadindex();
+
+ # If the page is internal (like a comment), see if it has a
+ # permalink. Comments do.
+ if (IkiWiki::isinternal($page) &&
+ defined $pagestate{$page}{meta}{permalink}) {
+ IkiWiki::redirect($q, $pagestate{$page}{meta}{permalink});
+ }
+
+ my $link = bestlink("", $page);
+
+ if (! length $link) {
+ IkiWiki::cgi_custom_failure(
+ $q->header(-status => "404 Not Found"),
+ IkiWiki::misctemplate(gettext("missing page"),
+ "<p>".
+ sprintf(gettext("The page %s does not exist."),
+ htmllink("", "", $page)).
+ "</p>")
+ )
+ }
+ else {
+ IkiWiki::redirect($q, urlto($link, undef, 1));
+ }
+
+ exit;
+}
+
+sub cgi ($) {
+ my $cgi=shift;
+ my $do = $cgi->param('do');
+
+ if (defined $do && ($do eq 'goto' || $do eq 'commenter' ||
+ $do eq 'recentchanges_link')) {
+ # goto is the preferred name for this; recentchanges_link and
+ # commenter are for compatibility with any saved URLs
+ cgi_goto($cgi);
+ }
+}
+
+1;
diff --git a/IkiWiki/Plugin/graphviz.pm b/IkiWiki/Plugin/graphviz.pm
index b43e96a73..32e994d6b 100644
--- a/IkiWiki/Plugin/graphviz.pm
+++ b/IkiWiki/Plugin/graphviz.pm
@@ -45,7 +45,7 @@ sub render_graph (\%) {
if (! -e "$config{destdir}/$dest") {
my $pid;
- my $sigpipe=0;;
+ my $sigpipe=0;
$SIG{PIPE}=sub { $sigpipe=1 };
$pid=open2(*IN, *OUT, "$params{prog} -Tpng");
diff --git a/IkiWiki/Plugin/inline.pm b/IkiWiki/Plugin/inline.pm
index d8b5f8548..2205ebffc 100644
--- a/IkiWiki/Plugin/inline.pm
+++ b/IkiWiki/Plugin/inline.pm
@@ -519,9 +519,15 @@ sub genfeed ($$$$$@) {
mdate_3339 => date_3339($pagemtime{$p}),
);
- if (exists $pagestate{$p} &&
- exists $pagestate{$p}{meta}{guid}) {
- $itemtemplate->param(guid => $pagestate{$p}{meta}{guid});
+ if (exists $pagestate{$p}) {
+ if (exists $pagestate{$p}{meta}{guid}) {
+ $itemtemplate->param(guid => $pagestate{$p}{meta}{guid});
+ }
+
+ if (exists $pagestate{$p}{meta}{updated}) {
+ $itemtemplate->param(mdate_822 => date_822($pagestate{$p}{meta}{updated}));
+ $itemtemplate->param(mdate_3339 => date_3339($pagestate{$p}{meta}{updated}));
+ }
}
if ($itemtemplate->query(name => "enclosure")) {
diff --git a/IkiWiki/Plugin/meta.pm b/IkiWiki/Plugin/meta.pm
index 15bb29b3f..4a22fed30 100644
--- a/IkiWiki/Plugin/meta.pm
+++ b/IkiWiki/Plugin/meta.pm
@@ -128,6 +128,13 @@ sub preprocess (@) {
$IkiWiki::pagectime{$page}=$time if defined $time;
}
}
+ elsif ($key eq 'updated') {
+ eval q{use Date::Parse};
+ if (! $@) {
+ my $time = str2time($value);
+ $pagestate{$page}{meta}{updated}=$time if defined $time;
+ }
+ }
if (! defined wantarray) {
# avoid collecting duplicate data during scan pass
diff --git a/IkiWiki/Plugin/recentchanges.pm b/IkiWiki/Plugin/recentchanges.pm
index ef108b3f0..329dd6f32 100644
--- a/IkiWiki/Plugin/recentchanges.pm
+++ b/IkiWiki/Plugin/recentchanges.pm
@@ -13,7 +13,8 @@ sub import {
hook(type => "refresh", id => "recentchanges", call => \&refresh);
hook(type => "pagetemplate", id => "recentchanges", call => \&pagetemplate);
hook(type => "htmlize", id => "_change", call => \&htmlize);
- hook(type => "cgi", id => "recentchanges", call => \&cgi);
+ # Load goto to fix up links from recentchanges
+ IkiWiki::loadplugin("goto");
}
sub getsetup () {
@@ -79,48 +80,6 @@ sub htmlize (@) {
return $params{content};
}
-sub cgi ($) {
- my $cgi=shift;
- if (defined $cgi->param('do') && $cgi->param('do') eq "recentchanges_link") {
- # This is a link from a change page to some
- # other page. Since the change pages are only generated
- # once, statically, links on them won't be updated if the
- # page they link to is deleted, or newly created, or
- # changes for whatever reason. So this CGI handles that
- # dynamic linking stuff.
- my $page=decode_utf8($cgi->param("page"));
- if (!defined $page) {
- error("missing page parameter");
- }
-
- IkiWiki::loadindex();
-
- # If the page is internal (like a comment), see if it has a
- # permalink. Comments do.
- if (IkiWiki::isinternal($page) &&
- defined $pagestate{$page}{meta}{permalink}) {
- IkiWiki::redirect($cgi,
- $pagestate{$page}{meta}{permalink});
- exit;
- }
-
- my $link=bestlink("", $page);
- if (! length $link) {
- print "Content-type: text/html\n\n";
- print IkiWiki::misctemplate(gettext(gettext("missing page")),
- "<p>".
- sprintf(gettext("The page %s does not exist."),
- htmllink("", "", $page)).
- "</p>");
- }
- else {
- IkiWiki::redirect($cgi, urlto($link, undef, 1));
- }
-
- exit;
- }
-}
-
sub store ($$$) {
my $change=shift;
@@ -138,7 +97,7 @@ sub store ($$$) {
if (length $config{cgiurl}) {
$_->{link} = "<a href=\"".
IkiWiki::cgiurl(
- do => "recentchanges_link",
+ do => "goto",
page => $_->{page}
).
"\" rel=\"nofollow\">".
diff --git a/IkiWiki/Plugin/shortcut.pm b/IkiWiki/Plugin/shortcut.pm
index 0e7cbd4d1..1840a5722 100644
--- a/IkiWiki/Plugin/shortcut.pm
+++ b/IkiWiki/Plugin/shortcut.pm
@@ -20,14 +20,20 @@ sub getsetup () {
}
sub checkconfig () {
- if (defined $config{srcdir}) {
+ if (defined $config{srcdir} && length $config{srcdir}) {
# Preprocess the shortcuts page to get all the available shortcuts
# defined before other pages are rendered.
- my $srcfile=srcfile("shortcuts.mdwn", 1);
+ my $srcfile=srcfile("shortcuts.".$config{default_pageext}, 1);
if (! defined $srcfile) {
- error(gettext("shortcut plugin will not work without a shortcuts.mdwn"));
+ $srcfile=srcfile("shortcuts.mdwn", 1);
+ }
+ if (! defined $srcfile) {
+ print STDERR sprintf(gettext("shortcut plugin will not work without %s"),
+ "shortcuts.".$config{default_pageext})."\n";
+ }
+ else {
+ IkiWiki::preprocess("shortcuts", "shortcuts", readfile($srcfile));
}
- IkiWiki::preprocess("shortcuts", "shortcuts", readfile($srcfile));
}
}
diff --git a/IkiWiki/Plugin/sparkline.pm b/IkiWiki/Plugin/sparkline.pm
index 1ed65e5b7..458192695 100644
--- a/IkiWiki/Plugin/sparkline.pm
+++ b/IkiWiki/Plugin/sparkline.pm
@@ -130,7 +130,7 @@ sub preprocess (@) {
if (! -e "$config{destdir}/$fn") {
my $pid;
- my $sigpipe=0;;
+ my $sigpipe=0;
$SIG{PIPE}=sub { $sigpipe=1 };
$pid=open2(*IN, *OUT, "php");
diff --git a/IkiWiki/Plugin/tag.pm b/IkiWiki/Plugin/tag.pm
index d43910910..8fe9c6828 100644
--- a/IkiWiki/Plugin/tag.pm
+++ b/IkiWiki/Plugin/tag.pm
@@ -125,4 +125,12 @@ sub pagetemplate (@) {
}
}
+package IkiWiki::PageSpec;
+
+sub match_tagged ($$;@) {
+ my $page = shift;
+ my $glob = shift;
+ return match_link($page, IkiWiki::Plugin::tag::tagpage($glob));
+}
+
1
diff --git a/IkiWiki/Plugin/template.pm b/IkiWiki/Plugin/template.pm
index 57bff20ff..b872f0962 100644
--- a/IkiWiki/Plugin/template.pm
+++ b/IkiWiki/Plugin/template.pm
@@ -10,7 +10,8 @@ use Encode;
sub import {
hook(type => "getsetup", id => "template", call => \&getsetup);
- hook(type => "preprocess", id => "template", call => \&preprocess);
+ hook(type => "preprocess", id => "template", call => \&preprocess,
+ scan => 1);
}
sub getsetup () {
diff --git a/IkiWiki/Plugin/underlay.pm b/IkiWiki/Plugin/underlay.pm
new file mode 100644
index 000000000..380d418fb
--- /dev/null
+++ b/IkiWiki/Plugin/underlay.pm
@@ -0,0 +1,40 @@
+#!/usr/bin/perl
+package IkiWiki::Plugin::underlay;
+# Copyright © 2008 Simon McVittie <http://smcv.pseudorandom.co.uk/>
+# Licensed under the GNU GPL, version 2, or any later version published by the
+# Free Software Foundation
+
+use warnings;
+use strict;
+use IkiWiki 3.00;
+
+sub import {
+ hook(type => "getsetup", id => "underlay", call => \&getsetup);
+ hook(type => "checkconfig", id => "underlay", call => \&checkconfig);
+}
+
+sub getsetup () {
+ return
+ plugin => {
+ safe => 0,
+ rebuild => undef,
+ },
+ add_underlays => {
+ type => "string",
+ default => [],
+ description => "extra underlay directories to add",
+ advanced => 1,
+ safe => 0,
+ rebuild => 1,
+ },
+}
+
+sub checkconfig () {
+ return unless exists $config{add_underlays};
+
+ foreach my $dir (@{$config{add_underlays}}) {
+ add_underlay($dir);
+ }
+}
+
+1;
diff --git a/IkiWiki/Plugin/wmd.pm b/IkiWiki/Plugin/wmd.pm
new file mode 100644
index 000000000..3372ffe38
--- /dev/null
+++ b/IkiWiki/Plugin/wmd.pm
@@ -0,0 +1,44 @@
+#!/usr/bin/perl
+package IkiWiki::Plugin::wmd;
+
+use warnings;
+use strict;
+use IkiWiki 3.00;
+use POSIX;
+use Encode;
+
+sub import {
+ add_underlay("wmd");
+ hook(type => "getsetup", id => "wmd", call => \&getsetup);
+ hook(type => "formbuilder_setup", id => "wmd", call => \&formbuilder_setup);
+}
+
+sub getsetup () {
+ return
+ plugin => {
+ safe => 1,
+ },
+}
+
+sub formbuilder_setup (@) {
+ my %params=@_;
+ my $form=$params{form};
+
+ return if ! defined $form->field("do");
+
+ return unless (($form->field("do") eq "edit") ||
+ ($form->field("do") eq "create"));
+
+ $form->tmpl_param("wmd_preview", "<div class=\"wmd-preview\"></div>\n".
+ include_javascript(undef, 1));
+}
+
+sub include_javascript ($;$) {
+ my $page=shift;
+ my $absolute=shift;
+
+ return '<script src="'.urlto("wmd.js", $page, $absolute).
+ '" type="text/javascript"></script>'."\n";
+}
+
+1
diff --git a/IkiWiki/Setup/Automator.pm b/IkiWiki/Setup/Automator.pm
index 42caf3039..7d9eca3af 100644
--- a/IkiWiki/Setup/Automator.pm
+++ b/IkiWiki/Setup/Automator.pm
@@ -110,11 +110,20 @@ sub import (@) {
next if $admin=~/^http\?:\/\//; # openid
# Prompt for password w/o echo.
+ my ($password, $password2);
system('stty -echo 2>/dev/null');
local $|=1;
print "\n\nCreating wiki admin $admin ...\n";
- print "Choose a password: ";
- chomp(my $password=<STDIN>);
+ for (;;) {
+ print "Choose a password: ";
+ chomp($password=<STDIN>);
+ print "Confirm password: ";
+ chomp($password2=<STDIN>);
+
+ last if $password2 eq $password;
+
+ print "Password mismatch.\n\n";
+ }
print "\n\n\n";
system('stty sane 2>/dev/null');
diff --git a/IkiWiki/Wrapper.pm b/IkiWiki/Wrapper.pm
index dd9971a34..6555fe625 100644
--- a/IkiWiki/Wrapper.pm
+++ b/IkiWiki/Wrapper.pm
@@ -28,7 +28,8 @@ sub gen_wrapper () {
my @envsave;
push @envsave, qw{REMOTE_ADDR QUERY_STRING REQUEST_METHOD REQUEST_URI
CONTENT_TYPE CONTENT_LENGTH GATEWAY_INTERFACE
- HTTP_COOKIE REMOTE_USER HTTPS} if $config{cgi};
+ HTTP_COOKIE REMOTE_USER HTTPS REDIRECT_STATUS
+ REDIRECT_URL} if $config{cgi};
my $envsave="";
foreach my $var (@envsave) {
$envsave.=<<"EOF";
@@ -92,10 +93,7 @@ EOF
$configstring=~s/"/\\"/g;
$configstring=~s/\n/\\n/g;
- #translators: The first parameter is a filename, and the second is
- #translators: a (probably not translated) error message.
- open(OUT, ">$wrapper.c") || error(sprintf(gettext("failed to write %s: %s"), "$wrapper.c", $!));;
- print OUT <<"EOF";
+ writefile(basename("$wrapper.c"), dirname($wrapper), <<"EOF");
/* A wrapper for ikiwiki, can be safely made suid. */
#include <stdio.h>
#include <sys/types.h>
diff --git a/Makefile.PL b/Makefile.PL
index d29804cca..93f9e89e2 100755
--- a/Makefile.PL
+++ b/Makefile.PL
@@ -42,7 +42,7 @@ extra_build: ikiwiki.out ikiwiki.setup docwiki
./mdwn2man ikiwiki-makerepo 1 doc/ikiwiki-makerepo.mdwn > ikiwiki-makerepo.man
./mdwn2man ikiwiki-transition 1 doc/ikiwiki-transition.mdwn > ikiwiki-transition.man
./mdwn2man ikiwiki-update-wikilist 1 doc/ikiwiki-update-wikilist.mdwn > ikiwiki-update-wikilist.man
- $(MAKE) -C po mo
+ $(MAKE) -C po
docwiki: ikiwiki.out
$(PERL) -Iblib/lib $(extramodules) $(tflag) ikiwiki.out -libdir . -setup docwiki.setup -refresh
@@ -57,7 +57,7 @@ extra_install:
for dir in `cd underlays && find . -follow -type d ! -regex '.*\.svn.*'`; do \
install -d $(DESTDIR)$(PREFIX)/share/ikiwiki/$$dir; \
for file in `find underlays/$$dir -follow -maxdepth 1 -type f`; do \
- cp -aL $$file $(DESTDIR)$(PREFIX)/share/ikiwiki/$$dir || \
+ cp -aL $$file $(DESTDIR)$(PREFIX)/share/ikiwiki/$$dir 2>/dev/null || \
install -m 644 $$file $(DESTDIR)$(PREFIX)/share/ikiwiki/$$dir; \
done; \
done
@@ -71,11 +71,11 @@ extra_install:
done
# Install example sites.
- for dir in `cd doc/examples; find -type d ! -regex '.*\.svn.*'`; do \
+ for dir in `cd doc/examples; find . -type d ! -regex '.*\.svn.*'`; do \
install -d $(DESTDIR)$(PREFIX)/share/ikiwiki/examples/$$dir; \
done
- for file in `cd doc/examples; find -type f ! -regex '.*\.svn.*'`; do \
- cp -aL doc/examples/$$file $(DESTDIR)$(PREFIX)/share/ikiwiki/examples/$$file || \
+ for file in `cd doc/examples; find . -type f ! -regex '.*\.svn.*'`; do \
+ cp -aL doc/examples/$$file $(DESTDIR)$(PREFIX)/share/ikiwiki/examples/$$file 2>/dev/null || \
install -m 644 doc/examples/$$file $(DESTDIR)$(PREFIX)/share/ikiwiki/examples/$$file; \
done
@@ -87,10 +87,10 @@ extra_install:
done
install -d $(DESTDIR)$(PREFIX)/lib/ikiwiki/plugins
- for file in `find plugins -maxdepth 1 -type f ! -wholename plugins/.\* ! -name \*demo\* -name \*.py`; do \
+ for file in `find plugins -maxdepth 1 -type f ! -path plugins/.\* ! -name \*demo\* -name \*.py`; do \
install -m 644 $$file $(DESTDIR)$(PREFIX)/lib/ikiwiki/plugins; \
done
- for file in `find plugins -maxdepth 1 -type f ! -wholename plugins/.\* ! -name \*demo\* ! -name \*.py ! -name \*.pyc`; do \
+ for file in `find plugins -maxdepth 1 -type f ! -path plugins/.\* ! -name \*demo\* ! -name \*.py ! -name \*.pyc`; do \
install -m 755 $$file $(DESTDIR)$(PREFIX)/lib/ikiwiki/plugins; \
done
diff --git a/debian/changelog b/debian/changelog
index 6c1710fe1..801dc154f 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,17 +1,70 @@
-ikiwiki (3.03) UNRELEASED; urgency=low
+ikiwiki (3.07) UNRELEASED; urgency=low
+
+ * Updated German translation (Kai Wasserbäch). Closes: #518377
+ * Updated French translation (Jean-Luc Coulon). Closes: #518510
+
+ -- Joey Hess <joeyh@debian.org> Thu, 05 Mar 2009 15:43:02 -0500
+
+ikiwiki (3.06) unstable; urgency=low
+
+ * Setup automator: Fix bug in password comparison. Closes: #517654
+
+ -- Joey Hess <joeyh@debian.org> Sun, 01 Mar 2009 15:02:30 -0500
+
+ikiwiki (3.05) unstable; urgency=low
+
+ * debhelper v7(.0.50); rules file minimisation.
+ * template: Load templates in scan mode.
+ This is potentially expensive, but is necessary so that meta and tag
+ directives, and other links on templates affect the page using the
+ template reliably.
+ * goto: Fix redirect to comments.
+ * Add noextension parameter to htmlize hooks to support, eg, Makefile.
+ * Add tagged() PageSpec.
+ * Updated German translation (Kai Wasserbäch). Closes: #516770
+ * Setup automator: Prompt for password twice. Closes: #516973
+ * bzr: Add missing rcs_diff. (liw)
+ * comments: Avoid showing comment moderation button in prefs to non-admins.
+ * goto: Fix typo that broke recentchanges_link compatibility.
- * Avoid feeding decoded unicode to Term::ReadLine.
- Closes: 512169
+ -- Joey Hess <joeyh@debian.org> Fri, 27 Feb 2009 15:48:39 -0500
+
+ikiwiki (3.04) unstable; urgency=low
+
+ * 404: New plugin which lets you use the IkiWiki CGI script as
+ an Apache 404 handler, to give the behaviour of various other wiki
+ engines where visiting a nonexistent page provides you with a link
+ to create it. (smcv)
+ * Factor out redundant code into goto plugin. (smcv)
+ * Work around XML::Atom strangeness that results in double-encoded posts.
+ (smcv)
+ * Fix unusual --setup --post-commit command line option combo.
+ * Create any missing directory necessary to put the wrapper
+ file into. Closes: #514384
+ * shortcut: If default_pageext is set, first look for
+ shortcuts.default_pageext.
+ * Allow comments, rename, remove, and attachment plugins to be used
+ even if the editpage plugin is disabled.
+
+ -- Joey Hess <joeyh@debian.org> Sat, 14 Feb 2009 02:27:14 -0500
+
+ikiwiki (3.03) unstable; urgency=low
+
+ * Avoid feeding decoded unicode to Term::ReadLine. Closes: 512169
* blogspam: Log spam info on failure in debug mode.
* Remove nonstandard css. Closes: #512378
- * blogspam: Fix use of blogspam_options and blogspam_server
- config settings.
+ * blogspam: Fix use of blogspam_options and blogspam_server config settings.
* comments: If comment content checks fail, store the comment
(in .ikiwiki/comments_pending) for moderator review.
- * comments: Add a moderation web interface.
- * git: Fix malformed utf8 recieved from git.
-
- -- Joey Hess <joeyh@debian.org> Sun, 18 Jan 2009 14:50:57 -0500
+ * comments: Add a moderation web interface, which admins can
+ access via their Preferences page.
+ * git: Fix malformed utf8 received from git.
+ * meta: New "updated" metadata specifies a fake modification time for a
+ page, to be output into RSS and Atom feeds. (smcv)
+ * underlay: New plugin, allows pulling in additional files not
+ in version control. (smcv)
+
+ -- Joey Hess <joeyh@debian.org> Thu, 29 Jan 2009 14:36:58 -0500
ikiwiki (3.02) unstable; urgency=low
diff --git a/debian/compat b/debian/compat
index 7ed6ff82d..7f8f011eb 100644
--- a/debian/compat
+++ b/debian/compat
@@ -1 +1 @@
-5
+7
diff --git a/debian/control b/debian/control
index 78898a1a4..c6170c441 100644
--- a/debian/control
+++ b/debian/control
@@ -1,7 +1,7 @@
Source: ikiwiki
Section: web
Priority: optional
-Build-Depends: perl, debhelper (>= 5)
+Build-Depends: perl, debhelper (>= 7.0.50)
Build-Depends-Indep: dpkg-dev (>= 1.9.0), libxml-simple-perl, libtext-markdown-perl | markdown, libtimedate-perl, libhtml-template-perl, libhtml-scrubber-perl, wdg-html-validator, libhtml-parser-perl, liburi-perl, perlmagick
Maintainer: Joey Hess <joeyh@debian.org>
Uploaders: Josh Triplett <josh@freedesktop.org>
@@ -12,9 +12,9 @@ Vcs-Browser: http://git.ikiwiki.info/?p=ikiwiki
Package: ikiwiki
Architecture: all
-Depends: ${perl:Depends}, libtext-markdown-perl | markdown, libhtml-scrubber-perl, libhtml-template-perl, libhtml-parser-perl, liburi-perl
+Depends: ${misc:Depends}, ${perl:Depends}, libtext-markdown-perl | markdown, libhtml-scrubber-perl, libhtml-template-perl, libhtml-parser-perl, liburi-perl
Recommends: gcc | c-compiler, libc6-dev | libc-dev, subversion | git-core (>= 1:1.5.0) | tla | bzr (>= 0.91) | mercurial | monotone (>= 0.38), libxml-simple-perl, libnet-openid-consumer-perl, liblwpx-paranoidagent-perl, libtimedate-perl, libcgi-formbuilder-perl (>= 3.05), libcgi-session-perl (>= 4.14-1), libmail-sendmail-perl, libauthen-passphrase-perl, libterm-readline-gnu-perl
-Suggests: viewvc | gitweb | viewcvs, libsearch-xapian-perl, xapian-omega (>= 1.0.5), librpc-xml-perl, libtext-wikiformat-perl, python, python-docutils, polygen, tidy, libhtml-tree-perl, libxml-feed-perl, libmailtools-perl, perlmagick, libfile-mimeinfo-perl, libcrypt-ssleay-perl, liblocale-gettext-perl (>= 1.05-1), libtext-typography-perl, libtext-csv-perl, libdigest-sha1-perl, graphviz, libnet-amazon-s3-perl, sparkline-php, texlive, dvipng, po4a (>= 0.35-1), gettext
+Suggests: viewvc | gitweb | viewcvs, libsearch-xapian-perl, xapian-omega (>= 1.0.5), librpc-xml-perl, libtext-wikiformat-perl, python, python-docutils, polygen, tidy, libhtml-tree-perl, libxml-feed-perl, libmailtools-perl, perlmagick, libfile-mimeinfo-perl, libcrypt-ssleay-perl, liblocale-gettext-perl (>= 1.05-1), libtext-typography-perl, libtext-csv-perl, libdigest-sha1-perl, graphviz, libnet-amazon-s3-perl, sparkline-php, texlive, dvipng, libtext-wikicreole-perl, po4a (>= 0.35-1), gettext
Conflicts: ikiwiki-plugin-table
Replaces: ikiwiki-plugin-table
Provides: ikiwiki-plugin-table
diff --git a/debian/copyright b/debian/copyright
index c5993edb2..0299d8a77 100644
--- a/debian/copyright
+++ b/debian/copyright
@@ -76,7 +76,7 @@ Files: htmltidy.pm
Copyright: © 2006 Faidon Liambotis
License: GPL-2+
-Files: htmlbalance.pm
+Files: htmlbalance.pm, underlay.pm
Copyright: © 2008 Simon McVittie <http://smcv.pseudorandom.co.uk/>
License: GPL-2+
@@ -122,6 +122,10 @@ Files: po.pm
Copyright: © 2008-2009 intrigeri <intrigeri@boum.org>
License: GPL-2+
+Files: 404.pm
+Copyright: © 2009 Simon McVittie <http://smcv.pseudorandom.co.uk/>
+License: GPL-2+
+
Files: doc/logo/*
Copyright: © 2006 Recai Oktaş <roktas@debian.org>
License: GPL-2+
diff --git a/debian/docs b/debian/docs
new file mode 100644
index 000000000..1936cc1d4
--- /dev/null
+++ b/debian/docs
@@ -0,0 +1 @@
+html
diff --git a/debian/link b/debian/link
new file mode 100644
index 000000000..cb3793191
--- /dev/null
+++ b/debian/link
@@ -0,0 +1,2 @@
+usr/share/ikiwiki/examples usr/share/doc/ikiwiki/examples
+usr/share/common-licenses/GPL-2 usr/share/doc/ikiwiki/html/GPL
diff --git a/debian/rules b/debian/rules
index 2434d92c8..0a7ce7a26 100755
--- a/debian/rules
+++ b/debian/rules
@@ -1,45 +1,19 @@
#!/usr/bin/make -f
+%:
+ dh $@
-build: build-stamp
-build-stamp:
- dh_testdir
- perl Makefile.PL PREFIX=/usr INSTALLDIRS=vendor
- $(MAKE) -C po
- $(MAKE)
- $(MAKE) test
- touch build-stamp
+override_dh_auto_configure:
+ # keeps it out of /usr/local
+ dh_auto_configure -- PREFIX=/usr
-clean:
- dh_testdir
- dh_testroot
- rm -f build-stamp
- perl Makefile.PL
- if [ -e Makefile ]; then $(MAKE) realclean; fi
- dh_clean
-
-binary-arch: build
+override_dh_compress:
+ # avoid compressing files in the doc wiki
+ dh_compress -Xhtml
-binary-indep: build
- dh_testdir
- dh_testroot
- dh_clean -k
- $(MAKE) pure_install DESTDIR=$(shell pwd)/debian/ikiwiki
- dh_installdocs html
- dh_link usr/share/ikiwiki/examples usr/share/doc/ikiwiki/examples
- dh_link usr/share/common-licenses/GPL-2 usr/share/doc/ikiwiki/html/GPL
- dh_installexamples
- dh_installchangelogs
- dh_compress -X html
- dh_fixperms
- dh_perl
- dh_installdeb
- dh_gencontrol
- dh_md5sums
- dh_builddeb
+override_dh_auto_clean:
+ # distclean moans about MANIFEST, this is quieter
+ if [ -e Makefile ]; then $(MAKE) realclean; fi
# Not intended for use by anyone except the author.
announcedir:
@echo ${HOME}/src/ikiwiki/doc/news
-
-binary: binary-indep binary-arch
-.PHONY: build clean binary-indep binary-arch binary
diff --git a/doc/bugs/Aggregated_Atom_feeds_are_double-encoded.mdwn b/doc/bugs/Aggregated_Atom_feeds_are_double-encoded.mdwn
new file mode 100644
index 000000000..fbdc58d5d
--- /dev/null
+++ b/doc/bugs/Aggregated_Atom_feeds_are_double-encoded.mdwn
@@ -0,0 +1,22 @@
+The Atom feed from <http://planet.collabora.co.uk/>
+get "double-encoded" (UTF-8 is decoded as Latin-1 and re-encoded as
+UTF-8) when aggregated with IkiWiki on Debian unstable. The RSS 1.0
+and RSS 2.0 feeds from the same Planet are fine. All three files
+are in fact correct UTF-8, but IkiWiki mis-parses the Atom.
+
+This turns out to be a bug in XML::Feed, or (depending on your point
+of view) XML::Feed failing to work around a design flaw in XML::Atom.
+When parsing RSS it returns Unicode strings, but when parsing Atom
+it delegates to XML::Atom's behaviour, which by default is to strip
+the UTF8 flag from strings that it outputs; as a result, they're
+interpreted by IkiWiki as byte sequences corresponding to the UTF-8
+encoding. IkiWiki then treats these as if they were Latin-1 and
+encodes them into UTF-8 for output.
+
+I've filed a bug against XML::Feed on CPAN requesting that it sets
+the right magical variable to change this behaviour. IkiWiki can
+also apply the same workaround (and doing so should be harmless even
+when XML::Feed is fixed); please consider merging my 'atom' branch,
+which does so. --[[smcv]]
+
+[[!tag patch done]]
diff --git a/doc/bugs/INC_location_not_set_correctly_in_make_test.mdwn b/doc/bugs/INC_location_not_set_correctly_in_make_test.mdwn
new file mode 100644
index 000000000..1d396c85b
--- /dev/null
+++ b/doc/bugs/INC_location_not_set_correctly_in_make_test.mdwn
@@ -0,0 +1,24 @@
+'make test' has the following errors:
+
+Can't locate Locale/gettext.pm in @INC (@INC contains: /home/turian/utils//lib/perl5/site_perl/5.8.8/i386-linux-thread-multi /home/turian/utils//lib/perl5/site_perl/5.8.8 . /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.7/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.6/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl/5.8.7 /usr/lib/perl5/site_perl/5.8.6 /usr/lib/perl5/site_perl/5.8.5 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.7/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.6/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.5/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl/5.8.7 /usr/lib/perl5/vendor_perl/5.8.6 /usr/lib/perl5/vendor_perl/5.8.5 /usr/lib/perl5/vendor_perl /usr/lib/perl5/5.8.8/i386-linux-thread-multi /usr/lib/perl5/5.8.8) at (eval 254) line 2.
+
+What's weird is that I already have gettext.pm:
+ /home/turian/utils/lib/perl5/lib/i386-linux-thread-multi/Locale/gettext.pm
+
+That directory should be part of @INC, because I have:
+ export PERL5LIB="$PERL5LIB:$UTILS/lib/perl5/lib/i386-linux-thread-multi/"
+in my .bashrc. However, /home/turian/utils/lib/perl5/lib/i386-linux-thread-multi/ does not appear in that @INC line.
+
+How do I get the proper @INC locations set?
+
+> Nothing in ikiwiki touches whatever PERL5DIR setting you may have,
+> so AFAICS, this must be some sort of local configuration problem.
+> How do
+> `/home/turian/utils//lib/perl5/site_perl/5.8.8/i386-linux-thread-multi`
+> and `/home/turian/utils//lib/perl5/site_perl/5.8.8` get into the
+> displayed `@INC`? The likely way seems to be that something in your
+> system sets PERL5LIB to contain those directories, clobbering
+> the earlier setting in your `.bashrc`.
+> --[[Joey]]
+
+[[!tag done]]
diff --git a/doc/bugs/PNG_triggers_UTF-8_error_in_MimeInfo.pm.mdwn b/doc/bugs/PNG_triggers_UTF-8_error_in_MimeInfo.pm.mdwn
new file mode 100644
index 000000000..0a1299993
--- /dev/null
+++ b/doc/bugs/PNG_triggers_UTF-8_error_in_MimeInfo.pm.mdwn
@@ -0,0 +1,25 @@
+If a PNG image matches the [[ikiwiki/PageSpec]] of an [[ikiwiki/directive/inline]] directive, the page throws the following error:
+
+> \[[!inline Error: Malformed UTF-8 character (fatal) at /usr/local/lib/perl5/site_perl/5.8.8/File/MimeInfo.pm line 120.]]
+
+Individual posts display fine, and moving the offending image outside the scope of the [[ikiwiki/directive/inline]] directive's PageSpec eliminates the error.
+
+> I tried to reproduce this with a random png and File::MimeInfo
+> version 0.15, but could not. The png was included in the generated feed
+> via an enclosure, as it should be; no warnings or errors.
+>
+> Looking at the source to File::MimeInfo and its changelog,
+> I'm pretty sure that this problem was fixed in version
+> 0.14:
+>> - Fixed bug with malformed utf8 chars in default() method
+>
+> The code involved in that fix looks like this:
+>
+>> no warnings; # warnings can be thrown when input not ascii
+>> if ($] < 5.008 or ! utf8::valid($line)) {
+>> use bytes; # avoid invalid utf8 chars
+>
+> I guess that your locally installed version of File::MimeInfo is older than
+> this. So closing this bug [[done]]. If you still see the problem with a current
+> version of File::MimeInfo, please reopen and include where I can get a png file
+> that triggers the problem. --[[Joey]]
diff --git a/doc/bugs/bzr_plugin_does_not_define_rcs__95__diff.mdwn b/doc/bugs/bzr_plugin_does_not_define_rcs__95__diff.mdwn
new file mode 100644
index 000000000..0294ec62e
--- /dev/null
+++ b/doc/bugs/bzr_plugin_does_not_define_rcs__95__diff.mdwn
@@ -0,0 +1,27 @@
+The bzr plugin does not seem to define the rcs_diff subroutine.
+I got the follow error after enabling recentchangesdiff:
+
+"Undefined subroutine &IkiWiki::Plugin::bzr::rcs_diff called at /usr/share/perl5/IkiWiki.pm line 1590."
+
+Grepping to verify absence of rcs_diff:
+
+ $ grep rcs_diff /usr/share/perl5/IkiWiki/Plugin/{git,bzr}.pm
+ /usr/share/perl5/IkiWiki/Plugin/git.pm: hook(type => "rcs", id => "rcs_diff", call => \&rcs_diff);
+ /usr/share/perl5/IkiWiki/Plugin/git.pm:sub rcs_diff ($) {
+ /usr/share/perl5/IkiWiki/Plugin/bzr.pm: hook(type => "rcs", id => "rcs_diff", call => \&rcs_diff);
+
+> I've added the minimal stub needed to avoid the crash, but for
+> recentchangesdiff to work, someone needs to implement `rcs_diff` for bzr.
+> This should be trivial if you know and use bzr. The function
+> is passed as a parameter the revno of interest and just needs
+> to ask bzr for the diff between that and the previous version. --[[Joey]]
+
+>> I'll see if I can make a patch. The bzr command to get the revision would
+>> look like this: bzr diff -r revno:$PREV:/path/to/src..revno:$REVNO:/path/to/src
+>> (where $PREV would be $REVNO minus one). --liw
+
+>> Sorry, that was not entirely correct, for some reason. I'll add a patch below that
+>> seems to work. I am unfortunately not ready to set up a git repository that you
+>> can pull from. --liw
+
+[[done]] --[[Joey]]
diff --git a/doc/bugs/cannot_reliably_use_meta_in_template.mdwn b/doc/bugs/cannot_reliably_use_meta_in_template.mdwn
index 046f40a7e..de6c227f6 100644
--- a/doc/bugs/cannot_reliably_use_meta_in_template.mdwn
+++ b/doc/bugs/cannot_reliably_use_meta_in_template.mdwn
@@ -4,6 +4,8 @@ pass, which does not look at the template a page includes, it will not be
seen then, and so other pages that use the page title probably won't use
it. (Barring luck with build order.)
+Update: This also affects using tags from templates.
+
There is a simple fix for this, just add `scan => 1` when registering the
preprocess hook for the template plugin.
@@ -12,3 +14,5 @@ scan pass, every page containing a template will cause the template to be
loaded and filled out. This can be some serious additional overhead.
--[[Joey]]
+
+[[done]]
diff --git a/doc/bugs/html5_support.mdwn b/doc/bugs/html5_support.mdwn
new file mode 100644
index 000000000..41f955e51
--- /dev/null
+++ b/doc/bugs/html5_support.mdwn
@@ -0,0 +1,47 @@
+Some elements of [HTML5](http://www.whatwg.org/specs/web-apps/current-work/multipage/) can be safely supported by ikiwiki. There are [several differences between HTML4 and HTMl5](http://www.w3.org/TR/html5-diff/). Unsupported new elements _should degrade gracefully_.
+
+> In the `origin/html` branch, there is an old work in progress to make
+> ikiwiki use html 4 instead of xhtml. If that could be brought forward and
+> finished then the plan has been to switch ikiwiki over to doing html 4.
+> I don't think it makes sense to try to make it support both xhtml and
+> html, it would complicate the code for no benefit.
+>
+> I think that is the best route toward supporting html 5 as well. Get
+> ikiwiki doing html 4 first and the changes needed to get to 5 from there
+> should be small. Probably just changing some doctypes and a few other
+> small changes which could be kept in a branch, or even shipped in ikiwiki
+> mainline as an alternate set of templates. Some of the changes, like
+> supporting new html 5 tags in the htmlscrubber, can be done in mainline.
+> (Like was already done for the html 5 video and audio tags.)
+>
+> This approach seems much more maintainable going foward than rolling a
+> html 5 branch immediatly and trying to keep that continually up-to-date
+> with mainline ikiwiki that is still using xhtml. --[[Joey]]
+
+However as an [early adopter](http://en.wikipedia.org/wiki/Early_adopter) I would like to start using HTML5 as much as possible. The more pragmatic solution would be to use elements supported by the browsers of your readership I guess. I'm following other early adopters like [Anne](http://annevankesteren.nl/) for clues on how to proceed.
+
+* [Initial patch](http://git.webconverger.org/?p=ikiwiki;a=commit;h=2e2bb3f74f5000b1269142d6f9bdf1bcb4075ca4)
+
+> I can't figure out how to pull from this repository.
+>> Sorry! I have fixed the cloneurl file to read `git clone git://webconverger.org/git/ikiwiki`
+
+I'm unsure how to turn off the test validation by the very old [wdg-html-validator](http://packages.qa.debian.org/w/wdg-html-validator.html). So I have been unable to test my initial patches as I can't build ikiwiki. I would like to know how to edit the rules/Makefile to temporarily disable this.
+
+> Don't run ¨make test" ... --[[Joey]]
+>> I don't quite grok debhelper7 [rules](http://git.ikiwiki.info/?p=ikiwiki;a=blob;f=debian/rules).
+
+>>> Well, ok :-) `rm t/html.t` or, add an empty `override_dh_auto_test` rule.
+>>> --[[Joey]]
+
+[validator.nu](http://validator.nu/) incidentally is **the** HTML5 validator, however it is almost impossible to sanely introduce as a build dependency because of its insane Java requirements. :( I test locally via [cURL](http://wiki.whatwg.org/wiki/IDE), though Debian packages cannot be built with a network dependency.
+
+# Notes
+
+* the [time element](http://www.whatwg.org/specs/web-apps/current-work/multipage/text-level-semantics.html#the-time-element) ideally needs the datatime= attribute set with iso8601 time
+* I suspect the migration to the new semantic elements of HTML5 like article, header & footer to take some time, due to browser support. Though they sure make the template code look much nicer.
+* `<br>` and too many `<div>`s usually indicates poor semantics.
+ > YMMV, but I tend to find that kind of concern counterproductive.
+ > --[[Joey]]
+
+* Many of the header `<span>`s should be proper [header elements](http://www.whatwg.org/specs/web-apps/current-work/multipage/semantics.html#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements)
+ > See [[todo/Option_to_make_title_an_h1__63__]] for why not. --[[Joey]]
diff --git a/doc/bugs/pagetitle_function_does_not_respect_meta_titles.mdwn b/doc/bugs/pagetitle_function_does_not_respect_meta_titles.mdwn
index cccd53d05..4a83f9ec8 100644
--- a/doc/bugs/pagetitle_function_does_not_respect_meta_titles.mdwn
+++ b/doc/bugs/pagetitle_function_does_not_respect_meta_titles.mdwn
@@ -2,8 +2,127 @@ The `IkiWiki::pagetitle` function does not respect title changes via `meta.title
--[[madduck]]
-> Agreed. [[todo/using_meta_titles_for_parentlinks]] contains a beginning of
-> solution. A few quick notes about it:
+----
+
+It is possible to set a Page-Title in the meta-plugin, but that one isn't
+reused in parentlinks. This [[patch]] may fix it.
+
+<ul>
+<li> I give pagetitle the full path to a page.
+<li> I redefine the 'pagetitle'-sub to deal with it.
+<li> to maintain compatibility for IkiWikis without the meta-plugin, i added a 'basename' to the Original-pagetitle.
+</ul>
+
+<pre>
+diff -c /usr/share/perl5/IkiWiki/Render.pm.distrib /usr/share/perl5/IkiWiki/Render.pm
+*** /usr/share/perl5/IkiWiki/Render.pm.distrib Wed Aug 6 07:34:55 2008
+--- /usr/share/perl5/IkiWiki/Render.pm Tue Aug 26 23:29:32 2008
+***************
+*** 102,108 ****
+ $template->param(
+ title => $page eq 'index'
+ ? $config{wikiname}
+! : pagetitle(basename($page)),
+ wikiname => $config{wikiname},
+ content => $content,
+ backlinks => $backlinks,
+--- 102,108 ----
+ $template->param(
+ title => $page eq 'index'
+ ? $config{wikiname}
+! : pagetitle($page),
+ wikiname => $config{wikiname},
+ content => $content,
+ backlinks => $backlinks,
+
+diff -c /usr/share/perl5/IkiWiki/Plugin/parentlinks.pm.distrib /usr/share/perl5/IkiWiki/Plugin/parentlinks.pm
+*** /usr/share/perl5/IkiWiki/Plugin/parentlinks.pm.distrib Wed Aug 6 07:34:55 2008
+--- /usr/share/perl5/IkiWiki/Plugin/parentlinks.pm Tue Aug 26 23:19:43 2008
+***************
+*** 44,50 ****
+ "height_$height" => 1,
+ };
+ $path.="/".$dir;
+! $title=IkiWiki::pagetitle($dir);
+ $i++;
+ }
+ return @ret;
+--- 44,50 ----
+ "height_$height" => 1,
+ };
+ $path.="/".$dir;
+! $title=IkiWiki::pagetitle($path);
+ $i++;
+ }
+ return @ret;
+
+diff -c /usr/share/perl5/IkiWiki.pm.distrib /usr/share/perl5/IkiWiki.pm
+*** /usr/share/perl5/IkiWiki.pm.distrib Wed Aug 6 07:48:34 2008
+--- /usr/share/perl5/IkiWiki.pm Tue Aug 26 23:47:30 2008
+***************
+*** 792,797 ****
+--- 792,799 ----
+ my $page=shift;
+ my $unescaped=shift;
+
++ $page=basename($page);
++
+ if ($unescaped) {
+ $page=~s/(__(\d+)__|_)/$1 eq '_' ? ' ' : chr($2)/eg;
+ }
+
+diff -c /usr/share/perl5/IkiWiki/Plugin/meta.pm.distrib /usr/share/perl5/IkiWiki/Plugin/meta.pm
+*** /usr/share/perl5/IkiWiki/Plugin/meta.pm.distrib Wed Aug 6 07:34:55 2008
+--- /usr/share/perl5/IkiWiki/Plugin/meta.pm Tue Aug 26 23:30:58 2008
+***************
+*** 3,8 ****
+--- 3,9 ----
+ package IkiWiki::Plugin::meta;
+
+ use warnings;
++ no warnings 'redefine';
+ use strict;
+ use IkiWiki 2.00;
+
+***************
+*** 289,294 ****
+--- 290,319 ----
+ }
+ }
+
++ sub IkiWiki::pagetitle ($;$) {
++ my $page=shift;
++ my $unescaped=shift;
++
++ if ($page =~ m#/#) {
++ $page =~ s#^/##;
++ $page =~ s#/index$##;
++ if ($pagestate{"$page/index"}{meta}{title}) {
++ $page = $pagestate{"$page/index"}{meta}{title};
++ } else {
++ $page = IkiWiki::basename($page);
++ }
++ }
++
++ if ($unescaped) {
++ $page=~s/(__(\d+)__|_)/$1 eq '_' ? ' ' : chr($2)/eg;
++ }
++ else {
++ $page=~s/(__(\d+)__|_)/$1 eq '_' ? ' ' : "&#$2;"/eg;
++ }
++
++ return $page;
++ }
++
+ package IkiWiki::PageSpec;
+
+ sub match_title ($$;@) {
+
+</pre>
+
+----
+
+> A few quick notes about it:
> - Using <code>inline</code> would avoid the redefinition + code duplication.
> - A few plugins would need to be upgraded.
@@ -16,3 +135,99 @@ The `IkiWiki::pagetitle` function does not respect title changes via `meta.title
>> Thus tagging [[patch]]. --[[intrigeri]]
>>
>>> Joey, please consider merging my `meta` branch. --[[intrigeri]]
+
+So, looking at your meta branch: --[[Joey]]
+
+* Inter-page dependencies. If page A links to page B, and page B currently
+ has no title, then A will display the link as "B". Now page B is modified
+ and a title is added. Nothing updates "A".
+ The added overhead of rebuilding every page that links to B when B is
+ changed (as the `postscan` hook of the po plugin does) is IMHO a killer.
+ That could be hundreds or thousands of pages, making interactive editing
+ way slow. This is probably the main reason I had not attempted this whole
+ thing myself. IMHO this calls for some kind of intellegent dependency
+ handler that can detect when B's title has changed and only rebuild pages
+ that link to B in that case.
+* Looks like some plugins that use `pagetitle` to format it for display
+ were not changed to use `nicepagetitle` (for example, rename).
+ But most of those callers intend to display the page name
+ as a title, but including the parent directories in the path. (Ie,
+ "renaming foo/page title to bar/page title" --
+ you want to know it's moved from foo to bar.) `nicepagetitle` does not
+ allow doing that since it always takes the `basename`.
+* I don't like the name `nicepagetitle`. It's not very descriptive, is it?
+ And it seems very confusing to choose whether to use the "nice" or original
+ version. My hope is that adding a second function is unnecessary.
+ As I understand it, you added a new function for two reasons:
+ 1) It needs the full page name, not basename.
+ 2) `titlepage(pagetitle($page))` reversability.
+
+ 1) If you look at all the callers
+ Of `pagetitle` most of them pass a complete page name, not just the
+ basename. In most cases `pagetitle` is used to display the full name
+ of the page, including any subdirectory it's in. So why not just make
+ it consitently be given the full name of the page, with another argument
+ specifying if we want to get back just the base name.
+
+ 2) I can't find any code that actually uses the reversability like that.
+ The value passed to `titlepage` always comes from some external
+ source. Unless I missed one.
+* The use of `File::Spec->rel2abs` is a bit scary.
+* Does it really make sense to call `pagetitle` on the meta title
+ in meta's `nicepagetitle`? What if the meta title is something like
+ "foo_bar" -- that would be changed to "foo bar".
+* parentlinks is changed to use `nicepagetitle(bestlink($page, $path))`.
+ Won't `bestlink` return "" if the parent page in question does not exist?
+* `backlinks()` is changed to add an additional `title` field
+ to the hash returned, but AFAICS this is not used in the template.
+* Shouldn't `Render.pm` use nicepagetitle when getting the title for the
+ page template? Then meta would not need to override the title in the
+ `pagetemplate` hook. (Although this would eliminate handling of
+ `title_overridden` -- but that is little used and would not catch
+ all the other ways titles can be overridden with this patch anyway.)
+
+> I'm not a reviewer or anything, but can I chime in on changes to pagetitle?
+> I don't think having meta-titles in wikilinks and the parentlinks path by
+> default is necessarily a good thing. I don't consider the meta-title of a page
+> as used in `<title>` to be the same thing as the short title you
+> want in those contexts - IMO, the meta-title is the "formal" title of the page,
+> enough to identify it with no other context, and frequently too long to be used
+> as a link title or a parentlink, whereas the parentlinks title in particular
+> should be some abbreviated form that's enough to identify it in context.
+> [tbm](http://www.cyrius.com/) expressed a similar opinion when I was discussing
+> ikiwiki with him at the weekend.
+>
+> It's a matter of taste whether wikilinks are "like a parentlink" or "like a
+> `<title>`"; I could be persuaded either way on that one.
+>
+> An example from my site: [this page](http://www.pseudorandom.co.uk/2004/debian/ipsec/)
+> is the parent of [this page](http://www.pseudorandom.co.uk/2004/debian/ipsec/wifi/)
+> with a title too long to use in the latter's parentlinks; I think the titles of
+> both those pages are too long to use as wikilink text too. Similarly, tbm's page
+> about [Debian on Orion devices from Buffalo](http://www.cyrius.com/debian/orion/buffalo/)
+> can simply be called "Buffalo" in context.
+>
+> Having a `\[[!meta abbrev="..."]]` that took precedence over title
+> in parentlinks and possibly wikilinks might be a good way to fix this? Or if your
+> preference goes the other way, perhaps a `\[[!meta longtitle=""]]` could take
+> precedence when generating the `<title>` and the title that comes after the
+> parentlinks. --[[smcv]]
+
+>> I think you've convinced me. (I had always had some doubt in my mind as
+>> to whether using titles in all these other places would make sense.)
+>>
+>> Instead of meta abbrev, you could have a meta pagename that
+>> overrides the page name displayed everywhere (in turn overridden by
+>> meta title iff the page's title is being displayed). But is this complexity
+>> needed? We have meta redir, so if you want to change the name of a page,
+>> you can just rename it, and put in a stub redirection page so links
+>> still work.
+>>
+>> This leaves the [[plugins/contrib/po]] plugin, which really does need
+>> a way to change the displayed page name everywhere, and at least a
+>> subset of the changes in the meta branch are needed to support that.
+>>
+>> (This would also get around my concern about inter-page dependency
+>> handling, since po contains a workaround for that, and it's probably
+>> acceptable to use potentially slow methods to handle this case.)
+>> --[[Joey]]
diff --git a/doc/bugs/remove_orphaned_sparkline-php_from_Suggests.mdwn b/doc/bugs/remove_orphaned_sparkline-php_from_Suggests.mdwn
new file mode 100644
index 000000000..b4e2a1501
--- /dev/null
+++ b/doc/bugs/remove_orphaned_sparkline-php_from_Suggests.mdwn
@@ -0,0 +1,20 @@
+Hi!
+
+How about to replace sparkline-php from Suggests by a better alternative?
+
+I would like to file a RM bug to get it out of archive. Do you have a better alternative for it? PHP has a lot of them..
+
+Thanks
+
+> sparline-php is orphaned *in Debian*. Upstream, is has seen activity as
+> recently as 11 months ago.
+>
+> I don't know of a better alternative. I looked at the perl sparkline
+> stuff in CPAN and is was bad enough that the pain of using php from this
+> perl program was a better alternative.
+>
+> Anyway, it works great; maintaining the sparkline-php package in Debian
+> would certianly be much less work than finding some alternative and
+> rewriting the ikiwiki code to use it, *and* packaging that alternative
+> and maintaining it in Debian. So your suggestion doesn't make a lot of
+> sense; Debian should just find a maintainer for sparkline-php. --[[Joey]]
diff --git a/doc/bugs/shortcut_plugin_will_not_work_without_shortcuts.mdwn.mdwn b/doc/bugs/shortcut_plugin_will_not_work_without_shortcuts.mdwn.mdwn
new file mode 100644
index 000000000..5cc669106
--- /dev/null
+++ b/doc/bugs/shortcut_plugin_will_not_work_without_shortcuts.mdwn.mdwn
@@ -0,0 +1,33 @@
+On my initial ikiwiki -setup auto.setup, I get the following error:
+
+ shortcut plugin will not work without shortcuts.mdwn
+ /home/turian/utils/etc/ikiwiki/auto.setup: ikiwiki --refresh --setup /home/turian/iki.setup failed at IkiWiki/Setup/Automator.pm line 105.
+
+
+This is using the latest git pull of ikiwiki.
+I am not sure why it is not finding shortcuts.mdwn. -- [[JosephTurian]]
+
+> The error, and the weird paths suggest to me that you
+> have installed ikiwiki in a strange way, and it is failing
+> to find its basewiki underlay. The `$installdir` is
+> hardcoded into IkiWiki.pm at build time, based on the PREFIX
+> setting (see README).
+>
+> If that's not set right, you'll have other problems than just this one,
+> so I suggest you check how you installed ikiwiki.
+>
+> Anyway, I've made the shortcut plugin only warn about this..
+> --[[Joey]]
+
+> > I have
+> > $installdir="/home/turian/utils/"
+> > and the underlay dir is set to:
+> > "$installdir/share/ikiwiki/basewiki",
+> > which does contain shortcuts.mdwn. So I am not sure why it is not finding it.
+> > I am grappling with installing ikiwiki in a user account, and would like to get the directories set up correctly.
+> > How can I debug this issue further?
+
+>>>> Why don't you strace it and look at where it's looking for
+>>>> shortcuts.mdwn. --[[Joey]]
+
+>>>>>> Hmm, so change the PERL5LIB seemed to fix this. [[Done]].
diff --git a/doc/bugs/support_for_openid2_logins.mdwn b/doc/bugs/support_for_openid2_logins.mdwn
new file mode 100644
index 000000000..f78d50c3c
--- /dev/null
+++ b/doc/bugs/support_for_openid2_logins.mdwn
@@ -0,0 +1,10 @@
+I have several complaints that users cannot contribute to my ikiwiki instances since they only have OpenID logins that support OpenID2. E.g. Yahoo!'s OpenID only supports 2.0+
+
+This is not the fault of ikiwiki, though the problem lies within the [perl openid consumer](http://packages.qa.debian.org/libn/libnet-openid-consumer-perl.html) in Debian which is a 1.x implementation AFAIK.
+
+I've contacted JanRain who have pointed me to:
+
+* [OpenID4Perl](http://code.sxip.com/openid4perl/)
+* Some [work](http://code.sixapart.com/svn/openid/trunk/perl/) by David Recordon
+
+However both Perl OpenID 2.x implementations have not been released and are incomplete implementations. :(
diff --git a/doc/bugs/tags__44___backlinks_and_3.x.mdwn b/doc/bugs/tags__44___backlinks_and_3.x.mdwn
new file mode 100644
index 000000000..4fe9a4723
--- /dev/null
+++ b/doc/bugs/tags__44___backlinks_and_3.x.mdwn
@@ -0,0 +1,34 @@
+I think there might be an issue in the backlinks calculation in ikiwiki 3.04.
+
+I've just migrated to 3.04. In doing so, the following pagespec
+
+> "log/* and !link(tag/aggregation) and !link(tag/draft) and !*/Discussion"
+
+...started matching pages which contained
+
+> \[\[!template draft\]\]
+
+The page templates/draft.mdwn contains (amongst some markup)
+
+> \[\[!tag draft \]\]
+
+Prior to migration, the pagespec definitely took effect post-transclusion.
+
+An example: <http://jmtd.net/log/too_much_debconf_a_bad_thing/> contains the
+template inclusion, which can be seen to have worked due to markup at the
+bottom of the page. It even includes a "Tags: draft" link at the bottom.
+
+Strangely, <http://jmtd.net/tag/draft/> does not contain backlinks to pages
+which are tagged using the procedure above.
+
+After the first rebuild, it's broken, after a subsequent refresh, it is fixed.
+I've reproduced this twice (but assumed I'd done something wrong the first
+time, so went ahead and migrated live, spamming planet debian in the process
+:(). I will try and put together a testcase. -- [[users/Jon]], 2009/02/17
+
+> Looks like the same problem as
+> [[cannot_reliably_use_meta_in_template]]. AFAIK, this has never worked
+> reliably, although the linked page has a simple, though potentially
+> expensive fix. --[[Joey]]
+
+> fix made, [[done]] --[[Joey]]
diff --git a/doc/css_market.mdwn b/doc/css_market.mdwn
index 26720196f..8b7e17585 100644
--- a/doc/css_market.mdwn
+++ b/doc/css_market.mdwn
@@ -1,8 +1,11 @@
[[!meta title="CSS Market"]]
-User contributed stylesheet files for ikiwiki. Feel free to add your own
-stylesheets here. (Upload as wiki pages; wiki gnomes will convert them to css
-files..)
+User contributed stylesheet files for ikiwiki. Unless otherwise noted,
+these style sheets can be installed by copying them into your wiki's source
+dir with a filename of `local.css`.
+
+Feel free to add your own stylesheets here. (Upload as wiki pages; wiki
+gnomes will convert them to css files..)
* **[[css_market/zack.css]]**, contributed by [[StefanoZacchiroli]],
customized mostly for *blogging purposes*, can be seen in action on
@@ -51,6 +54,10 @@ files..)
* **[contraste.css][4]**, contributed by [[Blanko]]. Can be seen on [Contraste Demo][5]. Local.css and templates available [here][6].
+* **[[css_market/actiontabs.css]]**, contributed by [[svend]]. This style sheet displays
+ the action list (Edit, RecentChanges, etc.) as tabs.
+ [[!meta stylesheet="actiontabs"]]
+
If your web browser allows selecting between multiple stylesheets, this
page can be viewed using many of the stylesheets above. For example, if
using Epiphany with the Select Stylesheet extension enabled, use View ->
diff --git a/doc/css_market/actiontabs.css b/doc/css_market/actiontabs.css
new file mode 100644
index 000000000..a1dc47e92
--- /dev/null
+++ b/doc/css_market/actiontabs.css
@@ -0,0 +1,122 @@
+/* ikiwiki local style sheet */
+
+/* Add local styling here, instead of modifying style.css. */
+
+a {
+ text-decoration: none;
+ color: #005a9c;
+}
+
+a:hover {
+ text-decoration: underline;
+}
+
+
+hr {
+ border-style: none;
+ background-color: #999;
+ height: 1px;
+}
+
+code, pre {
+ background: #eee;
+}
+
+pre {
+ padding: .5em;
+}
+
+body {
+ margin: 0;
+ padding: 0;
+ font-family: sans-serif;
+ color: black;
+ background: white;
+}
+
+.pageheader {
+ margin: 0;
+ padding: 1em 2em 0 2em;
+ background: #eee;
+ border-color: #999;
+ border-style: none none solid none;
+ border-width: 1px;
+}
+
+.header {
+ font-size: 100%;
+ font-weight: normal;
+}
+
+.title {
+ display: block;
+ margin-top: .2em;
+ font: 140% sans-serif;
+ text-transform: capitalize;
+}
+
+.actions {
+ text-align: right;
+ padding: 0;
+}
+
+#content, #comments, #footer {
+ margin: 1em 2em;
+}
+
+#pageinfo {
+ border-color: #999;
+}
+
+.inlinepage {
+ margin: .4em 0;
+ padding: .4em 0;
+ border-style: none;
+ border-top: 1px solid #aaa;
+}
+
+.inlineheader {
+ font-size: 120%;
+ font-weight: normal;
+}
+
+h1 { font: 120% sans-serif }
+h2 { font: bold 100% sans-serif }
+h3 { font: italic 100% sans-serif }
+h4, h5, h6 { font: small-caps 100% sans-serif }
+
+/* Smaller headings for inline pages */
+.inlinepage h1 { font-size: 110% }
+.inlinepage h2 { font-size: 100% }
+.inlinepage h3 { font-size: 100% }
+
+.pageheader .actions ul {
+ border-style: none
+}
+
+.actions ul {
+ font-size: 75%;
+ padding: 0;
+ border-style: none;
+}
+
+.actions ul li a {
+ text-decoration: none;
+}
+
+.actions ul li {
+ margin: 0;
+ padding: .1em .5em 0 .5em;
+ background: white;
+ border-color: #999;
+ border-style: solid solid none solid;
+ border-width: 1px;
+}
+
+div.recentchanges {
+ border-style: none;
+}
+
+.pagecloud {
+ width: auto;
+}
diff --git a/doc/download.mdwn b/doc/download.mdwn
index 067938f87..507b250a5 100644
--- a/doc/download.mdwn
+++ b/doc/download.mdwn
@@ -10,12 +10,7 @@ Installation steps and requirements are listed on the [[install]] page.
## packages
-To install with apt, if using Debian (since 4.0), or Ubuntu (since 6.10):
-[[!template id=note text="""
-Note that Debian 4.0 and especially Ubuntu 6.10 contain older versions of
-ikiwiki, there have been lots of enhancements and bug fixes since those
-versions.
-"""]]
+To install with apt, if using Debian or Ubuntu:
apt-get install ikiwiki
diff --git a/doc/examples/softwaresite/index.mdwn b/doc/examples/softwaresite/index.mdwn
index e2d180d1f..e03a969a0 100644
--- a/doc/examples/softwaresite/index.mdwn
+++ b/doc/examples/softwaresite/index.mdwn
@@ -1,7 +1,7 @@
FooBar is an amazing example program that does not exist. Use it for all
your example program needs. This is its wiki.
-* [[download]]
+* **[[download]]**
* [[news]]
* [[documentation|doc]]
* [[bugs]]
diff --git a/doc/forum/Migrating_old_repository_to_new_ikiwiki_system__63__.mdwn b/doc/forum/Migrating_old_repository_to_new_ikiwiki_system__63__.mdwn
new file mode 100644
index 000000000..fe67e6aba
--- /dev/null
+++ b/doc/forum/Migrating_old_repository_to_new_ikiwiki_system__63__.mdwn
@@ -0,0 +1,58 @@
+How do I setup an old ikiwiki repository on a new system?
+
+I have a git repository from an old ikiwiki system.
+I reformatted that hard drive, but saved the repository.
+
+I copied it the repository to my new system, which is now the "master" host.
+I installed ikiwiki on the new system.
+
+How do I set up an ikiwiki system using a pre-existing repository (instead of creating a new one)? --[[JosephTurian]]
+
+> Well, if you have:
+> * A git repository of the wiki
+> * A setup file for the wiki
+>
+> Then you should:
+>
+> 1. Manually set up a bare git repository, and push
+> your backed up repository to it.
+> 2. `git clone` from the bare git repository to
+> recreate the ikiwiki srcdir
+> 3. `git clone` from the bare git repository a second time,
+> to create a checkout you can manually edit (optional)
+> 4. run `ikiwiki --getctime --setup your.setup`
+> The getctime will ensure page creation times are accurate
+> by putting the info out of the git history,
+> and only needs to be done once.
+>
+> If you preserved your repository, but not the setup file,
+> the easiest way to make one is probably to run
+> `ikiwiki -dumpsetup` and edit the setup file. --[[Joey]]
+
+> > I get the following errors after running ikiwiki setup:
+
+ shortcut plugin will not work without shortcuts.mdwn
+ shortcut plugin will not work without shortcuts.mdwn
+ successfully generated /home/turian/public_html/iki/ikiwiki.cgi
+ shortcut plugin will not work without shortcuts.mdwn
+ successfully generated /home/turian/repos/iki.git/hooks/post-update
+ Can't stat /usr/share/ikiwiki/basewiki/../javascript: No such file or directory
+ at /home/turian/utils//lib/perl5/site_perl/5.8.8//IkiWiki/Plugin/autoindex.pm line 60
+ Can't stat /usr/share/ikiwiki/basewiki/../smiley: No such file or directory
+ at /home/turian/utils//lib/perl5/site_perl/5.8.8//IkiWiki/Plugin/autoindex.pm line 60
+ Can't stat /usr/share/ikiwiki/basewiki: No such file or directory
+ at /home/turian/utils//lib/perl5/site_perl/5.8.8//IkiWiki/Plugin/autoindex.pm line 60
+ Can't stat /usr/share/ikiwiki/basewiki/../javascript: No such file or directory
+ at /home/turian/utils//lib/perl5/site_perl/5.8.8//IkiWiki/Render.pm line 320
+ Can't stat /usr/share/ikiwiki/basewiki/../smiley: No such file or directory
+ at /home/turian/utils//lib/perl5/site_perl/5.8.8//IkiWiki/Render.pm line 320
+ Can't stat /usr/share/ikiwiki/basewiki: No such file or directory
+ at /home/turian/utils//lib/perl5/site_perl/5.8.8//IkiWiki/Render.pm line 320
+ internal error: smileys.mdwn cannot be found in /home/turian/iki or underlay
+
+> > How do I resolve these errors? I have my PERL5LIB location set correctly.
+
+>>> Well, that's unrelated to the original question, but
+>>> I guess you should set `underlaydir` in your setup file to
+>>> point to whereever you have installed the basewiki directory.
+>>> --[[Joey]]
diff --git a/doc/forum/chinese_character_problem.mdwn b/doc/forum/chinese_character_problem.mdwn
index e68c2c726..aea55703f 100644
--- a/doc/forum/chinese_character_problem.mdwn
+++ b/doc/forum/chinese_character_problem.mdwn
@@ -15,3 +15,7 @@ Thanks.
I have installed locales-all and locale -a shows that zh_CN.UTF-8 is installed(there is no /etc/local.gen file though). then I enabled this line "locale => 'zh_CN.UTF-8'" in my wiki setup and -setup again. but that generated lots error messages "Missing constant domain at (eval 30) line 3"
sorry being a n00b on this thing what else can I do?
+
+> See [[bugs/Missing_constant_domain_at_IkiWiki.pm_line_842]].
+> Looks like you need to upgrade to a newer version of
+> [[!cpan Locale::gettext]] --[[Joey]]
diff --git a/doc/forum/usedirs___38___indexpages_using_problem.mdwn b/doc/forum/usedirs___38___indexpages_using_problem.mdwn
new file mode 100644
index 000000000..1ca95cc88
--- /dev/null
+++ b/doc/forum/usedirs___38___indexpages_using_problem.mdwn
@@ -0,0 +1,12 @@
+My ikiwiki setup file configed like:
+
+ usedirs => 0,
+ indexpages => 1,
+
+I create a directory and some .mdwn source file /Whatis/index.mdwn and /Whatis/OSS.mdwn . The html file ikiwiki generated is
+/Whatis/index.html and /Whatis/OSS.html .
+
+But in the page [OSS.html](http://atoz.org.cn/Whatis/OSS.html) , the auto generated link (on the page top)
+to “Whatis” is /Whatis.html file , not to /Whatis/index.html. So the link to “Whatis” is fail .
+
+Is it a bug , and how can I do for that ?
diff --git a/doc/git.mdwn b/doc/git.mdwn
index e9c2e040f..8a89546cf 100644
--- a/doc/git.mdwn
+++ b/doc/git.mdwn
@@ -37,6 +37,7 @@ into [[Joey]]'s working tree. This is recommended. :-)
* [[intrigeri]] `git://gaffer.ptitcanardnoir.org/ikiwiki.git`
* [[gmcmanus]] `git://github.com/gmcmanus/ikiwiki.git`
* [[jelmer]] `git://git.samba.org/jelmer/ikiwiki.git`
+* [[hendry]] `git://webconverger.org/git/ikiwiki`
## branches
diff --git a/doc/ikiwiki/directive/meta.mdwn b/doc/ikiwiki/directive/meta.mdwn
index 74db31943..f29a118bf 100644
--- a/doc/ikiwiki/directive/meta.mdwn
+++ b/doc/ikiwiki/directive/meta.mdwn
@@ -139,6 +139,15 @@ Supported fields:
pages unchanged and avoid_flooding_aggregators
(see [[!iki tips/howto_avoid_flooding_aggregators]]).
+* updated
+
+ Specifies a fake modification time for a page, to be output into RSS and
+ Atom feeds. This is useful to avoid flooding aggregators that sort by
+ modification time, like Planet: for instance, when editing an old blog post
+ to add tags, you could set `updated` to be one second later than the original
+ value. The date/time can be given in any format that
+ [[!cpan TimeDate]] can understand, just like the `date` field.
+
If the field is not one of the above predefined fields, the metadata will be
written to the generated html page as a &lt;meta&gt; header. However, this
won't be allowed if the [[!iki plugins/htmlscrubber desc=htmlscrubber]] plugin is enabled,
diff --git a/doc/ikiwiki/pagespec.mdwn b/doc/ikiwiki/pagespec.mdwn
index 86abe5745..b476bde1f 100644
--- a/doc/ikiwiki/pagespec.mdwn
+++ b/doc/ikiwiki/pagespec.mdwn
@@ -25,6 +25,7 @@ match all pages except for Discussion pages and the SandBox:
Some more elaborate limits can be added to what matches using these functions:
* "`link(page)`" - match only pages that link to a given page (or glob)
+* "`tagged(tag)`" - match pages that are tagged or link to the given tag (or glob)
* "`backlink(page)`" - match only pages that a given page links to
* "`creation_month(month)`" - match only pages created on the given month
* "`creation_day(mday)`" - or day of the month
@@ -65,7 +66,7 @@ More complex expressions can also be created, by using parentheses for
grouping. For example, to match pages in a blog that are tagged with either
of two tags, use:
- blog/* and (link(tag/foo) or link(tag/bar))
+ blog/* and (tagged(foo) or tagged(bar))
Note that page names in PageSpecs are matched against the absolute
filenames of the pages in the wiki, so a pagespec "foo" used on page
diff --git a/doc/ikiwikiusers.mdwn b/doc/ikiwikiusers.mdwn
index 989a425c6..8dea61f6a 100644
--- a/doc/ikiwikiusers.mdwn
+++ b/doc/ikiwikiusers.mdwn
@@ -1,5 +1,5 @@
-Projects
-========
+Projects & Organizations
+========================
* [This wiki](http://ikiwiki.info) (of course!)
* [Planet Debian upstream](http://updo.debian.net/)
@@ -40,10 +40,15 @@ Projects
* [The Walden Effect](http://www.waldeneffect.org/)
* The [Fortran Wiki](http://fortranwiki.org/)
* [Monotone](http://monotone.ca/wiki/FrontPage/)
+* The support pages for [Trinity Centre for High Performance Computing](http://www.tchpc.tcd.ie/support/)
+* [St Hugh of Lincoln Primary School in Surrey](http://hugh.vm.bytemark.co.uk/)
+* [Pigro Network](http://www.pigro.net) is running a hg based ikiwiki. (And provides ikiwiki hosting for $10/m.)
+* [Cosin Homepage](http://cosin.ch) uses an Ikiwiki with a subversion repository.
Personal sites and blogs
========================
+* [Skirv's Wiki](http://wiki.killfile.org) - formerly Skirv's Homepage
* [[Joey]]'s [homepage](http://kitenet.net/~joey/), including his weblog
* [Kyle's MacLea Genealogy wiki](http://kitenet.net/~kyle/family/wiki) and [Livingstone and MacLea Emigration Registry](http://kitenet.net/~kyle/family/registry)
* [Ulrik's personal web page](http://kaizer.se/wiki/)
@@ -107,11 +112,12 @@ Personal sites and blogs
* [[Adam_Trickett|ajt]]'s home intranet/sanbox system ([Internet site & blog](http://www.iredale.net/) -- not ikiwiki yet)
* [[Simon_McVittie|smcv]]'s [website](http://www.pseudorandom.co.uk/) and
[blog](http://smcv.pseudorandom.co.uk/)
+* Svend's [website](http://www.ciffer.net/~svend/) and [blog](http://www.ciffer.net/~svend/blog/)
+* [muammar's site](http://muammar.me)
+* [Per Bothner's blog](http://per.bothner.com/blog/)
+* [Bernd Zeimetz (bzed)](http://bzed.de/)
+
-Schools
-=======
-* [St Hugh of Lincoln Primary School in Surrey](http://hugh.vm.bytemark.co.uk/)
-
Please feel free to add your own ikiwiki site!
See also: [Debian ikiwiki popcon graph](http://popcon.debian.org/~igloo/popcon-graphs/index.php?packages=ikiwiki)
diff --git a/doc/news/openid.mdwn b/doc/news/openid.mdwn
index ad76606aa..45414142c 100644
--- a/doc/news/openid.mdwn
+++ b/doc/news/openid.mdwn
@@ -10,4 +10,4 @@ log back in, try out the OpenID signup process if you don't already have an
OpenID, and see how OpenID works for you. And let me know your feelings about
making such a switch. --[[Joey]]
-[[!poll 59 "Accept only OpenID for logins" 18 "Accept only password logins" 35 "Accept both"]]
+[[!poll 60 "Accept only OpenID for logins" 18 "Accept only password logins" 35 "Accept both"]]
diff --git a/doc/news/version_3.02.mdwn b/doc/news/version_3.02.mdwn
deleted file mode 100644
index f4e17a375..000000000
--- a/doc/news/version_3.02.mdwn
+++ /dev/null
@@ -1,24 +0,0 @@
-ikiwiki 3.02 released with [[!toggle text="these changes"]]
-[[!toggleable text="""
- * blogspam: New plugin, adding spam filtering for page editing / comment
- posting using the BlogSpam.net API.
- * Add auto-blog.setup, which will set up an ikiwiki instance tuned for use
- in blogging.
- * checkcontent: New hook, can be used to implement arbitrary content
- filters, including spam filters.
- * table: Fix misparsed links in external files.
- * table: Find links in external files in scan pass.
- * rename: Show full names of affected pages.
- * comments: Fix cache avoidance hack.
- * repolist: New plugin to support the rel=vcs-* microformat.
- * goodstuff: Include repolist by default. (But it does nothing until
- configured with the repository locations.)
- * comments: Add support for removing comments via web interface. (smcv)
- * Consistently allow use of relative paths in all PageSpecs
- that take a page name parameter. Previously, match\_created\_before(),
- match\_created\_after(), match\_sourcepage(), and match\_destpage()
- did not support that, and the docs were not clear.
- * pinger: Get whole url, don't just head, avoids problems on
- the nostromo web server.
- * Recommend libterm-readline-gnu-perl since that makes auto.setup
- behave better."""]] \ No newline at end of file
diff --git a/doc/news/version_3.06.mdwn b/doc/news/version_3.06.mdwn
new file mode 100644
index 000000000..0e2a48fe6
--- /dev/null
+++ b/doc/news/version_3.06.mdwn
@@ -0,0 +1,3 @@
+ikiwiki 3.06 released with [[!toggle text="these changes"]]
+[[!toggleable text="""
+ * Setup automator: Fix bug in password comparison. Closes: #[517654](http://bugs.debian.org/517654)"""]] \ No newline at end of file
diff --git a/doc/plugins/404.mdwn b/doc/plugins/404.mdwn
new file mode 100644
index 000000000..ad332ee04
--- /dev/null
+++ b/doc/plugins/404.mdwn
@@ -0,0 +1,20 @@
+[[!template id=plugin name=404 author="[[Simon_McVittie|smcv]]"]]
+[[!tag type/useful]]
+
+This plugin lets you use the IkiWiki CGI script as an Apache 404 handler,
+to give the behaviour of various other wiki engines where visiting a
+nonexistent page provides you with a link to create it.
+
+To achieve this, put something like this in the wiki's Apache configuration
+file:
+
+ ErrorDocument 404 /ikiwiki.cgi
+
+(The path here needs to be whatever the path is to the ikiwiki.cgi from
+the root of your web server.)
+
+Or put something like this in the wiki's Lighttpd (>=1.4.17) configuration file:
+
+ server.error-handler-404 = "/ikiwiki.cgi"
+
+
diff --git a/doc/plugins/contrib/default_content_for___42__copyright__42___and___42__license__42__.mdwn b/doc/plugins/contrib/default_content_for___42__copyright__42___and___42__license__42__.mdwn
index 3efc68418..adb414ffb 100644
--- a/doc/plugins/contrib/default_content_for___42__copyright__42___and___42__license__42__.mdwn
+++ b/doc/plugins/contrib/default_content_for___42__copyright__42___and___42__license__42__.mdwn
@@ -20,7 +20,7 @@ template variable somebody wants to use.
--[[bma]]
Copyright and license values are not "template values", they are values
-tracked by the meta plugin, and that various code compares and uses to fill
+tracked by the [[meta]] plugin, and that various code compares and uses to fill
out the templates. Something like varioki cannot do that. --[[Joey]]
Somewhat more detailed usage documentation would be appreciated. I tried to setup
diff --git a/doc/plugins/contrib/gallery.mdwn b/doc/plugins/contrib/gallery.mdwn
index 7148de3ef..72df13bd0 100644
--- a/doc/plugins/contrib/gallery.mdwn
+++ b/doc/plugins/contrib/gallery.mdwn
@@ -2,7 +2,7 @@
This plugin would create a nice looking gallery of the images. It has been build over the img plugin in Ikiwiki
-SVN repository of plugin is located at <http://ned.snow-crash.org:8080/svn/ikiwiki-gallery>
+GIT repo of the plugin is located at <http://github.com/joeyh/ikiwiki/tree/gallery>
USAGE :
diff --git a/doc/plugins/contrib/po.mdwn b/doc/plugins/contrib/po.mdwn
index 8b8bccb5a..8b19afae6 100644
--- a/doc/plugins/contrib/po.mdwn
+++ b/doc/plugins/contrib/po.mdwn
@@ -202,6 +202,8 @@ finish it at some point in the first quarter of 2009. --[[intrigeri]]
> I've looked it over and updated my branch with some (untested)
> changes.
>
+>> I've merged your changes into my branch. Only one was buggy.
+>
> Sorry, I'd forgotten about your cansave hook.. sorry for the duplicate
> work there.
>
@@ -212,10 +214,8 @@ finish it at some point in the first quarter of 2009. --[[intrigeri]]
> 3.x API, which I've promised not to do, so needs to be avoided
> somehow. (Sorry, I guess I dropped the ball on not getting this
> API change in before cutting 3.0..)
->
->> I'm discussing the solutions we now have on
->> [[todo/need_global_renamepage_hook]], as the solution I implemented
->> was initially agreed on there.
+>>
+>> Fixed, see [[todo/need_global_renamepage_hook]].
>>
> * I don't understand the parentlinks code change and need to figure it
> out. Can you explain what is going on there?
@@ -235,7 +235,7 @@ finish it at some point in the first quarter of 2009. --[[intrigeri]]
> * `skeleton.pm.example`'s canrename needs fixing to use either
> the current or my suggested parameters.
>>
->> I'll do both.
+>> Done.
>>
> * I don't like the exporting of `%backlinks` and `$backlinks_calculated`
> (the latter is exported but not used).
@@ -245,7 +245,25 @@ finish it at some point in the first quarter of 2009. --[[intrigeri]]
>> the subtleties of `our` use, and perldoc does not help me a lot.
>> IIRC, I actually did not use `our` to "export" these variables, but
>> rather to have them shared between `Render.pm` uses.
->>
+>>
+>>> My wording was unclear, I meant exposing. --[[Joey]]
+>>>
+>>>> I guess I still don't know Perl's `our` enough to understand clearly.
+>>>> No matter whether these variables are declared with `my` or `our`,
+>>>> any plugin can `use IkiWiki::Render` and then access
+>>>> `$IkiWiki::backlinks`, as already does e.g. the pagestat plugin.
+>>>> So I guess your problem is not with letting plugins use these
+>>>> variables, but with them being visible for every piece of
+>>>> (possibly external) code called from `Render.pm`. Am I right?
+>>>> If I understand clearly, using a brace block to lexically enclose
+>>>> these two `our` declarations, alongside with the `calculate_backlinks`
+>>>> and `backlinks` subs definitions, would be a proper solution, wouldn't
+>>>> it? --[[intrigeri]]
+>>>>
+>>>>> No, %backlinks and the backlinks() function are not the same thing.
+>>>>> The variable is lexically scoped; only accessible from inside
+>>>>> `Render.pm` --[[Joey]]
+>>>>
> * What is this `IkiWiki::nicepagetitle` and why are you
> injecting it into that namespace when only your module uses it?
> Actually, I can't even find a caller of it in your module.
@@ -253,7 +271,25 @@ finish it at some point in the first quarter of 2009. --[[intrigeri]]
>> I guess you should have a look to my `meta` branch and to
>> [[bugs/pagetitle_function_does_not_respect_meta_titles]] in order
>> to understand this :)
->>
+>>
+>>> It would probably be good if I could merge this branch without
+>>> having to worry about also immediatly merging that one. --[[Joey]]
+>>>
+>>>> I removed all dependencies on my `meta` branch from the `po` one.
+>>>> This implied removing the `po_translation_status_in_links` and
+>>>> `po_strictly_refresh_backlinks` features, and every link text is now
+>>>> displayed in the master language. I believe the removed features really
+>>>> enhance user experience of a translatable wiki, that's why I was
+>>>> initially supposing the `meta` branch would be merged first.
+>>>> IMHO, we'll need to come back to this quite soon after `po` is merged.
+>>>> --[[intrigeri]]
+>>>>
+>>>> Maybe you should keep those features in a meta-po branch?
+>>>> I did a cursory review of your meta last night, have some issues with it,
+>>>> but this page isn't the place for a detailed review. --[[Joey]]
+>>>>
+>>>>> Done. --[[intrigeri]]
+>>>
> * I'm very fearful of the `add_depends` in `postscan`.
> Does this make every page depend on every page that links
> to it? Won't this absurdly bloat the dependency pagespecs
@@ -269,15 +305,17 @@ finish it at some point in the first quarter of 2009. --[[intrigeri]]
>> enabled the option to display translation status in links, this
>> maintains the translation status up-to-date in backlinks. Same when
>> using meta title to make the pages titles translatable. It does
->> help having a nice and consistent translated wiki, but as it hurts
->> performance, I'm proposing to turn it into an option.
+>> help having a nice and consistent translated wiki, but as it can
+>> also involve problems, I just turned it into an option.
+>>
+>>> This has been completely removed for now due to the removal of
+>>> the dependency on my `meta` branch. --[[intrigeri]]
>>
> * The po4a Suggests should be versioned to the first version
> that can be used safely, and that version documented in
> `plugins/po.mdwn`.
>>
->> Sure. I was waiting for the necessary version to be actually
->> released, but we can guess it will be 0.35.
+>> Done.
>>
>> --[[intrigeri]]
>
diff --git a/doc/plugins/contrib/sourcehighlight.mdwn b/doc/plugins/contrib/sourcehighlight.mdwn
index fb368945b..07ac2086f 100644
--- a/doc/plugins/contrib/sourcehighlight.mdwn
+++ b/doc/plugins/contrib/sourcehighlight.mdwn
@@ -10,12 +10,9 @@ where foo and bar are the (source-supported) languages you want to
highlight
### Issues
-- I would like to have a link to the raw source; using will_render() and then copying the file should work.
+- I would like to have a link to the raw source; using will_render() and then copying the file should work.
-- the common case of foo.c and foo.h breaks
-because they both generate page working/dir/foo.
-It looks to me like ikiwiki is hardcoded to strip the extension in `pagename()` (IkiWiki.pm).
-This problem with sourcehighlight needs to be fixed before it is very useful.
+> You might also like to look at the [[todo/source_link]] todo. -- [[Will]]
- Is there a way to configure the colors used by source-highlight (other than editing the globally installed "default.style" file)? It would help if I could pass the command arbitrary command-line arguments; then I could configure which config file it's supposed to use. For instance, I'm not a fan of hard-coding the colors into the HTML output. IMHO, css-style formatting should be preferred. All that can be set via the command line ... --Peter
@@ -23,5 +20,11 @@ This problem with sourcehighlight needs to be fixed before it is very useful.
Note that [[Will]] wrote a plugin that uses source-highlight also. It's
available
-[here|todo/automatic_use_of_syntax_plugin_on_source_code_files/discussion]].
+[[here|todo/automatic_use_of_syntax_plugin_on_source_code_files/discussion]].
--[[Joey]]
+
+To be honest, [[Will]]'s version of this looks more polished. I will try his
+plugin and see if it can just replace mine. --[[DavidBremner]]
+
+
+*Updated* Now uses keepextension so multiple extensions should be OK
diff --git a/doc/plugins/contrib/underlay.mdwn b/doc/plugins/contrib/underlay.mdwn
deleted file mode 100644
index 72893c992..000000000
--- a/doc/plugins/contrib/underlay.mdwn
+++ /dev/null
@@ -1,58 +0,0 @@
-[[!template id=plugin name=underlay author="[[Simon_McVittie|smcv]]"]]
-[[!tag type/useful]]
-
-This plugin adds an `add_underlays` option to the `.setup` file.
-Its value is a list of underlay directories whose content is added to the wiki.
-
-Multiple underlays are normally set up automatically by other plugins (for
-instance, the images used by the [[plugins/smiley]] plugin), but they can also be
-used as a way to pull in external files that you don't want in revision control,
-like photos or software releases.
-
-Directories in `add_underlays` should usually be absolute. If relative, they're
-interpreted as relative to the parent directory of the basewiki underlay, which
-is probably not particularly useful in this context.
-
-Please feel free to add this plugin to ikiwiki if it seems like a good
-thing to have. See the 'underlay' branch in my git repository.
-
- #!/usr/bin/perl
- package IkiWiki::Plugin::underlay;
- # Copyright © 2008 Simon McVittie <http://smcv.pseudorandom.co.uk/>
- # Licensed under the GNU GPL, version 2, or any later version published by the
- # Free Software Foundation
-
- use warnings;
- use strict;
- use IkiWiki 2.00;
-
- sub import {
- hook(type => "getsetup", id => "underlay", call => \&getsetup);
- hook(type => "checkconfig", id => "underlay", call => \&checkconfig);
- }
-
- sub getsetup () {
- return
- plugin => {
- safe => 0,
- rebuild => undef,
- },
- add_underlays => {
- type => "string",
- default => [],
- description => "extra underlay directories to add",
- advanced => 1,
- safe => 0,
- rebuild => 1,
- },
- }
-
- sub checkconfig () {
- return unless exists $config{add_underlays};
-
- foreach my $dir (@{$config{add_underlays}}) {
- add_underlay($dir);
- }
- }
-
- 1;
diff --git a/doc/plugins/creole.mdwn b/doc/plugins/creole.mdwn
index c6491f754..6961e8d1d 100644
--- a/doc/plugins/creole.mdwn
+++ b/doc/plugins/creole.mdwn
@@ -13,4 +13,10 @@ wiki markup formats, so should be fairly easy to guess at. There is also a
Links are standard [[WikiLinks|ikiwiki/WikiLink]]. Links and
[[directives|ikiwiki/directive]] inside `{{{ }}}` blocks are still expanded,
-since this happens before the creole format is processed.
+since this happens before the creole format is processed. (You need to escape
+them manually, via \\\[[directives]], the ~ escaping of creole doesn't work on
+this.)
+
+The standard ikiwiki [[WikiLinks|ikiwiki/WikiLink]] is almost the same as Creole link, except that creole uses \[[pagename|description]] while ikiwiki uses \[[description|pagename]].
+
+
diff --git a/doc/plugins/creole/discussion.mdwn b/doc/plugins/creole/discussion.mdwn
index 36b7ba869..38ee2bd78 100644
--- a/doc/plugins/creole/discussion.mdwn
+++ b/doc/plugins/creole/discussion.mdwn
@@ -8,4 +8,8 @@ I've installed Text::WikiCreole 0.05 and enabled the plugin, but I get an error
>> I've added the patch to pkgsrc as well. Thanks. --[[schmonz]]
+>> Currently the creole plugin is included in ikiwiki but the ikiwiki deb (3.0.3) doesn't suggests libtext-wikicreole-perl. Why? --[[weakish]]
+
+>>> forgot, done now --[[Joey]]
+
I'm moving over a really stinkingly old UseMod and creole seems the nearest match. I've worked out that Bare /Subpage links need to become \[\[Subpage\]\], and Top/Sub links need to be \[\[Top/Sub\]\] (or \[\[Top/Sub|Top/Sub\]\], to display in exactly the same way), but I'm stuck on generic hyperlinks. The creole cheat sheet says I should be able to do \[\[http://url.path/foo|LinkText\]\], but that comes out as a link to create the "linktext" page, and Markdown-style \[Link Text\](http://url.path/foo) just gets rendered as is. Any suggestions? --[[schmonz]]
diff --git a/doc/plugins/google/discussion.mdwn b/doc/plugins/google/discussion.mdwn
new file mode 100644
index 000000000..babc919d2
--- /dev/null
+++ b/doc/plugins/google/discussion.mdwn
@@ -0,0 +1,6 @@
+This plugin uses the googleform.tmpl
+which produces valid HTML but invalid XHTML.
+This is not very good since the default ikiwiki
+templates produce XHTML instead of HTML.
+
+> Fixed, thanks for the patch! --[[Joey]]
diff --git a/doc/plugins/goto.mdwn b/doc/plugins/goto.mdwn
new file mode 100644
index 000000000..9c401c5d2
--- /dev/null
+++ b/doc/plugins/goto.mdwn
@@ -0,0 +1,10 @@
+[[!template id=plugin name=goto author="[[Simon_McVittie|smcv]]"]]
+[[!tag type/useful]]
+
+This plugin adds a `do=goto` mode for the IkiWiki CGI script. It's mainly
+for internal use by the [[404]], [[comments]] and [[recentchanges]]
+plugins, which enable it automatically.
+
+With this plugin enabled you can link to `ikiwiki.cgi?do=goto&page=some/where`
+to make a link that will redirect to the page `/some/where` if it exists, or
+offer a link to create it if it doesn't.
diff --git a/doc/plugins/mdwn/discussion.mdwn b/doc/plugins/mdwn/discussion.mdwn
new file mode 100644
index 000000000..4b05e7f4e
--- /dev/null
+++ b/doc/plugins/mdwn/discussion.mdwn
@@ -0,0 +1,7 @@
+Unlike other format, ikiwiki is somehow depends
+on mdwn, since the underlay dir
+is written in mdwn. If you want to disable mdwn,
+you need to overwrite the underlay
+dir (set underlaydir in ikiwiki.setup
+to your own underlay dir or replace underlay pages
+in your $SRC).
diff --git a/doc/plugins/passwordauth/discussion.mdwn b/doc/plugins/passwordauth/discussion.mdwn
index f4e7ae7a1..3362ae7d2 100644
--- a/doc/plugins/passwordauth/discussion.mdwn
+++ b/doc/plugins/passwordauth/discussion.mdwn
@@ -9,3 +9,59 @@ the *Preferences -- Subscriptions*. --[[tschwinge]]
>> Aha, then the problem is Firefox, which is automatically filling the
>> *Password* field with its previous value, but not filling the
>> *Confirm Password* one. --[[tschwinge]]
+
+## easy access to the userdb for apache auth?
+
+My use case is:
+
+* restricted ikiwiki
+* read/edit only allowed from the local network (done with apache restrictions)
+* edit only for people authenticated (done with vanilla ikiwiki passwordauth)
+
+I would like to allow people to read/edit the wiki from outside of the
+local network, if and only if they already have an ikiwiki account.
+
+[[httpauth]] doesn't fit since it doesn't allow anonymous local users
+to create their own account. I want a single, local, simple auth
+database.
+
+My (naïve?) idea would be:
+
+* keep the [[passwordauth]] system
+* provide a way for Apache to use the userdb for authentication if
+people want to connect from outside
+
+I looked at the various auth modules for apache2. It seems that none
+can use a "perl Storable data" file. So, I think some solutions could
+be:
+
+* use a sqlite database instead of a perl Storable file
+ * can be used with
+ [mod_auth_dbd](http://httpd.apache.org/docs/2.2/mod/mod_authn_dbd.html)
+ * requires a change in ikiwiki module [[passwordauth]]
+* use an external program to read the userdb and talk with
+ [mod_auth_external](http://unixpapa.com/mod_auth_external.html)
+ * requires the maintainance of this external auth proxy over ikiwiki
+ userdb format changes
+ * (I don't know perl)
+* include this wrapper in ikiwiki
+ * something like `ikiwiki --auth user:pass:userdb` check the
+ `user:pass` pair in `userdb` and returns an Accept/Reject flag to
+ Apache
+ * requires a change in ikiwiki core
+ * still requires
+ [mod_auth_external](http://unixpapa.com/mod_auth_external.html)
+* do it with Apache perl sections
+ * (I don't know perl)
+
+Any opinion/suggestion/solution to this is welcome and appreciated.
+
+--
+[[NicolasLimare]]
+
+For a similar use case, I've been intending to implement
+[[todo/httpauth_feature_parity_with_passwordauth]], but your idea may
+actually be the way to go. IMHO, the Perl sections idea is the
+easiest to setup, but on the long run, I'd prefer ikiwiki to optionnally
+use a userdb storage backend supported at least by Apache and lighttpd.
+--[[intrigeri]]
diff --git a/doc/plugins/shortcut/discussion.mdwn b/doc/plugins/shortcut/discussion.mdwn
index 8b1378917..4e11ce08c 100644
--- a/doc/plugins/shortcut/discussion.mdwn
+++ b/doc/plugins/shortcut/discussion.mdwn
@@ -1 +1,12 @@
+The plugin depends on [[mdwn]]. If you have
+disabled [[mdwn]], to get [[shortcut]] work, you need
+commit in a shortcuts.ext (ext is `rcs|creole|html|txt|etc`),
+and edit/patch [[shortcut]].
+
+Maybe use the `default_pageext` is better than hardcode .mdwn?
+
+--[[weakish]]
+
+> done, it will use `default_pageext` now --[[Joey]]
+
diff --git a/doc/plugins/tag.mdwn b/doc/plugins/tag.mdwn
index 17bb086a1..8ff70a069 100644
--- a/doc/plugins/tag.mdwn
+++ b/doc/plugins/tag.mdwn
@@ -5,6 +5,9 @@ This plugin provides the [[ikiwiki/directive/tag]] and
[[ikiwiki/directive/taglink]] [[directives|ikiwiki/directive]].
These directives allow tagging pages.
+It also provides the `tagged()` [[ikiwiki/PageSpec]], which can be used to
+match pages that are tagged with a specific tag.
+
[[!if test="enabled(tag)" then="""
This wiki has the tag plugin enabled, so you'll see a note below that this
page is tagged with the "tags" tag.
diff --git a/doc/plugins/tag/discussion.mdwn b/doc/plugins/tag/discussion.mdwn
index 7e7b88bc5..b6dab5358 100644
--- a/doc/plugins/tag/discussion.mdwn
+++ b/doc/plugins/tag/discussion.mdwn
@@ -22,3 +22,9 @@ AOLMODE=true echo "I too would really like this feature, which would make cgi fr
better" --[[DavidBremner]]
Please make the actual text used a template some way or another. I may want `map` instead of `inline`. --[[madduck]]
+
+
+See [[todo/auto-create tag pages according to a template]]
+
+-- Jeremy Schultz <jeremy.schultz@uleth.ca>
+
diff --git a/doc/plugins/textile/discussion.mdwn b/doc/plugins/textile/discussion.mdwn
deleted file mode 100644
index 945c9b46d..000000000
--- a/doc/plugins/textile/discussion.mdwn
+++ /dev/null
@@ -1 +0,0 @@
-. \ No newline at end of file
diff --git a/doc/plugins/underlay.mdwn b/doc/plugins/underlay.mdwn
new file mode 100644
index 000000000..09d096a6e
--- /dev/null
+++ b/doc/plugins/underlay.mdwn
@@ -0,0 +1,14 @@
+[[!template id=plugin name=underlay author="[[Simon_McVittie|smcv]]"]]
+[[!tag type/useful]]
+
+This plugin adds an `add_underlays` option to the `.setup` file.
+Its value is a list of underlay directories whose content is added to the wiki.
+
+Multiple underlays are normally set up automatically by other plugins (for
+instance, the images used by the [[plugins/smiley]] plugin), but they can also be
+used as a way to pull in external files that you don't want in revision control,
+like photos or software releases.
+
+Directories in `add_underlays` should usually be absolute. If relative, they're
+interpreted as relative to the parent directory of the basewiki underlay, which
+is probably not particularly useful in this context.
diff --git a/doc/plugins/write.mdwn b/doc/plugins/write.mdwn
index 0c5ad4540..be01605e8 100644
--- a/doc/plugins/write.mdwn
+++ b/doc/plugins/write.mdwn
@@ -107,7 +107,7 @@ adding or removing files from it.
This hook is called early in the process of building the wiki, and is used
as a first pass scan of the page, to collect metadata about the page. It's
-mostly used to scan the page for WikiLinks, and add them to `%links`.
+mostly used to scan the page for [[WikiLinks|ikiwiki/WikiLink]], and add them to `%links`.
Present in IkiWiki 2.40 and later.
The function is passed named parameters "page" and "content". Its return
@@ -168,7 +168,7 @@ htmlize the page) along with the rest of the page.
hook(type => "linkify", id => "foo", call => \&linkify);
-This hook is called to convert [[WikiLinks|WikiLink]] on the page into html
+This hook is called to convert [[WikiLinks|ikiwiki/WikiLink]] on the page into html
links. The function is passed named parameters "page", "destpage", and
"content". It should return the linkified content. Present in IkiWiki 2.40
and later.
@@ -189,9 +189,14 @@ The function is passed named parameters: "page" and "content" and should
return the htmlized content.
If `hook` is passed an optional "keepextension" parameter, set to a true
-value, then this extension will not be stripped from the source filename when
+value, then the extension will not be stripped from the source filename when
generating the page.
+If `hook` is passed an optional "noextension" parameter, set to a true
+value, then the id parameter specifies not a filename extension, but
+a whole filename that can be htmlized. This is useful for files
+like `Makefile` that have no extension.
+
### pagetemplate
hook(type => "pagetemplate", id => "foo", call => \&pagetemplate);
@@ -470,7 +475,7 @@ describes the plugin as a whole. For example:
* `example` can be set to an example value.
* `description` is a short description of the option.
* `link` is a link to further information about the option. This can either
- be a wikilink, or an url.
+ be a [[ikiwiki/WikiLink]], or an url.
* `advanced` can be set to true if the option is more suitable for advanced
users.
* `safe` should be false if the option should not be displayed in unsafe
@@ -665,6 +670,16 @@ A failure to write the file will result in it dying with an error.
If the destination directory doesn't exist, it will first be created.
+The filename and directory are separate parameters because of
+some security checks done to avoid symlink attacks. Before writing a file,
+it checks to make sure there's not a symlink with its name, to avoid
+following the symlink. If the filename parameter includes a subdirectory
+to put the file in, it also checks if that subdirectory is a symlink, etc.
+The directory parameter, however, is not checked for symlinks. So,
+generally the directory parameter is a trusted toplevel directory like
+the srcdir or destdir, and any subdirectories of this are included in the
+filename parameter.
+
#### `will_render($$)`
Given a page name and a destination file name (not including the base
@@ -706,7 +721,7 @@ a wiki page name.
#### `linkpage($)`
This converts text that could have been entered by the user as a
-[[WikiLink]] into a wiki page name.
+[[ikiwiki/WikiLink]] into a wiki page name.
#### `srcfile($;$)`
@@ -771,7 +786,7 @@ 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,
-generally shouldn't contain wikilinks or preprocessor directives (use
+generally shouldn't contain [[WikiLinks|ikiwiki/WikiLink]] 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]].
@@ -940,7 +955,7 @@ or wrap one of the functions.
For example, your plugin might want to override `displaytime`, to change
the html markup used when displaying a date. Or it might want to override
`IkiWiki::formattime`, to change how a date is formatted. Or perhaps you
-want to override `bestlink` and change how ikiwiki deals with WikiLinks.
+want to override `bestlink` and change how ikiwiki deals with [[WikiLinks|ikiwiki/WikiLink]].
By venturing into this territory, your plugin is becoming tightly tied to
ikiwiki's internals. And it might break if those internals change. But
diff --git a/doc/sandbox.mdwn b/doc/sandbox.mdwn
index a39264e18..14f72f4ad 100644
--- a/doc/sandbox.mdwn
+++ b/doc/sandbox.mdwn
@@ -1,7 +1,9 @@
This is the [[SandBox]], a page anyone can edit to try out ikiwiki (version [[!version ]]).
----
-test
+misc test
+
+test more test
[[中文显示]]
Here's a paragraph.
diff --git a/doc/setup/byhand.mdwn b/doc/setup/byhand.mdwn
index 9a2e1f3e9..0184d3d2a 100644
--- a/doc/setup/byhand.mdwn
+++ b/doc/setup/byhand.mdwn
@@ -171,11 +171,12 @@ 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, set
-`rcs` to the the revision control system you chose to use. Be sure to set
-`svnrepo` to the directory for your repository, if using subversion.
-Uncomment the configuration for the wrapper for your revision control
-system, and configure the wrapper path appropriately (for Git, it should be
-the path to `hooks/post-update` inside the bare git repository).
+`rcs` to the the revision control system you chose to use. Be careful,
+you may need to use the 'fullname'. For example, 'hg' doesn't work, you
+should use mercurial. Be sure to set `svnrepo` to the directory for your
+repository, if using subversion. Uncomment the configuration for the wrapper
+for your revision control system, and configure the wrapper path appropriately
+(for Git, it should be the path to `hooks/post-update` inside the bare git repository).
Once it's all set up, run `ikiwiki --setup ikiwiki.setup` once more.
Now you should be able to edit files in $SRCDIR, and use your revision
diff --git a/doc/setup/discussion.mdwn b/doc/setup/discussion.mdwn
index 3ec123eb5..89114d7a2 100644
--- a/doc/setup/discussion.mdwn
+++ b/doc/setup/discussion.mdwn
@@ -149,3 +149,19 @@ But I don't get an edit link on my pages? What am I doing wrong?
> Assuming you don't have the editpage plugin disabled, all you should need
> to so is re-run `ikiwiki -setup` with the above config and it should
> rebuild your wiki and add the edit links to pages. --[[Joey]]
+
+----
+
+I setup ikiwiki on a fedora 10 machine and I am using apache as my http server. Faced a few difficulties while setting it up as the default setup program left some suid files and group writeable directories on the system. It took some time to get it working and documented what I did at http://flyingtux.blogspot.com/2009/03/installing-ikiwiki.html. Thought it might be useful to someone here. (The version installed is 2.72)
+
+> ikiwiki makes wrappers suid by default, because this ensures that when
+> the ikiwiki.cgi is run by your web server, it runs as the user who owns
+> your wiki, and can thus write to it. ikiwiki is designed to run securely
+> suid. If your webserver uses some
+> mechanism to run the ikiwiki.cgi as the user who owns it, without the
+> suid bit being set, you *could* modify `cgi_wrappermode` in your setup
+> file to drop the suid bit.
+>
+> ikiwiki respects the umask, so if your umask is one that causes things to
+> be group writable, they will by. If you want to override that, there is
+> also a `umask ` setting in your setup file. --[[Joey]]
diff --git a/doc/tips/dot_cgi.mdwn b/doc/tips/dot_cgi.mdwn
index fbc3d8bbc..04d7a9721 100644
--- a/doc/tips/dot_cgi.mdwn
+++ b/doc/tips/dot_cgi.mdwn
@@ -26,6 +26,13 @@ configuration changes should work anywhere.
Or, if you've put it in a `~/public_html`, edit
`/etc/apache2/mods-available/userdir.conf`.
+* You may also want to enable the [[plugins/404]] plugin.
+ To make apache use it, the apache config file will need a further
+ modification to make it use ikiwiki's CGI as the apache 404 handler.
+ Something like this, with the path adjusted to where you've put the CGI:
+
+ ErrorDocument 404 /cgi-bin/ikiwiki.cgi
+
## lighttpd
Here is how to enable cgi on [lighttpd](http://www.lighttpd.net/) and
diff --git a/doc/tips/github.mdwn b/doc/tips/github.mdwn
index cd1b479d1..974d572f1 100644
--- a/doc/tips/github.mdwn
+++ b/doc/tips/github.mdwn
@@ -1,5 +1,5 @@
Here's how to set up a static wiki or blog using ikiwiki with no hosting
-feeds. Everything is hosted on github, both the git repository and the web
+fees. Everything is hosted on github, both the git repository and the web
site. Your laptop is used to generate and publish changes to it.
This is possible because github now supports
diff --git a/doc/tips/howto_avoid_flooding_aggregators.mdwn b/doc/tips/howto_avoid_flooding_aggregators.mdwn
index 98cef9249..e45b96689 100644
--- a/doc/tips/howto_avoid_flooding_aggregators.mdwn
+++ b/doc/tips/howto_avoid_flooding_aggregators.mdwn
@@ -1,27 +1,27 @@
If you have a [[blog]] that is aggregated, either on a site like Planet
Debian, or just through user subscriptions, one common problem is that
-changes to the guids of items in the blog can "flood" the aggregator,
+changes to the guids of items in the blog can “flood” the aggregator,
causing all recent blog entries to be posted to the top of it.
This can happen in a lot of situations:
-* Perhaps you've just switched to ikiwiki from some other blog engine and
+* Perhaps you’ve just switched to ikiwiki from some other blog engine and
imported your data.
-* Perhaps you've turned on the `usedirs` setting, which changes all the
+* Perhaps you’ve turned on the `usedirs` setting, which changes all the
urls in your wiki. Even if you set up
[[redirections|redirections_for_usedirs]] for the old urls, you still face
the issue of flooding aggregators.
-* Perhaps you've just moved stuff around in your wiki.
+* Perhaps you’ve just moved stuff around in your wiki.
-To avoid annoying readers in these situations, it's a good idea to remove
-any existing items from your blog's news feed. That way only new items will
+To avoid annoying readers in these situations, it’s a good idea to remove
+any existing items from your blog’s news feed. That way only new items will
show up in the aggregator. The best way to do this is to add a `feedpages`
parameter to the `inline` directive for your blog, with a condition such as:
feedpages=created_after(blog/posts/old_post)
-Where "old_post" is the name of the last post you made to the blog before
-making the change. This will limit the feed to only newer posts, while stil
+Where “old_post” is the name of the last post you made to the blog before
+making the change. This will limit the feed to only newer posts, while still
displaying the old posts in the blog page.
Alternatively, you can add the [[plugins/meta]] guid directives to pages,
diff --git a/doc/todo/Add_showdown_GUI_input__47__edit.mdwn b/doc/todo/Add_showdown_GUI_input__47__edit.mdwn
index e864f5351..7e7947fbc 100644
--- a/doc/todo/Add_showdown_GUI_input__47__edit.mdwn
+++ b/doc/todo/Add_showdown_GUI_input__47__edit.mdwn
@@ -27,3 +27,5 @@ A demo is at <http://www.attacklab.net/showdown-gui.html>
>>> be necessary to insert some sort of placeholder, perhaps by outputting
>>> the text in monospace form w/ a lighter font to denote that it won't
>>> directly be shown in the page... -- [[harningt]]
+
+>>>>> We have a wmd plugin now. --[[Joey]]
diff --git a/doc/todo/Allow_disabling_edit_and_preferences_links.mdwn b/doc/todo/Allow_disabling_edit_and_preferences_links.mdwn
index 1188d1ab2..a356c69df 100644
--- a/doc/todo/Allow_disabling_edit_and_preferences_links.mdwn
+++ b/doc/todo/Allow_disabling_edit_and_preferences_links.mdwn
@@ -46,3 +46,9 @@ Patch:
>> I do have the editpage plugin disabled for the public static wiki, but
>> the link still appears on the site. I want to keep the cgi on, so that
>> the site is still searchable. --[[puck]]
+
+>>> For me, disabling the editpage plugin does make the "Edit" link
+>>> disappear (this is with 3.03) but as far as I can tell, "Preferences"
+>>> is not controlled by any plugin. It would be nice if it were; I am
+>>> trying to achieve a configuration where the only action supported
+>>> via CGI is blog-style comments. --[Zack](http://zwol.livejournal.com/)
diff --git a/doc/todo/Allow_filenames_that_are_all_type.mdwn b/doc/todo/Allow_filenames_that_are_all_type.mdwn
new file mode 100644
index 000000000..bebbcafa8
--- /dev/null
+++ b/doc/todo/Allow_filenames_that_are_all_type.mdwn
@@ -0,0 +1,41 @@
+This is a [[patch]] to allow filenames that are just the type. The best example of this is wanting to
+pass a `Makefile` through one of the [[todo/syntax_highlighting/]] plugins. With this patch,
+if the plugin can process files of type `.Makefile` then it will also process `Makefile`.
+
+I put this patch on the [[todo/syntax_highlighting/]] page a while ago, but it seemed to get
+lost because it didn't have its own bug to track it. Now it does :). -- [[Will]]
+
+> This changes `pagename()`, but what about `pagetype()`?
+> Many things in ikiwiki check if `pagetype($file)` returns
+> true to see if it's a page, etc. --[[Joey]]
+
+>> I think this patch is complete. It does not change `pagename()`, it
+>> changes `pagetype()` (the diff is fairly old - line numbers may have
+>> changed).
+>>
+>> Before this patch, `pagetype()` required a `.` in the page name. With
+>> this patch it doesn't, as long as the extension is being kept. This allows
+>> the filename to be all extension. `pagename()` relies on `pagetype()`
+>> to detect the type. `pagename()` also removes the extension on some
+>> pages, but this patch only affects pages where the extension isn't
+>> removed.
+>>
+>> So, yeah, I think this patch is complete. :) -- [[Will]]
+
+>>> Thanks, [[applied|done]], but I added a noextension parameter,
+>>> since having keepextension allow files with no extension didn't make
+>>> sense. Also, made it work for pages in subdirs.. --[[Joey]]
+
+ diff --git a/IkiWiki.pm b/IkiWiki.pm
+ index 8d728c9..1bd46a9 100644
+ --- a/IkiWiki.pm
+ +++ b/IkiWiki.pm
+ @@ -618,6 +618,8 @@ sub pagetype ($) {
+
+ if ($page =~ /\.([^.]+)$/) {
+ return $1 if exists $hooks{htmlize}{$1};
+ + } elsif ($hooks{htmlize}{$page}{keepextension}) {
+ + return $page;
+ }
+ return;
+ }
diff --git a/doc/todo/Gallery.mdwn b/doc/todo/Gallery.mdwn
index fbf1802fd..bc1d5bea4 100644
--- a/doc/todo/Gallery.mdwn
+++ b/doc/todo/Gallery.mdwn
@@ -1,6 +1,6 @@
New Version of gallery is available now. Few more features have been added like support for multiple pages, sorting and resizing of images etc.
-SVN repository of plugin is located at http://ned.snow-crash.org:8080/svn/ikiwiki-gallery
+Gallery repo is now available at <http://github.com/joeyh/ikiwiki/tree/gallery>
--[[arpitjain]]
@@ -73,3 +73,9 @@ Additional details are available [here](http://myweb.unomaha.edu/~ajain/ikiwikig
> the gallery and put it in a "gallery" branch of my git repository.
>
> --[[Joey]]
+
+----
+
+See also [[/users/smcv/gallery]] for another implementation of the same sort of
+thing. Unfortunately, none of the implementation ideas
+I have there seem quite right either... --[[smcv]]
diff --git a/doc/todo/Option_to_make_title_an_h1__63__.mdwn b/doc/todo/Option_to_make_title_an_h1__63__.mdwn
index 8676bec48..f4023d6dd 100644
--- a/doc/todo/Option_to_make_title_an_h1__63__.mdwn
+++ b/doc/todo/Option_to_make_title_an_h1__63__.mdwn
@@ -11,4 +11,4 @@ Currently, the page title (either the name of the page or the title specified wi
> latter, making `#` (only when on the first line) set the page title, removing it from
> the page body. --[[JasonBlevins]], October 22, 2008
- [h1title]: http://code.jblevins.org/ikiwiki/plugins/h1title.pm
+ [h1title]: http://code.jblevins.org/ikiwiki/plugins.git/plain/h1title.pm
diff --git a/doc/todo/RecentChanges_page_links_without_cgi_wrapper.mdwn b/doc/todo/RecentChanges_page_links_without_cgi_wrapper.mdwn
new file mode 100644
index 000000000..b37109032
--- /dev/null
+++ b/doc/todo/RecentChanges_page_links_without_cgi_wrapper.mdwn
@@ -0,0 +1,26 @@
+Links to the changed page on RecentChanges only show up if the cgi wrapper is
+enabled. It would be nice if links were also generated on wikis that do not use
+the cgi. [[svend]]
+
+> It would be, but doing so would make updating the recentchanges page for
+> each commit a lot slower, or would result in there often being broken
+> links there.
+>
+> The broken links would happen if a page is removed.
+>
+> The speed issue is that currently each individual change in the
+> recentchanges page is built just once, when the change is made, and the
+> html for it is reused thereafter. To avoid broken links, it would need to
+> regenerate each change's html on each commit. That's 100x the overhead.
+> (Perhaps it's possible to be smarter about which need generation tho.)
+>
+> The best way to approach this that I can see ATM is to use the
+> [[plugins/404]] plugin to handle the broken links and then recentchanges
+> could avoid explicitly using the CGI. But this doesn't meet your use case
+> of having no CGI.
+>
+> If you're willing to live with broken links to removed pages, I suppose
+> that could be made an option..
+> --[[Joey]]
+
+[[!tag wishlist]]
diff --git a/doc/todo/apache_404_ErrorDocument_handler.mdwn b/doc/todo/apache_404_ErrorDocument_handler.mdwn
index b200ff3b2..4ae1d1a79 100644
--- a/doc/todo/apache_404_ErrorDocument_handler.mdwn
+++ b/doc/todo/apache_404_ErrorDocument_handler.mdwn
@@ -8,6 +8,9 @@ I think it'd probably have to be a separate CGI script because the environment w
(having said that, it might make sense for `recentchanges_link` to return 404 rather than
200 anyway if the page doesn't exist).
+> This turns out to be untrue, as long as the wrapper lets a couple of extra
+> environment variables through. --[[smcv]]
+
This would give IkiWiki the behaviour of many other wikis, where visiting a page that
does not yet exist prompts you to create it, without having to invoke the CGI for
successful requests.
@@ -15,4 +18,8 @@ successful requests.
Due to [a well-known MSIE misfeature](http://support.microsoft.com/default.aspx?scid=kb;en-us;Q294807),
error output needs to be at least 512 bytes long, so some padding might also be required.
-I'm happy to write such a script if there is interest. --[[smcv]]
+Implemented in the 'goto' branch in my git repository. You can see this
+feature in action [on my blog](http://smcv.pseudorandom.co.uk/no/such/page/).
+--[[smcv]]
+
+[[done]]
diff --git a/doc/todo/auto-create_tag_pages_according_to_a_template.mdwn b/doc/todo/auto-create_tag_pages_according_to_a_template.mdwn
index bfb4a863b..ab9263556 100644
--- a/doc/todo/auto-create_tag_pages_according_to_a_template.mdwn
+++ b/doc/todo/auto-create_tag_pages_according_to_a_template.mdwn
@@ -7,3 +7,102 @@ Also see: <http://madduck.net/blog/2008.01.06:new-blog/> and <http://users.itk.p
[[!tag wishlist]]
I would love to see this as well. -- dato
+
+---
+
+I have create a patch to tag.pm for add the option for auto create tag pages.
+A new setting is used to enable or disable auto-create tag pages, `tag_autocreate`.
+The new tag file is created during the preprocess phase.
+The new tag file is then complied during the change phase.
+
+_tag.pm from version 3.01_
+
+
+ --- tag.pm 2009-02-06 10:26:03.000000000 -0700
+ +++ tag_new.pm 2009-02-06 12:17:19.000000000 -0700
+ @@ -14,6 +14,7 @@
+ hook(type => "preprocess", id => "tag", call => \&preprocess_tag, scan => 1);
+ hook(type => "preprocess", id => "taglink", call => \&preprocess_taglink, scan => 1);
+ hook(type => "pagetemplate", id => "tag", call => \&pagetemplate);
+ + hook(type => "change", id => "tag", call => \&change);
+ }
+
+ sub getopt () {
+ @@ -36,6 +37,36 @@
+ safe => 1,
+ rebuild => 1,
+ },
+ + tag_autocreate => {
+ + type => "boolean",
+ + example => 0,
+ + description => "Auto-create the new tag pages, uses autotagpage.tmpl ",
+ + safe => 1,
+ + rebulid => 1,
+ + },
+ +}
+ +
+ +my $autocreated_page = 0;
+ +
+ +sub gen_tag_page($) {
+ + my $tag=shift;
+ +
+ + my $tag_file=$tag.'.'.$config{default_pageext};
+ + return if (-f $config{srcdir}.$tag_file);
+ +
+ + my $template=template("autotagpage.tmpl");
+ + $template->param(tag => $tag);
+ + writefile($tag_file, $config{srcdir}, $template->output);
+ + $autocreated_page = 1;
+ +
+ + if ($config{rcs}) {
+ + IkiWiki::disable_commit_hook();
+ + IkiWiki::rcs_add($tag_file);
+ + IkiWiki::rcs_commit_staged(
+ + gettext("Automatic tag page generation"),
+ + undef, undef);
+ + IkiWiki::enable_commit_hook();
+ + }
+ }
+
+ sub tagpage ($) {
+ @@ -47,6 +78,10 @@
+ $tag=~y#/#/#s; # squash dups
+ }
+
+ + if (defined $config{tag_autocreate} && $config{tag_autocreate} ) {
+ + gen_tag_page($tag);
+ + }
+ +
+ return $tag;
+ }
+
+ @@ -125,4 +160,18 @@
+ }
+ }
+
+ +sub change(@) {
+ + return unless($autocreated_page);
+ + $autocreated_page = 0;
+ +
+ + # This refresh/saveindex is to complie the autocreated tag pages
+ + IkiWiki::refresh();
+ + IkiWiki::saveindex();
+ +
+ + # This refresh/saveindex is to fix the Tags link
+ + # With out this additional refresh/saveindex the tag link displays ?tag
+ + IkiWiki::refresh();
+ + IkiWiki::saveindex();
+ +}
+ +
+
+
+This uses a template called `autotagpage.tmpl`, here is my template file:
+
+ \[[!inline pages="link(<TMPL_VAR TAG>)" archive="yes"]]
+
+
+A quirk I have not figured out is during the `sub change`, see my comments in the code.
+I am not sure if that is the best way to handle it.
+
+[[!tag patch]]
+-- Jeremy Schultz <jeremy.schultz@uleth.ca>
diff --git a/doc/todo/automatic_use_of_syntax_plugin_on_source_code_files/discussion.mdwn b/doc/todo/automatic_use_of_syntax_plugin_on_source_code_files/discussion.mdwn
index dc6c0001e..8bc75420d 100644
--- a/doc/todo/automatic_use_of_syntax_plugin_on_source_code_files/discussion.mdwn
+++ b/doc/todo/automatic_use_of_syntax_plugin_on_source_code_files/discussion.mdwn
@@ -5,9 +5,62 @@ Updated to use fix noted in [[bugs/multiple_pages_with_same_name]].
-- [[Will]]
----
+I was trying to replace sourcehighlight with sourcecode. I had to modify the
+htmlize call slightly so that it would work in a format directive.
+([modified version](http://pivot.cs.unb.ca/git/?p=ikiplugins.git;a=blob_plain;f=IkiWiki/Plugin/sourcecode.pm;hb=21fc57091edb9))
+
+> I haven't tested them, but those changes look sensible to me. -- [[Will]]
+
+I hit a wall the following example (the last commit in the above repo).
+
+ \[[!meta title="Solutions to assignment 1"]]
+
+ - [[!format cc """
+ test
+ """]]
+
+
+> I haven't actually tested this to see what the problem is. How does this fail?
+> Does source-highlight barf on the non-c++ content? Is there a wiki URL that shows the failure? -- [[Will]]
+>> Here is the content div from the output page
+>> [[DavidBremner]]
+
+ <div id="content">
+ <p><ul>
+ <li><div id="sourcecode"></li>
+ </ul>
+ 2beb4fd7289998159f61976143f66bb6</p>
+
+ <p></div></p>
+
+ </div>
+
+>>> That is quite strange. I tested your version of the plugin. I had to revert one your changes to get it to
+>>> work: the linenumber argument should not have a space at the end of it. Once I made that change,
+>>> everything worked as expected. The output I get for your example is below:
+
+ <div id="content">
+ <ul>
+ <li><div id="sourcecode"></li>
+ </ul>
+
+ <pre><tt><span class="linenum">00001:</span> <span class="normal">test</span></tt></pre>
+
+ <p></div></p>
+
+ </div>
+
+>>> I don't know what is going wrong for you... source-highlight, Markdown or something else.
+>>> I do find it interesting the way the sourcecode `div` and the list get interleaved. That
+>>> just looks like a Markdown thing though.
+>>> In any case, I've updated the patch below to include most of your changes. -- [[Will]]
+
+----
#!/usr/bin/perl
# markup source files
+ # Originally by Will Uther
+ # With modifications by David Bremner
package IkiWiki::Plugin::sourcecode;
use warnings;
@@ -18,142 +71,144 @@ Updated to use fix noted in [[bugs/multiple_pages_with_same_name]].
my %metaheaders;
sub import {
- hook(type => "getsetup", id => "sourcecode", call => \&getsetup);
- hook(type => "checkconfig", id => "sourcecode", call => \&checkconfig);
- hook(type => "pagetemplate", id => "sourcecode", call => \&pagetemplate);
+ hook(type => "getsetup", id => "sourcecode", call => \&getsetup);
+ hook(type => "checkconfig", id => "sourcecode", call => \&checkconfig);
+ hook(type => "pagetemplate", id => "sourcecode", call => \&pagetemplate);
}
sub getsetup () {
- return
- plugin => {
- safe => 1,
- rebuild => 1, # format plugin
- },
- sourcecode_command => {
- type => "string",
- example => "/usr/bin/source-highlight",
- description => "The command to execute to run source-highlight",
- safe => 0,
- rebuild => 1,
- },
- sourcecode_lang => {
- type => "string",
- example => "c,cpp,h,java",
- description => "Comma separated list of suffixes to recognise as source code",
- safe => 1,
- rebuild => 1,
- },
- sourcecode_linenumbers => {
- type => "boolean",
- example => 1,
- description => "Should we add line numbers to the source code",
- safe => 1,
- rebuild => 1,
- },
- sourcecode_css => {
- type => "string",
- example => "sourcecode_style",
- description => "page to use as css file for source",
- safe => 1,
- rebuild => 1,
- },
+ return
+ plugin => {
+ safe => 1,
+ rebuild => 1, # format plugin
+ },
+ sourcecode_command => {
+ type => "string",
+ example => "/usr/bin/source-highlight",
+ description => "The command to execute to run source-highlight",
+ safe => 0,
+ rebuild => 1,
+ },
+ sourcecode_lang => {
+ type => "string",
+ example => "c,cpp,h,java",
+ description => "Comma separated list of suffixes to recognise as source code",
+ safe => 1,
+ rebuild => 1,
+ },
+ sourcecode_linenumbers => {
+ type => "boolean",
+ example => 1,
+ description => "Should we add line numbers to the source code",
+ safe => 1,
+ rebuild => 1,
+ },
+ sourcecode_css => {
+ type => "string",
+ example => "sourcecode_style",
+ description => "page to use as css file for source",
+ safe => 1,
+ rebuild => 1,
+ },
}
sub checkconfig () {
- if (! $config{sourcecode_lang}) {
- error("The sourcecode plugin requires a list of suffixes in the 'sourcecode_lang' config option");
- }
-
- if (! $config{sourcecode_command}) {
- $config{sourcecode_command} = "source-highlight";
- }
-
- if (! length `which $config{sourcecode_command} 2>/dev/null`) {
- error("The sourcecode plugin is unable to find the $config{sourcecode_command} command");
- }
-
- if (! $config{sourcecode_css}) {
- $config{sourcecode_css} = "sourcecode_style";
- }
-
- if (! defined $config{sourcecode_linenumbers}) {
- $config{sourcecode_linenumbers} = 1;
- }
-
- my %langs = ();
-
- open(LANGS, "$config{sourcecode_command} --lang-list|");
- while (<LANGS>) {
- if ($_ =~ /(\w+) = .+\.lang/) {
- $langs{$1} = 1;
- }
- }
- close(LANGS);
-
- foreach my $lang (split(/[, ]+/, $config{sourcecode_lang})) {
- if ($langs{$lang}) {
- hook(type => "htmlize", id => $lang, call => \&htmlize, keepextension => 1);
- } else {
- error("Your installation of source-highlight cannot handle sourcecode language $lang!");
- }
- }
+ if (! $config{sourcecode_lang}) {
+ error("The sourcecode plugin requires a list of suffixes in the 'sourcecode_lang' config option");
+ }
+
+ if (! $config{sourcecode_command}) {
+ $config{sourcecode_command} = "source-highlight";
+ }
+
+ if (! length `which $config{sourcecode_command} 2>/dev/null`) {
+ error("The sourcecode plugin is unable to find the $config{sourcecode_command} command");
+ }
+
+ if (! $config{sourcecode_css}) {
+ $config{sourcecode_css} = "sourcecode_style";
+ }
+
+ if (! defined $config{sourcecode_linenumbers}) {
+ $config{sourcecode_linenumbers} = 1;
+ }
+
+ my %langs = ();
+
+ open(LANGS, "$config{sourcecode_command} --lang-list|");
+ while (<LANGS>) {
+ if ($_ =~ /(\w+) = .+\.lang/) {
+ $langs{$1} = 1;
+ }
+ }
+ close(LANGS);
+
+ foreach my $lang (split(/[, ]+/, $config{sourcecode_lang})) {
+ if ($langs{$lang}) {
+ hook(type => "htmlize", id => $lang, no_override=>1,
+ call => sub { htmlize(lang=>$lang, @_) },
+ keepextension => 1);
+ } else {
+ error("Your installation of source-highlight cannot handle sourcecode language $lang!");
+ }
+ }
}
sub htmlize (@) {
- my %params=@_;
+ my %params=@_;
+
+ my $page = $params{page};
- my $page = $params{page};
+ eval q{use FileHandle};
+ error($@) if $@;
+ eval q{use IPC::Open2};
+ error($@) if $@;
- eval q{use FileHandle};
- error($@) if $@;
- eval q{use IPC::Open2};
- error($@) if $@;
+ local(*SPS_IN, *SPS_OUT); # Create local handles
- local(*SPS_IN, *SPS_OUT); # Create local handles
+ my @args;
- my @args;
+ if ($config{sourcecode_linenumbers}) {
+ push @args, '--line-number';
+ }
- if ($config{sourcecode_linenumbers}) {
- push @args, '--line-number= ';
- }
+ my $pid = open2(*SPS_IN, *SPS_OUT, $config{sourcecode_command},
+ '-s', $params{lang},
+ '-c', $config{sourcecode_css}, '--no-doc',
+ '-f', 'xhtml',
+ @args);
- my $pid = open2(*SPS_IN, *SPS_OUT, $config{sourcecode_command},
- '-s', IkiWiki::pagetype($pagesources{$page}),
- '-c', $config{sourcecode_css}, '--no-doc',
- '-f', 'xhtml',
- @args);
+ error("Unable to open $config{sourcecode_command}") unless $pid;
- error("Unable to open $config{sourcecode_command}") unless $pid;
+ print SPS_OUT $params{content};
+ close SPS_OUT;
- print SPS_OUT $params{content};
- close SPS_OUT;
+ my @html = <SPS_IN>;
+ close SPS_IN;
- my @html = <SPS_IN>;
- close SPS_IN;
-
- waitpid $pid, 0;
+ waitpid $pid, 0;
- my $stylesheet=bestlink($page, $config{sourcecode_css}.".css");
- if (length $stylesheet) {
- push @{$metaheaders{$page}}, '<link href="'.urlto($stylesheet, $page).'"'.
- ' rel="stylesheet"'.
- ' type="text/css" />';
- }
+ my $stylesheet=bestlink($page, $config{sourcecode_css}.".css");
+ if (length $stylesheet) {
+ push @{$metaheaders{$page}}, '<link href="'.urlto($stylesheet, $page).'"'.
+ ' rel="stylesheet"'.
+ ' type="text/css" />';
+ }
- return '<div id="sourcecode">'."\r\n".join("\r\n",@html)."\r\n</div>\n";
+ return '<div id="sourcecode">'."\r\n".join("",@html)."\r\n</div>\r\n";
}
sub pagetemplate (@) {
- my %params=@_;
+ my %params=@_;
- my $page=$params{page};
- my $template=$params{template};
+ my $page=$params{page};
+ my $template=$params{template};
- if (exists $metaheaders{$page} && $template->query(name => "meta")) {
- # avoid duplicate meta lines
- my %seen;
- $template->param(meta => join("\n", grep { (! $seen{$_}) && ($seen{$_}=1) } @{$metaheaders{$page}}));
- }
+ if (exists $metaheaders{$page} && $template->query(name => "meta")) {
+ # avoid duplicate meta lines
+ my %seen;
+ $template->param(meta => join("\n", grep { (! $seen{$_}) && ($seen{$_}=1) } @{$metaheaders{$page}}));
+ }
}
1
diff --git a/doc/todo/comments.mdwn b/doc/todo/comments.mdwn
index c74ded8f6..7a113bee3 100644
--- a/doc/todo/comments.mdwn
+++ b/doc/todo/comments.mdwn
@@ -10,18 +10,21 @@
> it's hard enough to get some people to title their blog posts :-)
> --[[smcv]]
-## Patches pending merge
-
-* There is some common code cargo-culted from other plugins (notably inline and editpage) which
- should probably be shared
-
- > Actually, there's less of this now than there used to be - a lot of simple
- > things that were shared have become unshareable as they became more
- > complex. --[[smcv]]
+## Won't fix
- > There's still goto. You have a branch for that. --[[Joey]]
+* Because IkiWiki generates static HTML, we can't have a form inlined in
+ page.tmpl where the user fills in an entire comment and can submit it in
+ a single button-press, without being vulnerable to cross-site request forgery.
+ So I'll put this in as wontfix. --[[smcv]]
-## Won't fix
+ > Surely there's a way around that?
+ > A web 2.0 way comes to mind: The user clicks on a link
+ > to open the comment post form. While the nasty web 2.0 javascript :)
+ > is manipulating the page to add the form to it, it looks at the cookie
+ > and uses that to insert a sid field.
+ >
+ > Or, it could have a mandatory preview page and do the CSRF check then.
+ > --[[Joey]]
* It would be useful to have a pagespec that always matches all comments on
pages matching a glob. Something like `comment(blog/*)`.
@@ -47,6 +50,17 @@
## Done
+* There is some common code cargo-culted from other plugins (notably inline and editpage) which
+ should probably be shared
+
+ > Actually, there's less of this now than there used to be - a lot of simple
+ > things that were shared have become unshareable as they became more
+ > complex. --[[smcv]]
+
+ > There's still goto. You have a branch for that. --[[Joey]]
+
+ >> Now merged --[[smcv]]
+
* The default template should have a (?) icon next to unauthenticated users (with the IP address
as title) and an OpenID icon next to OpenIDs
@@ -91,6 +105,7 @@
> and c42f174e fix another `beautify_urlpath` bug and add a regression test
> --[[smcv]]
+
* Now that inline has some comments-specific functionality anyway, it would
be good to output `<link rel="comments">` in Atom and the equivalent in RSS.
diff --git a/doc/todo/discussion_page_as_blog.mdwn b/doc/todo/discussion_page_as_blog.mdwn
index c7a3d6ac9..990b7ddb3 100644
--- a/doc/todo/discussion_page_as_blog.mdwn
+++ b/doc/todo/discussion_page_as_blog.mdwn
@@ -30,4 +30,4 @@ I don't think that the nesting is very clear, I found it confusing..
Would each page be its own individual blog? Or its own blog post? To me it seems like an entire wiki can be viewed as a blog, with threaded or unthreaded comments underneath.
-[[!tag soc]]
+[[!tag soc done]]
diff --git a/doc/todo/generic___39__do__61__goto__39___for_CGI.mdwn b/doc/todo/generic___39__do__61__goto__39___for_CGI.mdwn
index 1828f0a7b..26c5202d0 100644
--- a/doc/todo/generic___39__do__61__goto__39___for_CGI.mdwn
+++ b/doc/todo/generic___39__do__61__goto__39___for_CGI.mdwn
@@ -6,4 +6,30 @@ the same for users. For now I've just cloned the functionality into the comments
plugin, but perhaps this functionality could be renamed to `do=goto` or
something, and moved to `IkiWiki/CGI.pm`?
-If there's general approval I'm happy to write a patch. --[[smcv]]
+> Now implemented as the 'goto' branch in my git repository, along with
+> [[apache_404_ErrorDocument_handler]]. --[[smcv]]
+
+>> Looks good, the only things I wonder are:
+>> * Should it be a separate plugin? In particular `cgi_page_from_404()` is
+>> pretty big, and only works if apache is configured so seems somewhat
+>> pluginaable.
+
+>>> I've split out `goto` and `apache404` plugins in the branch. I think
+>>> you're right that apache404 should be a plugin. If you think goto is small
+>>> and general enough to not be a plugin, just don't merge my most recent
+>>> patch! --[[smcv]]
+
+>> * I wish there were some way to generalize the workaround for the stupid
+>> MSIE behavior. Actually, I wish we could ignore the MSIE stupidity,
+>> as I tend to do, but perhaps it's too stupid in this case for that to
+>> fly..
+>> * Is there any reason to require do=goto before checking for
+>> `REDIRECT_STATUS`? Seems that if that code were moved
+>> out of the enclosing if block, the apache 404 handler could
+>> be set direct to the cgi, which seems simpler to remember.
+>> --[[Joey]]
+
+>>> No, good point - the `REDIRECT_STATUS` check is sufficiently unambiguous
+>>> already. Fixed. --[[smcv]]
+
+[[done]]
diff --git a/doc/todo/latex.mdwn b/doc/todo/latex.mdwn
index eb53538b4..604c5e87f 100644
--- a/doc/todo/latex.mdwn
+++ b/doc/todo/latex.mdwn
@@ -31,6 +31,9 @@ Conversely, how about adding a plugin to support exporting to LaTeX?
a latex plugin. Examples [here](http://ng.l4x.org/latex/). Currently without image support for hevea. And the latex2html
output has the wrong charset and no command line switch to change that. Dreamland.
+As this link is not working, I setted a mirror here: <a href="http://satangoss.sarava.org/ikiwiki/latex.pm">http://satangoss.sarava.org/ikiwiki/latex.pm</a>.
+
+
----
Okay, now is the time for a mid term report i think.
diff --git a/doc/todo/mdwn_preview.mdwn b/doc/todo/mdwn_preview.mdwn
new file mode 100644
index 000000000..16d7409a0
--- /dev/null
+++ b/doc/todo/mdwn_preview.mdwn
@@ -0,0 +1,116 @@
+The [StackOverflow](http://stackoverflow.com/) site uses markdown for markup.
+It has a fancy javascript thing for showing a real-time preview of what the user
+is editing. It would be nice if ikiwiki could support this, too. The thing they
+use on StackOverflow is supposed to be free software, so it should be easy to
+add to ikiwiki.
+
+> See [[wikiwyg]]. Note that I do not have a copy of the code for that, or
+> it'd be in ikiwiki already. --[[Joey]]
+
+>> I just had a brief look at the [[wikiwyg]] page and the link to the plugin was
+>> broken. The StackOverflow site uses the [WMD](http://wmd-editor.com/) editor,
+>> which seems to be related to the [ShowDown](http://attacklab.net/showdown/)
+>> javascript port of Markdown. Interestingly, [WMD source](http://wmd.googlecode.com/)
+>> is now available under an MIT license, though it is supposedly undergoing heavy
+>> refactoring. It looks like there was previous discussion ( [[todo/Add_showdown_GUI_input__47__edit]] )
+>> about a showdown plugin. Maybe a WMD plugin would be worthwhile. I might
+>> look into it if I have time on the weekend. -- [[Will]]
+
+[[!tag wishlist]]
+
+>>> Below is a simple plugin/[[patch]] to make use of the WMD editor. Turns out it isn't hard at all to
+>>> get a basic version going (which doesn't handle directives at all, nor does it swtich itself off when you're
+>>> editing something other than Markdown source). I've
+>>> removed the done tag so this is visible as a patch. -- [[Will]]
+
+>>> Hmm, it would be good if it turned off for !mdwn. Although this could
+>>> be difficult for a new page, since there is a dropdown selector to
+>>> choose the markup language then. But it should be doable for editing an
+>>> existing page.
+>>>
+>>> Can I get a license statement (ie, GPL-2+) ffrom you for the plugin?
+>>> --[[Joey]]
+
+------
+
+### Instructions:
+
+
+Download the [WMD source](http://wmd-editor.com/downloads/wmd-1.0.1.zip). In that zip file you'll
+find a few example html files, a readme and `wmd` directory. Move the `wmd` directory into the
+ikiwiki `underlays` directory. You should now have an `underlays/wmd/wmd.js` file as well as
+some other javascript files and an images directory in the same place.
+
+> So, I wonder if I should add a copy of the WMD source to ikiwiki, or rely
+> on the user or distribution providing it. It does not seem to be packaged
+> for Debian yet. --[[Joey]]
+
+Note that the WMD plugin does **not** handle directives. For this reason the normal `preview` button
+remains. Some CSS to clean up the display of the live WMD preview would be good.
+
+> Can you elucidate the CSS comment -- or will it be obvious what you mean
+> when I try it? Is it what's needed for the live preview? --[[Joey]]
+
+Install the following patch and plugin file. Then enable the 'wmd' plugin.
+
+
+ diff --git a/templates/editpage.tmpl b/templates/editpage.tmpl
+ index 4b54db2..b1cf015 100644
+ --- a/templates/editpage.tmpl
+ +++ b/templates/editpage.tmpl
+ @@ -37,6 +37,7 @@ Optional comment about this change:<br />
+ </div>
+ </TMPL_IF>
+ <TMPL_VAR FORM-END>
+ +<TMPL_VAR WMD_PREVIEW>
+
+ <TMPL_IF NAME="PAGE_PREVIEW">
+ <hr />
+
+-----
+
+ #!/usr/bin/perl
+ package IkiWiki::Plugin::wmd;
+
+ use warnings;
+ use strict;
+ use IkiWiki 3.00;
+ use POSIX;
+ use Encode;
+
+ sub import {
+ add_underlay("wmd");
+ hook(type => "getsetup", id => "wmd", call => \&getsetup);
+ hook(type => "formbuilder_setup", id => "wmd", call => \&formbuilder_setup);
+ }
+
+ sub getsetup () {
+ return
+ plugin => {
+ safe => 1,
+ rebuild => 1,
+ },
+ }
+
+ sub formbuilder_setup (@) {
+ my %params=@_;
+ my $form=$params{form};
+
+ return if ! defined $form->field("do");
+
+ return unless (($form->field("do") eq "edit") ||
+ ($form->field("do") eq "create"));
+
+ $form->tmpl_param("wmd_preview", "<div class=\"wmd-preview\"></div>\n".include_javascript(undef, 1));
+ }
+
+ sub include_javascript ($;$) {
+ my $page=shift;
+ my $absolute=shift;
+
+ return '<script src="'.urlto("wmd.js", $page, $absolute).
+ '" type="text/javascript"></script>'."\n";
+ }
+
+ 1
+
diff --git a/doc/todo/mercurial.mdwn b/doc/todo/mercurial.mdwn
index f0dbf9806..e71c8106a 100644
--- a/doc/todo/mercurial.mdwn
+++ b/doc/todo/mercurial.mdwn
@@ -14,6 +14,10 @@
It seems that with the current mercurial commit code, it will always
blindly overwrite the current file with the web edited version, losing
any other changes.
+* `rcs_commit_staged`, `rcs_rename`, `rcs_remove`, and `rcs_diff` are not
+ implemented for mercurial, and so attachments, remove and rename plugins
+ and recentchangesdiff cannot be used with it. (These should be fairly
+ easy to add..)
Posthook: in `$srcdir/.hg/hgrc`, I have the following
@@ -29,6 +33,62 @@ This should update the working directory and run ikiwiki every time a change is
> It can deadlock if the post-commit hook runs with --refresh in the
> former case. --[[Joey]]
+The problem with --post-commit is that if you delete some pages in $SRC, ikiwiki --setup setupfile --post-commit will not delete them in $DEST. --[[users/weakish]]
+
+> You should really be using a setup file that has `mercurial_wrapper`
+> set, and running the wrapper generated by that from your hook.
+> That will work. I think that the `--setup --post-commit` on the command
+> line is currently broken and does the same expensive rebuild process as --setup
+> alone (which doesn't delete files from $DEST either). Will fix that.
+> (fixed)
+> --[[Joey]]
+
+>> Mercurial doesn't support put hooks in .hg/hooks/* (like git). In Mercurial, the only way to run
+>> your own hooks is specifying them in the hgrc file. (Or write a new extension.)
+>> I guess use a very long command will work.
+>> (e.g. ikiwiki --post-commit --a-lot-of-switches --set var=value $SRC $DEST)
+>> (Fortunately ikiwiki supports --set var=value so without --setup works.)
+>>
+>> Alternative is always editing via cgi or pushing. Never work on the $SRC/repo directly.
+>> --[[users/weakish]]
+
+>>> I don't see anything preventing you from using a setup file with
+>>> `mercurial_wrapper => ".hg/ikiwiki-hook",` and then modifying the hgrc
+>>> to run that wrapper. --[[Joey]]
+
+>> Thanks for pointing out this. I have some stupid misunderstanding on the
+>> usage of mercurial_wrapper before. The wrapper works nicely! --[[weakish]]
+
+I add the following to .hg/hgrc:(I use changegroup since I don't think we need refresh per changeset, please point out if I am wrong.)
+
+ [hooks]
+ changegroup = hg update >&2 && ikiwiki --setup path.to.setup.file --refresh
+ post-commit = path.to.the.mercurial.wrapper
+
+-----
+
+I have no idea when the deadlock will happen. --[[users/weakish]]
+
+> For the deadlock to occur, a edit has to be made via the web.
+>
+> Ikiwiki,
+> running as a CGI, takes a lock on the wiki, and commits the edit,
+> continuing to run in the background, with the lock still held.
+> When the edit is committed, the hg hook runs, running `ikwiki --refresh`.
+> Nearly the first thing that process does it try to lock the wiki..
+> which is already locked. This lock is taken in a blocking manner,
+> thus the deadlock -- the cgi is waiting for the commit to finish before
+> dropping the lock, and the commit is blocked waiting for the lock to be
+> released.
+>
+> --post-commit avoids this problem by checking if the cgi is running
+> and avoiding doing anything in that case. (While still handing the
+> refresh if the commit was not made by the CGI.)
+> So in that case, the commit finishes w/o ikiwiki doing anything,
+> and the ikiwiki CGI handles the wiki refresh.
+> --[[Joey]]
+
+
***
I have a few notes on mercurial usage after trying it out for a while:
diff --git a/doc/todo/need_global_renamepage_hook.mdwn b/doc/todo/need_global_renamepage_hook.mdwn
index ce55b42c3..9c987aac4 100644
--- a/doc/todo/need_global_renamepage_hook.mdwn
+++ b/doc/todo/need_global_renamepage_hook.mdwn
@@ -58,8 +58,48 @@ would solve my problem. Hmmm? --[[intrigeri]]
>>> As Joey highlights it on [[plugins/contrib/po]], it's too late to
>>> merge such a change, as the 3.x plugin API is released and should
->>> not be broken. I'm thus proposing to keep the existing
->>> `renamepage` as it is, and call `rename` the global hook I need.
->>> --[[intrigeri]]
+>>> not be broken. I will thus keep the existing `renamepage` as it
+>>> is, and call `rename` the global hook I need. --[[intrigeri]]
-[[done]] as part of po branch
+>>>> Done in my `po` branch. --[[intrigeri]]
+
+I think I see a problem in the rename hook. The hook is called
+before the plugin adds any subpages to the set of pages to rename.
+So, if the user choses to rename subpages, po will not notice
+they are moving, and will not move their po files.
+
+Perhaps the hooks should be moved to come after subpages are added.
+This would, though, mean that if the hook somehow decides to add
+entirely other pages to the list, their subpages would not be
+automatically added.
+
+I also have some qualms about the design of the hook. In particular,
+passing the mutable array reference probably makes it impossible
+to use from external plugins. Instead it could return any additional
+rename hashes it wants to add. Or, if the ability to modify existing
+hashes is desired, it could return the full set of hashes.
+
+--[[Joey]]
+
+> I fixed the last part, i.e. a rename hook function now returns the
+> full set of hashes. As I also converted it to take named parameters,
+> such a function still is passed a reference to the original array,
+> though, because one can't build a hash containing an array of hashes
+> as a value, without passing this array as a reference.
+>
+>> Sure.
+>
+> I'm not entirely sure about your first concern. Calling the hook
+> before or after the subpages addition both have their own problems.
+>
+> What about running the hook before *and* after the subpages
+> addition, with an additional `when` named parameter, so that
+> a given hook function can choose to act only before or after, or both?
+>
+> --[[intrigeri]]
+>>
+>> Have you thought about making the hook be run once *per* file that is
+>> selected to be renamed? This would even handle the case where two
+>> plugins use the hook; plugin A would see when plugin B adds a new file
+>> to be renamed. And the subpage renaming stuff could probably be moved
+>> into the rename hook too. --[[Joey]]
diff --git a/doc/todo/overriding_displayed_modification_time.mdwn b/doc/todo/overriding_displayed_modification_time.mdwn
index b015b3730..160d31519 100644
--- a/doc/todo/overriding_displayed_modification_time.mdwn
+++ b/doc/todo/overriding_displayed_modification_time.mdwn
@@ -1,12 +1,19 @@
Some aggregators, like Planet, sort by mtime rather than ctime. This
means that posts with modified content come to the top (which seems odd
to me, but is presumably what the aggregator's author or operator
-wants), but it also means that posts with insignificant edits (like
+wants),
+
+> Hah! That's so charitable I hope you can deduct it from your taxes. ;-)
+> --[[Joey]]
+
+but it also means that posts with insignificant edits (like
adding tags) come to the top too. Atom defines `<updated>` to be the date
of the last *significant* change, so it's fine that ikiwiki defaults to
using the mtime, but it would be good to have a way for the author to
say "that edit was insignificant, don't use that mtime".
+> Yes, this is a real limitiation of ikiwiki's atom support. --[[Joey]]
+
See smcv's 'updated' branch for a basic implementation, which only affects
the Atom `<updated>` field or the RSS equivalent.
@@ -15,3 +22,6 @@ each should use it or not, please):
* sorting by mtime in the inline directive
* displaying "last edited" on ordinary pages
+
+> Tending toward no for both, but willing to be convinced otherwise..
+> [[merged|done]] --[[Joey]]
diff --git a/doc/todo/pingback_support.mdwn b/doc/todo/pingback_support.mdwn
index 6632cc747..b10366bda 100644
--- a/doc/todo/pingback_support.mdwn
+++ b/doc/todo/pingback_support.mdwn
@@ -20,3 +20,20 @@ case I will consider this done with an entry in [[tips]]; otherwise a
[[plugins|plugin]] to implement pingbacks would be great.
-- [[Jon]] (Wed Jan 14 13:48:47 GMT 2009)
+
+> I think it's now possible to implement trackback and pingback receiving
+> support in ikiwiki. One easy way to do it would be to hook it into the
+> existing [[plugins/comments]] plugin -- each pingback/trackback that
+> ikiwiki recieves would result in the creation if a new comment, which
+> would be subject to the usual comment filtering (ie, blogspam) and
+> moderation and would then show up amoung the other, regular comments on
+> the page.
+>
+> (One wrinkle: would need to guard against duplicate pings. Maybe by
+> checking existing comments for any that have the same url?)
+>
+> As for sending trackbacks and pingbacks, this could fairly easily be
+> implemented using a `editcontent` hook. Since this hook is called
+> whenever a page is posted or edited, and gets the changed content, it can
+> simply scan it for urls (may have to htmlize first?), and send pings to
+> all urls found. --[[Joey]]
diff --git a/doc/todo/redirect_automatically_after_rename.mdwn b/doc/todo/redirect_automatically_after_rename.mdwn
new file mode 100644
index 000000000..1cbb824d2
--- /dev/null
+++ b/doc/todo/redirect_automatically_after_rename.mdwn
@@ -0,0 +1,10 @@
+In some wikis, (e.g. Mediawiki) after [[renaming|plugins/rename]]
+a page, the old page still exist but only redirect to the
+new page. This is convenient since external sites may
+have links pointing to the old url.
+
+If [[plugins/meta]] plugin is enabled, users can manually edit the
+page, and put in '\[[!meta redir=newpage]]', but this is
+not very convenient.
+
+
diff --git a/doc/todo/syntax_highlighting.mdwn b/doc/todo/syntax_highlighting.mdwn
index d9a791c6f..b5d083ba5 100644
--- a/doc/todo/syntax_highlighting.mdwn
+++ b/doc/todo/syntax_highlighting.mdwn
@@ -26,6 +26,11 @@ pages, as well as doing syntax highlighting as a preprocessor directive
* [[users/jasonblevins]]'s code plugin uses src-highlight, and supports both
while file and directive use.
+* [hlsimple](http://pivot.cs.unb.ca/git/?p=ikiplugins.git;a=blob_plain;f=IkiWiki/Plugin/hlsimple.pm;hb=HEAD) is a wrapper for the the perl module Syntax::Highlight::Engine::Simple. This is pure perl, pretty simple, uses css. It ought to be pretty fast (according to the author, and just because it is not external).
+On the other hand, there are not many predefined languages yet. Defining language syntaxes is about as much
+work as source-highlight, but in perl. I plan to package the base module for debian. Perhaps after the author
+releases the 5 or 6 language definitions he has running on his web site, it might be suitable for inclusion in ikiwiki. [[DavidBremner]]
+
## General problems
* Using non-perl syntax highlighting backends is slow. I'd prefer either
diff --git a/doc/todo/tag_pagespec_function.mdwn b/doc/todo/tag_pagespec_function.mdwn
new file mode 100644
index 000000000..681a1f661
--- /dev/null
+++ b/doc/todo/tag_pagespec_function.mdwn
@@ -0,0 +1,34 @@
+Implementing tags in terms of links is clever, but it would be nice if it was
+opaque in both directions: tagging and matching tags. Writing pagespecs to
+find out which pages are tagged with a given name means that the pagespec is
+tied to whatever the tagbase is.
+
+This patch adds a pagespec function 'tag' which lets you write pagespecs to
+match tagged pages independent of whatever the tagbase is set to.
+
+ -- [[users/Jon]] 2009/02/17
+
+> So, this looks good, appreciate the patch.
+>
+> The only problem I see is it could be confusing if `tag(foo)` matched
+> a page that just linked to the tag via a wikilink, w/o actually tagging it.
+>
+> One other thing, perhaps it should be called `tagged()`? --[[Joey]]
+
+[[!tag patch done]]
+
+ --- a/plugins/IkiWiki/Plugin/tag.pm 2009-02-16 11:30:11.000000000 +0000
+ +++ b/plugins/IkiWiki/Plugin/tag.pm 2009-02-17 15:40:03.000000000 +0000
+ @@ -125,4 +125,12 @@
+ }
+ }
+
+ +package IkiWiki::PageSpec;
+ +
+ +sub match_tag ($$;@) {
+ + my $page = shift;
+ + my $glob = shift;
+ + return match_link($page, IkiWiki::Plugin::tag::tagpage($glob));
+ +}
+ +
+ 1
diff --git a/doc/todo/tla.mdwn b/doc/todo/tla.mdwn
index 6ef8453f1..b6b082cfe 100644
--- a/doc/todo/tla.mdwn
+++ b/doc/todo/tla.mdwn
@@ -1,4 +1,7 @@
* Need to get post commit hook code working.
* Need some example urls for web based diffs.
+* `rcs_commit_staged`, `rcs_rename`, `rcs_remove`, are not
+ implemented for tla, and so attachments, remove and rename plugins
+ cannot be used with it. (These should be fairly easy to add..)
[[!tag rcs/tla]]
diff --git a/doc/todo/using_meta_titles_for_parentlinks.html b/doc/todo/using_meta_titles_for_parentlinks.html
deleted file mode 100644
index 6da40a415..000000000
--- a/doc/todo/using_meta_titles_for_parentlinks.html
+++ /dev/null
@@ -1,122 +0,0 @@
-It is possible to set a Page-Title in the meta-plugin, but that one isn't
-reused in parentlinks. This [[patch]] may fix it.
-
-<ul>
-<li> I give pagetitle the full path to a page.
-<li> I redefine the 'pagetitle'-sub to deal with it.
-<li> to maintain compatibility for IkiWikis without the meta-plugin, i added a 'basename' to the Original-pagetitle.
-</ul>
-
-<pre>
-diff -c /usr/share/perl5/IkiWiki/Render.pm.distrib /usr/share/perl5/IkiWiki/Render.pm
-*** /usr/share/perl5/IkiWiki/Render.pm.distrib Wed Aug 6 07:34:55 2008
---- /usr/share/perl5/IkiWiki/Render.pm Tue Aug 26 23:29:32 2008
-***************
-*** 102,108 ****
- $template->param(
- title => $page eq 'index'
- ? $config{wikiname}
-! : pagetitle(basename($page)),
- wikiname => $config{wikiname},
- content => $content,
- backlinks => $backlinks,
---- 102,108 ----
- $template->param(
- title => $page eq 'index'
- ? $config{wikiname}
-! : pagetitle($page),
- wikiname => $config{wikiname},
- content => $content,
- backlinks => $backlinks,
-
-diff -c /usr/share/perl5/IkiWiki/Plugin/parentlinks.pm.distrib /usr/share/perl5/IkiWiki/Plugin/parentlinks.pm
-*** /usr/share/perl5/IkiWiki/Plugin/parentlinks.pm.distrib Wed Aug 6 07:34:55 2008
---- /usr/share/perl5/IkiWiki/Plugin/parentlinks.pm Tue Aug 26 23:19:43 2008
-***************
-*** 44,50 ****
- "height_$height" => 1,
- };
- $path.="/".$dir;
-! $title=IkiWiki::pagetitle($dir);
- $i++;
- }
- return @ret;
---- 44,50 ----
- "height_$height" => 1,
- };
- $path.="/".$dir;
-! $title=IkiWiki::pagetitle($path);
- $i++;
- }
- return @ret;
-
-diff -c /usr/share/perl5/IkiWiki.pm.distrib /usr/share/perl5/IkiWiki.pm
-*** /usr/share/perl5/IkiWiki.pm.distrib Wed Aug 6 07:48:34 2008
---- /usr/share/perl5/IkiWiki.pm Tue Aug 26 23:47:30 2008
-***************
-*** 792,797 ****
---- 792,799 ----
- my $page=shift;
- my $unescaped=shift;
-
-+ $page=basename($page);
-+
- if ($unescaped) {
- $page=~s/(__(\d+)__|_)/$1 eq '_' ? ' ' : chr($2)/eg;
- }
-
-diff -c /usr/share/perl5/IkiWiki/Plugin/meta.pm.distrib /usr/share/perl5/IkiWiki/Plugin/meta.pm
-*** /usr/share/perl5/IkiWiki/Plugin/meta.pm.distrib Wed Aug 6 07:34:55 2008
---- /usr/share/perl5/IkiWiki/Plugin/meta.pm Tue Aug 26 23:30:58 2008
-***************
-*** 3,8 ****
---- 3,9 ----
- package IkiWiki::Plugin::meta;
-
- use warnings;
-+ no warnings 'redefine';
- use strict;
- use IkiWiki 2.00;
-
-***************
-*** 289,294 ****
---- 290,319 ----
- }
- }
-
-+ sub IkiWiki::pagetitle ($;$) {
-+ my $page=shift;
-+ my $unescaped=shift;
-+
-+ if ($page =~ m#/#) {
-+ $page =~ s#^/##;
-+ $page =~ s#/index$##;
-+ if ($pagestate{"$page/index"}{meta}{title}) {
-+ $page = $pagestate{"$page/index"}{meta}{title};
-+ } else {
-+ $page = IkiWiki::basename($page);
-+ }
-+ }
-+
-+ if ($unescaped) {
-+ $page=~s/(__(\d+)__|_)/$1 eq '_' ? ' ' : chr($2)/eg;
-+ }
-+ else {
-+ $page=~s/(__(\d+)__|_)/$1 eq '_' ? ' ' : "&#$2;"/eg;
-+ }
-+
-+ return $page;
-+ }
-+
- package IkiWiki::PageSpec;
-
- sub match_title ($$;@) {
-
-
-</pre>
-
-<p>
-This is actually a duplicate for
-[[bugs/pagetitle_function_does_not_respect_meta_titles]], where I'm
-following up a bit. --[[intrigeri]]
-</p> \ No newline at end of file
diff --git a/doc/todo/wikiwyg.mdwn b/doc/todo/wikiwyg.mdwn
index e3d1b3927..839986c7b 100644
--- a/doc/todo/wikiwyg.mdwn
+++ b/doc/todo/wikiwyg.mdwn
@@ -57,3 +57,8 @@ The plugin can be downloaded from <http://ikiwiki.xbaud.com/wikiwyg-1.6.tar.gz>
* Personalized settings
[Wikiwyg]: http://www.wikiwyg.net/
+
+> As noted in [[discussion]], the url above doesn't work, and I stupidly
+> lost my copy of this before merging it. I hope that this plugin will turn
+> back up. In the meantime, there is a wmd plugin that accomplishes the
+> same basic task of WSYWIG markdown editing. --[[Joey]]
diff --git a/doc/users/jelmer.mdwn b/doc/users/jelmer.mdwn
new file mode 100644
index 000000000..1f2f71aad
--- /dev/null
+++ b/doc/users/jelmer.mdwn
@@ -0,0 +1 @@
+[Jelmer Vernooij](http://samba.org/~jelmer/)
diff --git a/doc/users/smcv/gallery.mdwn b/doc/users/smcv/gallery.mdwn
index 5b4c6fe00..b6b8de79f 100644
--- a/doc/users/smcv/gallery.mdwn
+++ b/doc/users/smcv/gallery.mdwn
@@ -89,12 +89,15 @@ could look something like this:
The next/previous part this plugin overlaps with [[todo/wikitrails]].
-A \[[!galleryimg]] directive to assign metadata to images is probably necessary, so
+A \[[!galleryimg]] directive to assign metadata to images might be necessary, so
the gallery page can contain something like:
\[[!galleryimg p1010001.jpg title="..." caption="..." tags="foo"]]
\[[!galleryimg p1010002.jpg title="..." caption="..." tags="foo bar"]]
+However, allowing other pages to push in metadata like that will make
+dependency tracking difficult.
+
Making the viewer pages could be rather tricky. Here are some options:
"synthesize source pages for viewers" is the one I'm leaning towards at the
moment.
@@ -105,9 +108,19 @@ One possibility is to write out the viewer pages as a side-effect of
preprocessing the \[[!gallery]] directive. The proof-of-concept implementation
below does this. However, this does mean the viewer pages can't have tags or
metadata of their own and can't be matched by [[pagespecs|ikiwiki/pagespec]] or
-[[wikilinks|ikiwiki/wikilink]]. It might be possible to implement tagging by
-using \[[!galleryimg]] to assign the metadata to the *images* instead of their
-viewers.
+[[wikilinks|ikiwiki/wikilink]].
+
+It might be possible to implement tagging by using \[[!galleryimg]] to assign
+the metadata to the *images* instead of their viewers; however, that would
+require hacking up both `IkiWiki::htmllink` and `IkiWiki::urlto` to redirect
+links to the image (e.g. from the \[[!map]] on a tag page) to become links to
+the viewer page.
+
+Modifications to the comments plugin would also be required, to make it allow
+comments written to `foo/bar/comment_1._comment` even though the page foo/bar
+does not really exist, and display comments on the viewer pages even though
+they're not real pages. (Writing comments to `foo/bar.jpg/*._comment` is not
+an option!)
### Synthesize source pages for viewers
diff --git a/doc/users/svend.mdwn b/doc/users/svend.mdwn
new file mode 100644
index 000000000..69d83584f
--- /dev/null
+++ b/doc/users/svend.mdwn
@@ -0,0 +1,4 @@
+[[!meta title="Svend Sorensen"]]
+
+* [website](http://www.ciffer.net/~svend/)
+* [blog](http://www.ciffer.net/~svend/blog/)
diff --git a/doc/users/weakish.mdwn b/doc/users/weakish.mdwn
new file mode 100644
index 000000000..ccd5665ad
--- /dev/null
+++ b/doc/users/weakish.mdwn
@@ -0,0 +1 @@
+email: weakish@gmail.com
diff --git a/ikiwiki.in b/ikiwiki.in
index 32a24af84..c79a2bfef 100755
--- a/ikiwiki.in
+++ b/ikiwiki.in
@@ -135,7 +135,8 @@ sub main () {
if (@{$config{wrappers}} &&
! $config{render} && ! $config{dumpsetup} &&
- (! $config{refresh} || $config{genwrappers})) {
+ ((! $config{refresh} && ! $config{post_commit})
+ || $config{genwrappers})) {
debug(gettext("generating wrappers.."));
require IkiWiki::Wrapper;
my %origconfig=(%config);
@@ -157,7 +158,8 @@ sub main () {
}
# setup implies a wiki rebuild by default
- if (! $config{refresh} && ! $config{render}) {
+ if (! $config{refresh} && ! $config{render} &&
+ ! $config{post_commit}) {
$config{rebuild}=1;
}
}
diff --git a/pm_filter b/pm_filter
index 71f26fae8..4984f32d9 100755
--- a/pm_filter
+++ b/pm_filter
@@ -14,7 +14,7 @@ elsif (/VERSION_AUTOREPLACE/) {
}
elsif (/^use lib/) {
# The idea here is to figure out if the libdir the Makefile.PL
- # was configure to use is in perl's normal search path.
+ # was configured to use is in perl's normal search path.
# If not, hard code it into ikiwiki.
if ((grep { $_ eq $libdir } @INC) &&
(! exists $ENV{PERL5LIB} || ! length $ENV{PERL5LIB} ||
diff --git a/po/bg.po b/po/bg.po
index 49bf1798e..c875f9bd4 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: 2009-01-17 18:19-0500\n"
+"POT-Creation-Date: 2009-03-01 15:03-0500\n"
"PO-Revision-Date: 2007-01-12 01:19+0200\n"
"Last-Translator: Damyan Ivanov <dam@modsodtsys.com>\n"
"Language-Team: Bulgarian <dict@fsa-bg.org>\n"
@@ -20,36 +20,42 @@ msgstr ""
msgid "You need to log in first."
msgstr "Първо трябва да влезете."
-#: ../IkiWiki/CGI.pm:145
+#: ../IkiWiki/CGI.pm:146
+msgid ""
+"probable misconfiguration: sslcookie is set, but you are attepting to login "
+"via http, not https"
+msgstr ""
+
+#: ../IkiWiki/CGI.pm:149
msgid "login failed, perhaps you need to turn on cookies?"
msgstr ""
-#: ../IkiWiki/CGI.pm:163 ../IkiWiki/CGI.pm:280
+#: ../IkiWiki/CGI.pm:168 ../IkiWiki/CGI.pm:299
msgid "Your login session has expired."
msgstr ""
-#: ../IkiWiki/CGI.pm:184
+#: ../IkiWiki/CGI.pm:189
msgid "Login"
msgstr ""
-#: ../IkiWiki/CGI.pm:185
+#: ../IkiWiki/CGI.pm:190
#, fuzzy
msgid "Preferences"
msgstr "Предпочитанията са запазени."
-#: ../IkiWiki/CGI.pm:186
+#: ../IkiWiki/CGI.pm:191
msgid "Admin"
msgstr ""
-#: ../IkiWiki/CGI.pm:226
+#: ../IkiWiki/CGI.pm:231
msgid "Preferences saved."
msgstr "Предпочитанията са запазени."
-#: ../IkiWiki/CGI.pm:241
+#: ../IkiWiki/CGI.pm:262
msgid "You are banned."
msgstr "Достъпът ви е забранен."
-#: ../IkiWiki/CGI.pm:371 ../IkiWiki/CGI.pm:372 ../IkiWiki.pm:1204
+#: ../IkiWiki/CGI.pm:390 ../IkiWiki/CGI.pm:391 ../IkiWiki.pm:1209
msgid "Error"
msgstr "Грешка"
@@ -122,7 +128,7 @@ msgstr ""
msgid "feed crashed XML::Feed!"
msgstr "данните от източника предизвикаха грешка в модула XML::Feed!"
-#: ../IkiWiki/Plugin/aggregate.pm:605
+#: ../IkiWiki/Plugin/aggregate.pm:610
#, perl-format
msgid "creating new page %s"
msgstr "създаване на нова страницa „%s”"
@@ -131,7 +137,7 @@ msgstr "създаване на нова страницa „%s”"
msgid "deleting bucket.."
msgstr ""
-#: ../IkiWiki/Plugin/amazon_s3.pm:38 ../ikiwiki.in:208
+#: ../IkiWiki/Plugin/amazon_s3.pm:38 ../ikiwiki.in:210
msgid "done"
msgstr "готово"
@@ -175,17 +181,13 @@ msgstr ""
msgid "automatic index generation"
msgstr ""
-#: ../IkiWiki/Plugin/blogspam.pm:102
+#: ../IkiWiki/Plugin/blogspam.pm:105
msgid ""
"Sorry, but that looks like spam to <a href=\"http://blogspam.net/"
"\">blogspam</a>: "
msgstr ""
-#: ../IkiWiki/Plugin/blogspam.pm:105
-msgid "blogspam server failure: "
-msgstr ""
-
-#: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:296
+#: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:233
#: ../IkiWiki/Plugin/inline.pm:354 ../IkiWiki/Plugin/opendiscussion.pm:26
#: ../IkiWiki/Plugin/orphans.pm:37 ../IkiWiki/Render.pm:79
#: ../IkiWiki/Render.pm:149
@@ -201,58 +203,68 @@ msgstr ""
msgid "There are no broken links!"
msgstr "Няма „счупени” връзки!"
-#: ../IkiWiki/Plugin/comments.pm:120 ../IkiWiki/Plugin/format.pm:23
+#: ../IkiWiki/Plugin/comments.pm:122 ../IkiWiki/Plugin/format.pm:23
#, perl-format
msgid "unsupported page format %s"
msgstr ""
-#: ../IkiWiki/Plugin/comments.pm:125
+#: ../IkiWiki/Plugin/comments.pm:127
msgid "comment must have content"
msgstr ""
-#: ../IkiWiki/Plugin/comments.pm:181
+#: ../IkiWiki/Plugin/comments.pm:183
msgid "Anonymous"
msgstr ""
-#: ../IkiWiki/Plugin/comments.pm:252 ../IkiWiki/Plugin/recentchanges.pm:110
-#, fuzzy
-msgid "missing page"
-msgstr "липсващ параметър „id” на шаблона"
-
-#: ../IkiWiki/Plugin/comments.pm:254 ../IkiWiki/Plugin/recentchanges.pm:112
-#, perl-format
-msgid "The page %s does not exist."
-msgstr ""
-
-#: ../IkiWiki/Plugin/comments.pm:343 ../IkiWiki/Plugin/editpage.pm:160
+#: ../IkiWiki/Plugin/comments.pm:326 ../IkiWiki/Plugin/editpage.pm:97
msgid "bad page name"
msgstr ""
-#: ../IkiWiki/Plugin/comments.pm:348
+#: ../IkiWiki/Plugin/comments.pm:331
#, fuzzy, perl-format
msgid "commenting on %s"
msgstr "създаване на %s"
-#: ../IkiWiki/Plugin/comments.pm:366
+#: ../IkiWiki/Plugin/comments.pm:349
#, perl-format
msgid "page '%s' doesn't exist, so you can't comment"
msgstr ""
-#: ../IkiWiki/Plugin/comments.pm:373
+#: ../IkiWiki/Plugin/comments.pm:356
#, perl-format
msgid "comments on page '%s' are closed"
msgstr ""
-#: ../IkiWiki/Plugin/comments.pm:493
+#: ../IkiWiki/Plugin/comments.pm:450
+msgid "comment stored for moderation"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:452
+msgid "Your comment will be posted after moderator review"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:465
msgid "Added a comment"
msgstr ""
-#: ../IkiWiki/Plugin/comments.pm:497
+#: ../IkiWiki/Plugin/comments.pm:469
#, perl-format
msgid "Added a comment: %s"
msgstr ""
-#: ../IkiWiki/Plugin/comments.pm:611
+#: ../IkiWiki/Plugin/comments.pm:510 ../IkiWiki/Plugin/websetup.pm:236
+msgid "you are not logged in as an admin"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:561
+msgid "Comment moderation"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:600
+msgid "comment moderation"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:751
msgid "Comments"
msgstr ""
@@ -277,19 +289,19 @@ msgstr ""
msgid "removing old preview %s"
msgstr "премахване на старата страница „%s”"
-#: ../IkiWiki/Plugin/editpage.pm:176
+#: ../IkiWiki/Plugin/editpage.pm:113
#, perl-format
msgid "%s is not an editable page"
msgstr ""
-#: ../IkiWiki/Plugin/editpage.pm:352
+#: ../IkiWiki/Plugin/editpage.pm:289
#, perl-format
msgid "creating %s"
msgstr "създаване на %s"
-#: ../IkiWiki/Plugin/editpage.pm:370 ../IkiWiki/Plugin/editpage.pm:389
-#: ../IkiWiki/Plugin/editpage.pm:399 ../IkiWiki/Plugin/editpage.pm:443
-#: ../IkiWiki/Plugin/editpage.pm:482
+#: ../IkiWiki/Plugin/editpage.pm:307 ../IkiWiki/Plugin/editpage.pm:326
+#: ../IkiWiki/Plugin/editpage.pm:336 ../IkiWiki/Plugin/editpage.pm:380
+#: ../IkiWiki/Plugin/editpage.pm:419
#, perl-format
msgid "editing %s"
msgstr "промяна на %s"
@@ -322,18 +334,18 @@ msgstr ""
msgid "fortune failed"
msgstr "грешшка в приставката „fortune”"
-#: ../IkiWiki/Plugin/git.pm:618 ../IkiWiki/Plugin/git.pm:636
+#: ../IkiWiki/Plugin/git.pm:624 ../IkiWiki/Plugin/git.pm:642
#: ../IkiWiki/Receive.pm:129
#, perl-format
msgid "you are not allowed to change %s"
msgstr ""
-#: ../IkiWiki/Plugin/git.pm:658
+#: ../IkiWiki/Plugin/git.pm:664
#, perl-format
msgid "you cannot act on a file with mode %s"
msgstr ""
-#: ../IkiWiki/Plugin/git.pm:662
+#: ../IkiWiki/Plugin/git.pm:668
msgid "you are not allowed to change file modes"
msgstr ""
@@ -346,6 +358,16 @@ msgstr "При използване на приеставката „search”
msgid "Failed to parse url, cannot determine domain name"
msgstr ""
+#: ../IkiWiki/Plugin/goto.pm:49
+#, fuzzy
+msgid "missing page"
+msgstr "липсващ параметър „id” на шаблона"
+
+#: ../IkiWiki/Plugin/goto.pm:51
+#, perl-format
+msgid "The page %s does not exist."
+msgstr ""
+
#: ../IkiWiki/Plugin/graphviz.pm:67
#, fuzzy
msgid "failed to run graphviz"
@@ -415,7 +437,7 @@ msgstr ""
msgid "Discussion"
msgstr "Дискусия"
-#: ../IkiWiki/Plugin/inline.pm:587
+#: ../IkiWiki/Plugin/inline.pm:593
msgid "RPC::XML::Client not found, not pinging"
msgstr "модулът „RPC::XML::Client” не е намерен; източникът не е проверен"
@@ -441,17 +463,17 @@ msgstr ""
"грешка при зареждането на perl-модула „Markdown.pm” (%s) или „/usr/bin/"
"markdown” (%s)"
-#: ../IkiWiki/Plugin/meta.pm:151
+#: ../IkiWiki/Plugin/meta.pm:158
#, fuzzy
msgid "stylesheet not found"
msgstr "шаблонът „%s” не е намерен"
-#: ../IkiWiki/Plugin/meta.pm:185
+#: ../IkiWiki/Plugin/meta.pm:192
#, fuzzy
msgid "redir page not found"
msgstr "шаблонът „%s” не е намерен"
-#: ../IkiWiki/Plugin/meta.pm:198
+#: ../IkiWiki/Plugin/meta.pm:205
#, fuzzy
msgid "redir cycle is not allowed"
msgstr "шаблонът „%s” не е намерен"
@@ -736,11 +758,12 @@ msgstr ""
msgid "search"
msgstr ""
-#: ../IkiWiki/Plugin/shortcut.pm:28
-msgid "shortcut plugin will not work without a shortcuts.mdwn"
+#: ../IkiWiki/Plugin/shortcut.pm:31
+#, perl-format
+msgid "shortcut plugin will not work without %s"
msgstr ""
-#: ../IkiWiki/Plugin/shortcut.pm:38
+#: ../IkiWiki/Plugin/shortcut.pm:44
#, fuzzy
msgid "missing name or url parameter"
msgstr "препратката няма указани параметрите „name” или „url”"
@@ -748,7 +771,7 @@ msgstr "препратката няма указани параметрите
#. translators: This is used to display what shortcuts are defined.
#. translators: First parameter is the name of the shortcut, the second
#. translators: is an URL.
-#: ../IkiWiki/Plugin/shortcut.pm:48
+#: ../IkiWiki/Plugin/shortcut.pm:54
#, fuzzy, perl-format
msgid "shortcut %s points to <i>%s</i>"
msgstr "препратката „%s” сочи към „%s”"
@@ -816,17 +839,17 @@ msgstr ""
msgid "parse fail at line %d: %s"
msgstr "грешка при запис на файла „%s”: %s"
-#: ../IkiWiki/Plugin/template.pm:28
+#: ../IkiWiki/Plugin/template.pm:29
#, fuzzy
msgid "missing id parameter"
msgstr "липсващ параметър „id” на шаблона"
-#: ../IkiWiki/Plugin/template.pm:35
+#: ../IkiWiki/Plugin/template.pm:36
#, perl-format
msgid "template %s not found"
msgstr "шаблонът „%s” не е намерен"
-#: ../IkiWiki/Plugin/template.pm:54
+#: ../IkiWiki/Plugin/template.pm:55
#, fuzzy
msgid "failed to process:"
msgstr "грешка при обработване на шаблона"
@@ -853,10 +876,6 @@ msgstr ""
msgid "enable %s?"
msgstr ""
-#: ../IkiWiki/Plugin/websetup.pm:236
-msgid "you are not logged in as an admin"
-msgstr ""
-
#: ../IkiWiki/Plugin/websetup.pm:240
msgid "setup file for this wiki is not known"
msgstr ""
@@ -959,16 +978,16 @@ msgstr "ikiwiki: неуспех при обновяване на страниц
msgid "cannot read %s: %s"
msgstr "грешка при четене на „%s”: %s"
-#: ../IkiWiki/Setup/Automator.pm:33
+#: ../IkiWiki/Setup/Automator.pm:34
msgid "you must enter a wikiname (that contains alphanumerics)"
msgstr ""
-#: ../IkiWiki/Setup/Automator.pm:67
+#: ../IkiWiki/Setup/Automator.pm:68
#, perl-format
msgid "unsupported revision control system %s"
msgstr ""
-#: ../IkiWiki/Setup/Automator.pm:93
+#: ../IkiWiki/Setup/Automator.pm:94
msgid "failed to set up the repository with ikiwiki-makerepo"
msgstr ""
@@ -985,21 +1004,14 @@ msgstr "не може да бъде създадена обвивка, коят
msgid "wrapper filename not specified"
msgstr "не е указан файл на обвивката"
-#. translators: The first parameter is a filename, and the second is
-#. translators: a (probably not translated) error message.
-#: ../IkiWiki/Wrapper.pm:97
-#, perl-format
-msgid "failed to write %s: %s"
-msgstr "грешка при запис на файла „%s”: %s"
-
#. translators: The parameter is a C filename.
-#: ../IkiWiki/Wrapper.pm:154
+#: ../IkiWiki/Wrapper.pm:152
#, perl-format
msgid "failed to compile %s"
msgstr "крешка при компилиране на файла %s"
#. translators: The parameter is a filename.
-#: ../IkiWiki/Wrapper.pm:174
+#: ../IkiWiki/Wrapper.pm:172
#, perl-format
msgid "successfully generated %s"
msgstr "успешно генериране на %s"
@@ -1016,15 +1028,15 @@ msgstr ""
msgid "usage: --set var=value"
msgstr ""
-#: ../ikiwiki.in:139
+#: ../ikiwiki.in:140
msgid "generating wrappers.."
msgstr "генериране на обвивки..."
-#: ../ikiwiki.in:197
+#: ../ikiwiki.in:199
msgid "rebuilding wiki.."
msgstr "обновяване на уики..."
-#: ../ikiwiki.in:200
+#: ../ikiwiki.in:202
msgid "refreshing wiki.."
msgstr "осъвременяване на уики..."
@@ -1043,12 +1055,12 @@ msgstr ""
msgid "failed to load external plugin needed for %s plugin: %s"
msgstr ""
-#: ../IkiWiki.pm:1187
+#: ../IkiWiki.pm:1192
#, fuzzy, perl-format
msgid "preprocessing loop detected on %s at depth %i"
msgstr "открита е циклична завидимост при %s на „%s” на дълбочина %i"
-#: ../IkiWiki.pm:1661
+#: ../IkiWiki.pm:1730
msgid "yes"
msgstr ""
@@ -1072,6 +1084,9 @@ msgstr ""
msgid "What is the domain name of the web server?"
msgstr ""
+#~ msgid "failed to write %s: %s"
+#~ msgstr "грешка при запис на файла „%s”: %s"
+
#, fuzzy
#~ msgid "failed to find url in html"
#~ msgstr "приставката „googlecalendar” не намери URL в HTML-кода"
diff --git a/po/cs.po b/po/cs.po
index b32764fc5..519d170aa 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: 2009-01-17 18:19-0500\n"
+"POT-Creation-Date: 2009-03-01 15:03-0500\n"
"PO-Revision-Date: 2007-05-09 21:21+0200\n"
"Last-Translator: Miroslav Kure <kurem@debian.cz>\n"
"Language-Team: Czech <debian-l10n-czech@lists.debian.org>\n"
@@ -19,35 +19,41 @@ msgstr ""
msgid "You need to log in first."
msgstr "Nejprve se musíte přihlásit."
-#: ../IkiWiki/CGI.pm:145
+#: ../IkiWiki/CGI.pm:146
+msgid ""
+"probable misconfiguration: sslcookie is set, but you are attepting to login "
+"via http, not https"
+msgstr ""
+
+#: ../IkiWiki/CGI.pm:149
msgid "login failed, perhaps you need to turn on cookies?"
msgstr "přihlášení selhalo; možná si musíte povolit cookies?"
-#: ../IkiWiki/CGI.pm:163 ../IkiWiki/CGI.pm:280
+#: ../IkiWiki/CGI.pm:168 ../IkiWiki/CGI.pm:299
msgid "Your login session has expired."
msgstr ""
-#: ../IkiWiki/CGI.pm:184
+#: ../IkiWiki/CGI.pm:189
msgid "Login"
msgstr "Přihlášení"
-#: ../IkiWiki/CGI.pm:185
+#: ../IkiWiki/CGI.pm:190
msgid "Preferences"
msgstr "Předvolby"
-#: ../IkiWiki/CGI.pm:186
+#: ../IkiWiki/CGI.pm:191
msgid "Admin"
msgstr "Správce"
-#: ../IkiWiki/CGI.pm:226
+#: ../IkiWiki/CGI.pm:231
msgid "Preferences saved."
msgstr "Nastavení uloženo."
-#: ../IkiWiki/CGI.pm:241
+#: ../IkiWiki/CGI.pm:262
msgid "You are banned."
msgstr "Jste vyhoštěni."
-#: ../IkiWiki/CGI.pm:371 ../IkiWiki/CGI.pm:372 ../IkiWiki.pm:1204
+#: ../IkiWiki/CGI.pm:390 ../IkiWiki/CGI.pm:391 ../IkiWiki.pm:1209
msgid "Error"
msgstr "Chyba"
@@ -119,7 +125,7 @@ msgstr ""
msgid "feed crashed XML::Feed!"
msgstr "zdroj shodil XML::Feed!"
-#: ../IkiWiki/Plugin/aggregate.pm:605
+#: ../IkiWiki/Plugin/aggregate.pm:610
#, perl-format
msgid "creating new page %s"
msgstr "vytvářím novou stránku %s"
@@ -128,7 +134,7 @@ msgstr "vytvářím novou stránku %s"
msgid "deleting bucket.."
msgstr ""
-#: ../IkiWiki/Plugin/amazon_s3.pm:38 ../ikiwiki.in:208
+#: ../IkiWiki/Plugin/amazon_s3.pm:38 ../ikiwiki.in:210
msgid "done"
msgstr "hotovo"
@@ -172,17 +178,13 @@ msgstr ""
msgid "automatic index generation"
msgstr ""
-#: ../IkiWiki/Plugin/blogspam.pm:102
+#: ../IkiWiki/Plugin/blogspam.pm:105
msgid ""
"Sorry, but that looks like spam to <a href=\"http://blogspam.net/"
"\">blogspam</a>: "
msgstr ""
-#: ../IkiWiki/Plugin/blogspam.pm:105
-msgid "blogspam server failure: "
-msgstr ""
-
-#: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:296
+#: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:233
#: ../IkiWiki/Plugin/inline.pm:354 ../IkiWiki/Plugin/opendiscussion.pm:26
#: ../IkiWiki/Plugin/orphans.pm:37 ../IkiWiki/Render.pm:79
#: ../IkiWiki/Render.pm:149
@@ -198,58 +200,68 @@ msgstr ""
msgid "There are no broken links!"
msgstr "Žádné porušené odkazy!"
-#: ../IkiWiki/Plugin/comments.pm:120 ../IkiWiki/Plugin/format.pm:23
+#: ../IkiWiki/Plugin/comments.pm:122 ../IkiWiki/Plugin/format.pm:23
#, perl-format
msgid "unsupported page format %s"
msgstr ""
-#: ../IkiWiki/Plugin/comments.pm:125
+#: ../IkiWiki/Plugin/comments.pm:127
msgid "comment must have content"
msgstr ""
-#: ../IkiWiki/Plugin/comments.pm:181
+#: ../IkiWiki/Plugin/comments.pm:183
msgid "Anonymous"
msgstr ""
-#: ../IkiWiki/Plugin/comments.pm:252 ../IkiWiki/Plugin/recentchanges.pm:110
-#, fuzzy
-msgid "missing page"
-msgstr "chybí hodnoty"
-
-#: ../IkiWiki/Plugin/comments.pm:254 ../IkiWiki/Plugin/recentchanges.pm:112
-#, perl-format
-msgid "The page %s does not exist."
-msgstr ""
-
-#: ../IkiWiki/Plugin/comments.pm:343 ../IkiWiki/Plugin/editpage.pm:160
+#: ../IkiWiki/Plugin/comments.pm:326 ../IkiWiki/Plugin/editpage.pm:97
msgid "bad page name"
msgstr ""
-#: ../IkiWiki/Plugin/comments.pm:348
+#: ../IkiWiki/Plugin/comments.pm:331
#, fuzzy, perl-format
msgid "commenting on %s"
msgstr "vytvářím %s"
-#: ../IkiWiki/Plugin/comments.pm:366
+#: ../IkiWiki/Plugin/comments.pm:349
#, perl-format
msgid "page '%s' doesn't exist, so you can't comment"
msgstr ""
-#: ../IkiWiki/Plugin/comments.pm:373
+#: ../IkiWiki/Plugin/comments.pm:356
#, perl-format
msgid "comments on page '%s' are closed"
msgstr ""
-#: ../IkiWiki/Plugin/comments.pm:493
+#: ../IkiWiki/Plugin/comments.pm:450
+msgid "comment stored for moderation"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:452
+msgid "Your comment will be posted after moderator review"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:465
msgid "Added a comment"
msgstr ""
-#: ../IkiWiki/Plugin/comments.pm:497
+#: ../IkiWiki/Plugin/comments.pm:469
#, perl-format
msgid "Added a comment: %s"
msgstr ""
-#: ../IkiWiki/Plugin/comments.pm:611
+#: ../IkiWiki/Plugin/comments.pm:510 ../IkiWiki/Plugin/websetup.pm:236
+msgid "you are not logged in as an admin"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:561
+msgid "Comment moderation"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:600
+msgid "comment moderation"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:751
msgid "Comments"
msgstr ""
@@ -274,19 +286,19 @@ msgstr ""
msgid "removing old preview %s"
msgstr "odstraňuji starou stránku %s"
-#: ../IkiWiki/Plugin/editpage.pm:176
+#: ../IkiWiki/Plugin/editpage.pm:113
#, perl-format
msgid "%s is not an editable page"
msgstr "%s není editovatelná stránka"
-#: ../IkiWiki/Plugin/editpage.pm:352
+#: ../IkiWiki/Plugin/editpage.pm:289
#, perl-format
msgid "creating %s"
msgstr "vytvářím %s"
-#: ../IkiWiki/Plugin/editpage.pm:370 ../IkiWiki/Plugin/editpage.pm:389
-#: ../IkiWiki/Plugin/editpage.pm:399 ../IkiWiki/Plugin/editpage.pm:443
-#: ../IkiWiki/Plugin/editpage.pm:482
+#: ../IkiWiki/Plugin/editpage.pm:307 ../IkiWiki/Plugin/editpage.pm:326
+#: ../IkiWiki/Plugin/editpage.pm:336 ../IkiWiki/Plugin/editpage.pm:380
+#: ../IkiWiki/Plugin/editpage.pm:419
#, perl-format
msgid "editing %s"
msgstr "upravuji %s"
@@ -319,18 +331,18 @@ msgstr ""
msgid "fortune failed"
msgstr "fortune selhal"
-#: ../IkiWiki/Plugin/git.pm:618 ../IkiWiki/Plugin/git.pm:636
+#: ../IkiWiki/Plugin/git.pm:624 ../IkiWiki/Plugin/git.pm:642
#: ../IkiWiki/Receive.pm:129
#, perl-format
msgid "you are not allowed to change %s"
msgstr ""
-#: ../IkiWiki/Plugin/git.pm:658
+#: ../IkiWiki/Plugin/git.pm:664
#, perl-format
msgid "you cannot act on a file with mode %s"
msgstr ""
-#: ../IkiWiki/Plugin/git.pm:662
+#: ../IkiWiki/Plugin/git.pm:668
msgid "you are not allowed to change file modes"
msgstr ""
@@ -343,6 +355,16 @@ msgstr "Při používání vyhledávacího modulu musíte zadat %s"
msgid "Failed to parse url, cannot determine domain name"
msgstr ""
+#: ../IkiWiki/Plugin/goto.pm:49
+#, fuzzy
+msgid "missing page"
+msgstr "chybí hodnoty"
+
+#: ../IkiWiki/Plugin/goto.pm:51
+#, perl-format
+msgid "The page %s does not exist."
+msgstr ""
+
#: ../IkiWiki/Plugin/graphviz.pm:67
msgid "failed to run graphviz"
msgstr "nepodařilo se spustit graphviz"
@@ -409,7 +431,7 @@ msgstr "neexistující šablona %s"
msgid "Discussion"
msgstr "Diskuse"
-#: ../IkiWiki/Plugin/inline.pm:587
+#: ../IkiWiki/Plugin/inline.pm:593
msgid "RPC::XML::Client not found, not pinging"
msgstr "RPC::XML::Client nebyl nalezen, nepinkám"
@@ -432,16 +454,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:151
+#: ../IkiWiki/Plugin/meta.pm:158
msgid "stylesheet not found"
msgstr "styl nebyl nalezen"
-#: ../IkiWiki/Plugin/meta.pm:185
+#: ../IkiWiki/Plugin/meta.pm:192
#, fuzzy
msgid "redir page not found"
msgstr "zdroj nebyl nalezen"
-#: ../IkiWiki/Plugin/meta.pm:198
+#: ../IkiWiki/Plugin/meta.pm:205
#, fuzzy
msgid "redir cycle is not allowed"
msgstr "zdroj nebyl nalezen"
@@ -725,18 +747,19 @@ msgstr ""
msgid "search"
msgstr ""
-#: ../IkiWiki/Plugin/shortcut.pm:28
-msgid "shortcut plugin will not work without a shortcuts.mdwn"
+#: ../IkiWiki/Plugin/shortcut.pm:31
+#, perl-format
+msgid "shortcut plugin will not work without %s"
msgstr ""
-#: ../IkiWiki/Plugin/shortcut.pm:38
+#: ../IkiWiki/Plugin/shortcut.pm:44
msgid "missing name or url parameter"
msgstr "chybí parametr jméno nebo url"
#. translators: This is used to display what shortcuts are defined.
#. translators: First parameter is the name of the shortcut, the second
#. translators: is an URL.
-#: ../IkiWiki/Plugin/shortcut.pm:48
+#: ../IkiWiki/Plugin/shortcut.pm:54
#, perl-format
msgid "shortcut %s points to <i>%s</i>"
msgstr "zkratka %s odkazuje na <i>%s</i>"
@@ -798,16 +821,16 @@ msgstr "Stáhnout zdrojová data"
msgid "parse fail at line %d: %s"
msgstr "zpracovávání selhalo na řádku %d: %s"
-#: ../IkiWiki/Plugin/template.pm:28
+#: ../IkiWiki/Plugin/template.pm:29
msgid "missing id parameter"
msgstr "chybí parametr id"
-#: ../IkiWiki/Plugin/template.pm:35
+#: ../IkiWiki/Plugin/template.pm:36
#, perl-format
msgid "template %s not found"
msgstr "šablona %s nebyla nalezena"
-#: ../IkiWiki/Plugin/template.pm:54
+#: ../IkiWiki/Plugin/template.pm:55
msgid "failed to process:"
msgstr "nepodařilo se zpracovat:"
@@ -834,10 +857,6 @@ msgstr ""
msgid "enable %s?"
msgstr ""
-#: ../IkiWiki/Plugin/websetup.pm:236
-msgid "you are not logged in as an admin"
-msgstr ""
-
#: ../IkiWiki/Plugin/websetup.pm:240
msgid "setup file for this wiki is not known"
msgstr ""
@@ -941,16 +960,16 @@ msgstr "ikiwiki: nelze zpracovat %s"
msgid "cannot read %s: %s"
msgstr "nemohu číst %s: %s"
-#: ../IkiWiki/Setup/Automator.pm:33
+#: ../IkiWiki/Setup/Automator.pm:34
msgid "you must enter a wikiname (that contains alphanumerics)"
msgstr ""
-#: ../IkiWiki/Setup/Automator.pm:67
+#: ../IkiWiki/Setup/Automator.pm:68
#, perl-format
msgid "unsupported revision control system %s"
msgstr ""
-#: ../IkiWiki/Setup/Automator.pm:93
+#: ../IkiWiki/Setup/Automator.pm:94
msgid "failed to set up the repository with ikiwiki-makerepo"
msgstr ""
@@ -967,21 +986,14 @@ msgstr "nemohu vytvořit obal, který využívá soubor setup"
msgid "wrapper filename not specified"
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:97
-#, perl-format
-msgid "failed to write %s: %s"
-msgstr "nelze zapsat %s: %s"
-
#. translators: The parameter is a C filename.
-#: ../IkiWiki/Wrapper.pm:154
+#: ../IkiWiki/Wrapper.pm:152
#, perl-format
msgid "failed to compile %s"
msgstr "nelze zkompilovat %s"
#. translators: The parameter is a filename.
-#: ../IkiWiki/Wrapper.pm:174
+#: ../IkiWiki/Wrapper.pm:172
#, perl-format
msgid "successfully generated %s"
msgstr "%s byl úspěšně vytvořen"
@@ -998,15 +1010,15 @@ msgstr ""
msgid "usage: --set var=value"
msgstr ""
-#: ../ikiwiki.in:139
+#: ../ikiwiki.in:140
msgid "generating wrappers.."
msgstr "generuji obaly..."
-#: ../ikiwiki.in:197
+#: ../ikiwiki.in:199
msgid "rebuilding wiki.."
msgstr "znovu vytvářím wiki..."
-#: ../ikiwiki.in:200
+#: ../ikiwiki.in:202
msgid "refreshing wiki.."
msgstr "obnovuji wiki..."
@@ -1023,12 +1035,12 @@ msgstr ""
msgid "failed to load external plugin needed for %s plugin: %s"
msgstr ""
-#: ../IkiWiki.pm:1187
+#: ../IkiWiki.pm:1192
#, fuzzy, perl-format
msgid "preprocessing loop detected on %s at depth %i"
msgstr "Byla rozpoznána smyčka direktivy %s na %s v hloubce %i"
-#: ../IkiWiki.pm:1661
+#: ../IkiWiki.pm:1730
msgid "yes"
msgstr ""
@@ -1052,6 +1064,9 @@ msgstr ""
msgid "What is the domain name of the web server?"
msgstr ""
+#~ msgid "failed to write %s: %s"
+#~ msgstr "nelze zapsat %s: %s"
+
#~ msgid "failed to find url in html"
#~ msgstr "v html se nepodařilo nalézt url"
diff --git a/po/da.po b/po/da.po
index 83a781ee8..6139a0f23 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: 2009-01-17 18:19-0500\n"
+"POT-Creation-Date: 2009-03-01 15:03-0500\n"
"PO-Revision-Date: 2008-10-22 19:13+0100\n"
"Last-Translator: Jonas Smedegaard <dr@jones.dk>\n"
"Language-Team: None\n"
@@ -23,35 +23,41 @@ msgstr ""
msgid "You need to log in first."
msgstr "Du skal først logge på."
-#: ../IkiWiki/CGI.pm:145
+#: ../IkiWiki/CGI.pm:146
+msgid ""
+"probable misconfiguration: sslcookie is set, but you are attepting to login "
+"via http, not https"
+msgstr ""
+
+#: ../IkiWiki/CGI.pm:149
msgid "login failed, perhaps you need to turn on cookies?"
msgstr "Pålogning mislykkedes, måske skal du tillade infokager (cookies)?"
-#: ../IkiWiki/CGI.pm:163 ../IkiWiki/CGI.pm:280
+#: ../IkiWiki/CGI.pm:168 ../IkiWiki/CGI.pm:299
msgid "Your login session has expired."
msgstr "Din kørsel (login session) er udløbet"
-#: ../IkiWiki/CGI.pm:184
+#: ../IkiWiki/CGI.pm:189
msgid "Login"
msgstr "Pålogning"
-#: ../IkiWiki/CGI.pm:185
+#: ../IkiWiki/CGI.pm:190
msgid "Preferences"
msgstr "Indstillinger"
-#: ../IkiWiki/CGI.pm:186
+#: ../IkiWiki/CGI.pm:191
msgid "Admin"
msgstr "Admin"
-#: ../IkiWiki/CGI.pm:226
+#: ../IkiWiki/CGI.pm:231
msgid "Preferences saved."
msgstr "Indstillinger gemt"
-#: ../IkiWiki/CGI.pm:241
+#: ../IkiWiki/CGI.pm:262
msgid "You are banned."
msgstr "Du er banlyst."
-#: ../IkiWiki/CGI.pm:371 ../IkiWiki/CGI.pm:372 ../IkiWiki.pm:1204
+#: ../IkiWiki/CGI.pm:390 ../IkiWiki/CGI.pm:391 ../IkiWiki.pm:1209
msgid "Error"
msgstr "Fejl"
@@ -123,7 +129,7 @@ msgstr "(fødningselementer omgået (escaped))"
msgid "feed crashed XML::Feed!"
msgstr "fødning fik XML::Feed til at bryde sammen!"
-#: ../IkiWiki/Plugin/aggregate.pm:605
+#: ../IkiWiki/Plugin/aggregate.pm:610
#, perl-format
msgid "creating new page %s"
msgstr "opretter ny side %s"
@@ -132,7 +138,7 @@ msgstr "opretter ny side %s"
msgid "deleting bucket.."
msgstr "sletter bundt.."
-#: ../IkiWiki/Plugin/amazon_s3.pm:38 ../ikiwiki.in:208
+#: ../IkiWiki/Plugin/amazon_s3.pm:38 ../ikiwiki.in:210
msgid "done"
msgstr "færdig"
@@ -174,17 +180,13 @@ msgstr "vedhæftningsoplægning"
msgid "automatic index generation"
msgstr "automatisk indeks-dannelse"
-#: ../IkiWiki/Plugin/blogspam.pm:102
+#: ../IkiWiki/Plugin/blogspam.pm:105
msgid ""
"Sorry, but that looks like spam to <a href=\"http://blogspam.net/"
"\">blogspam</a>: "
msgstr ""
-#: ../IkiWiki/Plugin/blogspam.pm:105
-msgid "blogspam server failure: "
-msgstr ""
-
-#: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:296
+#: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:233
#: ../IkiWiki/Plugin/inline.pm:354 ../IkiWiki/Plugin/opendiscussion.pm:26
#: ../IkiWiki/Plugin/orphans.pm:37 ../IkiWiki/Render.pm:79
#: ../IkiWiki/Render.pm:149
@@ -200,58 +202,69 @@ msgstr "%s fra %s"
msgid "There are no broken links!"
msgstr "Ingen henvisninger der ikker fungerer!"
-#: ../IkiWiki/Plugin/comments.pm:120 ../IkiWiki/Plugin/format.pm:23
+#: ../IkiWiki/Plugin/comments.pm:122 ../IkiWiki/Plugin/format.pm:23
#, fuzzy, perl-format
msgid "unsupported page format %s"
msgstr "revisionskontrolsystem %s ikke understøttet"
-#: ../IkiWiki/Plugin/comments.pm:125
+#: ../IkiWiki/Plugin/comments.pm:127
msgid "comment must have content"
msgstr ""
-#: ../IkiWiki/Plugin/comments.pm:181
+#: ../IkiWiki/Plugin/comments.pm:183
msgid "Anonymous"
msgstr ""
-#: ../IkiWiki/Plugin/comments.pm:252 ../IkiWiki/Plugin/recentchanges.pm:110
-msgid "missing page"
-msgstr "manglende side"
-
-#: ../IkiWiki/Plugin/comments.pm:254 ../IkiWiki/Plugin/recentchanges.pm:112
-#, perl-format
-msgid "The page %s does not exist."
-msgstr "Siden %s eksisterer ikke."
-
-#: ../IkiWiki/Plugin/comments.pm:343 ../IkiWiki/Plugin/editpage.pm:160
+#: ../IkiWiki/Plugin/comments.pm:326 ../IkiWiki/Plugin/editpage.pm:97
#, fuzzy
msgid "bad page name"
msgstr "dårligt vedhæftningsfilnavn"
-#: ../IkiWiki/Plugin/comments.pm:348
+#: ../IkiWiki/Plugin/comments.pm:331
#, fuzzy, perl-format
msgid "commenting on %s"
msgstr "opretter %s"
-#: ../IkiWiki/Plugin/comments.pm:366
+#: ../IkiWiki/Plugin/comments.pm:349
#, perl-format
msgid "page '%s' doesn't exist, so you can't comment"
msgstr ""
-#: ../IkiWiki/Plugin/comments.pm:373
+#: ../IkiWiki/Plugin/comments.pm:356
#, perl-format
msgid "comments on page '%s' are closed"
msgstr ""
-#: ../IkiWiki/Plugin/comments.pm:493
+#: ../IkiWiki/Plugin/comments.pm:450
+msgid "comment stored for moderation"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:452
+msgid "Your comment will be posted after moderator review"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:465
msgid "Added a comment"
msgstr ""
-#: ../IkiWiki/Plugin/comments.pm:497
+#: ../IkiWiki/Plugin/comments.pm:469
#, perl-format
msgid "Added a comment: %s"
msgstr ""
-#: ../IkiWiki/Plugin/comments.pm:611
+#: ../IkiWiki/Plugin/comments.pm:510 ../IkiWiki/Plugin/websetup.pm:236
+msgid "you are not logged in as an admin"
+msgstr "du er ikke logget på som en administrator"
+
+#: ../IkiWiki/Plugin/comments.pm:561
+msgid "Comment moderation"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:600
+msgid "comment moderation"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:751
msgid "Comments"
msgstr ""
@@ -276,19 +289,19 @@ msgstr "ingen tekst blev kopieret i denne side med id %s"
msgid "removing old preview %s"
msgstr "fjerner gammelt smugkig %s"
-#: ../IkiWiki/Plugin/editpage.pm:176
+#: ../IkiWiki/Plugin/editpage.pm:113
#, perl-format
msgid "%s is not an editable page"
msgstr "%s er ikke en redigérbar side"
-#: ../IkiWiki/Plugin/editpage.pm:352
+#: ../IkiWiki/Plugin/editpage.pm:289
#, perl-format
msgid "creating %s"
msgstr "opretter %s"
-#: ../IkiWiki/Plugin/editpage.pm:370 ../IkiWiki/Plugin/editpage.pm:389
-#: ../IkiWiki/Plugin/editpage.pm:399 ../IkiWiki/Plugin/editpage.pm:443
-#: ../IkiWiki/Plugin/editpage.pm:482
+#: ../IkiWiki/Plugin/editpage.pm:307 ../IkiWiki/Plugin/editpage.pm:326
+#: ../IkiWiki/Plugin/editpage.pm:336 ../IkiWiki/Plugin/editpage.pm:380
+#: ../IkiWiki/Plugin/editpage.pm:419
#, perl-format
msgid "editing %s"
msgstr "redigerer %s"
@@ -318,18 +331,18 @@ msgstr ""
msgid "fortune failed"
msgstr "spådom (fortune) fejlede"
-#: ../IkiWiki/Plugin/git.pm:618 ../IkiWiki/Plugin/git.pm:636
+#: ../IkiWiki/Plugin/git.pm:624 ../IkiWiki/Plugin/git.pm:642
#: ../IkiWiki/Receive.pm:129
#, fuzzy, perl-format
msgid "you are not allowed to change %s"
msgstr "du er ikke logget på som en administrator"
-#: ../IkiWiki/Plugin/git.pm:658
+#: ../IkiWiki/Plugin/git.pm:664
#, perl-format
msgid "you cannot act on a file with mode %s"
msgstr ""
-#: ../IkiWiki/Plugin/git.pm:662
+#: ../IkiWiki/Plugin/git.pm:668
#, fuzzy
msgid "you are not allowed to change file modes"
msgstr "du er ikke logget på som en administrator"
@@ -343,6 +356,15 @@ msgstr "Skal angive %s når google søgeudvidelsen bruges"
msgid "Failed to parse url, cannot determine domain name"
msgstr "Tolkning af URL mislykkedes, kan ikke afgøre domænenavn"
+#: ../IkiWiki/Plugin/goto.pm:49
+msgid "missing page"
+msgstr "manglende side"
+
+#: ../IkiWiki/Plugin/goto.pm:51
+#, perl-format
+msgid "The page %s does not exist."
+msgstr "Siden %s eksisterer ikke."
+
#: ../IkiWiki/Plugin/graphviz.pm:67
msgid "failed to run graphviz"
msgstr "graphviz-kørsel mislykkedes"
@@ -406,7 +428,7 @@ msgstr "ikke-eksisterende skabelon: %s"
msgid "Discussion"
msgstr "Diskussion"
-#: ../IkiWiki/Plugin/inline.pm:587
+#: ../IkiWiki/Plugin/inline.pm:593
msgid "RPC::XML::Client not found, not pinging"
msgstr "RPC::XML::Client ikke fundet, pinger ikke"
@@ -431,15 +453,15 @@ msgstr ""
"Indlæsning af perl-modulet Markdown.pm (%s) eller /usr/bin/markdown (%s) "
"mislykkedes"
-#: ../IkiWiki/Plugin/meta.pm:151
+#: ../IkiWiki/Plugin/meta.pm:158
msgid "stylesheet not found"
msgstr "stilsnit (stylesheet) ikke fundet"
-#: ../IkiWiki/Plugin/meta.pm:185
+#: ../IkiWiki/Plugin/meta.pm:192
msgid "redir page not found"
msgstr "henvisningsside ikke fundet"
-#: ../IkiWiki/Plugin/meta.pm:198
+#: ../IkiWiki/Plugin/meta.pm:205
msgid "redir cycle is not allowed"
msgstr "ring af henvisninger er ikke tilladt"
@@ -720,18 +742,19 @@ msgstr "behøver Digest::SHA1 til indeks %s"
msgid "search"
msgstr "søg"
-#: ../IkiWiki/Plugin/shortcut.pm:28
-msgid "shortcut plugin will not work without a shortcuts.mdwn"
+#: ../IkiWiki/Plugin/shortcut.pm:31
+#, fuzzy, perl-format
+msgid "shortcut plugin will not work without %s"
msgstr "genvejsudvidelsen vil ikke fungere uden en shortcuts.mdwn"
-#: ../IkiWiki/Plugin/shortcut.pm:38
+#: ../IkiWiki/Plugin/shortcut.pm:44
msgid "missing name or url parameter"
msgstr "manglende navn eller url parameter"
#. translators: This is used to display what shortcuts are defined.
#. translators: First parameter is the name of the shortcut, the second
#. translators: is an URL.
-#: ../IkiWiki/Plugin/shortcut.pm:48
+#: ../IkiWiki/Plugin/shortcut.pm:54
#, perl-format
msgid "shortcut %s points to <i>%s</i>"
msgstr "genvej %s viser til <i>%s</i>"
@@ -793,16 +816,16 @@ msgstr "Direkte datanedlastning"
msgid "parse fail at line %d: %s"
msgstr "afkodningsfejl på linje %d: %s"
-#: ../IkiWiki/Plugin/template.pm:28
+#: ../IkiWiki/Plugin/template.pm:29
msgid "missing id parameter"
msgstr "manglende id-parameter"
-#: ../IkiWiki/Plugin/template.pm:35
+#: ../IkiWiki/Plugin/template.pm:36
#, perl-format
msgid "template %s not found"
msgstr "skabelon %s ikke fundet"
-#: ../IkiWiki/Plugin/template.pm:54
+#: ../IkiWiki/Plugin/template.pm:55
msgid "failed to process:"
msgstr "dannelsen mislykkedes:"
@@ -827,10 +850,6 @@ msgstr "udvidelse"
msgid "enable %s?"
msgstr "aktivér %s?"
-#: ../IkiWiki/Plugin/websetup.pm:236
-msgid "you are not logged in as an admin"
-msgstr "du er ikke logget på som en administrator"
-
#: ../IkiWiki/Plugin/websetup.pm:240
msgid "setup file for this wiki is not known"
msgstr "opsætningsfilen for denne wiki er ukendt"
@@ -939,16 +958,16 @@ msgstr "ikiwiki: kan ikke danne %s"
msgid "cannot read %s: %s"
msgstr "kan ikke læse %s: %s"
-#: ../IkiWiki/Setup/Automator.pm:33
+#: ../IkiWiki/Setup/Automator.pm:34
msgid "you must enter a wikiname (that contains alphanumerics)"
msgstr "du skal angive et wikinavn (som indeholder alfanumeriske tegn)"
-#: ../IkiWiki/Setup/Automator.pm:67
+#: ../IkiWiki/Setup/Automator.pm:68
#, perl-format
msgid "unsupported revision control system %s"
msgstr "revisionskontrolsystem %s ikke understøttet"
-#: ../IkiWiki/Setup/Automator.pm:93
+#: ../IkiWiki/Setup/Automator.pm:94
msgid "failed to set up the repository with ikiwiki-makerepo"
msgstr "opsætning af depotet med ikiwiki-makerepo mislykkedes"
@@ -965,21 +984,14 @@ msgstr "kan ikke oprette en wrapper som bruger en opsætningsfil"
msgid "wrapper filename not specified"
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:97
-#, perl-format
-msgid "failed to write %s: %s"
-msgstr "skrivning ad %s mislykkedes: %s"
-
#. translators: The parameter is a C filename.
-#: ../IkiWiki/Wrapper.pm:154
+#: ../IkiWiki/Wrapper.pm:152
#, perl-format
msgid "failed to compile %s"
msgstr "kompilering af %s mislykkedes"
#. translators: The parameter is a filename.
-#: ../IkiWiki/Wrapper.pm:174
+#: ../IkiWiki/Wrapper.pm:172
#, perl-format
msgid "successfully generated %s"
msgstr "Korrekt bygget %s"
@@ -996,15 +1008,15 @@ msgstr " ikiwiki --setup opsætningsfil"
msgid "usage: --set var=value"
msgstr "brug: --set var=værdi"
-#: ../ikiwiki.in:139
+#: ../ikiwiki.in:140
msgid "generating wrappers.."
msgstr "bygger wrappers.."
-#: ../ikiwiki.in:197
+#: ../ikiwiki.in:199
msgid "rebuilding wiki.."
msgstr "genopbygger wiki..."
-#: ../ikiwiki.in:200
+#: ../ikiwiki.in:202
msgid "refreshing wiki.."
msgstr "genopfrisker wiki..."
@@ -1022,12 +1034,12 @@ msgid "failed to load external plugin needed for %s plugin: %s"
msgstr ""
"indlæsning af ekstern udvidelse krævet af udvidelsen %s mislykkedes: %s"
-#: ../IkiWiki.pm:1187
+#: ../IkiWiki.pm:1192
#, perl-format
msgid "preprocessing loop detected on %s at depth %i"
msgstr "forudberegningssløkke fundet på %s ved dybde %i"
-#: ../IkiWiki.pm:1661
+#: ../IkiWiki.pm:1730
msgid "yes"
msgstr "ja"
@@ -1052,6 +1064,9 @@ msgstr "Hvilken wiki bruger (eller openid) skal være administrator?"
msgid "What is the domain name of the web server?"
msgstr "Hvad er domænenavnet på webserveren?"
+#~ msgid "failed to write %s: %s"
+#~ msgstr "skrivning ad %s mislykkedes: %s"
+
#~ msgid "failed to find url in html"
#~ msgstr "lokalisering af url i html mislykkedes"
diff --git a/po/de.po b/po/de.po
index 990246595..98aafe580 100644
--- a/po/de.po
+++ b/po/de.po
@@ -1,13 +1,13 @@
# German translation of the ikiwiki language file resulting in de.po
-# Copyright © 2008 Kai Wasserbäch <debian@carbon-project.org>
+# Copyright © 2008-2009 Kai Wasserbäch <debian@carbon-project.org>
# This file is distributed under the same license as the ikiwiki package.
#
msgid ""
msgstr ""
-"Project-Id-Version: ikiwiki 2.70\n"
+"Project-Id-Version: ikiwiki 3.06\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-01-17 18:19-0500\n"
-"PO-Revision-Date: 2008-11-20 19:58+0100\n"
+"POT-Creation-Date: 2009-03-01 15:03-0500\n"
+"PO-Revision-Date: 2009-03-02 15:39+0100\n"
"Last-Translator: Kai Wasserbäch <debian@carbon-project.org>\n"
"Language-Team: German <debian-l10n-german@lists.debian.org>\n"
"MIME-Version: 1.0\n"
@@ -18,36 +18,44 @@ msgstr ""
msgid "You need to log in first."
msgstr "Sie müssen sich zuerst anmelden."
-#: ../IkiWiki/CGI.pm:145
+#: ../IkiWiki/CGI.pm:146
+msgid ""
+"probable misconfiguration: sslcookie is set, but you are attepting to login "
+"via http, not https"
+msgstr ""
+"mögliche Fehlkonfiguration: »sslcookie« ist gesetzt, aber Sie versuchen sich "
+"mittels HTTP und nicht HTTPS anzumelden"
+
+#: ../IkiWiki/CGI.pm:149
msgid "login failed, perhaps you need to turn on cookies?"
msgstr ""
"Anmeldung fehlgeschlagen, möglicherweise müssen Sie zuvor Cookies aktivieren?"
-#: ../IkiWiki/CGI.pm:163 ../IkiWiki/CGI.pm:280
+#: ../IkiWiki/CGI.pm:168 ../IkiWiki/CGI.pm:299
msgid "Your login session has expired."
msgstr "Ihre Anmeldung für die aktuelle Sitzung ist abgelaufen."
-#: ../IkiWiki/CGI.pm:184
+#: ../IkiWiki/CGI.pm:189
msgid "Login"
msgstr "Anmelden"
-#: ../IkiWiki/CGI.pm:185
+#: ../IkiWiki/CGI.pm:190
msgid "Preferences"
msgstr "Einstellungen"
-#: ../IkiWiki/CGI.pm:186
+#: ../IkiWiki/CGI.pm:191
msgid "Admin"
msgstr "Administrator"
-#: ../IkiWiki/CGI.pm:226
+#: ../IkiWiki/CGI.pm:231
msgid "Preferences saved."
msgstr "Einstellungen gespeichert."
-#: ../IkiWiki/CGI.pm:241
+#: ../IkiWiki/CGI.pm:262
msgid "You are banned."
msgstr "Sie sind ausgeschlossen worden."
-#: ../IkiWiki/CGI.pm:371 ../IkiWiki/CGI.pm:372 ../IkiWiki.pm:1204
+#: ../IkiWiki/CGI.pm:390 ../IkiWiki/CGI.pm:391 ../IkiWiki.pm:1209
msgid "Error"
msgstr "Fehler"
@@ -119,7 +127,7 @@ msgstr "(Feed-Entitäten maskiert)"
msgid "feed crashed XML::Feed!"
msgstr "Feed führte zum Absturz von XML::Feed!"
-#: ../IkiWiki/Plugin/aggregate.pm:605
+#: ../IkiWiki/Plugin/aggregate.pm:610
#, perl-format
msgid "creating new page %s"
msgstr "erstelle neue Seite %s"
@@ -128,7 +136,7 @@ msgstr "erstelle neue Seite %s"
msgid "deleting bucket.."
msgstr "Lösche Bucket..."
-#: ../IkiWiki/Plugin/amazon_s3.pm:38 ../ikiwiki.in:208
+#: ../IkiWiki/Plugin/amazon_s3.pm:38 ../ikiwiki.in:210
msgid "done"
msgstr "fertig"
@@ -170,17 +178,15 @@ msgstr "Anhang hochladen"
msgid "automatic index generation"
msgstr "automatische Index-Erstellung"
-#: ../IkiWiki/Plugin/blogspam.pm:102
+#: ../IkiWiki/Plugin/blogspam.pm:105
msgid ""
"Sorry, but that looks like spam to <a href=\"http://blogspam.net/"
"\">blogspam</a>: "
msgstr ""
+"Entschuldigung, aber <a href=\"http://blogspam.net/\">blogspam</a> stuft das "
+"als Spam ein: "
-#: ../IkiWiki/Plugin/blogspam.pm:105
-msgid "blogspam server failure: "
-msgstr ""
-
-#: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:296
+#: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:233
#: ../IkiWiki/Plugin/inline.pm:354 ../IkiWiki/Plugin/opendiscussion.pm:26
#: ../IkiWiki/Plugin/orphans.pm:37 ../IkiWiki/Render.pm:79
#: ../IkiWiki/Render.pm:149
@@ -196,59 +202,73 @@ msgstr "%s von %s"
msgid "There are no broken links!"
msgstr "Es gibt keine ungültigen Links!"
-#: ../IkiWiki/Plugin/comments.pm:120 ../IkiWiki/Plugin/format.pm:23
+#: ../IkiWiki/Plugin/comments.pm:122 ../IkiWiki/Plugin/format.pm:23
#, perl-format
msgid "unsupported page format %s"
msgstr "nicht unterstütztes Seitenformat %s"
-#: ../IkiWiki/Plugin/comments.pm:125
+#: ../IkiWiki/Plugin/comments.pm:127
msgid "comment must have content"
-msgstr ""
+msgstr "Kommentare dürfen nicht leer sein."
-#: ../IkiWiki/Plugin/comments.pm:181
+#: ../IkiWiki/Plugin/comments.pm:183
msgid "Anonymous"
-msgstr ""
-
-#: ../IkiWiki/Plugin/comments.pm:252 ../IkiWiki/Plugin/recentchanges.pm:110
-msgid "missing page"
-msgstr "fehlende Seite"
+msgstr "Anonymer Benutzer"
-#: ../IkiWiki/Plugin/comments.pm:254 ../IkiWiki/Plugin/recentchanges.pm:112
-#, perl-format
-msgid "The page %s does not exist."
-msgstr "Die Seite %s existiert nicht."
-
-#: ../IkiWiki/Plugin/comments.pm:343 ../IkiWiki/Plugin/editpage.pm:160
+#: ../IkiWiki/Plugin/comments.pm:326 ../IkiWiki/Plugin/editpage.pm:97
msgid "bad page name"
msgstr "fehlerhafter Seitenname"
-#: ../IkiWiki/Plugin/comments.pm:348
-#, fuzzy, perl-format
+#: ../IkiWiki/Plugin/comments.pm:331
+#, perl-format
msgid "commenting on %s"
-msgstr "erstelle %s"
+msgstr "kommentiere %s"
-#: ../IkiWiki/Plugin/comments.pm:366
+#: ../IkiWiki/Plugin/comments.pm:349
#, perl-format
msgid "page '%s' doesn't exist, so you can't comment"
msgstr ""
+"Die Seite »%s« existiert nicht, deshalb können Sie sie nicht kommentieren."
-#: ../IkiWiki/Plugin/comments.pm:373
+#: ../IkiWiki/Plugin/comments.pm:356
#, perl-format
msgid "comments on page '%s' are closed"
msgstr ""
+"Es können keine weiteren Kommentare für die Seite »%s« abgegeben werden."
-#: ../IkiWiki/Plugin/comments.pm:493
-msgid "Added a comment"
+#: ../IkiWiki/Plugin/comments.pm:450
+msgid "comment stored for moderation"
+msgstr "Kommentar wurde gespeichert und erwartet Freischaltung."
+
+#: ../IkiWiki/Plugin/comments.pm:452
+msgid "Your comment will be posted after moderator review"
msgstr ""
+"Ihr Kommentar wird freigegeben, nachdem ein Moderator ihn überprüft hat."
-#: ../IkiWiki/Plugin/comments.pm:497
+#: ../IkiWiki/Plugin/comments.pm:465
+msgid "Added a comment"
+msgstr "Kommentar hinzugefügt."
+
+#: ../IkiWiki/Plugin/comments.pm:469
#, perl-format
msgid "Added a comment: %s"
-msgstr ""
+msgstr "Kommentar hinzugefügt: %s"
-#: ../IkiWiki/Plugin/comments.pm:611
+#: ../IkiWiki/Plugin/comments.pm:510 ../IkiWiki/Plugin/websetup.pm:236
+msgid "you are not logged in as an admin"
+msgstr "Sie sind nicht als Administrator angemeldet"
+
+#: ../IkiWiki/Plugin/comments.pm:561
+msgid "Comment moderation"
+msgstr "Kommentarmoderation"
+
+#: ../IkiWiki/Plugin/comments.pm:600
+msgid "comment moderation"
+msgstr "Kommentarmoderation"
+
+#: ../IkiWiki/Plugin/comments.pm:751
msgid "Comments"
-msgstr ""
+msgstr "Kommentare"
#: ../IkiWiki/Plugin/conditional.pm:27 ../IkiWiki/Plugin/cutpaste.pm:30
#: ../IkiWiki/Plugin/cutpaste.pm:45 ../IkiWiki/Plugin/cutpaste.pm:61
@@ -271,19 +291,19 @@ msgstr "es wurde kein Text in die Seite mit der ID %s kopiert"
msgid "removing old preview %s"
msgstr "entferne alte Vorschau %s"
-#: ../IkiWiki/Plugin/editpage.pm:176
+#: ../IkiWiki/Plugin/editpage.pm:113
#, perl-format
msgid "%s is not an editable page"
-msgstr "%s ist keine bearbeitbare Seite"
+msgstr "Die Seite %s kann nicht bearbeitet werden"
-#: ../IkiWiki/Plugin/editpage.pm:352
+#: ../IkiWiki/Plugin/editpage.pm:289
#, perl-format
msgid "creating %s"
msgstr "erstelle %s"
-#: ../IkiWiki/Plugin/editpage.pm:370 ../IkiWiki/Plugin/editpage.pm:389
-#: ../IkiWiki/Plugin/editpage.pm:399 ../IkiWiki/Plugin/editpage.pm:443
-#: ../IkiWiki/Plugin/editpage.pm:482
+#: ../IkiWiki/Plugin/editpage.pm:307 ../IkiWiki/Plugin/editpage.pm:326
+#: ../IkiWiki/Plugin/editpage.pm:336 ../IkiWiki/Plugin/editpage.pm:380
+#: ../IkiWiki/Plugin/editpage.pm:419
#, perl-format
msgid "editing %s"
msgstr "bearbeite %s"
@@ -299,32 +319,32 @@ msgstr "Übereinstimmung nicht angegeben"
#: ../IkiWiki/Plugin/edittemplate.pm:62
#, perl-format
msgid "edittemplate %s registered for %s"
-msgstr "»edittemplate« %s registriert für %s"
+msgstr "»edittemplate« %s für %s registriert."
#: ../IkiWiki/Plugin/edittemplate.pm:133
msgid "failed to process"
-msgstr "Bearbeitung fehlgeschlagen"
+msgstr "Verarbeitung fehlgeschlagen"
#: ../IkiWiki/Plugin/format.pm:20
msgid "must specify format and text"
-msgstr "Format und Text muss spezifiziert werden"
+msgstr "Format und Text müssen spezifiziert werden"
#: ../IkiWiki/Plugin/fortune.pm:27
msgid "fortune failed"
msgstr "»fortune« fehlgeschlagen"
-#: ../IkiWiki/Plugin/git.pm:618 ../IkiWiki/Plugin/git.pm:636
+#: ../IkiWiki/Plugin/git.pm:624 ../IkiWiki/Plugin/git.pm:642
#: ../IkiWiki/Receive.pm:129
#, perl-format
msgid "you are not allowed to change %s"
msgstr "es ist Ihnen nicht erlaubt, %s zu ändern"
-#: ../IkiWiki/Plugin/git.pm:658
+#: ../IkiWiki/Plugin/git.pm:664
#, perl-format
msgid "you cannot act on a file with mode %s"
msgstr "Sie können Dateien mit den Zugriffsrechten %s nicht verändern"
-#: ../IkiWiki/Plugin/git.pm:662
+#: ../IkiWiki/Plugin/git.pm:668
msgid "you are not allowed to change file modes"
msgstr "Es ist Ihnen nicht erlaubt, Dateizugriffsrechte zu ändern"
@@ -339,9 +359,18 @@ msgid "Failed to parse url, cannot determine domain name"
msgstr ""
"Verarbeiten der URL fehlgeschlagen, konnte Domainnamen nicht feststellen"
+#: ../IkiWiki/Plugin/goto.pm:49
+msgid "missing page"
+msgstr "fehlende Seite"
+
+#: ../IkiWiki/Plugin/goto.pm:51
+#, perl-format
+msgid "The page %s does not exist."
+msgstr "Die Seite %s existiert nicht."
+
#: ../IkiWiki/Plugin/graphviz.pm:67
msgid "failed to run graphviz"
-msgstr "konnte graphviz nicht ausführen"
+msgstr "graphviz konnte nicht ausgeführt werden"
#: ../IkiWiki/Plugin/graphviz.pm:94
msgid "prog not a valid graphviz program"
@@ -404,7 +433,7 @@ msgstr "nicht-vorhandene Vorlage %s"
msgid "Discussion"
msgstr "Diskussion"
-#: ../IkiWiki/Plugin/inline.pm:587
+#: ../IkiWiki/Plugin/inline.pm:593
msgid "RPC::XML::Client not found, not pinging"
msgstr "RPC::XML::Client nicht gefunden, führe Ping nicht aus"
@@ -429,15 +458,15 @@ msgstr ""
"Laden des Perl-Moduls »Markdown.pm« (%s) oder »/usr/bin/markdown« (%s) "
"fehlgeschlagen"
-#: ../IkiWiki/Plugin/meta.pm:151
+#: ../IkiWiki/Plugin/meta.pm:158
msgid "stylesheet not found"
msgstr "Stylesheet nicht gefunden"
-#: ../IkiWiki/Plugin/meta.pm:185
+#: ../IkiWiki/Plugin/meta.pm:192
msgid "redir page not found"
msgstr "Umleitungsseite nicht gefunden"
-#: ../IkiWiki/Plugin/meta.pm:198
+#: ../IkiWiki/Plugin/meta.pm:205
msgid "redir cycle is not allowed"
msgstr "Zyklische Umleitungen sind nicht erlaubt"
@@ -501,7 +530,7 @@ msgstr "Fehlerhafte URL zum Zurücksetzen des Passworts"
#: ../IkiWiki/Plugin/passwordauth.pm:331
msgid "password reset denied"
-msgstr "Zurücksetzen des Passworts verboten"
+msgstr "Zurücksetzen des Passworts abgelehnt"
#: ../IkiWiki/Plugin/pingee.pm:30
msgid "Ping received."
@@ -514,7 +543,7 @@ msgstr "erfordert die Parameter »from« und »to«"
#: ../IkiWiki/Plugin/pinger.pm:58
#, perl-format
msgid "Will ping %s"
-msgstr "Werde Ping %s senden"
+msgstr "Werde Ping an %s senden"
#: ../IkiWiki/Plugin/pinger.pm:61
#, perl-format
@@ -620,11 +649,13 @@ msgstr "Unzulässiger Prozentwert (%s)"
#: ../IkiWiki/Plugin/progress.pm:59
msgid "need either `percent` or `totalpages` and `donepages` parameters"
-msgstr "Benötige entweder »percent«- oder »totalpages«- und »donepages«-Parameter"
+msgstr ""
+"Es werden entweder »percent«- oder »totalpages«- und »donepages«-Parameter "
+"benötigt"
#: ../IkiWiki/Plugin/recentchangesdiff.pm:37
msgid "(Diff truncated)"
-msgstr "(Diff beschnitten)"
+msgstr "(Diff verkürzt)"
#: ../IkiWiki/Plugin/remove.pm:31 ../IkiWiki/Plugin/rename.pm:36
#, perl-format
@@ -687,11 +718,11 @@ msgstr "benenne %s um"
#: ../IkiWiki/Plugin/rename.pm:138
msgid "Also rename SubPages and attachments"
-msgstr "Auch SubPages und Anhänge umbenennen"
+msgstr "Auch Unterseiten und Anhänge umbenennen"
#: ../IkiWiki/Plugin/rename.pm:224
msgid "Only one attachment can be renamed at a time."
-msgstr "Es kann immer nur ein Anhang zur Zeit umbenannt werden."
+msgstr "Es kann immer nur ein Anhang gleichzeitig umbenannt werden."
#: ../IkiWiki/Plugin/rename.pm:227
msgid "Please select the attachment to rename."
@@ -721,21 +752,22 @@ msgstr "Benötige Digest::SHA1, um %s zu indexieren"
msgid "search"
msgstr "suchen"
-#: ../IkiWiki/Plugin/shortcut.pm:28
-msgid "shortcut plugin will not work without a shortcuts.mdwn"
-msgstr "die »shortcut«-Erweiterung funktioniert nicht ohne eine »shortcuts.mdwn«"
+#: ../IkiWiki/Plugin/shortcut.pm:31
+#, perl-format
+msgid "shortcut plugin will not work without %s"
+msgstr "die »shortcut«-Erweiterung funktioniert nicht ohne %s"
-#: ../IkiWiki/Plugin/shortcut.pm:38
+#: ../IkiWiki/Plugin/shortcut.pm:44
msgid "missing name or url parameter"
msgstr "fehlender Name oder URL-Parameter"
#. translators: This is used to display what shortcuts are defined.
#. translators: First parameter is the name of the shortcut, the second
#. translators: is an URL.
-#: ../IkiWiki/Plugin/shortcut.pm:48
+#: ../IkiWiki/Plugin/shortcut.pm:54
#, perl-format
msgid "shortcut %s points to <i>%s</i>"
-msgstr "Shortcut %s zeigt auf <i>%s</i>"
+msgstr "Tastenkürzel %s verweist auf <i>%s</i>"
#: ../IkiWiki/Plugin/smiley.pm:43
msgid "failed to parse any smileys"
@@ -771,11 +803,11 @@ msgstr "fehlerhafte Breitenangabe"
#: ../IkiWiki/Plugin/sparkline.pm:153
msgid "failed to run php"
-msgstr "konnte PHP nicht ausführen"
+msgstr "PHP konnte nicht ausgeführt werden"
#: ../IkiWiki/Plugin/table.pm:31
msgid "cannot find file"
-msgstr "konnte Datei nicht finden"
+msgstr "Datei konnte nicht gefunden werden"
#: ../IkiWiki/Plugin/table.pm:87
msgid "unknown data format"
@@ -794,16 +826,16 @@ msgstr "Direkter Daten-Download"
msgid "parse fail at line %d: %s"
msgstr "Verarbeitungsfehler in Zeile %d: %s"
-#: ../IkiWiki/Plugin/template.pm:28
+#: ../IkiWiki/Plugin/template.pm:29
msgid "missing id parameter"
msgstr "fehlender »id«-Parameter"
-#: ../IkiWiki/Plugin/template.pm:35
+#: ../IkiWiki/Plugin/template.pm:36
#, perl-format
msgid "template %s not found"
msgstr "Vorlage %s nicht gefunden"
-#: ../IkiWiki/Plugin/template.pm:54
+#: ../IkiWiki/Plugin/template.pm:55
msgid "failed to process:"
msgstr "Verarbeitung fehlgeschlagen von:"
@@ -828,10 +860,6 @@ msgstr "Erweiterung"
msgid "enable %s?"
msgstr "%s aktivieren?"
-#: ../IkiWiki/Plugin/websetup.pm:236
-msgid "you are not logged in as an admin"
-msgstr "Sie sind nicht als Administrator angemeldet"
-
#: ../IkiWiki/Plugin/websetup.pm:240
msgid "setup file for this wiki is not known"
msgstr "Die Einrichtungsdatei für dieses Wiki ist unbekannt"
@@ -849,15 +877,15 @@ msgid ""
"The configuration changes shown below require a wiki rebuild to take effect."
msgstr ""
"Die unten aufgeführten Konfigurationsänderungen erfordern eine erneute "
-"Erzeugung des Wikis, um aktiv zu werden."
+"Erzeugung des Wikis, um aktiviert zu werden."
#: ../IkiWiki/Plugin/websetup.pm:399
msgid ""
"For the configuration changes shown below to fully take effect, you may need "
"to rebuild the wiki."
msgstr ""
-"Damit die unten aufgeführten Konfigurationsänderungen aktiv werden, kann es "
-"erforderlich sein, das Wiki neu zu erzeugen."
+"Damit die unten aufgeführten Konfigurationsänderungen aktiviert werden, kann "
+"es erforderlich sein, das Wiki neu zu erzeugen."
#: ../IkiWiki/Plugin/websetup.pm:433
#, perl-format
@@ -912,7 +940,7 @@ msgstr "erzeuge %s"
#: ../IkiWiki/Render.pm:426
#, perl-format
msgid "rendering %s, which links to %s"
-msgstr "erzeuge %s, die auf %s verweist"
+msgstr "erzeuge %s, die auf %s verlinkt"
#: ../IkiWiki/Render.pm:447
#, perl-format
@@ -941,17 +969,17 @@ msgstr "ikiwiki: kann %s nicht erzeugen"
msgid "cannot read %s: %s"
msgstr "kann %s nicht lesen: %s"
-#: ../IkiWiki/Setup/Automator.pm:33
+#: ../IkiWiki/Setup/Automator.pm:34
msgid "you must enter a wikiname (that contains alphanumerics)"
msgstr ""
"Sie müssen einen Wiki-Namen eingeben (der alphanumerische Zeichen enthält)"
-#: ../IkiWiki/Setup/Automator.pm:67
+#: ../IkiWiki/Setup/Automator.pm:68
#, perl-format
msgid "unsupported revision control system %s"
msgstr "Nicht unterstütztes Versionskontrollsystem %s"
-#: ../IkiWiki/Setup/Automator.pm:93
+#: ../IkiWiki/Setup/Automator.pm:94
msgid "failed to set up the repository with ikiwiki-makerepo"
msgstr "Erstellen des Depots mit ikiwiki-makerepo ist fehlgeschlagen"
@@ -968,28 +996,21 @@ msgstr "Kann keinen Wrapper erzeugen, der eine Einrichtungsdatei verwendet"
msgid "wrapper filename not specified"
msgstr "Dateiname des Wrappers nicht angegeben"
-#. translators: The first parameter is a filename, and the second is
-#. translators: a (probably not translated) error message.
-#: ../IkiWiki/Wrapper.pm:97
-#, perl-format
-msgid "failed to write %s: %s"
-msgstr "Schreiben von %s fehlgeschlagen: %s"
-
#. translators: The parameter is a C filename.
-#: ../IkiWiki/Wrapper.pm:154
+#: ../IkiWiki/Wrapper.pm:152
#, perl-format
msgid "failed to compile %s"
msgstr "Erzeugen von %s fehlgeschlagen"
#. translators: The parameter is a filename.
-#: ../IkiWiki/Wrapper.pm:174
+#: ../IkiWiki/Wrapper.pm:172
#, perl-format
msgid "successfully generated %s"
msgstr "%s wurde erfolgreich erstellt"
#: ../ikiwiki.in:13
msgid "usage: ikiwiki [options] source dest"
-msgstr "Benutzung: ikiwiki [Optionen] Quelle Ziel"
+msgstr "Aufruf: ikiwiki [Optionen] Quelle Ziel"
#: ../ikiwiki.in:14
msgid " ikiwiki --setup configfile"
@@ -997,17 +1018,17 @@ msgstr " ikiwiki --setup Konfigurationsdatei "
#: ../ikiwiki.in:91
msgid "usage: --set var=value"
-msgstr "Benutzung: --set Variable=Wert"
+msgstr "Aufruf: --set Variable=Wert"
-#: ../ikiwiki.in:139
+#: ../ikiwiki.in:140
msgid "generating wrappers.."
msgstr "erzeuge Wrapper..."
-#: ../ikiwiki.in:197
+#: ../ikiwiki.in:199
msgid "rebuilding wiki.."
msgstr "erzeuge Wiki neu..."
-#: ../ikiwiki.in:200
+#: ../ikiwiki.in:202
msgid "refreshing wiki.."
msgstr "aktualisiere Wiki..."
@@ -1019,19 +1040,20 @@ msgstr ""
#: ../IkiWiki.pm:526
msgid "cannot use multiple rcs plugins"
-msgstr "Kann nicht mehrere Versionskontrollsystem-Erweiterungen verwenden"
+msgstr ""
+"Es können nicht mehrere Versionskontrollsystem-Erweiterungen verwandt werden"
#: ../IkiWiki.pm:555
#, perl-format
msgid "failed to load external plugin needed for %s plugin: %s"
msgstr "Laden der für %s benötigten externen Erweiterung fehlgeschlagen: %s"
-#: ../IkiWiki.pm:1187
+#: ../IkiWiki.pm:1192
#, perl-format
msgid "preprocessing loop detected on %s at depth %i"
msgstr "Präprozessorschleife auf %s in Tiefe %i erkannt"
-#: ../IkiWiki.pm:1661
+#: ../IkiWiki.pm:1730
msgid "yes"
msgstr "ja"
@@ -1048,7 +1070,6 @@ msgid "What revision control system to use?"
msgstr "Welches Versionskontrollsystem soll verwandt werden?"
#: ../auto.setup:20
-#, fuzzy
msgid "What wiki user (or openid) will be admin?"
msgstr ""
"Welcher Wiki-Benutzer (oder welche OpenID) soll der Administrator des Wikis "
@@ -1057,6 +1078,3 @@ msgstr ""
#: ../auto.setup:23
msgid "What is the domain name of the web server?"
msgstr "Wie lautet der Domainname des Webservers?"
-
-#~ msgid "failed to find url in html"
-#~ msgstr "URL in HTML nicht gefunden"
diff --git a/po/es.po b/po/es.po
index db8fce8da..abd44ee32 100644
--- a/po/es.po
+++ b/po/es.po
@@ -1,55 +1,63 @@
# translation of es.po to spanish
+# translation of es.po to
# ikiwiki spanish translation
# Copyright (C) 2007, 2009 The Free Software Foundation, Inc
# This file is distributed under the same license as the ikiwiki package.
#
# Víctor Moral <victor@taquiones.net>, 2007, 2009.
+# Victor Moral <victor@taquiones.net>, 2009.
msgid ""
msgstr ""
"Project-Id-Version: es\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-01-17 18:19-0500\n"
-"PO-Revision-Date: 2009-01-19 08:58+0100\n"
+"POT-Creation-Date: 2009-03-01 15:03-0500\n"
+"PO-Revision-Date: 2009-03-03 10:48+0100\n"
+"Last-Translator: Víctor Moral <victor@taquiones.net>\n"
"Language-Team: spanish <es@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Last-Translator: Víctor Moral <victor@taquiones.net>\n"
"X-Generator: KBabel 1.11.4\n"
#: ../IkiWiki/CGI.pm:113
msgid "You need to log in first."
msgstr "Antes es necesario identificarse."
-#: ../IkiWiki/CGI.pm:145
+#: ../IkiWiki/CGI.pm:146
+msgid ""
+"probable misconfiguration: sslcookie is set, but you are attepting to login "
+"via http, not https"
+msgstr "probablemente algo está mal configurado: la característica 'sslcookie' está activa, pero está intentando registrarse en el sistema vía el protocolo 'http' y no 'https'"
+
+#: ../IkiWiki/CGI.pm:149
msgid "login failed, perhaps you need to turn on cookies?"
msgstr "registro fallido, ¿ tal vez necesita activar las cookies en el navegador ?"
-#: ../IkiWiki/CGI.pm:163 ../IkiWiki/CGI.pm:280
+#: ../IkiWiki/CGI.pm:168 ../IkiWiki/CGI.pm:299
msgid "Your login session has expired."
msgstr "Su registro en el sistema ha expirado."
-#: ../IkiWiki/CGI.pm:184
+#: ../IkiWiki/CGI.pm:189
msgid "Login"
msgstr "Identificación"
-#: ../IkiWiki/CGI.pm:185
+#: ../IkiWiki/CGI.pm:190
msgid "Preferences"
msgstr "Preferencias"
-#: ../IkiWiki/CGI.pm:186
+#: ../IkiWiki/CGI.pm:191
msgid "Admin"
msgstr "Administración"
-#: ../IkiWiki/CGI.pm:226
+#: ../IkiWiki/CGI.pm:231
msgid "Preferences saved."
msgstr "Las preferencias se han guardado."
-#: ../IkiWiki/CGI.pm:241
+#: ../IkiWiki/CGI.pm:262
msgid "You are banned."
msgstr "Ha sido expulsado."
-#: ../IkiWiki/CGI.pm:371 ../IkiWiki/CGI.pm:372 ../IkiWiki.pm:1204
+#: ../IkiWiki/CGI.pm:390 ../IkiWiki/CGI.pm:391 ../IkiWiki.pm:1209
msgid "Error"
msgstr "Error"
@@ -121,7 +129,7 @@ msgstr "(los caracteres especiales de la fuente de datos están exceptuados)"
msgid "feed crashed XML::Feed!"
msgstr "¡ la fuente de datos ha provocado un error fatal en XML::Feed !"
-#: ../IkiWiki/Plugin/aggregate.pm:605
+#: ../IkiWiki/Plugin/aggregate.pm:610
#, perl-format
msgid "creating new page %s"
msgstr "creando nueva página %s"
@@ -130,7 +138,7 @@ msgstr "creando nueva página %s"
msgid "deleting bucket.."
msgstr "borrando el directorio.."
-#: ../IkiWiki/Plugin/amazon_s3.pm:38 ../ikiwiki.in:208
+#: ../IkiWiki/Plugin/amazon_s3.pm:38 ../ikiwiki.in:210
msgid "done"
msgstr "completado"
@@ -172,17 +180,15 @@ msgstr "enviado el adjunto"
msgid "automatic index generation"
msgstr "creación de índice automática"
-#: ../IkiWiki/Plugin/blogspam.pm:102
+#: ../IkiWiki/Plugin/blogspam.pm:105
msgid ""
"Sorry, but that looks like spam to <a href=\"http://blogspam.net/"
"\">blogspam</a>: "
-msgstr "Lo siento, pero el analizador <a href=\"http://blospam.net\">blogspam</a> dice que el texto puede ser spam."
-
-#: ../IkiWiki/Plugin/blogspam.pm:105
-msgid "blogspam server failure: "
-msgstr "fallo del servidor blogspam: "
+msgstr ""
+"Lo siento, pero el analizador <a href=\"http://blospam.net\">blogspam</a> "
+"dice que el texto puede ser spam."
-#: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:296
+#: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:233
#: ../IkiWiki/Plugin/inline.pm:354 ../IkiWiki/Plugin/opendiscussion.pm:26
#: ../IkiWiki/Plugin/orphans.pm:37 ../IkiWiki/Render.pm:79
#: ../IkiWiki/Render.pm:149
@@ -198,57 +204,68 @@ msgstr "%s desde la página %s"
msgid "There are no broken links!"
msgstr "¡ No hay enlaces rotos !"
-#: ../IkiWiki/Plugin/comments.pm:120 ../IkiWiki/Plugin/format.pm:23
+#: ../IkiWiki/Plugin/comments.pm:122 ../IkiWiki/Plugin/format.pm:23
#, perl-format
msgid "unsupported page format %s"
msgstr "formato de página %s no soportado"
-#: ../IkiWiki/Plugin/comments.pm:125
+#: ../IkiWiki/Plugin/comments.pm:127
msgid "comment must have content"
msgstr "Un comentario debe tener algún contenido"
-#: ../IkiWiki/Plugin/comments.pm:181
+#: ../IkiWiki/Plugin/comments.pm:183
msgid "Anonymous"
msgstr "Anónimo"
-#: ../IkiWiki/Plugin/comments.pm:252 ../IkiWiki/Plugin/recentchanges.pm:110
-msgid "missing page"
-msgstr "página no encontrada"
-
-#: ../IkiWiki/Plugin/comments.pm:254 ../IkiWiki/Plugin/recentchanges.pm:112
-#, perl-format
-msgid "The page %s does not exist."
-msgstr "No existe la página %s."
-
-#: ../IkiWiki/Plugin/comments.pm:343 ../IkiWiki/Plugin/editpage.pm:160
+#: ../IkiWiki/Plugin/comments.pm:326 ../IkiWiki/Plugin/editpage.pm:97
msgid "bad page name"
msgstr "nombre de página erróneo"
-#: ../IkiWiki/Plugin/comments.pm:348
+#: ../IkiWiki/Plugin/comments.pm:331
#, perl-format
msgid "commenting on %s"
msgstr "creando comentarios en la página %s"
-#: ../IkiWiki/Plugin/comments.pm:366
+#: ../IkiWiki/Plugin/comments.pm:349
#, perl-format
msgid "page '%s' doesn't exist, so you can't comment"
msgstr "la página '%s' no existe, así que no se puede comentar sobre ella"
-#: ../IkiWiki/Plugin/comments.pm:373
+#: ../IkiWiki/Plugin/comments.pm:356
#, perl-format
msgid "comments on page '%s' are closed"
msgstr "los comentarios para la página '%s' están cerrados"
-#: ../IkiWiki/Plugin/comments.pm:493
+#: ../IkiWiki/Plugin/comments.pm:450
+msgid "comment stored for moderation"
+msgstr "comentario guardado a la espera de aprobación"
+
+#: ../IkiWiki/Plugin/comments.pm:452
+msgid "Your comment will be posted after moderator review"
+msgstr "Su comentario será publicado después de que el moderador lo revise"
+
+#: ../IkiWiki/Plugin/comments.pm:465
msgid "Added a comment"
msgstr "Añadir un comentario"
-#: ../IkiWiki/Plugin/comments.pm:497
+#: ../IkiWiki/Plugin/comments.pm:469
#, perl-format
msgid "Added a comment: %s"
msgstr "Comentario añadido: %s"
-#: ../IkiWiki/Plugin/comments.pm:611
+#: ../IkiWiki/Plugin/comments.pm:510 ../IkiWiki/Plugin/websetup.pm:236
+msgid "you are not logged in as an admin"
+msgstr "No está registrado como un administrador"
+
+#: ../IkiWiki/Plugin/comments.pm:561
+msgid "Comment moderation"
+msgstr "Aprobación de comentarios"
+
+#: ../IkiWiki/Plugin/comments.pm:600
+msgid "comment moderation"
+msgstr "aprobación de comentarios"
+
+#: ../IkiWiki/Plugin/comments.pm:751
msgid "Comments"
msgstr "Comentarios"
@@ -273,19 +290,19 @@ msgstr "no se ha copiado ningún texto con el identificador %s en esta pagina"
msgid "removing old preview %s"
msgstr "eliminando la antigua previsualización %s"
-#: ../IkiWiki/Plugin/editpage.pm:176
+#: ../IkiWiki/Plugin/editpage.pm:113
#, perl-format
msgid "%s is not an editable page"
msgstr "la página %s no es modificable"
-#: ../IkiWiki/Plugin/editpage.pm:352
+#: ../IkiWiki/Plugin/editpage.pm:289
#, perl-format
msgid "creating %s"
msgstr "creando página %s"
-#: ../IkiWiki/Plugin/editpage.pm:370 ../IkiWiki/Plugin/editpage.pm:389
-#: ../IkiWiki/Plugin/editpage.pm:399 ../IkiWiki/Plugin/editpage.pm:443
-#: ../IkiWiki/Plugin/editpage.pm:482
+#: ../IkiWiki/Plugin/editpage.pm:307 ../IkiWiki/Plugin/editpage.pm:326
+#: ../IkiWiki/Plugin/editpage.pm:336 ../IkiWiki/Plugin/editpage.pm:380
+#: ../IkiWiki/Plugin/editpage.pm:419
#, perl-format
msgid "editing %s"
msgstr "modificando página %s"
@@ -315,18 +332,18 @@ msgstr "se deben especificar tanto el formato como el texto"
msgid "fortune failed"
msgstr "el programa fortune ha fallado"
-#: ../IkiWiki/Plugin/git.pm:618 ../IkiWiki/Plugin/git.pm:636
+#: ../IkiWiki/Plugin/git.pm:624 ../IkiWiki/Plugin/git.pm:642
#: ../IkiWiki/Receive.pm:129
#, perl-format
msgid "you are not allowed to change %s"
msgstr "No puede cambiar %s"
-#: ../IkiWiki/Plugin/git.pm:658
+#: ../IkiWiki/Plugin/git.pm:664
#, perl-format
msgid "you cannot act on a file with mode %s"
msgstr "no puede actuar sobre un archivo con permisos %s"
-#: ../IkiWiki/Plugin/git.pm:662
+#: ../IkiWiki/Plugin/git.pm:668
msgid "you are not allowed to change file modes"
msgstr "No puede cambiar los permisos de acceso de un archivo"
@@ -341,6 +358,15 @@ msgstr ""
msgid "Failed to parse url, cannot determine domain name"
msgstr "Error en el análisis del URL, no puedo determinar el nombre del dominio"
+#: ../IkiWiki/Plugin/goto.pm:49
+msgid "missing page"
+msgstr "página no encontrada"
+
+#: ../IkiWiki/Plugin/goto.pm:51
+#, perl-format
+msgid "The page %s does not exist."
+msgstr "No existe la página %s."
+
#: ../IkiWiki/Plugin/graphviz.pm:67
msgid "failed to run graphviz"
msgstr "no he podido ejecutar el programa graphviz "
@@ -367,7 +393,7 @@ msgstr "no puedo leer de %s: %s "
#: ../IkiWiki/Plugin/img.pm:87
#, perl-format
msgid "failed to resize: %s"
-msgstr "redimensionado fallido: %s"
+msgstr "dimensionamiento fallido: %s"
#: ../IkiWiki/Plugin/img.pm:118
#, perl-format
@@ -406,7 +432,7 @@ msgstr "la plantilla %s no existe "
msgid "Discussion"
msgstr "Comentarios"
-#: ../IkiWiki/Plugin/inline.pm:587
+#: ../IkiWiki/Plugin/inline.pm:593
msgid "RPC::XML::Client not found, not pinging"
msgstr "No he encontrado el componente RPC::XML::Client, no envío señal alguna"
@@ -430,15 +456,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:151
+#: ../IkiWiki/Plugin/meta.pm:158
msgid "stylesheet not found"
msgstr "hoja de estilo no encontrada "
-#: ../IkiWiki/Plugin/meta.pm:185
+#: ../IkiWiki/Plugin/meta.pm:192
msgid "redir page not found"
msgstr "falta la página a donde redirigir"
-#: ../IkiWiki/Plugin/meta.pm:198
+#: ../IkiWiki/Plugin/meta.pm:205
msgid "redir cycle is not allowed"
msgstr "ciclo de redirección no permitido"
@@ -495,7 +521,7 @@ msgstr "No he podido enviar el mensaje de correo electrónico"
#: ../IkiWiki/Plugin/passwordauth.pm:293
msgid "You have been mailed password reset instructions."
msgstr ""
-"Las instrucciones para reinicar la contraseña se le han enviado por correo "
+"Las instrucciones para reiniciar la contraseña se le han enviado por correo "
"electrónico"
#: ../IkiWiki/Plugin/passwordauth.pm:328
@@ -722,18 +748,19 @@ msgstr "se necesita la instalación de Digest::SHA1 para indexar %s"
msgid "search"
msgstr "buscar"
-#: ../IkiWiki/Plugin/shortcut.pm:28
-msgid "shortcut plugin will not work without a shortcuts.mdwn"
-msgstr "el complemento shortcut no funciona sin una página shortcuts.mdwn"
+#: ../IkiWiki/Plugin/shortcut.pm:31
+#, perl-format
+msgid "shortcut plugin will not work without %s"
+msgstr "el complemento shortcut no funcionará si no existe la página %s"
-#: ../IkiWiki/Plugin/shortcut.pm:38
+#: ../IkiWiki/Plugin/shortcut.pm:44
msgid "missing name or url parameter"
msgstr "shortcut necesita el parámetro 'name' ó el parámetro 'url'"
#. translators: This is used to display what shortcuts are defined.
#. translators: First parameter is the name of the shortcut, the second
#. translators: is an URL.
-#: ../IkiWiki/Plugin/shortcut.pm:48
+#: ../IkiWiki/Plugin/shortcut.pm:54
#, perl-format
msgid "shortcut %s points to <i>%s</i>"
msgstr "El atajo %s apunta a <i>%s</i>"
@@ -795,16 +822,16 @@ msgstr "Enlace directo para descarga"
msgid "parse fail at line %d: %s"
msgstr "error de análisis en la línea %d: %s"
-#: ../IkiWiki/Plugin/template.pm:28
+#: ../IkiWiki/Plugin/template.pm:29
msgid "missing id parameter"
msgstr "falta el parámetro \"id\""
-#: ../IkiWiki/Plugin/template.pm:35
+#: ../IkiWiki/Plugin/template.pm:36
#, perl-format
msgid "template %s not found"
msgstr "no he encontrado la plantilla %s"
-#: ../IkiWiki/Plugin/template.pm:54
+#: ../IkiWiki/Plugin/template.pm:55
msgid "failed to process:"
msgstr "se ha producido un error fatal mientras procesaba la plantilla:"
@@ -829,10 +856,6 @@ msgstr "complemento"
msgid "enable %s?"
msgstr "¿ activar %s ?"
-#: ../IkiWiki/Plugin/websetup.pm:236
-msgid "you are not logged in as an admin"
-msgstr "No está registrado como un administrador"
-
#: ../IkiWiki/Plugin/websetup.pm:240
msgid "setup file for this wiki is not known"
msgstr "El archivo de configuración para este wiki es desconocido"
@@ -933,7 +956,7 @@ msgstr "eliminando la página %s puesto que ya no se deriva de %s"
#: ../IkiWiki/Render.pm:522
#, perl-format
msgid "ikiwiki: cannot render %s"
-msgstr "ikwiki: no puedo convertir la página %s"
+msgstr "ikiwiki: no puedo convertir la página %s"
#. translators: The first parameter is a filename, and the second
#. translators: is a (probably not translated) error message.
@@ -942,16 +965,16 @@ msgstr "ikwiki: no puedo convertir la página %s"
msgid "cannot read %s: %s"
msgstr "no puedo leer el archivo %s: %s"
-#: ../IkiWiki/Setup/Automator.pm:33
+#: ../IkiWiki/Setup/Automator.pm:34
msgid "you must enter a wikiname (that contains alphanumerics)"
msgstr "debe escribir un nombre wiki (que contiene caracteres alfanuméricos)"
-#: ../IkiWiki/Setup/Automator.pm:67
+#: ../IkiWiki/Setup/Automator.pm:68
#, perl-format
msgid "unsupported revision control system %s"
msgstr "el sistema de control de versiones %s no está soportado"
-#: ../IkiWiki/Setup/Automator.pm:93
+#: ../IkiWiki/Setup/Automator.pm:94
msgid "failed to set up the repository with ikiwiki-makerepo"
msgstr "no he podido crear un repositorio con el programa ikiwiki-makerepo"
@@ -968,21 +991,14 @@ msgstr "no puedo crear un programa envoltorio que utiliza un archivo de configur
msgid "wrapper filename not specified"
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:97
-#, 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:154
+#: ../IkiWiki/Wrapper.pm:152
#, 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:174
+#: ../IkiWiki/Wrapper.pm:172
#, perl-format
msgid "successfully generated %s"
msgstr "creado con éxito el programa envoltorio %s"
@@ -999,15 +1015,15 @@ msgstr " ikiwiki --setup archivo_de_configuración"
msgid "usage: --set var=value"
msgstr "uso: --set variable=valor"
-#: ../ikiwiki.in:139
+#: ../ikiwiki.in:140
msgid "generating wrappers.."
msgstr "generando programas auxiliares.."
-#: ../ikiwiki.in:197
+#: ../ikiwiki.in:199
msgid "rebuilding wiki.."
msgstr "reconstruyendo el wiki.."
-#: ../ikiwiki.in:200
+#: ../ikiwiki.in:202
msgid "refreshing wiki.."
msgstr "actualizando el wiki.."
@@ -1026,14 +1042,14 @@ msgstr "no puedo emplear varios complementos rcs"
msgid "failed to load external plugin needed for %s plugin: %s"
msgstr "no he podido cargar el complemento externo %s necesario para %s"
-#: ../IkiWiki.pm:1187
+#: ../IkiWiki.pm:1192
#, perl-format
msgid "preprocessing loop detected on %s at depth %i"
msgstr ""
"se ha detectado en la página %s un bucle de preprocesado en la iteración "
"número %i"
-#: ../IkiWiki.pm:1661
+#: ../IkiWiki.pm:1730
msgid "yes"
msgstr "si"
@@ -1051,7 +1067,9 @@ msgstr "¿ Qué sistema de control de versiones empleará ?"
#: ../auto.setup:20
msgid "What wiki user (or openid) will be admin?"
-msgstr "¿ Qué usuario del wiki (ó qué identificador openid) será el empleado como administrador ? "
+msgstr ""
+"¿ Qué usuario del wiki (ó qué identificador openid) será el empleado como "
+"administrador ? "
#: ../auto.setup:23
msgid "What is the domain name of the web server?"
diff --git a/po/fr.po b/po/fr.po
index 3e1c635a2..399fec2a3 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -7,10 +7,10 @@
# Cyril Brulebois <cyril.brulebois@enst-bretagne.fr>, 2007.
msgid ""
msgstr ""
-"Project-Id-Version: ikiwiki 2.71 \n"
+"Project-Id-Version: ikiwiki 3.04\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-01-17 18:19-0500\n"
-"PO-Revision-Date: 2008-12-29 17:57+0100\n"
+"POT-Creation-Date: 2009-02-14 03:04-0500\n"
+"PO-Revision-Date: 2009-02-26 21:28+0100\n"
"Last-Translator: Philippe Batailler <philippe.batailler@free.fr>\n"
"Language-Team: French <debian-l10n-french@lists.debian.org>\n"
"MIME-Version: 1.0\n"
@@ -25,7 +25,7 @@ msgstr "Vous devez d'abord vous identifier."
msgid "login failed, perhaps you need to turn on cookies?"
msgstr "Échec de l'identification, vous devez autoriser les cookies."
-#: ../IkiWiki/CGI.pm:163 ../IkiWiki/CGI.pm:280
+#: ../IkiWiki/CGI.pm:163 ../IkiWiki/CGI.pm:294
msgid "Your login session has expired."
msgstr "Session d'authentification expirée."
@@ -45,11 +45,11 @@ msgstr "Administrateur"
msgid "Preferences saved."
msgstr "Les préférences ont été enregistrées."
-#: ../IkiWiki/CGI.pm:241
+#: ../IkiWiki/CGI.pm:257
msgid "You are banned."
msgstr "Vous avez été banni."
-#: ../IkiWiki/CGI.pm:371 ../IkiWiki/CGI.pm:372 ../IkiWiki.pm:1204
+#: ../IkiWiki/CGI.pm:385 ../IkiWiki/CGI.pm:386 ../IkiWiki.pm:1204
msgid "Error"
msgstr "Erreur"
@@ -121,7 +121,7 @@ msgstr "(échappement des entités de flux)"
msgid "feed crashed XML::Feed!"
msgstr "Plantage du flux XML::Feed !"
-#: ../IkiWiki/Plugin/aggregate.pm:605
+#: ../IkiWiki/Plugin/aggregate.pm:610
#, perl-format
msgid "creating new page %s"
msgstr "Création de la nouvelle page %s"
@@ -130,7 +130,7 @@ msgstr "Création de la nouvelle page %s"
msgid "deleting bucket.."
msgstr "Suppression du compartiment S3 (« bucket »)..."
-#: ../IkiWiki/Plugin/amazon_s3.pm:38 ../ikiwiki.in:208
+#: ../IkiWiki/Plugin/amazon_s3.pm:38 ../ikiwiki.in:210
msgid "done"
msgstr "Terminé"
@@ -172,17 +172,15 @@ msgstr "Envoi de la pièce jointe"
msgid "automatic index generation"
msgstr "Génération de l'index automatique"
-#: ../IkiWiki/Plugin/blogspam.pm:102
+#: ../IkiWiki/Plugin/blogspam.pm:105
msgid ""
"Sorry, but that looks like spam to <a href=\"http://blogspam.net/"
"\">blogspam</a>: "
msgstr ""
+"Désolé, mais ceci ressemble à un spam à destination de <a href=\"http:"
+"//blogspam.net/\">blogspam</a>: "
-#: ../IkiWiki/Plugin/blogspam.pm:105
-msgid "blogspam server failure: "
-msgstr ""
-
-#: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:296
+#: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:233
#: ../IkiWiki/Plugin/inline.pm:354 ../IkiWiki/Plugin/opendiscussion.pm:26
#: ../IkiWiki/Plugin/orphans.pm:37 ../IkiWiki/Render.pm:79
#: ../IkiWiki/Render.pm:149
@@ -198,57 +196,68 @@ msgstr "%s sur %s"
msgid "There are no broken links!"
msgstr "Aucun lien cassé !"
-#: ../IkiWiki/Plugin/comments.pm:120 ../IkiWiki/Plugin/format.pm:23
+#: ../IkiWiki/Plugin/comments.pm:122 ../IkiWiki/Plugin/format.pm:23
#, perl-format
msgid "unsupported page format %s"
msgstr "Format de page non reconnu %s"
-#: ../IkiWiki/Plugin/comments.pm:125
+#: ../IkiWiki/Plugin/comments.pm:127
msgid "comment must have content"
msgstr "Un commentaire doit avoir un contenu."
-#: ../IkiWiki/Plugin/comments.pm:181
+#: ../IkiWiki/Plugin/comments.pm:183
msgid "Anonymous"
msgstr "Anonyme"
-#: ../IkiWiki/Plugin/comments.pm:252 ../IkiWiki/Plugin/recentchanges.pm:110
-msgid "missing page"
-msgstr "Page manquante"
-
-#: ../IkiWiki/Plugin/comments.pm:254 ../IkiWiki/Plugin/recentchanges.pm:112
-#, perl-format
-msgid "The page %s does not exist."
-msgstr "La page %s n'existe pas."
-
-#: ../IkiWiki/Plugin/comments.pm:343 ../IkiWiki/Plugin/editpage.pm:160
+#: ../IkiWiki/Plugin/comments.pm:326 ../IkiWiki/Plugin/editpage.pm:97
msgid "bad page name"
msgstr "Nom de page incorrect"
-#: ../IkiWiki/Plugin/comments.pm:348
+#: ../IkiWiki/Plugin/comments.pm:331
#, perl-format
msgid "commenting on %s"
msgstr "Faire un commentaire sur %s"
-#: ../IkiWiki/Plugin/comments.pm:366
+#: ../IkiWiki/Plugin/comments.pm:349
#, perl-format
msgid "page '%s' doesn't exist, so you can't comment"
msgstr "La page '%s' n'existe pas, commentaire impossible."
-#: ../IkiWiki/Plugin/comments.pm:373
+#: ../IkiWiki/Plugin/comments.pm:356
#, perl-format
msgid "comments on page '%s' are closed"
msgstr "Le commentaire pour la page '%s' est terminé."
-#: ../IkiWiki/Plugin/comments.pm:493
+#: ../IkiWiki/Plugin/comments.pm:450
+msgid "comment stored for moderation"
+msgstr "Le commentaire a été enregistré en attente de modération"
+
+#: ../IkiWiki/Plugin/comments.pm:452
+msgid "Your comment will be posted after moderator review"
+msgstr "Votre commentaire sera publié après que le modérateur l'ait vérifié"
+
+#: ../IkiWiki/Plugin/comments.pm:465
msgid "Added a comment"
msgstr "Commentaire ajouté"
-#: ../IkiWiki/Plugin/comments.pm:497
+#: ../IkiWiki/Plugin/comments.pm:469
#, perl-format
msgid "Added a comment: %s"
msgstr "Commentaire ajouté : %s"
-#: ../IkiWiki/Plugin/comments.pm:611
+#: ../IkiWiki/Plugin/comments.pm:510 ../IkiWiki/Plugin/websetup.pm:236
+msgid "you are not logged in as an admin"
+msgstr "Vous n'êtes pas authentifié comme administrateur"
+
+#: ../IkiWiki/Plugin/comments.pm:561
+msgid "Comment moderation"
+msgstr "Modération du commentaire"
+
+#: ../IkiWiki/Plugin/comments.pm:600
+msgid "comment moderation"
+msgstr "modération du commentaire"
+
+#: ../IkiWiki/Plugin/comments.pm:750
msgid "Comments"
msgstr "Commentaires"
@@ -273,19 +282,19 @@ msgstr "Aucun texte n'a été copié dans cette page avec l'identifiant %s"
msgid "removing old preview %s"
msgstr "Suppression de l'ancienne prévisualisation %s"
-#: ../IkiWiki/Plugin/editpage.pm:176
+#: ../IkiWiki/Plugin/editpage.pm:113
#, perl-format
msgid "%s is not an editable page"
msgstr "%s n'est pas une page éditable"
-#: ../IkiWiki/Plugin/editpage.pm:352
+#: ../IkiWiki/Plugin/editpage.pm:289
#, perl-format
msgid "creating %s"
msgstr "Création de %s"
-#: ../IkiWiki/Plugin/editpage.pm:370 ../IkiWiki/Plugin/editpage.pm:389
-#: ../IkiWiki/Plugin/editpage.pm:399 ../IkiWiki/Plugin/editpage.pm:443
-#: ../IkiWiki/Plugin/editpage.pm:482
+#: ../IkiWiki/Plugin/editpage.pm:307 ../IkiWiki/Plugin/editpage.pm:326
+#: ../IkiWiki/Plugin/editpage.pm:336 ../IkiWiki/Plugin/editpage.pm:380
+#: ../IkiWiki/Plugin/editpage.pm:419
#, perl-format
msgid "editing %s"
msgstr "Édition de %s"
@@ -315,18 +324,18 @@ msgstr "le format et le texte doivent être indiqués"
msgid "fortune failed"
msgstr "Échec du lancement de « fortune »"
-#: ../IkiWiki/Plugin/git.pm:618 ../IkiWiki/Plugin/git.pm:636
+#: ../IkiWiki/Plugin/git.pm:624 ../IkiWiki/Plugin/git.pm:642
#: ../IkiWiki/Receive.pm:129
#, perl-format
msgid "you are not allowed to change %s"
msgstr "Vous n'êtes pas autorisé à modifier %s"
-#: ../IkiWiki/Plugin/git.pm:658
+#: ../IkiWiki/Plugin/git.pm:664
#, perl-format
msgid "you cannot act on a file with mode %s"
msgstr "Vous ne pouvez utiliser le mode %s pour les fichiers"
-#: ../IkiWiki/Plugin/git.pm:662
+#: ../IkiWiki/Plugin/git.pm:668
msgid "you are not allowed to change file modes"
msgstr "Vous n'êtes pas autorisé à modifier le mode des fichiers"
@@ -339,6 +348,15 @@ msgstr "Vous devez indiquer %s lors de l'utilisation du greffon « google »."
msgid "Failed to parse url, cannot determine domain name"
msgstr "Impossible d'analyser l'url, pas de nom de domaine"
+#: ../IkiWiki/Plugin/goto.pm:49
+msgid "missing page"
+msgstr "Page manquante"
+
+#: ../IkiWiki/Plugin/goto.pm:51
+#, perl-format
+msgid "The page %s does not exist."
+msgstr "La page %s n'existe pas."
+
#: ../IkiWiki/Plugin/graphviz.pm:67
msgid "failed to run graphviz"
msgstr "Échec du lancement de graphviz"
@@ -404,7 +422,7 @@ msgstr "Le modèle de page %s n'existe pas"
msgid "Discussion"
msgstr "Discussion"
-#: ../IkiWiki/Plugin/inline.pm:587
+#: ../IkiWiki/Plugin/inline.pm:593
msgid "RPC::XML::Client not found, not pinging"
msgstr "RPC::XML::Client introuvable, pas de réponse au ping"
@@ -428,15 +446,15 @@ msgstr ""
"Échec du chargement du module Perl Markdown.pm (%s) ou de /usr/bin/markdown "
"(%s)"
-#: ../IkiWiki/Plugin/meta.pm:151
+#: ../IkiWiki/Plugin/meta.pm:158
msgid "stylesheet not found"
msgstr "Feuille de style introuvable "
-#: ../IkiWiki/Plugin/meta.pm:185
+#: ../IkiWiki/Plugin/meta.pm:192
msgid "redir page not found"
msgstr "Page de redirection introuvable"
-#: ../IkiWiki/Plugin/meta.pm:198
+#: ../IkiWiki/Plugin/meta.pm:205
msgid "redir cycle is not allowed"
msgstr "Redirection cyclique non autorisée"
@@ -721,18 +739,19 @@ msgstr "Digest::SHA1 est nécessaire pour indexer %s"
msgid "search"
msgstr "recherche"
-#: ../IkiWiki/Plugin/shortcut.pm:28
-msgid "shortcut plugin will not work without a shortcuts.mdwn"
-msgstr "Le greffon « shortcut » ne fonctionnera pas sans shortcuts.mdwn"
+#: ../IkiWiki/Plugin/shortcut.pm:31
+#, perl-format
+msgid "shortcut plugin will not work without %s"
+msgstr "Le greffon « shortcut » ne fonctionnera pas sans %s"
-#: ../IkiWiki/Plugin/shortcut.pm:38
+#: ../IkiWiki/Plugin/shortcut.pm:44
msgid "missing name or url parameter"
msgstr "Il manque le paramètre nom ou URL."
#. translators: This is used to display what shortcuts are defined.
#. translators: First parameter is the name of the shortcut, the second
#. translators: is an URL.
-#: ../IkiWiki/Plugin/shortcut.pm:48
+#: ../IkiWiki/Plugin/shortcut.pm:54
#, perl-format
msgid "shortcut %s points to <i>%s</i>"
msgstr "Le raccourci %s pointe vers <i>%s</i>"
@@ -828,10 +847,6 @@ msgstr "greffon"
msgid "enable %s?"
msgstr "activer %s ?"
-#: ../IkiWiki/Plugin/websetup.pm:236
-msgid "you are not logged in as an admin"
-msgstr "Vous n'êtes pas authentifié comme administrateur"
-
#: ../IkiWiki/Plugin/websetup.pm:240
msgid "setup file for this wiki is not known"
msgstr "Le fichier de configuration de ce wiki n'est pas connu"
@@ -942,18 +957,18 @@ msgstr "ikiwiki : impossible de reconstruire %s"
msgid "cannot read %s: %s"
msgstr "Lecture impossible de %s : %s"
-#: ../IkiWiki/Setup/Automator.pm:33
+#: ../IkiWiki/Setup/Automator.pm:34
msgid "you must enter a wikiname (that contains alphanumerics)"
msgstr ""
"Vous devez spécifier un nom de wiki (contenant des caractères "
"alphanumériques)"
-#: ../IkiWiki/Setup/Automator.pm:67
+#: ../IkiWiki/Setup/Automator.pm:68
#, perl-format
msgid "unsupported revision control system %s"
msgstr "Système de contrôle de version non reconnu : %s"
-#: ../IkiWiki/Setup/Automator.pm:93
+#: ../IkiWiki/Setup/Automator.pm:94
msgid "failed to set up the repository with ikiwiki-makerepo"
msgstr "Échec lors de la création du dépôt avec ikiwiki-makerepo"
@@ -971,21 +986,14 @@ msgstr ""
msgid "wrapper filename not specified"
msgstr "Le nom du fichier CGI 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:97
-#, 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:154
+#: ../IkiWiki/Wrapper.pm:152
#, perl-format
msgid "failed to compile %s"
msgstr "Échec de la compilation de %s"
#. translators: The parameter is a filename.
-#: ../IkiWiki/Wrapper.pm:174
+#: ../IkiWiki/Wrapper.pm:172
#, perl-format
msgid "successfully generated %s"
msgstr "%s a été créé avec succès"
@@ -1002,15 +1010,15 @@ msgstr " ikiwiki --setup fichier de configuration"
msgid "usage: --set var=value"
msgstr "Syntaxe : -- set var=valeur"
-#: ../ikiwiki.in:139
+#: ../ikiwiki.in:140
msgid "generating wrappers.."
msgstr "Création des fichiers CGI..."
-#: ../ikiwiki.in:197
+#: ../ikiwiki.in:199
msgid "rebuilding wiki.."
msgstr "Reconstruction du wiki..."
-#: ../ikiwiki.in:200
+#: ../ikiwiki.in:202
msgid "refreshing wiki.."
msgstr "Rafraîchissement du wiki..."
@@ -1033,7 +1041,7 @@ msgstr "Impossible de charger le greffon externe nécessaire au greffon %s : %s
msgid "preprocessing loop detected on %s at depth %i"
msgstr "Une boucle de pré traitement a été détectée sur %s à hauteur de %i"
-#: ../IkiWiki.pm:1661
+#: ../IkiWiki.pm:1725
msgid "yes"
msgstr "oui"
@@ -1050,31 +1058,10 @@ msgid "What revision control system to use?"
msgstr "Système de contrôle de version utilisé :"
#: ../auto.setup:20
-#, fuzzy
msgid "What wiki user (or openid) will be admin?"
-msgstr "Identifiant de l'administrateur (utilisateur ou openid) :"
+msgstr "Identifiant de l'administrateur (utilisateur du wiki ou openid) :"
#: ../auto.setup:23
msgid "What is the domain name of the web server?"
msgstr "Nom de domaine du serveur HTTP :"
-#~ msgid "failed to find url in html"
-#~ msgstr "Impossible de trouver une URL dans le code HTML"
-
-#~ msgid "processed ok at %s"
-#~ msgstr "A été correctement traité à %s"
-
-#~ msgid "Your password has been emailed to you."
-#~ msgstr "Votre mot de passe vous a été envoyé par courriel."
-
-#~ msgid "polygen failed"
-#~ msgstr "Échec du lancement de polygen"
-
-#~ msgid "cleaning hyperestraier search index"
-#~ msgstr "Nettoyage de l'index de recherche de hyperestraier"
-
-#~ msgid "updating hyperestraier search index"
-#~ msgstr "Mise à jour de l'index de recherche de hyperestraier"
-
-#~ msgid "(not toggleable in preview mode)"
-#~ msgstr "(non permutable en mode prévisualisation)"
diff --git a/po/gu.po b/po/gu.po
index 77edf8a0e..eb7bdcee0 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: 2009-01-17 18:19-0500\n"
+"POT-Creation-Date: 2009-03-01 15:03-0500\n"
"PO-Revision-Date: 2007-01-11 16:05+0530\n"
"Last-Translator: Kartik Mistry <kartik.mistry@gmail.com>\n"
"Language-Team: Gujarati <team@utkarsh.org>\n"
@@ -19,36 +19,42 @@ msgstr ""
msgid "You need to log in first."
msgstr "તમારે પ્રથમ લોગ ઇન થવું પડશે."
-#: ../IkiWiki/CGI.pm:145
+#: ../IkiWiki/CGI.pm:146
+msgid ""
+"probable misconfiguration: sslcookie is set, but you are attepting to login "
+"via http, not https"
+msgstr ""
+
+#: ../IkiWiki/CGI.pm:149
msgid "login failed, perhaps you need to turn on cookies?"
msgstr "પ્રવેશ નિષ્ફળ, કદાચ તમારી કુકીઓ સક્રિય બનાવવી પડશે?"
-#: ../IkiWiki/CGI.pm:163 ../IkiWiki/CGI.pm:280
+#: ../IkiWiki/CGI.pm:168 ../IkiWiki/CGI.pm:299
msgid "Your login session has expired."
msgstr ""
-#: ../IkiWiki/CGI.pm:184
+#: ../IkiWiki/CGI.pm:189
msgid "Login"
msgstr ""
-#: ../IkiWiki/CGI.pm:185
+#: ../IkiWiki/CGI.pm:190
#, fuzzy
msgid "Preferences"
msgstr "પ્રાથમિકતાઓ સંગ્રહાઇ."
-#: ../IkiWiki/CGI.pm:186
+#: ../IkiWiki/CGI.pm:191
msgid "Admin"
msgstr ""
-#: ../IkiWiki/CGI.pm:226
+#: ../IkiWiki/CGI.pm:231
msgid "Preferences saved."
msgstr "પ્રાથમિકતાઓ સંગ્રહાઇ."
-#: ../IkiWiki/CGI.pm:241
+#: ../IkiWiki/CGI.pm:262
msgid "You are banned."
msgstr "તમારા પર પ્રતિબંધ છે."
-#: ../IkiWiki/CGI.pm:371 ../IkiWiki/CGI.pm:372 ../IkiWiki.pm:1204
+#: ../IkiWiki/CGI.pm:390 ../IkiWiki/CGI.pm:391 ../IkiWiki.pm:1209
msgid "Error"
msgstr "ક્ષતિ"
@@ -120,7 +126,7 @@ msgstr ""
msgid "feed crashed XML::Feed!"
msgstr "ફીડ ભાંગી ગયું XML::Feed!"
-#: ../IkiWiki/Plugin/aggregate.pm:605
+#: ../IkiWiki/Plugin/aggregate.pm:610
#, perl-format
msgid "creating new page %s"
msgstr "નવું પાનું %s બનાવે છે"
@@ -129,7 +135,7 @@ msgstr "નવું પાનું %s બનાવે છે"
msgid "deleting bucket.."
msgstr ""
-#: ../IkiWiki/Plugin/amazon_s3.pm:38 ../ikiwiki.in:208
+#: ../IkiWiki/Plugin/amazon_s3.pm:38 ../ikiwiki.in:210
msgid "done"
msgstr "સંપૂર્ણ"
@@ -173,17 +179,13 @@ msgstr ""
msgid "automatic index generation"
msgstr ""
-#: ../IkiWiki/Plugin/blogspam.pm:102
+#: ../IkiWiki/Plugin/blogspam.pm:105
msgid ""
"Sorry, but that looks like spam to <a href=\"http://blogspam.net/"
"\">blogspam</a>: "
msgstr ""
-#: ../IkiWiki/Plugin/blogspam.pm:105
-msgid "blogspam server failure: "
-msgstr ""
-
-#: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:296
+#: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:233
#: ../IkiWiki/Plugin/inline.pm:354 ../IkiWiki/Plugin/opendiscussion.pm:26
#: ../IkiWiki/Plugin/orphans.pm:37 ../IkiWiki/Render.pm:79
#: ../IkiWiki/Render.pm:149
@@ -199,58 +201,68 @@ msgstr ""
msgid "There are no broken links!"
msgstr "અહીં કોઇ તૂટેલ કડી નથી!"
-#: ../IkiWiki/Plugin/comments.pm:120 ../IkiWiki/Plugin/format.pm:23
+#: ../IkiWiki/Plugin/comments.pm:122 ../IkiWiki/Plugin/format.pm:23
#, perl-format
msgid "unsupported page format %s"
msgstr ""
-#: ../IkiWiki/Plugin/comments.pm:125
+#: ../IkiWiki/Plugin/comments.pm:127
msgid "comment must have content"
msgstr ""
-#: ../IkiWiki/Plugin/comments.pm:181
+#: ../IkiWiki/Plugin/comments.pm:183
msgid "Anonymous"
msgstr ""
-#: ../IkiWiki/Plugin/comments.pm:252 ../IkiWiki/Plugin/recentchanges.pm:110
-#, fuzzy
-msgid "missing page"
-msgstr "ખોવાયેલ કિંમતો"
-
-#: ../IkiWiki/Plugin/comments.pm:254 ../IkiWiki/Plugin/recentchanges.pm:112
-#, perl-format
-msgid "The page %s does not exist."
-msgstr ""
-
-#: ../IkiWiki/Plugin/comments.pm:343 ../IkiWiki/Plugin/editpage.pm:160
+#: ../IkiWiki/Plugin/comments.pm:326 ../IkiWiki/Plugin/editpage.pm:97
msgid "bad page name"
msgstr ""
-#: ../IkiWiki/Plugin/comments.pm:348
+#: ../IkiWiki/Plugin/comments.pm:331
#, fuzzy, perl-format
msgid "commenting on %s"
msgstr "%s બનાવે છે"
-#: ../IkiWiki/Plugin/comments.pm:366
+#: ../IkiWiki/Plugin/comments.pm:349
#, perl-format
msgid "page '%s' doesn't exist, so you can't comment"
msgstr ""
-#: ../IkiWiki/Plugin/comments.pm:373
+#: ../IkiWiki/Plugin/comments.pm:356
#, perl-format
msgid "comments on page '%s' are closed"
msgstr ""
-#: ../IkiWiki/Plugin/comments.pm:493
+#: ../IkiWiki/Plugin/comments.pm:450
+msgid "comment stored for moderation"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:452
+msgid "Your comment will be posted after moderator review"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:465
msgid "Added a comment"
msgstr ""
-#: ../IkiWiki/Plugin/comments.pm:497
+#: ../IkiWiki/Plugin/comments.pm:469
#, perl-format
msgid "Added a comment: %s"
msgstr ""
-#: ../IkiWiki/Plugin/comments.pm:611
+#: ../IkiWiki/Plugin/comments.pm:510 ../IkiWiki/Plugin/websetup.pm:236
+msgid "you are not logged in as an admin"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:561
+msgid "Comment moderation"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:600
+msgid "comment moderation"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:751
msgid "Comments"
msgstr ""
@@ -275,19 +287,19 @@ msgstr ""
msgid "removing old preview %s"
msgstr "જુનાં પાનાં દૂર કરે છે %s"
-#: ../IkiWiki/Plugin/editpage.pm:176
+#: ../IkiWiki/Plugin/editpage.pm:113
#, perl-format
msgid "%s is not an editable page"
msgstr "%s એ સુધારી શકાય તેવું પાનું નથી"
-#: ../IkiWiki/Plugin/editpage.pm:352
+#: ../IkiWiki/Plugin/editpage.pm:289
#, perl-format
msgid "creating %s"
msgstr "%s બનાવે છે"
-#: ../IkiWiki/Plugin/editpage.pm:370 ../IkiWiki/Plugin/editpage.pm:389
-#: ../IkiWiki/Plugin/editpage.pm:399 ../IkiWiki/Plugin/editpage.pm:443
-#: ../IkiWiki/Plugin/editpage.pm:482
+#: ../IkiWiki/Plugin/editpage.pm:307 ../IkiWiki/Plugin/editpage.pm:326
+#: ../IkiWiki/Plugin/editpage.pm:336 ../IkiWiki/Plugin/editpage.pm:380
+#: ../IkiWiki/Plugin/editpage.pm:419
#, perl-format
msgid "editing %s"
msgstr "%s સુધારે છે"
@@ -320,18 +332,18 @@ msgstr ""
msgid "fortune failed"
msgstr "ભવિષ્ય નિષ્ફળ"
-#: ../IkiWiki/Plugin/git.pm:618 ../IkiWiki/Plugin/git.pm:636
+#: ../IkiWiki/Plugin/git.pm:624 ../IkiWiki/Plugin/git.pm:642
#: ../IkiWiki/Receive.pm:129
#, perl-format
msgid "you are not allowed to change %s"
msgstr ""
-#: ../IkiWiki/Plugin/git.pm:658
+#: ../IkiWiki/Plugin/git.pm:664
#, perl-format
msgid "you cannot act on a file with mode %s"
msgstr ""
-#: ../IkiWiki/Plugin/git.pm:662
+#: ../IkiWiki/Plugin/git.pm:668
msgid "you are not allowed to change file modes"
msgstr ""
@@ -344,6 +356,16 @@ msgstr "જ્યારે શોધ પ્લગઇન ઉપયોગ કર
msgid "Failed to parse url, cannot determine domain name"
msgstr ""
+#: ../IkiWiki/Plugin/goto.pm:49
+#, fuzzy
+msgid "missing page"
+msgstr "ખોવાયેલ કિંમતો"
+
+#: ../IkiWiki/Plugin/goto.pm:51
+#, perl-format
+msgid "The page %s does not exist."
+msgstr ""
+
#: ../IkiWiki/Plugin/graphviz.pm:67
msgid "failed to run graphviz"
msgstr "ગ્રાફવિઝ ચલાવવામાં નિષ્ફળ"
@@ -410,7 +432,7 @@ msgstr "અસ્તિત્વમાં ન હોય તેવું ટે
msgid "Discussion"
msgstr "ચર્ચા"
-#: ../IkiWiki/Plugin/inline.pm:587
+#: ../IkiWiki/Plugin/inline.pm:593
msgid "RPC::XML::Client not found, not pinging"
msgstr "RPC::XML::Client મળ્યું નહી, પિંગ કરવામાં આવતું નથી"
@@ -432,16 +454,16 @@ msgstr ""
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:151
+#: ../IkiWiki/Plugin/meta.pm:158
msgid "stylesheet not found"
msgstr "સ્ટાઇલશીટ મળ્યું નહી"
-#: ../IkiWiki/Plugin/meta.pm:185
+#: ../IkiWiki/Plugin/meta.pm:192
#, fuzzy
msgid "redir page not found"
msgstr "ફીડ મળ્યું નહી"
-#: ../IkiWiki/Plugin/meta.pm:198
+#: ../IkiWiki/Plugin/meta.pm:205
#, fuzzy
msgid "redir cycle is not allowed"
msgstr "ફીડ મળ્યું નહી"
@@ -726,18 +748,19 @@ msgstr ""
msgid "search"
msgstr ""
-#: ../IkiWiki/Plugin/shortcut.pm:28
-msgid "shortcut plugin will not work without a shortcuts.mdwn"
+#: ../IkiWiki/Plugin/shortcut.pm:31
+#, perl-format
+msgid "shortcut plugin will not work without %s"
msgstr ""
-#: ../IkiWiki/Plugin/shortcut.pm:38
+#: ../IkiWiki/Plugin/shortcut.pm:44
msgid "missing name or url parameter"
msgstr "ખોવાયેલ નામ અથવા યુઆરએલ વિકલ્પ"
#. translators: This is used to display what shortcuts are defined.
#. translators: First parameter is the name of the shortcut, the second
#. translators: is an URL.
-#: ../IkiWiki/Plugin/shortcut.pm:48
+#: ../IkiWiki/Plugin/shortcut.pm:54
#, perl-format
msgid "shortcut %s points to <i>%s</i>"
msgstr "ટુંકોરસ્તો %s એ <i>%s</i> નો નિર્દેશ કરે છે"
@@ -799,16 +822,16 @@ msgstr "સીધી માહિતી ડાઉનલોડ"
msgid "parse fail at line %d: %s"
msgstr "ઉકેલવાનું લીટી %d પર નિષ્ફળ: %s"
-#: ../IkiWiki/Plugin/template.pm:28
+#: ../IkiWiki/Plugin/template.pm:29
msgid "missing id parameter"
msgstr "ખોવાયેલ આઇડી વિકલ્પ"
-#: ../IkiWiki/Plugin/template.pm:35
+#: ../IkiWiki/Plugin/template.pm:36
#, perl-format
msgid "template %s not found"
msgstr "ટેમ્પલેટ %s મળ્યું નહી"
-#: ../IkiWiki/Plugin/template.pm:54
+#: ../IkiWiki/Plugin/template.pm:55
msgid "failed to process:"
msgstr "ક્રિયા કરવામાં નિષ્ફળ:"
@@ -835,10 +858,6 @@ msgstr ""
msgid "enable %s?"
msgstr ""
-#: ../IkiWiki/Plugin/websetup.pm:236
-msgid "you are not logged in as an admin"
-msgstr ""
-
#: ../IkiWiki/Plugin/websetup.pm:240
msgid "setup file for this wiki is not known"
msgstr ""
@@ -941,16 +960,16 @@ msgstr "ikiwiki: %s રેન્ડર કરી શકાતું નથી"
msgid "cannot read %s: %s"
msgstr "વાંચી શકાતી નથી %s: %s"
-#: ../IkiWiki/Setup/Automator.pm:33
+#: ../IkiWiki/Setup/Automator.pm:34
msgid "you must enter a wikiname (that contains alphanumerics)"
msgstr ""
-#: ../IkiWiki/Setup/Automator.pm:67
+#: ../IkiWiki/Setup/Automator.pm:68
#, perl-format
msgid "unsupported revision control system %s"
msgstr ""
-#: ../IkiWiki/Setup/Automator.pm:93
+#: ../IkiWiki/Setup/Automator.pm:94
msgid "failed to set up the repository with ikiwiki-makerepo"
msgstr ""
@@ -967,21 +986,14 @@ msgstr "ગોઠવણ ફાઇલનો ઉપયોગ કરે છે ત
msgid "wrapper filename not specified"
msgstr "આવરણ ફાઇલનામ સ્પષ્ટ કરેલ નથી"
-#. translators: The first parameter is a filename, and the second is
-#. translators: a (probably not translated) error message.
-#: ../IkiWiki/Wrapper.pm:97
-#, perl-format
-msgid "failed to write %s: %s"
-msgstr "%s લખવામાં નિષ્ફળ: %s"
-
#. translators: The parameter is a C filename.
-#: ../IkiWiki/Wrapper.pm:154
+#: ../IkiWiki/Wrapper.pm:152
#, perl-format
msgid "failed to compile %s"
msgstr "%s કમ્પાઇલ કરવામાં નિષ્ફળ"
#. translators: The parameter is a filename.
-#: ../IkiWiki/Wrapper.pm:174
+#: ../IkiWiki/Wrapper.pm:172
#, perl-format
msgid "successfully generated %s"
msgstr "સફળતાપૂર્વક પેદા કરેલ છે %s"
@@ -998,15 +1010,15 @@ msgstr ""
msgid "usage: --set var=value"
msgstr ""
-#: ../ikiwiki.in:139
+#: ../ikiwiki.in:140
msgid "generating wrappers.."
msgstr "આવરણ બનાવે છે.."
-#: ../ikiwiki.in:197
+#: ../ikiwiki.in:199
msgid "rebuilding wiki.."
msgstr "વીકી ફરીથી બનાવે છે.."
-#: ../ikiwiki.in:200
+#: ../ikiwiki.in:202
msgid "refreshing wiki.."
msgstr "વીકીને તાજી કરે છે.."
@@ -1023,12 +1035,12 @@ msgstr ""
msgid "failed to load external plugin needed for %s plugin: %s"
msgstr ""
-#: ../IkiWiki.pm:1187
+#: ../IkiWiki.pm:1192
#, fuzzy, perl-format
msgid "preprocessing loop detected on %s at depth %i"
msgstr "%s પર શોધાયેલ લુપ %s પર ચલાવે છે %i ઉંડાણ પર"
-#: ../IkiWiki.pm:1661
+#: ../IkiWiki.pm:1730
msgid "yes"
msgstr ""
@@ -1052,6 +1064,9 @@ msgstr ""
msgid "What is the domain name of the web server?"
msgstr ""
+#~ msgid "failed to write %s: %s"
+#~ msgstr "%s લખવામાં નિષ્ફળ: %s"
+
#~ msgid "failed to find url in html"
#~ msgstr "htmlમાં યુઆરએલ શોધવામાં નિષ્ફળ"
diff --git a/po/ikiwiki.pot b/po/ikiwiki.pot
index 508ed913b..519417902 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: 2009-01-17 18:19-0500\n"
+"POT-Creation-Date: 2009-03-01 15:03-0500\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -20,35 +20,41 @@ msgstr ""
msgid "You need to log in first."
msgstr ""
-#: ../IkiWiki/CGI.pm:145
+#: ../IkiWiki/CGI.pm:146
+msgid ""
+"probable misconfiguration: sslcookie is set, but you are attepting to login "
+"via http, not https"
+msgstr ""
+
+#: ../IkiWiki/CGI.pm:149
msgid "login failed, perhaps you need to turn on cookies?"
msgstr ""
-#: ../IkiWiki/CGI.pm:163 ../IkiWiki/CGI.pm:280
+#: ../IkiWiki/CGI.pm:168 ../IkiWiki/CGI.pm:299
msgid "Your login session has expired."
msgstr ""
-#: ../IkiWiki/CGI.pm:184
+#: ../IkiWiki/CGI.pm:189
msgid "Login"
msgstr ""
-#: ../IkiWiki/CGI.pm:185
+#: ../IkiWiki/CGI.pm:190
msgid "Preferences"
msgstr ""
-#: ../IkiWiki/CGI.pm:186
+#: ../IkiWiki/CGI.pm:191
msgid "Admin"
msgstr ""
-#: ../IkiWiki/CGI.pm:226
+#: ../IkiWiki/CGI.pm:231
msgid "Preferences saved."
msgstr ""
-#: ../IkiWiki/CGI.pm:241
+#: ../IkiWiki/CGI.pm:262
msgid "You are banned."
msgstr ""
-#: ../IkiWiki/CGI.pm:371 ../IkiWiki/CGI.pm:372 ../IkiWiki.pm:1204
+#: ../IkiWiki/CGI.pm:390 ../IkiWiki/CGI.pm:391 ../IkiWiki.pm:1209
msgid "Error"
msgstr ""
@@ -120,7 +126,7 @@ msgstr ""
msgid "feed crashed XML::Feed!"
msgstr ""
-#: ../IkiWiki/Plugin/aggregate.pm:605
+#: ../IkiWiki/Plugin/aggregate.pm:610
#, perl-format
msgid "creating new page %s"
msgstr ""
@@ -129,7 +135,7 @@ msgstr ""
msgid "deleting bucket.."
msgstr ""
-#: ../IkiWiki/Plugin/amazon_s3.pm:38 ../ikiwiki.in:208
+#: ../IkiWiki/Plugin/amazon_s3.pm:38 ../ikiwiki.in:210
msgid "done"
msgstr ""
@@ -171,17 +177,13 @@ msgstr ""
msgid "automatic index generation"
msgstr ""
-#: ../IkiWiki/Plugin/blogspam.pm:102
+#: ../IkiWiki/Plugin/blogspam.pm:105
msgid ""
"Sorry, but that looks like spam to <a href=\"http://blogspam.net/"
"\">blogspam</a>: "
msgstr ""
-#: ../IkiWiki/Plugin/blogspam.pm:105
-msgid "blogspam server failure: "
-msgstr ""
-
-#: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:296
+#: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:233
#: ../IkiWiki/Plugin/inline.pm:354 ../IkiWiki/Plugin/opendiscussion.pm:26
#: ../IkiWiki/Plugin/orphans.pm:37 ../IkiWiki/Render.pm:79
#: ../IkiWiki/Render.pm:149
@@ -197,57 +199,68 @@ msgstr ""
msgid "There are no broken links!"
msgstr ""
-#: ../IkiWiki/Plugin/comments.pm:120 ../IkiWiki/Plugin/format.pm:23
+#: ../IkiWiki/Plugin/comments.pm:122 ../IkiWiki/Plugin/format.pm:23
#, perl-format
msgid "unsupported page format %s"
msgstr ""
-#: ../IkiWiki/Plugin/comments.pm:125
+#: ../IkiWiki/Plugin/comments.pm:127
msgid "comment must have content"
msgstr ""
-#: ../IkiWiki/Plugin/comments.pm:181
+#: ../IkiWiki/Plugin/comments.pm:183
msgid "Anonymous"
msgstr ""
-#: ../IkiWiki/Plugin/comments.pm:252 ../IkiWiki/Plugin/recentchanges.pm:110
-msgid "missing page"
-msgstr ""
-
-#: ../IkiWiki/Plugin/comments.pm:254 ../IkiWiki/Plugin/recentchanges.pm:112
-#, perl-format
-msgid "The page %s does not exist."
-msgstr ""
-
-#: ../IkiWiki/Plugin/comments.pm:343 ../IkiWiki/Plugin/editpage.pm:160
+#: ../IkiWiki/Plugin/comments.pm:326 ../IkiWiki/Plugin/editpage.pm:97
msgid "bad page name"
msgstr ""
-#: ../IkiWiki/Plugin/comments.pm:348
+#: ../IkiWiki/Plugin/comments.pm:331
#, perl-format
msgid "commenting on %s"
msgstr ""
-#: ../IkiWiki/Plugin/comments.pm:366
+#: ../IkiWiki/Plugin/comments.pm:349
#, perl-format
msgid "page '%s' doesn't exist, so you can't comment"
msgstr ""
-#: ../IkiWiki/Plugin/comments.pm:373
+#: ../IkiWiki/Plugin/comments.pm:356
#, perl-format
msgid "comments on page '%s' are closed"
msgstr ""
-#: ../IkiWiki/Plugin/comments.pm:493
+#: ../IkiWiki/Plugin/comments.pm:450
+msgid "comment stored for moderation"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:452
+msgid "Your comment will be posted after moderator review"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:465
msgid "Added a comment"
msgstr ""
-#: ../IkiWiki/Plugin/comments.pm:497
+#: ../IkiWiki/Plugin/comments.pm:469
#, perl-format
msgid "Added a comment: %s"
msgstr ""
-#: ../IkiWiki/Plugin/comments.pm:611
+#: ../IkiWiki/Plugin/comments.pm:510 ../IkiWiki/Plugin/websetup.pm:236
+msgid "you are not logged in as an admin"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:561
+msgid "Comment moderation"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:600
+msgid "comment moderation"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:751
msgid "Comments"
msgstr ""
@@ -272,19 +285,19 @@ msgstr ""
msgid "removing old preview %s"
msgstr ""
-#: ../IkiWiki/Plugin/editpage.pm:176
+#: ../IkiWiki/Plugin/editpage.pm:113
#, perl-format
msgid "%s is not an editable page"
msgstr ""
-#: ../IkiWiki/Plugin/editpage.pm:352
+#: ../IkiWiki/Plugin/editpage.pm:289
#, perl-format
msgid "creating %s"
msgstr ""
-#: ../IkiWiki/Plugin/editpage.pm:370 ../IkiWiki/Plugin/editpage.pm:389
-#: ../IkiWiki/Plugin/editpage.pm:399 ../IkiWiki/Plugin/editpage.pm:443
-#: ../IkiWiki/Plugin/editpage.pm:482
+#: ../IkiWiki/Plugin/editpage.pm:307 ../IkiWiki/Plugin/editpage.pm:326
+#: ../IkiWiki/Plugin/editpage.pm:336 ../IkiWiki/Plugin/editpage.pm:380
+#: ../IkiWiki/Plugin/editpage.pm:419
#, perl-format
msgid "editing %s"
msgstr ""
@@ -314,18 +327,18 @@ msgstr ""
msgid "fortune failed"
msgstr ""
-#: ../IkiWiki/Plugin/git.pm:618 ../IkiWiki/Plugin/git.pm:636
+#: ../IkiWiki/Plugin/git.pm:624 ../IkiWiki/Plugin/git.pm:642
#: ../IkiWiki/Receive.pm:129
#, perl-format
msgid "you are not allowed to change %s"
msgstr ""
-#: ../IkiWiki/Plugin/git.pm:658
+#: ../IkiWiki/Plugin/git.pm:664
#, perl-format
msgid "you cannot act on a file with mode %s"
msgstr ""
-#: ../IkiWiki/Plugin/git.pm:662
+#: ../IkiWiki/Plugin/git.pm:668
msgid "you are not allowed to change file modes"
msgstr ""
@@ -338,6 +351,15 @@ msgstr ""
msgid "Failed to parse url, cannot determine domain name"
msgstr ""
+#: ../IkiWiki/Plugin/goto.pm:49
+msgid "missing page"
+msgstr ""
+
+#: ../IkiWiki/Plugin/goto.pm:51
+#, perl-format
+msgid "The page %s does not exist."
+msgstr ""
+
#: ../IkiWiki/Plugin/graphviz.pm:67
msgid "failed to run graphviz"
msgstr ""
@@ -401,7 +423,7 @@ msgstr ""
msgid "Discussion"
msgstr ""
-#: ../IkiWiki/Plugin/inline.pm:587
+#: ../IkiWiki/Plugin/inline.pm:593
msgid "RPC::XML::Client not found, not pinging"
msgstr ""
@@ -423,15 +445,15 @@ msgstr ""
msgid "failed to load Markdown.pm perl module (%s) or /usr/bin/markdown (%s)"
msgstr ""
-#: ../IkiWiki/Plugin/meta.pm:151
+#: ../IkiWiki/Plugin/meta.pm:158
msgid "stylesheet not found"
msgstr ""
-#: ../IkiWiki/Plugin/meta.pm:185
+#: ../IkiWiki/Plugin/meta.pm:192
msgid "redir page not found"
msgstr ""
-#: ../IkiWiki/Plugin/meta.pm:198
+#: ../IkiWiki/Plugin/meta.pm:205
msgid "redir cycle is not allowed"
msgstr ""
@@ -711,18 +733,19 @@ msgstr ""
msgid "search"
msgstr ""
-#: ../IkiWiki/Plugin/shortcut.pm:28
-msgid "shortcut plugin will not work without a shortcuts.mdwn"
+#: ../IkiWiki/Plugin/shortcut.pm:31
+#, perl-format
+msgid "shortcut plugin will not work without %s"
msgstr ""
-#: ../IkiWiki/Plugin/shortcut.pm:38
+#: ../IkiWiki/Plugin/shortcut.pm:44
msgid "missing name or url parameter"
msgstr ""
#. translators: This is used to display what shortcuts are defined.
#. translators: First parameter is the name of the shortcut, the second
#. translators: is an URL.
-#: ../IkiWiki/Plugin/shortcut.pm:48
+#: ../IkiWiki/Plugin/shortcut.pm:54
#, perl-format
msgid "shortcut %s points to <i>%s</i>"
msgstr ""
@@ -784,16 +807,16 @@ msgstr ""
msgid "parse fail at line %d: %s"
msgstr ""
-#: ../IkiWiki/Plugin/template.pm:28
+#: ../IkiWiki/Plugin/template.pm:29
msgid "missing id parameter"
msgstr ""
-#: ../IkiWiki/Plugin/template.pm:35
+#: ../IkiWiki/Plugin/template.pm:36
#, perl-format
msgid "template %s not found"
msgstr ""
-#: ../IkiWiki/Plugin/template.pm:54
+#: ../IkiWiki/Plugin/template.pm:55
msgid "failed to process:"
msgstr ""
@@ -818,10 +841,6 @@ msgstr ""
msgid "enable %s?"
msgstr ""
-#: ../IkiWiki/Plugin/websetup.pm:236
-msgid "you are not logged in as an admin"
-msgstr ""
-
#: ../IkiWiki/Plugin/websetup.pm:240
msgid "setup file for this wiki is not known"
msgstr ""
@@ -924,16 +943,16 @@ msgstr ""
msgid "cannot read %s: %s"
msgstr ""
-#: ../IkiWiki/Setup/Automator.pm:33
+#: ../IkiWiki/Setup/Automator.pm:34
msgid "you must enter a wikiname (that contains alphanumerics)"
msgstr ""
-#: ../IkiWiki/Setup/Automator.pm:67
+#: ../IkiWiki/Setup/Automator.pm:68
#, perl-format
msgid "unsupported revision control system %s"
msgstr ""
-#: ../IkiWiki/Setup/Automator.pm:93
+#: ../IkiWiki/Setup/Automator.pm:94
msgid "failed to set up the repository with ikiwiki-makerepo"
msgstr ""
@@ -950,21 +969,14 @@ msgstr ""
msgid "wrapper filename not specified"
msgstr ""
-#. translators: The first parameter is a filename, and the second is
-#. translators: a (probably not translated) error message.
-#: ../IkiWiki/Wrapper.pm:97
-#, perl-format
-msgid "failed to write %s: %s"
-msgstr ""
-
#. translators: The parameter is a C filename.
-#: ../IkiWiki/Wrapper.pm:154
+#: ../IkiWiki/Wrapper.pm:152
#, perl-format
msgid "failed to compile %s"
msgstr ""
#. translators: The parameter is a filename.
-#: ../IkiWiki/Wrapper.pm:174
+#: ../IkiWiki/Wrapper.pm:172
#, perl-format
msgid "successfully generated %s"
msgstr ""
@@ -981,15 +993,15 @@ msgstr ""
msgid "usage: --set var=value"
msgstr ""
-#: ../ikiwiki.in:139
+#: ../ikiwiki.in:140
msgid "generating wrappers.."
msgstr ""
-#: ../ikiwiki.in:197
+#: ../ikiwiki.in:199
msgid "rebuilding wiki.."
msgstr ""
-#: ../ikiwiki.in:200
+#: ../ikiwiki.in:202
msgid "refreshing wiki.."
msgstr ""
@@ -1006,12 +1018,12 @@ msgstr ""
msgid "failed to load external plugin needed for %s plugin: %s"
msgstr ""
-#: ../IkiWiki.pm:1187
+#: ../IkiWiki.pm:1192
#, perl-format
msgid "preprocessing loop detected on %s at depth %i"
msgstr ""
-#: ../IkiWiki.pm:1661
+#: ../IkiWiki.pm:1730
msgid "yes"
msgstr ""
diff --git a/po/pl.po b/po/pl.po
index 52bc55dde..27641e3be 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: 2009-01-17 18:19-0500\n"
+"POT-Creation-Date: 2009-03-01 15:03-0500\n"
"PO-Revision-Date: 2007-04-27 22:05+0200\n"
"Last-Translator: Pawel Tecza <ptecza@net.icm.edu.pl>\n"
"Language-Team: Debian L10n Polish <debian-l10n-polish@lists.debian.org>\n"
@@ -20,38 +20,44 @@ msgstr ""
msgid "You need to log in first."
msgstr "Proszę najpierw zalogować się."
-#: ../IkiWiki/CGI.pm:145
+#: ../IkiWiki/CGI.pm:146
+msgid ""
+"probable misconfiguration: sslcookie is set, but you are attepting to login "
+"via http, not https"
+msgstr ""
+
+#: ../IkiWiki/CGI.pm:149
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:163 ../IkiWiki/CGI.pm:280
+#: ../IkiWiki/CGI.pm:168 ../IkiWiki/CGI.pm:299
msgid "Your login session has expired."
msgstr ""
-#: ../IkiWiki/CGI.pm:184
+#: ../IkiWiki/CGI.pm:189
msgid "Login"
msgstr ""
-#: ../IkiWiki/CGI.pm:185
+#: ../IkiWiki/CGI.pm:190
#, fuzzy
msgid "Preferences"
msgstr "Preferencje zapisane."
-#: ../IkiWiki/CGI.pm:186
+#: ../IkiWiki/CGI.pm:191
msgid "Admin"
msgstr ""
-#: ../IkiWiki/CGI.pm:226
+#: ../IkiWiki/CGI.pm:231
msgid "Preferences saved."
msgstr "Preferencje zapisane."
-#: ../IkiWiki/CGI.pm:241
+#: ../IkiWiki/CGI.pm:262
msgid "You are banned."
msgstr "Twój dostęp został zabroniony przez administratora."
-#: ../IkiWiki/CGI.pm:371 ../IkiWiki/CGI.pm:372 ../IkiWiki.pm:1204
+#: ../IkiWiki/CGI.pm:390 ../IkiWiki/CGI.pm:391 ../IkiWiki.pm:1209
msgid "Error"
msgstr "Błąd"
@@ -124,7 +130,7 @@ msgstr ""
msgid "feed crashed XML::Feed!"
msgstr "awaria kanału RSS w module XML::Feed!"
-#: ../IkiWiki/Plugin/aggregate.pm:605
+#: ../IkiWiki/Plugin/aggregate.pm:610
#, perl-format
msgid "creating new page %s"
msgstr "tworzenie nowej strony %s"
@@ -133,7 +139,7 @@ msgstr "tworzenie nowej strony %s"
msgid "deleting bucket.."
msgstr ""
-#: ../IkiWiki/Plugin/amazon_s3.pm:38 ../ikiwiki.in:208
+#: ../IkiWiki/Plugin/amazon_s3.pm:38 ../ikiwiki.in:210
msgid "done"
msgstr "gotowe"
@@ -177,17 +183,13 @@ msgstr ""
msgid "automatic index generation"
msgstr ""
-#: ../IkiWiki/Plugin/blogspam.pm:102
+#: ../IkiWiki/Plugin/blogspam.pm:105
msgid ""
"Sorry, but that looks like spam to <a href=\"http://blogspam.net/"
"\">blogspam</a>: "
msgstr ""
-#: ../IkiWiki/Plugin/blogspam.pm:105
-msgid "blogspam server failure: "
-msgstr ""
-
-#: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:296
+#: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:233
#: ../IkiWiki/Plugin/inline.pm:354 ../IkiWiki/Plugin/opendiscussion.pm:26
#: ../IkiWiki/Plugin/orphans.pm:37 ../IkiWiki/Render.pm:79
#: ../IkiWiki/Render.pm:149
@@ -203,58 +205,68 @@ msgstr ""
msgid "There are no broken links!"
msgstr "Wszystkie odnośniki są aktualne!"
-#: ../IkiWiki/Plugin/comments.pm:120 ../IkiWiki/Plugin/format.pm:23
+#: ../IkiWiki/Plugin/comments.pm:122 ../IkiWiki/Plugin/format.pm:23
#, perl-format
msgid "unsupported page format %s"
msgstr ""
-#: ../IkiWiki/Plugin/comments.pm:125
+#: ../IkiWiki/Plugin/comments.pm:127
msgid "comment must have content"
msgstr ""
-#: ../IkiWiki/Plugin/comments.pm:181
+#: ../IkiWiki/Plugin/comments.pm:183
msgid "Anonymous"
msgstr ""
-#: ../IkiWiki/Plugin/comments.pm:252 ../IkiWiki/Plugin/recentchanges.pm:110
-#, fuzzy
-msgid "missing page"
-msgstr "brakujące wartości"
-
-#: ../IkiWiki/Plugin/comments.pm:254 ../IkiWiki/Plugin/recentchanges.pm:112
-#, perl-format
-msgid "The page %s does not exist."
-msgstr ""
-
-#: ../IkiWiki/Plugin/comments.pm:343 ../IkiWiki/Plugin/editpage.pm:160
+#: ../IkiWiki/Plugin/comments.pm:326 ../IkiWiki/Plugin/editpage.pm:97
msgid "bad page name"
msgstr ""
-#: ../IkiWiki/Plugin/comments.pm:348
+#: ../IkiWiki/Plugin/comments.pm:331
#, fuzzy, perl-format
msgid "commenting on %s"
msgstr "tworzenie %s"
-#: ../IkiWiki/Plugin/comments.pm:366
+#: ../IkiWiki/Plugin/comments.pm:349
#, perl-format
msgid "page '%s' doesn't exist, so you can't comment"
msgstr ""
-#: ../IkiWiki/Plugin/comments.pm:373
+#: ../IkiWiki/Plugin/comments.pm:356
#, perl-format
msgid "comments on page '%s' are closed"
msgstr ""
-#: ../IkiWiki/Plugin/comments.pm:493
+#: ../IkiWiki/Plugin/comments.pm:450
+msgid "comment stored for moderation"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:452
+msgid "Your comment will be posted after moderator review"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:465
msgid "Added a comment"
msgstr ""
-#: ../IkiWiki/Plugin/comments.pm:497
+#: ../IkiWiki/Plugin/comments.pm:469
#, perl-format
msgid "Added a comment: %s"
msgstr ""
-#: ../IkiWiki/Plugin/comments.pm:611
+#: ../IkiWiki/Plugin/comments.pm:510 ../IkiWiki/Plugin/websetup.pm:236
+msgid "you are not logged in as an admin"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:561
+msgid "Comment moderation"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:600
+msgid "comment moderation"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:751
msgid "Comments"
msgstr ""
@@ -279,19 +291,19 @@ msgstr ""
msgid "removing old preview %s"
msgstr "usuwanie starej strony %s"
-#: ../IkiWiki/Plugin/editpage.pm:176
+#: ../IkiWiki/Plugin/editpage.pm:113
#, perl-format
msgid "%s is not an editable page"
msgstr "Strona %s nie może być edytowana"
-#: ../IkiWiki/Plugin/editpage.pm:352
+#: ../IkiWiki/Plugin/editpage.pm:289
#, perl-format
msgid "creating %s"
msgstr "tworzenie %s"
-#: ../IkiWiki/Plugin/editpage.pm:370 ../IkiWiki/Plugin/editpage.pm:389
-#: ../IkiWiki/Plugin/editpage.pm:399 ../IkiWiki/Plugin/editpage.pm:443
-#: ../IkiWiki/Plugin/editpage.pm:482
+#: ../IkiWiki/Plugin/editpage.pm:307 ../IkiWiki/Plugin/editpage.pm:326
+#: ../IkiWiki/Plugin/editpage.pm:336 ../IkiWiki/Plugin/editpage.pm:380
+#: ../IkiWiki/Plugin/editpage.pm:419
#, perl-format
msgid "editing %s"
msgstr "edycja %s"
@@ -324,18 +336,18 @@ msgstr ""
msgid "fortune failed"
msgstr "awaria fortunki"
-#: ../IkiWiki/Plugin/git.pm:618 ../IkiWiki/Plugin/git.pm:636
+#: ../IkiWiki/Plugin/git.pm:624 ../IkiWiki/Plugin/git.pm:642
#: ../IkiWiki/Receive.pm:129
#, perl-format
msgid "you are not allowed to change %s"
msgstr ""
-#: ../IkiWiki/Plugin/git.pm:658
+#: ../IkiWiki/Plugin/git.pm:664
#, perl-format
msgid "you cannot act on a file with mode %s"
msgstr ""
-#: ../IkiWiki/Plugin/git.pm:662
+#: ../IkiWiki/Plugin/git.pm:668
msgid "you are not allowed to change file modes"
msgstr ""
@@ -348,6 +360,16 @@ msgstr "Wtyczka do wyszukiwarka wymaga podania %s"
msgid "Failed to parse url, cannot determine domain name"
msgstr ""
+#: ../IkiWiki/Plugin/goto.pm:49
+#, fuzzy
+msgid "missing page"
+msgstr "brakujące wartości"
+
+#: ../IkiWiki/Plugin/goto.pm:51
+#, perl-format
+msgid "The page %s does not exist."
+msgstr ""
+
#: ../IkiWiki/Plugin/graphviz.pm:67
#, fuzzy
msgid "failed to run graphviz"
@@ -417,7 +439,7 @@ msgstr "brakujący szablon %s"
msgid "Discussion"
msgstr "Dyskusja"
-#: ../IkiWiki/Plugin/inline.pm:587
+#: ../IkiWiki/Plugin/inline.pm:593
msgid "RPC::XML::Client not found, not pinging"
msgstr "Nieznaleziony moduł RPC::XML::Client, brak możliwości pingowania"
@@ -444,17 +466,17 @@ msgstr ""
"Awaria w trakcie ładowania perlowego modułu Markdown.pm (%s) lub "
"uruchamiania programu /usr/bin/markdown (%s)"
-#: ../IkiWiki/Plugin/meta.pm:151
+#: ../IkiWiki/Plugin/meta.pm:158
#, fuzzy
msgid "stylesheet not found"
msgstr "nieznaleziony szablon ze stylami CSS"
-#: ../IkiWiki/Plugin/meta.pm:185
+#: ../IkiWiki/Plugin/meta.pm:192
#, fuzzy
msgid "redir page not found"
msgstr "nieznaleziony kanał RSS"
-#: ../IkiWiki/Plugin/meta.pm:198
+#: ../IkiWiki/Plugin/meta.pm:205
#, fuzzy
msgid "redir cycle is not allowed"
msgstr "nieznaleziony kanał RSS"
@@ -741,11 +763,12 @@ msgstr ""
msgid "search"
msgstr ""
-#: ../IkiWiki/Plugin/shortcut.pm:28
-msgid "shortcut plugin will not work without a shortcuts.mdwn"
+#: ../IkiWiki/Plugin/shortcut.pm:31
+#, perl-format
+msgid "shortcut plugin will not work without %s"
msgstr ""
-#: ../IkiWiki/Plugin/shortcut.pm:38
+#: ../IkiWiki/Plugin/shortcut.pm:44
#, fuzzy
msgid "missing name or url parameter"
msgstr "brakujący parametr name lub url"
@@ -753,7 +776,7 @@ msgstr "brakujący parametr name lub url"
#. translators: This is used to display what shortcuts are defined.
#. translators: First parameter is the name of the shortcut, the second
#. translators: is an URL.
-#: ../IkiWiki/Plugin/shortcut.pm:48
+#: ../IkiWiki/Plugin/shortcut.pm:54
#, fuzzy, perl-format
msgid "shortcut %s points to <i>%s</i>"
msgstr "skrót %s wskazuje na adres <i>%s</i>"
@@ -821,17 +844,17 @@ msgstr "Bezpośrednie pobieranie danych"
msgid "parse fail at line %d: %s"
msgstr "awaria w trakcie przetwarzania linii %d: %s"
-#: ../IkiWiki/Plugin/template.pm:28
+#: ../IkiWiki/Plugin/template.pm:29
#, fuzzy
msgid "missing id parameter"
msgstr "brakujący parametr id"
-#: ../IkiWiki/Plugin/template.pm:35
+#: ../IkiWiki/Plugin/template.pm:36
#, perl-format
msgid "template %s not found"
msgstr "nieznaleziony szablon %s"
-#: ../IkiWiki/Plugin/template.pm:54
+#: ../IkiWiki/Plugin/template.pm:55
#, fuzzy
msgid "failed to process:"
msgstr "awaria w trakcie przetwarzania:"
@@ -859,10 +882,6 @@ msgstr ""
msgid "enable %s?"
msgstr ""
-#: ../IkiWiki/Plugin/websetup.pm:236
-msgid "you are not logged in as an admin"
-msgstr ""
-
#: ../IkiWiki/Plugin/websetup.pm:240
msgid "setup file for this wiki is not known"
msgstr ""
@@ -965,16 +984,16 @@ msgstr "ikiwiki: awaria w trakcie tworzenia %s"
msgid "cannot read %s: %s"
msgstr "awaria w trakcie odczytu %s: %s"
-#: ../IkiWiki/Setup/Automator.pm:33
+#: ../IkiWiki/Setup/Automator.pm:34
msgid "you must enter a wikiname (that contains alphanumerics)"
msgstr ""
-#: ../IkiWiki/Setup/Automator.pm:67
+#: ../IkiWiki/Setup/Automator.pm:68
#, perl-format
msgid "unsupported revision control system %s"
msgstr ""
-#: ../IkiWiki/Setup/Automator.pm:93
+#: ../IkiWiki/Setup/Automator.pm:94
msgid "failed to set up the repository with ikiwiki-makerepo"
msgstr ""
@@ -991,21 +1010,14 @@ msgstr "awaria w trakcie tworzenia osłony używającej pliku konfiguracyjnego"
msgid "wrapper filename not specified"
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:97
-#, 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:154
+#: ../IkiWiki/Wrapper.pm:152
#, perl-format
msgid "failed to compile %s"
msgstr "awaria w trakcie kompilowania %s"
#. translators: The parameter is a filename.
-#: ../IkiWiki/Wrapper.pm:174
+#: ../IkiWiki/Wrapper.pm:172
#, perl-format
msgid "successfully generated %s"
msgstr "pomyślnie utworzono %s"
@@ -1022,15 +1034,15 @@ msgstr ""
msgid "usage: --set var=value"
msgstr ""
-#: ../ikiwiki.in:139
+#: ../ikiwiki.in:140
msgid "generating wrappers.."
msgstr "tworzenie osłon..."
-#: ../ikiwiki.in:197
+#: ../ikiwiki.in:199
msgid "rebuilding wiki.."
msgstr "przebudowywanie wiki..."
-#: ../ikiwiki.in:200
+#: ../ikiwiki.in:202
msgid "refreshing wiki.."
msgstr "odświeżanie wiki..."
@@ -1049,12 +1061,12 @@ msgstr ""
msgid "failed to load external plugin needed for %s plugin: %s"
msgstr ""
-#: ../IkiWiki.pm:1187
+#: ../IkiWiki.pm:1192
#, fuzzy, perl-format
msgid "preprocessing loop detected on %s at depth %i"
msgstr "polecenie preprocesora %s wykryte w %s na głębokości %i"
-#: ../IkiWiki.pm:1661
+#: ../IkiWiki.pm:1730
msgid "yes"
msgstr ""
@@ -1078,6 +1090,9 @@ msgstr ""
msgid "What is the domain name of the web server?"
msgstr ""
+#~ msgid "failed to write %s: %s"
+#~ msgstr "awaria w trakcie zapisu %s: %s"
+
#, fuzzy
#~ msgid "failed to find url in html"
#~ msgstr "awaria w trakcie wyszukiwania adresu URL na stronie HTML"
diff --git a/po/sv.po b/po/sv.po
index 5bf8b3faf..5a545bbc2 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: 2009-01-17 18:19-0500\n"
+"POT-Creation-Date: 2009-03-01 15:03-0500\n"
"PO-Revision-Date: 2007-01-10 23:47+0100\n"
"Last-Translator: Daniel Nylander <po@danielnylander.se>\n"
"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
@@ -19,36 +19,42 @@ msgstr ""
msgid "You need to log in first."
msgstr "Du måste logga in först."
-#: ../IkiWiki/CGI.pm:145
+#: ../IkiWiki/CGI.pm:146
+msgid ""
+"probable misconfiguration: sslcookie is set, but you are attepting to login "
+"via http, not https"
+msgstr ""
+
+#: ../IkiWiki/CGI.pm:149
msgid "login failed, perhaps you need to turn on cookies?"
msgstr ""
-#: ../IkiWiki/CGI.pm:163 ../IkiWiki/CGI.pm:280
+#: ../IkiWiki/CGI.pm:168 ../IkiWiki/CGI.pm:299
msgid "Your login session has expired."
msgstr ""
-#: ../IkiWiki/CGI.pm:184
+#: ../IkiWiki/CGI.pm:189
msgid "Login"
msgstr ""
-#: ../IkiWiki/CGI.pm:185
+#: ../IkiWiki/CGI.pm:190
#, fuzzy
msgid "Preferences"
msgstr "Inställningar sparades."
-#: ../IkiWiki/CGI.pm:186
+#: ../IkiWiki/CGI.pm:191
msgid "Admin"
msgstr ""
-#: ../IkiWiki/CGI.pm:226
+#: ../IkiWiki/CGI.pm:231
msgid "Preferences saved."
msgstr "Inställningar sparades."
-#: ../IkiWiki/CGI.pm:241
+#: ../IkiWiki/CGI.pm:262
msgid "You are banned."
msgstr "Du är bannlyst."
-#: ../IkiWiki/CGI.pm:371 ../IkiWiki/CGI.pm:372 ../IkiWiki.pm:1204
+#: ../IkiWiki/CGI.pm:390 ../IkiWiki/CGI.pm:391 ../IkiWiki.pm:1209
msgid "Error"
msgstr "Fel"
@@ -121,7 +127,7 @@ msgstr ""
msgid "feed crashed XML::Feed!"
msgstr "kanalen kraschade XML::Feed!"
-#: ../IkiWiki/Plugin/aggregate.pm:605
+#: ../IkiWiki/Plugin/aggregate.pm:610
#, perl-format
msgid "creating new page %s"
msgstr "skapar nya sidan %s"
@@ -130,7 +136,7 @@ msgstr "skapar nya sidan %s"
msgid "deleting bucket.."
msgstr ""
-#: ../IkiWiki/Plugin/amazon_s3.pm:38 ../ikiwiki.in:208
+#: ../IkiWiki/Plugin/amazon_s3.pm:38 ../ikiwiki.in:210
msgid "done"
msgstr "klar"
@@ -174,17 +180,13 @@ msgstr ""
msgid "automatic index generation"
msgstr ""
-#: ../IkiWiki/Plugin/blogspam.pm:102
+#: ../IkiWiki/Plugin/blogspam.pm:105
msgid ""
"Sorry, but that looks like spam to <a href=\"http://blogspam.net/"
"\">blogspam</a>: "
msgstr ""
-#: ../IkiWiki/Plugin/blogspam.pm:105
-msgid "blogspam server failure: "
-msgstr ""
-
-#: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:296
+#: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:233
#: ../IkiWiki/Plugin/inline.pm:354 ../IkiWiki/Plugin/opendiscussion.pm:26
#: ../IkiWiki/Plugin/orphans.pm:37 ../IkiWiki/Render.pm:79
#: ../IkiWiki/Render.pm:149
@@ -200,58 +202,68 @@ msgstr ""
msgid "There are no broken links!"
msgstr "Det finns inga trasiga länkar!"
-#: ../IkiWiki/Plugin/comments.pm:120 ../IkiWiki/Plugin/format.pm:23
+#: ../IkiWiki/Plugin/comments.pm:122 ../IkiWiki/Plugin/format.pm:23
#, perl-format
msgid "unsupported page format %s"
msgstr ""
-#: ../IkiWiki/Plugin/comments.pm:125
+#: ../IkiWiki/Plugin/comments.pm:127
msgid "comment must have content"
msgstr ""
-#: ../IkiWiki/Plugin/comments.pm:181
+#: ../IkiWiki/Plugin/comments.pm:183
msgid "Anonymous"
msgstr ""
-#: ../IkiWiki/Plugin/comments.pm:252 ../IkiWiki/Plugin/recentchanges.pm:110
-#, fuzzy
-msgid "missing page"
-msgstr "mall saknar id-parameter"
-
-#: ../IkiWiki/Plugin/comments.pm:254 ../IkiWiki/Plugin/recentchanges.pm:112
-#, perl-format
-msgid "The page %s does not exist."
-msgstr ""
-
-#: ../IkiWiki/Plugin/comments.pm:343 ../IkiWiki/Plugin/editpage.pm:160
+#: ../IkiWiki/Plugin/comments.pm:326 ../IkiWiki/Plugin/editpage.pm:97
msgid "bad page name"
msgstr ""
-#: ../IkiWiki/Plugin/comments.pm:348
+#: ../IkiWiki/Plugin/comments.pm:331
#, fuzzy, perl-format
msgid "commenting on %s"
msgstr "skapar %s"
-#: ../IkiWiki/Plugin/comments.pm:366
+#: ../IkiWiki/Plugin/comments.pm:349
#, perl-format
msgid "page '%s' doesn't exist, so you can't comment"
msgstr ""
-#: ../IkiWiki/Plugin/comments.pm:373
+#: ../IkiWiki/Plugin/comments.pm:356
#, perl-format
msgid "comments on page '%s' are closed"
msgstr ""
-#: ../IkiWiki/Plugin/comments.pm:493
+#: ../IkiWiki/Plugin/comments.pm:450
+msgid "comment stored for moderation"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:452
+msgid "Your comment will be posted after moderator review"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:465
msgid "Added a comment"
msgstr ""
-#: ../IkiWiki/Plugin/comments.pm:497
+#: ../IkiWiki/Plugin/comments.pm:469
#, perl-format
msgid "Added a comment: %s"
msgstr ""
-#: ../IkiWiki/Plugin/comments.pm:611
+#: ../IkiWiki/Plugin/comments.pm:510 ../IkiWiki/Plugin/websetup.pm:236
+msgid "you are not logged in as an admin"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:561
+msgid "Comment moderation"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:600
+msgid "comment moderation"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:751
msgid "Comments"
msgstr ""
@@ -276,19 +288,19 @@ msgstr ""
msgid "removing old preview %s"
msgstr "tar bort gammal sida %s"
-#: ../IkiWiki/Plugin/editpage.pm:176
+#: ../IkiWiki/Plugin/editpage.pm:113
#, perl-format
msgid "%s is not an editable page"
msgstr ""
-#: ../IkiWiki/Plugin/editpage.pm:352
+#: ../IkiWiki/Plugin/editpage.pm:289
#, perl-format
msgid "creating %s"
msgstr "skapar %s"
-#: ../IkiWiki/Plugin/editpage.pm:370 ../IkiWiki/Plugin/editpage.pm:389
-#: ../IkiWiki/Plugin/editpage.pm:399 ../IkiWiki/Plugin/editpage.pm:443
-#: ../IkiWiki/Plugin/editpage.pm:482
+#: ../IkiWiki/Plugin/editpage.pm:307 ../IkiWiki/Plugin/editpage.pm:326
+#: ../IkiWiki/Plugin/editpage.pm:336 ../IkiWiki/Plugin/editpage.pm:380
+#: ../IkiWiki/Plugin/editpage.pm:419
#, perl-format
msgid "editing %s"
msgstr "redigerar %s"
@@ -321,18 +333,18 @@ msgstr ""
msgid "fortune failed"
msgstr "fortune misslyckades"
-#: ../IkiWiki/Plugin/git.pm:618 ../IkiWiki/Plugin/git.pm:636
+#: ../IkiWiki/Plugin/git.pm:624 ../IkiWiki/Plugin/git.pm:642
#: ../IkiWiki/Receive.pm:129
#, perl-format
msgid "you are not allowed to change %s"
msgstr ""
-#: ../IkiWiki/Plugin/git.pm:658
+#: ../IkiWiki/Plugin/git.pm:664
#, perl-format
msgid "you cannot act on a file with mode %s"
msgstr ""
-#: ../IkiWiki/Plugin/git.pm:662
+#: ../IkiWiki/Plugin/git.pm:668
msgid "you are not allowed to change file modes"
msgstr ""
@@ -345,6 +357,16 @@ msgstr "Måste ange %s när sökinsticket används"
msgid "Failed to parse url, cannot determine domain name"
msgstr ""
+#: ../IkiWiki/Plugin/goto.pm:49
+#, fuzzy
+msgid "missing page"
+msgstr "mall saknar id-parameter"
+
+#: ../IkiWiki/Plugin/goto.pm:51
+#, perl-format
+msgid "The page %s does not exist."
+msgstr ""
+
#: ../IkiWiki/Plugin/graphviz.pm:67
#, fuzzy
msgid "failed to run graphviz"
@@ -412,7 +434,7 @@ msgstr ""
msgid "Discussion"
msgstr "Diskussion"
-#: ../IkiWiki/Plugin/inline.pm:587
+#: ../IkiWiki/Plugin/inline.pm:593
msgid "RPC::XML::Client not found, not pinging"
msgstr "RPC::XML::Client hittades inte, pingar inte"
@@ -437,17 +459,17 @@ msgstr ""
"misslyckades med att läsa in Perl-modulen Markdown.pm (%s) eller /usr/bin/"
"markdown (%s)"
-#: ../IkiWiki/Plugin/meta.pm:151
+#: ../IkiWiki/Plugin/meta.pm:158
#, fuzzy
msgid "stylesheet not found"
msgstr "mallen %s hittades inte"
-#: ../IkiWiki/Plugin/meta.pm:185
+#: ../IkiWiki/Plugin/meta.pm:192
#, fuzzy
msgid "redir page not found"
msgstr "mallen %s hittades inte"
-#: ../IkiWiki/Plugin/meta.pm:198
+#: ../IkiWiki/Plugin/meta.pm:205
#, fuzzy
msgid "redir cycle is not allowed"
msgstr "mallen %s hittades inte"
@@ -731,11 +753,12 @@ msgstr ""
msgid "search"
msgstr ""
-#: ../IkiWiki/Plugin/shortcut.pm:28
-msgid "shortcut plugin will not work without a shortcuts.mdwn"
+#: ../IkiWiki/Plugin/shortcut.pm:31
+#, perl-format
+msgid "shortcut plugin will not work without %s"
msgstr ""
-#: ../IkiWiki/Plugin/shortcut.pm:38
+#: ../IkiWiki/Plugin/shortcut.pm:44
#, fuzzy
msgid "missing name or url parameter"
msgstr "genväg saknar parameter för namn eller url"
@@ -743,7 +766,7 @@ msgstr "genväg saknar parameter för namn eller url"
#. translators: This is used to display what shortcuts are defined.
#. translators: First parameter is the name of the shortcut, the second
#. translators: is an URL.
-#: ../IkiWiki/Plugin/shortcut.pm:48
+#: ../IkiWiki/Plugin/shortcut.pm:54
#, fuzzy, perl-format
msgid "shortcut %s points to <i>%s</i>"
msgstr "genvägen %s pekar på %s"
@@ -811,17 +834,17 @@ msgstr ""
msgid "parse fail at line %d: %s"
msgstr "misslyckades med att skriva %s: %s"
-#: ../IkiWiki/Plugin/template.pm:28
+#: ../IkiWiki/Plugin/template.pm:29
#, fuzzy
msgid "missing id parameter"
msgstr "mall saknar id-parameter"
-#: ../IkiWiki/Plugin/template.pm:35
+#: ../IkiWiki/Plugin/template.pm:36
#, perl-format
msgid "template %s not found"
msgstr "mallen %s hittades inte"
-#: ../IkiWiki/Plugin/template.pm:54
+#: ../IkiWiki/Plugin/template.pm:55
#, fuzzy
msgid "failed to process:"
msgstr "misslyckades med att behandla mall:"
@@ -848,10 +871,6 @@ msgstr ""
msgid "enable %s?"
msgstr ""
-#: ../IkiWiki/Plugin/websetup.pm:236
-msgid "you are not logged in as an admin"
-msgstr ""
-
#: ../IkiWiki/Plugin/websetup.pm:240
msgid "setup file for this wiki is not known"
msgstr ""
@@ -954,16 +973,16 @@ msgstr "ikiwiki: kan inte rita upp %s"
msgid "cannot read %s: %s"
msgstr "kan inte läsa %s: %s"
-#: ../IkiWiki/Setup/Automator.pm:33
+#: ../IkiWiki/Setup/Automator.pm:34
msgid "you must enter a wikiname (that contains alphanumerics)"
msgstr ""
-#: ../IkiWiki/Setup/Automator.pm:67
+#: ../IkiWiki/Setup/Automator.pm:68
#, perl-format
msgid "unsupported revision control system %s"
msgstr ""
-#: ../IkiWiki/Setup/Automator.pm:93
+#: ../IkiWiki/Setup/Automator.pm:94
msgid "failed to set up the repository with ikiwiki-makerepo"
msgstr ""
@@ -980,21 +999,14 @@ msgstr "kan inte skapa en wrapper som använder en konfigurationsfil"
msgid "wrapper filename not specified"
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:97
-#, 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:154
+#: ../IkiWiki/Wrapper.pm:152
#, perl-format
msgid "failed to compile %s"
msgstr "misslyckades med att kompilera %s"
#. translators: The parameter is a filename.
-#: ../IkiWiki/Wrapper.pm:174
+#: ../IkiWiki/Wrapper.pm:172
#, perl-format
msgid "successfully generated %s"
msgstr "generering av %s lyckades"
@@ -1011,15 +1023,15 @@ msgstr ""
msgid "usage: --set var=value"
msgstr ""
-#: ../ikiwiki.in:139
+#: ../ikiwiki.in:140
msgid "generating wrappers.."
msgstr "genererar wrappers.."
-#: ../ikiwiki.in:197
+#: ../ikiwiki.in:199
msgid "rebuilding wiki.."
msgstr "bygger om wiki.."
-#: ../ikiwiki.in:200
+#: ../ikiwiki.in:202
msgid "refreshing wiki.."
msgstr "uppdaterar wiki.."
@@ -1036,12 +1048,12 @@ msgstr ""
msgid "failed to load external plugin needed for %s plugin: %s"
msgstr ""
-#: ../IkiWiki.pm:1187
+#: ../IkiWiki.pm:1192
#, fuzzy, perl-format
msgid "preprocessing loop detected on %s at depth %i"
msgstr "%s förbehandlingsslinga detekterades på %s, djup %i"
-#: ../IkiWiki.pm:1661
+#: ../IkiWiki.pm:1730
msgid "yes"
msgstr ""
@@ -1065,6 +1077,9 @@ msgstr ""
msgid "What is the domain name of the web server?"
msgstr ""
+#~ msgid "failed to write %s: %s"
+#~ msgstr "misslyckades med att skriva %s: %s"
+
#, fuzzy
#~ msgid "failed to find url in html"
#~ msgstr "googlecalendar misslyckades med att hitta url i html"
diff --git a/po/vi.po b/po/vi.po
index 6082879f5..0ea8a0360 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: 2009-01-17 18:19-0500\n"
+"POT-Creation-Date: 2009-03-01 15:03-0500\n"
"PO-Revision-Date: 2007-01-13 15:31+1030\n"
"Last-Translator: Clytie Siddall <clytie@riverland.net.au>\n"
"Language-Team: Vietnamese <vi-VN@googlegroups.com>\n"
@@ -20,36 +20,42 @@ msgstr ""
msgid "You need to log in first."
msgstr "Trước tiên bạn cần phải đăng nhập."
-#: ../IkiWiki/CGI.pm:145
+#: ../IkiWiki/CGI.pm:146
+msgid ""
+"probable misconfiguration: sslcookie is set, but you are attepting to login "
+"via http, not https"
+msgstr ""
+
+#: ../IkiWiki/CGI.pm:149
msgid "login failed, perhaps you need to turn on cookies?"
msgstr ""
-#: ../IkiWiki/CGI.pm:163 ../IkiWiki/CGI.pm:280
+#: ../IkiWiki/CGI.pm:168 ../IkiWiki/CGI.pm:299
msgid "Your login session has expired."
msgstr ""
-#: ../IkiWiki/CGI.pm:184
+#: ../IkiWiki/CGI.pm:189
msgid "Login"
msgstr ""
-#: ../IkiWiki/CGI.pm:185
+#: ../IkiWiki/CGI.pm:190
#, fuzzy
msgid "Preferences"
msgstr "Tùy thích đã được lưu."
-#: ../IkiWiki/CGI.pm:186
+#: ../IkiWiki/CGI.pm:191
msgid "Admin"
msgstr ""
-#: ../IkiWiki/CGI.pm:226
+#: ../IkiWiki/CGI.pm:231
msgid "Preferences saved."
msgstr "Tùy thích đã được lưu."
-#: ../IkiWiki/CGI.pm:241
+#: ../IkiWiki/CGI.pm:262
msgid "You are banned."
msgstr "Bạn bị cấm ra."
-#: ../IkiWiki/CGI.pm:371 ../IkiWiki/CGI.pm:372 ../IkiWiki.pm:1204
+#: ../IkiWiki/CGI.pm:390 ../IkiWiki/CGI.pm:391 ../IkiWiki.pm:1209
msgid "Error"
msgstr "Lỗi"
@@ -122,7 +128,7 @@ msgstr ""
msgid "feed crashed XML::Feed!"
msgstr "nguồn tin đã gây ra XML::Feed sụp đổ."
-#: ../IkiWiki/Plugin/aggregate.pm:605
+#: ../IkiWiki/Plugin/aggregate.pm:610
#, perl-format
msgid "creating new page %s"
msgstr "đang tạo trang mới %s"
@@ -131,7 +137,7 @@ msgstr "đang tạo trang mới %s"
msgid "deleting bucket.."
msgstr ""
-#: ../IkiWiki/Plugin/amazon_s3.pm:38 ../ikiwiki.in:208
+#: ../IkiWiki/Plugin/amazon_s3.pm:38 ../ikiwiki.in:210
msgid "done"
msgstr "xong"
@@ -175,17 +181,13 @@ msgstr ""
msgid "automatic index generation"
msgstr ""
-#: ../IkiWiki/Plugin/blogspam.pm:102
+#: ../IkiWiki/Plugin/blogspam.pm:105
msgid ""
"Sorry, but that looks like spam to <a href=\"http://blogspam.net/"
"\">blogspam</a>: "
msgstr ""
-#: ../IkiWiki/Plugin/blogspam.pm:105
-msgid "blogspam server failure: "
-msgstr ""
-
-#: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:296
+#: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:233
#: ../IkiWiki/Plugin/inline.pm:354 ../IkiWiki/Plugin/opendiscussion.pm:26
#: ../IkiWiki/Plugin/orphans.pm:37 ../IkiWiki/Render.pm:79
#: ../IkiWiki/Render.pm:149
@@ -201,58 +203,68 @@ msgstr ""
msgid "There are no broken links!"
msgstr "Không có liên kết bị ngắt nào."
-#: ../IkiWiki/Plugin/comments.pm:120 ../IkiWiki/Plugin/format.pm:23
+#: ../IkiWiki/Plugin/comments.pm:122 ../IkiWiki/Plugin/format.pm:23
#, perl-format
msgid "unsupported page format %s"
msgstr ""
-#: ../IkiWiki/Plugin/comments.pm:125
+#: ../IkiWiki/Plugin/comments.pm:127
msgid "comment must have content"
msgstr ""
-#: ../IkiWiki/Plugin/comments.pm:181
+#: ../IkiWiki/Plugin/comments.pm:183
msgid "Anonymous"
msgstr ""
-#: ../IkiWiki/Plugin/comments.pm:252 ../IkiWiki/Plugin/recentchanges.pm:110
-#, fuzzy
-msgid "missing page"
-msgstr "mẫu thiếu tham số id"
-
-#: ../IkiWiki/Plugin/comments.pm:254 ../IkiWiki/Plugin/recentchanges.pm:112
-#, perl-format
-msgid "The page %s does not exist."
-msgstr ""
-
-#: ../IkiWiki/Plugin/comments.pm:343 ../IkiWiki/Plugin/editpage.pm:160
+#: ../IkiWiki/Plugin/comments.pm:326 ../IkiWiki/Plugin/editpage.pm:97
msgid "bad page name"
msgstr ""
-#: ../IkiWiki/Plugin/comments.pm:348
+#: ../IkiWiki/Plugin/comments.pm:331
#, fuzzy, perl-format
msgid "commenting on %s"
msgstr "đang tạo %s"
-#: ../IkiWiki/Plugin/comments.pm:366
+#: ../IkiWiki/Plugin/comments.pm:349
#, perl-format
msgid "page '%s' doesn't exist, so you can't comment"
msgstr ""
-#: ../IkiWiki/Plugin/comments.pm:373
+#: ../IkiWiki/Plugin/comments.pm:356
#, perl-format
msgid "comments on page '%s' are closed"
msgstr ""
-#: ../IkiWiki/Plugin/comments.pm:493
+#: ../IkiWiki/Plugin/comments.pm:450
+msgid "comment stored for moderation"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:452
+msgid "Your comment will be posted after moderator review"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:465
msgid "Added a comment"
msgstr ""
-#: ../IkiWiki/Plugin/comments.pm:497
+#: ../IkiWiki/Plugin/comments.pm:469
#, perl-format
msgid "Added a comment: %s"
msgstr ""
-#: ../IkiWiki/Plugin/comments.pm:611
+#: ../IkiWiki/Plugin/comments.pm:510 ../IkiWiki/Plugin/websetup.pm:236
+msgid "you are not logged in as an admin"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:561
+msgid "Comment moderation"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:600
+msgid "comment moderation"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:751
msgid "Comments"
msgstr ""
@@ -277,19 +289,19 @@ msgstr ""
msgid "removing old preview %s"
msgstr "đang gỡ bỏ trang cũ %s"
-#: ../IkiWiki/Plugin/editpage.pm:176
+#: ../IkiWiki/Plugin/editpage.pm:113
#, perl-format
msgid "%s is not an editable page"
msgstr ""
-#: ../IkiWiki/Plugin/editpage.pm:352
+#: ../IkiWiki/Plugin/editpage.pm:289
#, perl-format
msgid "creating %s"
msgstr "đang tạo %s"
-#: ../IkiWiki/Plugin/editpage.pm:370 ../IkiWiki/Plugin/editpage.pm:389
-#: ../IkiWiki/Plugin/editpage.pm:399 ../IkiWiki/Plugin/editpage.pm:443
-#: ../IkiWiki/Plugin/editpage.pm:482
+#: ../IkiWiki/Plugin/editpage.pm:307 ../IkiWiki/Plugin/editpage.pm:326
+#: ../IkiWiki/Plugin/editpage.pm:336 ../IkiWiki/Plugin/editpage.pm:380
+#: ../IkiWiki/Plugin/editpage.pm:419
#, perl-format
msgid "editing %s"
msgstr "đang sửa %s"
@@ -322,18 +334,18 @@ msgstr ""
msgid "fortune failed"
msgstr "fortune bị lỗi"
-#: ../IkiWiki/Plugin/git.pm:618 ../IkiWiki/Plugin/git.pm:636
+#: ../IkiWiki/Plugin/git.pm:624 ../IkiWiki/Plugin/git.pm:642
#: ../IkiWiki/Receive.pm:129
#, perl-format
msgid "you are not allowed to change %s"
msgstr ""
-#: ../IkiWiki/Plugin/git.pm:658
+#: ../IkiWiki/Plugin/git.pm:664
#, perl-format
msgid "you cannot act on a file with mode %s"
msgstr ""
-#: ../IkiWiki/Plugin/git.pm:662
+#: ../IkiWiki/Plugin/git.pm:668
msgid "you are not allowed to change file modes"
msgstr ""
@@ -346,6 +358,16 @@ msgstr "Cần phải xác định %s khi dùng bổ sung tìm kiếm"
msgid "Failed to parse url, cannot determine domain name"
msgstr ""
+#: ../IkiWiki/Plugin/goto.pm:49
+#, fuzzy
+msgid "missing page"
+msgstr "mẫu thiếu tham số id"
+
+#: ../IkiWiki/Plugin/goto.pm:51
+#, perl-format
+msgid "The page %s does not exist."
+msgstr ""
+
#: ../IkiWiki/Plugin/graphviz.pm:67
#, fuzzy
msgid "failed to run graphviz"
@@ -415,7 +437,7 @@ msgstr ""
msgid "Discussion"
msgstr "Thảo luận"
-#: ../IkiWiki/Plugin/inline.pm:587
+#: ../IkiWiki/Plugin/inline.pm:593
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"
@@ -438,17 +460,17 @@ msgstr ""
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:151
+#: ../IkiWiki/Plugin/meta.pm:158
#, fuzzy
msgid "stylesheet not found"
msgstr "không tìm thấy mẫu %s"
-#: ../IkiWiki/Plugin/meta.pm:185
+#: ../IkiWiki/Plugin/meta.pm:192
#, fuzzy
msgid "redir page not found"
msgstr "không tìm thấy mẫu %s"
-#: ../IkiWiki/Plugin/meta.pm:198
+#: ../IkiWiki/Plugin/meta.pm:205
#, fuzzy
msgid "redir cycle is not allowed"
msgstr "không tìm thấy mẫu %s"
@@ -732,11 +754,12 @@ msgstr ""
msgid "search"
msgstr ""
-#: ../IkiWiki/Plugin/shortcut.pm:28
-msgid "shortcut plugin will not work without a shortcuts.mdwn"
+#: ../IkiWiki/Plugin/shortcut.pm:31
+#, perl-format
+msgid "shortcut plugin will not work without %s"
msgstr ""
-#: ../IkiWiki/Plugin/shortcut.pm:38
+#: ../IkiWiki/Plugin/shortcut.pm:44
#, fuzzy
msgid "missing name or url parameter"
msgstr "lối tắt thiếu tên hay tham số url"
@@ -744,7 +767,7 @@ msgstr "lối tắt thiếu tên hay tham số url"
#. translators: This is used to display what shortcuts are defined.
#. translators: First parameter is the name of the shortcut, the second
#. translators: is an URL.
-#: ../IkiWiki/Plugin/shortcut.pm:48
+#: ../IkiWiki/Plugin/shortcut.pm:54
#, fuzzy, perl-format
msgid "shortcut %s points to <i>%s</i>"
msgstr "lối tắt %s chỉ tới %s"
@@ -812,17 +835,17 @@ msgstr ""
msgid "parse fail at line %d: %s"
msgstr "lỗi ghi %s: %s"
-#: ../IkiWiki/Plugin/template.pm:28
+#: ../IkiWiki/Plugin/template.pm:29
#, fuzzy
msgid "missing id parameter"
msgstr "mẫu thiếu tham số id"
-#: ../IkiWiki/Plugin/template.pm:35
+#: ../IkiWiki/Plugin/template.pm:36
#, perl-format
msgid "template %s not found"
msgstr "không tìm thấy mẫu %s"
-#: ../IkiWiki/Plugin/template.pm:54
+#: ../IkiWiki/Plugin/template.pm:55
#, fuzzy
msgid "failed to process:"
msgstr "mẫu không xử lý được:"
@@ -849,10 +872,6 @@ msgstr ""
msgid "enable %s?"
msgstr ""
-#: ../IkiWiki/Plugin/websetup.pm:236
-msgid "you are not logged in as an admin"
-msgstr ""
-
#: ../IkiWiki/Plugin/websetup.pm:240
msgid "setup file for this wiki is not known"
msgstr ""
@@ -955,16 +974,16 @@ msgstr "ikiwiki: không thể vẽ %s"
msgid "cannot read %s: %s"
msgstr "không thể đọc %s: %s"
-#: ../IkiWiki/Setup/Automator.pm:33
+#: ../IkiWiki/Setup/Automator.pm:34
msgid "you must enter a wikiname (that contains alphanumerics)"
msgstr ""
-#: ../IkiWiki/Setup/Automator.pm:67
+#: ../IkiWiki/Setup/Automator.pm:68
#, perl-format
msgid "unsupported revision control system %s"
msgstr ""
-#: ../IkiWiki/Setup/Automator.pm:93
+#: ../IkiWiki/Setup/Automator.pm:94
msgid "failed to set up the repository with ikiwiki-makerepo"
msgstr ""
@@ -981,21 +1000,14 @@ msgstr "không thể tạo bộ bao bọc sử dụng tập tin thiết lập"
msgid "wrapper filename not specified"
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:97
-#, perl-format
-msgid "failed to write %s: %s"
-msgstr "lỗi ghi %s: %s"
-
#. translators: The parameter is a C filename.
-#: ../IkiWiki/Wrapper.pm:154
+#: ../IkiWiki/Wrapper.pm:152
#, perl-format
msgid "failed to compile %s"
msgstr "lỗi biên dịch %s"
#. translators: The parameter is a filename.
-#: ../IkiWiki/Wrapper.pm:174
+#: ../IkiWiki/Wrapper.pm:172
#, perl-format
msgid "successfully generated %s"
msgstr "%s đã được tạo ra"
@@ -1012,15 +1024,15 @@ msgstr ""
msgid "usage: --set var=value"
msgstr ""
-#: ../ikiwiki.in:139
+#: ../ikiwiki.in:140
msgid "generating wrappers.."
msgstr "đang tạo ra các bộ bao bọc.."
-#: ../ikiwiki.in:197
+#: ../ikiwiki.in:199
msgid "rebuilding wiki.."
msgstr "đang xây dựng lại wiki.."
-#: ../ikiwiki.in:200
+#: ../ikiwiki.in:202
msgid "refreshing wiki.."
msgstr "đang làm tươi wiki.."
@@ -1037,12 +1049,12 @@ msgstr ""
msgid "failed to load external plugin needed for %s plugin: %s"
msgstr ""
-#: ../IkiWiki.pm:1187
+#: ../IkiWiki.pm:1192
#, fuzzy, perl-format
msgid "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"
-#: ../IkiWiki.pm:1661
+#: ../IkiWiki.pm:1730
msgid "yes"
msgstr ""
@@ -1066,6 +1078,9 @@ msgstr ""
msgid "What is the domain name of the web server?"
msgstr ""
+#~ msgid "failed to write %s: %s"
+#~ msgstr "lỗi ghi %s: %s"
+
#, fuzzy
#~ msgid "failed to find url in html"
#~ msgstr "googlecalendar không tìm thấy địa chỉ URL trong mã HTML"
diff --git a/t/404.t b/t/404.t
new file mode 100755
index 000000000..0bb3c6063
--- /dev/null
+++ b/t/404.t
@@ -0,0 +1,44 @@
+#!/usr/bin/perl
+use warnings;
+use strict;
+use Test::More tests => 17;
+
+BEGIN { use_ok("IkiWiki::Plugin::404"); }
+
+sub cgi_page_from_404 {
+ return IkiWiki::Plugin::404::cgi_page_from_404(shift, shift, shift);
+}
+
+$IkiWiki::config{htmlext} = 'html';
+
+is(cgi_page_from_404('/', 'http://example.com', 1), 'index');
+is(cgi_page_from_404('/index.html', 'http://example.com', 0), 'index');
+is(cgi_page_from_404('/', 'http://example.com/', 1), 'index');
+is(cgi_page_from_404('/index.html', 'http://example.com/', 0), 'index');
+
+is(cgi_page_from_404('/~user/foo/bar', 'http://example.com/~user', 1),
+ 'foo/bar');
+is(cgi_page_from_404('/~user/foo/bar/index.html', 'http://example.com/~user', 1),
+ 'foo/bar');
+is(cgi_page_from_404('/~user/foo/bar/', 'http://example.com/~user', 1),
+ 'foo/bar');
+is(cgi_page_from_404('/~user/foo/bar.html', 'http://example.com/~user', 0),
+ 'foo/bar');
+
+is(cgi_page_from_404('/~user/foo/bar', 'http://example.com/~user/', 1),
+ 'foo/bar');
+is(cgi_page_from_404('/~user/foo/bar/index.html', 'http://example.com/~user/', 1),
+ 'foo/bar');
+is(cgi_page_from_404('/~user/foo/bar/', 'http://example.com/~user/', 1),
+ 'foo/bar');
+is(cgi_page_from_404('/~user/foo/bar.html', 'http://example.com/~user/', 0),
+ 'foo/bar');
+
+is(cgi_page_from_404('/~user/foo', 'https://example.com/~user', 1),
+ 'foo');
+is(cgi_page_from_404('/~user/foo/index.html', 'https://example.com/~user', 1),
+ 'foo');
+is(cgi_page_from_404('/~user/foo/', 'https://example.com/~user', 1),
+ 'foo');
+is(cgi_page_from_404('/~user/foo.html', 'https://example.com/~user', 0),
+ 'foo');
diff --git a/t/pagename.t b/t/pagename.t
index c7f1ce180..540d10f4c 100755
--- a/t/pagename.t
+++ b/t/pagename.t
@@ -1,14 +1,35 @@
#!/usr/bin/perl
use warnings;
use strict;
-use Test::More tests => 5;
+use Test::More tests => 19;
BEGIN { use_ok("IkiWiki"); }
-# Used internally.
-$IkiWiki::hooks{htmlize}{mdwn}{call}=sub {};
-
+# define mdwn as an extension
+$IkiWiki::hooks{htmlize}{mdwn}={};
+is(pagetype("foo.mdwn"), "mdwn");
is(pagename("foo.mdwn"), "foo");
+is(pagetype("foo/bar.mdwn"), "mdwn");
is(pagename("foo/bar.mdwn"), "foo/bar");
+
+# bare files get the full filename as page name, undef type
+is(pagetype("foo.png"), undef);
is(pagename("foo.png"), "foo.png");
+is(pagetype("foo/bar.png"), undef);
+is(pagename("foo/bar.png"), "foo/bar.png");
+is(pagetype("foo"), undef);
is(pagename("foo"), "foo");
+
+# keepextension preserves the extension in the page name
+$IkiWiki::hooks{htmlize}{txt}={keepextension => 1};
+is(pagename("foo.txt"), "foo.txt");
+is(pagetype("foo.txt"), "txt");
+is(pagename("foo/bar.txt"), "foo/bar.txt");
+is(pagetype("foo/bar.txt"), "txt");
+
+# noextension makes extensionless files be treated as first-class pages
+$IkiWiki::hooks{htmlize}{Makefile}={noextension =>1};
+is(pagetype("Makefile"), "Makefile");
+is(pagename("Makefile"), "Makefile");
+is(pagetype("foo/Makefile"), "Makefile");
+is(pagename("foo/Makefile"), "foo/Makefile");
diff --git a/t/pagetype.mdwn b/t/pagetype.mdwn
deleted file mode 100755
index 76cacd8f7..000000000
--- a/t/pagetype.mdwn
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/usr/bin/perl
-use warnings;
-use strict;
-use Test::More tests => 5;
-
-BEGIN { use_ok("IkiWiki"); }
-
-# Used internally.
-$IkiWiki::hooks{htmlize}{mdwn}=1;
-
-is(pagetype("foo.mdwn"), "mdwn");
-is(pagetype("foo/bar.mdwn"), "mdwn");
-is(pagename("foo.png"), undef);
-is(pagename("foo"), undef);
diff --git a/templates/googleform.tmpl b/templates/googleform.tmpl
index 523cff001..e2d4a1f43 100644
--- a/templates/googleform.tmpl
+++ b/templates/googleform.tmpl
@@ -1,6 +1,6 @@
<form method="get" action="http://www.google.com/search" id="searchform">
<div>
- <input name="sitesearch" value="<TMPL_VAR SITEFQDN>" type="hidden">
- <input name="q" value="" id="searchbox" size="16" maxlength="255" type="text">
+ <input name="sitesearch" value="<TMPL_VAR SITEFQDN>" type="hidden" />
+ <input name="q" value="" id="searchbox" size="16" maxlength="255" type="text" />
</div>
</form>
diff --git a/templates/misc.tmpl b/templates/misc.tmpl
index 7f65217d1..0de56edeb 100644
--- a/templates/misc.tmpl
+++ b/templates/misc.tmpl
@@ -17,11 +17,13 @@
</head>
<body>
+<div class="pageheader">
<div class="header">
<span>
<TMPL_VAR INDEXLINK>/ <TMPL_VAR TITLE>
</span>
</div>
+</div> <!-- .pageheader -->
<div id="content">
<TMPL_VAR PAGEBODY>