summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--IkiWiki.pm38
-rw-r--r--IkiWiki/Plugin/comments.pm16
-rw-r--r--IkiWiki/Plugin/conditional.pm4
-rw-r--r--IkiWiki/Plugin/git.pm4
-rw-r--r--IkiWiki/Plugin/goodstuff.pm1
-rw-r--r--IkiWiki/Plugin/pinger.pm2
-rw-r--r--IkiWiki/Plugin/rename.pm35
-rw-r--r--IkiWiki/Plugin/repolist.pm51
-rw-r--r--IkiWiki/Plugin/skeleton.pm.example4
-rw-r--r--IkiWiki/Plugin/table.pm42
-rw-r--r--debian/NEWS15
-rw-r--r--debian/changelog30
-rw-r--r--doc/bugs/Error:_Your_login_session_has_expired._.mdwn44
-rw-r--r--doc/bugs/URLs_with_parentheses_displayed_badly.mdwn19
-rw-r--r--doc/bugs/Use_install__40__1__41___instead_of_cp__40__1__41___for_installing_files.mdwn7
-rw-r--r--doc/bugs/entirely_negated_pagespec_matches_internal_pages.mdwn4
-rw-r--r--doc/bugs/gitweb_deficiency_w.r.t._log_messages.mdwn4
-rw-r--r--doc/bugs/gitweb_deficiency_w.r.t._newly_created_pages.mdwn3
-rw-r--r--doc/bugs/links_misparsed_in_CSV_files.mdwn10
-rw-r--r--doc/bugs/output_of_successful_rename_should_list_the_full_path_to_affected_pages.mdwn2
-rw-r--r--doc/bugs/pagetitle_function_does_not_respect_meta_titles.mdwn2
-rw-r--r--doc/bugs/table_external_file_links.mdwn9
-rw-r--r--doc/ikiwiki-makerepo.mdwn15
-rw-r--r--doc/ikiwikiusers.mdwn3
-rw-r--r--doc/news/version_3.01.mdwn21
-rw-r--r--doc/pagehistory.mdwn3
-rw-r--r--doc/plugins/contrib/po.mdwn8
-rw-r--r--doc/plugins/goodstuff.mdwn1
-rw-r--r--doc/plugins/repolist.mdwn17
-rw-r--r--doc/rcs/git.mdwn14
-rw-r--r--doc/sandbox.mdwn12
-rw-r--r--doc/sandbox/foobak.mdwn1
-rw-r--r--doc/sandbox/한글.mdwn1
-rw-r--r--doc/sandbox/한글페이지.mdwn2
-rw-r--r--doc/tips/markdown_and_eclipse.mdwn4
-rw-r--r--doc/tips/upgrade_to_3.0.mdwn4
-rw-r--r--doc/todo/allow_disabling_backlinks.mdwn18
-rw-r--r--doc/todo/comments.mdwn32
-rw-r--r--doc/todo/modify_page_filename_in_plugin.mdwn2
-rw-r--r--doc/todo/relative_pagespec_deficiency.mdwn8
-rw-r--r--docwiki.setup2
-rwxr-xr-xikiwiki-makerepo4
-rw-r--r--po/fr.po81
-rw-r--r--po/ikiwiki.pot4
-rwxr-xr-xt/yesno.t21
-rw-r--r--templates/comment.tmpl11
-rw-r--r--templates/page.tmpl1
47 files changed, 505 insertions, 131 deletions
diff --git a/IkiWiki.pm b/IkiWiki.pm
index e509a7c2f..4601d8590 100644
--- a/IkiWiki.pm
+++ b/IkiWiki.pm
@@ -1658,7 +1658,7 @@ sub gettext {
sub yesno ($) {
my $val=shift;
- return (defined $val && lc($val) eq gettext("yes"));
+ return (defined $val && (lc($val) eq gettext("yes") || lc($val) eq "yes" || $val eq "1"));
}
sub inject {
@@ -1807,19 +1807,25 @@ sub new {
package IkiWiki::PageSpec;
+sub derel ($$) {
+ my $path=shift;
+ my $from=shift;
+
+ if ($path =~ m!^\./!) {
+ $from=~s#/?[^/]+$## if defined $from;
+ $path=~s#^\./##;
+ $path="$from/$path" if length $from;
+ }
+
+ return $path;
+}
+
sub match_glob ($$;@) {
my $page=shift;
my $glob=shift;
my %params=@_;
- my $from=exists $params{location} ? $params{location} : '';
-
- # relative matching
- if ($glob =~ m!^\./!) {
- $from=~s#/?[^/]+$##;
- $glob=~s#^\./##;
- $glob="$from/$glob" if length $from;
- }
+ $glob=derel($glob, $params{location});
my $regexp=IkiWiki::glob2re($glob);
if ($page=~/^$regexp$/i) {
@@ -1844,15 +1850,9 @@ sub match_link ($$;@) {
my $link=lc(shift);
my %params=@_;
+ $link=derel($link, $params{location});
my $from=exists $params{location} ? $params{location} : '';
- # relative matching
- if ($link =~ m!^\.! && defined $from) {
- $from=~s#/?[^/]+$##;
- $link=~s#^\./##;
- $link="$from/$link" if length $from;
- }
-
my $links = $IkiWiki::links{$page};
return IkiWiki::FailReason->new("$page has no links") unless $links && @{$links};
my $bestlink = IkiWiki::bestlink($from, $link);
@@ -1880,6 +1880,9 @@ sub match_backlink ($$;@) {
sub match_created_before ($$;@) {
my $page=shift;
my $testpage=shift;
+ my %params=@_;
+
+ $testpage=derel($testpage, $params{location});
if (exists $IkiWiki::pagectime{$testpage}) {
if ($IkiWiki::pagectime{$page} < $IkiWiki::pagectime{$testpage}) {
@@ -1897,6 +1900,9 @@ sub match_created_before ($$;@) {
sub match_created_after ($$;@) {
my $page=shift;
my $testpage=shift;
+ my %params=@_;
+
+ $testpage=derel($testpage, $params{location});
if (exists $IkiWiki::pagectime{$testpage}) {
if ($IkiWiki::pagectime{$page} > $IkiWiki::pagectime{$testpage}) {
diff --git a/IkiWiki/Plugin/comments.pm b/IkiWiki/Plugin/comments.pm
index 1c10417c3..1c4ab4895 100644
--- a/IkiWiki/Plugin/comments.pm
+++ b/IkiWiki/Plugin/comments.pm
@@ -508,7 +508,7 @@ sub sessioncgi ($$) {
# Jump to the new comment on the page.
# The trailing question mark tries to avoid broken
# caches and get the most recent version of the page.
- IkiWiki::redirect($cgi, urlto($page, undef, 1)."#$location?updated");
+ IkiWiki::redirect($cgi, urlto($page, undef, 1)."?updated#$location");
}
else {
@@ -604,6 +604,12 @@ sub pagetemplate (@) {
}
}
+ # everything below this point is only relevant to the comments
+ # themselves
+ if (!exists $commentstate{$page}) {
+ return;
+ }
+
if ($template->query(name => 'commentuser')) {
$template->param(commentuser =>
$commentstate{$page}{commentuser});
@@ -628,6 +634,14 @@ sub pagetemplate (@) {
$template->param(commentauthorurl =>
$commentstate{$page}{commentauthorurl});
}
+
+ if ($template->query(name => 'removeurl') &&
+ IkiWiki::Plugin::remove->can("check_canremove") &&
+ length $config{cgiurl}) {
+ $template->param(removeurl => IkiWiki::cgiurl(do => 'remove',
+ page => $page));
+ $template->param(have_actions => 1);
+ }
}
package IkiWiki::PageSpec;
diff --git a/IkiWiki/Plugin/conditional.pm b/IkiWiki/Plugin/conditional.pm
index 4f3577b34..7445dbdad 100644
--- a/IkiWiki/Plugin/conditional.pm
+++ b/IkiWiki/Plugin/conditional.pm
@@ -87,6 +87,8 @@ sub match_sourcepage ($$;@) {
shift;
my $glob=shift;
my %params=@_;
+
+ $glob=derel($glob, $params{location});
return IkiWiki::FailReason->new("cannot match sourcepage") unless exists $params{sourcepage};
if (match_glob($params{sourcepage}, $glob, @_)) {
@@ -102,6 +104,8 @@ sub match_destpage ($$;@) {
my $glob=shift;
my %params=@_;
+ $glob=derel($glob, $params{location});
+
return IkiWiki::FailReason->new("cannot match destpage") unless exists $params{destpage};
if (match_glob($params{destpage}, $glob, @_)) {
return IkiWiki::SuccessReason->new("destpage matches $glob");
diff --git a/IkiWiki/Plugin/git.pm b/IkiWiki/Plugin/git.pm
index 6a7f6c3ae..3085a3b67 100644
--- a/IkiWiki/Plugin/git.pm
+++ b/IkiWiki/Plugin/git.pm
@@ -94,8 +94,8 @@ sub getsetup () {
},
diffurl => {
type => "string",
- example => "http://git.example.com/gitweb.cgi?p=wiki.git;a=blobdiff;h=[[sha1_to]];hp=[[sha1_from]];hb=[[sha1_parent]];f=[[file]]",
- description => "gitweb url to show a diff ([[sha1_to]], [[sha1_from]], [[sha1_parent]], [[sha1_commit]] and [[file]] substituted)",
+ example => "http://git.example.com/gitweb.cgi?p=wiki.git;a=blobdiff;f=[[file]];h=[[sha1_to]];hp=[[sha1_from]];hb=[[sha1_commit]];hpb=[[sha1_parent]]",
+ description => "gitweb url to show a diff ([[file]], [[sha1_to]], [[sha1_from]], [[sha1_commit]], and [[sha1_parent]] substituted)",
safe => 1,
rebuild => 1,
},
diff --git a/IkiWiki/Plugin/goodstuff.pm b/IkiWiki/Plugin/goodstuff.pm
index 46f2380cf..451cd6f84 100644
--- a/IkiWiki/Plugin/goodstuff.pm
+++ b/IkiWiki/Plugin/goodstuff.pm
@@ -22,6 +22,7 @@ my @bundle=qw{
template
toc
toggle
+ repolist
};
sub import {
diff --git a/IkiWiki/Plugin/pinger.pm b/IkiWiki/Plugin/pinger.pm
index 4a8088661..c20ecb5d4 100644
--- a/IkiWiki/Plugin/pinger.pm
+++ b/IkiWiki/Plugin/pinger.pm
@@ -106,7 +106,7 @@ sub ping {
# will still be avoided.
next if $url=~/^\Q$config{cgiurl}\E/;
- $ua->head($url);
+ $ua->get($url);
}
exit 0;
diff --git a/IkiWiki/Plugin/rename.pm b/IkiWiki/Plugin/rename.pm
index 82639a073..f79349561 100644
--- a/IkiWiki/Plugin/rename.pm
+++ b/IkiWiki/Plugin/rename.pm
@@ -413,22 +413,8 @@ sub sessioncgi ($$) {
$template->param(error => $rename->{error});
if ($rename->{src} ne $rename->{dest}) {
$template->param(brokenlinks_checked => 1);
- $template->param(brokenlinks => [
- map {
- {
- page => htmllink($rename->{dest}, $rename->{dest}, $_,
- noimageinline => 1)
- }
- } @{$rename->{brokenlinks}}
- ]);
- $template->param(fixedlinks => [
- map {
- {
- page => htmllink($rename->{dest}, $rename->{dest}, $_,
- noimageinline => 1)
- }
- } @{$rename->{fixedlinks}}
- ]);
+ $template->param(brokenlinks => linklist($rename->{dest}, $rename->{brokenlinks}));
+ $template->param(fixedlinks => linklist($rename->{dest}, $rename->{fixedlinks}));
}
$renamesummary.=$template->output;
}
@@ -442,6 +428,23 @@ sub sessioncgi ($$) {
exit 0;
}
}
+
+sub linklist {
+ # generates a list of links in a form suitable for FormBuilder
+ my $dest=shift;
+ my $list=shift;
+ # converts a list of pages into a list of links
+ # in a form suitable for FormBuilder.
+
+ [map {
+ {
+ page => htmllink($dest, $dest, $_,
+ noimageinline => 1,
+ linktext => pagetitle($_),
+ )
+ }
+ } @{$list}]
+}
sub renamelink_hook ($$$$) {
my ($page, $src, $dest, $content)=@_;
diff --git a/IkiWiki/Plugin/repolist.pm b/IkiWiki/Plugin/repolist.pm
new file mode 100644
index 000000000..f69ec3988
--- /dev/null
+++ b/IkiWiki/Plugin/repolist.pm
@@ -0,0 +1,51 @@
+#!/usr/bin/perl
+package IkiWiki::Plugin::repolist;
+
+use warnings;
+use strict;
+use IkiWiki 3.00;
+
+sub import {
+ hook(type => "getsetup", id => "repolist", call => \&getsetup);
+ hook(type => "checkconfig", id => "repolist", call => \&checkconfig);
+}
+
+sub getsetup () {
+ return
+ plugin => {
+ safe => 1,
+ rebuild => undef,
+ },
+ repositories => {
+ type => "string",
+ example => ["svn://svn.example.org/wiki/trunk"],
+ description => "URIs of repositories containing the wiki's source",
+ safe => 1,
+ rebuild => undef,
+ },
+}
+
+my $relvcs;
+
+sub checkconfig () {
+ if (defined $config{rcs} && $config{repositories}) {
+ $relvcs=join("\n", map {
+ s/"//g; # avoid quotes just in case
+ qq{<link rel="vcs-$config{rcs}" href="$_" title="wiki $config{rcs} repository" />}
+ } @{$config{repositories}});
+
+ hook(type => "pagetemplate", id => "repolist", call => \&pagetemplate);
+ }
+}
+
+sub pagetemplate (@) {
+ my %params=@_;
+ my $page=$params{page};
+ my $template=$params{template};
+
+ if (defined $relvcs && $template->query(name => "relvcs")) {
+ $template->param(relvcs => $relvcs);
+ }
+}
+
+1
diff --git a/IkiWiki/Plugin/skeleton.pm.example b/IkiWiki/Plugin/skeleton.pm.example
index ea7500a70..0bd5edeef 100644
--- a/IkiWiki/Plugin/skeleton.pm.example
+++ b/IkiWiki/Plugin/skeleton.pm.example
@@ -6,7 +6,7 @@ package IkiWiki::Plugin::skeleton;
use warnings;
use strict;
-use IkiWiki 2.00;
+use IkiWiki 3.00;
sub import {
hook(type => "getopt", id => "skeleton", call => \&getopt);
@@ -90,7 +90,7 @@ sub linkify (@) {
return $params{content};
}
-sub scan (@) { #{{{a
+sub scan (@) {
my %params=@_;
debug("skeleton plugin running as scan");
diff --git a/IkiWiki/Plugin/table.pm b/IkiWiki/Plugin/table.pm
index 479f3d745..96d63f455 100644
--- a/IkiWiki/Plugin/table.pm
+++ b/IkiWiki/Plugin/table.pm
@@ -8,7 +8,7 @@ use IkiWiki 3.00;
sub import {
hook(type => "getsetup", id => "table", call => \&getsetup);
- hook(type => "preprocess", id => "table", call => \&preprocess);
+ hook(type => "preprocess", id => "table", call => \&preprocess, scan => 1);
}
sub getsetup () {
@@ -27,13 +27,31 @@ sub preprocess (@) {
);
if (exists $params{file}) {
- if (! $pagesources{$params{file}}) {
+ if (! exists $pagesources{$params{file}}) {
error gettext("cannot find file");
}
$params{data} = readfile(srcfile($params{file}));
add_depends($params{page}, $params{file});
}
+ if (! defined wantarray) {
+ # scan mode -- if the table uses an external file, need to
+ # scan that file too.
+ return unless exists $params{file};
+
+ IkiWiki::run_hooks(scan => sub {
+ shift->(
+ page => $params{page},
+ content => $params{data},
+ );
+ });
+
+ # Preprocess in scan-only mode.
+ IkiWiki::preprocess($params{page}, $params{page}, $params{data}, 1);
+
+ return;
+ }
+
if (lc $params{format} eq 'auto') {
# first try the more simple format
if (is_dsv_data($params{data})) {
@@ -50,22 +68,18 @@ sub preprocess (@) {
defined $params{delimiter} ? $params{delimiter} : ",",);
# linkify after parsing since html link quoting can
# confuse CSV parsing
- if (! exists $params{file}) {
- @data=map {
- [ map {
- IkiWiki::linkify($params{page},
- $params{destpage}, $_);
- } @$_ ]
- } @data;
- }
+ @data=map {
+ [ map {
+ IkiWiki::linkify($params{page},
+ $params{destpage}, $_);
+ } @$_ ]
+ } @data;
}
elsif (lc $params{format} eq 'dsv') {
# linkify before parsing since wikilinks can contain the
# delimiter
- if (! exists $params{file}) {
- $params{data} = IkiWiki::linkify($params{page},
- $params{destpage}, $params{data});
- }
+ $params{data} = IkiWiki::linkify($params{page},
+ $params{destpage}, $params{data});
@data=split_dsv($params{data},
defined $params{delimiter} ? $params{delimiter} : "|",);
}
diff --git a/debian/NEWS b/debian/NEWS
index 6fe70c9e4..22513cc4a 100644
--- a/debian/NEWS
+++ b/debian/NEWS
@@ -1,3 +1,18 @@
+ikiwiki (3.01) unstable; urgency=low
+
+ If your wiki uses git, and you have a `diffurl` configured in
+ its setup file, you should be aware that gitweb has stopped
+ supporting the url form commonly used for the `diffurl`.
+
+ You can change your setup to use the newer gitweb url form:
+
+ http://git.example.com/gitweb.cgi?p=wiki.git;a=blobdiff;f=[[file]];h=[[sha1_to]];hp=[[sha1_from]];hb=[[sha1_commit]];hpb=[[sha1_parent]]
+
+ The changes from the old form are the addition of the `hpb` parameter,
+ and the change to the value used for the `hb` parameter.
+
+ -- Joey Hess <joeyh@debian.org> Mon, 05 Jan 2009 18:18:05 -0500
+
ikiwiki (3.00) unstable; urgency=low
The 3.0 release of ikiwiki changes several defaults and finishes
diff --git a/debian/changelog b/debian/changelog
index 07062b04a..6772aded9 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,33 @@
+ikiwiki (3.02) UNRELEASED; urgency=low
+
+ * 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.
+
+ -- Joey Hess <joeyh@debian.org> Tue, 06 Jan 2009 15:02:52 -0500
+
+ikiwiki (3.01) unstable; urgency=low
+
+ * ikiwiki-makerepo: Fix injecting of empty mercurial and bzr repositories.
+ Closes: #510518
+ * Fix documentation about git hook to use right name. Closes: #510393
+ * yesno: Always accept English even when localised.
+ * yesno: Also accept 1 and 0 as input.
+ * A recent change to gitweb removed support for the form of diffurl
+ that many ikiwiki setups use. Document how to use the new url form.
+
+ -- Joey Hess <joeyh@debian.org> Mon, 05 Jan 2009 18:53:50 -0500
+
ikiwiki (3.00) unstable; urgency=low
* Remove support for GlobLists.
diff --git a/doc/bugs/Error:_Your_login_session_has_expired._.mdwn b/doc/bugs/Error:_Your_login_session_has_expired._.mdwn
new file mode 100644
index 000000000..046d6e10d
--- /dev/null
+++ b/doc/bugs/Error:_Your_login_session_has_expired._.mdwn
@@ -0,0 +1,44 @@
+I keep getting:
+
+ Error: Your login session has expired.
+
+Whilst trying to edit http://hugh.vm.bytemark.co.uk/ikiwiki.cgi via OpenID. Any ideas?
+
+
+ iki@hugh:~$ dpkg -l | grep openid
+ ii libnet-openid-consumer-perl 0.14-4 library for consumers of OpenID iden
+ tities
+ iki@hugh:~$
+
+> This error occurs if ikiwiki sees something that looks like a CSRF
+> attack. It checks for such an attack by embedding your session id on the
+> page edit form, and comparing that id with the session id used to post
+> the form.
+>
+> So, somehow your session id has changed between opening the edit form and
+> posting it. A few ways this could happen:
+>
+> * Genuine CSRF attack (unlikely)
+> * If you logged out and back in, in another tab, while the edit form was
+> open.
+> * If `.ikiwiki/sessions.db` was deleted/corrupted while you were in the
+> midst of the edit.
+> * If some bug in CGI::Session caused your session not to be saved to the
+> database somehow.
+> * If your browser didn't preserve the session cookie across the edit
+> process, for whatever local reason.
+> * If you were using a modified version of `editpage.tmpl`, and
+> it did not include `FIELD-SID`.
+> * If you upgraded from an old version of ikiwiki, before `FIELD-SID` was
+> added (<= 2.41), and had an edit form open from that old version, and
+> tried to save it using the new.
+>
+> I don't see the problem editing the sandbox there myself, FWIW.
+> (BTW, shouldn't you enable the meta plugin so RecentChanges displays
+> better?)
+> --[[joey]]
+
+
+Thanks for you excellent analysis. The bug was due to old pre-3.0 **templates** laying about. After deleting them, ikiwiki defaults to its own templates. Clever. :-)
+
+[[bugs/done]]
diff --git a/doc/bugs/URLs_with_parentheses_displayed_badly.mdwn b/doc/bugs/URLs_with_parentheses_displayed_badly.mdwn
new file mode 100644
index 000000000..59b67d493
--- /dev/null
+++ b/doc/bugs/URLs_with_parentheses_displayed_badly.mdwn
@@ -0,0 +1,19 @@
+I've noticed that Ikiwiki displays URLs with parentheses badly. The problem occurs
+in the latest version 3.00 and older versions. Please look at the link to following
+Polish entry about C programming language at Wikipedia (it seems that URLs with
+parentheses are popular there):
+
+[Język programowania C](http://pl.wikipedia.org/wiki/C_(j%C4%99zyk_programowania))
+
+I need to escape a closing parenthesis of the URL to fix the problem.
+
+[Język programowania C](http://pl.wikipedia.org/wiki/C_(j%C4%99zyk_programowania\))
+
+--[[Paweł|users/ptecza]]
+
+> This is a bug in markdown version 1. It is fixed in [[!cpan Text::Markdown]],
+> which ikiwiki will use if it's installed. [[done]] --[[Joey]]
+
+>> Thanks a lot for the hint, Joey! I've installed `libtext-markdown-perl` package
+>> (Aptitude has removed `markdown` package to satisfy dependencies) and now
+>> I don't need to escape Wikipedia URLs with parentheses :) --[[Paweł|users/ptecza]]
diff --git a/doc/bugs/Use_install__40__1__41___instead_of_cp__40__1__41___for_installing_files.mdwn b/doc/bugs/Use_install__40__1__41___instead_of_cp__40__1__41___for_installing_files.mdwn
index 88a187dfc..12c0ad07f 100644
--- a/doc/bugs/Use_install__40__1__41___instead_of_cp__40__1__41___for_installing_files.mdwn
+++ b/doc/bugs/Use_install__40__1__41___instead_of_cp__40__1__41___for_installing_files.mdwn
@@ -24,4 +24,9 @@ Here is a patch against ikiwiki-1.51 for using find(1) and install(1) instead of
>> No, apparently FreeBSD `install` does not support `-D`. See [the FreeBSD install manpage](http://www.freebsd.org/cgi/man.cgi?query=install&apropos=0&sektion=0&manpath=FreeBSD+6.2-RELEASE&format=html). --[[JoshTriplett]]
->> Patch applied; [[bugs/done]]. --[[JoshTriplett]]
+>> Patch applied; [[done]]. --[[JoshTriplett]]
+
+There are still/again "cp -a"s in the Makefile as of 3.00
+
+> It's a cp -a || install. Is that causing you a problem somehow?
+> --[[Joey]]
diff --git a/doc/bugs/entirely_negated_pagespec_matches_internal_pages.mdwn b/doc/bugs/entirely_negated_pagespec_matches_internal_pages.mdwn
index 012fcec2c..02ce4e221 100644
--- a/doc/bugs/entirely_negated_pagespec_matches_internal_pages.mdwn
+++ b/doc/bugs/entirely_negated_pagespec_matches_internal_pages.mdwn
@@ -3,8 +3,8 @@ matches all other pages, including all internal pages. This can lead to
unexpected results, since it will match a bunch of recentchanges pages,
etc.
-Recall that internal-use pages are not matched by a glob. So "*" doesn't
-match them. So if the pagespec is "* and !foo and !bar", it won't match
+Recall that internal-use pages are not matched by a glob. So "\*" doesn't
+match them. So if the pagespec is "\* and !foo and !bar", it won't match
them. This is the much more common style.
There's an odd inconsistency with entirely negated pagespecs. If "!foo"
diff --git a/doc/bugs/gitweb_deficiency_w.r.t._log_messages.mdwn b/doc/bugs/gitweb_deficiency_w.r.t._log_messages.mdwn
index c465bdd4a..564982ff3 100644
--- a/doc/bugs/gitweb_deficiency_w.r.t._log_messages.mdwn
+++ b/doc/bugs/gitweb_deficiency_w.r.t._log_messages.mdwn
@@ -8,3 +8,7 @@ cases of the one which was installed directly before the current commit.
> I don't see one, except for diffs that show all changes in the commit,
> rather than only changes to a single file. This feels like a bug in
> gitweb. --[[Joey]]
+
+This is fixed by using the new gitweb style urls. Which new gitweb
+requires, but is a manual change you have to make in your setup. So,
+[[done]] --[[Joey]]
diff --git a/doc/bugs/gitweb_deficiency_w.r.t._newly_created_pages.mdwn b/doc/bugs/gitweb_deficiency_w.r.t._newly_created_pages.mdwn
index 255d9cee7..0b4d70596 100644
--- a/doc/bugs/gitweb_deficiency_w.r.t._newly_created_pages.mdwn
+++ b/doc/bugs/gitweb_deficiency_w.r.t._newly_created_pages.mdwn
@@ -8,3 +8,6 @@ Going from *RecentChanges*, when viewing the diffs of newly created pages
> I don't see any way to make gitweb do that. You can click on the filename
> after the "diff -cc" to see the whole file output, but gitweb won't show
> a diff for a newly added file. --[[Joey]]
+
+>> happily this, too, is fixed by using the new style gitweb urls. [[done]]
+>> --[[Joey]]
diff --git a/doc/bugs/links_misparsed_in_CSV_files.mdwn b/doc/bugs/links_misparsed_in_CSV_files.mdwn
index 169c070e7..27d2b7b1e 100644
--- a/doc/bugs/links_misparsed_in_CSV_files.mdwn
+++ b/doc/bugs/links_misparsed_in_CSV_files.mdwn
@@ -12,6 +12,16 @@ Oh, wait, I see the problem. IkiWiki::linkify is only called if the external fil
(this is inside /usr/share/perl5/IkiWiki/Plugin/table.pm).
+> To reproduce this bug, I had to install the old, broken markdown 1.0,
+> instead of the now-default Text::Markdown.
+>
+> Why is linkify not called for external files? Well, I checked the
+> history, and it's probably best to say "for historical reasons that no
+> longer apply". So, changed as you suggest. [[done]] --[[Joey]]
+
I am rather confused what this check does, and the fact the comments are very different for CSV and DSV when the code is the same doesn't seem to help.
+> The code is not the same; two operations are run in different orders for
+> CSV and DSV, as the comments note. --[[Joey]]
+
-- Brian May
diff --git a/doc/bugs/output_of_successful_rename_should_list_the_full_path_to_affected_pages.mdwn b/doc/bugs/output_of_successful_rename_should_list_the_full_path_to_affected_pages.mdwn
index 2d9677e7f..132d23463 100644
--- a/doc/bugs/output_of_successful_rename_should_list_the_full_path_to_affected_pages.mdwn
+++ b/doc/bugs/output_of_successful_rename_should_list_the_full_path_to_affected_pages.mdwn
@@ -10,3 +10,5 @@ The following pages have been automatically modified to update their links to us
<li><a href="./../../tips/convert_mediawiki_to_ikiwiki/discussion/">discussion</a></li><li><a href="./../../tips/untrusted_git_push/discussion/">discussion</a></li></ul>...
In this situation I think the link to pages should be expanded to show the entire path, since there is quite likely to be a lot of things like "discussion". -- [[users/Jon]]
+
+[[done]]
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 158656a13..cccd53d05 100644
--- a/doc/bugs/pagetitle_function_does_not_respect_meta_titles.mdwn
+++ b/doc/bugs/pagetitle_function_does_not_respect_meta_titles.mdwn
@@ -14,3 +14,5 @@ The `IkiWiki::pagetitle` function does not respect title changes via `meta.title
>> It was actually more complicated than expected. A working prototype is
>> now in my `meta` branch, see my userpage for the up-to-date url.
>> Thus tagging [[patch]]. --[[intrigeri]]
+>>
+>>> Joey, please consider merging my `meta` branch. --[[intrigeri]]
diff --git a/doc/bugs/table_external_file_links.mdwn b/doc/bugs/table_external_file_links.mdwn
new file mode 100644
index 000000000..7b35383c5
--- /dev/null
+++ b/doc/bugs/table_external_file_links.mdwn
@@ -0,0 +1,9 @@
+If wikilinks are put in an external table file, those links are not seen at
+scan time, and so ikiwiki does not know to update the page containing the
+table when the pages the links point to change (are added, removed, etc).
+
+There seem only two solutions to that bug -- either really make wikilinks
+in an external table file not work (probably by escaping them),
+or run the preprocess code also in scan (expensive!). --[[Joey]]
+
+[[done]]
diff --git a/doc/ikiwiki-makerepo.mdwn b/doc/ikiwiki-makerepo.mdwn
index dcebbb96a..9c532f201 100644
--- a/doc/ikiwiki-makerepo.mdwn
+++ b/doc/ikiwiki-makerepo.mdwn
@@ -6,19 +6,20 @@ ikiwiki-makerepo - check an ikiwiki srcdir into revision control
ikiwiki-makerepo svn|git|monotone srcdir repository
-ikiwiki-makerepo mercurial srcdir
+ikiwiki-makerepo bzr|mercurial srcdir
# DESCRIPTION
`ikiwiki-makerepo` injects a `srcdir` directory, containing an ikiwiki wiki,
-into a `repository` that it creates. The repository can be a svn, git, or
-mercurial repository.
+into a `repository` that it creates. The repository can be created using
+any of a variety of revision control systems.
-Note that for mercurial, the srcdir is converted into a mercurial
-repository. There is no need to have a separate repository with mercurial.
+Note that for mercurial and bzr, the srcdir is converted into a
+repository. There is no need to have a separate repository with mercurial
+or bzr.
-Note that for monotone, you are assumed to already have run "mtn genkey" to generate
-key.
+Note that for monotone, you are assumed to already have run "mtn genkey"
+to generate a key.
# AUTHOR
diff --git a/doc/ikiwikiusers.mdwn b/doc/ikiwikiusers.mdwn
index 0c45efa4f..ade15d080 100644
--- a/doc/ikiwikiusers.mdwn
+++ b/doc/ikiwikiusers.mdwn
@@ -2,7 +2,6 @@ Projects
========
* [This wiki](http://ikiwiki.info) (of course!)
-* [UK Software Patents info page](http://www.softwarepatents.co.uk/)
* [Planet Debian upstream](http://updo.debian.net/)
* The [ion window manager homepage](http://modeemi.fi/~tuomov/ion/)
* [Debian Mentors wiki](http://jameswestby.net/mentors/)
@@ -22,7 +21,7 @@ Projects
* The [Debian Packaging Handbook project](http://packaging-handbook.alioth.debian.org/wiki/)
* The [libkdtree project](http://libkdtree.alioth.debian.org)
* The [pcc](http://pcc.ludd.ltu.se/) (Portable C Compiler) project. (Simple rcs backend)
-* [The TOVA Company](http://www.tovatest.com) public site. We also use it for internal documentation and issue tracking, all with a [[rcs/Git]] backend.
+* [The TOVA Company](http://www.tovatest.com) public site. We also use it for internal documentation and issue tracking, all with a [[rcs/Git]] backend.
* Technical support websites for [Homebase](http://support.homebase.dk) and [Kaospilotene](http://support.kaospilot.no) (each with [source](http://source.homebase.dk/) [provided](http://source.kaospilot.no/))
* [CampusGrün Hamburg](http://www.campusgruen.org/)
* The [awesome window manager homepage](http://awesome.naquadah.org/)
diff --git a/doc/news/version_3.01.mdwn b/doc/news/version_3.01.mdwn
new file mode 100644
index 000000000..3f2c8f2d0
--- /dev/null
+++ b/doc/news/version_3.01.mdwn
@@ -0,0 +1,21 @@
+News for ikiwiki 3.01:
+
+ If your wiki uses git, and you have a `diffurl` configured in
+ its setup file, you should be aware that gitweb has stopped
+ supporting the url form commonly used for the `diffurl`.
+ You can change your setup to use the newer gitweb url form:
+
+ http://git.example.com/gitweb.cgi?p=wiki.git;a=blobdiff;f=\[[file]];h=\[[sha1_to]];hp=\[[sha1_from]];hb=\[[sha1_commit]];hpb=\[[sha1_parent]]
+
+ The changes from the old form are the addition of the `hpb` parameter,
+ and the change to the value used for the `hb` parameter.
+
+ikiwiki 3.01 released with [[!toggle text="these changes"]]
+[[!toggleable text="""
+ * ikiwiki-makerepo: Fix injecting of empty mercurial and bzr repositories.
+ Closes: #[510518](http://bugs.debian.org/510518)
+ * Fix documentation about git hook to use right name. Closes: #[510393](http://bugs.debian.org/510393)
+ * yesno: Always accept English even when localised.
+ * yesno: Also accept 1 and 0 as input.
+ * A recent change to gitweb removed support for the form of diffurl
+ that many ikiwiki setups use. Document how to use the new url form."""]]
diff --git a/doc/pagehistory.mdwn b/doc/pagehistory.mdwn
index fc2a3f543..465062736 100644
--- a/doc/pagehistory.mdwn
+++ b/doc/pagehistory.mdwn
@@ -3,3 +3,6 @@ revison history of a page. This is enabled by the `historyurl` setting,
which is used to specify the URL to a web interface such as [[ViewVC]]
(for Subversion) or [[Gitweb]]. In that url, "\[[file]]" is replaced with
the name of the file to view.
+
+The [[plugins/repolist]] plugin can suppliment this information with
+urls to the underlying repository of the wiki.
diff --git a/doc/plugins/contrib/po.mdwn b/doc/plugins/contrib/po.mdwn
index f90ffeed2..edd665185 100644
--- a/doc/plugins/contrib/po.mdwn
+++ b/doc/plugins/contrib/po.mdwn
@@ -86,6 +86,9 @@ Any thoughts on this?
>>> to avoid breaking existing functionality, it implies to hack a bit
>>> [[plugins/edittemplate]] so that multiple templates can be
>>> inserted at page creation time. [[--intrigeri]]
+>>>
+>>>> I implemented such a warning using the formbuilder_setup hook.
+>>>> --[[intrigeri]]
>>
>> And also, is there any way to start a translation of a page into a new
>> lanauge using the web interface?
@@ -139,6 +142,11 @@ Any thoughts on this?
>>>>> to have the links text generation more customizable through
>>>>> plugins, I could do both at the same time if we consider this
>>>>> matter to be important enough. --[[intrigeri]]
+>>>>>
+>>>>>> The translation status in links is now implemented in my
+>>>>>> `po`branch. It requires my `meta` branch changes to
+>>>>>> work, though. I consider the latter to be mature enough to
+>>>>>> be merged. --[[intrigeri]]
>> FWIW, I'm tracking your po branch in ikiwiki master git in the po
>> branch. One thing I'd like to try in there is setting up a translated
diff --git a/doc/plugins/goodstuff.mdwn b/doc/plugins/goodstuff.mdwn
index ed57c0f01..ee1bffcfa 100644
--- a/doc/plugins/goodstuff.mdwn
+++ b/doc/plugins/goodstuff.mdwn
@@ -24,5 +24,6 @@ Currently included:
* [[template]]
* [[toc]]
* [[toggle]]
+* [[repolist]]
New plugins will be added to this bundle from time to time.
diff --git a/doc/plugins/repolist.mdwn b/doc/plugins/repolist.mdwn
new file mode 100644
index 000000000..9b3a7575e
--- /dev/null
+++ b/doc/plugins/repolist.mdwn
@@ -0,0 +1,17 @@
+[[!template id=plugin name=repolist author="[[Joey]]"]]
+[[!tag type/useful]]
+
+This plugin allows you to configure ikiwiki with the location of
+[[rcs]] repositories for your wiki's source. This is done via the
+"repositories" setting in the setup file. Once you tell it where the source
+to your wiki can be downloaded from, this information can be published on
+your wiki in various ways.
+
+This plugin supports the [rel-vcs-*](http://kitenet.net/~joey/rfc/rel-vcs/)
+microformat, and uses it to embed the repository location information in
+every wiki page.
+
+By using this plugin, you will make [[Joey]] very happy, as he will be able
+to easily check out the source of your wiki, for purposes of debugging and
+general curiosity. More generally, making it easy for others to find the
+repository for your wiki is just a Plain Good Idea(TM).
diff --git a/doc/rcs/git.mdwn b/doc/rcs/git.mdwn
index deddfbd6d..000eb0b3c 100644
--- a/doc/rcs/git.mdwn
+++ b/doc/rcs/git.mdwn
@@ -20,9 +20,9 @@ working clones (with working directories) as leaf nodes. The root
working clones.
One of the leaf node clone repositories is special; it has working
-directory which is used to compile the wiki from, and is also used by the
+directory which is used to compile the wiki, and is also used by the
[[cgi]] to commit changes made via the web interface. It is special
-since the `post-commit` hook for the bare root repository is used to
+since the `post-update` hook for the bare root repository is used to
trigger an update of this repository, and then an ikiwiki refresh
updates the published wiki itself.
@@ -43,9 +43,9 @@ repositories:
repositories will push to/pull from. It is a bare repository, since
there are problems pushing to a repository that has a working
directory. This is called _repository_ in [[ikiwiki-makerepo]]'s
- manual page. Nominally, this bare repository has a `post-commit` hook
+ manual page. Nominally, this bare repository has a `post-update` hook
that either is or calls ikiwiki's git wrapper, which changes to the
- working directory for ikiwiki, does a _git pull_, and refreshes ikiwiki
+ working directory for ikiwiki, does a `git pull`, and refreshes ikiwiki
to regenerate the wiki with any new content. The [[setup]] page describes
how to do this.
@@ -64,7 +64,7 @@ repositories:
hack on your wiki. you can commit local changes to the version on
the laptop, perhaps while offline. Any new content should be pushed to the
bare master repository when you are ready to publish it, and then
- the post-commit hook of the bare repository will ensure that the
+ the post-update hook of the bare repository will ensure that the
ikiwiki's source directory is updated, and the ikiwiki refreshed
with the new content.
@@ -79,7 +79,7 @@ It is **paramount** that you **never** push to the non-bare repository
Instead, clone the bare repository as mentioned above, and push
**only** to the bare repository.
-The ikiwiki `post-commit` hook should be put in the bare repository.
+The ikiwiki `post-update` hook should be put in the bare repository.
## git repository with multiple committers
@@ -147,7 +147,7 @@ is the normal behaviour of ikiwiki, set the configuration of the local wiki:
gitorigin_branch => "",
## git post-commit wrapper
- wrapper => "/working/dir/.git/hooks/post-commit",
+ git_wrapper => "/working/dir/.git/hooks/post-commit",
Then just committing should refresh the private ikiwiki on the local
host. Now just run `ikiwiki -setup localwiki.setup -getctime` and
diff --git a/doc/sandbox.mdwn b/doc/sandbox.mdwn
index 582d46e84..00b57815d 100644
--- a/doc/sandbox.mdwn
+++ b/doc/sandbox.mdwn
@@ -1,5 +1,7 @@
This is the SandBox, a page anyone can edit to try out ikiwiki.
+hello
+
testing 1..2..3!!
----
@@ -83,3 +85,13 @@ The haiku will change after every save, mind you.
This SandBox is also a [[blog]]!
[[!inline pages="sandbox/* and !*/Discussion" rootpage="sandbox" show="4" archive="yes"]]
+
+--------
+
+This gives an example of inline code: `tar | netcat` is a nice way to transfer bulk files over the net
+
+But, of course, rsync is better.
+
+----
+
+Let's see what happens... ~~
diff --git a/doc/sandbox/foobak.mdwn b/doc/sandbox/foobak.mdwn
new file mode 100644
index 000000000..c0b526f73
--- /dev/null
+++ b/doc/sandbox/foobak.mdwn
@@ -0,0 +1 @@
+Foobaka bakfoo.
diff --git a/doc/sandbox/한글.mdwn b/doc/sandbox/한글.mdwn
new file mode 100644
index 000000000..e0ba32639
--- /dev/null
+++ b/doc/sandbox/한글.mdwn
@@ -0,0 +1 @@
+~를 어떻게 할까~
diff --git a/doc/sandbox/한글페이지.mdwn b/doc/sandbox/한글페이지.mdwn
new file mode 100644
index 000000000..4fac7976c
--- /dev/null
+++ b/doc/sandbox/한글페이지.mdwn
@@ -0,0 +1,2 @@
+
+Wow test
diff --git a/doc/tips/markdown_and_eclipse.mdwn b/doc/tips/markdown_and_eclipse.mdwn
new file mode 100644
index 000000000..9e8e9bfa9
--- /dev/null
+++ b/doc/tips/markdown_and_eclipse.mdwn
@@ -0,0 +1,4 @@
+For people that were not born with GNU emacs fingers,
+there is a markdown editor (with preview and outline)
+for [eclipse](http://www.eclipse.org) available
+[here](http://www.winterwell.com/software/markdown-editor.php).
diff --git a/doc/tips/upgrade_to_3.0.mdwn b/doc/tips/upgrade_to_3.0.mdwn
index b8a75aeca..d22813bf2 100644
--- a/doc/tips/upgrade_to_3.0.mdwn
+++ b/doc/tips/upgrade_to_3.0.mdwn
@@ -37,8 +37,8 @@ following to your setup file:
prefix_directives => 0,
-To convert to the new syntax, run
-`ikiwiki-transition prefix_directives your.setup`
+To convert to the new syntax, make sure that your setup file does *not*
+contain the above, then run `ikiwiki-transition prefix_directives your.setup`
(And then commit the changes it makes to pages in your srcdir.)
diff --git a/doc/todo/allow_disabling_backlinks.mdwn b/doc/todo/allow_disabling_backlinks.mdwn
new file mode 100644
index 000000000..5dd4876e8
--- /dev/null
+++ b/doc/todo/allow_disabling_backlinks.mdwn
@@ -0,0 +1,18 @@
+This patch allows disabling the backlinks in the config file by setting nobacklinks to 0.
+
+It is backwards compatible, and by default enables backlinks in the generated pages.
+
+<pre>
+--- IkiWiki/Render.pm.orig2 2009-01-06 14:54:01.000000000 +1300
++++ IkiWiki/Render.pm 2009-01-06 14:55:08.000000000 +1300
+@@ -107,7 +107,8 @@
+ $template->param(have_actions => 1);
+ }
+
+- my @backlinks=sort { $a->{page} cmp $b->{page} } backlinks($page);
++ my @backlinks=sort { $a->{page} cmp $b->{page} } backlinks($page)
++ unless defined $config{nobacklinks} && $config{nobacklinks} == 0;
+ my ($backlinks, $more_backlinks);
+ if (@backlinks <= $config{numbacklinks} || ! $config{numbacklinks}) {
+ $backlinks=\@backlinks;
+</pre>
diff --git a/doc/todo/comments.mdwn b/doc/todo/comments.mdwn
index 832441be1..c74ded8f6 100644
--- a/doc/todo/comments.mdwn
+++ b/doc/todo/comments.mdwn
@@ -10,19 +10,6 @@
> it's hard enough to get some people to title their blog posts :-)
> --[[smcv]]
-* If a spammer posts a comment, it is either impossible or hard to clean
- up via the web. Would be nice to have some kind of link on the comment
- that allows trusted users to remove it (using the remove plugin of
- course).
-
- > Won't the remove plugin refuse to remove internal pages? This would be
- > a good feature to have, though. --[[smcv]]
-
- > Here, FWIW, is the first ikiwiki comment spam I've seen:
- > <http://waldeneffect.org/blog/Snake_bite_information/#blog/Snake_bite_information/comment_1>
- > So that took about 10 days...
- > --[[Joey]]
-
## Patches pending merge
* There is some common code cargo-culted from other plugins (notably inline and editpage) which
@@ -147,3 +134,22 @@
first. --[[smcv]]
> done --[[Joey]]
+
+* If a spammer posts a comment, it is either impossible or hard to clean
+ up via the web. Would be nice to have some kind of link on the comment
+ that allows trusted users to remove it (using the remove plugin of
+ course).
+
+ > Won't the remove plugin refuse to remove internal pages? This would be
+ > a good feature to have, though. --[[smcv]]
+
+ > Here, FWIW, is the first ikiwiki comment spam I've seen:
+ > <http://waldeneffect.org/blog/Snake_bite_information/#blog/Snake_bite_information/comment_1>
+ > So that took about 10 days...
+ > --[[Joey]]
+
+ >> Implemented in my 'comments' branch, please review. It turns out
+ >> [[plugins/remove]] is happy to remove internal pages, so it was quite
+ >> easy to do. --[[smcv]]
+
+ >>> done --[[Joey]]
diff --git a/doc/todo/modify_page_filename_in_plugin.mdwn b/doc/todo/modify_page_filename_in_plugin.mdwn
index 4099487a1..a13c8b62f 100644
--- a/doc/todo/modify_page_filename_in_plugin.mdwn
+++ b/doc/todo/modify_page_filename_in_plugin.mdwn
@@ -6,6 +6,8 @@ The problem is that I occasionally have xxx.c and xxx.h in the same directory an
My solution is to allow plugins to provide a hook that sets the pagename. --[[/users/bstpierre]]
+> You might also find the solution to [[bugs/multiple_pages_with_same_name]] helps you. That patch is already applied. -- [[Will]]
+
--- /usr/share/perl5/IkiWiki.pm.ORIG 2008-10-03 14:12:50.000000000 -0400
+++ /usr/share/perl5/IkiWiki.pm 2008-10-07 11:57:26.000000000 -0400
@@ -196,11 +196,32 @@
diff --git a/doc/todo/relative_pagespec_deficiency.mdwn b/doc/todo/relative_pagespec_deficiency.mdwn
new file mode 100644
index 000000000..4500581c7
--- /dev/null
+++ b/doc/todo/relative_pagespec_deficiency.mdwn
@@ -0,0 +1,8 @@
+While a relative pagespec like `./posts/*` will work, when used in a page
+such as `bdale/blog`, you cannot do
+`created_after(./posts/foo)` -- only `glob()` supports relative page
+references.
+
+The other pagespec functions should too, where appropriate.
+
+[[done]]
diff --git a/docwiki.setup b/docwiki.setup
index 6d732fd6b..ffb4a7c16 100644
--- a/docwiki.setup
+++ b/docwiki.setup
@@ -15,5 +15,7 @@ use IkiWiki::Setup::Standard {
userdir => "users",
usedirs => 0,
prefix_directives => 1,
+ cgiurl => "http://me",
+ url => "http://me",
add_plugins => [qw{goodstuff version haiku polygen fortune}],
}
diff --git a/ikiwiki-makerepo b/ikiwiki-makerepo
index c3d835c30..32a9f8646 100755
--- a/ikiwiki-makerepo
+++ b/ikiwiki-makerepo
@@ -75,7 +75,7 @@ mercurial)
hg init "$srcdir"
cd "$srcdir"
echo .ikiwiki > .hgignore
- hg add * .hgignore
+ hg add
hg commit -m "initial import"
echo "Directory $srcdir is now set up as a mercurial repository"
;;
@@ -83,7 +83,7 @@ bzr)
bzr init "$srcdir"
cd "$srcdir"
echo .ikiwiki > .bzrignore
- bzr add * .bzrignore
+ bzr add
bzr commit -m "initial import"
echo "Directory $srcdir is now set up as a bzr repository"
;;
diff --git a/po/fr.po b/po/fr.po
index 4092f0367..1cec7fbe9 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ikiwiki 2.71 \n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-12-20 18:07-0500\n"
+"POT-Creation-Date: 2009-01-05 18:53-0500\n"
"PO-Revision-Date: 2008-12-29 17:57+0100\n"
"Last-Translator: Philippe Batailler <philippe.batailler@free.fr>\n"
"Language-Team: French <debian-l10n-french@lists.debian.org>\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:310
+#: ../IkiWiki/CGI.pm:163 ../IkiWiki/CGI.pm:280
msgid "Your login session has expired."
msgstr "Session d'authentification expirée."
@@ -41,87 +41,87 @@ msgstr "Préférences"
msgid "Admin"
msgstr "Administrateur"
-#: ../IkiWiki/CGI.pm:253
+#: ../IkiWiki/CGI.pm:226
msgid "Preferences saved."
msgstr "Les préférences ont été enregistrées."
-#: ../IkiWiki/CGI.pm:271
+#: ../IkiWiki/CGI.pm:241
msgid "You are banned."
msgstr "Vous avez été banni."
-#: ../IkiWiki/CGI.pm:401 ../IkiWiki/CGI.pm:402 ../IkiWiki.pm:1204
+#: ../IkiWiki/CGI.pm:371 ../IkiWiki/CGI.pm:372 ../IkiWiki.pm:1204
msgid "Error"
msgstr "Erreur"
-#: ../IkiWiki/Plugin/aggregate.pm:80
+#: ../IkiWiki/Plugin/aggregate.pm:84
msgid "Aggregation triggered via web."
msgstr "Agrégation déclenchée par le web"
-#: ../IkiWiki/Plugin/aggregate.pm:89
+#: ../IkiWiki/Plugin/aggregate.pm:93
msgid "Nothing to do right now, all feeds are up-to-date!"
msgstr "Rien à faire pour le moment, tous les flux sont à jour !"
-#: ../IkiWiki/Plugin/aggregate.pm:216
+#: ../IkiWiki/Plugin/aggregate.pm:220
#, perl-format
msgid "missing %s parameter"
msgstr "Paramètre %s manquant"
-#: ../IkiWiki/Plugin/aggregate.pm:251
+#: ../IkiWiki/Plugin/aggregate.pm:255
msgid "new feed"
msgstr "Nouveau flux"
-#: ../IkiWiki/Plugin/aggregate.pm:265
+#: ../IkiWiki/Plugin/aggregate.pm:269
msgid "posts"
msgstr "Articles"
-#: ../IkiWiki/Plugin/aggregate.pm:267
+#: ../IkiWiki/Plugin/aggregate.pm:271
msgid "new"
msgstr "Nouveau"
-#: ../IkiWiki/Plugin/aggregate.pm:431
+#: ../IkiWiki/Plugin/aggregate.pm:435
#, perl-format
msgid "expiring %s (%s days old)"
msgstr "Fin de validité de %s (date de %s jours)"
-#: ../IkiWiki/Plugin/aggregate.pm:438
+#: ../IkiWiki/Plugin/aggregate.pm:442
#, perl-format
msgid "expiring %s"
msgstr "Fin de validité de %s"
-#: ../IkiWiki/Plugin/aggregate.pm:465
+#: ../IkiWiki/Plugin/aggregate.pm:469
#, perl-format
msgid "last checked %s"
msgstr "dernière vérification : %s"
-#: ../IkiWiki/Plugin/aggregate.pm:469
+#: ../IkiWiki/Plugin/aggregate.pm:473
#, perl-format
msgid "checking feed %s ..."
msgstr "Vérification du flux %s..."
-#: ../IkiWiki/Plugin/aggregate.pm:474
+#: ../IkiWiki/Plugin/aggregate.pm:478
#, perl-format
msgid "could not find feed at %s"
msgstr "Impossible de trouver de flux à %s"
-#: ../IkiWiki/Plugin/aggregate.pm:493
+#: ../IkiWiki/Plugin/aggregate.pm:497
msgid "feed not found"
msgstr "Flux introuvable "
-#: ../IkiWiki/Plugin/aggregate.pm:504
+#: ../IkiWiki/Plugin/aggregate.pm:508
#, perl-format
msgid "(invalid UTF-8 stripped from feed)"
msgstr "(chaîne UTF-8 non valable supprimée du flux)"
-#: ../IkiWiki/Plugin/aggregate.pm:512
+#: ../IkiWiki/Plugin/aggregate.pm:516
#, perl-format
msgid "(feed entities escaped)"
msgstr "(échappement des entités de flux)"
-#: ../IkiWiki/Plugin/aggregate.pm:520
+#: ../IkiWiki/Plugin/aggregate.pm:524
msgid "feed crashed XML::Feed!"
msgstr "Plantage du flux XML::Feed !"
-#: ../IkiWiki/Plugin/aggregate.pm:601
+#: ../IkiWiki/Plugin/aggregate.pm:605
#, perl-format
msgid "creating new page %s"
msgstr "Création de la nouvelle page %s"
@@ -156,15 +156,15 @@ msgstr "Échec lors de la suppression du fichier sur S3 :"
msgid "there is already a page named %s"
msgstr "Il existe déjà une page nommée %s"
-#: ../IkiWiki/Plugin/attachment.pm:82
+#: ../IkiWiki/Plugin/attachment.pm:65
msgid "prohibited by allowed_attachments"
msgstr "Action interdite par allowed_attachments"
-#: ../IkiWiki/Plugin/attachment.pm:190
+#: ../IkiWiki/Plugin/attachment.pm:140
msgid "bad attachment filename"
msgstr "Nom de la pièce jointe incorrect"
-#: ../IkiWiki/Plugin/attachment.pm:232
+#: ../IkiWiki/Plugin/attachment.pm:182
msgid "attachment upload"
msgstr "Envoi de la pièce jointe"
@@ -188,12 +188,12 @@ msgstr "%s sur %s"
msgid "There are no broken links!"
msgstr "Aucun lien cassé !"
-#: ../IkiWiki/Plugin/comments.pm:119 ../IkiWiki/Plugin/format.pm:23
+#: ../IkiWiki/Plugin/comments.pm:120 ../IkiWiki/Plugin/format.pm:23
#, perl-format
msgid "unsupported page format %s"
msgstr "Format de page non reconnu %s"
-#: ../IkiWiki/Plugin/comments.pm:124
+#: ../IkiWiki/Plugin/comments.pm:125
msgid "comment must have content"
msgstr "Un commentaire doit avoir un contenu."
@@ -201,44 +201,44 @@ msgstr "Un commentaire doit avoir un contenu."
msgid "Anonymous"
msgstr "Anonyme"
-#: ../IkiWiki/Plugin/comments.pm:243 ../IkiWiki/Plugin/recentchanges.pm:101
+#: ../IkiWiki/Plugin/comments.pm:252 ../IkiWiki/Plugin/recentchanges.pm:110
msgid "missing page"
msgstr "Page manquante"
-#: ../IkiWiki/Plugin/comments.pm:245 ../IkiWiki/Plugin/recentchanges.pm:103
+#: ../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:334 ../IkiWiki/Plugin/editpage.pm:124
+#: ../IkiWiki/Plugin/comments.pm:343 ../IkiWiki/Plugin/editpage.pm:124
msgid "bad page name"
msgstr "Nom de page incorrect"
-#: ../IkiWiki/Plugin/comments.pm:341
+#: ../IkiWiki/Plugin/comments.pm:350
#, perl-format
msgid "commenting on %s"
msgstr "Faire un commentaire sur %s"
-#: ../IkiWiki/Plugin/comments.pm:359
+#: ../IkiWiki/Plugin/comments.pm:368
#, 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:366
+#: ../IkiWiki/Plugin/comments.pm:375
#, perl-format
msgid "comments on page '%s' are closed"
msgstr "Le commentaire pour la page '%s' est terminé."
-#: ../IkiWiki/Plugin/comments.pm:468
+#: ../IkiWiki/Plugin/comments.pm:483
msgid "Added a comment"
msgstr "Commentaire ajouté"
-#: ../IkiWiki/Plugin/comments.pm:472
+#: ../IkiWiki/Plugin/comments.pm:487
#, perl-format
msgid "Added a comment: %s"
msgstr "Commentaire ajouté : %s"
-#: ../IkiWiki/Plugin/comments.pm:565
+#: ../IkiWiki/Plugin/comments.pm:601
msgid "Comments"
msgstr "Commentaires"
@@ -329,10 +329,6 @@ 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/googlecalendar.pm:32
-msgid "failed to find url in html"
-msgstr "Impossible de trouver une URL dans le code HTML"
-
#: ../IkiWiki/Plugin/graphviz.pm:67
msgid "failed to run graphviz"
msgstr "Échec du lancement de graphviz"
@@ -406,7 +402,7 @@ msgstr "RPC::XML::Client introuvable, pas de réponse au ping"
msgid "failed to run dot"
msgstr "Échec du lancement de dot"
-#: ../IkiWiki/Plugin/lockedit.pm:49 ../IkiWiki/Plugin/lockedit.pm:66
+#: ../IkiWiki/Plugin/lockedit.pm:47
#, perl-format
msgid "%s is locked and cannot be edited"
msgstr "%s est verrouillé et ne peut être modifié"
@@ -1027,7 +1023,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:1688
+#: ../IkiWiki.pm:1661
msgid "yes"
msgstr "oui"
@@ -1051,6 +1047,9 @@ msgstr "Identifiant de l'administrateur (utilisateur ou openid) :"
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"
diff --git a/po/ikiwiki.pot b/po/ikiwiki.pot
index 7f664d111..957c9eea3 100644
--- a/po/ikiwiki.pot
+++ b/po/ikiwiki.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-12-28 15:01-0500\n"
+"POT-Creation-Date: 2009-01-06 14:31-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"
@@ -237,7 +237,7 @@ msgstr ""
msgid "Added a comment: %s"
msgstr ""
-#: ../IkiWiki/Plugin/comments.pm:598
+#: ../IkiWiki/Plugin/comments.pm:601
msgid "Comments"
msgstr ""
diff --git a/t/yesno.t b/t/yesno.t
new file mode 100755
index 000000000..60a8c071d
--- /dev/null
+++ b/t/yesno.t
@@ -0,0 +1,21 @@
+#!/usr/bin/perl
+use warnings;
+use strict;
+use Test::More tests => 10;
+
+BEGIN { use_ok("IkiWiki"); }
+
+# note: yesno always accepts English even if localized.
+# So no need to bother setting locale to C.
+
+ok(IkiWiki::yesno("yes") == 1);
+ok(IkiWiki::yesno("Yes") == 1);
+ok(IkiWiki::yesno("YES") == 1);
+
+ok(IkiWiki::yesno("no") == 0);
+ok(IkiWiki::yesno("No") == 0);
+ok(IkiWiki::yesno("NO") == 0);
+
+ok(IkiWiki::yesno("1") == 1);
+ok(IkiWiki::yesno("0") == 0);
+ok(IkiWiki::yesno("mooooooooooo") == 0);
diff --git a/templates/comment.tmpl b/templates/comment.tmpl
index 6f2b1619e..582efccb8 100644
--- a/templates/comment.tmpl
+++ b/templates/comment.tmpl
@@ -39,4 +39,15 @@ Comment by
&mdash; <TMPL_VAR CTIME>
</div>
+
+<TMPL_IF NAME="HAVE_ACTIONS">
+<div class="actions">
+<ul>
+<TMPL_IF NAME="REMOVEURL">
+<li><a href="<TMPL_VAR REMOVEURL>" rel="nofollow">Remove comment</a></li>
+</TMPL_IF>
+</ul>
+</div><!--.actions-->
+</TMPL_IF>
+
</div><!--.comment-->
diff --git a/templates/page.tmpl b/templates/page.tmpl
index f75491127..29ba688c7 100644
--- a/templates/page.tmpl
+++ b/templates/page.tmpl
@@ -13,6 +13,7 @@
<link rel="alternate" type="application/x-wiki" title="Edit this page" href="<TMPL_VAR EDITURL>" />
</TMPL_IF>
<TMPL_IF NAME="FEEDLINKS"><TMPL_VAR FEEDLINKS></TMPL_IF>
+<TMPL_IF NAME="RELVCS"><TMPL_VAR RELVCS></TMPL_IF>
<TMPL_IF NAME="META"><TMPL_VAR META></TMPL_IF>
</head>
<body>