From 408d483dc2938af527100f2201ceea0efb5019af Mon Sep 17 00:00:00 2001
From: intrigeri
Date: Thu, 13 Nov 2008 04:32:02 +0100
Subject: reported my need for a global renamepage hook
Signed-off-by: intrigeri
---
doc/todo/need_global_renamepage_hook.mdwn | 42 +++++++++++++++++++++++++++++++
1 file changed, 42 insertions(+)
create mode 100644 doc/todo/need_global_renamepage_hook.mdwn
(limited to 'doc')
diff --git a/doc/todo/need_global_renamepage_hook.mdwn b/doc/todo/need_global_renamepage_hook.mdwn
new file mode 100644
index 000000000..b7aa44880
--- /dev/null
+++ b/doc/todo/need_global_renamepage_hook.mdwn
@@ -0,0 +1,42 @@
+As documented in [[plugins/write]], the current `renamepage` hook is
+heavily oriented towards updating links in pages' content: it is run
+once per page linking to the renamed page.
+
+That's fine, but it can't be used to trigger more general actions on
+page rename. E.g. it won't be run at all if the page being renamed is
+an orphan one.
+
+This is a real issue for the [[plugins/contrib/po]] development: what
+I'm about to achieve is:
+
+- when a master page is renamed, the plugin takes notice of it (using
+ the `rename` hook), and later renames the translation pages
+ accordingly (in the `change` hook)
+- when a master page is deleted, the plugin deletes its translations
+ (using the `delete` hook)
+
+With the current `renamepage` hook behavior, combining these two goals
+has an annoying drawback: a plugin can't notice an orphan master page
+has been renamed, so instead of renaming (and preserving) its
+translations, it considers the oldpage as deleted, and deletes its
+translations. Game over.
+
+It may seem like a corner case, but I want to be very careful when
+deleting files automatically in `srcdir`, which is not always under
+version control.
+
+As an sad workaround, I can still disable any deletion in `srcdir`
+when it is not under version control. But I think ikiwiki deserves
+a global `renamepage` hook that would be run once per rename
+operation.
+
+My proposal is thus:
+
+- keep the documented `renamepage` hook as it is
+- use something inspired by the trick `preprocess` uses: when `hook`
+ is passed an optional "global" parameter, set to a true value, the
+ declared `renamepage` hook is run once per rename operation, and is
+ passed named parameters: `src`, `srcfile`, `dest` and `destfile`.
+
+I'm of course volunteering to implement this, or anything related that
+would solve my problem. Hmmm? --[[intrigeri]]
--
cgit v1.2.3
From e7a840ed9a817cf4db59c90e680afd89e146b581 Mon Sep 17 00:00:00 2001
From: Simon McVittie
Date: Sun, 16 Nov 2008 18:11:39 +0000
Subject: htmlbalance: new plugin that balances tags by parsing and
re-serializing
---
IkiWiki/Plugin/htmlbalance.pm | 57 +++++++++++++++++++++++++++++++++++++++++++
doc/plugins/aggregate.mdwn | 6 ++---
doc/plugins/htmlbalance.mdwn | 9 +++++++
doc/plugins/htmltidy.mdwn | 3 ++-
t/htmlbalance.t | 13 ++++++++++
5 files changed, 84 insertions(+), 4 deletions(-)
create mode 100644 IkiWiki/Plugin/htmlbalance.pm
create mode 100644 doc/plugins/htmlbalance.mdwn
create mode 100755 t/htmlbalance.t
(limited to 'doc')
diff --git a/IkiWiki/Plugin/htmlbalance.pm b/IkiWiki/Plugin/htmlbalance.pm
new file mode 100644
index 000000000..667d73b6c
--- /dev/null
+++ b/IkiWiki/Plugin/htmlbalance.pm
@@ -0,0 +1,57 @@
+#!/usr/bin/perl
+package IkiWiki::Plugin::htmlbalance;
+
+# htmlbalance: Parse and re-serialize HTML to ensure balanced tags
+#
+# Copyright 2008 Simon McVittie
+# 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 => "htmlbalance", call => \&getsetup);
+ hook(type => "sanitize", id => "htmlbalance", call => \&sanitize);
+} # }}}
+
+sub getsetup () { #{{{
+ return
+ plugin => {
+ safe => 1,
+ rebuild => undef,
+ },
+} #}}}
+
+sub sanitize (@) { #{{{
+ my %params=@_;
+ my $ret = '';
+
+ eval {
+ use HTML::TreeBuilder;
+ use XML::Atom::Util qw(encode_xml);
+ };
+
+ if ($@) {
+ error($@);
+ return $params{content};
+ }
+
+ my $tree = HTML::TreeBuilder->new_from_content($params{content});
+ my @nodes = $tree->disembowel();
+ foreach my $node (@nodes) {
+ if (ref $node) {
+ $ret .= $node->as_XML();
+ chomp $ret;
+ $node->delete();
+ }
+ else {
+ $ret .= encode_xml($node);
+ }
+ }
+ $tree->delete();
+ return $ret;
+} # }}}
+
+1
diff --git a/doc/plugins/aggregate.mdwn b/doc/plugins/aggregate.mdwn
index c40a6dc22..6fc87853b 100644
--- a/doc/plugins/aggregate.mdwn
+++ b/doc/plugins/aggregate.mdwn
@@ -9,9 +9,9 @@ New users of aggregate should enable the `aggregateinternal => 1` option in the
.setup file. If you don't do so, you will need to enable the [[html]] plugin
as well as aggregate itself, since feed entries will be stored as HTML.
-The [[meta]] and [[tag]] plugins are also recommended. The
-[[htmltidy]] plugin is suggested, since feeds can easily contain html
-problems, some of which tidy can fix.
+The [[meta]] and [[tag]] plugins are also recommended. Either the
+[[htmltidy]] or [[htmlbalance]] plugin is suggested, since feeds can easily
+contain html problems, some of which these plugins can fix.
You will need to run ikiwiki periodically from a cron job, passing it the
--aggregate parameter, to make it check for new posts. Here's an example
diff --git a/doc/plugins/htmlbalance.mdwn b/doc/plugins/htmlbalance.mdwn
new file mode 100644
index 000000000..7cdb1f950
--- /dev/null
+++ b/doc/plugins/htmlbalance.mdwn
@@ -0,0 +1,9 @@
+[[!template id=plugin name=htmlbalance author="Simon McVittie"]]
+[[!tag type/html]]
+
+This plugin ensures that the HTML emitted by ikiwiki contains well-balanced
+HTML tags, by parsing it with HTML::TreeBuilder and re-serializing it. This
+acts as a lighter-weight alternative to [[plugins/htmltidy]]; it doesn't
+ensure validity, but it does at least ensure that formatting from a
+blog post pulled in by \[[![[ikiwiki/directive/inline]]]] doesn't
+leak into the rest of the page.
diff --git a/doc/plugins/htmltidy.mdwn b/doc/plugins/htmltidy.mdwn
index f675a01ae..580e56f59 100644
--- a/doc/plugins/htmltidy.mdwn
+++ b/doc/plugins/htmltidy.mdwn
@@ -7,4 +7,5 @@ emitted by ikiwiki. Besides being nicely formatted, this helps ensure that
even if users enter suboptimal html, your wiki generates valid html.
Note that since tidy is an external program, that is run each time a page
-is built, this plugin will slow ikiwiki down somewhat.
+is built, this plugin will slow ikiwiki down somewhat. [[plugins/htmlbalance]]
+might provide a faster alternative.
diff --git a/t/htmlbalance.t b/t/htmlbalance.t
new file mode 100755
index 000000000..cd124e473
--- /dev/null
+++ b/t/htmlbalance.t
@@ -0,0 +1,13 @@
+#!/usr/bin/perl
+use warnings;
+use strict;
+use Test::More tests => 7;
+
+BEGIN { use_ok("IkiWiki::Plugin::htmlbalance"); }
+
+is(IkiWiki::Plugin::htmlbalance::sanitize(content => " "), " ");
+is(IkiWiki::Plugin::htmlbalance::sanitize(content => "
+øđ
--
cgit v1.2.3
From 2953b9d850718f2b27badc5d204b930fa23872cc Mon Sep 17 00:00:00 2001
From: "http://smcv.pseudorandom.co.uk/"
Date: Tue, 18 Nov 2008 04:15:58 -0500
Subject: response
---
doc/plugins/contrib/postcomment.mdwn | 30 ++++++++++++++++++++++++++++++
1 file changed, 30 insertions(+)
(limited to 'doc')
diff --git a/doc/plugins/contrib/postcomment.mdwn b/doc/plugins/contrib/postcomment.mdwn
index 9934baa95..2e501995f 100644
--- a/doc/plugins/contrib/postcomment.mdwn
+++ b/doc/plugins/contrib/postcomment.mdwn
@@ -12,6 +12,19 @@ only by direct committers. Currently, comments are always in [[ikiwiki/markdown]
> namespace, such as `$page/comments/*`? Then you could use [[plugins/lockedit]] to
> limit editing of comments in more powerful ways. --[[Joey]]
+>> Er... I suppose so. I'd assumed that these pages ought to only exist as inlines
+>> rather than as individual pages (same reasoning as aggregated posts), though.
+>>
+>> lockedit is actually somewhat insufficient, since `check_canedit()`
+>> doesn't distinguish between creation and editing; I'd have to continue to use
+>> some sort of odd hack to allow creation but not editing.
+>>
+>> I also can't think of any circumstance where you'd want a user other than
+>> admins (~= git committers) and possibly the commenter (who we can't check for
+>> at the moment anyway, I don't think?) to be able to edit comments - I think
+>> user expectations for something that looks like ordinary blog comments are
+>> likely to include "others can't put words into my mouth". --[[smcv]]
+
Directives and raw HTML are filtered out by default, and comment authorship should
hopefully be unforgeable by CGI users.
@@ -19,6 +32,13 @@ hopefully be unforgeable by CGI users.
> htmlsanitizer and htmlbalanced plugins are enabled. I can see filtering
> out directives, as a special case. --[[Joey]]
+>> Right, if I sanitize each post individually, with htmlscrubber and either htmltidy
+>> or htmlbalance turned on, then there should be no way the user can forge a comment;
+>> I was initially wary of allowing meta directives, but I think those are OK, as long
+>> as the comment template puts the \[[!meta author]] at the *end*. Disallowing
+>> directives is more a way to avoid commenters causing expensive processing than
+>> anything else, at this point. --[[smcv]]
+
When comments have been enabled generally, you still need to mark which pages
can have comments, by including the `\[[!postcomment]]` directive in them. By default,
this directive expands to a "post a comment" link plus an `\[[!inline]]` with
@@ -30,6 +50,16 @@ the comments.
> add the comment posting form and comments to the end of each page.
> --[[Joey]]
+>> I don't think I'd want comments on *every* page (particularly, not the
+>> front page). Perhaps a pagespec in the setup file, where the default is "*"?
+>> Then control freaks like me could use "link(tags/comments)" and tag pages
+>> as allowing comments.
+>>
+>> The model used for discussion pages does require patching the existing
+>> page template, which I was trying to avoid - I'm not convinced that having
+>> every possible feature hard-coded there really scales (and obviously it's
+>> rather annoying while this plugin is on a branch). --[[smcv]]
+
The plugin adds a new [[ikiwiki/PageSpec]] match type, `postcomment`, for use
with `anonok_pagespec` from the [[plugins/anonok]] plugin or `locked_pages` from
the [[plugins/lockedit]] plugin. Typical usage would be something like:
--
cgit v1.2.3
From 8f43b3ff8db0f76f5d1c39a95118347c9057e19b Mon Sep 17 00:00:00 2001
From: "http://technorati.com/people/technorati/drajt"
Date: Tue, 18 Nov 2008 04:48:06 -0500
Subject:
---
doc/ikiwikiusers.mdwn | 1 +
1 file changed, 1 insertion(+)
(limited to 'doc')
diff --git a/doc/ikiwikiusers.mdwn b/doc/ikiwikiusers.mdwn
index 2492fd211..ac46fcc7f 100644
--- a/doc/ikiwikiusers.mdwn
+++ b/doc/ikiwikiusers.mdwn
@@ -104,6 +104,7 @@ Personal sites and blogs
* [[JonDowland]]'s [homepage](http://jmtd.net/)
* [[xma]] is using ikiwiki ()
* [[JanWalzer|jwalzer]]'s [homepage](http://wa.lzer.net/) -- Work in Progress
+* [Adam Trickett's home intranet and sanbox system](http://www.iredale.net) -- no wiki component visible yet
Please feel free to add your own ikiwiki site!
--
cgit v1.2.3
From 75a333539929f12b465071f9203f58f2eacd5f3f Mon Sep 17 00:00:00 2001
From: "http://smcv.pseudorandom.co.uk/"
Date: Tue, 18 Nov 2008 05:12:44 -0500
Subject: rename plugins/contrib/postcomment.mdwn to
plugins/contrib/comments.mdwn
---
doc/plugins/contrib/comments.mdwn | 103 +++++++++++++++++++++++++++++++++++
doc/plugins/contrib/postcomment.mdwn | 103 -----------------------------------
2 files changed, 103 insertions(+), 103 deletions(-)
create mode 100644 doc/plugins/contrib/comments.mdwn
delete mode 100644 doc/plugins/contrib/postcomment.mdwn
(limited to 'doc')
diff --git a/doc/plugins/contrib/comments.mdwn b/doc/plugins/contrib/comments.mdwn
new file mode 100644
index 000000000..2e501995f
--- /dev/null
+++ b/doc/plugins/contrib/comments.mdwn
@@ -0,0 +1,103 @@
+[[!template id=plugin name=postcomment author="[[Simon_McVittie|smcv]]"]]
+[[!tag type/useful]]
+
+This plugin adds "blog-style" comments. The intention is that on a non-wiki site
+(like a blog) you can lock all pages for admin-only access, then allow otherwise
+unprivileged (or perhaps even anonymous) users to comment on posts.
+
+Comments are saved as internal pages, so they can never be edited through the CGI,
+only by direct committers. Currently, comments are always in [[ikiwiki/markdown]].
+
+> So, why do it this way, instead of using regular wiki pages in a
+> namespace, such as `$page/comments/*`? Then you could use [[plugins/lockedit]] to
+> limit editing of comments in more powerful ways. --[[Joey]]
+
+>> Er... I suppose so. I'd assumed that these pages ought to only exist as inlines
+>> rather than as individual pages (same reasoning as aggregated posts), though.
+>>
+>> lockedit is actually somewhat insufficient, since `check_canedit()`
+>> doesn't distinguish between creation and editing; I'd have to continue to use
+>> some sort of odd hack to allow creation but not editing.
+>>
+>> I also can't think of any circumstance where you'd want a user other than
+>> admins (~= git committers) and possibly the commenter (who we can't check for
+>> at the moment anyway, I don't think?) to be able to edit comments - I think
+>> user expectations for something that looks like ordinary blog comments are
+>> likely to include "others can't put words into my mouth". --[[smcv]]
+
+Directives and raw HTML are filtered out by default, and comment authorship should
+hopefully be unforgeable by CGI users.
+
+> I'm not sure that raw html should be a problem, as long as the
+> htmlsanitizer and htmlbalanced plugins are enabled. I can see filtering
+> out directives, as a special case. --[[Joey]]
+
+>> Right, if I sanitize each post individually, with htmlscrubber and either htmltidy
+>> or htmlbalance turned on, then there should be no way the user can forge a comment;
+>> I was initially wary of allowing meta directives, but I think those are OK, as long
+>> as the comment template puts the \[[!meta author]] at the *end*. Disallowing
+>> directives is more a way to avoid commenters causing expensive processing than
+>> anything else, at this point. --[[smcv]]
+
+When comments have been enabled generally, you still need to mark which pages
+can have comments, by including the `\[[!postcomment]]` directive in them. By default,
+this directive expands to a "post a comment" link plus an `\[[!inline]]` with
+the comments.
+
+> I don't like this, because it's hard to explain to someone why they have
+> to insert this into every post to their blog. Seems that the model used
+> for discussion pages could work -- if comments are enabled, automatically
+> add the comment posting form and comments to the end of each page.
+> --[[Joey]]
+
+>> I don't think I'd want comments on *every* page (particularly, not the
+>> front page). Perhaps a pagespec in the setup file, where the default is "*"?
+>> Then control freaks like me could use "link(tags/comments)" and tag pages
+>> as allowing comments.
+>>
+>> The model used for discussion pages does require patching the existing
+>> page template, which I was trying to avoid - I'm not convinced that having
+>> every possible feature hard-coded there really scales (and obviously it's
+>> rather annoying while this plugin is on a branch). --[[smcv]]
+
+The plugin adds a new [[ikiwiki/PageSpec]] match type, `postcomment`, for use
+with `anonok_pagespec` from the [[plugins/anonok]] plugin or `locked_pages` from
+the [[plugins/lockedit]] plugin. Typical usage would be something like:
+
+ locked_pages => "!postcomment(*)"
+
+to allow non-admin users to comment on pages, but not edit anything. You can also do
+
+ anonok_pages => "postcomment(*)"
+
+to allow anonymous comments (the IP address will be used as the "author").
+
+Optional parameters to the postcomment directive:
+
+* `commit=no`: by default, comments are committed to version control. Use this to
+ disable commits.
+* `allowhtml=yes`: by default, raw HTML is filtered out. Use this to allow HTML
+ (you should enable [[plugins/htmlscrubber]] and either [[plugins/htmltidy]] or
+ [[plugins/contrib/htmlbalance]] if you do this).
+* `allowdirectives=yes`: by default, IkiWiki directives are filtered out. Use this
+ to allow directives (avoid enabling any [[plugins/type/slow]] directives if you
+ do this).
+* `closed=yes`: use this to prevent new comments while still displaying existing ones.
+* `atom`, `rss`, `feeds`, `feedshow`, `timeformat`, `feedonly`: the same as for [[plugins/inline]]
+
+This plugin aims to close the [[todo]] item "[[todo/supporting_comments_via_disussion_pages]]",
+and is currently available from [[smcv]]'s git repository on git.pseudorandom.co.uk.
+
+Known issues:
+
+* Needs code review
+* The access control via postcomment() is rather strange
+* There is some common code cargo-culted from other plugins (notably inline and editpage) which
+ should probably be shared
+* If the postcomment directive is removed from a page, comments can still be made on that page,
+ and will be committed but not displayed; to disable comments properly you have to set the
+ closed="yes" directive parameter (and refresh the wiki), *then* remove the directive if
+ desired
+
+> I haven't done a detailed code review, but I will say I'm pleased you
+> avoided re-implementing inline! --[[Joey]]
diff --git a/doc/plugins/contrib/postcomment.mdwn b/doc/plugins/contrib/postcomment.mdwn
deleted file mode 100644
index 2e501995f..000000000
--- a/doc/plugins/contrib/postcomment.mdwn
+++ /dev/null
@@ -1,103 +0,0 @@
-[[!template id=plugin name=postcomment author="[[Simon_McVittie|smcv]]"]]
-[[!tag type/useful]]
-
-This plugin adds "blog-style" comments. The intention is that on a non-wiki site
-(like a blog) you can lock all pages for admin-only access, then allow otherwise
-unprivileged (or perhaps even anonymous) users to comment on posts.
-
-Comments are saved as internal pages, so they can never be edited through the CGI,
-only by direct committers. Currently, comments are always in [[ikiwiki/markdown]].
-
-> So, why do it this way, instead of using regular wiki pages in a
-> namespace, such as `$page/comments/*`? Then you could use [[plugins/lockedit]] to
-> limit editing of comments in more powerful ways. --[[Joey]]
-
->> Er... I suppose so. I'd assumed that these pages ought to only exist as inlines
->> rather than as individual pages (same reasoning as aggregated posts), though.
->>
->> lockedit is actually somewhat insufficient, since `check_canedit()`
->> doesn't distinguish between creation and editing; I'd have to continue to use
->> some sort of odd hack to allow creation but not editing.
->>
->> I also can't think of any circumstance where you'd want a user other than
->> admins (~= git committers) and possibly the commenter (who we can't check for
->> at the moment anyway, I don't think?) to be able to edit comments - I think
->> user expectations for something that looks like ordinary blog comments are
->> likely to include "others can't put words into my mouth". --[[smcv]]
-
-Directives and raw HTML are filtered out by default, and comment authorship should
-hopefully be unforgeable by CGI users.
-
-> I'm not sure that raw html should be a problem, as long as the
-> htmlsanitizer and htmlbalanced plugins are enabled. I can see filtering
-> out directives, as a special case. --[[Joey]]
-
->> Right, if I sanitize each post individually, with htmlscrubber and either htmltidy
->> or htmlbalance turned on, then there should be no way the user can forge a comment;
->> I was initially wary of allowing meta directives, but I think those are OK, as long
->> as the comment template puts the \[[!meta author]] at the *end*. Disallowing
->> directives is more a way to avoid commenters causing expensive processing than
->> anything else, at this point. --[[smcv]]
-
-When comments have been enabled generally, you still need to mark which pages
-can have comments, by including the `\[[!postcomment]]` directive in them. By default,
-this directive expands to a "post a comment" link plus an `\[[!inline]]` with
-the comments.
-
-> I don't like this, because it's hard to explain to someone why they have
-> to insert this into every post to their blog. Seems that the model used
-> for discussion pages could work -- if comments are enabled, automatically
-> add the comment posting form and comments to the end of each page.
-> --[[Joey]]
-
->> I don't think I'd want comments on *every* page (particularly, not the
->> front page). Perhaps a pagespec in the setup file, where the default is "*"?
->> Then control freaks like me could use "link(tags/comments)" and tag pages
->> as allowing comments.
->>
->> The model used for discussion pages does require patching the existing
->> page template, which I was trying to avoid - I'm not convinced that having
->> every possible feature hard-coded there really scales (and obviously it's
->> rather annoying while this plugin is on a branch). --[[smcv]]
-
-The plugin adds a new [[ikiwiki/PageSpec]] match type, `postcomment`, for use
-with `anonok_pagespec` from the [[plugins/anonok]] plugin or `locked_pages` from
-the [[plugins/lockedit]] plugin. Typical usage would be something like:
-
- locked_pages => "!postcomment(*)"
-
-to allow non-admin users to comment on pages, but not edit anything. You can also do
-
- anonok_pages => "postcomment(*)"
-
-to allow anonymous comments (the IP address will be used as the "author").
-
-Optional parameters to the postcomment directive:
-
-* `commit=no`: by default, comments are committed to version control. Use this to
- disable commits.
-* `allowhtml=yes`: by default, raw HTML is filtered out. Use this to allow HTML
- (you should enable [[plugins/htmlscrubber]] and either [[plugins/htmltidy]] or
- [[plugins/contrib/htmlbalance]] if you do this).
-* `allowdirectives=yes`: by default, IkiWiki directives are filtered out. Use this
- to allow directives (avoid enabling any [[plugins/type/slow]] directives if you
- do this).
-* `closed=yes`: use this to prevent new comments while still displaying existing ones.
-* `atom`, `rss`, `feeds`, `feedshow`, `timeformat`, `feedonly`: the same as for [[plugins/inline]]
-
-This plugin aims to close the [[todo]] item "[[todo/supporting_comments_via_disussion_pages]]",
-and is currently available from [[smcv]]'s git repository on git.pseudorandom.co.uk.
-
-Known issues:
-
-* Needs code review
-* The access control via postcomment() is rather strange
-* There is some common code cargo-culted from other plugins (notably inline and editpage) which
- should probably be shared
-* If the postcomment directive is removed from a page, comments can still be made on that page,
- and will be committed but not displayed; to disable comments properly you have to set the
- closed="yes" directive parameter (and refresh the wiki), *then* remove the directive if
- desired
-
-> I haven't done a detailed code review, but I will say I'm pleased you
-> avoided re-implementing inline! --[[Joey]]
--
cgit v1.2.3
From 284b79b36aa924366f34048b2ee8c40ea5b8d180 Mon Sep 17 00:00:00 2001
From: "http://smcv.pseudorandom.co.uk/"
Date: Tue, 18 Nov 2008 05:12:52 -0500
Subject: update for rename of plugins/contrib/postcomment.mdwn to
plugins/contrib/comments.mdwn
---
doc/todo/supporting_comments_via_disussion_pages.mdwn | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'doc')
diff --git a/doc/todo/supporting_comments_via_disussion_pages.mdwn b/doc/todo/supporting_comments_via_disussion_pages.mdwn
index 88effdfd5..bc4e331d0 100644
--- a/doc/todo/supporting_comments_via_disussion_pages.mdwn
+++ b/doc/todo/supporting_comments_via_disussion_pages.mdwn
@@ -214,4 +214,4 @@ do you think so far? Known issues include:
--[[smcv]]
-I've updated smcvpostcomment and publicised it as [[plugins/contrib/postcomment]]. --[[smcv]]
+I've updated smcvpostcomment and publicised it as [[plugins/contrib/comments]]. --[[smcv]]
--
cgit v1.2.3
From 22fb4e4d3394b010288bd2a34df64f01110123d1 Mon Sep 17 00:00:00 2001
From: "http://smcv.pseudorandom.co.uk/"
Date: Tue, 18 Nov 2008 05:12:53 -0500
Subject: update for rename of plugins/contrib/postcomment.mdwn to
plugins/contrib/comments.mdwn
---
doc/users/smcv.mdwn | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'doc')
diff --git a/doc/users/smcv.mdwn b/doc/users/smcv.mdwn
index c1cc62a81..abd443563 100644
--- a/doc/users/smcv.mdwn
+++ b/doc/users/smcv.mdwn
@@ -7,4 +7,4 @@ My repository containing ikiwiki branches:
* gitweb: http://git.pseudorandom.co.uk/smcv/ikiwiki.git
* anongit: git://git.pseudorandom.co.uk/git/smcv/ikiwiki.git
-I'm working on the [[plugins/contrib/htmlbalance]] and [[plugins/contrib/postcomment]] plugins.
+I'm working on the [[plugins/contrib/htmlbalance]] and [[plugins/contrib/comments]] plugins.
--
cgit v1.2.3
From bd14203c0b8ca9b736a73e70440c4ee3b571618f Mon Sep 17 00:00:00 2001
From: "http://smcv.pseudorandom.co.uk/"
Date: Tue, 18 Nov 2008 05:37:36 -0500
Subject: update
---
doc/plugins/contrib/comments.mdwn | 27 ++++++++++++++++++++-------
1 file changed, 20 insertions(+), 7 deletions(-)
(limited to 'doc')
diff --git a/doc/plugins/contrib/comments.mdwn b/doc/plugins/contrib/comments.mdwn
index 2e501995f..3e6dcfd76 100644
--- a/doc/plugins/contrib/comments.mdwn
+++ b/doc/plugins/contrib/comments.mdwn
@@ -1,4 +1,4 @@
-[[!template id=plugin name=postcomment author="[[Simon_McVittie|smcv]]"]]
+[[!template id=plugin name=comments author="[[Simon_McVittie|smcv]]"]]
[[!tag type/useful]]
This plugin adds "blog-style" comments. The intention is that on a non-wiki site
@@ -23,7 +23,12 @@ only by direct committers. Currently, comments are always in [[ikiwiki/markdown]
>> admins (~= git committers) and possibly the commenter (who we can't check for
>> at the moment anyway, I don't think?) to be able to edit comments - I think
>> user expectations for something that looks like ordinary blog comments are
->> likely to include "others can't put words into my mouth". --[[smcv]]
+>> likely to include "others can't put words into my mouth".
+>>
+>> My other objection to using a namespace is that I'm not particularly happy about
+>> plugins consuming arbitrary pieces of the wiki namespace - /discussion is bad
+>> enough already. Indeed, this very page would accidentally get matched by rules
+>> aiming to control comment-posting... :-) --[[smcv]]
Directives and raw HTML are filtered out by default, and comment authorship should
hopefully be unforgeable by CGI users.
@@ -37,10 +42,14 @@ hopefully be unforgeable by CGI users.
>> I was initially wary of allowing meta directives, but I think those are OK, as long
>> as the comment template puts the \[[!meta author]] at the *end*. Disallowing
>> directives is more a way to avoid commenters causing expensive processing than
->> anything else, at this point. --[[smcv]]
+>> anything else, at this point.
+>>
+>> I've rebased the plugin on master and made it sanitize individual posts' content now.
+>> Disallowing HTML is still optional and on by default, but it's trivial to remove
+>> the code. --[[smcv]]
When comments have been enabled generally, you still need to mark which pages
-can have comments, by including the `\[[!postcomment]]` directive in them. By default,
+can have comments, by including the `\[[!comments]]` directive in them. By default,
this directive expands to a "post a comment" link plus an `\[[!inline]]` with
the comments.
@@ -72,7 +81,10 @@ to allow non-admin users to comment on pages, but not edit anything. You can als
to allow anonymous comments (the IP address will be used as the "author").
-Optional parameters to the postcomment directive:
+> This is still called postcomment, although I've renamed the rest of the plugin
+> to comments as suggested on #ikiwiki --[[smcv]]
+
+Optional parameters to the comments directive:
* `commit=no`: by default, comments are committed to version control. Use this to
disable commits.
@@ -86,7 +98,8 @@ Optional parameters to the postcomment directive:
* `atom`, `rss`, `feeds`, `feedshow`, `timeformat`, `feedonly`: the same as for [[plugins/inline]]
This plugin aims to close the [[todo]] item "[[todo/supporting_comments_via_disussion_pages]]",
-and is currently available from [[smcv]]'s git repository on git.pseudorandom.co.uk.
+and is currently available from [[smcv]]'s git repository on git.pseudorandom.co.uk (it's the
+`postcomment` branch).
Known issues:
@@ -94,7 +107,7 @@ Known issues:
* The access control via postcomment() is rather strange
* There is some common code cargo-culted from other plugins (notably inline and editpage) which
should probably be shared
-* If the postcomment directive is removed from a page, comments can still be made on that page,
+* If the comments directive is removed from a page, comments can still be made on that page,
and will be committed but not displayed; to disable comments properly you have to set the
closed="yes" directive parameter (and refresh the wiki), *then* remove the directive if
desired
--
cgit v1.2.3
From c66a3f9ca7bc3ae827e9cfe19ee0aef728218d0e Mon Sep 17 00:00:00 2001
From: "http://smcv.pseudorandom.co.uk/"
Date: Tue, 18 Nov 2008 05:40:23 -0500
Subject: Fix link to htmlbalance
---
doc/plugins/contrib/comments.mdwn | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
(limited to 'doc')
diff --git a/doc/plugins/contrib/comments.mdwn b/doc/plugins/contrib/comments.mdwn
index 3e6dcfd76..6e6202993 100644
--- a/doc/plugins/contrib/comments.mdwn
+++ b/doc/plugins/contrib/comments.mdwn
@@ -89,8 +89,8 @@ Optional parameters to the comments directive:
* `commit=no`: by default, comments are committed to version control. Use this to
disable commits.
* `allowhtml=yes`: by default, raw HTML is filtered out. Use this to allow HTML
- (you should enable [[plugins/htmlscrubber]] and either [[plugins/htmltidy]] or
- [[plugins/contrib/htmlbalance]] if you do this).
+ (you should enable [[htmlscrubber]] and either [[htmltidy]] or
+ [[htmlbalance]] if you do this).
* `allowdirectives=yes`: by default, IkiWiki directives are filtered out. Use this
to allow directives (avoid enabling any [[plugins/type/slow]] directives if you
do this).
--
cgit v1.2.3
From c9bddc159192ca7b8c69fd958586ac2717f56121 Mon Sep 17 00:00:00 2001
From: "http://smcv.pseudorandom.co.uk/"
Date: Tue, 18 Nov 2008 05:54:34 -0500
Subject: update
---
doc/users/smcv.mdwn | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'doc')
diff --git a/doc/users/smcv.mdwn b/doc/users/smcv.mdwn
index abd443563..4ec100a72 100644
--- a/doc/users/smcv.mdwn
+++ b/doc/users/smcv.mdwn
@@ -7,4 +7,4 @@ My repository containing ikiwiki branches:
* gitweb: http://git.pseudorandom.co.uk/smcv/ikiwiki.git
* anongit: git://git.pseudorandom.co.uk/git/smcv/ikiwiki.git
-I'm working on the [[plugins/contrib/htmlbalance]] and [[plugins/contrib/comments]] plugins.
+Currently working on the [[comments]] plugin.
--
cgit v1.2.3
From c5a7d98b54623cf501bd2cd6c188641c406318ff Mon Sep 17 00:00:00 2001
From: "http://smcv.pseudorandom.co.uk/"
Date: Tue, 18 Nov 2008 06:14:08 -0500
Subject: Raw HTML now allowed, joeyh convinced me :-)
---
doc/plugins/contrib/comments.mdwn | 14 ++++++--------
1 file changed, 6 insertions(+), 8 deletions(-)
(limited to 'doc')
diff --git a/doc/plugins/contrib/comments.mdwn b/doc/plugins/contrib/comments.mdwn
index 6e6202993..6ba181232 100644
--- a/doc/plugins/contrib/comments.mdwn
+++ b/doc/plugins/contrib/comments.mdwn
@@ -30,8 +30,10 @@ only by direct committers. Currently, comments are always in [[ikiwiki/markdown]
>> enough already. Indeed, this very page would accidentally get matched by rules
>> aiming to control comment-posting... :-) --[[smcv]]
-Directives and raw HTML are filtered out by default, and comment authorship should
-hopefully be unforgeable by CGI users.
+When using this plugin, you should also enable [[htmlscrubber]] and either [[htmltidy]]
+or [[htmlbalance]]. Directives are filtered out by default, to avoid commenters slowing
+down the wiki by causing time-consuming processing. As long as the recommended plugins
+are enabled, comment authorship should hopefully be unforgeable by CGI users.
> I'm not sure that raw html should be a problem, as long as the
> htmlsanitizer and htmlbalanced plugins are enabled. I can see filtering
@@ -44,9 +46,8 @@ hopefully be unforgeable by CGI users.
>> directives is more a way to avoid commenters causing expensive processing than
>> anything else, at this point.
>>
->> I've rebased the plugin on master and made it sanitize individual posts' content now.
->> Disallowing HTML is still optional and on by default, but it's trivial to remove
->> the code. --[[smcv]]
+>> I've rebased the plugin on master, made it sanitize individual posts' content
+>> and removed the option to disallow raw HTML. --[[smcv]]
When comments have been enabled generally, you still need to mark which pages
can have comments, by including the `\[[!comments]]` directive in them. By default,
@@ -88,9 +89,6 @@ Optional parameters to the comments directive:
* `commit=no`: by default, comments are committed to version control. Use this to
disable commits.
-* `allowhtml=yes`: by default, raw HTML is filtered out. Use this to allow HTML
- (you should enable [[htmlscrubber]] and either [[htmltidy]] or
- [[htmlbalance]] if you do this).
* `allowdirectives=yes`: by default, IkiWiki directives are filtered out. Use this
to allow directives (avoid enabling any [[plugins/type/slow]] directives if you
do this).
--
cgit v1.2.3
From 1c4a005986b7fcf9cf99f370ca91ffe41484e34b Mon Sep 17 00:00:00 2001
From: "http://smcv.pseudorandom.co.uk/"
Date: Tue, 18 Nov 2008 06:58:39 -0500
Subject: Fix link
---
doc/users/smcv.mdwn | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'doc')
diff --git a/doc/users/smcv.mdwn b/doc/users/smcv.mdwn
index 4ec100a72..c52aa8f0f 100644
--- a/doc/users/smcv.mdwn
+++ b/doc/users/smcv.mdwn
@@ -7,4 +7,4 @@ My repository containing ikiwiki branches:
* gitweb: http://git.pseudorandom.co.uk/smcv/ikiwiki.git
* anongit: git://git.pseudorandom.co.uk/git/smcv/ikiwiki.git
-Currently working on the [[comments]] plugin.
+Currently working on the [[plugins/contrib/comments]] plugin.
--
cgit v1.2.3
From 28ffff103045a75b984a6cb8aa6958c736cc8cb4 Mon Sep 17 00:00:00 2001
From: "http://smcv.pseudorandom.co.uk/"
Date: Tue, 18 Nov 2008 07:07:25 -0500
Subject:
---
doc/plugins/contrib/comments.mdwn | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
(limited to 'doc')
diff --git a/doc/plugins/contrib/comments.mdwn b/doc/plugins/contrib/comments.mdwn
index 6ba181232..d56de4466 100644
--- a/doc/plugins/contrib/comments.mdwn
+++ b/doc/plugins/contrib/comments.mdwn
@@ -97,7 +97,8 @@ Optional parameters to the comments directive:
This plugin aims to close the [[todo]] item "[[todo/supporting_comments_via_disussion_pages]]",
and is currently available from [[smcv]]'s git repository on git.pseudorandom.co.uk (it's the
-`postcomment` branch).
+`postcomment` branch). A demo wiki with the plugin enabled is running at
+.
Known issues:
--
cgit v1.2.3
From 0eca0b4dffd2df534ac815195207bc889895fa47 Mon Sep 17 00:00:00 2001
From: "http://mjr.towers.org.uk/"
Date: Tue, 18 Nov 2008 08:14:57 -0500
Subject: auto-hosting sites
---
doc/ikiwikiusers/discussion.mdwn | 4 ++++
1 file changed, 4 insertions(+)
(limited to 'doc')
diff --git a/doc/ikiwikiusers/discussion.mdwn b/doc/ikiwikiusers/discussion.mdwn
index 2da3668d4..39a9bb921 100644
--- a/doc/ikiwikiusers/discussion.mdwn
+++ b/doc/ikiwikiusers/discussion.mdwn
@@ -29,3 +29,7 @@ Thanks, --[[Chao]]
Thanks for the reply Joey! ikiwiki is a fantastic wiki complier, though I do
not have my own machine momentarily, i will pay close attention to its development.
Hopefully I will be one of the ikiwiki users one day :) cheers --[[Chao]]
+
+----
+
+Are there automated hosting sites for ikiwiki yet? If you know one, can you add one in a new section on [[ikiwikiusers]] please? If you don't know any and you're willing to pay to set one up (shouldn't be much more expensive than a single ikiwiki IMO), [contact me](http://www.ttllp.co.uk/contact.html) and let's talk. -- MJR
--
cgit v1.2.3
From 447d3ae258070be5e421b17b2aef4fe80031583c Mon Sep 17 00:00:00 2001
From: "http://mjr.towers.org.uk/"
Date: Tue, 18 Nov 2008 08:20:30 -0500
Subject: Further details
---
doc/bugs/login_page_should_note_cookie_requirement.mdwn | 5 +++++
1 file changed, 5 insertions(+)
(limited to 'doc')
diff --git a/doc/bugs/login_page_should_note_cookie_requirement.mdwn b/doc/bugs/login_page_should_note_cookie_requirement.mdwn
index e2d5a352b..bd52f1c21 100644
--- a/doc/bugs/login_page_should_note_cookie_requirement.mdwn
+++ b/doc/bugs/login_page_should_note_cookie_requirement.mdwn
@@ -4,6 +4,9 @@ At the moment, you go through the login shuffle and then are told that cookies a
> websites that have a login require cookies. Such warnings used to be
> common, but few sites bother with them anymore. --[[Joey]]
+>> Very few websites break without cookies. Even fewer lose data.
+>> Can ikiwiki avoid being below average by default? --[MJR](http://mjr.towers.org.uk)
+
Even better would be to only display the cookie note as a warning if the login page doesn't receive a session cookie.
> I considered doing this before, but it would require running the cgi once
@@ -15,3 +18,5 @@ Best of all would be to use URL-based or hidden-field-based session tokens if co
> This is not very doable since most of the pages the user browses are
> static pages in a static location.
+
+>> The pages that lose data without cookies (the edit pages, primarily) don't look static. Are they really? --[MJR](http://mjr.towers.org.uk)
--
cgit v1.2.3
From 19e34cb62ec8c891f060cbf9b2340510c7cb0331 Mon Sep 17 00:00:00 2001
From: Joey Hess
Date: Tue, 18 Nov 2008 12:56:02 -0500
Subject: respond, sheesh
---
doc/bugs/login_page_should_note_cookie_requirement.mdwn | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
(limited to 'doc')
diff --git a/doc/bugs/login_page_should_note_cookie_requirement.mdwn b/doc/bugs/login_page_should_note_cookie_requirement.mdwn
index bd52f1c21..32d971548 100644
--- a/doc/bugs/login_page_should_note_cookie_requirement.mdwn
+++ b/doc/bugs/login_page_should_note_cookie_requirement.mdwn
@@ -7,6 +7,10 @@ At the moment, you go through the login shuffle and then are told that cookies a
>> Very few websites break without cookies. Even fewer lose data.
>> Can ikiwiki avoid being below average by default? --[MJR](http://mjr.towers.org.uk)
+>>> Can we avoid engaging in hyperbole? (Hint: Your browser probably has a
+>>> back button. Hint 2: A username/password does not count as "lost data".
+>>> Hint 3: Now we're arguing, which is pointless.) --[[Joey]]
+
Even better would be to only display the cookie note as a warning if the login page doesn't receive a session cookie.
> I considered doing this before, but it would require running the cgi once
@@ -19,4 +23,7 @@ Best of all would be to use URL-based or hidden-field-based session tokens if co
> This is not very doable since most of the pages the user browses are
> static pages in a static location.
->> The pages that lose data without cookies (the edit pages, primarily) don't look static. Are they really? --[MJR](http://mjr.towers.org.uk)
+>> The pages that lose data without cookies (the edit pages, primarily)
+>> don't look static. Are they really? --[MJR](http://mjr.towers.org.uk)a
+
+>>> As soon as you post an edit page, you are back to a static website.
--
cgit v1.2.3
From 9b1be757ddb2f1982cb0ca89bff11a78d76faa00 Mon Sep 17 00:00:00 2001
From: Joey Hess
Date: Tue, 18 Nov 2008 14:03:44 -0500
Subject: responses
---
doc/plugins/contrib/comments.mdwn | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
(limited to 'doc')
diff --git a/doc/plugins/contrib/comments.mdwn b/doc/plugins/contrib/comments.mdwn
index d56de4466..41bfa0004 100644
--- a/doc/plugins/contrib/comments.mdwn
+++ b/doc/plugins/contrib/comments.mdwn
@@ -30,6 +30,11 @@ only by direct committers. Currently, comments are always in [[ikiwiki/markdown]
>> enough already. Indeed, this very page would accidentally get matched by rules
>> aiming to control comment-posting... :-) --[[smcv]]
+>> The best reason to keep the pages internal seems to me to be that you
+>> don't want the overhead of every comment spawning its own wiki page.
+>> The worst problem with it though is that you have to assume the pages
+>> are mdwn (or `default_pageext`) and not support other formats. --[[Joey]]
+
When using this plugin, you should also enable [[htmlscrubber]] and either [[htmltidy]]
or [[htmlbalance]]. Directives are filtered out by default, to avoid commenters slowing
down the wiki by causing time-consuming processing. As long as the recommended plugins
@@ -49,6 +54,16 @@ are enabled, comment authorship should hopefully be unforgeable by CGI users.
>> I've rebased the plugin on master, made it sanitize individual posts' content
>> and removed the option to disallow raw HTML. --[[smcv]]
+>> There might be some use cases for other directives, such as img, in
+>> comments.
+>>
+>> I don't know if meta is "safe" (ie, guaranteed to be inexpensive and not
+>> allow users to do annoying things) or if it will continue to be in the
+>> future. Hard to predict really, all that can be said with certainty is
+>> all directives will contine to be inexpensive and safe enough that it's
+>> sensible to allow users to (ab)use them on open wikis.
+>> --[[Joey]]
+
When comments have been enabled generally, you still need to mark which pages
can have comments, by including the `\[[!comments]]` directive in them. By default,
this directive expands to a "post a comment" link plus an `\[[!inline]]` with
@@ -65,11 +80,16 @@ the comments.
>> Then control freaks like me could use "link(tags/comments)" and tag pages
>> as allowing comments.
>>
+>>> Yes, I think a pagespec is the way to go. --[[Joey]]
+>>
>> The model used for discussion pages does require patching the existing
>> page template, which I was trying to avoid - I'm not convinced that having
>> every possible feature hard-coded there really scales (and obviously it's
>> rather annoying while this plugin is on a branch). --[[smcv]]
+>>> Using the template would allow customising the html around the comments
+>>> which seems like a good thing?
+
The plugin adds a new [[ikiwiki/PageSpec]] match type, `postcomment`, for use
with `anonok_pagespec` from the [[plugins/anonok]] plugin or `locked_pages` from
the [[plugins/lockedit]] plugin. Typical usage would be something like:
--
cgit v1.2.3
From 23f5874a56f66c0bb5d5921d21418c7363786b1b Mon Sep 17 00:00:00 2001
From: Joey Hess
Date: Tue, 18 Nov 2008 14:12:52 -0500
Subject: another thought
---
doc/plugins/contrib/comments.mdwn | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
(limited to 'doc')
diff --git a/doc/plugins/contrib/comments.mdwn b/doc/plugins/contrib/comments.mdwn
index 41bfa0004..0957e74fa 100644
--- a/doc/plugins/contrib/comments.mdwn
+++ b/doc/plugins/contrib/comments.mdwn
@@ -33,7 +33,13 @@ only by direct committers. Currently, comments are always in [[ikiwiki/markdown]
>> The best reason to keep the pages internal seems to me to be that you
>> don't want the overhead of every comment spawning its own wiki page.
>> The worst problem with it though is that you have to assume the pages
->> are mdwn (or `default_pageext`) and not support other formats. --[[Joey]]
+>> are mdwn (or `default_pageext`) and not support other formats.
+
+>> By the way, I think that who can post comments should be controllable by
+>> the existing plugins opendiscussion, anonok, signinedit, and lockedit. Allowing
+>> posting comments w/o any login, while a nice capability, can lead to
+>> spam problems. So, use `check_canedit` as at least a first-level check?
+>> --[[Joey]]
When using this plugin, you should also enable [[htmlscrubber]] and either [[htmltidy]]
or [[htmlbalance]]. Directives are filtered out by default, to avoid commenters slowing
--
cgit v1.2.3
From 3c9c348578abbb0f687ccb6a41540d4a5e124af5 Mon Sep 17 00:00:00 2001
From: "http://www.cse.unsw.edu.au/~willu/"
Date: Wed, 19 Nov 2008 00:10:10 -0500
Subject: Client side cookie detection with javascript?
---
doc/bugs/login_page_should_note_cookie_requirement.mdwn | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
(limited to 'doc')
diff --git a/doc/bugs/login_page_should_note_cookie_requirement.mdwn b/doc/bugs/login_page_should_note_cookie_requirement.mdwn
index 32d971548..96686053c 100644
--- a/doc/bugs/login_page_should_note_cookie_requirement.mdwn
+++ b/doc/bugs/login_page_should_note_cookie_requirement.mdwn
@@ -18,12 +18,16 @@ Even better would be to only display the cookie note as a warning if the login p
> time to check if it took, which is both complicated and probably would
> look bad.
+>> Might this be possible client-side with javascript? A quick google suggests it is possible:
+>> . MJR, want to try adding
+>> that? -- [[Will]]
+
Best of all would be to use URL-based or hidden-field-based session tokens if cookies are not permitted.
> This is not very doable since most of the pages the user browses are
> static pages in a static location.
>> The pages that lose data without cookies (the edit pages, primarily)
->> don't look static. Are they really? --[MJR](http://mjr.towers.org.uk)a
+>> don't look static. Are they really? --[MJR](http://mjr.towers.org.uk)
>>> As soon as you post an edit page, you are back to a static website.
--
cgit v1.2.3
From 1ecb72160b1bb6bfa37c7417e398871a381e8771 Mon Sep 17 00:00:00 2001
From: "http://smcv.pseudorandom.co.uk/"
Date: Wed, 19 Nov 2008 05:30:27 -0500
Subject: respond to joey, some more suggestions
---
doc/plugins/contrib/comments.mdwn | 71 +++++++++++++++++++++++++++++++++++++--
1 file changed, 68 insertions(+), 3 deletions(-)
(limited to 'doc')
diff --git a/doc/plugins/contrib/comments.mdwn b/doc/plugins/contrib/comments.mdwn
index 0957e74fa..89566d051 100644
--- a/doc/plugins/contrib/comments.mdwn
+++ b/doc/plugins/contrib/comments.mdwn
@@ -30,10 +30,34 @@ only by direct committers. Currently, comments are always in [[ikiwiki/markdown]
>> enough already. Indeed, this very page would accidentally get matched by rules
>> aiming to control comment-posting... :-) --[[smcv]]
+>> Thinking about it, perhaps one way to address this would be to have the suffix
+>> (e.g. whether commenting on Sandbox creates sandbox/comment1 or sandbox/c1 or
+>> what) be configurable by the wiki admin, in the same way that recentchanges has
+>> recentchangespage => 'recentchanges'? I'd like to see fewer hard-coded page
+>> names in general, really - it seems odd to me that shortcuts and smileys
+>> hard-code the name of the page to look at. Perhaps I could add
+>> discussionpage => 'discussion' too? --[[smcv]]
+
>> The best reason to keep the pages internal seems to me to be that you
>> don't want the overhead of every comment spawning its own wiki page.
>> The worst problem with it though is that you have to assume the pages
->> are mdwn (or `default_pageext`) and not support other formats.
+>> are mdwn (or `default_pageext`) and not support other formats. --[[Joey]]
+
+>> Well, you could always have `comment1._mdwn`, `comment2._creole` etc. and
+>> alter the htmlize logic so that the `mdwn` hook is called for both `mdwn`
+>> and `_mdwn` (assuming this is not already the case). I'm not convinced
+>> that multi-format comments are a killer feature, though - part of the point
+>> of this plugin, in my mind, is that it's less flexible than the full power
+>> of ikiwiki and gives users fewer options. This could be construed
+>> to be a feature, for people who don't care how flexible the technology is
+>> and just want a simple way to leave a comment. The FormattingHelp page
+>> assumes you're writing 100% Markdown in any case...
+>>
+>> Internal pages do too many things, perhaps: they suppress generation of
+>> HTML pages, they disable editing over the web, and they have a different
+>> namespace of htmlize hooks. I think the first two of those are useful
+>> for this plugin, and the last is harmless; you seem to think the first
+>> is useful, and the other two are harmful. --[[smcv]]
>> By the way, I think that who can post comments should be controllable by
>> the existing plugins opendiscussion, anonok, signinedit, and lockedit. Allowing
@@ -41,6 +65,29 @@ only by direct committers. Currently, comments are always in [[ikiwiki/markdown]
>> spam problems. So, use `check_canedit` as at least a first-level check?
>> --[[Joey]]
+>> This plugin already uses `check_canedit`, but that function doesn't have a concept
+>> of different actions. The hack I use is that when a user comments on, say, sandbox,
+>> I call `check_canedit` for the pseudo-page "sandbox[postcomment]". The
+>> special `postcomment(glob)` [[ikiwiki/pagespec]] returns true if the page ends with
+>> "[postcomment]" and the part before (e.g. sandbox) matches the glob. So, you can
+>> have postcomment(blog/*) or something. (Perhaps instead of taking a glob, postcomment
+>> should take a pagespec, so you can have postcomment(link(tags/commentable))?)
+>>
+>> This is why `anonok_pages => 'postcomment(*)'` and `locked_pages => '!postcomment(*)'`
+>> are necessary to allow anonymous and logged-in editing (respectively).
+>>
+>> This is ugly - one alternative would be to add `check_permission()` that takes a
+>> page and a verb (create, edit, rename, remove and maybe comment are the ones I
+>> can think of so far), use that, and port the plugins you mentioned to use that
+>> API too. This plugin could either call `check_can("$page/comment1", 'create')` or
+>> call `check_can($page, 'comment')`.
+>>
+>> One odd effect of the code structure I've used is that we check for the ability to
+>> create the page before we actually know what page name we're going to use - when
+>> posting the comment I just increment a number until I reach an unused one - so
+>> either the code needs restructuring, or the permission check for 'create' would
+>> always be for 'comment1' and never 'comment123'. --[[smcv]]
+
When using this plugin, you should also enable [[htmlscrubber]] and either [[htmltidy]]
or [[htmlbalance]]. Directives are filtered out by default, to avoid commenters slowing
down the wiki by causing time-consuming processing. As long as the recommended plugins
@@ -58,7 +105,10 @@ are enabled, comment authorship should hopefully be unforgeable by CGI users.
>> anything else, at this point.
>>
>> I've rebased the plugin on master, made it sanitize individual posts' content
->> and removed the option to disallow raw HTML. --[[smcv]]
+>> and removed the option to disallow raw HTML. Sanitizing individual posts before
+>> they've been htmlized required me to preserve whitespace in the htmlbalance
+>> plugin, so I did that. Alternatively, we could htmlize immediately and always
+>> save out raw HTML? --[[smcv]]
>> There might be some use cases for other directives, such as img, in
>> comments.
@@ -94,7 +144,20 @@ the comments.
>> rather annoying while this plugin is on a branch). --[[smcv]]
>>> Using the template would allow customising the html around the comments
->>> which seems like a good thing?
+>>> which seems like a good thing? --[[Joey]]
+
+>>> The \[[!comments]] directive is already template-friendly - it expands to
+>>> the contents of the template `comments_embed.tmpl`, possibly with the
+>>> result of an \[[!inline]] appended. I should change `comments_embed.tmpl`
+>>> so it uses a template variable `INLINE` for the inline result rather than
+>>> having the perl code concatenate it, which would allow a bit more
+>>> customization (whether the "post" link was before or after the inline).
+>>> Even if you want comments in page.tmpl, keeping the separate comments_embed.tmpl
+>>> and having a `COMMENTS` variable in page.tmpl might be the way forward,
+>>> since the smaller each templates is, the easier it will be for users
+>>> to maintain a patched set of templates. (I think so, anyway, based on what happens
+>>> with dpkg prompts in Debian packages with monolithic vs split
+>>> conffiles.) --[[smcv]]
The plugin adds a new [[ikiwiki/PageSpec]] match type, `postcomment`, for use
with `anonok_pagespec` from the [[plugins/anonok]] plugin or `locked_pages` from
@@ -121,6 +184,8 @@ Optional parameters to the comments directive:
* `closed=yes`: use this to prevent new comments while still displaying existing ones.
* `atom`, `rss`, `feeds`, `feedshow`, `timeformat`, `feedonly`: the same as for [[plugins/inline]]
+>> I don't think feedonly actually makes sense here, so I'll remove it. --[[smcv]]
+
This plugin aims to close the [[todo]] item "[[todo/supporting_comments_via_disussion_pages]]",
and is currently available from [[smcv]]'s git repository on git.pseudorandom.co.uk (it's the
`postcomment` branch). A demo wiki with the plugin enabled is running at
--
cgit v1.2.3
From 4dc7143b5a020dcc881ea595ac678d3e845b5b9a Mon Sep 17 00:00:00 2001
From: "http://smcv.pseudorandom.co.uk/"
Date: Wed, 19 Nov 2008 05:39:23 -0500
Subject: wishlist from IRC
---
doc/plugins/contrib/comments.mdwn | 9 +++++++++
1 file changed, 9 insertions(+)
(limited to 'doc')
diff --git a/doc/plugins/contrib/comments.mdwn b/doc/plugins/contrib/comments.mdwn
index 89566d051..75a329b51 100644
--- a/doc/plugins/contrib/comments.mdwn
+++ b/doc/plugins/contrib/comments.mdwn
@@ -204,3 +204,12 @@ Known issues:
> I haven't done a detailed code review, but I will say I'm pleased you
> avoided re-implementing inline! --[[Joey]]
+
+Wishlist:
+
+* tbm would like anonymous people to be able to enter their name and possibly email
+ address
+* smcv would like an indication of who you're posting as / the ability to log in
+ as someone else (even if anonymous comments are allowed, it'd be nice to be
+ able to choose to log in with a username or OpenID, like in Livejournal);
+ perhaps editpage needs this too
--
cgit v1.2.3
From d169fcbde8a0334aa6f6f647c1149bf717203cf7 Mon Sep 17 00:00:00 2001
From: essaywriter
Date: Wed, 19 Nov 2008 05:44:09 -0500
Subject:
---
doc/TourBusStop.mdwn | 3 +++
1 file changed, 3 insertions(+)
(limited to 'doc')
diff --git a/doc/TourBusStop.mdwn b/doc/TourBusStop.mdwn
index 8e382bd77..b634079a8 100644
--- a/doc/TourBusStop.mdwn
+++ b/doc/TourBusStop.mdwn
@@ -28,3 +28,6 @@ Famous sights to visit here at **ikiwiki**
* [[ikiwikiusers]]: The list of projects, personal sites, and blogs that use ikiwiki.
* [[plugins]]: See the many ways people have extended ikiwiki.
* [[examples]]: Example sites built using ikiwiki.
+
+Other Websites:
+*Language Translation
--
cgit v1.2.3
From e60b4e3eba0b2b4f2c5bf4d092fc59f6c80b142d Mon Sep 17 00:00:00 2001
From: essaywriter
Date: Wed, 19 Nov 2008 05:57:56 -0500
Subject:
---
doc/TourBusStop.mdwn | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
(limited to 'doc')
diff --git a/doc/TourBusStop.mdwn b/doc/TourBusStop.mdwn
index b634079a8..7979ad6ed 100644
--- a/doc/TourBusStop.mdwn
+++ b/doc/TourBusStop.mdwn
@@ -29,5 +29,11 @@ Famous sights to visit here at **ikiwiki**
* [[plugins]]: See the many ways people have extended ikiwiki.
* [[examples]]: Example sites built using ikiwiki.
-Other Websites:
+
+==========================================
+Ikiwiki TourBus Stop Educational Links:
+
+*Harvard Business School
+*University of Virginia
+*Stanford University
*Language Translation
--
cgit v1.2.3
From 903b7ff5ae020dfd240156957100a2cd3b4c3806 Mon Sep 17 00:00:00 2001
From: essaywriter
Date: Wed, 19 Nov 2008 06:00:34 -0500
Subject:
---
doc/TourBusStop.mdwn | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
(limited to 'doc')
diff --git a/doc/TourBusStop.mdwn b/doc/TourBusStop.mdwn
index 7979ad6ed..4cb75f78f 100644
--- a/doc/TourBusStop.mdwn
+++ b/doc/TourBusStop.mdwn
@@ -30,10 +30,10 @@ Famous sights to visit here at **ikiwiki**
* [[examples]]: Example sites built using ikiwiki.
-==========================================
-Ikiwiki TourBus Stop Educational Links:
-
-*Harvard Business School
-*University of Virginia
-*Stanford University
-*Language Translation
+
--
cgit v1.2.3
From a10533fe7cd72e1c5a3f030c09cef4412b2e83f0 Mon Sep 17 00:00:00 2001
From: "http://schmonz.livejournal.com/"
Date: Wed, 19 Nov 2008 22:52:36 -0500
Subject: does change to ikiwiki.cgi locking help?
---
doc/plugins/contrib/unixauth/discussion.mdwn | 2 ++
1 file changed, 2 insertions(+)
(limited to 'doc')
diff --git a/doc/plugins/contrib/unixauth/discussion.mdwn b/doc/plugins/contrib/unixauth/discussion.mdwn
index dfa4fe6cc..46f86d351 100644
--- a/doc/plugins/contrib/unixauth/discussion.mdwn
+++ b/doc/plugins/contrib/unixauth/discussion.mdwn
@@ -32,3 +32,5 @@ I've added support for [checkpassword](http://cr.yp.to/checkpwd/interface.html),
> to disentangle the two locks. --[[Joey]]
>> Ah, ok, I misunderstood your comment. I'll see what I can figure out. --[[schmonz]]
+
+>>> My time's been limited for this, but I just saw [[todo/avoid_thrashing]]. How does that interact with pwauth or checkpassword? --[[schmonz]]
--
cgit v1.2.3
From 34093ff3105428ab3c3ad8ccccb126366a46db3f Mon Sep 17 00:00:00 2001
From: Joey Hess
Date: Thu, 20 Nov 2008 12:41:26 -0500
Subject: essaywriter: nice try, but your spam was recognised and removed
---
doc/TourBusStop.mdwn | 9 ---------
1 file changed, 9 deletions(-)
(limited to 'doc')
diff --git a/doc/TourBusStop.mdwn b/doc/TourBusStop.mdwn
index 4cb75f78f..8e382bd77 100644
--- a/doc/TourBusStop.mdwn
+++ b/doc/TourBusStop.mdwn
@@ -28,12 +28,3 @@ Famous sights to visit here at **ikiwiki**
* [[ikiwikiusers]]: The list of projects, personal sites, and blogs that use ikiwiki.
* [[plugins]]: See the many ways people have extended ikiwiki.
* [[examples]]: Example sites built using ikiwiki.
-
-
-
--
cgit v1.2.3
From fb4534ddf8727609b05b312bb4f62d180c71b344 Mon Sep 17 00:00:00 2001
From: "http://joey.kitenet.net/"
Date: Thu, 20 Nov 2008 12:42:08 -0500
Subject: test commit
---
doc/sandbox.mdwn | 4 ----
1 file changed, 4 deletions(-)
(limited to 'doc')
diff --git a/doc/sandbox.mdwn b/doc/sandbox.mdwn
index 722e40851..001a838e9 100644
--- a/doc/sandbox.mdwn
+++ b/doc/sandbox.mdwn
@@ -78,10 +78,6 @@ The haiku will change after every save, mind you.
* [[foo]]
* WikiLink
-Test
-
-Ḷét̨'s̀ şė͜e...
-
-----
This SandBox is also a [[blog]]!
--
cgit v1.2.3
From 17659599f3ea76c3c2e88de625e40265a20a93d7 Mon Sep 17 00:00:00 2001
From: Joey Hess
Date: Thu, 20 Nov 2008 12:44:23 -0500
Subject: response
---
doc/plugins/contrib/unixauth/discussion.mdwn | 2 ++
1 file changed, 2 insertions(+)
(limited to 'doc')
diff --git a/doc/plugins/contrib/unixauth/discussion.mdwn b/doc/plugins/contrib/unixauth/discussion.mdwn
index 46f86d351..232649863 100644
--- a/doc/plugins/contrib/unixauth/discussion.mdwn
+++ b/doc/plugins/contrib/unixauth/discussion.mdwn
@@ -34,3 +34,5 @@ I've added support for [checkpassword](http://cr.yp.to/checkpwd/interface.html),
>> Ah, ok, I misunderstood your comment. I'll see what I can figure out. --[[schmonz]]
>>> My time's been limited for this, but I just saw [[todo/avoid_thrashing]]. How does that interact with pwauth or checkpassword? --[[schmonz]]
+
+>>>> The DOS still happens, it just uses less memory. --[[Joey]]
--
cgit v1.2.3
From 3cd0660a44f072c42a7442351c484037aa7f5f0f Mon Sep 17 00:00:00 2001
From: "http://www.iredale.net/b/"
Date: Thu, 20 Nov 2008 18:08:06 -0500
Subject:
---
doc/users/ajt.mdwn | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
create mode 100644 doc/users/ajt.mdwn
(limited to 'doc')
diff --git a/doc/users/ajt.mdwn b/doc/users/ajt.mdwn
new file mode 100644
index 000000000..5d8120ed6
--- /dev/null
+++ b/doc/users/ajt.mdwn
@@ -0,0 +1,20 @@
+[[!meta title="Adam Trickett"]]
+
+# Adam Trickett
+
+## ajt
+
+I'm a long time hacker of sorts, I like to program in Perl on Debian systems but work pays me to program in ABAP (COBOL) on SAP.
+
+I like wikis and I'm currently in love with ikiwiki, having moved my home intranet from a home made template solution to ikiwiki over a weekend. I'm using ikiwiki more like a web content management system (e.g. RedDot) rather than a traditional wiki.
+
+### My Links
+
+* [iredale dot net](http://www.iredale.net/) my web server and main blog
+* [ajt](http://www.perlmonks.org/index.pl?node_id=113686) my Perkmonks home node
+* [ajt](http://use.perl.org/~ajt) my use Perl home
+* [ATRICKETT](http://search.cpan.org/~atrickett/) my CPAN folder
+* [ajt](http://www.debian-administration.org/users/ajt) my Debian-Administration home (good site btw)
+* [drajt](http://www.linkedin.com/in/drajt) my LinkedIn profile
+* [drajt](http://www.slideshare.net/drajt) my "Slidespace" on SlideShare
+* [AdamTrickett](http://www.hants.lug.org.uk/cgi-bin/wiki.pl?AdamTrickett) my wiki page on my LUG's site
--
cgit v1.2.3
From 5c377f477d2cb9c06248e40c01ebe0bdc13ab8b5 Mon Sep 17 00:00:00 2001
From: "http://www.iredale.net/b/"
Date: Thu, 20 Nov 2008 18:14:35 -0500
Subject:
---
doc/ikiwikiusers.mdwn | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'doc')
diff --git a/doc/ikiwikiusers.mdwn b/doc/ikiwikiusers.mdwn
index ac46fcc7f..7d8e41826 100644
--- a/doc/ikiwikiusers.mdwn
+++ b/doc/ikiwikiusers.mdwn
@@ -104,7 +104,7 @@ Personal sites and blogs
* [[JonDowland]]'s [homepage](http://jmtd.net/)
* [[xma]] is using ikiwiki ()
* [[JanWalzer|jwalzer]]'s [homepage](http://wa.lzer.net/) -- Work in Progress
-* [Adam Trickett's home intranet and sanbox system](http://www.iredale.net) -- no wiki component visible yet
+* [[Adam_Trickett|ajt]]'s home intranet/sanbox system ([Internet site & blog](http://www.iredale.net/) -- not ikiwiki yet)
Please feel free to add your own ikiwiki site!
--
cgit v1.2.3
From 7d11e73f5737852d0fc9712741a6ef6561e5709e Mon Sep 17 00:00:00 2001
From: "http://www.iredale.net/b/"
Date: Thu, 20 Nov 2008 18:17:34 -0500
Subject:
---
doc/users/ajt.mdwn | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'doc')
diff --git a/doc/users/ajt.mdwn b/doc/users/ajt.mdwn
index 5d8120ed6..bc47040b6 100644
--- a/doc/users/ajt.mdwn
+++ b/doc/users/ajt.mdwn
@@ -2,7 +2,7 @@
# Adam Trickett
-## ajt
+## "ajt"
I'm a long time hacker of sorts, I like to program in Perl on Debian systems but work pays me to program in ABAP (COBOL) on SAP.
--
cgit v1.2.3
From 37648a4c098b848294115128315600a57b8a834a Mon Sep 17 00:00:00 2001
From: "https://brian.may.myopenid.com//"
Date: Sat, 22 Nov 2008 03:54:48 -0500
Subject: links broken in CSV files
---
doc/bugs/links_misparsed_in_CSV_files.mdwn | 7 +++++++
1 file changed, 7 insertions(+)
create mode 100644 doc/bugs/links_misparsed_in_CSV_files.mdwn
(limited to 'doc')
diff --git a/doc/bugs/links_misparsed_in_CSV_files.mdwn b/doc/bugs/links_misparsed_in_CSV_files.mdwn
new file mode 100644
index 000000000..e356e2229
--- /dev/null
+++ b/doc/bugs/links_misparsed_in_CSV_files.mdwn
@@ -0,0 +1,7 @@
+If a link inside a CSV file contains two or more underscores (\_), then it will get mis-parsed by the table plugin.
+
+e.g. \[[single\_track\_lines]] becomes "em>lines".
+
+Links with only one underscore are OK.
+
+-- Brian May
--
cgit v1.2.3
From 61415acfb84480d4fe4f0952b559deabe12883c6 Mon Sep 17 00:00:00 2001
From: "http://smcv.pseudorandom.co.uk/"
Date: Sat, 22 Nov 2008 13:38:02 -0500
Subject: Unbalanced
appears in some situations, particularly with
htmltidy
---
doc/bugs/stray___60____47__p__62___tags.mdwn | 15 +++++++++++++++
1 file changed, 15 insertions(+)
create mode 100644 doc/bugs/stray___60____47__p__62___tags.mdwn
(limited to 'doc')
diff --git a/doc/bugs/stray___60____47__p__62___tags.mdwn b/doc/bugs/stray___60____47__p__62___tags.mdwn
new file mode 100644
index 000000000..6e508ffda
--- /dev/null
+++ b/doc/bugs/stray___60____47__p__62___tags.mdwn
@@ -0,0 +1,15 @@
+When using the [[plugins/htmltidy]] plugin (and possibly in other circumstances), ikiwiki sometimes creates more `` tags than `
` tags, causing unbalanced markup. I've previously noticed unbalanced tags when a `\[[!map]]` matches no pages. This is part of the reason I developed [[plugins/htmlbalance]].
+
+This is particularly noticeable if htmltidy is enabled when building the docwiki: on the 'contrib' plugin pages, the title becomes `foo
(third-party plugin)` (with the angle-brackets escaped - it seems the text gets sanitized but is then escaped anyway).
+
+I believe that this snippet in `IkiWiki.pm` might be the reason for the imbalance:
+
+ if ($oneline) {
+ # hack to get rid of enclosing junk added by markdown
+ # and other htmlizers
+ $content=~s/^
//i;
+ $content=~s/<\/p>$//i;
+ chomp $content;
+ }
+
+The fact that HTML in a `\[[!meta title]]` is added but then escaped might indicate that some other bug is involved.
--
cgit v1.2.3
From bf808c2f52d3572583d489de8ae6409b879fe685 Mon Sep 17 00:00:00 2001
From: "http://smcv.pseudorandom.co.uk/"
Date: Sun, 23 Nov 2008 13:53:18 -0500
Subject:
---
doc/plugins/contrib/comments.mdwn | 39 ++++++++++++++++++++++++---------------
1 file changed, 24 insertions(+), 15 deletions(-)
(limited to 'doc')
diff --git a/doc/plugins/contrib/comments.mdwn b/doc/plugins/contrib/comments.mdwn
index 75a329b51..1a6e7f465 100644
--- a/doc/plugins/contrib/comments.mdwn
+++ b/doc/plugins/contrib/comments.mdwn
@@ -38,6 +38,8 @@ only by direct committers. Currently, comments are always in [[ikiwiki/markdown]
>> hard-code the name of the page to look at. Perhaps I could add
>> discussionpage => 'discussion' too? --[[smcv]]
+>> (I've now implemented this in my branch. --[[smcv]])
+
>> The best reason to keep the pages internal seems to me to be that you
>> don't want the overhead of every comment spawning its own wiki page.
>> The worst problem with it though is that you have to assume the pages
@@ -88,6 +90,11 @@ only by direct committers. Currently, comments are always in [[ikiwiki/markdown]
>> either the code needs restructuring, or the permission check for 'create' would
>> always be for 'comment1' and never 'comment123'. --[[smcv]]
+>> Another possibility is to just check for permission to edit (e.g.) `sandbox/comment1`.
+>> However, this makes the "comments can only be created, not edited" feature completely
+>> reliant on the fact that internal pages can't be edited. Perhaps there should be a
+>> `editable_pages` pagespec, defaulting to `'*'`?
+
When using this plugin, you should also enable [[htmlscrubber]] and either [[htmltidy]]
or [[htmlbalance]]. Directives are filtered out by default, to avoid commenters slowing
down the wiki by causing time-consuming processing. As long as the recommended plugins
@@ -123,7 +130,7 @@ are enabled, comment authorship should hopefully be unforgeable by CGI users.
When comments have been enabled generally, you still need to mark which pages
can have comments, by including the `\[[!comments]]` directive in them. By default,
this directive expands to a "post a comment" link plus an `\[[!inline]]` with
-the comments.
+the comments. [This requirement has now been removed --[[smcv]]]
> I don't like this, because it's hard to explain to someone why they have
> to insert this into every post to their blog. Seems that the model used
@@ -137,6 +144,9 @@ the comments.
>> as allowing comments.
>>
>>> Yes, I think a pagespec is the way to go. --[[Joey]]
+
+>>> Implemented --[[smcv]]
+
>>
>> The model used for discussion pages does require patching the existing
>> page template, which I was trying to avoid - I'm not convinced that having
@@ -159,6 +169,8 @@ the comments.
>>> with dpkg prompts in Debian packages with monolithic vs split
>>> conffiles.) --[[smcv]]
+>>> I've switched my branch to use page.tmpl instead; see what you think? --[[smcv]]
+
The plugin adds a new [[ikiwiki/PageSpec]] match type, `postcomment`, for use
with `anonok_pagespec` from the [[plugins/anonok]] plugin or `locked_pages` from
the [[plugins/lockedit]] plugin. Typical usage would be something like:
@@ -174,17 +186,18 @@ to allow anonymous comments (the IP address will be used as the "author").
> This is still called postcomment, although I've renamed the rest of the plugin
> to comments as suggested on #ikiwiki --[[smcv]]
-Optional parameters to the comments directive:
-
-* `commit=no`: by default, comments are committed to version control. Use this to
- disable commits.
-* `allowdirectives=yes`: by default, IkiWiki directives are filtered out. Use this
- to allow directives (avoid enabling any [[plugins/type/slow]] directives if you
- do this).
-* `closed=yes`: use this to prevent new comments while still displaying existing ones.
-* `atom`, `rss`, `feeds`, `feedshow`, `timeformat`, `feedonly`: the same as for [[plugins/inline]]
+There are some global options for the setup file:
->> I don't think feedonly actually makes sense here, so I'll remove it. --[[smcv]]
+* comments_shown_pagespec: pages where comments will be displayed inline, e.g. `blog/*`
+ or `*/discussion`.
+* comments_open_pagespec: pages where new comments can be posted, e.g.
+ `blog/* and created_after(close_old_comments)` or `*/discussion`
+* comments_pagename: if this is e.g. `comment_` (the default), then comments on the
+ [[sandbox]] will be called something like `sandbox/comment_12`
+* comments_allowdirectives: if true (default false), comments may contain IkiWiki
+ directives
+* comments_commit: if true (default true), comments will be committed to the version
+ control system
This plugin aims to close the [[todo]] item "[[todo/supporting_comments_via_disussion_pages]]",
and is currently available from [[smcv]]'s git repository on git.pseudorandom.co.uk (it's the
@@ -197,10 +210,6 @@ Known issues:
* The access control via postcomment() is rather strange
* There is some common code cargo-culted from other plugins (notably inline and editpage) which
should probably be shared
-* If the comments directive is removed from a page, comments can still be made on that page,
- and will be committed but not displayed; to disable comments properly you have to set the
- closed="yes" directive parameter (and refresh the wiki), *then* remove the directive if
- desired
> I haven't done a detailed code review, but I will say I'm pleased you
> avoided re-implementing inline! --[[Joey]]
--
cgit v1.2.3
From a8090bfff8efba0f04b0ef547b052d2a13a19083 Mon Sep 17 00:00:00 2001
From: "http://smcv.pseudorandom.co.uk/"
Date: Sun, 23 Nov 2008 13:56:51 -0500
Subject: generalization of recentchanges_link
---
doc/todo/generic___39__do__61__goto__39___for_CGI.mdwn | 9 +++++++++
1 file changed, 9 insertions(+)
create mode 100644 doc/todo/generic___39__do__61__goto__39___for_CGI.mdwn
(limited to 'doc')
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
new file mode 100644
index 000000000..ba484c877
--- /dev/null
+++ b/doc/todo/generic___39__do__61__goto__39___for_CGI.mdwn
@@ -0,0 +1,9 @@
+The [[plugins/recentchanges]] plugin has a `do=recentchanges_link` feature that will
+redirect to a given wiki page, or an error page with a creation link.
+
+In the [[plugins/contrib/comments]] plugin I've found that it would be useful to do
+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.
--
cgit v1.2.3
From 8adc460bb12fb2040197ce1de6e885f74a389b84 Mon Sep 17 00:00:00 2001
From: "https://brian.may.myopenid.com//"
Date: Sun, 23 Nov 2008 19:51:20 -0500
Subject: Update to CSV link issue
---
doc/bugs/links_misparsed_in_CSV_files.mdwn | 2 ++
1 file changed, 2 insertions(+)
(limited to 'doc')
diff --git a/doc/bugs/links_misparsed_in_CSV_files.mdwn b/doc/bugs/links_misparsed_in_CSV_files.mdwn
index e356e2229..54f099935 100644
--- a/doc/bugs/links_misparsed_in_CSV_files.mdwn
+++ b/doc/bugs/links_misparsed_in_CSV_files.mdwn
@@ -4,4 +4,6 @@ e.g. \[[single\_track\_lines]] becomes "em>lines".
Links with only one underscore are OK.
+Update 2008-11-24: The problem only occurs if the CSV data is in an external file. If I load it using data="""...""" then it works fine.
+
-- Brian May
--
cgit v1.2.3
From c807d043aac28502e14becf3b126793d7a5ee20d Mon Sep 17 00:00:00 2001
From: "https://brian.may.myopenid.com//"
Date: Sun, 23 Nov 2008 22:20:54 -0500
Subject: more details
---
doc/bugs/links_misparsed_in_CSV_files.mdwn | 2 ++
1 file changed, 2 insertions(+)
(limited to 'doc')
diff --git a/doc/bugs/links_misparsed_in_CSV_files.mdwn b/doc/bugs/links_misparsed_in_CSV_files.mdwn
index 54f099935..8a137e81c 100644
--- a/doc/bugs/links_misparsed_in_CSV_files.mdwn
+++ b/doc/bugs/links_misparsed_in_CSV_files.mdwn
@@ -6,4 +6,6 @@ Links with only one underscore are OK.
Update 2008-11-24: The problem only occurs if the CSV data is in an external file. If I load it using data="""...""" then it works fine.
+The problem appears to be the call to htmlize inside genrow. If the data is inline, then wikilinks get expanded before they get here, and are OK. If the data is from an external file, the wikilinks aren't expanded, and htmlize will expand \[[single\_track\_lines]] into \[[single<em>track</em>lines]].
+
-- Brian May
--
cgit v1.2.3
From 1fe1d1de1c1a16d92793d9b6c66154c040465937 Mon Sep 17 00:00:00 2001
From: "https://brian.may.myopenid.com//"
Date: Sun, 23 Nov 2008 22:34:22 -0500
Subject: more details
---
doc/bugs/links_misparsed_in_CSV_files.mdwn | 6 ++++++
1 file changed, 6 insertions(+)
(limited to 'doc')
diff --git a/doc/bugs/links_misparsed_in_CSV_files.mdwn b/doc/bugs/links_misparsed_in_CSV_files.mdwn
index 8a137e81c..169c070e7 100644
--- a/doc/bugs/links_misparsed_in_CSV_files.mdwn
+++ b/doc/bugs/links_misparsed_in_CSV_files.mdwn
@@ -8,4 +8,10 @@ Update 2008-11-24: The problem only occurs if the CSV data is in an external fil
The problem appears to be the call to htmlize inside genrow. If the data is inline, then wikilinks get expanded before they get here, and are OK. If the data is from an external file, the wikilinks aren't expanded, and htmlize will expand \[[single\_track\_lines]] into \[[single<em>track</em>lines]].
+Oh, wait, I see the problem. IkiWiki::linkify is only called if the external file doesn't exist. If I remove this check and always call IkiWiki::linkify, then the problem is solved.
+
+(this is inside /usr/share/perl5/IkiWiki/Plugin/table.pm).
+
+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.
+
-- Brian May
--
cgit v1.2.3
From 70ecf4d1ef98d985ba867864abcb4457bae1f2ad Mon Sep 17 00:00:00 2001
From: "http://smcv.pseudorandom.co.uk/"
Date: Mon, 24 Nov 2008 03:51:28 -0500
Subject: Indicate whose offer of a patch this is :-)
---
doc/todo/generic___39__do__61__goto__39___for_CGI.mdwn | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'doc')
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 ba484c877..1828f0a7b 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,4 @@ 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.
+If there's general approval I'm happy to write a patch. --[[smcv]]
--
cgit v1.2.3
From 53af988255ed248d419029e4d5c760f6a4037c5a Mon Sep 17 00:00:00 2001
From: "http://smcv.pseudorandom.co.uk/"
Date: Mon, 24 Nov 2008 04:04:50 -0500
Subject: Suggest ErrorDocument 404 CGI wrapper
---
doc/todo/apache_404_ErrorDocument_handler.mdwn | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
create mode 100644 doc/todo/apache_404_ErrorDocument_handler.mdwn
(limited to 'doc')
diff --git a/doc/todo/apache_404_ErrorDocument_handler.mdwn b/doc/todo/apache_404_ErrorDocument_handler.mdwn
new file mode 100644
index 000000000..b200ff3b2
--- /dev/null
+++ b/doc/todo/apache_404_ErrorDocument_handler.mdwn
@@ -0,0 +1,18 @@
+Apache's ErrorDocument directive lets you write a CGI script that will be invoked for all 404s.
+IkiWiki could offer one as an optional wrapper; it would do much the same thing that the
+existing recentchanges_link (or [[generic___39__do__61__goto__39___for_CGI]]) does when
+encountering a nonexistent page.
+
+I think it'd probably have to be a separate CGI script because the environment with which
+404 handlers are invoked is somewhat odd, and because it needs to return a 404 status
+(having said that, it might make sense for `recentchanges_link` to return 404 rather than
+200 anyway if the page doesn't exist).
+
+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.
+
+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]]
--
cgit v1.2.3
From fbfe1e314c1a9437d9a5ffc1a8c60b6e1f9c8117 Mon Sep 17 00:00:00 2001
From: "http://yam655.livejournal.com/"
Date: Tue, 25 Nov 2008 21:56:45 -0500
Subject: New page
---
doc/users/StevenBlack.mdwn | 5 +++++
1 file changed, 5 insertions(+)
create mode 100644 doc/users/StevenBlack.mdwn
(limited to 'doc')
diff --git a/doc/users/StevenBlack.mdwn b/doc/users/StevenBlack.mdwn
new file mode 100644
index 000000000..ea7a6a97a
--- /dev/null
+++ b/doc/users/StevenBlack.mdwn
@@ -0,0 +1,5 @@
+It feels like there are a lot of people named Steven Black. While I'm just one of many with my name, sometimes it is actually just me and I've forgotten that I had an account somewhere.
+
+I'm not a doctor, though I would certainly trust any doctor, dentist, or philosopher named Steven Black. (There are several.)
+
+I *am* a huge Ikiwiki fan. I've had my eye on it for many years for personal projects (though I never quite got around to installing it). Recently, however, I managed to convince my coworkers that it would be a good idea for an internal wiki. Boy was I right. The thing is practically designed to be the perfect developer-centered wiki.
--
cgit v1.2.3
From c1f7b0af1ce7841a1a9baa831155e51887081be0 Mon Sep 17 00:00:00 2001
From: "http://madduck.net/"
Date: Wed, 26 Nov 2008 04:16:11 -0500
Subject: proper spelling of viruses
---
doc/ikiwiki/pagespec/attachment.mdwn | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'doc')
diff --git a/doc/ikiwiki/pagespec/attachment.mdwn b/doc/ikiwiki/pagespec/attachment.mdwn
index 2d33db748..344a4a734 100644
--- a/doc/ikiwiki/pagespec/attachment.mdwn
+++ b/doc/ikiwiki/pagespec/attachment.mdwn
@@ -9,7 +9,7 @@ configuration setting.
For example, to limit arbitrary files to 50 kilobytes, but allow
larger mp3 files to be uploaded by joey into a specific directory, and
-check all attachments for virii, something like this could be used:
+check all attachments for viruses, something like this could be used:
virusfree() and ((user(joey) and podcast/*.mp3 and mimetype(audio/mpeg) and maxsize(15mb)) or (!ispage() and maxsize(50kb)))
--
cgit v1.2.3
From 0c666558e4b736a62914648e05e54796da25b6d4 Mon Sep 17 00:00:00 2001
From: "http://thm.id.fedoraproject.org/"
Date: Wed, 26 Nov 2008 08:58:52 -0500
Subject:
---
doc/bugs/dumpsetup_does_not_save_destdir.mdwn | 1 +
1 file changed, 1 insertion(+)
create mode 100644 doc/bugs/dumpsetup_does_not_save_destdir.mdwn
(limited to 'doc')
diff --git a/doc/bugs/dumpsetup_does_not_save_destdir.mdwn b/doc/bugs/dumpsetup_does_not_save_destdir.mdwn
new file mode 100644
index 000000000..2f62489af
--- /dev/null
+++ b/doc/bugs/dumpsetup_does_not_save_destdir.mdwn
@@ -0,0 +1 @@
+Calling ikiwiki with a bunch of options, including the --dumpsetup somefile.setup option creates somefile.setup for later reuse with the --setup option. The destination dir however is not saved in the setup file, it has destdir => ''.
--
cgit v1.2.3
From 2e3473d77dba6f6576a3c443bef17e980e51d2f1 Mon Sep 17 00:00:00 2001
From: "http://thm.id.fedoraproject.org/"
Date: Wed, 26 Nov 2008 09:35:14 -0500
Subject:
---
doc/todo/location_of_external_plugins.mdwn | 3 +++
1 file changed, 3 insertions(+)
create mode 100644 doc/todo/location_of_external_plugins.mdwn
(limited to 'doc')
diff --git a/doc/todo/location_of_external_plugins.mdwn b/doc/todo/location_of_external_plugins.mdwn
new file mode 100644
index 000000000..b55bca324
--- /dev/null
+++ b/doc/todo/location_of_external_plugins.mdwn
@@ -0,0 +1,3 @@
+Would it be possible to make the installation location for the external plugins (those talked to via xmlrpc) configurable? Currently, they are installed into (and later expected to be in) /usr/lib/ikiwiki/plugins. For the Fedora package (which I maintain), I move them to /usr/libexec/ikiwiki/plugins. While not covered by the FHS, this seems to be a more appropriate place, see: https://fedoraproject.org/wiki/Packaging/Guidelines#Libexecdir.
+
+As a side note, the accompanying proxy.py might better be placed into some directory on the python path.
--
cgit v1.2.3
From dc31c1100cd58dbe10c1aab10ad2291eaece554a Mon Sep 17 00:00:00 2001
From: "http://thm.id.fedoraproject.org/"
Date: Wed, 26 Nov 2008 10:38:27 -0500
Subject:
---
doc/todo/location_of_ikiwiki-w3m.cgi.mdwn | 1 +
1 file changed, 1 insertion(+)
create mode 100644 doc/todo/location_of_ikiwiki-w3m.cgi.mdwn
(limited to 'doc')
diff --git a/doc/todo/location_of_ikiwiki-w3m.cgi.mdwn b/doc/todo/location_of_ikiwiki-w3m.cgi.mdwn
new file mode 100644
index 000000000..6e1941c91
--- /dev/null
+++ b/doc/todo/location_of_ikiwiki-w3m.cgi.mdwn
@@ -0,0 +1 @@
+The ikiwiki-w3m.cgi script is installed (hard-coded) into /usr/lib/w3m/cgi-bin/. On Fedora however, the w3m package expects it in /usr/libexec/w3m/cgi-bin. So, it would be nice if the destination for this script could be configured.
--
cgit v1.2.3
From da7cc0408d1c2a7a1dc4f1d286c0c85237603f5f Mon Sep 17 00:00:00 2001
From: "http://yam655.livejournal.com/"
Date: Wed, 26 Nov 2008 11:41:27 -0500
Subject: Relative previous months?
---
doc/plugins/calendar/discussion.mdwn | 2 ++
1 file changed, 2 insertions(+)
(limited to 'doc')
diff --git a/doc/plugins/calendar/discussion.mdwn b/doc/plugins/calendar/discussion.mdwn
index 148b83522..49826e4d9 100644
--- a/doc/plugins/calendar/discussion.mdwn
+++ b/doc/plugins/calendar/discussion.mdwn
@@ -2,3 +2,5 @@ It would be nice if the "month" type calendar could collect all of the
matching pages on a given date in some inline type way. --[[DavidBremner]]
Is it possible to get the calendar to link to pages based not on their timestamp (as I understand that it does now, or have I misunderstood this?) and instead on for example their location in a directory hierarchy. That way the calendar could be used as a planning / timeline device which I think would be great. --[[Alexander]]
+
+I would like the ability to specify relative previous months. This way I could have a sidebar with the last three months by specifying no month, then 'month="-1"' and 'month="-2"'. Negative numbers for the month would otherwise be invalid, so this shouldn't produce any conflicts with expected behavior. (Right?) -- [[StevneBlack]]
--
cgit v1.2.3
From 0a15052262b22eb6349a653a2999ec79430a041b Mon Sep 17 00:00:00 2001
From: "http://yam655.livejournal.com/"
Date: Wed, 26 Nov 2008 11:42:10 -0500
Subject:
---
doc/plugins/calendar/discussion.mdwn | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'doc')
diff --git a/doc/plugins/calendar/discussion.mdwn b/doc/plugins/calendar/discussion.mdwn
index 49826e4d9..9d57b7a1e 100644
--- a/doc/plugins/calendar/discussion.mdwn
+++ b/doc/plugins/calendar/discussion.mdwn
@@ -3,4 +3,4 @@ matching pages on a given date in some inline type way. --[[DavidBremner]]
Is it possible to get the calendar to link to pages based not on their timestamp (as I understand that it does now, or have I misunderstood this?) and instead on for example their location in a directory hierarchy. That way the calendar could be used as a planning / timeline device which I think would be great. --[[Alexander]]
-I would like the ability to specify relative previous months. This way I could have a sidebar with the last three months by specifying no month, then 'month="-1"' and 'month="-2"'. Negative numbers for the month would otherwise be invalid, so this shouldn't produce any conflicts with expected behavior. (Right?) -- [[StevneBlack]]
+I would like the ability to specify relative previous months. This way I could have a sidebar with the last three months by specifying no month, then 'month="-1"' and 'month="-2"'. Negative numbers for the month would otherwise be invalid, so this shouldn't produce any conflicts with expected behavior. (Right?) -- [[StevenBlack]]
--
cgit v1.2.3
From 17e4fc51be34b871d8637235c4f1ce064f3bd6fe Mon Sep 17 00:00:00 2001
From: Joey Hess
Date: Wed, 26 Nov 2008 13:24:36 -0500
Subject: link to tip
---
doc/rcs/git.mdwn | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
(limited to 'doc')
diff --git a/doc/rcs/git.mdwn b/doc/rcs/git.mdwn
index 6ba0da894..deddfbd6d 100644
--- a/doc/rcs/git.mdwn
+++ b/doc/rcs/git.mdwn
@@ -124,8 +124,8 @@ ignores the git authorship information, and uses the username of the unix
user who made the commit. Then tests including the `locked_pages` [[PageSpec]]
are checked to see if that user can edit the pages in the commit.
-You can even set up an anonymous user, to allow anyone to push
-changes in via git rather than using the web interface.
+You can even set up an [[anonymous_user|tips/untrusted_git_push]], to allow
+anyone to push changes in via git rather than using the web interface.
## Optionally using a local wiki to preview changes
--
cgit v1.2.3
From 8d2084092ecea30cf7e1dd44ac04f48f90dba5a7 Mon Sep 17 00:00:00 2001
From: "http://joey.kitenet.net/"
Date: Wed, 26 Nov 2008 13:43:08 -0500
Subject: test commit
---
doc/sandbox.mdwn | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'doc')
diff --git a/doc/sandbox.mdwn b/doc/sandbox.mdwn
index 001a838e9..582d46e84 100644
--- a/doc/sandbox.mdwn
+++ b/doc/sandbox.mdwn
@@ -4,7 +4,7 @@ testing 1..2..3!!
----
-Here's a paragraph. สวัสดี
+Here's a paragraph.
The following code block is pre-formatted:
--
cgit v1.2.3
From 30360b3f5349f70dce994f0a6fbc8b71cd7ba708 Mon Sep 17 00:00:00 2001
From: Joey Hess
Date: Thu, 14 Aug 1997 08:26:03 -0400
Subject: add W3M_CGI_BIN setting
---
Makefile.PL | 7 +++++--
doc/todo/location_of_ikiwiki-w3m.cgi.mdwn | 2 ++
2 files changed, 7 insertions(+), 2 deletions(-)
(limited to 'doc')
diff --git a/Makefile.PL b/Makefile.PL
index 2137b9dde..d92d54d1e 100755
--- a/Makefile.PL
+++ b/Makefile.PL
@@ -23,6 +23,9 @@ PROBABLE_INST_LIB=$(shell \\
fi \\
)
+# Additional configurable path variables.
+W3M_CGI_BIN?=$(PREFIX)/lib/w3m/cgi-bin
+
tflag=$(shell if [ -n "$$NOTAINT" ] && [ "$$NOTAINT" != 1 ]; then printf -- "-T"; fi)
extramodules=$(shell if [ "$$PROFILE" = 1 ]; then printf -- "-d:Profile"; fi)
@@ -94,8 +97,8 @@ extra_install:
install -d $(DESTDIR)$(PREFIX)/sbin
install ikiwiki-mass-rebuild $(DESTDIR)$(PREFIX)/sbin
- install -d $(DESTDIR)$(PREFIX)/lib/w3m/cgi-bin
- install ikiwiki-w3m.cgi $(DESTDIR)$(PREFIX)/lib/w3m/cgi-bin
+ install -d $(DESTDIR)$(W3M_CGI_BIN)
+ install ikiwiki-w3m.cgi $(DESTDIR)$(W3M_CGI_BIN)
install -d $(DESTDIR)$(PREFIX)/bin
install ikiwiki.out $(DESTDIR)$(PREFIX)/bin/ikiwiki
diff --git a/doc/todo/location_of_ikiwiki-w3m.cgi.mdwn b/doc/todo/location_of_ikiwiki-w3m.cgi.mdwn
index 6e1941c91..2ccb7b088 100644
--- a/doc/todo/location_of_ikiwiki-w3m.cgi.mdwn
+++ b/doc/todo/location_of_ikiwiki-w3m.cgi.mdwn
@@ -1 +1,3 @@
The ikiwiki-w3m.cgi script is installed (hard-coded) into /usr/lib/w3m/cgi-bin/. On Fedora however, the w3m package expects it in /usr/libexec/w3m/cgi-bin. So, it would be nice if the destination for this script could be configured.
+
+> You can use W3M_CGI_BIN now. [[done]] --[[Joey]]
--
cgit v1.2.3
From 04a03c097a46f28de4b803ef28b33c3dda2c3297 Mon Sep 17 00:00:00 2001
From: Joey Hess
Date: Thu, 14 Aug 1997 08:26:46 -0400
Subject: comment
---
doc/todo/location_of_external_plugins.mdwn | 14 +++++++++++++-
1 file changed, 13 insertions(+), 1 deletion(-)
(limited to 'doc')
diff --git a/doc/todo/location_of_external_plugins.mdwn b/doc/todo/location_of_external_plugins.mdwn
index b55bca324..28b762080 100644
--- a/doc/todo/location_of_external_plugins.mdwn
+++ b/doc/todo/location_of_external_plugins.mdwn
@@ -1,3 +1,15 @@
-Would it be possible to make the installation location for the external plugins (those talked to via xmlrpc) configurable? Currently, they are installed into (and later expected to be in) /usr/lib/ikiwiki/plugins. For the Fedora package (which I maintain), I move them to /usr/libexec/ikiwiki/plugins. While not covered by the FHS, this seems to be a more appropriate place, see: https://fedoraproject.org/wiki/Packaging/Guidelines#Libexecdir.
+Would it be possible to make the installation location for the external
+plugins (those talked to via xmlrpc) configurable? Currently, they are
+installed into (and later expected to be in) /usr/lib/ikiwiki/plugins. For
+the Fedora package (which I maintain), I move them to
+/usr/libexec/ikiwiki/plugins. While not covered by the FHS, this seems to
+be a more appropriate place, see:
+https://fedoraproject.org/wiki/Packaging/Guidelines#Libexecdir.
+
+> This would need to be a build time configuration setting so the directory
+> is built into ikiwiki for use at runtime. --[[Joey]]
As a side note, the accompanying proxy.py might better be placed into some directory on the python path.
+
+> If someone can show how to do so without needing a Setup.py and all the
+> pain that using one entails.. --[[Joey]]
--
cgit v1.2.3
From 91cb55d96b549e3b29afb398a79d15591e39e3aa Mon Sep 17 00:00:00 2001
From: Joey Hess
Date: Thu, 14 Aug 1997 08:31:42 -0400
Subject: Correct --dumpsetup to include the srcdir in the setup file.
---
debian/changelog | 1 +
doc/bugs/dumpsetup_does_not_save_destdir.mdwn | 2 ++
ikiwiki.in | 3 ++-
3 files changed, 5 insertions(+), 1 deletion(-)
(limited to 'doc')
diff --git a/debian/changelog b/debian/changelog
index 39bca7a10..649dfeb0a 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -8,6 +8,7 @@ ikiwiki (2.71) UNRELEASED; urgency=low
* French translation update from Philippe Batailler. Closes: #506250
* Spanish translation update from Victor Moral.
* Fix handling of wrappergroup option.
+ * Correct --dumpsetup to include the srcdir in the setup file.
-- Joey Hess Mon, 17 Nov 2008 14:02:10 -0500
diff --git a/doc/bugs/dumpsetup_does_not_save_destdir.mdwn b/doc/bugs/dumpsetup_does_not_save_destdir.mdwn
index 2f62489af..768c3fc5e 100644
--- a/doc/bugs/dumpsetup_does_not_save_destdir.mdwn
+++ b/doc/bugs/dumpsetup_does_not_save_destdir.mdwn
@@ -1 +1,3 @@
Calling ikiwiki with a bunch of options, including the --dumpsetup somefile.setup option creates somefile.setup for later reuse with the --setup option. The destination dir however is not saved in the setup file, it has destdir => ''.
+
+> that broke in version 2.64 .. fixed [[done]] --[[Joey]]
diff --git a/ikiwiki.in b/ikiwiki.in
index 344b88148..473cbdbfd 100755
--- a/ikiwiki.in
+++ b/ikiwiki.in
@@ -163,7 +163,8 @@ sub main () { #{{{
}
if ($config{dumpsetup}) {
- $config{srdir}=$config{destdir}="";
+ $config{srcdir}="" if ! defined $config{srcdir};
+ $config{destdir}="" if ! defined $config{destdir};
$config{syslog}=1 if $config{setupsyslog};
require IkiWiki::Setup;
IkiWiki::Setup::dump($config{dumpsetup});
--
cgit v1.2.3
From d056a01a55e63388973787c133d27ccd3cc8f4a1 Mon Sep 17 00:00:00 2001
From: "http://smcv.pseudorandom.co.uk/"
Date: Thu, 27 Nov 2008 05:15:00 -0500
Subject: Fix formatting by adding `...`
---
doc/todo/location_of_ikiwiki-w3m.cgi.mdwn | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
(limited to 'doc')
diff --git a/doc/todo/location_of_ikiwiki-w3m.cgi.mdwn b/doc/todo/location_of_ikiwiki-w3m.cgi.mdwn
index 2ccb7b088..8ca925bee 100644
--- a/doc/todo/location_of_ikiwiki-w3m.cgi.mdwn
+++ b/doc/todo/location_of_ikiwiki-w3m.cgi.mdwn
@@ -1,3 +1,3 @@
-The ikiwiki-w3m.cgi script is installed (hard-coded) into /usr/lib/w3m/cgi-bin/. On Fedora however, the w3m package expects it in /usr/libexec/w3m/cgi-bin. So, it would be nice if the destination for this script could be configured.
+The `ikiwiki-w3m.cgi` script is installed (hard-coded) into `/usr/lib/w3m/cgi-bin`. On Fedora however, the w3m package expects it in `/usr/libexec/w3m/cgi-bin`. So, it would be nice if the destination for this script could be configured.
-> You can use W3M_CGI_BIN now. [[done]] --[[Joey]]
+> You can use `W3M_CGI_BIN now`. [[done]] --[[Joey]]
--
cgit v1.2.3
From 7592a6f5b6349ecd6d52d701c2975cb509c98292 Mon Sep 17 00:00:00 2001
From: "http://smcv.pseudorandom.co.uk/"
Date: Thu, 27 Nov 2008 05:26:28 -0500
Subject: I don't think putting proxy.py in the system Python path is
appropriate
---
doc/todo/location_of_external_plugins.mdwn | 9 +++++++++
1 file changed, 9 insertions(+)
(limited to 'doc')
diff --git a/doc/todo/location_of_external_plugins.mdwn b/doc/todo/location_of_external_plugins.mdwn
index 28b762080..c28003e74 100644
--- a/doc/todo/location_of_external_plugins.mdwn
+++ b/doc/todo/location_of_external_plugins.mdwn
@@ -13,3 +13,12 @@ As a side note, the accompanying proxy.py might better be placed into some direc
> If someone can show how to do so without needing a Setup.py and all the
> pain that using one entails.. --[[Joey]]
+
+>> At the very least I don't think proxy.py should be on the `sys.path`
+>> under its current name. If it was renamed to ikiwiki_proxy or some such,
+>> possibly; but I think it's more appropriate to have it in an
+>> ikiwiki-specific directory (a "private module") since it's not useful for
+>> anything outside ikiwiki, and putting it in the same directory as the
+>> external plugins means it's automatically in their `sys.path` without
+>> needing special configuration. --[[smcv]]
+>> (a mostly-inactive member of Debian's Python modules packaging team)
--
cgit v1.2.3
From 7a7f4a3cb60376dc46756e968161acb8e73ff88f Mon Sep 17 00:00:00 2001
From: "http://smcv.pseudorandom.co.uk/"
Date: Thu, 27 Nov 2008 05:38:37 -0500
Subject: Move some discussion from comments page to here
---
doc/plugins/contrib/comments/discussion.mdwn | 139 +++++++++++++++++++++++++++
1 file changed, 139 insertions(+)
create mode 100644 doc/plugins/contrib/comments/discussion.mdwn
(limited to 'doc')
diff --git a/doc/plugins/contrib/comments/discussion.mdwn b/doc/plugins/contrib/comments/discussion.mdwn
new file mode 100644
index 000000000..8f98c1cb5
--- /dev/null
+++ b/doc/plugins/contrib/comments/discussion.mdwn
@@ -0,0 +1,139 @@
+# Why internal pages? (unresolved)
+
+Comments are saved as internal pages, so they can never be edited through the CGI,
+only by direct committers. Currently, comments are always in [[ikiwiki/markdown]].
+
+> So, why do it this way, instead of using regular wiki pages in a
+> namespace, such as `$page/comments/*`? Then you could use [[plugins/lockedit]] to
+> limit editing of comments in more powerful ways. --[[Joey]]
+
+>> Er... I suppose so. I'd assumed that these pages ought to only exist as inlines
+>> rather than as individual pages (same reasoning as aggregated posts), though.
+>>
+>> lockedit is actually somewhat insufficient, since `check_canedit()`
+>> doesn't distinguish between creation and editing; I'd have to continue to use
+>> some sort of odd hack to allow creation but not editing.
+>>
+>> I also can't think of any circumstance where you'd want a user other than
+>> admins (~= git committers) and possibly the commenter (who we can't check for
+>> at the moment anyway, I don't think?) to be able to edit comments - I think
+>> user expectations for something that looks like ordinary blog comments are
+>> likely to include "others can't put words into my mouth".
+>>
+>> My other objection to using a namespace is that I'm not particularly happy about
+>> plugins consuming arbitrary pieces of the wiki namespace - /discussion is bad
+>> enough already. Indeed, this very page would accidentally get matched by rules
+>> aiming to control comment-posting... :-) --[[smcv]]
+
+>>> Thinking about it, perhaps one way to address this would be to have the suffix
+>>> (e.g. whether commenting on Sandbox creates sandbox/comment1 or sandbox/c1 or
+>>> what) be configurable by the wiki admin, in the same way that recentchanges has
+>>> recentchangespage => 'recentchanges'? I'd like to see fewer hard-coded page
+>>> names in general, really - it seems odd to me that shortcuts and smileys
+>>> hard-code the name of the page to look at. Perhaps I could add
+>>> discussionpage => 'discussion' too? --[[smcv]]
+
+>>> (I've now implemented this in my branch. --[[smcv]])
+
+>> The best reason to keep the pages internal seems to me to be that you
+>> don't want the overhead of every comment spawning its own wiki page.
+>> The worst problem with it though is that you have to assume the pages
+>> are mdwn (or `default_pageext`) and not support other formats. --[[Joey]]
+
+>>> Well, you could always have `comment1._mdwn`, `comment2._creole` etc. and
+>>> alter the htmlize logic so that the `mdwn` hook is called for both `mdwn`
+>>> and `_mdwn` (assuming this is not already the case). I'm not convinced
+>>> that multi-format comments are a killer feature, though - part of the point
+>>> of this plugin, in my mind, is that it's less flexible than the full power
+>>> of ikiwiki and gives users fewer options. This could be construed
+>>> to be a feature, for people who don't care how flexible the technology is
+>>> and just want a simple way to leave a comment. The FormattingHelp page
+>>> assumes you're writing 100% Markdown in any case...
+>>>
+>>> Internal pages do too many things, perhaps: they suppress generation of
+>>> HTML pages, they disable editing over the web, and they have a different
+>>> namespace of htmlize hooks. I think the first two of those are useful
+>>> for this plugin, and the last is harmless; you seem to think the first
+>>> is useful, and the other two are harmful. --[[smcv]]
+
+# Access control (unresolved?)
+
+By the way, I think that who can post comments should be controllable by
+the existing plugins opendiscussion, anonok, signinedit, and lockedit. Allowing
+posting comments w/o any login, while a nice capability, can lead to
+spam problems. So, use `check_canedit` as at least a first-level check?
+--[[Joey]]
+
+> This plugin already uses `check_canedit`, but that function doesn't have a concept
+> of different actions. The hack I use is that when a user comments on, say, sandbox,
+> I call `check_canedit` for the pseudo-page "sandbox[postcomment]". The
+> special `postcomment(glob)` [[ikiwiki/pagespec]] returns true if the page ends with
+> "[postcomment]" and the part before (e.g. sandbox) matches the glob. So, you can
+> have postcomment(blog/*) or something. (Perhaps instead of taking a glob, postcomment
+> should take a pagespec, so you can have postcomment(link(tags/commentable))?)
+>
+> This is why `anonok_pages => 'postcomment(*)'` and `locked_pages => '!postcomment(*)'`
+> are necessary to allow anonymous and logged-in editing (respectively).
+>
+> This is ugly - one alternative would be to add `check_permission()` that takes a
+> page and a verb (create, edit, rename, remove and maybe comment are the ones I
+> can think of so far), use that, and port the plugins you mentioned to use that
+> API too. This plugin could either call `check_can("$page/comment1", 'create')` or
+> call `check_can($page, 'comment')`.
+>
+> One odd effect of the code structure I've used is that we check for the ability to
+> create the page before we actually know what page name we're going to use - when
+> posting the comment I just increment a number until I reach an unused one - so
+> either the code needs restructuring, or the permission check for 'create' would
+> always be for 'comment1' and never 'comment123'.
+
+> Another possibility is to just check for permission to edit (e.g.) `sandbox/comment1`.
+> However, this makes the "comments can only be created, not edited" feature completely
+> reliant on the fact that internal pages can't be edited. Perhaps there should be a
+> `editable_pages` pagespec, defaulting to `'*'`? --[[smcv]]
+
+# comments directive vs global setting (resolved?)
+
+When comments have been enabled generally, you still need to mark which pages
+can have comments, by including the `\[[!comments]]` directive in them. By default,
+this directive expands to a "post a comment" link plus an `\[[!inline]]` with
+the comments. [This requirement has now been removed --[[smcv]]]
+
+> I don't like this, because it's hard to explain to someone why they have
+> to insert this into every post to their blog. Seems that the model used
+> for discussion pages could work -- if comments are enabled, automatically
+> add the comment posting form and comments to the end of each page.
+> --[[Joey]]
+
+>> I don't think I'd want comments on *every* page (particularly, not the
+>> front page). Perhaps a pagespec in the setup file, where the default is "*"?
+>> Then control freaks like me could use "link(tags/comments)" and tag pages
+>> as allowing comments.
+>>
+>>> Yes, I think a pagespec is the way to go. --[[Joey]]
+
+>>>> Implemented --[[smcv]]
+
+>>
+>> The model used for discussion pages does require patching the existing
+>> page template, which I was trying to avoid - I'm not convinced that having
+>> every possible feature hard-coded there really scales (and obviously it's
+>> rather annoying while this plugin is on a branch). --[[smcv]]
+
+>>> Using the template would allow customising the html around the comments
+>>> which seems like a good thing? --[[Joey]]
+
+>>>> The \[[!comments]] directive is already template-friendly - it expands to
+>>>> the contents of the template `comments_embed.tmpl`, possibly with the
+>>>> result of an \[[!inline]] appended. I should change `comments_embed.tmpl`
+>>>> so it uses a template variable `INLINE` for the inline result rather than
+>>>> having the perl code concatenate it, which would allow a bit more
+>>>> customization (whether the "post" link was before or after the inline).
+>>>> Even if you want comments in page.tmpl, keeping the separate comments_embed.tmpl
+>>>> and having a `COMMENTS` variable in page.tmpl might be the way forward,
+>>>> since the smaller each templates is, the easier it will be for users
+>>>> to maintain a patched set of templates. (I think so, anyway, based on what happens
+>>>> with dpkg prompts in Debian packages with monolithic vs split
+>>>> conffiles.) --[[smcv]]
+
+>>>>> I've switched my branch to use page.tmpl instead; see what you think? --[[smcv]]
--
cgit v1.2.3
From 92efb9c000825e1f16af4a27c51fb3e82a490a3f Mon Sep 17 00:00:00 2001
From: "http://smcv.pseudorandom.co.uk/"
Date: Thu, 27 Nov 2008 05:39:16 -0500
Subject: Move some discussion to discussion/
---
doc/plugins/contrib/comments.mdwn | 147 ++------------------------------------
1 file changed, 5 insertions(+), 142 deletions(-)
(limited to 'doc')
diff --git a/doc/plugins/contrib/comments.mdwn b/doc/plugins/contrib/comments.mdwn
index 1a6e7f465..891d3dee5 100644
--- a/doc/plugins/contrib/comments.mdwn
+++ b/doc/plugins/contrib/comments.mdwn
@@ -5,96 +5,6 @@ This plugin adds "blog-style" comments. The intention is that on a non-wiki site
(like a blog) you can lock all pages for admin-only access, then allow otherwise
unprivileged (or perhaps even anonymous) users to comment on posts.
-Comments are saved as internal pages, so they can never be edited through the CGI,
-only by direct committers. Currently, comments are always in [[ikiwiki/markdown]].
-
-> So, why do it this way, instead of using regular wiki pages in a
-> namespace, such as `$page/comments/*`? Then you could use [[plugins/lockedit]] to
-> limit editing of comments in more powerful ways. --[[Joey]]
-
->> Er... I suppose so. I'd assumed that these pages ought to only exist as inlines
->> rather than as individual pages (same reasoning as aggregated posts), though.
->>
->> lockedit is actually somewhat insufficient, since `check_canedit()`
->> doesn't distinguish between creation and editing; I'd have to continue to use
->> some sort of odd hack to allow creation but not editing.
->>
->> I also can't think of any circumstance where you'd want a user other than
->> admins (~= git committers) and possibly the commenter (who we can't check for
->> at the moment anyway, I don't think?) to be able to edit comments - I think
->> user expectations for something that looks like ordinary blog comments are
->> likely to include "others can't put words into my mouth".
->>
->> My other objection to using a namespace is that I'm not particularly happy about
->> plugins consuming arbitrary pieces of the wiki namespace - /discussion is bad
->> enough already. Indeed, this very page would accidentally get matched by rules
->> aiming to control comment-posting... :-) --[[smcv]]
-
->> Thinking about it, perhaps one way to address this would be to have the suffix
->> (e.g. whether commenting on Sandbox creates sandbox/comment1 or sandbox/c1 or
->> what) be configurable by the wiki admin, in the same way that recentchanges has
->> recentchangespage => 'recentchanges'? I'd like to see fewer hard-coded page
->> names in general, really - it seems odd to me that shortcuts and smileys
->> hard-code the name of the page to look at. Perhaps I could add
->> discussionpage => 'discussion' too? --[[smcv]]
-
->> (I've now implemented this in my branch. --[[smcv]])
-
->> The best reason to keep the pages internal seems to me to be that you
->> don't want the overhead of every comment spawning its own wiki page.
->> The worst problem with it though is that you have to assume the pages
->> are mdwn (or `default_pageext`) and not support other formats. --[[Joey]]
-
->> Well, you could always have `comment1._mdwn`, `comment2._creole` etc. and
->> alter the htmlize logic so that the `mdwn` hook is called for both `mdwn`
->> and `_mdwn` (assuming this is not already the case). I'm not convinced
->> that multi-format comments are a killer feature, though - part of the point
->> of this plugin, in my mind, is that it's less flexible than the full power
->> of ikiwiki and gives users fewer options. This could be construed
->> to be a feature, for people who don't care how flexible the technology is
->> and just want a simple way to leave a comment. The FormattingHelp page
->> assumes you're writing 100% Markdown in any case...
->>
->> Internal pages do too many things, perhaps: they suppress generation of
->> HTML pages, they disable editing over the web, and they have a different
->> namespace of htmlize hooks. I think the first two of those are useful
->> for this plugin, and the last is harmless; you seem to think the first
->> is useful, and the other two are harmful. --[[smcv]]
-
->> By the way, I think that who can post comments should be controllable by
->> the existing plugins opendiscussion, anonok, signinedit, and lockedit. Allowing
->> posting comments w/o any login, while a nice capability, can lead to
->> spam problems. So, use `check_canedit` as at least a first-level check?
->> --[[Joey]]
-
->> This plugin already uses `check_canedit`, but that function doesn't have a concept
->> of different actions. The hack I use is that when a user comments on, say, sandbox,
->> I call `check_canedit` for the pseudo-page "sandbox[postcomment]". The
->> special `postcomment(glob)` [[ikiwiki/pagespec]] returns true if the page ends with
->> "[postcomment]" and the part before (e.g. sandbox) matches the glob. So, you can
->> have postcomment(blog/*) or something. (Perhaps instead of taking a glob, postcomment
->> should take a pagespec, so you can have postcomment(link(tags/commentable))?)
->>
->> This is why `anonok_pages => 'postcomment(*)'` and `locked_pages => '!postcomment(*)'`
->> are necessary to allow anonymous and logged-in editing (respectively).
->>
->> This is ugly - one alternative would be to add `check_permission()` that takes a
->> page and a verb (create, edit, rename, remove and maybe comment are the ones I
->> can think of so far), use that, and port the plugins you mentioned to use that
->> API too. This plugin could either call `check_can("$page/comment1", 'create')` or
->> call `check_can($page, 'comment')`.
->>
->> One odd effect of the code structure I've used is that we check for the ability to
->> create the page before we actually know what page name we're going to use - when
->> posting the comment I just increment a number until I reach an unused one - so
->> either the code needs restructuring, or the permission check for 'create' would
->> always be for 'comment1' and never 'comment123'. --[[smcv]]
-
->> Another possibility is to just check for permission to edit (e.g.) `sandbox/comment1`.
->> However, this makes the "comments can only be created, not edited" feature completely
->> reliant on the fact that internal pages can't be edited. Perhaps there should be a
->> `editable_pages` pagespec, defaulting to `'*'`?
-
When using this plugin, you should also enable [[htmlscrubber]] and either [[htmltidy]]
or [[htmlbalance]]. Directives are filtered out by default, to avoid commenters slowing
down the wiki by causing time-consuming processing. As long as the recommended plugins
@@ -127,50 +37,6 @@ are enabled, comment authorship should hopefully be unforgeable by CGI users.
>> sensible to allow users to (ab)use them on open wikis.
>> --[[Joey]]
-When comments have been enabled generally, you still need to mark which pages
-can have comments, by including the `\[[!comments]]` directive in them. By default,
-this directive expands to a "post a comment" link plus an `\[[!inline]]` with
-the comments. [This requirement has now been removed --[[smcv]]]
-
-> I don't like this, because it's hard to explain to someone why they have
-> to insert this into every post to their blog. Seems that the model used
-> for discussion pages could work -- if comments are enabled, automatically
-> add the comment posting form and comments to the end of each page.
-> --[[Joey]]
-
->> I don't think I'd want comments on *every* page (particularly, not the
->> front page). Perhaps a pagespec in the setup file, where the default is "*"?
->> Then control freaks like me could use "link(tags/comments)" and tag pages
->> as allowing comments.
->>
->>> Yes, I think a pagespec is the way to go. --[[Joey]]
-
->>> Implemented --[[smcv]]
-
->>
->> The model used for discussion pages does require patching the existing
->> page template, which I was trying to avoid - I'm not convinced that having
->> every possible feature hard-coded there really scales (and obviously it's
->> rather annoying while this plugin is on a branch). --[[smcv]]
-
->>> Using the template would allow customising the html around the comments
->>> which seems like a good thing? --[[Joey]]
-
->>> The \[[!comments]] directive is already template-friendly - it expands to
->>> the contents of the template `comments_embed.tmpl`, possibly with the
->>> result of an \[[!inline]] appended. I should change `comments_embed.tmpl`
->>> so it uses a template variable `INLINE` for the inline result rather than
->>> having the perl code concatenate it, which would allow a bit more
->>> customization (whether the "post" link was before or after the inline).
->>> Even if you want comments in page.tmpl, keeping the separate comments_embed.tmpl
->>> and having a `COMMENTS` variable in page.tmpl might be the way forward,
->>> since the smaller each templates is, the easier it will be for users
->>> to maintain a patched set of templates. (I think so, anyway, based on what happens
->>> with dpkg prompts in Debian packages with monolithic vs split
->>> conffiles.) --[[smcv]]
-
->>> I've switched my branch to use page.tmpl instead; see what you think? --[[smcv]]
-
The plugin adds a new [[ikiwiki/PageSpec]] match type, `postcomment`, for use
with `anonok_pagespec` from the [[plugins/anonok]] plugin or `locked_pages` from
the [[plugins/lockedit]] plugin. Typical usage would be something like:
@@ -183,20 +49,17 @@ to allow non-admin users to comment on pages, but not edit anything. You can als
to allow anonymous comments (the IP address will be used as the "author").
-> This is still called postcomment, although I've renamed the rest of the plugin
-> to comments as suggested on #ikiwiki --[[smcv]]
-
There are some global options for the setup file:
-* comments_shown_pagespec: pages where comments will be displayed inline, e.g. `blog/*`
+* `comments_shown_pagespec`: pages where comments will be displayed inline, e.g. `blog/*`
or `*/discussion`.
-* comments_open_pagespec: pages where new comments can be posted, e.g.
+* `comments_open_pagespec`: pages where new comments can be posted, e.g.
`blog/* and created_after(close_old_comments)` or `*/discussion`
-* comments_pagename: if this is e.g. `comment_` (the default), then comments on the
+* `comments_pagename`: if this is e.g. `comment_` (the default), then comments on the
[[sandbox]] will be called something like `sandbox/comment_12`
-* comments_allowdirectives: if true (default false), comments may contain IkiWiki
+* `comments_allowdirectives`: if true (default false), comments may contain IkiWiki
directives
-* comments_commit: if true (default true), comments will be committed to the version
+* `comments_commit`: if true (default true), comments will be committed to the version
control system
This plugin aims to close the [[todo]] item "[[todo/supporting_comments_via_disussion_pages]]",
--
cgit v1.2.3
From ec03c89f3e01a2b1d374e1ae66d3f5fb0370ca99 Mon Sep 17 00:00:00 2001
From: "http://smcv.pseudorandom.co.uk/"
Date: Thu, 27 Nov 2008 05:42:07 -0500
Subject: Move some more discussion here
---
doc/plugins/contrib/comments/discussion.mdwn | 37 +++++++++++++++++++++++++---
1 file changed, 34 insertions(+), 3 deletions(-)
(limited to 'doc')
diff --git a/doc/plugins/contrib/comments/discussion.mdwn b/doc/plugins/contrib/comments/discussion.mdwn
index 8f98c1cb5..a054dd55d 100644
--- a/doc/plugins/contrib/comments/discussion.mdwn
+++ b/doc/plugins/contrib/comments/discussion.mdwn
@@ -1,4 +1,4 @@
-# Why internal pages? (unresolved)
+## Why internal pages? (unresolved)
Comments are saved as internal pages, so they can never be edited through the CGI,
only by direct committers. Currently, comments are always in [[ikiwiki/markdown]].
@@ -56,7 +56,7 @@ only by direct committers. Currently, comments are always in [[ikiwiki/markdown]
>>> for this plugin, and the last is harmless; you seem to think the first
>>> is useful, and the other two are harmful. --[[smcv]]
-# Access control (unresolved?)
+## Access control (unresolved?)
By the way, I think that who can post comments should be controllable by
the existing plugins opendiscussion, anonok, signinedit, and lockedit. Allowing
@@ -92,7 +92,7 @@ spam problems. So, use `check_canedit` as at least a first-level check?
> reliant on the fact that internal pages can't be edited. Perhaps there should be a
> `editable_pages` pagespec, defaulting to `'*'`? --[[smcv]]
-# comments directive vs global setting (resolved?)
+## comments directive vs global setting (resolved?)
When comments have been enabled generally, you still need to mark which pages
can have comments, by including the `\[[!comments]]` directive in them. By default,
@@ -137,3 +137,34 @@ the comments. [This requirement has now been removed --[[smcv]]]
>>>> conffiles.) --[[smcv]]
>>>>> I've switched my branch to use page.tmpl instead; see what you think? --[[smcv]]
+
+## Raw HTML (resolved?)
+
+Raw HTML was not initially allowed by default (this was configurable).
+
+> I'm not sure that raw html should be a problem, as long as the
+> htmlsanitizer and htmlbalanced plugins are enabled. I can see filtering
+> out directives, as a special case. --[[Joey]]
+
+>> Right, if I sanitize each post individually, with htmlscrubber and either htmltidy
+>> or htmlbalance turned on, then there should be no way the user can forge a comment;
+>> I was initially wary of allowing meta directives, but I think those are OK, as long
+>> as the comment template puts the \[[!meta author]] at the *end*. Disallowing
+>> directives is more a way to avoid commenters causing expensive processing than
+>> anything else, at this point.
+>>
+>> I've rebased the plugin on master, made it sanitize individual posts' content
+>> and removed the option to disallow raw HTML. Sanitizing individual posts before
+>> they've been htmlized required me to preserve whitespace in the htmlbalance
+>> plugin, so I did that. Alternatively, we could htmlize immediately and always
+>> save out raw HTML? --[[smcv]]
+
+>>> There might be some use cases for other directives, such as img, in
+>>> comments.
+>>>
+>>> I don't know if meta is "safe" (ie, guaranteed to be inexpensive and not
+>>> allow users to do annoying things) or if it will continue to be in the
+>>> future. Hard to predict really, all that can be said with certainty is
+>>> all directives will contine to be inexpensive and safe enough that it's
+>>> sensible to allow users to (ab)use them on open wikis.
+>>> --[[Joey]]
--
cgit v1.2.3
From e69095504cb36705494b43d134cea6745755e4ba Mon Sep 17 00:00:00 2001
From: "http://smcv.pseudorandom.co.uk/"
Date: Thu, 27 Nov 2008 05:56:36 -0500
Subject:
---
doc/plugins/contrib/comments.mdwn | 36 ++++++++----------------------------
1 file changed, 8 insertions(+), 28 deletions(-)
(limited to 'doc')
diff --git a/doc/plugins/contrib/comments.mdwn b/doc/plugins/contrib/comments.mdwn
index 891d3dee5..ef067f4d0 100644
--- a/doc/plugins/contrib/comments.mdwn
+++ b/doc/plugins/contrib/comments.mdwn
@@ -10,33 +10,6 @@ or [[htmlbalance]]. Directives are filtered out by default, to avoid commenters
down the wiki by causing time-consuming processing. As long as the recommended plugins
are enabled, comment authorship should hopefully be unforgeable by CGI users.
-> I'm not sure that raw html should be a problem, as long as the
-> htmlsanitizer and htmlbalanced plugins are enabled. I can see filtering
-> out directives, as a special case. --[[Joey]]
-
->> Right, if I sanitize each post individually, with htmlscrubber and either htmltidy
->> or htmlbalance turned on, then there should be no way the user can forge a comment;
->> I was initially wary of allowing meta directives, but I think those are OK, as long
->> as the comment template puts the \[[!meta author]] at the *end*. Disallowing
->> directives is more a way to avoid commenters causing expensive processing than
->> anything else, at this point.
->>
->> I've rebased the plugin on master, made it sanitize individual posts' content
->> and removed the option to disallow raw HTML. Sanitizing individual posts before
->> they've been htmlized required me to preserve whitespace in the htmlbalance
->> plugin, so I did that. Alternatively, we could htmlize immediately and always
->> save out raw HTML? --[[smcv]]
-
->> There might be some use cases for other directives, such as img, in
->> comments.
->>
->> I don't know if meta is "safe" (ie, guaranteed to be inexpensive and not
->> allow users to do annoying things) or if it will continue to be in the
->> future. Hard to predict really, all that can be said with certainty is
->> all directives will contine to be inexpensive and safe enough that it's
->> sensible to allow users to (ab)use them on open wikis.
->> --[[Joey]]
-
The plugin adds a new [[ikiwiki/PageSpec]] match type, `postcomment`, for use
with `anonok_pagespec` from the [[plugins/anonok]] plugin or `locked_pages` from
the [[plugins/lockedit]] plugin. Typical usage would be something like:
@@ -70,9 +43,10 @@ and is currently available from [[smcv]]'s git repository on git.pseudorandom.co
Known issues:
* Needs code review
-* The access control via postcomment() is rather strange
+* The access control via postcomment() is rather strange (see [[discussion]] for more details)
* There is some common code cargo-culted from other plugins (notably inline and editpage) which
should probably be shared
+* Joey doesn't think it should necessarily use internal pages (see [[discussion]])
> I haven't done a detailed code review, but I will say I'm pleased you
> avoided re-implementing inline! --[[Joey]]
@@ -85,3 +59,9 @@ Wishlist:
as someone else (even if anonymous comments are allowed, it'd be nice to be
able to choose to log in with a username or OpenID, like in Livejournal);
perhaps editpage needs this too
+
+Fixed issues:
+
+* Joey didn't think the `\[[!comments]]` directive was appropriate; comments now appear
+ on pages selected with a [[ikiwiki/pagespec]]
+* Joey thought that raw HTML should always be allowed; it now is
--
cgit v1.2.3
From 708ff7870dfb9ae9e3d289f886433b82e016b58f Mon Sep 17 00:00:00 2001
From: "http://hadleywickham.myopenid.com/"
Date: Thu, 27 Nov 2008 18:53:18 -0500
Subject:
---
doc/setup/discussion.mdwn | 7 +++++++
1 file changed, 7 insertions(+)
(limited to 'doc')
diff --git a/doc/setup/discussion.mdwn b/doc/setup/discussion.mdwn
index 7d8c525e7..ba74c5771 100644
--- a/doc/setup/discussion.mdwn
+++ b/doc/setup/discussion.mdwn
@@ -138,3 +138,10 @@ Thanks for your response. You're right. Ubuntu does have ikiwiki, except that it
Anyway, I think I might be able to install it from the tarball I downloaded. I've been reading the discussions, had a look at your screencasts, etc. I will give it another bash. -- [[WillDioneda]]
----
+
+How do I set up cgi editing? In setup I have:
+
+ * cgiurl => 'http://wiki.had.co.nz/edit.cgi'
+ * cgi_wrapper => 'edit.cgi'
+
+But I don't get an edit link on my pages? What am I doing wrong?
--
cgit v1.2.3
From 9986650ecf64820ab091ccfaf81faf2307ce19ee Mon Sep 17 00:00:00 2001
From: Joey Hess
Date: Fri, 28 Nov 2008 17:40:41 -0800
Subject: response
---
doc/setup/discussion.mdwn | 4 ++++
1 file changed, 4 insertions(+)
(limited to 'doc')
diff --git a/doc/setup/discussion.mdwn b/doc/setup/discussion.mdwn
index ba74c5771..3ec123eb5 100644
--- a/doc/setup/discussion.mdwn
+++ b/doc/setup/discussion.mdwn
@@ -145,3 +145,7 @@ How do I set up cgi editing? In setup I have:
* cgi_wrapper => 'edit.cgi'
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]]
--
cgit v1.2.3
From 13d938d3514e929f1c9c7d699908afb1123fd327 Mon Sep 17 00:00:00 2001
From: "http://alcopop.org/me/openid/"
Date: Sat, 29 Nov 2008 09:06:04 -0500
Subject: behaviour of inline with meta-provided times
---
.../inline_sort_order_and_meta_date_value.mdwn | 28 ++++++++++++++++++++++
1 file changed, 28 insertions(+)
create mode 100644 doc/bugs/inline_sort_order_and_meta_date_value.mdwn
(limited to 'doc')
diff --git a/doc/bugs/inline_sort_order_and_meta_date_value.mdwn b/doc/bugs/inline_sort_order_and_meta_date_value.mdwn
new file mode 100644
index 000000000..8aea8d0ac
--- /dev/null
+++ b/doc/bugs/inline_sort_order_and_meta_date_value.mdwn
@@ -0,0 +1,28 @@
+I have a directory containing two files. f1 has
+
+ meta date="2008-07-02 14:13:17"
+
+f2 has
+
+ meta date="2008-07-02 21:04:21"
+
+They have both been modified recently:
+
+ >>> stat(f1)
+ (33188, 459250L, 65027L, 1, 1000, 1000, 1686L, 1227967177, 1227966706, 1227966706)
+ >>> stat(f2)
+ (33188, 458868L, 65027L, 1, 1000, 1000, 938L, 1227967187, 1227966705, 1227966705)
+
+Note that f1 is fractionally newer than f2 in terms of ctime and mtime, but f2 is much newer in terms of the meta information.
+
+Another page includes them both via inline. The inclusion pagespec is not based on date, but on path (and the files are sorted into directories based on their dates)
+
+ inline pages="2008/07/*/*" show=5
+
+The resulting page is rendered with f1 above f2, seemingly not using the meta directive information. The italic-footer in the inline pages does use the correct time e.g. Posted Wed 02 Jul 2008 14:13:17 BST.
+
+If I instead include them using creation_year in the pagespec, they are ordered correctly.
+
+I'm working on importing a blosxom site into ikiwiki. I'll try and reproduce this online.
+
+-- [[JonDowland]]
--
cgit v1.2.3
From b683c70b44e1e646081793209e3a644662a1e9e2 Mon Sep 17 00:00:00 2001
From: "http://alcopop.org/me/openid/"
Date: Sat, 29 Nov 2008 10:19:26 -0500
Subject: update with examples
---
doc/bugs/inline_sort_order_and_meta_date_value.mdwn | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
(limited to 'doc')
diff --git a/doc/bugs/inline_sort_order_and_meta_date_value.mdwn b/doc/bugs/inline_sort_order_and_meta_date_value.mdwn
index 8aea8d0ac..dfb9c6085 100644
--- a/doc/bugs/inline_sort_order_and_meta_date_value.mdwn
+++ b/doc/bugs/inline_sort_order_and_meta_date_value.mdwn
@@ -1,8 +1,8 @@
-I have a directory containing two files. f1 has
+I have a directory containing two files. f1 () has
meta date="2008-07-02 14:13:17"
-f2 has
+f2 () has
meta date="2008-07-02 21:04:21"
@@ -19,10 +19,10 @@ Another page includes them both via inline. The inclusion pagespec is not based
inline pages="2008/07/*/*" show=5
-The resulting page is rendered with f1 above f2, seemingly not using the meta directive information. The italic-footer in the inline pages does use the correct time e.g. Posted Wed 02 Jul 2008 14:13:17 BST.
+The resulting page is rendered with f1 above f2, seemingly not using the meta directive information: . The footer in the inline pages does use the correct time e.g. Posted Wed 02 Jul 2008 14:13:17 BST.
If I instead include them using creation_year in the pagespec, they are ordered correctly.
-I'm working on importing a blosxom site into ikiwiki. I'll try and reproduce this online.
+ contains the src used to reproduce this, the precise ikiwiki invocation (inside Makefile) and the results (dest).
-- [[JonDowland]]
--
cgit v1.2.3
From e156758766e6b729a3314db503c2e2bb334c31a3 Mon Sep 17 00:00:00 2001
From: "http://alcopop.org/me/openid/"
Date: Sat, 29 Nov 2008 10:24:04 -0500
Subject: simplify example
---
doc/bugs/inline_sort_order_and_meta_date_value.mdwn | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
(limited to 'doc')
diff --git a/doc/bugs/inline_sort_order_and_meta_date_value.mdwn b/doc/bugs/inline_sort_order_and_meta_date_value.mdwn
index dfb9c6085..1a88dd514 100644
--- a/doc/bugs/inline_sort_order_and_meta_date_value.mdwn
+++ b/doc/bugs/inline_sort_order_and_meta_date_value.mdwn
@@ -1,8 +1,8 @@
-I have a directory containing two files. f1 () has
+I have a directory containing two files. f1 () has
meta date="2008-07-02 14:13:17"
-f2 () has
+f2 () has
meta date="2008-07-02 21:04:21"
@@ -15,14 +15,14 @@ They have both been modified recently:
Note that f1 is fractionally newer than f2 in terms of ctime and mtime, but f2 is much newer in terms of the meta information.
-Another page includes them both via inline. The inclusion pagespec is not based on date, but on path (and the files are sorted into directories based on their dates)
+Another page includes them both via inline:
- inline pages="2008/07/*/*" show=5
+ inline pages="blog/*" show=5
-The resulting page is rendered with f1 above f2, seemingly not using the meta directive information: . The footer in the inline pages does use the correct time e.g. Posted Wed 02 Jul 2008 14:13:17 BST.
+The resulting page is rendered with f1 above f2, seemingly not using the meta directive information: . The footer in the inline pages does use the correct time e.g. Posted Wed 02 Jul 2008 14:13:17 BST.
If I instead include them using creation_year in the pagespec, they are ordered correctly.
- contains the src used to reproduce this, the precise ikiwiki invocation (inside Makefile) and the results (dest).
+ contains the src used to reproduce this, the precise ikiwiki invocation (inside Makefile) and the results (dest).
-- [[JonDowland]]
--
cgit v1.2.3
From 369f4f86bce31ce82d72d64171dc838c660ca92c Mon Sep 17 00:00:00 2001
From: Jon Dowland
Date: Mon, 1 Dec 2008 15:47:29 +0000
Subject: add note to consider tagbase when trying to match tagged pages
---
doc/ikiwiki/directive/tag.mdwn | 4 ++++
1 file changed, 4 insertions(+)
(limited to 'doc')
diff --git a/doc/ikiwiki/directive/tag.mdwn b/doc/ikiwiki/directive/tag.mdwn
index 267aee660..64736f8cd 100644
--- a/doc/ikiwiki/directive/tag.mdwn
+++ b/doc/ikiwiki/directive/tag.mdwn
@@ -21,6 +21,10 @@ located under a base directory, such as "tags/". This is a useful way to
avoid having to write the full path to tags, if you want to keep them
grouped together out of the way.
+Bear in mind that specifying a tagbase means you will need to incorporate it
+into the `link()` [[ikiwiki/PageSpec]] you use: e.g., if your tagbase is
+`tag`, you would match pages tagged "foo" with `link(tag/foo)`.
+
If you want to override the tagbase for a particular tag, you can use
something like this:
--
cgit v1.2.3
From 1a0147b6b35ae57db9b0e4f4db49e0af24f77a65 Mon Sep 17 00:00:00 2001
From: Blanko
Date: Tue, 2 Dec 2008 08:21:02 -0500
Subject:
---
doc/tips/inside_dot_ikiwiki/discussion.mdwn | 44 +++++++++++++++++++++++++++++
1 file changed, 44 insertions(+)
(limited to 'doc')
diff --git a/doc/tips/inside_dot_ikiwiki/discussion.mdwn b/doc/tips/inside_dot_ikiwiki/discussion.mdwn
index c05e7a3e0..8ff3ad552 100644
--- a/doc/tips/inside_dot_ikiwiki/discussion.mdwn
+++ b/doc/tips/inside_dot_ikiwiki/discussion.mdwn
@@ -16,3 +16,47 @@ No idea how this happened. I've blown it away and recreated it but, for future
>>> --getctime does. --[[Joey]]
>> Alas, I seem to have lost the bad index file to periodic /tmp wiping; I'll send it to you if it happens again. --[[sabr]]
+
+
+
+## Lost password for an user
+
+This morning, a person has lost its password. I was able to do something to make another password. This is the way I take :
+
+### Locate the user database
+
+As tips show us, the user database is in the source file, for an example :
+
+ src/.ikiwiki/userdb
+
+### See which user to modify
+
+Because I don't know the real login of the user, I have to read all the database :
+
+ perl -le 'use Storable; my $index=Storable::retrieve("userdb"); use Data::Dumper; print Dumper $index'
+
+Then I was able to find this :
+
+ 'Utilisateur' => {
+ 'email' => 'user@pl.fr',
+ 'cryptresettoken' => '$2a$10$cfVeOoVbFw9VzMlgEbPMsu34pwHIFP84mWlkrs2RCKknZYPZkPffm',
+ 'password' => '',
+ 'resettoken' => '',
+ 'cryptpassword' => '$2a$10$H8bYq.dlb68wpnfJgVZQhOdsF9JQ06cteRfhPQPB5eHKnD5Y3u7au',
+ 'regdate' => '1226574052'
+ },
+
+Let's have a look to modify lines.
+
+### Modify the line
+
+When you have found the line to modify, take the user name, and change its password to **sc** (for an example) :
+
+ perl -le 'use Storable; my $userinfo=Storable::retrieve("userdb"); $userinfo->{"Utilisateur"}->{cryptpassword}=q{$2a$10$7viOHCrUkdAVL135Kr6one1mpZQ/FWYC773G1yZ0EtQciI11sSDRS}; Storable::lock_nstore($userinfo, "userdb")'
+ perl -le 'use Storable; my $userinfo=Storable::retrieve("userdb"); $userinfo->{"Utilisateur"}->{cryptresettoken}=q{}; Storable::lock_nstore($userinfo, "userdb")'
+
+Because I don't know how suppress cryptresettoken and resettoken fields, I change their content with *null*.
+
+After all these modifications, the user *Utilisateur* could connect to its account with the password **sc**, and go to Preferences, then change its password.
+
+
--
cgit v1.2.3
From 4c1848c3a2f1509f6f34fd50c5f5abdfb302b247 Mon Sep 17 00:00:00 2001
From: "http://alcopop.org/me/openid/"
Date: Tue, 2 Dec 2008 10:00:10 -0500
Subject: rename users/jondowland.mdwn to users/jon.mdwn
---
doc/users/jon.mdwn | 13 +++++++++++++
doc/users/jondowland.mdwn | 13 -------------
2 files changed, 13 insertions(+), 13 deletions(-)
create mode 100644 doc/users/jon.mdwn
delete mode 100644 doc/users/jondowland.mdwn
(limited to 'doc')
diff --git a/doc/users/jon.mdwn b/doc/users/jon.mdwn
new file mode 100644
index 000000000..8bfa3dd76
--- /dev/null
+++ b/doc/users/jon.mdwn
@@ -0,0 +1,13 @@
+I'm looking at ikiwiki both for my personal site but also as a
+team-documentation management system for a small-sized group of UNIX
+sysadmins.
+
+* My [homepage](http://jmtd.net/) is powered by ikiwiki (replacing my [older homepage](http://alcopop.org/), which was a mess of scripts)
+
+I gave a talk at the [UK UNIX User's Group](http://www.ukuug.org/) annual
+[Linux conference](http://www.ukuug.org/events/linux2008/) about organising
+system administrator documentation. Roughly a third of this talk was
+discussing IkiWiki in some technical detail and suggesting it as a good piece
+of software for this task.
+
+ * slides at .
diff --git a/doc/users/jondowland.mdwn b/doc/users/jondowland.mdwn
deleted file mode 100644
index 8bfa3dd76..000000000
--- a/doc/users/jondowland.mdwn
+++ /dev/null
@@ -1,13 +0,0 @@
-I'm looking at ikiwiki both for my personal site but also as a
-team-documentation management system for a small-sized group of UNIX
-sysadmins.
-
-* My [homepage](http://jmtd.net/) is powered by ikiwiki (replacing my [older homepage](http://alcopop.org/), which was a mess of scripts)
-
-I gave a talk at the [UK UNIX User's Group](http://www.ukuug.org/) annual
-[Linux conference](http://www.ukuug.org/events/linux2008/) about organising
-system administrator documentation. Roughly a third of this talk was
-discussing IkiWiki in some technical detail and suggesting it as a good piece
-of software for this task.
-
- * slides at .
--
cgit v1.2.3
From d3984de8a113a28c7806cdfe82c470a22c20dda4 Mon Sep 17 00:00:00 2001
From: "http://alcopop.org/me/openid/"
Date: Tue, 2 Dec 2008 10:00:27 -0500
Subject: update for rename of users/jondowland.mdwn to users/jon.mdwn
---
doc/tips/convert_mediawiki_to_ikiwiki/discussion.mdwn | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'doc')
diff --git a/doc/tips/convert_mediawiki_to_ikiwiki/discussion.mdwn b/doc/tips/convert_mediawiki_to_ikiwiki/discussion.mdwn
index 6e5f1668a..cde761a44 100644
--- a/doc/tips/convert_mediawiki_to_ikiwiki/discussion.mdwn
+++ b/doc/tips/convert_mediawiki_to_ikiwiki/discussion.mdwn
@@ -11,4 +11,4 @@ there are some variations on the approach that might be useful:
Also, some detail on converting mediawiki transclusion to ikiwiki inlines...
--- [[JonDowland]]
+-- [[users/Jon]]
--
cgit v1.2.3
From 157f1842622c0094d1d4625725194feee1b46129 Mon Sep 17 00:00:00 2001
From: "http://alcopop.org/me/openid/"
Date: Tue, 2 Dec 2008 10:00:28 -0500
Subject: update for rename of users/jondowland.mdwn to users/jon.mdwn
---
doc/tips/untrusted_git_push/discussion.mdwn | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
(limited to 'doc')
diff --git a/doc/tips/untrusted_git_push/discussion.mdwn b/doc/tips/untrusted_git_push/discussion.mdwn
index e85625a1b..d95c01ecf 100644
--- a/doc/tips/untrusted_git_push/discussion.mdwn
+++ b/doc/tips/untrusted_git_push/discussion.mdwn
@@ -24,10 +24,10 @@ Note that the user for the commit is 'jon', and the link points at cgi to
create users/jon. I was wondering if that is configurable for users pushing
via git. It would be nice perhaps to specify it in some way, perhaps via a
git-config setting (user.name?). I'm not too familiar with exactly what the
-changeset contains. -- [[JonDowland]]
+changeset contains. -- [[users/Jon]]
> All ikiwiki can do it look at who git has recorded as the author of
> the change (and it looks at the username part of the email address).
> You can set `user.email` in `.git/config`. --[[Joey]]
-> > Ah, excellent. In which case this *should* DTRT... -- [[JonDowland]]
+> > Ah, excellent. In which case this *should* DTRT... -- [[users/Jon]]
--
cgit v1.2.3
From be3d73335ee3bbb2daf672076006470a505a1cf8 Mon Sep 17 00:00:00 2001
From: "http://alcopop.org/me/openid/"
Date: Tue, 2 Dec 2008 10:00:29 -0500
Subject: update for rename of users/jondowland.mdwn to users/jon.mdwn
---
doc/sandbox/castle/discussion/jon_tests_too.mdwn | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'doc')
diff --git a/doc/sandbox/castle/discussion/jon_tests_too.mdwn b/doc/sandbox/castle/discussion/jon_tests_too.mdwn
index 864f38c0d..bc051b008 100644
--- a/doc/sandbox/castle/discussion/jon_tests_too.mdwn
+++ b/doc/sandbox/castle/discussion/jon_tests_too.mdwn
@@ -1,3 +1,3 @@
-I recall testing this too, but I'm not sure where the test went. Let's try again. -- [[JonDowland]]
+I recall testing this too, but I'm not sure where the test went. Let's try again. -- [[users/Jon]]
Context: [[todo/discussion_page_as_blog/discussion/castle]]
--
cgit v1.2.3
From 0053777baeba3199bf326768a837ecfae4b91592 Mon Sep 17 00:00:00 2001
From: "http://alcopop.org/me/openid/"
Date: Tue, 2 Dec 2008 10:00:33 -0500
Subject: update for rename of users/jondowland.mdwn to users/jon.mdwn
---
doc/bugs/textile_plugin_dies_if_input_has_a_non-utf8_character.mdwn | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'doc')
diff --git a/doc/bugs/textile_plugin_dies_if_input_has_a_non-utf8_character.mdwn b/doc/bugs/textile_plugin_dies_if_input_has_a_non-utf8_character.mdwn
index 7ec1edc4e..bdd07210e 100644
--- a/doc/bugs/textile_plugin_dies_if_input_has_a_non-utf8_character.mdwn
+++ b/doc/bugs/textile_plugin_dies_if_input_has_a_non-utf8_character.mdwn
@@ -9,6 +9,6 @@ The first two complaints happen if textile is not loaded, the third fatal one ha
0x92 is "single quote" in the evil windows default codepage. It would be nice to handle this gracefully and not abort ikiwiki at this point, or alternatively, die fatally but mention which input page caused the error.
-Interestingly enough, in my case, the input file has several other bad windows characters (0xFC, u-umlaut) which have not caused ikiwiki to abort. ikiwiki version 2.50. -- [[JonDowland]]
+Interestingly enough, in my case, the input file has several other bad windows characters (0xFC, u-umlaut) which have not caused ikiwiki to abort. ikiwiki version 2.50. -- [[users/Jon]]
> Fixed in git. [[done]] --[[Joey]]
--
cgit v1.2.3
From e7594b33eba69099e9143076f5692cc02f9ca782 Mon Sep 17 00:00:00 2001
From: "http://alcopop.org/me/openid/"
Date: Tue, 2 Dec 2008 10:00:35 -0500
Subject: update for rename of users/jondowland.mdwn to users/jon.mdwn
---
doc/todo/clear_page_to_delete.mdwn | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
(limited to 'doc')
diff --git a/doc/todo/clear_page_to_delete.mdwn b/doc/todo/clear_page_to_delete.mdwn
index 50ae246bb..6bab6ef27 100644
--- a/doc/todo/clear_page_to_delete.mdwn
+++ b/doc/todo/clear_page_to_delete.mdwn
@@ -4,7 +4,7 @@ cleared to be entirely empty (or only have whitespace)? Discuss. --[[Joey]]
I'd say so; yes. A method of deleting pages via the web would be great; I
can't think of a use of keeping blank pages around. What about vandalism --
if someone blanks a page and deletes it and someone else wishes to restore
-it; or is undoing edits via the web a bigger issue? -- [[JonDowland]]
+it; or is undoing edits via the web a bigger issue? -- [[users/Jon]]
Of course there's already a way to delete pages (remove plugin). So the
question is really:
@@ -30,4 +30,4 @@ keyword and if there were no page editions since XX days. Here, I use pages that
can be empty everyday and filled all day long. It does not make sense to me to
delete these pages :). --[[xma]]
-I was not aware of [[plugins/remove]]. I don't think another method is necessary -- [[JonDowland]]
+I was not aware of [[plugins/remove]]. I don't think another method is necessary -- [[users/Jon]]
--
cgit v1.2.3
From 3cf1e3931d6a486dc25d83496c5d88e7760f86f5 Mon Sep 17 00:00:00 2001
From: "http://alcopop.org/me/openid/"
Date: Tue, 2 Dec 2008 10:00:36 -0500
Subject: update for rename of users/jondowland.mdwn to users/jon.mdwn
---
doc/tips/vim_syntax_highlighting/discussion.mdwn | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'doc')
diff --git a/doc/tips/vim_syntax_highlighting/discussion.mdwn b/doc/tips/vim_syntax_highlighting/discussion.mdwn
index 038854b9f..72cb52aab 100644
--- a/doc/tips/vim_syntax_highlighting/discussion.mdwn
+++ b/doc/tips/vim_syntax_highlighting/discussion.mdwn
@@ -1,4 +1,4 @@
-I'm going to look at merging this with potwiki.vim (a vim-based personal wiki) so that you can follow wiki-links and auto-create pages etc., direct from vim. (I'm writing this incase I don't get around to it) -- [[JonDowland]]
+I'm going to look at merging this with potwiki.vim (a vim-based personal wiki) so that you can follow wiki-links and auto-create pages etc., direct from vim. (I'm writing this incase I don't get around to it) -- [[users/Jon]]
----
--
cgit v1.2.3
From 1d55c73d419666b2c936f517ef14ab2262ba8a4f Mon Sep 17 00:00:00 2001
From: "http://alcopop.org/me/openid/"
Date: Tue, 2 Dec 2008 10:00:38 -0500
Subject: update for rename of users/jondowland.mdwn to users/jon.mdwn
---
doc/news/openid/discussion.mdwn | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'doc')
diff --git a/doc/news/openid/discussion.mdwn b/doc/news/openid/discussion.mdwn
index 3d5e9dc22..aa9f3f0be 100644
--- a/doc/news/openid/discussion.mdwn
+++ b/doc/news/openid/discussion.mdwn
@@ -42,7 +42,7 @@ only Apache/iptables rules for this? Maybe it's related to
> Error: /srv/web/ikiwiki.info/todo/Configurable_minimum_length_of_log_message_for_web_edits/index.html independently created, not overwriting with version from todo/Configurable_minimum_length_of_log_message_for_web_edits
-[[jondowland]]
+[[users/jon]]
----
--
cgit v1.2.3
From c4634dfc92485833ca5b2d36c667c7ee6f24f036 Mon Sep 17 00:00:00 2001
From: "http://alcopop.org/me/openid/"
Date: Tue, 2 Dec 2008 10:00:39 -0500
Subject: update for rename of users/jondowland.mdwn to users/jon.mdwn
---
doc/todo/source_link.mdwn | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'doc')
diff --git a/doc/todo/source_link.mdwn b/doc/todo/source_link.mdwn
index 93791c81a..5d6cb89e8 100644
--- a/doc/todo/source_link.mdwn
+++ b/doc/todo/source_link.mdwn
@@ -1,6 +1,6 @@
How about a direct link from the page header to the source of the latest version, to avoid the need to either use edit or navigate to the current version via the history link?
- I'd like this too (and might try to implement it). -- [[jondowland]]
+ I'd like this too (and might try to implement it). -- [[users/jon]]
I just implemented this. There is one [[patch]] to the default page template, and a new plugin. -- [[Will]]
--
cgit v1.2.3
From 391952f3a070a96a15eae844cd2a3a50f4a485dd Mon Sep 17 00:00:00 2001
From: "http://alcopop.org/me/openid/"
Date: Tue, 2 Dec 2008 10:00:40 -0500
Subject: update for rename of users/jondowland.mdwn to users/jon.mdwn
---
doc/bugs/inline_sort_order_and_meta_date_value.mdwn | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'doc')
diff --git a/doc/bugs/inline_sort_order_and_meta_date_value.mdwn b/doc/bugs/inline_sort_order_and_meta_date_value.mdwn
index 1a88dd514..e8befe8d5 100644
--- a/doc/bugs/inline_sort_order_and_meta_date_value.mdwn
+++ b/doc/bugs/inline_sort_order_and_meta_date_value.mdwn
@@ -25,4 +25,4 @@ If I instead include them using creation_year in the pagespec, they are ordered
contains the src used to reproduce this, the precise ikiwiki invocation (inside Makefile) and the results (dest).
--- [[JonDowland]]
+-- [[users/Jon]]
--
cgit v1.2.3
From be3281256baf90130f3ee06faa8bd91ccd7e896b Mon Sep 17 00:00:00 2001
From: "http://alcopop.org/me/openid/"
Date: Tue, 2 Dec 2008 10:00:41 -0500
Subject: update for rename of users/jondowland.mdwn to users/jon.mdwn
---
doc/bugs/Spaces_in_link_text_for_ikiwiki_links.mdwn | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'doc')
diff --git a/doc/bugs/Spaces_in_link_text_for_ikiwiki_links.mdwn b/doc/bugs/Spaces_in_link_text_for_ikiwiki_links.mdwn
index f6dbacad7..8aea5cd29 100644
--- a/doc/bugs/Spaces_in_link_text_for_ikiwiki_links.mdwn
+++ b/doc/bugs/Spaces_in_link_text_for_ikiwiki_links.mdwn
@@ -44,7 +44,7 @@ reported in [[index/discussion#index11h1]].
>>
>> If there was ever a future, syntax-breaking major release of ikiwiki
>> (similar to python3000) I'd like to see this fixed as part of that.
->> --[[JonDowland]]
+>> --[[users/Jon]]
>>> You can enable `prefix_directives` and get the disambiguated behavior
>>> and spaces in wikilinks today. It will become the default in 3.0.
--
cgit v1.2.3
From cd16615a23dc2e1ee22c760210f7065acd7eb1a1 Mon Sep 17 00:00:00 2001
From: "http://alcopop.org/me/openid/"
Date: Tue, 2 Dec 2008 10:00:42 -0500
Subject: update for rename of users/jondowland.mdwn to users/jon.mdwn
---
doc/install/discussion.mdwn | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
(limited to 'doc')
diff --git a/doc/install/discussion.mdwn b/doc/install/discussion.mdwn
index 2b88f6e66..b5757070f 100644
--- a/doc/install/discussion.mdwn
+++ b/doc/install/discussion.mdwn
@@ -172,9 +172,9 @@ Not sure how to provide proper version information for you.--[[vibrog]]
---
-I've tried a couple of times and my cpan has never recognised Bundle::IkiWiki. Is that section of the page still accurate? -- [[JonDowland]]
+I've tried a couple of times and my cpan has never recognised Bundle::IkiWiki. Is that section of the page still accurate? -- [[users/Jon]]
> Are you running perl with the environemnt settings specified on the page?
> Can you show how it fails to find the bundle? --[[Joey]]
->> I was not. Next time I build I will have to try that (I'll need to tweak it as I already override PERL5LIB; also I need to specify http proxies). Thanks for your help! -- [[JonDowland]]
+>> I was not. Next time I build I will have to try that (I'll need to tweak it as I already override PERL5LIB; also I need to specify http proxies). Thanks for your help! -- [[users/Jon]]
--
cgit v1.2.3
From 1d0f30dab0d8490fa5373b9cd73ee5c48fa0a9e4 Mon Sep 17 00:00:00 2001
From: "http://alcopop.org/me/openid/"
Date: Tue, 2 Dec 2008 10:00:43 -0500
Subject: update for rename of users/jondowland.mdwn to users/jon.mdwn
---
doc/forum/discussion.mdwn | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'doc')
diff --git a/doc/forum/discussion.mdwn b/doc/forum/discussion.mdwn
index 1e55d3f57..93cf4656e 100644
--- a/doc/forum/discussion.mdwn
+++ b/doc/forum/discussion.mdwn
@@ -1,4 +1,4 @@
-I like the idea of this forum heirarchy -- but I think a map would be clearer than inlining the sub-pages. -- [[JonDowland]]
+I like the idea of this forum heirarchy -- but I think a map would be clearer than inlining the sub-pages. -- [[users/Jon]]
> The easier way to accomplish this is to set archive=yes in the inline.
> Switching to archive view can be useful when there are a lot of long
--
cgit v1.2.3
From 570eeb65813ee4424276bcf68906366634183fd9 Mon Sep 17 00:00:00 2001
From: "http://alcopop.org/me/openid/"
Date: Tue, 2 Dec 2008 10:00:44 -0500
Subject: update for rename of users/jondowland.mdwn to users/jon.mdwn
---
doc/bugs/markdown_bug:_email_escaping_and_plus_addresses.mdwn | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'doc')
diff --git a/doc/bugs/markdown_bug:_email_escaping_and_plus_addresses.mdwn b/doc/bugs/markdown_bug:_email_escaping_and_plus_addresses.mdwn
index 5c04dce03..6fccc5c86 100644
--- a/doc/bugs/markdown_bug:_email_escaping_and_plus_addresses.mdwn
+++ b/doc/bugs/markdown_bug:_email_escaping_and_plus_addresses.mdwn
@@ -8,7 +8,7 @@ compare:
It seems putting a '+' in there throws it. Maybe it's a markdown bug, or maybe the obfuscation markdown applies to email-links is being caught by the HTML sanitizer.
- -- [[JonDowland]]
+ -- [[users/Jon]]
> It's a markdown bug. For some reason, markdown doesn't recognize the email with a '+' as an email:
>
--
cgit v1.2.3
From e2244e67236a53a4ed5aba83b33c53e35ebc5efd Mon Sep 17 00:00:00 2001
From: "http://alcopop.org/me/openid/"
Date: Tue, 2 Dec 2008 10:00:46 -0500
Subject: update for rename of users/jondowland.mdwn to users/jon.mdwn
---
doc/ikiwikiusers.mdwn | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'doc')
diff --git a/doc/ikiwikiusers.mdwn b/doc/ikiwikiusers.mdwn
index 7d8e41826..263e8583a 100644
--- a/doc/ikiwikiusers.mdwn
+++ b/doc/ikiwikiusers.mdwn
@@ -101,7 +101,7 @@ Personal sites and blogs
* [Olivier Berger's professional homepage](http://www-public.it-sudparis.eu/~berger_o/)
* [Andrey Tarantsov's homepage](http://www.tarantsov.com/)
* [Don Marti's blog](http://zgp.org/~dmarti/)
-* [[JonDowland]]'s [homepage](http://jmtd.net/)
+* [[users/Jon]]'s [homepage](http://jmtd.net/)
* [[xma]] is using ikiwiki ()
* [[JanWalzer|jwalzer]]'s [homepage](http://wa.lzer.net/) -- Work in Progress
* [[Adam_Trickett|ajt]]'s home intranet/sanbox system ([Internet site & blog](http://www.iredale.net/) -- not ikiwiki yet)
--
cgit v1.2.3
From b8fb77b093e2496979b94b3e2b5099e7768cc40c Mon Sep 17 00:00:00 2001
From: "http://alcopop.org/me/openid/"
Date: Tue, 2 Dec 2008 10:00:47 -0500
Subject: update for rename of users/jondowland.mdwn to users/jon.mdwn
---
doc/plugins/write/discussion.mdwn | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'doc')
diff --git a/doc/plugins/write/discussion.mdwn b/doc/plugins/write/discussion.mdwn
index 9a36d7b0b..24a556ffe 100644
--- a/doc/plugins/write/discussion.mdwn
+++ b/doc/plugins/write/discussion.mdwn
@@ -43,4 +43,4 @@ distributed wiki.
---
-I would find this page clearer split up into sub-pages. Does anyone agree/disagree? -- [[JonDowland]]
+I would find this page clearer split up into sub-pages. Does anyone agree/disagree? -- [[users/Jon]]
--
cgit v1.2.3
From fbdbf9eeefffa5fec0bf0a343800bd271409f2e8 Mon Sep 17 00:00:00 2001
From: "http://alcopop.org/me/openid/"
Date: Tue, 2 Dec 2008 10:00:48 -0500
Subject: update for rename of users/jondowland.mdwn to users/jon.mdwn
---
...ugin_should_alert_user_about_an_invalid_pagespec_in_preferences.mdwn | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'doc')
diff --git a/doc/bugs/lockedit_plugin_should_alert_user_about_an_invalid_pagespec_in_preferences.mdwn b/doc/bugs/lockedit_plugin_should_alert_user_about_an_invalid_pagespec_in_preferences.mdwn
index c835d9f98..21eb61df1 100644
--- a/doc/bugs/lockedit_plugin_should_alert_user_about_an_invalid_pagespec_in_preferences.mdwn
+++ b/doc/bugs/lockedit_plugin_should_alert_user_about_an_invalid_pagespec_in_preferences.mdwn
@@ -1,4 +1,4 @@
-[[plugins/lockedit]] adds the form fields for a [[pagespec]] to preferences. This pagespec should be supplied "raw"; i.e., without quotes around it. Inexperienced users (such as [[myself|jondowland]]) may provide an invalid pagespec, such as one with quotes on it. This will be merrily accepted by the form, but will cause no locking to take place.
+[[plugins/lockedit]] adds the form fields for a [[pagespec]] to preferences. This pagespec should be supplied "raw"; i.e., without quotes around it. Inexperienced users (such as [[myself|users/jon]]) may provide an invalid pagespec, such as one with quotes on it. This will be merrily accepted by the form, but will cause no locking to take place.
Perhaps some validation should be performed on the pagespec and the form-submission return include "warning: this pagespec is invalid" or "warning: this pagespec does not match any existing pages" or similar.
--
cgit v1.2.3
From 6e9ec937fadd1b12d13f2fb4a5c7fea20ab4bb13 Mon Sep 17 00:00:00 2001
From: Jon Dowland
Date: Tue, 2 Dec 2008 15:02:24 +0000
Subject: u32.net disappeared
---
doc/tips/convert_mediawiki_to_ikiwiki/discussion.mdwn | 3 +++
1 file changed, 3 insertions(+)
(limited to 'doc')
diff --git a/doc/tips/convert_mediawiki_to_ikiwiki/discussion.mdwn b/doc/tips/convert_mediawiki_to_ikiwiki/discussion.mdwn
index cde761a44..0a332f8ba 100644
--- a/doc/tips/convert_mediawiki_to_ikiwiki/discussion.mdwn
+++ b/doc/tips/convert_mediawiki_to_ikiwiki/discussion.mdwn
@@ -12,3 +12,6 @@ there are some variations on the approach that might be useful:
Also, some detail on converting mediawiki transclusion to ikiwiki inlines...
-- [[users/Jon]]
+
+> "Who knows, the remote site might disappear.". Right now, it appears to
+> have done just that. -- [[users/Jon]]
--
cgit v1.2.3
From 6683a1d76ee95e2686b8ac5f905a823169f5367e Mon Sep 17 00:00:00 2001
From: "http://alcopop.org/me/openid/"
Date: Tue, 2 Dec 2008 10:07:59 -0500
Subject: rename plugin should expand full path of affected pages
---
...name_should_list_the_full_path_to_affected_pages.mdwn | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
create mode 100644 doc/bugs/output_of_successful_rename_should_list_the_full_path_to_affected_pages.mdwn
(limited to 'doc')
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
new file mode 100644
index 000000000..31008cb4c
--- /dev/null
+++ b/doc/bugs/output_of_successful_rename_should_list_the_full_path_to_affected_pages.mdwn
@@ -0,0 +1,16 @@
+I've just renamed a page and received the following as a result:
+
+----
+
+
+Successfully renamed users/jondowland.mdwn to users/jon.mdwn.
+
+
+
+The following pages have been automatically modified to update their links to users/jon.mdwn:
+
...
+
+----
+
+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]]
--
cgit v1.2.3
From 0da57d28de59b74ddcd8d0f2e97efc64592d0a61 Mon Sep 17 00:00:00 2001
From: Jon Dowland
Date: Tue, 2 Dec 2008 15:08:00 +0000
Subject: mark this bug as done
---
...in_should_alert_user_about_an_invalid_pagespec_in_preferences.mdwn | 4 ++++
1 file changed, 4 insertions(+)
(limited to 'doc')
diff --git a/doc/bugs/lockedit_plugin_should_alert_user_about_an_invalid_pagespec_in_preferences.mdwn b/doc/bugs/lockedit_plugin_should_alert_user_about_an_invalid_pagespec_in_preferences.mdwn
index 21eb61df1..b8023ce87 100644
--- a/doc/bugs/lockedit_plugin_should_alert_user_about_an_invalid_pagespec_in_preferences.mdwn
+++ b/doc/bugs/lockedit_plugin_should_alert_user_about_an_invalid_pagespec_in_preferences.mdwn
@@ -15,3 +15,7 @@ Perhaps some validation should be performed on the pagespec and the form-submiss
> There are small classes of invalid pagespecs. For example, `(foo or bar`
> is invalid due to having unbalanced parens, while `foo or and bar`
> has invalid syntax. It's possible to detect these, I guess ... --[[Joey]]
+
+>> Having moved it to the .setup file makes things more obvious I think.
+>> Anyway I consider this [[done]], please de-done this if you disagree.
+>> --[[Jon]]
--
cgit v1.2.3
From 9e5f5a661e72be74094dac520f4871c2b4e13449 Mon Sep 17 00:00:00 2001
From: Jon Dowland
Date: Tue, 2 Dec 2008 15:12:13 +0000
Subject: remove hoz-rule from bug, for clarity
---
...successful_rename_should_list_the_full_path_to_affected_pages.mdwn | 4 ----
1 file changed, 4 deletions(-)
(limited to 'doc')
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 31008cb4c..2d9677e7f 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
@@ -1,7 +1,5 @@
I've just renamed a page and received the following as a result:
-----
-
Successfully renamed users/jondowland.mdwn to users/jon.mdwn.
@@ -11,6 +9,4 @@ The following pages have been automatically modified to update their links to us
...
-----
-
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]]
--
cgit v1.2.3
From 6edf1126d7c104b9eee3ea60e05fba47a53d0f71 Mon Sep 17 00:00:00 2001
From: "http://alcopop.org/me/openid/"
Date: Tue, 2 Dec 2008 10:25:44 -0500
Subject: provide for ignoring h1s etc. in toc
---
...gin:_set_a_header_ceiling___40__opposite_of_levels__61____41__.mdwn | 3 +++
1 file changed, 3 insertions(+)
create mode 100644 doc/todo/toc_plugin:_set_a_header_ceiling___40__opposite_of_levels__61____41__.mdwn
(limited to 'doc')
diff --git a/doc/todo/toc_plugin:_set_a_header_ceiling___40__opposite_of_levels__61____41__.mdwn b/doc/todo/toc_plugin:_set_a_header_ceiling___40__opposite_of_levels__61____41__.mdwn
new file mode 100644
index 000000000..547c7a80a
--- /dev/null
+++ b/doc/todo/toc_plugin:_set_a_header_ceiling___40__opposite_of_levels__61____41__.mdwn
@@ -0,0 +1,3 @@
+It would be nice if the [[plugins/toc]] plugin let you specify a header level "ceiling" above which (or above and including which) the headers would not be incorporated into the toc.
+
+Currently, the levels=X parameter lets you tweak how deep it will go for small headers, but I'd like to chop off the h1's (as I use them for my page title) -- [[Jon]]
--
cgit v1.2.3
From 0d27e0e329a607a2a97306efc14d4a3cc6d194e3 Mon Sep 17 00:00:00 2001
From: Jon Dowland
Date: Tue, 2 Dec 2008 15:25:44 +0000
Subject: my edits...
---
doc/users/jon.mdwn | 2 ++
1 file changed, 2 insertions(+)
(limited to 'doc')
diff --git a/doc/users/jon.mdwn b/doc/users/jon.mdwn
index 8bfa3dd76..1d06940fe 100644
--- a/doc/users/jon.mdwn
+++ b/doc/users/jon.mdwn
@@ -2,6 +2,8 @@ I'm looking at ikiwiki both for my personal site but also as a
team-documentation management system for a small-sized group of UNIX
sysadmins.
+* my edits should appear either as 'Jon' (if I've used
+ [[tips/untrusted git push]]) or 'alcopop.org/me/openid/'.
* My [homepage](http://jmtd.net/) is powered by ikiwiki (replacing my [older homepage](http://alcopop.org/), which was a mess of scripts)
I gave a talk at the [UK UNIX User's Group](http://www.ukuug.org/) annual
--
cgit v1.2.3
From fa72896cdc1c638095d25c8526107b0f07498282 Mon Sep 17 00:00:00 2001
From: "http://alcopop.org/me/openid/"
Date: Tue, 2 Dec 2008 17:18:43 -0500
Subject: correct wikilink
---
doc/users/jon.mdwn | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'doc')
diff --git a/doc/users/jon.mdwn b/doc/users/jon.mdwn
index 1d06940fe..72f04e593 100644
--- a/doc/users/jon.mdwn
+++ b/doc/users/jon.mdwn
@@ -3,7 +3,7 @@ team-documentation management system for a small-sized group of UNIX
sysadmins.
* my edits should appear either as 'Jon' (if I've used
- [[tips/untrusted git push]]) or 'alcopop.org/me/openid/'.
+ [[tips/untrusted_git_push]]) or 'alcopop.org/me/openid/'.
* My [homepage](http://jmtd.net/) is powered by ikiwiki (replacing my [older homepage](http://alcopop.org/), which was a mess of scripts)
I gave a talk at the [UK UNIX User's Group](http://www.ukuug.org/) annual
--
cgit v1.2.3
From fa130859dc6d2f6912b68d353f68d330893d014b Mon Sep 17 00:00:00 2001
From: Joey Hess
Date: Wed, 3 Dec 2008 15:37:48 -0500
Subject: response
---
doc/tips/inside_dot_ikiwiki/discussion.mdwn | 3 +++
1 file changed, 3 insertions(+)
(limited to 'doc')
diff --git a/doc/tips/inside_dot_ikiwiki/discussion.mdwn b/doc/tips/inside_dot_ikiwiki/discussion.mdwn
index 8ff3ad552..34d5b9252 100644
--- a/doc/tips/inside_dot_ikiwiki/discussion.mdwn
+++ b/doc/tips/inside_dot_ikiwiki/discussion.mdwn
@@ -23,6 +23,9 @@ No idea how this happened. I've blown it away and recreated it but, for future
This morning, a person has lost its password. I was able to do something to make another password. This is the way I take :
+> You can certianly do that, but do note that ikiwiki will offer to mail a
+> user a password reset link if they lost their password. --[[Joey]]
+
### Locate the user database
As tips show us, the user database is in the source file, for an example :
--
cgit v1.2.3
From 0ea00036db93e696c6b4fd58afbfd67d4c020c46 Mon Sep 17 00:00:00 2001
From: o
Date: Thu, 4 Dec 2008 15:34:12 -0500
Subject:
---
doc/examples/blog/posts/oh.mdwn | 1 +
1 file changed, 1 insertion(+)
create mode 100644 doc/examples/blog/posts/oh.mdwn
(limited to 'doc')
diff --git a/doc/examples/blog/posts/oh.mdwn b/doc/examples/blog/posts/oh.mdwn
new file mode 100644
index 000000000..9daeafb98
--- /dev/null
+++ b/doc/examples/blog/posts/oh.mdwn
@@ -0,0 +1 @@
+test
--
cgit v1.2.3
From 1c9881cf89e47e58ec99638aea421ca5e4e5b986 Mon Sep 17 00:00:00 2001
From: Joey Hess
Date: Thu, 4 Dec 2008 16:23:41 -0500
Subject: remove clutter in example blog
---
doc/examples/blog/posts/oh.mdwn | 1 -
1 file changed, 1 deletion(-)
delete mode 100644 doc/examples/blog/posts/oh.mdwn
(limited to 'doc')
diff --git a/doc/examples/blog/posts/oh.mdwn b/doc/examples/blog/posts/oh.mdwn
deleted file mode 100644
index 9daeafb98..000000000
--- a/doc/examples/blog/posts/oh.mdwn
+++ /dev/null
@@ -1 +0,0 @@
-test
--
cgit v1.2.3
From 1506638f15797cc13155abfd8adb6ee34c0697bd Mon Sep 17 00:00:00 2001
From: buo
Date: Fri, 5 Dec 2008 14:27:29 -0500
Subject: Add command line to install perl modules in ubuntu 8.10
---
doc/install.mdwn | 6 ++++++
1 file changed, 6 insertions(+)
(limited to 'doc')
diff --git a/doc/install.mdwn b/doc/install.mdwn
index d745737aa..4d4bd08ec 100644
--- a/doc/install.mdwn
+++ b/doc/install.mdwn
@@ -28,6 +28,12 @@ on Fedora 7:
perl-XML-Simple perl-TimeDate perl-HTML-Template perl-CGI-FormBuilder \
perl-CGI-Session perl-File-MimeInfo perl-gettext perl-Authen-Passphrase
+And in Ubuntu Intrepid:
+
+ apt-get install libtext-markdown-perl libhtml-scrubber-perl libxml-simple-perl \
+ libtimedate-perl libhtml-template-perl libcgi-formbuilder-perl libcgi-session-perl \
+ libfile-mimeinfo-perl liblocale-gettext-perl libauthen-passphrase-perl
+
### Installing dependencies by hand
If you want to install by hand from the tarball, you should make sure that
--
cgit v1.2.3
From e6e8d906d13313a34320c3de20254077e4f25a97 Mon Sep 17 00:00:00 2001
From: Joey Hess
Date: Sun, 7 Dec 2008 13:45:50 -0500
Subject: remove ubuntu instructions, which don't belong here
1. apt-get is not yum
2. installing ikiwiki by hand is not the correct thing to do on ubuntu,
so this page should not mention ubuntu
Also remove instructions for installing deps via yum, now that there is a
ikiwiki package in fedora.
---
doc/install.mdwn | 15 ---------------
1 file changed, 15 deletions(-)
(limited to 'doc')
diff --git a/doc/install.mdwn b/doc/install.mdwn
index 4d4bd08ec..cc3a4c29f 100644
--- a/doc/install.mdwn
+++ b/doc/install.mdwn
@@ -19,21 +19,6 @@ they are available.
Various [[plugins]] use other perl modules and utilities; see their individual
documentation for details.
-### Installing dependencies with yum
-
-Here's an example of how to install ikiwiki's dependencies using yum
-on Fedora 7:
-
- yum install perl-Text-Markdown perl-Mail-Sendmail perl-HTML-Scrubber \
- perl-XML-Simple perl-TimeDate perl-HTML-Template perl-CGI-FormBuilder \
- perl-CGI-Session perl-File-MimeInfo perl-gettext perl-Authen-Passphrase
-
-And in Ubuntu Intrepid:
-
- apt-get install libtext-markdown-perl libhtml-scrubber-perl libxml-simple-perl \
- libtimedate-perl libhtml-template-perl libcgi-formbuilder-perl libcgi-session-perl \
- libfile-mimeinfo-perl liblocale-gettext-perl libauthen-passphrase-perl
-
### Installing dependencies by hand
If you want to install by hand from the tarball, you should make sure that
--
cgit v1.2.3
From 28ddf3280f502bedb2da387dc00b2e0de34df166 Mon Sep 17 00:00:00 2001
From: "http://www.iredale.net/b/"
Date: Sun, 7 Dec 2008 17:57:49 -0500
Subject:
---
doc/todo/replace_HTML::Template_with_Template_Toolkit.mdwn | 2 ++
1 file changed, 2 insertions(+)
(limited to 'doc')
diff --git a/doc/todo/replace_HTML::Template_with_Template_Toolkit.mdwn b/doc/todo/replace_HTML::Template_with_Template_Toolkit.mdwn
index dfeacbabd..3b9f6c0fd 100644
--- a/doc/todo/replace_HTML::Template_with_Template_Toolkit.mdwn
+++ b/doc/todo/replace_HTML::Template_with_Template_Toolkit.mdwn
@@ -54,3 +54,5 @@ the templates. I'd prefer not having to touch Perl though...
-----
Yes, Template::Toolkit is very powerful. But I think it's somehow overkill for a wiki. HTML::Template can keep things simple, though. --[weakish](http://weakish.int.eu.org/blog/)
+
+I'd have to agree that Template::Toolkit is overkill and personally I'm not a fan, but it is very popular (there is even a book) and the new version (3) is alleged to be much more nimble than current version. --[[ajt]]
--
cgit v1.2.3
From a6b9fadc9a06b669e367dcde5f9d52570efa245e Mon Sep 17 00:00:00 2001
From: "http://john.choffee.co.uk/"
Date: Tue, 9 Dec 2008 08:27:59 -0500
Subject: Fixed the pagespec link
---
doc/plugins/htmlscrubber.mdwn | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'doc')
diff --git a/doc/plugins/htmlscrubber.mdwn b/doc/plugins/htmlscrubber.mdwn
index 7db372e1b..b9f7e6d22 100644
--- a/doc/plugins/htmlscrubber.mdwn
+++ b/doc/plugins/htmlscrubber.mdwn
@@ -32,7 +32,7 @@ other HTML-related functionality, such as whether [[meta]] allows
potentially unsafe HTML tags.
The `htmlscrubber_skip` configuration setting can be used to skip scrubbing
-of some pages. Set it to a [[PageSpec]], such as "!*/Discussion", and pages
+of some pages. Set it to a [[ikiwiki/PageSpec]], such as "!*/Discussion", and pages
matching that can have all the evil CSS, JavsScript, and unsafe html
elements you like. One safe way to use this is to use [[lockedit]] to lock
those pages, so only admins can edit them.
--
cgit v1.2.3
From 570eedd7f4faa08cdf78597a8825a6ca704f978f Mon Sep 17 00:00:00 2001
From: "http://beza1e1.tuxen.de/"
Date: Tue, 9 Dec 2008 16:58:15 -0500
Subject: Arch Linux packaged
---
doc/download.mdwn | 2 ++
1 file changed, 2 insertions(+)
(limited to 'doc')
diff --git a/doc/download.mdwn b/doc/download.mdwn
index 86ddb46b2..1099045b5 100644
--- a/doc/download.mdwn
+++ b/doc/download.mdwn
@@ -40,6 +40,8 @@ Gentoo has an [ebuild](http://bugs.gentoo.org/show_bug.cgi?id=144453) in its bug
IkiWiki can be installed [from macports](http://www.macports.org/ports.php?by=name&substr=ikiwiki)
by running `sudo port install ikiwiki`.
+A [PKGBUILD for Arch Linux](http://aur.archlinux.org/packages.php?ID=12284) is in the AUR.
+
## revision control
Ikiwiki is developed in a [[git_repository|git]].
--
cgit v1.2.3
From d6b87bd25ec6f466c6d3c486b4e923377ad8ee2a Mon Sep 17 00:00:00 2001
From: "http://smcv.pseudorandom.co.uk/"
Date: Wed, 10 Dec 2008 21:44:50 -0500
Subject: Update with today's changes
---
doc/plugins/contrib/comments.mdwn | 36 ++++++++++++++++++++++++++----------
1 file changed, 26 insertions(+), 10 deletions(-)
(limited to 'doc')
diff --git a/doc/plugins/contrib/comments.mdwn b/doc/plugins/contrib/comments.mdwn
index ef067f4d0..a7a509ebb 100644
--- a/doc/plugins/contrib/comments.mdwn
+++ b/doc/plugins/contrib/comments.mdwn
@@ -34,10 +34,28 @@ There are some global options for the setup file:
directives
* `comments_commit`: if true (default true), comments will be committed to the version
control system
+* `comments_allowauthor`: if true (default false), anonymous commenters may specify a
+ name for themselves, and the \[[!meta author]] and \[[!meta authorurl]] directives
+ will not be overridden by the comments plugin
+
+Templates that will display comments (by default that means `comments_display.tmpl`)
+can use the following additional ``s:
+
+* `COMMENTUSER`: the authenticated/verified user name, or undefined if the user was not signed in
+* `COMMENTIP`: the remote IP address, or undefined if not known (this is not currently recorded
+ for users who are signed in, who are assumed to be vaguely accountable)
+* `COMMENTAUTHOR`: a "prettier" version of the authenticated/verified user name (e.g. OpenIDs are
+ formatted the same way as in [[RecentChanges]]), or the result of localizing "Anonymous" if the
+ user was not signed in
+* `COMMENTAUTHORURL`: if the user was signed in with an OpenID, that URL; if the user was signed
+ in with some other username, a CGI URL that redirects to their user page (if any)
+
+This plugin also adds a `\[[!comment]]` directive which is used when storing comments. This
+directive shouldn't be used on pages that are edited in the usual way.
This plugin aims to close the [[todo]] item "[[todo/supporting_comments_via_disussion_pages]]",
and is currently available from [[smcv]]'s git repository on git.pseudorandom.co.uk (it's the
-`postcomment` branch). A demo wiki with the plugin enabled is running at
+`comments-rebase1` branch). A demo wiki with the plugin enabled is running at
.
Known issues:
@@ -47,21 +65,19 @@ Known issues:
* There is some common code cargo-culted from other plugins (notably inline and editpage) which
should probably be shared
* Joey doesn't think it should necessarily use internal pages (see [[discussion]])
+* `\[[!comment]]` should perhaps be `\[[!_comment]], or a special filter/htmlize hook rather
+ than being a directive at all
> I haven't done a detailed code review, but I will say I'm pleased you
> avoided re-implementing inline! --[[Joey]]
-Wishlist:
-
-* tbm would like anonymous people to be able to enter their name and possibly email
- address
-* smcv would like an indication of who you're posting as / the ability to log in
- as someone else (even if anonymous comments are allowed, it'd be nice to be
- able to choose to log in with a username or OpenID, like in Livejournal);
- perhaps editpage needs this too
-
Fixed issues:
* Joey didn't think the `\[[!comments]]` directive was appropriate; comments now appear
on pages selected with a [[ikiwiki/pagespec]]
* Joey thought that raw HTML should always be allowed; it now is
+* tbm wanted anonymous people to be able to enter their name and possibly email
+ address; a name and website can now be supplied
+* There is now an indication of who you're signed in as
+* Each comment is now one big \[[!comment]] directive invocation, avoiding previous
+ issues with unambiguous and un-spoofable metadata
--
cgit v1.2.3
From 59c29b532e5bb728cd7c6fa62642cdeeef369ad7 Mon Sep 17 00:00:00 2001
From: "http://smcv.pseudorandom.co.uk/"
Date: Wed, 10 Dec 2008 21:50:15 -0500
Subject: multiple formats now supported
---
doc/plugins/contrib/comments/discussion.mdwn | 32 ++++++++++------------------
1 file changed, 11 insertions(+), 21 deletions(-)
(limited to 'doc')
diff --git a/doc/plugins/contrib/comments/discussion.mdwn b/doc/plugins/contrib/comments/discussion.mdwn
index a054dd55d..59740ec37 100644
--- a/doc/plugins/contrib/comments/discussion.mdwn
+++ b/doc/plugins/contrib/comments/discussion.mdwn
@@ -1,7 +1,7 @@
## Why internal pages? (unresolved)
Comments are saved as internal pages, so they can never be edited through the CGI,
-only by direct committers. Currently, comments are always in [[ikiwiki/markdown]].
+only by direct committers.
> So, why do it this way, instead of using regular wiki pages in a
> namespace, such as `$page/comments/*`? Then you could use [[plugins/lockedit]] to
@@ -36,25 +36,13 @@ only by direct committers. Currently, comments are always in [[ikiwiki/markdown]
>>> (I've now implemented this in my branch. --[[smcv]])
>> The best reason to keep the pages internal seems to me to be that you
->> don't want the overhead of every comment spawning its own wiki page.
->> The worst problem with it though is that you have to assume the pages
->> are mdwn (or `default_pageext`) and not support other formats. --[[Joey]]
-
->>> Well, you could always have `comment1._mdwn`, `comment2._creole` etc. and
->>> alter the htmlize logic so that the `mdwn` hook is called for both `mdwn`
->>> and `_mdwn` (assuming this is not already the case). I'm not convinced
->>> that multi-format comments are a killer feature, though - part of the point
->>> of this plugin, in my mind, is that it's less flexible than the full power
->>> of ikiwiki and gives users fewer options. This could be construed
->>> to be a feature, for people who don't care how flexible the technology is
->>> and just want a simple way to leave a comment. The FormattingHelp page
->>> assumes you're writing 100% Markdown in any case...
->>>
->>> Internal pages do too many things, perhaps: they suppress generation of
->>> HTML pages, they disable editing over the web, and they have a different
->>> namespace of htmlize hooks. I think the first two of those are useful
->>> for this plugin, and the last is harmless; you seem to think the first
->>> is useful, and the other two are harmful. --[[smcv]]
+>> don't want the overhead of every comment spawning its own wiki page. --[[Joey]]
+
+## Formats (resolved)
+
+The plugin now allows multiple comment formats while still using internal
+pages; each comment is saved as a page containing one `\[[!comment]]` directive,
+which has a superset of the functionality of [[ikiwiki/directives/format]].
## Access control (unresolved?)
@@ -85,7 +73,9 @@ spam problems. So, use `check_canedit` as at least a first-level check?
> create the page before we actually know what page name we're going to use - when
> posting the comment I just increment a number until I reach an unused one - so
> either the code needs restructuring, or the permission check for 'create' would
-> always be for 'comment1' and never 'comment123'.
+> always be for 'comment1' and never 'comment123'. --[[smcv]]
+
+>> Now resolved, in fact --[[smcv]]
> Another possibility is to just check for permission to edit (e.g.) `sandbox/comment1`.
> However, this makes the "comments can only be created, not edited" feature completely
--
cgit v1.2.3
From 52bd18aafc0410c6da04d2e893d61cce3d9449f4 Mon Sep 17 00:00:00 2001
From: "http://smcv.pseudorandom.co.uk/"
Date: Wed, 10 Dec 2008 22:12:11 -0500
Subject: Link to sandbox on my demo of the plugin
---
doc/plugins/contrib/comments.mdwn | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
(limited to 'doc')
diff --git a/doc/plugins/contrib/comments.mdwn b/doc/plugins/contrib/comments.mdwn
index a7a509ebb..5a7aa7d16 100644
--- a/doc/plugins/contrib/comments.mdwn
+++ b/doc/plugins/contrib/comments.mdwn
@@ -56,7 +56,9 @@ directive shouldn't be used on pages that are edited in the usual way.
This plugin aims to close the [[todo]] item "[[todo/supporting_comments_via_disussion_pages]]",
and is currently available from [[smcv]]'s git repository on git.pseudorandom.co.uk (it's the
`comments-rebase1` branch). A demo wiki with the plugin enabled is running at
-.
+; the
+[sandbox page](http://www.pseudorandom.co.uk/2008/ikiwiki/demo/sandbox/#comments) has some
+examples of comments.
Known issues:
--
cgit v1.2.3
From 120e7553e3781b90543c480abc4f73526cba6ec2 Mon Sep 17 00:00:00 2001
From: "http://smcv.pseudorandom.co.uk/"
Date: Thu, 11 Dec 2008 05:59:24 -0500
Subject: suggest a feature that would improve the comments plugin
---
doc/todo/inline_plugin:_ability_to_override_feed_name.mdwn | 9 +++++++++
1 file changed, 9 insertions(+)
create mode 100644 doc/todo/inline_plugin:_ability_to_override_feed_name.mdwn
(limited to 'doc')
diff --git a/doc/todo/inline_plugin:_ability_to_override_feed_name.mdwn b/doc/todo/inline_plugin:_ability_to_override_feed_name.mdwn
new file mode 100644
index 000000000..2373181d6
--- /dev/null
+++ b/doc/todo/inline_plugin:_ability_to_override_feed_name.mdwn
@@ -0,0 +1,9 @@
+If RSS and Atom are enabled by default, the [[plugins/contrib/comments]] plugin generates a feed, perhaps `/sandbox/index.atom` for comments on the sandbox. If a blog is added to the page, the blog will steal the name `/sandbox/index.atom` and the comments plugin's feed will change to `/sandbox/index.atom2`.
+
+If `\[[!inline]]` gained a parameter `feedname` or something, the comments plugin could use `feedname=comments` to produce `/sandbox/comments.atom` instead (this would just require minor enhancements to rsspage(), atompage() and targetpage()).
+
+As a side benefit, [my blog](http://smcv.pseudorandom.co.uk/) could go back to its historical Atom feed URL of `.../feed.atom` (which is currently a symlink to `index.atom` :-) )
+
+On sites not using `usedirs` the current feed is `/sandbox.atom`, and we could perhaps change it to `/sandbox-comments.atom` or `/sandbox/comments.atom` if `feedname=comments` is given.
+
+--[[smcv]]
--
cgit v1.2.3
From ec0dff43ce3af3011cb86373b7ad87a3931e4784 Mon Sep 17 00:00:00 2001
From: "http://smcv.pseudorandom.co.uk/"
Date: Thu, 11 Dec 2008 06:02:49 -0500
Subject: suggest another feature for the comments plugin's benefit
---
doc/todo/inline_plugin:_hide_feed_buttons_if_empty.mdwn | 4 ++++
1 file changed, 4 insertions(+)
create mode 100644 doc/todo/inline_plugin:_hide_feed_buttons_if_empty.mdwn
(limited to 'doc')
diff --git a/doc/todo/inline_plugin:_hide_feed_buttons_if_empty.mdwn b/doc/todo/inline_plugin:_hide_feed_buttons_if_empty.mdwn
new file mode 100644
index 000000000..f998d5654
--- /dev/null
+++ b/doc/todo/inline_plugin:_hide_feed_buttons_if_empty.mdwn
@@ -0,0 +1,4 @@
+ < joeyh> 03:49:19> also, I think it may be less visually confusing to
+ drop the rss/atom buttons for comments when there are none yet
+
+This seems to me like something that applies to the [[plugins/inline]] plugin in general, rather than the [[plugins/contrib/comments]] plugin specifically. --[[smcv]]
--
cgit v1.2.3
From 50ae0dcd8c167b20a7b3eab46f60439ad07f0642 Mon Sep 17 00:00:00 2001
From: "http://smcv.pseudorandom.co.uk/"
Date: Thu, 11 Dec 2008 06:07:37 -0500
Subject: some issues joeyh reported on IRC
---
doc/plugins/contrib/comments.mdwn | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
(limited to 'doc')
diff --git a/doc/plugins/contrib/comments.mdwn b/doc/plugins/contrib/comments.mdwn
index 5a7aa7d16..a832c571a 100644
--- a/doc/plugins/contrib/comments.mdwn
+++ b/doc/plugins/contrib/comments.mdwn
@@ -67,8 +67,11 @@ Known issues:
* There is some common code cargo-culted from other plugins (notably inline and editpage) which
should probably be shared
* Joey doesn't think it should necessarily use internal pages (see [[discussion]])
-* `\[[!comment]]` should perhaps be `\[[!_comment]], or a special filter/htmlize hook rather
+* `\[[!comment]]` should perhaps be `\[[!_comment]]`, or a special filter/htmlize hook rather
than being a directive at all
+* Previews always say "unknown IP address"
+* [[todo/inline_plugin:_ability_to_override_the_feed_name]]
+* [[todo/inline_plugin:_hide_feed_buttons_if_empty]]
> I haven't done a detailed code review, but I will say I'm pleased you
> avoided re-implementing inline! --[[Joey]]
--
cgit v1.2.3
From d135bd3f983fce11468037792b696cc32316023a Mon Sep 17 00:00:00 2001
From: Joey Hess
Date: Thu, 11 Dec 2008 13:27:50 -0500
Subject: add gitremotes script, parsing list of remotes on doc/git.mdwn
Any remotes added will automatically be pulled into my working copy.
---
doc/git.mdwn | 26 +++++++++++++++++++-------
gitremotes | 29 +++++++++++++++++++++++++++++
2 files changed, 48 insertions(+), 7 deletions(-)
create mode 100755 gitremotes
(limited to 'doc')
diff --git a/doc/git.mdwn b/doc/git.mdwn
index e7f47f5a0..00c108616 100644
--- a/doc/git.mdwn
+++ b/doc/git.mdwn
@@ -16,17 +16,29 @@ Or like this if your firewall only passes http traffic (slow):
The gitweb is [here](http://git.ikiwiki.info/?p=ikiwiki).
-There is also a mirror [on github](http://github.com/joeyh/ikiwiki/tree/master).
-
Commits to this git repository are fed into [CIA](http://cia.vc), and can
be browsed, subscribed to etc on its
[project page](http://cia.vc/stats/project/ikiwiki). They're also fed into
[twitter](http://twitter.com/ikiwiki).
-## branches
+## personal git repositories
You are of course free to set up your own ikiwiki git repository with your
-own [[patches|patch]].
+own [[patches|patch]]. If you list it here, the `gitremotes` script will
+automatically add it to git remotes. Your repo will automatically be pulled
+into [[Joey]]'s working tree. This is recommended. :-)
+
+# Machine-parsed format: * wikilink
+
+* [[github]]
+ [browse](http://github.com/joeyh/ikiwiki/tree/master)
+ A mirror of the main repo, automatically updated.
+* [[smcv]]
+* [[intrigeri]]
+* [[gmcmanus]]
+* [[jelmer]]
+
+## branches
Some of the branches included in the main repository include:
@@ -38,9 +50,9 @@ Some of the branches included in the main repository include:
* `wikiwyg` adds [[todo/wikiwyg]] support. It is unmerged pending some
changes.
* `darcs` is being used to add darcs support.
-* `pristine-tar` contains deltas that
- [pristine-tar](http://kitenet.net/~joey/code/pristine-tar)
- can use to recreate released tarballs of ikiwiki
* `debian-stable` is used for updates to the old version included in
Debian's stable release, and `debian-testing` is used for updates to
Debian's testing release.
+* `pristine-tar` contains deltas that
+ [pristine-tar](http://kitenet.net/~joey/code/pristine-tar)
+ can use to recreate released tarballs of ikiwiki
diff --git a/gitremotes b/gitremotes
new file mode 100755
index 000000000..b14490924
--- /dev/null
+++ b/gitremotes
@@ -0,0 +1,29 @@
+#!/usr/bin/perl
+# Parses list of remotes in doc/git.mdwn, configures git to use them
+# all, and fetches updates from them.
+
+my $error=0;
+
+open (IN, "doc/git.mdwn") || die "doc/git.mdwn: $!";
+while () {
+ if (/^\*\s+\[\[(\w+)\]\]\s+<([^>]+)>/) {
+ # note that the remote name has to be a simple word (\w)
+ # for security/sanity reasons
+ my $remote=$1;
+ my $url=$2;
+
+ # check configured url to deal with it changing
+ my $info=`git remote show -n $remote`;
+ my ($oldurl)=$info=~/URL: (.*)/m;
+ if ($oldurl ne $url) {
+ system("git remote rm $remote 2>/dev/null");
+ $error |= system("git", "remote", "add", "-f", $remote, $url);
+ }
+ else {
+ $error |= system("git", "fetch", $remote);
+ }
+ }
+}
+close IN;
+
+exit $error;
--
cgit v1.2.3
From 8b7c2f29bf316e78d49408b3ce4758cbaea4a42f Mon Sep 17 00:00:00 2001
From: Joey Hess
Date: Thu, 11 Dec 2008 13:29:30 -0500
Subject: fix comment
---
doc/git.mdwn | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'doc')
diff --git a/doc/git.mdwn b/doc/git.mdwn
index 00c108616..511a0a75c 100644
--- a/doc/git.mdwn
+++ b/doc/git.mdwn
@@ -28,7 +28,7 @@ own [[patches|patch]]. If you list it here, the `gitremotes` script will
automatically add it to git remotes. Your repo will automatically be pulled
into [[Joey]]'s working tree. This is recommended. :-)
-# Machine-parsed format: * wikilink
+
* [[github]]
[browse](http://github.com/joeyh/ikiwiki/tree/master)
--
cgit v1.2.3
From 3305fb9d36de3c32552da036ebc6db2611fe13fe Mon Sep 17 00:00:00 2001
From: Joey Hess
Date: Thu, 11 Dec 2008 13:31:25 -0500
Subject: markdown fixes
---
doc/git.mdwn | 10 +++++-----
gitremotes | 2 +-
2 files changed, 6 insertions(+), 6 deletions(-)
(limited to 'doc')
diff --git a/doc/git.mdwn b/doc/git.mdwn
index 511a0a75c..abb25722a 100644
--- a/doc/git.mdwn
+++ b/doc/git.mdwn
@@ -30,13 +30,13 @@ into [[Joey]]'s working tree. This is recommended. :-)
-* [[github]]
+* github `git://github.com/joeyh/ikiwiki.git`
[browse](http://github.com/joeyh/ikiwiki/tree/master)
A mirror of the main repo, automatically updated.
-* [[smcv]]
-* [[intrigeri]]
-* [[gmcmanus]]
-* [[jelmer]]
+* [[smcv]] `git://git.pseudorandom.co.uk/git/smcv/ikiwiki.git`
+* [[intrigeri]] `git://gaffer.ptitcanardnoir.org/ikiwiki.git`
+* [[gmcmanus]] `git://github.com/gmcmanus/ikiwiki.git`
+* [[jelmer]] `git://git.samba.org/jelmer/ikiwiki.git`
## branches
diff --git a/gitremotes b/gitremotes
index b14490924..7b9484dd1 100755
--- a/gitremotes
+++ b/gitremotes
@@ -6,7 +6,7 @@ my $error=0;
open (IN, "doc/git.mdwn") || die "doc/git.mdwn: $!";
while () {
- if (/^\*\s+\[\[(\w+)\]\]\s+<([^>]+)>/) {
+ if (/^\*\s+\[?\[?(\w+)\]?\]?\s+`([^>]+)`/) {
# note that the remote name has to be a simple word (\w)
# for security/sanity reasons
my $remote=$1;
--
cgit v1.2.3
From a6a85fa4446e1bdac6220ab40226ca34c13e5381 Mon Sep 17 00:00:00 2001
From: Joey Hess
Date: Thu, 11 Dec 2008 13:32:42 -0500
Subject: formatting
---
doc/git.mdwn | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'doc')
diff --git a/doc/git.mdwn b/doc/git.mdwn
index abb25722a..e9c2e040f 100644
--- a/doc/git.mdwn
+++ b/doc/git.mdwn
@@ -31,7 +31,7 @@ into [[Joey]]'s working tree. This is recommended. :-)
* github `git://github.com/joeyh/ikiwiki.git`
- [browse](http://github.com/joeyh/ikiwiki/tree/master)
+ ([browse](http://github.com/joeyh/ikiwiki/tree/master))
A mirror of the main repo, automatically updated.
* [[smcv]] `git://git.pseudorandom.co.uk/git/smcv/ikiwiki.git`
* [[intrigeri]] `git://gaffer.ptitcanardnoir.org/ikiwiki.git`
--
cgit v1.2.3
From 63eb9d834e2f7e08535473934e169cfe7d7debe6 Mon Sep 17 00:00:00 2001
From: Joey Hess
Date: Thu, 11 Dec 2008 14:04:38 -0500
Subject: inline: Support emptyfeeds=no option to skip generating empty feeds.
---
IkiWiki/Plugin/inline.pm | 10 ++++++++--
debian/changelog | 1 +
doc/ikiwiki/directive/inline.mdwn | 4 +++-
doc/todo/inline_plugin:_hide_feed_buttons_if_empty.mdwn | 3 +++
4 files changed, 15 insertions(+), 3 deletions(-)
(limited to 'doc')
diff --git a/IkiWiki/Plugin/inline.pm b/IkiWiki/Plugin/inline.pm
index 0c8f50384..5e4df95f4 100644
--- a/IkiWiki/Plugin/inline.pm
+++ b/IkiWiki/Plugin/inline.pm
@@ -161,6 +161,7 @@ sub preprocess_inline (@) { #{{{
my $atom=(($config{atom} || $config{allowatom}) && exists $params{atom}) ? yesno($params{atom}) : $config{atom};
my $quick=exists $params{quick} ? yesno($params{quick}) : 0;
my $feeds=exists $params{feeds} ? yesno($params{feeds}) : !$quick;
+ my $emptyfeeds=exists $params{emptyfeeds} ? yesno($params{emptyfeeds}) : 1;
my $feedonly=yesno($params{feedonly});
if (! exists $params{show} && ! $archive) {
$params{show}=10;
@@ -289,8 +290,13 @@ sub preprocess_inline (@) { #{{{
gettext("Add a new post titled:"));
}
$ret.=$formtemplate->output;
+
+ # The post form includes the feed buttons, so
+ # emptyfeeds cannot be hidden.
+ $emptyfeeds=1;
}
- elsif ($feeds && !$params{preview}) {
+ elsif ($feeds && !$params{preview} &&
+ ! (! $emptyfeeds && ! @feedlist)) {
# Add feed buttons.
my $linktemplate=template("feedlink.tmpl", blind_cache => 1);
$linktemplate->param(rssurl => $rssurl) if $rss;
@@ -367,7 +373,7 @@ sub preprocess_inline (@) { #{{{
}
}
- if ($feeds) {
+ if ($feeds && ! (! $emptyfeeds && ! @feedlist)) {
if ($rss) {
my $rssp=rsspage($params{destpage}).$feednum;
will_render($params{destpage}, $rssp);
diff --git a/debian/changelog b/debian/changelog
index 8d2b6661f..7f6844366 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -10,6 +10,7 @@ ikiwiki (2.71) UNRELEASED; urgency=low
* Fix handling of wrappergroup option.
* Correct --dumpsetup to include the srcdir in the setup file.
* German translation update from Kai Wasserbäch. Closes: #507056
+ * inline: Support emptyfeeds=no option to skip generating empty feeds.
-- Joey Hess Mon, 17 Nov 2008 14:02:10 -0500
diff --git a/doc/ikiwiki/directive/inline.mdwn b/doc/ikiwiki/directive/inline.mdwn
index 9889cda11..82b532e0c 100644
--- a/doc/ikiwiki/directive/inline.mdwn
+++ b/doc/ikiwiki/directive/inline.mdwn
@@ -73,6 +73,8 @@ Here are some less often needed parameters:
configured to `allowatom`, set to "yes" to enable.
* `feeds` - controls generation of all types of feeds. Set to "no" to
disable generating any feeds.
+* `emptyfeeds` - Set to "no" to disable generation of empty feeds.
+ Has no effect if `rootpage` or `postform` is set.
* `template` - Specifies the template to fill out to display each inlined
page. By default the `inlinepage` template is used, while
the `archivepage` template is used for archives. Set this parameter to
@@ -97,7 +99,7 @@ Here are some less often needed parameters:
in the blog. The format string is passed to the strftime(3) function.
* `feedpages` - A [[PageSpec]] of inlined pages to include in the rss/atom
feeds. The default is the same as the `pages` value above, and only pages
- matches by that value are included, but some of those can be excluded by
+ matched by that value are included, but some of those can be excluded by
specifying a tighter [[PageSpec]] here.
* `guid` - If a URI is given here (perhaps a UUID prefixed with `urn:uuid:`),
the Atom feed will have this as its ``. The default is to use the URL
diff --git a/doc/todo/inline_plugin:_hide_feed_buttons_if_empty.mdwn b/doc/todo/inline_plugin:_hide_feed_buttons_if_empty.mdwn
index f998d5654..d046c0cd0 100644
--- a/doc/todo/inline_plugin:_hide_feed_buttons_if_empty.mdwn
+++ b/doc/todo/inline_plugin:_hide_feed_buttons_if_empty.mdwn
@@ -2,3 +2,6 @@
drop the rss/atom buttons for comments when there are none yet
This seems to me like something that applies to the [[plugins/inline]] plugin in general, rather than the [[plugins/contrib/comments]] plugin specifically. --[[smcv]]
+
+>> [[done]] as emptyfeeds option, not on by default for inline, but I think
+>> it should be for comments --[[Joey]]
--
cgit v1.2.3
From e968dbac13a7343c895eb0f8303cbef2c4e3761f Mon Sep 17 00:00:00 2001
From: Joey Hess
Date: Thu, 11 Dec 2008 14:09:34 -0500
Subject: thoughts
---
...line_plugin:_ability_to_override_feed_name.mdwn | 27 ++++++++++++++++++----
1 file changed, 23 insertions(+), 4 deletions(-)
(limited to 'doc')
diff --git a/doc/todo/inline_plugin:_ability_to_override_feed_name.mdwn b/doc/todo/inline_plugin:_ability_to_override_feed_name.mdwn
index 2373181d6..0aab7b9e6 100644
--- a/doc/todo/inline_plugin:_ability_to_override_feed_name.mdwn
+++ b/doc/todo/inline_plugin:_ability_to_override_feed_name.mdwn
@@ -1,9 +1,28 @@
-If RSS and Atom are enabled by default, the [[plugins/contrib/comments]] plugin generates a feed, perhaps `/sandbox/index.atom` for comments on the sandbox. If a blog is added to the page, the blog will steal the name `/sandbox/index.atom` and the comments plugin's feed will change to `/sandbox/index.atom2`.
+If RSS and Atom are enabled by default, the [[plugins/contrib/comments]]
+plugin generates a feed, perhaps `/sandbox/index.atom` for comments on the
+sandbox. If a blog is added to the page, the blog will steal the name
+`/sandbox/index.atom` and the comments plugin's feed will change to
+`/sandbox/index.atom2`.
-If `\[[!inline]]` gained a parameter `feedname` or something, the comments plugin could use `feedname=comments` to produce `/sandbox/comments.atom` instead (this would just require minor enhancements to rsspage(), atompage() and targetpage()).
+If `\[[!inline]]` gained a parameter `feedname` or something, the comments
+plugin could use `feedname=comments` to produce `/sandbox/comments.atom`
+instead (this would just require minor enhancements to rsspage(),
+atompage() and targetpage()).
-As a side benefit, [my blog](http://smcv.pseudorandom.co.uk/) could go back to its historical Atom feed URL of `.../feed.atom` (which is currently a symlink to `index.atom` :-) )
+As a side benefit, [my blog](http://smcv.pseudorandom.co.uk/) could go back
+to its historical Atom feed URL of `.../feed.atom` (which is currently a
+symlink to `index.atom` :-) )
-On sites not using `usedirs` the current feed is `/sandbox.atom`, and we could perhaps change it to `/sandbox-comments.atom` or `/sandbox/comments.atom` if `feedname=comments` is given.
+On sites not using `usedirs` the current feed is `/sandbox.atom`, and we
+could perhaps change it to `/sandbox-comments.atom` or
+`/sandbox/comments.atom` if `feedname=comments` is given.
--[[smcv]]
+
+> This is slightly hard to do, because you have to worry about
+> conflicting pages setting feedname, which would cause ikiwiki to blow up.
+>
+> Particularly for the non-usedirs case, where a page `sandbox/comments`
+> would produce the same feed as sandbox with `feedname=comments` .
+> I don't think there's a solution in the non-usedirs case, so maybe this
+> option would need to only work for usedirs. --[[Joey]]
--
cgit v1.2.3
From 3b3127643b1869ccebcb6d311a9e100e5317d803 Mon Sep 17 00:00:00 2001
From: Joey Hess
Date: Thu, 11 Dec 2008 14:12:03 -0500
Subject: rethink
---
doc/todo/inline_plugin:_ability_to_override_feed_name.mdwn | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
(limited to 'doc')
diff --git a/doc/todo/inline_plugin:_ability_to_override_feed_name.mdwn b/doc/todo/inline_plugin:_ability_to_override_feed_name.mdwn
index 0aab7b9e6..41bae45fa 100644
--- a/doc/todo/inline_plugin:_ability_to_override_feed_name.mdwn
+++ b/doc/todo/inline_plugin:_ability_to_override_feed_name.mdwn
@@ -20,9 +20,11 @@ could perhaps change it to `/sandbox-comments.atom` or
--[[smcv]]
> This is slightly hard to do, because you have to worry about
-> conflicting pages setting feedname, which would cause ikiwiki to blow up.
+> conflicting pages setting feedname, which could cause ikiwiki to blow up.
>
> Particularly for the non-usedirs case, where a page `sandbox/comments`
-> would produce the same feed as sandbox with `feedname=comments` .
-> I don't think there's a solution in the non-usedirs case, so maybe this
-> option would need to only work for usedirs. --[[Joey]]
+> would produce the same feed as sandbox with `feedname=comments`.
+>
+> Hmm, looking some more, since inline tracks `%knownfeeds` and uniquifys
+> the names on conflicts, you'd just end up with `sandbox/comments.atom2`
+> if there were a conflict -- acceptable. --[[Joey]]
--
cgit v1.2.3
From 2cd7eecf896261834bcd66d8ec3a9fd3bb7236d8 Mon Sep 17 00:00:00 2001
From: Joey Hess
Date: Thu, 11 Dec 2008 14:26:58 -0500
Subject: looking closer, the existing %knownfeeds won't work
---
doc/todo/inline_plugin:_ability_to_override_feed_name.mdwn | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
(limited to 'doc')
diff --git a/doc/todo/inline_plugin:_ability_to_override_feed_name.mdwn b/doc/todo/inline_plugin:_ability_to_override_feed_name.mdwn
index 41bae45fa..71bc3bdd6 100644
--- a/doc/todo/inline_plugin:_ability_to_override_feed_name.mdwn
+++ b/doc/todo/inline_plugin:_ability_to_override_feed_name.mdwn
@@ -24,7 +24,4 @@ could perhaps change it to `/sandbox-comments.atom` or
>
> Particularly for the non-usedirs case, where a page `sandbox/comments`
> would produce the same feed as sandbox with `feedname=comments`.
->
-> Hmm, looking some more, since inline tracks `%knownfeeds` and uniquifys
-> the names on conflicts, you'd just end up with `sandbox/comments.atom2`
-> if there were a conflict -- acceptable. --[[Joey]]
+> --[[Joey]]
--
cgit v1.2.3
From b67632cdcdd333cf0a88d03c0f7e6e62921f32c3 Mon Sep 17 00:00:00 2001
From: Joey Hess
Date: Thu, 11 Dec 2008 15:01:26 -0500
Subject: inline: Support feedfile option to change the filename of the feed
generated.
---
IkiWiki.pm | 8 ++-
IkiWiki/Plugin/inline.pm | 63 ++++++++++--------
debian/changelog | 2 +
doc/ikiwiki/directive/inline.mdwn | 5 ++
doc/plugins/write.mdwn | 6 +-
...line_plugin:_ability_to_override_feed_name.mdwn | 2 +
po/de.po | 74 +++++++++++-----------
po/fr.po | 71 +++++++++++----------
po/ikiwiki.pot | 52 +++++++--------
9 files changed, 156 insertions(+), 127 deletions(-)
(limited to 'doc')
diff --git a/IkiWiki.pm b/IkiWiki.pm
index 2ad2f792d..1c68c2cb3 100644
--- a/IkiWiki.pm
+++ b/IkiWiki.pm
@@ -666,11 +666,15 @@ sub newpagefile ($$) { #{{{
}
} #}}}
-sub targetpage ($$) { #{{{
+sub targetpage ($$;$) { #{{{
my $page=shift;
my $ext=shift;
+ my $filename=shift;
- if (! $config{usedirs} || $page eq 'index') {
+ if (defined $filename) {
+ return $page."/".$filename.".".$ext;
+ }
+ elsif (! $config{usedirs} || $page eq 'index') {
return $page.".".$ext;
}
else {
diff --git a/IkiWiki/Plugin/inline.pm b/IkiWiki/Plugin/inline.pm
index 5e4df95f4..17cc46e0e 100644
--- a/IkiWiki/Plugin/inline.pm
+++ b/IkiWiki/Plugin/inline.pm
@@ -26,8 +26,7 @@ sub import { #{{{
# Hook to change to do pinging since it's called late.
# This ensures each page only pings once and prevents slow
# pings interrupting page builds.
- hook(type => "change", id => "inline",
- call => \&IkiWiki::pingurl);
+ hook(type => "change", id => "inline", call => \&IkiWiki::pingurl);
} # }}}
sub getopt () { #{{{
@@ -238,28 +237,46 @@ sub preprocess_inline (@) { #{{{
@feedlist=grep { pagespec_match($_, $params{feedpages}, location => $params{page}) } @feedlist;
}
- my $feednum="";
-
- my $feedid=join("\0", map { $_."\0".$params{$_} } sort keys %params);
- if (exists $knownfeeds{$feedid}) {
- $feednum=$knownfeeds{$feedid};
- }
- else {
- if (exists $page_numfeeds{$params{destpage}}) {
- if ($feeds) {
- $feednum=$knownfeeds{$feedid}=++$page_numfeeds{$params{destpage}};
+ my ($feedbase, $feednum);
+ if ($feeds) {
+ # Ensure that multiple feeds on a page go to unique files.
+
+ # Feedfile can lead to conflicts if usedirs is not enabled,
+ # so avoid supporting it in that case.
+ delete $params{feedfile} if ! $config{usedirs};
+ # Tight limits on legal feedfiles, to avoid security issues
+ # and conflicts.
+ if (defined $params{feedfile}) {
+ if ($params{feedfile} =~ /\// ||
+ $params{feedfile} !~ /$config{wiki_file_regexp}/) {
+ error("illegal feedfile");
}
+ $params{feedfile}=possibly_foolish_untaint($params{feedfile});
+ }
+ $feedbase=targetpage($params{destpage}, "", $params{feedfile});
+
+ my $feedid=join("\0", $feedbase, map { $_."\0".$params{$_} } sort keys %params);
+ if (exists $knownfeeds{$feedid}) {
+ $feednum=$knownfeeds{$feedid};
}
else {
- $feednum=$knownfeeds{$feedid}="";
- if ($feeds) {
- $page_numfeeds{$params{destpage}}=1;
+ if (exists $page_numfeeds{$params{destpage}}{$feedbase}) {
+ if ($feeds) {
+ $feednum=$knownfeeds{$feedid}=++$page_numfeeds{$params{destpage}}{$feedbase};
+ }
+ }
+ else {
+ $feednum=$knownfeeds{$feedid}="";
+ if ($feeds) {
+ $page_numfeeds{$params{destpage}}{$feedbase}=1;
+ }
}
}
}
- my $rssurl=basename(rsspage($params{destpage}).$feednum) if $feeds && $rss;
- my $atomurl=basename(atompage($params{destpage}).$feednum) if $feeds && $atom;
+ my $rssurl=basename($feedbase."rss".$feednum) if $feeds && $rss;
+ my $atomurl=basename($feedbase."atom".$feednum) if $feeds && $atom;
+
my $ret="";
if (length $config{cgiurl} && ! $params{preview} && (exists $params{rootpage} ||
@@ -375,7 +392,7 @@ sub preprocess_inline (@) { #{{{
if ($feeds && ! (! $emptyfeeds && ! @feedlist)) {
if ($rss) {
- my $rssp=rsspage($params{destpage}).$feednum;
+ my $rssp=$feedbase."rss".$feednum;
will_render($params{destpage}, $rssp);
if (! $params{preview}) {
writefile($rssp, $config{destdir},
@@ -386,7 +403,7 @@ sub preprocess_inline (@) { #{{{
}
}
if ($atom) {
- my $atomp=atompage($params{destpage}).$feednum;
+ my $atomp=$feedbase."atom".$feednum;
will_render($params{destpage}, $atomp);
if (! $params{preview}) {
writefile($atomp, $config{destdir},
@@ -475,14 +492,6 @@ sub absolute_urls ($$) { #{{{
return $content;
} #}}}
-sub rsspage ($) { #{{{
- return targetpage(shift, "rss");
-} #}}}
-
-sub atompage ($) { #{{{
- return targetpage(shift, "atom");
-} #}}}
-
sub genfeed ($$$$$@) { #{{{
my $feedtype=shift;
my $feedurl=shift;
diff --git a/debian/changelog b/debian/changelog
index 7f6844366..1ff78d749 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -11,6 +11,8 @@ ikiwiki (2.71) UNRELEASED; urgency=low
* Correct --dumpsetup to include the srcdir in the setup file.
* German translation update from Kai Wasserbäch. Closes: #507056
* inline: Support emptyfeeds=no option to skip generating empty feeds.
+ * inline: Support feedfile option to change the filename of the feed
+ generated.
-- Joey Hess Mon, 17 Nov 2008 14:02:10 -0500
diff --git a/doc/ikiwiki/directive/inline.mdwn b/doc/ikiwiki/directive/inline.mdwn
index 82b532e0c..40670e1e7 100644
--- a/doc/ikiwiki/directive/inline.mdwn
+++ b/doc/ikiwiki/directive/inline.mdwn
@@ -104,6 +104,11 @@ Here are some less often needed parameters:
* `guid` - If a URI is given here (perhaps a UUID prefixed with `urn:uuid:`),
the Atom feed will have this as its ``. The default is to use the URL
of the page containing the `inline` directive.
+* `feedfile` - Can be used to change the name of the file generated for the
+ feed. This is particularly useful if a page contains multiple feeds.
+ For example, set "feedfile=feed" to cause it to generate `page/feed.atom`
+ and/or `page/feed.rss`. This option is not supported if the wiki is
+ configured not to use `usedirs`.
[[!meta robots="noindex, follow"]]
diff --git a/doc/plugins/write.mdwn b/doc/plugins/write.mdwn
index abcabbdc3..b6fa96f91 100644
--- a/doc/plugins/write.mdwn
+++ b/doc/plugins/write.mdwn
@@ -696,11 +696,15 @@ This can be called when creating a new page, to determine what filename
to save the page to. It's passed a page name, and its type, and returns
the name of the file to create, relative to the srcdir.
-#### `targetpage($$)`
+#### `targetpage($$;$)`
Passed a page and an extension, returns the filename that page will be
rendered to.
+Optionally, a third parameter can be passed, to specify the preferred
+filename of the page. For example, `targetpage("foo", "rss", "feed")`
+will yield something like `foo/feed.rss`.
+
## Miscellaneous
### Internal use pages
diff --git a/doc/todo/inline_plugin:_ability_to_override_feed_name.mdwn b/doc/todo/inline_plugin:_ability_to_override_feed_name.mdwn
index 71bc3bdd6..df5bf9194 100644
--- a/doc/todo/inline_plugin:_ability_to_override_feed_name.mdwn
+++ b/doc/todo/inline_plugin:_ability_to_override_feed_name.mdwn
@@ -25,3 +25,5 @@ could perhaps change it to `/sandbox-comments.atom` or
> Particularly for the non-usedirs case, where a page `sandbox/comments`
> would produce the same feed as sandbox with `feedname=comments`.
> --[[Joey]]
+
+> [[done]] as feedfile option --[[Joey]]
diff --git a/po/de.po b/po/de.po
index 55234a909..d49d0c6ca 100644
--- a/po/de.po
+++ b/po/de.po
@@ -5,8 +5,8 @@
msgid ""
msgstr ""
"Project-Id-Version: ikiwiki 2.70\n"
-"Report-Msgid-Bugs-To: ikiwiki@packages.debian.org\n"
-"POT-Creation-Date: 2008-10-31 16:37-0400\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-12-11 14:46-0500\n"
"PO-Revision-Date: 2008-11-20 19:58+0100\n"
"Last-Translator: Kai Wasserbäch \n"
"Language-Team: German \n"
@@ -47,7 +47,7 @@ msgstr "Einstellungen gespeichert."
msgid "You are banned."
msgstr "Sie sind ausgeschlossen worden."
-#: ../IkiWiki/CGI.pm:385 ../IkiWiki/CGI.pm:386 ../IkiWiki.pm:1182
+#: ../IkiWiki/CGI.pm:385 ../IkiWiki/CGI.pm:386 ../IkiWiki.pm:1204
msgid "Error"
msgstr "Fehler"
@@ -110,16 +110,16 @@ msgstr "Feed nicht gefunden"
msgid "(invalid UTF-8 stripped from feed)"
msgstr "(ungültiges UTF-8-Zeichen wurde aus dem Feed entfernt)"
-#: ../IkiWiki/Plugin/aggregate.pm:504
+#: ../IkiWiki/Plugin/aggregate.pm:506
#, perl-format
msgid "(feed entities escaped)"
msgstr "(Feed-Entitäten maskiert)"
-#: ../IkiWiki/Plugin/aggregate.pm:510
+#: ../IkiWiki/Plugin/aggregate.pm:514
msgid "feed crashed XML::Feed!"
msgstr "Feed führte zum Absturz von XML::Feed!"
-#: ../IkiWiki/Plugin/aggregate.pm:590
+#: ../IkiWiki/Plugin/aggregate.pm:595
#, perl-format
msgid "creating new page %s"
msgstr "erstelle neue Seite %s"
@@ -128,7 +128,7 @@ msgstr "erstelle neue Seite %s"
msgid "deleting bucket.."
msgstr "Lösche Bucket..."
-#: ../IkiWiki/Plugin/amazon_s3.pm:38 ../ikiwiki.in:206
+#: ../IkiWiki/Plugin/amazon_s3.pm:38 ../ikiwiki.in:208
msgid "done"
msgstr "fertig"
@@ -171,7 +171,7 @@ msgid "automatic index generation"
msgstr "automatische Index-Erstellung"
#: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:261
-#: ../IkiWiki/Plugin/inline.pm:327 ../IkiWiki/Plugin/opendiscussion.pm:26
+#: ../IkiWiki/Plugin/inline.pm:344 ../IkiWiki/Plugin/opendiscussion.pm:26
#: ../IkiWiki/Plugin/orphans.pm:37 ../IkiWiki/Render.pm:79
#: ../IkiWiki/Render.pm:149
msgid "discussion"
@@ -245,11 +245,11 @@ msgstr "»edittemplate« %s registriert für %s"
msgid "failed to process"
msgstr "Bearbeitung fehlgeschlagen"
-#: ../IkiWiki/Plugin/format.pm:22
+#: ../IkiWiki/Plugin/format.pm:20
msgid "must specify format and text"
msgstr "Format und Text muss spezifiziert werden"
-#: ../IkiWiki/Plugin/format.pm:25
+#: ../IkiWiki/Plugin/format.pm:23
#, perl-format
msgid "unsupported page format %s"
msgstr "nicht unterstütztes Seitenformat %s"
@@ -276,7 +276,8 @@ msgstr "Es ist Ihnen nicht erlaubt, Dateizugriffsrechte zu ändern"
#: ../IkiWiki/Plugin/google.pm:27
#, perl-format
msgid "Must specify %s when using the google search plugin"
-msgstr "%s muss angegeben werden, wenn die Google-Sucherweiterung verwandt wird"
+msgstr ""
+"%s muss angegeben werden, wenn die Google-Sucherweiterung verwandt wird"
#: ../IkiWiki/Plugin/google.pm:31
msgid "Failed to parse url, cannot determine domain name"
@@ -320,17 +321,17 @@ msgstr "Größenänderung fehlgeschlagen: %s"
msgid "failed to determine size of image %s"
msgstr "Größe des Bildes %s konnte nicht festgestellt werden."
-#: ../IkiWiki/Plugin/inline.pm:93
+#: ../IkiWiki/Plugin/inline.pm:92
msgid "Must specify url to wiki with --url when using --rss or --atom"
msgstr ""
"Die URL zum Wiki muss mit --url angegeben werden, wenn --rss oder --atom "
"genutzt wird"
-#: ../IkiWiki/Plugin/inline.pm:139
+#: ../IkiWiki/Plugin/inline.pm:138
msgid "page editing not allowed"
msgstr "Seitenbearbeitungen sind nicht erlaubt"
-#: ../IkiWiki/Plugin/inline.pm:156
+#: ../IkiWiki/Plugin/inline.pm:155
msgid "missing pages parameter"
msgstr "Fehlender Seitenparameter"
@@ -339,20 +340,20 @@ msgstr "Fehlender Seitenparameter"
msgid "unknown sort type %s"
msgstr "Unbekannter Sortierungstyp %s"
-#: ../IkiWiki/Plugin/inline.pm:285
+#: ../IkiWiki/Plugin/inline.pm:297
msgid "Add a new post titled:"
msgstr "Füge einen neuen Beitrag hinzu. Titel:"
-#: ../IkiWiki/Plugin/inline.pm:301
+#: ../IkiWiki/Plugin/inline.pm:318
#, perl-format
msgid "nonexistant template %s"
msgstr "nicht-vorhandene Vorlage %s"
-#: ../IkiWiki/Plugin/inline.pm:335 ../IkiWiki/Render.pm:83
+#: ../IkiWiki/Plugin/inline.pm:352 ../IkiWiki/Render.pm:83
msgid "Discussion"
msgstr "Diskussion"
-#: ../IkiWiki/Plugin/inline.pm:572
+#: ../IkiWiki/Plugin/inline.pm:577
msgid "RPC::XML::Client not found, not pinging"
msgstr "RPC::XML::Client nicht gefunden, führe Ping nicht aus"
@@ -568,20 +569,18 @@ 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 "Benötige entweder »percent«- oder »totalpages«- und »donepages«-Parameter"
-#: ../IkiWiki/Plugin/recentchanges.pm:100
+#: ../IkiWiki/Plugin/recentchanges.pm:101
msgid "missing page"
msgstr "fehlende Seite"
-#: ../IkiWiki/Plugin/recentchanges.pm:102
+#: ../IkiWiki/Plugin/recentchanges.pm:103
#, perl-format
msgid "The page %s does not exist."
msgstr "Die Seite %s existiert nicht."
-#: ../IkiWiki/Plugin/recentchangesdiff.pm:36
+#: ../IkiWiki/Plugin/recentchangesdiff.pm:37
msgid "(Diff truncated)"
msgstr "(Diff beschnitten)"
@@ -593,7 +592,8 @@ msgstr "%s existiert nicht"
#: ../IkiWiki/Plugin/remove.pm:38
#, perl-format
msgid "%s is not in the srcdir, so it cannot be deleted"
-msgstr "%s ist nicht im Quellverzeichnis und kann deshalb nicht gelöscht werden"
+msgstr ""
+"%s ist nicht im Quellverzeichnis und kann deshalb nicht gelöscht werden"
#: ../IkiWiki/Plugin/remove.pm:41 ../IkiWiki/Plugin/rename.pm:45
#, perl-format
@@ -928,19 +928,19 @@ 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:79
+#: ../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:135
+#: ../IkiWiki/Wrapper.pm:154
#, perl-format
msgid "failed to compile %s"
msgstr "Erzeugen von %s fehlgeschlagen"
#. translators: The parameter is a filename.
-#: ../IkiWiki/Wrapper.pm:155
+#: ../IkiWiki/Wrapper.pm:174
#, perl-format
msgid "successfully generated %s"
msgstr "%s wurde erfolgreich erstellt"
@@ -953,43 +953,43 @@ msgstr "Benutzung: ikiwiki [Optionen] Quelle Ziel"
msgid " ikiwiki --setup configfile"
msgstr " ikiwiki --setup Konfigurationsdatei "
-#: ../ikiwiki.in:90
+#: ../ikiwiki.in:91
msgid "usage: --set var=value"
msgstr "Benutzung: --set Variable=Wert"
-#: ../ikiwiki.in:138
+#: ../ikiwiki.in:139
msgid "generating wrappers.."
msgstr "erzeuge Wrapper..."
-#: ../ikiwiki.in:195
+#: ../ikiwiki.in:197
msgid "rebuilding wiki.."
msgstr "erzeuge Wiki neu..."
-#: ../ikiwiki.in:198
+#: ../ikiwiki.in:200
msgid "refreshing wiki.."
msgstr "aktualisiere Wiki..."
-#: ../IkiWiki.pm:466
+#: ../IkiWiki.pm:480
msgid "Must specify url to wiki with --url when using --cgi"
msgstr ""
"Es muss eine URL zum Wiki mit --url angegeben werden, wenn --cgi verwandt "
"wird"
-#: ../IkiWiki.pm:512
+#: ../IkiWiki.pm:526
msgid "cannot use multiple rcs plugins"
msgstr "Kann nicht mehrere Versionskontrollsystem-Erweiterungen verwenden"
-#: ../IkiWiki.pm:541
+#: ../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:1165
+#: ../IkiWiki.pm:1187
#, perl-format
msgid "preprocessing loop detected on %s at depth %i"
msgstr "Präprozessorschleife auf %s in Tiefe %i erkannt"
-#: ../IkiWiki.pm:1678
+#: ../IkiWiki.pm:1688
msgid "yes"
msgstr "ja"
diff --git a/po/fr.po b/po/fr.po
index b8e84f930..ebc21fd9a 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ikiwiki 2.70 \n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-10-31 16:37-0400\n"
+"POT-Creation-Date: 2008-12-11 14:46-0500\n"
"PO-Revision-Date: 2008-11-19 21:53+0100\n"
"Last-Translator: Philippe Batailler \n"
"Language-Team: French \n"
@@ -49,7 +49,7 @@ msgstr "Les préférences ont été enregistrées."
msgid "You are banned."
msgstr "Vous avez été banni."
-#: ../IkiWiki/CGI.pm:385 ../IkiWiki/CGI.pm:386 ../IkiWiki.pm:1182
+#: ../IkiWiki/CGI.pm:385 ../IkiWiki/CGI.pm:386 ../IkiWiki.pm:1204
msgid "Error"
msgstr "Erreur"
@@ -112,16 +112,16 @@ msgstr "Flux introuvable "
msgid "(invalid UTF-8 stripped from feed)"
msgstr "(chaîne UTF-8 non valable supprimée du flux)"
-#: ../IkiWiki/Plugin/aggregate.pm:504
+#: ../IkiWiki/Plugin/aggregate.pm:506
#, perl-format
msgid "(feed entities escaped)"
msgstr "(échappement des entités de flux)"
-#: ../IkiWiki/Plugin/aggregate.pm:510
+#: ../IkiWiki/Plugin/aggregate.pm:514
msgid "feed crashed XML::Feed!"
msgstr "Plantage du flux XML::Feed !"
-#: ../IkiWiki/Plugin/aggregate.pm:590
+#: ../IkiWiki/Plugin/aggregate.pm:595
#, 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:206
+#: ../IkiWiki/Plugin/amazon_s3.pm:38 ../ikiwiki.in:208
msgid "done"
msgstr "Terminé"
@@ -173,7 +173,7 @@ msgid "automatic index generation"
msgstr "génération de l'index automatique"
#: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:261
-#: ../IkiWiki/Plugin/inline.pm:327 ../IkiWiki/Plugin/opendiscussion.pm:26
+#: ../IkiWiki/Plugin/inline.pm:344 ../IkiWiki/Plugin/opendiscussion.pm:26
#: ../IkiWiki/Plugin/orphans.pm:37 ../IkiWiki/Render.pm:79
#: ../IkiWiki/Render.pm:149
msgid "discussion"
@@ -247,11 +247,11 @@ msgstr "edittemplate %s enregistré pour %s"
msgid "failed to process"
msgstr "Échec du traitement"
-#: ../IkiWiki/Plugin/format.pm:22
+#: ../IkiWiki/Plugin/format.pm:20
msgid "must specify format and text"
msgstr "le format et le texte doivent être indiqués"
-#: ../IkiWiki/Plugin/format.pm:25
+#: ../IkiWiki/Plugin/format.pm:23
#, perl-format
msgid "unsupported page format %s"
msgstr "format de page non reconnu %s"
@@ -321,17 +321,17 @@ msgstr "Échec du redimensionnement : %s"
msgid "failed to determine size of image %s"
msgstr "Échec de la détermination de la taille de l'image : %s"
-#: ../IkiWiki/Plugin/inline.pm:93
+#: ../IkiWiki/Plugin/inline.pm:92
msgid "Must specify url to wiki with --url when using --rss or --atom"
msgstr ""
"Vous devez indiquer l'URL du wiki par --url lors de l'utilisation de --rss "
"ou --atom"
-#: ../IkiWiki/Plugin/inline.pm:139
+#: ../IkiWiki/Plugin/inline.pm:138
msgid "page editing not allowed"
msgstr "Modification de page interdite"
-#: ../IkiWiki/Plugin/inline.pm:156
+#: ../IkiWiki/Plugin/inline.pm:155
msgid "missing pages parameter"
msgstr "paramètre « pages » manquant"
@@ -340,20 +340,20 @@ msgstr "paramètre « pages » manquant"
msgid "unknown sort type %s"
msgstr "Type de tri %s inconnu"
-#: ../IkiWiki/Plugin/inline.pm:285
+#: ../IkiWiki/Plugin/inline.pm:297
msgid "Add a new post titled:"
msgstr "Ajouter un nouvel article dont le titre est :"
-#: ../IkiWiki/Plugin/inline.pm:301
+#: ../IkiWiki/Plugin/inline.pm:318
#, perl-format
msgid "nonexistant template %s"
msgstr "Le modèle de page %s n'existe pas"
-#: ../IkiWiki/Plugin/inline.pm:335 ../IkiWiki/Render.pm:83
+#: ../IkiWiki/Plugin/inline.pm:352 ../IkiWiki/Render.pm:83
msgid "Discussion"
msgstr "Discussion"
-#: ../IkiWiki/Plugin/inline.pm:572
+#: ../IkiWiki/Plugin/inline.pm:577
msgid "RPC::XML::Client not found, not pinging"
msgstr "RPC::XML::Client introuvable, pas de réponse au ping"
@@ -573,16 +573,16 @@ msgid "need either `percent` or `totalpages` and `donepages` parameters"
msgstr ""
"L'un des paramètres « percent », « totalpages » ou « donepages » est nécessaire."
-#: ../IkiWiki/Plugin/recentchanges.pm:100
+#: ../IkiWiki/Plugin/recentchanges.pm:101
msgid "missing page"
msgstr "Page manquante"
-#: ../IkiWiki/Plugin/recentchanges.pm:102
+#: ../IkiWiki/Plugin/recentchanges.pm:103
#, perl-format
msgid "The page %s does not exist."
msgstr "La page %s n'existe pas."
-#: ../IkiWiki/Plugin/recentchangesdiff.pm:36
+#: ../IkiWiki/Plugin/recentchangesdiff.pm:37
msgid "(Diff truncated)"
msgstr "(fichier de différences tronqué)"
@@ -820,12 +820,14 @@ msgstr ""
#: ../IkiWiki/Plugin/websetup.pm:433
#, perl-format
msgid "
Error: %s exited nonzero (%s)"
-msgstr "
Erreur : %s s'est terminé, valeur de sortie nonzero (%s)"
+msgstr ""
+"
Erreur : %s s'est terminé, valeur de sortie nonzero (%s)"
#: ../IkiWiki/Receive.pm:35
#, perl-format
msgid "cannot determine id of untrusted committer %s"
-msgstr "Impossible de déterminer l'identifiant de %s, (enregistrement non fiable)"
+msgstr ""
+"Impossible de déterminer l'identifiant de %s, (enregistrement non fiable)"
#: ../IkiWiki/Receive.pm:85
#, perl-format
@@ -929,19 +931,19 @@ 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:79
+#: ../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:135
+#: ../IkiWiki/Wrapper.pm:154
#, perl-format
msgid "failed to compile %s"
msgstr "Échec de la compilation de %s"
#. translators: The parameter is a filename.
-#: ../IkiWiki/Wrapper.pm:155
+#: ../IkiWiki/Wrapper.pm:174
#, perl-format
msgid "successfully generated %s"
msgstr "%s a été créé avec succès"
@@ -954,41 +956,42 @@ msgstr "Syntaxe : ikiwiki [options] source destination"
msgid " ikiwiki --setup configfile"
msgstr " ikiwiki --setup fichier de configuration"
-#: ../ikiwiki.in:90
+#: ../ikiwiki.in:91
msgid "usage: --set var=value"
msgstr "Syntaxe : -- set var=valeur"
-#: ../ikiwiki.in:138
+#: ../ikiwiki.in:139
msgid "generating wrappers.."
msgstr "Création des fichiers CGI..."
-#: ../ikiwiki.in:195
+#: ../ikiwiki.in:197
msgid "rebuilding wiki.."
msgstr "Reconstruction du wiki..."
-#: ../ikiwiki.in:198
+#: ../ikiwiki.in:200
msgid "refreshing wiki.."
msgstr "Rafraîchissement du wiki..."
-#: ../IkiWiki.pm:466
+#: ../IkiWiki.pm:480
msgid "Must specify url to wiki with --url when using --cgi"
-msgstr "Vous devez indiquer l'URL du wiki par --url lors de l'utilisation de --cgi"
+msgstr ""
+"Vous devez indiquer l'URL du wiki par --url lors de l'utilisation de --cgi"
-#: ../IkiWiki.pm:512
+#: ../IkiWiki.pm:526
msgid "cannot use multiple rcs plugins"
msgstr "impossible d'utiliser plusieurs systèmes de contrôle des versions"
-#: ../IkiWiki.pm:541
+#: ../IkiWiki.pm:555
#, perl-format
msgid "failed to load external plugin needed for %s plugin: %s"
msgstr "Impossible de charger le greffon externe nécessaire au greffon %s : %s"
-#: ../IkiWiki.pm:1165
+#: ../IkiWiki.pm:1187
#, perl-format
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:1678
+#: ../IkiWiki.pm:1688
msgid "yes"
msgstr "oui"
diff --git a/po/ikiwiki.pot b/po/ikiwiki.pot
index feb36c742..11c865363 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-11-11 20:48-0500\n"
+"POT-Creation-Date: 2008-12-11 14:46-0500\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -48,7 +48,7 @@ msgstr ""
msgid "You are banned."
msgstr ""
-#: ../IkiWiki/CGI.pm:385 ../IkiWiki/CGI.pm:386 ../IkiWiki.pm:1189
+#: ../IkiWiki/CGI.pm:385 ../IkiWiki/CGI.pm:386 ../IkiWiki.pm:1204
msgid "Error"
msgstr ""
@@ -111,16 +111,16 @@ msgstr ""
msgid "(invalid UTF-8 stripped from feed)"
msgstr ""
-#: ../IkiWiki/Plugin/aggregate.pm:504
+#: ../IkiWiki/Plugin/aggregate.pm:506
#, perl-format
msgid "(feed entities escaped)"
msgstr ""
-#: ../IkiWiki/Plugin/aggregate.pm:510
+#: ../IkiWiki/Plugin/aggregate.pm:514
msgid "feed crashed XML::Feed!"
msgstr ""
-#: ../IkiWiki/Plugin/aggregate.pm:591
+#: ../IkiWiki/Plugin/aggregate.pm:595
#, perl-format
msgid "creating new page %s"
msgstr ""
@@ -129,7 +129,7 @@ msgstr ""
msgid "deleting bucket.."
msgstr ""
-#: ../IkiWiki/Plugin/amazon_s3.pm:38 ../ikiwiki.in:206
+#: ../IkiWiki/Plugin/amazon_s3.pm:38 ../ikiwiki.in:208
msgid "done"
msgstr ""
@@ -172,7 +172,7 @@ msgid "automatic index generation"
msgstr ""
#: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:261
-#: ../IkiWiki/Plugin/inline.pm:327 ../IkiWiki/Plugin/opendiscussion.pm:26
+#: ../IkiWiki/Plugin/inline.pm:344 ../IkiWiki/Plugin/opendiscussion.pm:26
#: ../IkiWiki/Plugin/orphans.pm:37 ../IkiWiki/Render.pm:79
#: ../IkiWiki/Render.pm:149
msgid "discussion"
@@ -320,15 +320,15 @@ msgstr ""
msgid "failed to determine size of image %s"
msgstr ""
-#: ../IkiWiki/Plugin/inline.pm:93
+#: ../IkiWiki/Plugin/inline.pm:92
msgid "Must specify url to wiki with --url when using --rss or --atom"
msgstr ""
-#: ../IkiWiki/Plugin/inline.pm:139
+#: ../IkiWiki/Plugin/inline.pm:138
msgid "page editing not allowed"
msgstr ""
-#: ../IkiWiki/Plugin/inline.pm:156
+#: ../IkiWiki/Plugin/inline.pm:155
msgid "missing pages parameter"
msgstr ""
@@ -337,20 +337,20 @@ msgstr ""
msgid "unknown sort type %s"
msgstr ""
-#: ../IkiWiki/Plugin/inline.pm:285
+#: ../IkiWiki/Plugin/inline.pm:297
msgid "Add a new post titled:"
msgstr ""
-#: ../IkiWiki/Plugin/inline.pm:301
+#: ../IkiWiki/Plugin/inline.pm:318
#, perl-format
msgid "nonexistant template %s"
msgstr ""
-#: ../IkiWiki/Plugin/inline.pm:335 ../IkiWiki/Render.pm:83
+#: ../IkiWiki/Plugin/inline.pm:352 ../IkiWiki/Render.pm:83
msgid "Discussion"
msgstr ""
-#: ../IkiWiki/Plugin/inline.pm:572
+#: ../IkiWiki/Plugin/inline.pm:577
msgid "RPC::XML::Client not found, not pinging"
msgstr ""
@@ -563,16 +563,16 @@ msgstr ""
msgid "need either `percent` or `totalpages` and `donepages` parameters"
msgstr ""
-#: ../IkiWiki/Plugin/recentchanges.pm:100
+#: ../IkiWiki/Plugin/recentchanges.pm:101
msgid "missing page"
msgstr ""
-#: ../IkiWiki/Plugin/recentchanges.pm:102
+#: ../IkiWiki/Plugin/recentchanges.pm:103
#, perl-format
msgid "The page %s does not exist."
msgstr ""
-#: ../IkiWiki/Plugin/recentchangesdiff.pm:36
+#: ../IkiWiki/Plugin/recentchangesdiff.pm:37
msgid "(Diff truncated)"
msgstr ""
@@ -935,41 +935,41 @@ msgstr ""
msgid " ikiwiki --setup configfile"
msgstr ""
-#: ../ikiwiki.in:90
+#: ../ikiwiki.in:91
msgid "usage: --set var=value"
msgstr ""
-#: ../ikiwiki.in:138
+#: ../ikiwiki.in:139
msgid "generating wrappers.."
msgstr ""
-#: ../ikiwiki.in:195
+#: ../ikiwiki.in:197
msgid "rebuilding wiki.."
msgstr ""
-#: ../ikiwiki.in:198
+#: ../ikiwiki.in:200
msgid "refreshing wiki.."
msgstr ""
-#: ../IkiWiki.pm:473
+#: ../IkiWiki.pm:480
msgid "Must specify url to wiki with --url when using --cgi"
msgstr ""
-#: ../IkiWiki.pm:519
+#: ../IkiWiki.pm:526
msgid "cannot use multiple rcs plugins"
msgstr ""
-#: ../IkiWiki.pm:548
+#: ../IkiWiki.pm:555
#, perl-format
msgid "failed to load external plugin needed for %s plugin: %s"
msgstr ""
-#: ../IkiWiki.pm:1172
+#: ../IkiWiki.pm:1187
#, perl-format
msgid "preprocessing loop detected on %s at depth %i"
msgstr ""
-#: ../IkiWiki.pm:1673
+#: ../IkiWiki.pm:1688
msgid "yes"
msgstr ""
--
cgit v1.2.3
From 446740cfbb621200ba8f7262a06959dbe24e2d8f Mon Sep 17 00:00:00 2001
From: Simon McVittie
Date: Sun, 21 Sep 2008 19:37:52 +0100
Subject: style.css: reduce the scope of the .author rule to when it's nested
in .inlineheader
In the initial template for blog-style comments, I don't want the author
name to be quite as large and prominent as the author of a blog post - I
expect that comments will be rather short, so the author name stands out
better for a given font size.
---
doc/style.css | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'doc')
diff --git a/doc/style.css b/doc/style.css
index 5787ef65e..9086c5023 100644
--- a/doc/style.css
+++ b/doc/style.css
@@ -12,7 +12,7 @@
display: block;
}
-.author {
+.inlineheader .author {
margin: 0;
font-size: 18px;
font-weight: bold;
--
cgit v1.2.3
From 7bd9f368b6ec23eb364c0ebec08516cfb75b2f18 Mon Sep 17 00:00:00 2001
From: Simon McVittie
Date: Sun, 21 Sep 2008 19:42:38 +0100
Subject: Add some basic stylesheet rules for smcvpostcomment
---
doc/style.css | 5 +++++
1 file changed, 5 insertions(+)
(limited to 'doc')
diff --git a/doc/style.css b/doc/style.css
index 9086c5023..a30c5556f 100644
--- a/doc/style.css
+++ b/doc/style.css
@@ -372,3 +372,8 @@ legend {
span.color {
padding: 2px;
}
+
+.smcvpostcomment-page .author { font-weight: bold; }
+.smcvpostcomment-page { border: 1px inset #999; margin: 3px; padding: 3px; }
+.smcvpostcomment-header { font-style: italic; }
+.smcvpostcomment-subject { font-weight: bold; border-bottom: 1px solid #999; }
--
cgit v1.2.3
From 2857b301e76dba92f550ac3f5077dcad068d2686 Mon Sep 17 00:00:00 2001
From: Simon McVittie
Date: Mon, 17 Nov 2008 10:40:49 +0000
Subject: smcvpostcomment_*.tmpl: make class names match template names
Also put "posting comments disabled" in [], and change "Page preview"
to "Comment preview".
---
doc/style.css | 4 ++--
templates/smcvpostcomment_display.tmpl | 4 ++--
templates/smcvpostcomment_embed.tmpl | 4 ++--
templates/smcvpostcomment_form.tmpl | 9 ++++++---
4 files changed, 12 insertions(+), 9 deletions(-)
(limited to 'doc')
diff --git a/doc/style.css b/doc/style.css
index a30c5556f..896ac2b01 100644
--- a/doc/style.css
+++ b/doc/style.css
@@ -373,7 +373,7 @@ span.color {
padding: 2px;
}
-.smcvpostcomment-page .author { font-weight: bold; }
-.smcvpostcomment-page { border: 1px inset #999; margin: 3px; padding: 3px; }
+.smcvpostcomment-display .author { font-weight: bold; }
+.smcvpostcomment-display { border: 1px inset #999; margin: 3px; padding: 3px; }
.smcvpostcomment-header { font-style: italic; }
.smcvpostcomment-subject { font-weight: bold; border-bottom: 1px solid #999; }
diff --git a/templates/smcvpostcomment_display.tmpl b/templates/smcvpostcomment_display.tmpl
index 32618d94d..1b67f9094 100644
--- a/templates/smcvpostcomment_display.tmpl
+++ b/templates/smcvpostcomment_display.tmpl
@@ -1,4 +1,4 @@
-
-
-
-
-
-
-Subject:
-
-
-
-HTML is not allowed.
-IkiWiki directives ([[!directive]]) are not allowed.
-
-
-
-
-
-Comment preview:
-
-
-
-
-
-
-
--
cgit v1.2.3
From 574640b06943939d08ff99833f8028e091a6daf2 Mon Sep 17 00:00:00 2001
From: tschwinge
Date: Thu, 11 Dec 2008 19:36:36 -0500
Subject: Fix cut'n'past-o.
---
doc/plugins/cutpaste.mdwn | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'doc')
diff --git a/doc/plugins/cutpaste.mdwn b/doc/plugins/cutpaste.mdwn
index 1b78e60fc..f74f8a269 100644
--- a/doc/plugins/cutpaste.mdwn
+++ b/doc/plugins/cutpaste.mdwn
@@ -1,4 +1,4 @@
-[[!template id=plugin name=toggle author="[[Enrico]]"]]
+[[!template id=plugin name=cutpaste author="[[Enrico]]"]]
[[!tag type/chrome]]
This plugin provides the [[ikiwiki/directive/cut]],
--
cgit v1.2.3
From 0983f4c81e8ac1e8ed6fc9a6e7d1165fd5387f70 Mon Sep 17 00:00:00 2001
From: tschwinge
Date: Thu, 11 Dec 2008 19:38:53 -0500
Subject: Fix too much quoting.
---
doc/ikiwiki/directive/cutpaste.mdwn | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
(limited to 'doc')
diff --git a/doc/ikiwiki/directive/cutpaste.mdwn b/doc/ikiwiki/directive/cutpaste.mdwn
index 012367bdf..ca580e54f 100644
--- a/doc/ikiwiki/directive/cutpaste.mdwn
+++ b/doc/ikiwiki/directive/cutpaste.mdwn
@@ -17,11 +17,11 @@ follow the paste directive that uses its text. In fact, this is quite useful
to postpone big blocks of text like long annotations and have a more natural
flow. For example:
- \[[!toggleable id="cut" text="\[[!paste id=cutlongdesc]]"]]
- \[[!toggleable id="copy" text="\[[!paste id=copylongdesc]]"]]
- \[[!toggleable id="paste" text="\[[!paste id=pastelongdesc]]"]]
+ \[[!toggleable id="cut" text="[[!paste id=cutlongdesc]]"]]
+ \[[!toggleable id="copy" text="[[!paste id=copylongdesc]]"]]
+ \[[!toggleable id="paste" text="[[!paste id=pastelongdesc]]"]]
- \[...some time later...]
+ [...some time later...]
\[[!cut id=cutlongdesc text="""
blah blah blah
@@ -40,7 +40,7 @@ Since you can paste without using double quotes, copy and paste can be used to
nest directives that require multiline parameters inside each other:
\[[!toggleable id=foo text="""
- \[[!toggleable id=bar text="\[[!paste id=baz]]"]]
+ [[!toggleable id=bar text="[[!paste id=baz]]"]]
"""]]
\[[!cut id=baz text="""
--
cgit v1.2.3
From 35dcd53cf4ccd3cea9cfb72e23c0fb1a33a14980 Mon Sep 17 00:00:00 2001
From: justin
Date: Fri, 12 Dec 2008 00:40:00 -0500
Subject: adding setup note
---
doc/bugs/IkiWiki::Wrapper_should_use_destdir.mdwn | 5 +++++
1 file changed, 5 insertions(+)
create mode 100644 doc/bugs/IkiWiki::Wrapper_should_use_destdir.mdwn
(limited to 'doc')
diff --git a/doc/bugs/IkiWiki::Wrapper_should_use_destdir.mdwn b/doc/bugs/IkiWiki::Wrapper_should_use_destdir.mdwn
new file mode 100644
index 000000000..0a1efa394
--- /dev/null
+++ b/doc/bugs/IkiWiki::Wrapper_should_use_destdir.mdwn
@@ -0,0 +1,5 @@
+In IkiWiki/Wrapper.pm, the gen_wrapper function finds out what srcdir and destdir are set to in the config, but does not use them.
+
+Later in the sub, when a new wiki.cgi wrapper is being created when calling ikiwiki --setup /path/to/setup, it will only work if cgi\_wrapper in the config file is set to the full path. Otherwise, it creates wiki.cgi in the current working directory. It works with the other wrapper it sets up in my config - post\_update (using git), as that shows in the config with a full path.
+
+One workaround would be to mention in the setup file that cgi_wrapper has to be the full path, not just the file name, but that seems silly when destdir is also specified in that file and that's where it should go, and $config{destdir} is a known value in the Wrapper.pm file.
--
cgit v1.2.3
From 53c122b3bb0c1b44b1f1a0968d728d58d7aee9ae Mon Sep 17 00:00:00 2001
From: "http://john.choffee.co.uk/"
Date: Fri, 12 Dec 2008 05:22:53 -0500
Subject:
---
...ubber__95__skip_setting.___40__patch__41__.mdwn | 62 ++++++++++++++++++++++
1 file changed, 62 insertions(+)
create mode 100644 doc/bugs/Meta_plugin_does_not_respect_htmlscrubber__95__skip_setting.___40__patch__41__.mdwn
(limited to 'doc')
diff --git a/doc/bugs/Meta_plugin_does_not_respect_htmlscrubber__95__skip_setting.___40__patch__41__.mdwn b/doc/bugs/Meta_plugin_does_not_respect_htmlscrubber__95__skip_setting.___40__patch__41__.mdwn
new file mode 100644
index 000000000..9d67d6662
--- /dev/null
+++ b/doc/bugs/Meta_plugin_does_not_respect_htmlscrubber__95__skip_setting.___40__patch__41__.mdwn
@@ -0,0 +1,62 @@
+I have been trying to include some meta info using the link setting something like the below
+
+ meta link="http://www.example.com/" rel="command" name="Example"
+
+This gets removed by the htmlscrubber as you would expect.
+
+Setting htmlscrubber_skip to the pagespec should stop this getting scrubbed but it does not.
+
+Below is a patch to fix that. It seams to work but I am not sure of it is the correct thing to do.
+
+--- meta.pm 2008-12-11 17:50:33.000000000 +0000
++++ meta.pm.orig 2008-12-10 17:41:23.000000000 +0000
+@@ -38,9 +38,10 @@
+ }
+ }
+
+-sub scrub (@) { #{{{
++sub scrub ($) { #{{{
+ if (IkiWiki::Plugin::htmlscrubber->can("sanitize")) {
+- return IkiWiki::Plugin::htmlscrubber::sanitize(content => shift, destpage => shift);
++ #return IkiWiki::Plugin::htmlscrubber::sanitize(content => shift);
++ return shift;
+ }
+ else {
+ return shift;
+@@ -137,7 +138,7 @@
+ elsif ($key eq 'permalink') {
+ if (safeurl($value)) {
+ $pagestate{$page}{meta}{permalink}=$value;
+- push @{$metaheaders{$page}}, scrub('', $page);
++ push @{$metaheaders{$page}}, scrub('');
+ }
+ }
+ elsif ($key eq 'stylesheet') {
+@@ -206,7 +207,7 @@
+ my $delay=int(exists $params{delay} ? $params{delay} : 0);
+ my $redir="";
+ if (! $safe) {
+- $redir=scrub($redir, $page);
++ $redir=scrub($redir);
+ }
+ push @{$metaheaders{$page}}, $redir;
+ }
+@@ -216,7 +217,7 @@
+ join(" ", map {
+ encode_entities($_)."=\"".encode_entities(decode_entities($params{$_}))."\""
+ } keys %params).
+- " />\n", $page);
++ " />\n");
+ }
+ }
+ elsif ($key eq 'robots') {
+@@ -225,7 +226,7 @@
+ }
+ else {
+ push @{$metaheaders{$page}}, scrub('', $page);
++ '" content="'.encode_entities($value).'" />');
+ }
+
+ return "";
+
--
cgit v1.2.3
From b8c16705006a8f4562bd2f2b525a9d978ed18a8b Mon Sep 17 00:00:00 2001
From: "http://smcv.pseudorandom.co.uk/"
Date: Fri, 12 Dec 2008 06:29:02 -0500
Subject: update with some more code improvements
---
doc/plugins/contrib/comments.mdwn | 17 +++++++++--------
1 file changed, 9 insertions(+), 8 deletions(-)
(limited to 'doc')
diff --git a/doc/plugins/contrib/comments.mdwn b/doc/plugins/contrib/comments.mdwn
index a832c571a..47295ebe1 100644
--- a/doc/plugins/contrib/comments.mdwn
+++ b/doc/plugins/contrib/comments.mdwn
@@ -50,12 +50,12 @@ can use the following additional ``s:
* `COMMENTAUTHORURL`: if the user was signed in with an OpenID, that URL; if the user was signed
in with some other username, a CGI URL that redirects to their user page (if any)
-This plugin also adds a `\[[!comment]]` directive which is used when storing comments. This
-directive shouldn't be used on pages that are edited in the usual way.
+This plugin also adds a `\[[!_comment]]` directive which is used when storing comments. This
+directive is for internal use only and shouldn't be used on pages that are edited in the usual way.
This plugin aims to close the [[todo]] item "[[todo/supporting_comments_via_disussion_pages]]",
and is currently available from [[smcv]]'s git repository on git.pseudorandom.co.uk (it's the
-`comments-rebase1` branch). A demo wiki with the plugin enabled is running at
+`comments-rebase2` branch). A demo wiki with the plugin enabled is running at
; the
[sandbox page](http://www.pseudorandom.co.uk/2008/ikiwiki/demo/sandbox/#comments) has some
examples of comments.
@@ -67,11 +67,8 @@ Known issues:
* There is some common code cargo-culted from other plugins (notably inline and editpage) which
should probably be shared
* Joey doesn't think it should necessarily use internal pages (see [[discussion]])
-* `\[[!comment]]` should perhaps be `\[[!_comment]]`, or a special filter/htmlize hook rather
- than being a directive at all
* Previews always say "unknown IP address"
-* [[todo/inline_plugin:_ability_to_override_the_feed_name]]
-* [[todo/inline_plugin:_hide_feed_buttons_if_empty]]
+* Add `COMMENTOPENID`: the authenticated/verified user name, if and only if it was an OpenID
> I haven't done a detailed code review, but I will say I'm pleased you
> avoided re-implementing inline! --[[Joey]]
@@ -84,5 +81,9 @@ Fixed issues:
* tbm wanted anonymous people to be able to enter their name and possibly email
address; a name and website can now be supplied
* There is now an indication of who you're signed in as
-* Each comment is now one big \[[!comment]] directive invocation, avoiding previous
+* Each comment is now one big \[[!_comment]] directive invocation, avoiding previous
issues with unambiguous and un-spoofable metadata
+* `\[[!comment]]` should be `\[[!_comment]]`, or a special filter/htmlize hook rather
+ than being a directive at all
+* [[todo/inline_plugin:_ability_to_override_the_feed_name]]
+* [[todo/inline_plugin:_hide_feed_buttons_if_empty]]
--
cgit v1.2.3
From 5625be3bcd76b5990cb7799437def3521cc53a9d Mon Sep 17 00:00:00 2001
From: "http://smcv.pseudorandom.co.uk/"
Date: Fri, 12 Dec 2008 06:34:51 -0500
Subject: Another TODO item
---
doc/plugins/contrib/comments.mdwn | 2 ++
1 file changed, 2 insertions(+)
(limited to 'doc')
diff --git a/doc/plugins/contrib/comments.mdwn b/doc/plugins/contrib/comments.mdwn
index 47295ebe1..d2ca8d17d 100644
--- a/doc/plugins/contrib/comments.mdwn
+++ b/doc/plugins/contrib/comments.mdwn
@@ -69,6 +69,8 @@ Known issues:
* Joey doesn't think it should necessarily use internal pages (see [[discussion]])
* Previews always say "unknown IP address"
* Add `COMMENTOPENID`: the authenticated/verified user name, if and only if it was an OpenID
+* The default template should have a (?) icon next to unauthenticated users (with the IP address
+ as title) and an OpenID icon next to OpenIDs
> I haven't done a detailed code review, but I will say I'm pleased you
> avoided re-implementing inline! --[[Joey]]
--
cgit v1.2.3
From 88e8d4bf8d99b6df83deb680f1ed8685e6447875 Mon Sep 17 00:00:00 2001
From: Joey Hess
Date: Fri, 12 Dec 2008 14:06:45 -0500
Subject: meta: Pass info to htmlscrubber so htmlscrubber_skip can take effect.
---
IkiWiki/Plugin/meta.pm | 13 +++---
debian/changelog | 1 +
...ubber__95__skip_setting.___40__patch__41__.mdwn | 53 +---------------------
3 files changed, 9 insertions(+), 58 deletions(-)
(limited to 'doc')
diff --git a/IkiWiki/Plugin/meta.pm b/IkiWiki/Plugin/meta.pm
index 8d444109f..3991797c0 100644
--- a/IkiWiki/Plugin/meta.pm
+++ b/IkiWiki/Plugin/meta.pm
@@ -38,9 +38,10 @@ sub needsbuild (@) { #{{{
}
}
-sub scrub ($) { #{{{
+sub scrub ($$) { #{{{
if (IkiWiki::Plugin::htmlscrubber->can("sanitize")) {
- return IkiWiki::Plugin::htmlscrubber::sanitize(content => shift);
+ return IkiWiki::Plugin::htmlscrubber::sanitize(
+ content => shift, destpage => shift);
}
else {
return shift;
@@ -137,7 +138,7 @@ sub preprocess (@) { #{{{
elsif ($key eq 'permalink') {
if (safeurl($value)) {
$pagestate{$page}{meta}{permalink}=$value;
- push @{$metaheaders{$page}}, scrub('');
+ push @{$metaheaders{$page}}, scrub('', $destpage);
}
}
elsif ($key eq 'stylesheet') {
@@ -206,7 +207,7 @@ sub preprocess (@) { #{{{
my $delay=int(exists $params{delay} ? $params{delay} : 0);
my $redir="";
if (! $safe) {
- $redir=scrub($redir);
+ $redir=scrub($redir, $destpage);
}
push @{$metaheaders{$page}}, $redir;
}
@@ -216,7 +217,7 @@ sub preprocess (@) { #{{{
join(" ", map {
encode_entities($_)."=\"".encode_entities(decode_entities($params{$_}))."\""
} keys %params).
- " />\n");
+ " />\n", $destpage);
}
}
elsif ($key eq 'robots') {
@@ -225,7 +226,7 @@ sub preprocess (@) { #{{{
}
else {
push @{$metaheaders{$page}}, scrub('');
+ '" content="'.encode_entities($value).'" />', $destpage);
}
return "";
diff --git a/debian/changelog b/debian/changelog
index 1ff78d749..bf14860dd 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -13,6 +13,7 @@ ikiwiki (2.71) UNRELEASED; urgency=low
* inline: Support emptyfeeds=no option to skip generating empty feeds.
* inline: Support feedfile option to change the filename of the feed
generated.
+ * meta: Pass info to htmlscrubber so htmlscrubber_skip can take effect.
-- Joey Hess Mon, 17 Nov 2008 14:02:10 -0500
diff --git a/doc/bugs/Meta_plugin_does_not_respect_htmlscrubber__95__skip_setting.___40__patch__41__.mdwn b/doc/bugs/Meta_plugin_does_not_respect_htmlscrubber__95__skip_setting.___40__patch__41__.mdwn
index 9d67d6662..0e40da551 100644
--- a/doc/bugs/Meta_plugin_does_not_respect_htmlscrubber__95__skip_setting.___40__patch__41__.mdwn
+++ b/doc/bugs/Meta_plugin_does_not_respect_htmlscrubber__95__skip_setting.___40__patch__41__.mdwn
@@ -8,55 +8,4 @@ Setting htmlscrubber_skip to the pagespec should stop this getting scrubbed but
Below is a patch to fix that. It seams to work but I am not sure of it is the correct thing to do.
---- meta.pm 2008-12-11 17:50:33.000000000 +0000
-+++ meta.pm.orig 2008-12-10 17:41:23.000000000 +0000
-@@ -38,9 +38,10 @@
- }
- }
-
--sub scrub (@) { #{{{
-+sub scrub ($) { #{{{
- if (IkiWiki::Plugin::htmlscrubber->can("sanitize")) {
-- return IkiWiki::Plugin::htmlscrubber::sanitize(content => shift, destpage => shift);
-+ #return IkiWiki::Plugin::htmlscrubber::sanitize(content => shift);
-+ return shift;
- }
- else {
- return shift;
-@@ -137,7 +138,7 @@
- elsif ($key eq 'permalink') {
- if (safeurl($value)) {
- $pagestate{$page}{meta}{permalink}=$value;
-- push @{$metaheaders{$page}}, scrub('', $page);
-+ push @{$metaheaders{$page}}, scrub('');
- }
- }
- elsif ($key eq 'stylesheet') {
-@@ -206,7 +207,7 @@
- my $delay=int(exists $params{delay} ? $params{delay} : 0);
- my $redir="";
- if (! $safe) {
-- $redir=scrub($redir, $page);
-+ $redir=scrub($redir);
- }
- push @{$metaheaders{$page}}, $redir;
- }
-@@ -216,7 +217,7 @@
- join(" ", map {
- encode_entities($_)."=\"".encode_entities(decode_entities($params{$_}))."\""
- } keys %params).
-- " />\n", $page);
-+ " />\n");
- }
- }
- elsif ($key eq 'robots') {
-@@ -225,7 +226,7 @@
- }
- else {
- push @{$metaheaders{$page}}, scrub('', $page);
-+ '" content="'.encode_entities($value).'" />');
- }
-
- return "";
-
+> [[done]], thanks for the patch --[[Joey]]
--
cgit v1.2.3
From 9d5075ab521a24d718a2b663e11856c8cc80eb03 Mon Sep 17 00:00:00 2001
From: Joey Hess
Date: Fri, 12 Dec 2008 14:52:05 -0500
Subject: first pass through comments documentation
Moved documentation out of contrib.
Mostly tweaked some wording. Moved documentation of various bits to other
pages (pagespec, etc), and linked to those.
Documented the new templates in wikitemplates.
Small quantities of documentation were removed. Particularly the list of
template variables, which I think is fairly obvious when editing the
template.
---
doc/ikiwiki/pagespec.mdwn | 2 +
doc/plugins/anonok.mdwn | 7 +-
doc/plugins/comments.mdwn | 52 +++++++++
doc/plugins/comments/discussion.mdwn | 160 +++++++++++++++++++++++++++
doc/plugins/contrib/comments.mdwn | 91 ---------------
doc/plugins/contrib/comments/discussion.mdwn | 160 ---------------------------
doc/plugins/lockedit.mdwn | 4 +
doc/wikitemplates.mdwn | 4 +
8 files changed, 228 insertions(+), 252 deletions(-)
create mode 100644 doc/plugins/comments.mdwn
create mode 100644 doc/plugins/comments/discussion.mdwn
delete mode 100644 doc/plugins/contrib/comments.mdwn
delete mode 100644 doc/plugins/contrib/comments/discussion.mdwn
(limited to 'doc')
diff --git a/doc/ikiwiki/pagespec.mdwn b/doc/ikiwiki/pagespec.mdwn
index c78666c40..90b96c936 100644
--- a/doc/ikiwiki/pagespec.mdwn
+++ b/doc/ikiwiki/pagespec.mdwn
@@ -47,6 +47,8 @@ Some more elaborate limits can be added to what matches using these functions:
wiki admins.
* "`ip(address)`" - tests whether a modification is being made from the
specified IP address.
+* "`postcomment(glob)`" - matches internal-use pages created by the
+ comments plugin as comments for pages that match the specified glob.
For example, to match all pages in a blog that link to the page about music
and were written in 2005:
diff --git a/doc/plugins/anonok.mdwn b/doc/plugins/anonok.mdwn
index 2a8a922cd..ab2f744e2 100644
--- a/doc/plugins/anonok.mdwn
+++ b/doc/plugins/anonok.mdwn
@@ -5,5 +5,10 @@ By default, anonymous users cannot edit the wiki. This plugin allows
anonymous web users, who have not signed in, to edit any page in the wiki
by default.
-The plugin also has a configuration setting, `anonok_pagespec`. This
+The plugin also has a configuration setting, `anonok_pages`. This
[[PageSpec]] can be used to allow anonymous editing of matching pages.
+
+If you're using the [[comments]] plugin, you can allow anonymous comments
+to be posted by setting:
+
+ anonok_pages => "postcomment(*)"
diff --git a/doc/plugins/comments.mdwn b/doc/plugins/comments.mdwn
new file mode 100644
index 000000000..347d7fc8d
--- /dev/null
+++ b/doc/plugins/comments.mdwn
@@ -0,0 +1,52 @@
+[[!template id=plugin name=comments author="[[Simon_McVittie|smcv]]"]]
+[[!tag type/useful]]
+
+This plugin adds "blog-style" comments. Unlike the wiki-style freeform
+Discussion pages, these comments are posted by a simple form, cannot later
+be edited, and rss/atom feeds are provided of each page's comments.
+
+When using this plugin, you should also enable [[htmlscrubber]] and either
+[[htmltidy]] or [[htmlbalance]]. Directives are filtered out by default, to
+avoid commenters slowing down the wiki by causing time-consuming
+processing. As long as the recommended plugins are enabled, comment
+authorship should hopefully be unforgeable by CGI users.
+
+The intention is that on a non-wiki site (like a blog) you can lock all
+pages for admin-only access, then allow otherwise unprivileged (or perhaps
+even anonymous) users to comment on posts. See the documentation of the
+[[lockedit]] and [[anonok]] pages for details on locking down a wiki so
+users can only post comments.
+
+Individual comments are stored as internal-use pages named something like
+`page/comment_1`, `page/comment_2`, etc. These pages internally use a
+`\[[!_comment]]` [[ikiwiki/directive]], and comment pages can be matched
+using a special `postcomment()` [[ikiwiki/PageSpec]].
+
+There are some global options for the setup file:
+
+* `comments_shown_pagespec`: pages where comments will be displayed inline,
+ e.g. `blog/*` or `!*/discussion`.
+* `comments_open_pagespec`: pages where new comments can be posted, e.g.
+ `blog/* and created_after(close_old_comments)` or `!*/discussion`
+* `comments_pagename`: if this is e.g. `comment_` (the default), then
+ comment pages will be named something like `page/comment_12`
+* `comments_allowdirectives`: if true (default false), comments may
+ contain IkiWiki [[directives|ikiwiki/directive]]
+* `comments_commit`: if true (default true), comments will be committed to
+ the version control system
+* `comments_allowauthor`: if true (default false), anonymous commenters may
+ specify a name for themselves, and the \[[!meta author]] and
+ \[[!meta authorurl]] directives will not be overridden by the comments
+ plugin
+
+Known issues:
+
+* Needs code review
+* The access control via postcomment() is rather strange (see [[discussion]] for more details)
+* There is some common code cargo-culted from other plugins (notably inline and editpage) which
+ should probably be shared
+* Joey doesn't think it should necessarily use internal pages (see [[discussion]])
+* Previews always say "unknown IP address"
+* Add `COMMENTOPENID`: the authenticated/verified user name, if and only if it was an OpenID
+* The default template should have a (?) icon next to unauthenticated users (with the IP address
+ as title) and an OpenID icon next to OpenIDs
diff --git a/doc/plugins/comments/discussion.mdwn b/doc/plugins/comments/discussion.mdwn
new file mode 100644
index 000000000..59740ec37
--- /dev/null
+++ b/doc/plugins/comments/discussion.mdwn
@@ -0,0 +1,160 @@
+## Why internal pages? (unresolved)
+
+Comments are saved as internal pages, so they can never be edited through the CGI,
+only by direct committers.
+
+> So, why do it this way, instead of using regular wiki pages in a
+> namespace, such as `$page/comments/*`? Then you could use [[plugins/lockedit]] to
+> limit editing of comments in more powerful ways. --[[Joey]]
+
+>> Er... I suppose so. I'd assumed that these pages ought to only exist as inlines
+>> rather than as individual pages (same reasoning as aggregated posts), though.
+>>
+>> lockedit is actually somewhat insufficient, since `check_canedit()`
+>> doesn't distinguish between creation and editing; I'd have to continue to use
+>> some sort of odd hack to allow creation but not editing.
+>>
+>> I also can't think of any circumstance where you'd want a user other than
+>> admins (~= git committers) and possibly the commenter (who we can't check for
+>> at the moment anyway, I don't think?) to be able to edit comments - I think
+>> user expectations for something that looks like ordinary blog comments are
+>> likely to include "others can't put words into my mouth".
+>>
+>> My other objection to using a namespace is that I'm not particularly happy about
+>> plugins consuming arbitrary pieces of the wiki namespace - /discussion is bad
+>> enough already. Indeed, this very page would accidentally get matched by rules
+>> aiming to control comment-posting... :-) --[[smcv]]
+
+>>> Thinking about it, perhaps one way to address this would be to have the suffix
+>>> (e.g. whether commenting on Sandbox creates sandbox/comment1 or sandbox/c1 or
+>>> what) be configurable by the wiki admin, in the same way that recentchanges has
+>>> recentchangespage => 'recentchanges'? I'd like to see fewer hard-coded page
+>>> names in general, really - it seems odd to me that shortcuts and smileys
+>>> hard-code the name of the page to look at. Perhaps I could add
+>>> discussionpage => 'discussion' too? --[[smcv]]
+
+>>> (I've now implemented this in my branch. --[[smcv]])
+
+>> The best reason to keep the pages internal seems to me to be that you
+>> don't want the overhead of every comment spawning its own wiki page. --[[Joey]]
+
+## Formats (resolved)
+
+The plugin now allows multiple comment formats while still using internal
+pages; each comment is saved as a page containing one `\[[!comment]]` directive,
+which has a superset of the functionality of [[ikiwiki/directives/format]].
+
+## Access control (unresolved?)
+
+By the way, I think that who can post comments should be controllable by
+the existing plugins opendiscussion, anonok, signinedit, and lockedit. Allowing
+posting comments w/o any login, while a nice capability, can lead to
+spam problems. So, use `check_canedit` as at least a first-level check?
+--[[Joey]]
+
+> This plugin already uses `check_canedit`, but that function doesn't have a concept
+> of different actions. The hack I use is that when a user comments on, say, sandbox,
+> I call `check_canedit` for the pseudo-page "sandbox[postcomment]". The
+> special `postcomment(glob)` [[ikiwiki/pagespec]] returns true if the page ends with
+> "[postcomment]" and the part before (e.g. sandbox) matches the glob. So, you can
+> have postcomment(blog/*) or something. (Perhaps instead of taking a glob, postcomment
+> should take a pagespec, so you can have postcomment(link(tags/commentable))?)
+>
+> This is why `anonok_pages => 'postcomment(*)'` and `locked_pages => '!postcomment(*)'`
+> are necessary to allow anonymous and logged-in editing (respectively).
+>
+> This is ugly - one alternative would be to add `check_permission()` that takes a
+> page and a verb (create, edit, rename, remove and maybe comment are the ones I
+> can think of so far), use that, and port the plugins you mentioned to use that
+> API too. This plugin could either call `check_can("$page/comment1", 'create')` or
+> call `check_can($page, 'comment')`.
+>
+> One odd effect of the code structure I've used is that we check for the ability to
+> create the page before we actually know what page name we're going to use - when
+> posting the comment I just increment a number until I reach an unused one - so
+> either the code needs restructuring, or the permission check for 'create' would
+> always be for 'comment1' and never 'comment123'. --[[smcv]]
+
+>> Now resolved, in fact --[[smcv]]
+
+> Another possibility is to just check for permission to edit (e.g.) `sandbox/comment1`.
+> However, this makes the "comments can only be created, not edited" feature completely
+> reliant on the fact that internal pages can't be edited. Perhaps there should be a
+> `editable_pages` pagespec, defaulting to `'*'`? --[[smcv]]
+
+## comments directive vs global setting (resolved?)
+
+When comments have been enabled generally, you still need to mark which pages
+can have comments, by including the `\[[!comments]]` directive in them. By default,
+this directive expands to a "post a comment" link plus an `\[[!inline]]` with
+the comments. [This requirement has now been removed --[[smcv]]]
+
+> I don't like this, because it's hard to explain to someone why they have
+> to insert this into every post to their blog. Seems that the model used
+> for discussion pages could work -- if comments are enabled, automatically
+> add the comment posting form and comments to the end of each page.
+> --[[Joey]]
+
+>> I don't think I'd want comments on *every* page (particularly, not the
+>> front page). Perhaps a pagespec in the setup file, where the default is "*"?
+>> Then control freaks like me could use "link(tags/comments)" and tag pages
+>> as allowing comments.
+>>
+>>> Yes, I think a pagespec is the way to go. --[[Joey]]
+
+>>>> Implemented --[[smcv]]
+
+>>
+>> The model used for discussion pages does require patching the existing
+>> page template, which I was trying to avoid - I'm not convinced that having
+>> every possible feature hard-coded there really scales (and obviously it's
+>> rather annoying while this plugin is on a branch). --[[smcv]]
+
+>>> Using the template would allow customising the html around the comments
+>>> which seems like a good thing? --[[Joey]]
+
+>>>> The \[[!comments]] directive is already template-friendly - it expands to
+>>>> the contents of the template `comments_embed.tmpl`, possibly with the
+>>>> result of an \[[!inline]] appended. I should change `comments_embed.tmpl`
+>>>> so it uses a template variable `INLINE` for the inline result rather than
+>>>> having the perl code concatenate it, which would allow a bit more
+>>>> customization (whether the "post" link was before or after the inline).
+>>>> Even if you want comments in page.tmpl, keeping the separate comments_embed.tmpl
+>>>> and having a `COMMENTS` variable in page.tmpl might be the way forward,
+>>>> since the smaller each templates is, the easier it will be for users
+>>>> to maintain a patched set of templates. (I think so, anyway, based on what happens
+>>>> with dpkg prompts in Debian packages with monolithic vs split
+>>>> conffiles.) --[[smcv]]
+
+>>>>> I've switched my branch to use page.tmpl instead; see what you think? --[[smcv]]
+
+## Raw HTML (resolved?)
+
+Raw HTML was not initially allowed by default (this was configurable).
+
+> I'm not sure that raw html should be a problem, as long as the
+> htmlsanitizer and htmlbalanced plugins are enabled. I can see filtering
+> out directives, as a special case. --[[Joey]]
+
+>> Right, if I sanitize each post individually, with htmlscrubber and either htmltidy
+>> or htmlbalance turned on, then there should be no way the user can forge a comment;
+>> I was initially wary of allowing meta directives, but I think those are OK, as long
+>> as the comment template puts the \[[!meta author]] at the *end*. Disallowing
+>> directives is more a way to avoid commenters causing expensive processing than
+>> anything else, at this point.
+>>
+>> I've rebased the plugin on master, made it sanitize individual posts' content
+>> and removed the option to disallow raw HTML. Sanitizing individual posts before
+>> they've been htmlized required me to preserve whitespace in the htmlbalance
+>> plugin, so I did that. Alternatively, we could htmlize immediately and always
+>> save out raw HTML? --[[smcv]]
+
+>>> There might be some use cases for other directives, such as img, in
+>>> comments.
+>>>
+>>> I don't know if meta is "safe" (ie, guaranteed to be inexpensive and not
+>>> allow users to do annoying things) or if it will continue to be in the
+>>> future. Hard to predict really, all that can be said with certainty is
+>>> all directives will contine to be inexpensive and safe enough that it's
+>>> sensible to allow users to (ab)use them on open wikis.
+>>> --[[Joey]]
diff --git a/doc/plugins/contrib/comments.mdwn b/doc/plugins/contrib/comments.mdwn
deleted file mode 100644
index d2ca8d17d..000000000
--- a/doc/plugins/contrib/comments.mdwn
+++ /dev/null
@@ -1,91 +0,0 @@
-[[!template id=plugin name=comments author="[[Simon_McVittie|smcv]]"]]
-[[!tag type/useful]]
-
-This plugin adds "blog-style" comments. The intention is that on a non-wiki site
-(like a blog) you can lock all pages for admin-only access, then allow otherwise
-unprivileged (or perhaps even anonymous) users to comment on posts.
-
-When using this plugin, you should also enable [[htmlscrubber]] and either [[htmltidy]]
-or [[htmlbalance]]. Directives are filtered out by default, to avoid commenters slowing
-down the wiki by causing time-consuming processing. As long as the recommended plugins
-are enabled, comment authorship should hopefully be unforgeable by CGI users.
-
-The plugin adds a new [[ikiwiki/PageSpec]] match type, `postcomment`, for use
-with `anonok_pagespec` from the [[plugins/anonok]] plugin or `locked_pages` from
-the [[plugins/lockedit]] plugin. Typical usage would be something like:
-
- locked_pages => "!postcomment(*)"
-
-to allow non-admin users to comment on pages, but not edit anything. You can also do
-
- anonok_pages => "postcomment(*)"
-
-to allow anonymous comments (the IP address will be used as the "author").
-
-There are some global options for the setup file:
-
-* `comments_shown_pagespec`: pages where comments will be displayed inline, e.g. `blog/*`
- or `*/discussion`.
-* `comments_open_pagespec`: pages where new comments can be posted, e.g.
- `blog/* and created_after(close_old_comments)` or `*/discussion`
-* `comments_pagename`: if this is e.g. `comment_` (the default), then comments on the
- [[sandbox]] will be called something like `sandbox/comment_12`
-* `comments_allowdirectives`: if true (default false), comments may contain IkiWiki
- directives
-* `comments_commit`: if true (default true), comments will be committed to the version
- control system
-* `comments_allowauthor`: if true (default false), anonymous commenters may specify a
- name for themselves, and the \[[!meta author]] and \[[!meta authorurl]] directives
- will not be overridden by the comments plugin
-
-Templates that will display comments (by default that means `comments_display.tmpl`)
-can use the following additional ``s:
-
-* `COMMENTUSER`: the authenticated/verified user name, or undefined if the user was not signed in
-* `COMMENTIP`: the remote IP address, or undefined if not known (this is not currently recorded
- for users who are signed in, who are assumed to be vaguely accountable)
-* `COMMENTAUTHOR`: a "prettier" version of the authenticated/verified user name (e.g. OpenIDs are
- formatted the same way as in [[RecentChanges]]), or the result of localizing "Anonymous" if the
- user was not signed in
-* `COMMENTAUTHORURL`: if the user was signed in with an OpenID, that URL; if the user was signed
- in with some other username, a CGI URL that redirects to their user page (if any)
-
-This plugin also adds a `\[[!_comment]]` directive which is used when storing comments. This
-directive is for internal use only and shouldn't be used on pages that are edited in the usual way.
-
-This plugin aims to close the [[todo]] item "[[todo/supporting_comments_via_disussion_pages]]",
-and is currently available from [[smcv]]'s git repository on git.pseudorandom.co.uk (it's the
-`comments-rebase2` branch). A demo wiki with the plugin enabled is running at
-; the
-[sandbox page](http://www.pseudorandom.co.uk/2008/ikiwiki/demo/sandbox/#comments) has some
-examples of comments.
-
-Known issues:
-
-* Needs code review
-* The access control via postcomment() is rather strange (see [[discussion]] for more details)
-* There is some common code cargo-culted from other plugins (notably inline and editpage) which
- should probably be shared
-* Joey doesn't think it should necessarily use internal pages (see [[discussion]])
-* Previews always say "unknown IP address"
-* Add `COMMENTOPENID`: the authenticated/verified user name, if and only if it was an OpenID
-* The default template should have a (?) icon next to unauthenticated users (with the IP address
- as title) and an OpenID icon next to OpenIDs
-
-> I haven't done a detailed code review, but I will say I'm pleased you
-> avoided re-implementing inline! --[[Joey]]
-
-Fixed issues:
-
-* Joey didn't think the `\[[!comments]]` directive was appropriate; comments now appear
- on pages selected with a [[ikiwiki/pagespec]]
-* Joey thought that raw HTML should always be allowed; it now is
-* tbm wanted anonymous people to be able to enter their name and possibly email
- address; a name and website can now be supplied
-* There is now an indication of who you're signed in as
-* Each comment is now one big \[[!_comment]] directive invocation, avoiding previous
- issues with unambiguous and un-spoofable metadata
-* `\[[!comment]]` should be `\[[!_comment]]`, or a special filter/htmlize hook rather
- than being a directive at all
-* [[todo/inline_plugin:_ability_to_override_the_feed_name]]
-* [[todo/inline_plugin:_hide_feed_buttons_if_empty]]
diff --git a/doc/plugins/contrib/comments/discussion.mdwn b/doc/plugins/contrib/comments/discussion.mdwn
deleted file mode 100644
index 59740ec37..000000000
--- a/doc/plugins/contrib/comments/discussion.mdwn
+++ /dev/null
@@ -1,160 +0,0 @@
-## Why internal pages? (unresolved)
-
-Comments are saved as internal pages, so they can never be edited through the CGI,
-only by direct committers.
-
-> So, why do it this way, instead of using regular wiki pages in a
-> namespace, such as `$page/comments/*`? Then you could use [[plugins/lockedit]] to
-> limit editing of comments in more powerful ways. --[[Joey]]
-
->> Er... I suppose so. I'd assumed that these pages ought to only exist as inlines
->> rather than as individual pages (same reasoning as aggregated posts), though.
->>
->> lockedit is actually somewhat insufficient, since `check_canedit()`
->> doesn't distinguish between creation and editing; I'd have to continue to use
->> some sort of odd hack to allow creation but not editing.
->>
->> I also can't think of any circumstance where you'd want a user other than
->> admins (~= git committers) and possibly the commenter (who we can't check for
->> at the moment anyway, I don't think?) to be able to edit comments - I think
->> user expectations for something that looks like ordinary blog comments are
->> likely to include "others can't put words into my mouth".
->>
->> My other objection to using a namespace is that I'm not particularly happy about
->> plugins consuming arbitrary pieces of the wiki namespace - /discussion is bad
->> enough already. Indeed, this very page would accidentally get matched by rules
->> aiming to control comment-posting... :-) --[[smcv]]
-
->>> Thinking about it, perhaps one way to address this would be to have the suffix
->>> (e.g. whether commenting on Sandbox creates sandbox/comment1 or sandbox/c1 or
->>> what) be configurable by the wiki admin, in the same way that recentchanges has
->>> recentchangespage => 'recentchanges'? I'd like to see fewer hard-coded page
->>> names in general, really - it seems odd to me that shortcuts and smileys
->>> hard-code the name of the page to look at. Perhaps I could add
->>> discussionpage => 'discussion' too? --[[smcv]]
-
->>> (I've now implemented this in my branch. --[[smcv]])
-
->> The best reason to keep the pages internal seems to me to be that you
->> don't want the overhead of every comment spawning its own wiki page. --[[Joey]]
-
-## Formats (resolved)
-
-The plugin now allows multiple comment formats while still using internal
-pages; each comment is saved as a page containing one `\[[!comment]]` directive,
-which has a superset of the functionality of [[ikiwiki/directives/format]].
-
-## Access control (unresolved?)
-
-By the way, I think that who can post comments should be controllable by
-the existing plugins opendiscussion, anonok, signinedit, and lockedit. Allowing
-posting comments w/o any login, while a nice capability, can lead to
-spam problems. So, use `check_canedit` as at least a first-level check?
---[[Joey]]
-
-> This plugin already uses `check_canedit`, but that function doesn't have a concept
-> of different actions. The hack I use is that when a user comments on, say, sandbox,
-> I call `check_canedit` for the pseudo-page "sandbox[postcomment]". The
-> special `postcomment(glob)` [[ikiwiki/pagespec]] returns true if the page ends with
-> "[postcomment]" and the part before (e.g. sandbox) matches the glob. So, you can
-> have postcomment(blog/*) or something. (Perhaps instead of taking a glob, postcomment
-> should take a pagespec, so you can have postcomment(link(tags/commentable))?)
->
-> This is why `anonok_pages => 'postcomment(*)'` and `locked_pages => '!postcomment(*)'`
-> are necessary to allow anonymous and logged-in editing (respectively).
->
-> This is ugly - one alternative would be to add `check_permission()` that takes a
-> page and a verb (create, edit, rename, remove and maybe comment are the ones I
-> can think of so far), use that, and port the plugins you mentioned to use that
-> API too. This plugin could either call `check_can("$page/comment1", 'create')` or
-> call `check_can($page, 'comment')`.
->
-> One odd effect of the code structure I've used is that we check for the ability to
-> create the page before we actually know what page name we're going to use - when
-> posting the comment I just increment a number until I reach an unused one - so
-> either the code needs restructuring, or the permission check for 'create' would
-> always be for 'comment1' and never 'comment123'. --[[smcv]]
-
->> Now resolved, in fact --[[smcv]]
-
-> Another possibility is to just check for permission to edit (e.g.) `sandbox/comment1`.
-> However, this makes the "comments can only be created, not edited" feature completely
-> reliant on the fact that internal pages can't be edited. Perhaps there should be a
-> `editable_pages` pagespec, defaulting to `'*'`? --[[smcv]]
-
-## comments directive vs global setting (resolved?)
-
-When comments have been enabled generally, you still need to mark which pages
-can have comments, by including the `\[[!comments]]` directive in them. By default,
-this directive expands to a "post a comment" link plus an `\[[!inline]]` with
-the comments. [This requirement has now been removed --[[smcv]]]
-
-> I don't like this, because it's hard to explain to someone why they have
-> to insert this into every post to their blog. Seems that the model used
-> for discussion pages could work -- if comments are enabled, automatically
-> add the comment posting form and comments to the end of each page.
-> --[[Joey]]
-
->> I don't think I'd want comments on *every* page (particularly, not the
->> front page). Perhaps a pagespec in the setup file, where the default is "*"?
->> Then control freaks like me could use "link(tags/comments)" and tag pages
->> as allowing comments.
->>
->>> Yes, I think a pagespec is the way to go. --[[Joey]]
-
->>>> Implemented --[[smcv]]
-
->>
->> The model used for discussion pages does require patching the existing
->> page template, which I was trying to avoid - I'm not convinced that having
->> every possible feature hard-coded there really scales (and obviously it's
->> rather annoying while this plugin is on a branch). --[[smcv]]
-
->>> Using the template would allow customising the html around the comments
->>> which seems like a good thing? --[[Joey]]
-
->>>> The \[[!comments]] directive is already template-friendly - it expands to
->>>> the contents of the template `comments_embed.tmpl`, possibly with the
->>>> result of an \[[!inline]] appended. I should change `comments_embed.tmpl`
->>>> so it uses a template variable `INLINE` for the inline result rather than
->>>> having the perl code concatenate it, which would allow a bit more
->>>> customization (whether the "post" link was before or after the inline).
->>>> Even if you want comments in page.tmpl, keeping the separate comments_embed.tmpl
->>>> and having a `COMMENTS` variable in page.tmpl might be the way forward,
->>>> since the smaller each templates is, the easier it will be for users
->>>> to maintain a patched set of templates. (I think so, anyway, based on what happens
->>>> with dpkg prompts in Debian packages with monolithic vs split
->>>> conffiles.) --[[smcv]]
-
->>>>> I've switched my branch to use page.tmpl instead; see what you think? --[[smcv]]
-
-## Raw HTML (resolved?)
-
-Raw HTML was not initially allowed by default (this was configurable).
-
-> I'm not sure that raw html should be a problem, as long as the
-> htmlsanitizer and htmlbalanced plugins are enabled. I can see filtering
-> out directives, as a special case. --[[Joey]]
-
->> Right, if I sanitize each post individually, with htmlscrubber and either htmltidy
->> or htmlbalance turned on, then there should be no way the user can forge a comment;
->> I was initially wary of allowing meta directives, but I think those are OK, as long
->> as the comment template puts the \[[!meta author]] at the *end*. Disallowing
->> directives is more a way to avoid commenters causing expensive processing than
->> anything else, at this point.
->>
->> I've rebased the plugin on master, made it sanitize individual posts' content
->> and removed the option to disallow raw HTML. Sanitizing individual posts before
->> they've been htmlized required me to preserve whitespace in the htmlbalance
->> plugin, so I did that. Alternatively, we could htmlize immediately and always
->> save out raw HTML? --[[smcv]]
-
->>> There might be some use cases for other directives, such as img, in
->>> comments.
->>>
->>> I don't know if meta is "safe" (ie, guaranteed to be inexpensive and not
->>> allow users to do annoying things) or if it will continue to be in the
->>> future. Hard to predict really, all that can be said with certainty is
->>> all directives will contine to be inexpensive and safe enough that it's
->>> sensible to allow users to (ab)use them on open wikis.
->>> --[[Joey]]
diff --git a/doc/plugins/lockedit.mdwn b/doc/plugins/lockedit.mdwn
index 71bf232ab..d2e98e07a 100644
--- a/doc/plugins/lockedit.mdwn
+++ b/doc/plugins/lockedit.mdwn
@@ -17,6 +17,10 @@ One handy thing to do if you're using ikiwiki for your blog is to lock
posts in your blog, while still letting them comment via the Discussion
pages.
+Alternatively, if you're using the [[comments]] plugin, you can lock
+"!postcomment(*)" to allow users to comment on pages, but not edit anything
+else.
+
Wiki administrators can always edit locked pages. The [[ikiwiki/PageSpec]]
can specify that some pages are not locked for some users. For example,
"important_page and !user(joey)" locks `important_page` while still
diff --git a/doc/wikitemplates.mdwn b/doc/wikitemplates.mdwn
index babd70211..6fb4d5f49 100644
--- a/doc/wikitemplates.mdwn
+++ b/doc/wikitemplates.mdwn
@@ -29,6 +29,10 @@ located in /usr/share/ikiwiki/templates by default.
form to wiki pages.
* `searchquery.tmpl` - This is an omega template, used by the
[[plugins/search]] plugin.
+* `comments_display.tmpl` - This template is used to display a comment
+ by the [[plugins/comments]] plugin.
+* `comments_form.tmpl` - This template is the comment post form for the
+ [[plugins/comments]] plugin.
The [[plugins/pagetemplate]] plugin can allow individual pages to use a
different template than `page.tmpl`.
--
cgit v1.2.3
From e9797ee0863855da93c7a98612c984fecc8d1e23 Mon Sep 17 00:00:00 2001
From: Joey Hess
Date: Fri, 12 Dec 2008 15:02:40 -0500
Subject: improve documentation of postcomment
---
doc/ikiwiki/pagespec.mdwn | 4 ++--
doc/plugins/comments.mdwn | 3 +--
2 files changed, 3 insertions(+), 4 deletions(-)
(limited to 'doc')
diff --git a/doc/ikiwiki/pagespec.mdwn b/doc/ikiwiki/pagespec.mdwn
index 90b96c936..d4dd265cc 100644
--- a/doc/ikiwiki/pagespec.mdwn
+++ b/doc/ikiwiki/pagespec.mdwn
@@ -47,8 +47,8 @@ Some more elaborate limits can be added to what matches using these functions:
wiki admins.
* "`ip(address)`" - tests whether a modification is being made from the
specified IP address.
-* "`postcomment(glob)`" - matches internal-use pages created by the
- comments plugin as comments for pages that match the specified glob.
+* "`postcomment(glob)`" - matches only when comments are being
+ posted to a page matching the specified glob
For example, to match all pages in a blog that link to the page about music
and were written in 2005:
diff --git a/doc/plugins/comments.mdwn b/doc/plugins/comments.mdwn
index 347d7fc8d..fa263ef40 100644
--- a/doc/plugins/comments.mdwn
+++ b/doc/plugins/comments.mdwn
@@ -19,8 +19,7 @@ users can only post comments.
Individual comments are stored as internal-use pages named something like
`page/comment_1`, `page/comment_2`, etc. These pages internally use a
-`\[[!_comment]]` [[ikiwiki/directive]], and comment pages can be matched
-using a special `postcomment()` [[ikiwiki/PageSpec]].
+`\[[!_comment]]` [[ikiwiki/directive]].
There are some global options for the setup file:
--
cgit v1.2.3
From 6307f5381f9509d973eeb55b43dd1211d8d0f0c0 Mon Sep 17 00:00:00 2001
From: Jon Dowland
Date: Mon, 15 Dec 2008 15:39:07 +0000
Subject: not putting cgi in destdir
---
doc/bugs/IkiWiki::Wrapper_should_use_destdir/discussion.mdwn | 4 ++++
1 file changed, 4 insertions(+)
create mode 100644 doc/bugs/IkiWiki::Wrapper_should_use_destdir/discussion.mdwn
(limited to 'doc')
diff --git a/doc/bugs/IkiWiki::Wrapper_should_use_destdir/discussion.mdwn b/doc/bugs/IkiWiki::Wrapper_should_use_destdir/discussion.mdwn
new file mode 100644
index 000000000..870fa7a66
--- /dev/null
+++ b/doc/bugs/IkiWiki::Wrapper_should_use_destdir/discussion.mdwn
@@ -0,0 +1,4 @@
+Just as a point of information, I do not put my cgi wrapper in the dest
+directory. Instead I configure Apache to relate a specific URI to the cgi via
+ScriptAlias. I would not like things to be changed so that the cgi was put in
+the destdir, so I'd vote instead to comment in the `setup\_file`. -- [[Jon]]
--
cgit v1.2.3
From f6562fb186dd57dc1923b63ab742174fac7eb469 Mon Sep 17 00:00:00 2001
From: Jon Dowland
Date: Mon, 15 Dec 2008 16:09:26 +0000
Subject: add a meta title
---
doc/users/jon.mdwn | 1 +
1 file changed, 1 insertion(+)
(limited to 'doc')
diff --git a/doc/users/jon.mdwn b/doc/users/jon.mdwn
index 72f04e593..3e22ded1d 100644
--- a/doc/users/jon.mdwn
+++ b/doc/users/jon.mdwn
@@ -1,3 +1,4 @@
+[[!meta title="Jon Dowland"]]
I'm looking at ikiwiki both for my personal site but also as a
team-documentation management system for a small-sized group of UNIX
sysadmins.
--
cgit v1.2.3
From df59b3e3cda1350b4efa36555d48f66b980bce1b Mon Sep 17 00:00:00 2001
From: "http://thm.id.fedoraproject.org/"
Date: Tue, 16 Dec 2008 06:54:55 -0500
Subject:
---
..._mtn:_operation_canceled:_Broken_pipe__34__.mdwn | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)
create mode 100644 doc/bugs/bugfix_for:___34__mtn:_operation_canceled:_Broken_pipe__34__.mdwn
(limited to 'doc')
diff --git a/doc/bugs/bugfix_for:___34__mtn:_operation_canceled:_Broken_pipe__34__.mdwn b/doc/bugs/bugfix_for:___34__mtn:_operation_canceled:_Broken_pipe__34__.mdwn
new file mode 100644
index 000000000..fb407a28a
--- /dev/null
+++ b/doc/bugs/bugfix_for:___34__mtn:_operation_canceled:_Broken_pipe__34__.mdwn
@@ -0,0 +1,21 @@
+When using the monotone as revision control system, a "mtn: operation canceled: Broken pipe" message is printed. Reason is that, in a call to mtn, the pipe is closed before mtn has done all its output. This patch fixes the problem.
+
+ diff -up ikiwiki/IkiWiki/Plugin/monotone.pm.orig ikiwiki/IkiWiki/Plugin/monotone.pm
+ --- ikiwiki/IkiWiki/Plugin/monotone.pm.orig 2008-11-12 23:45:24.000000000 +0100
+ +++ ikiwiki/IkiWiki/Plugin/monotone.pm 2008-12-16 12:41:38.000000000 +0100
+ @@ -525,13 +525,12 @@ sub rcs_recentchanges ($) { #{{{
+ my $child = open(MTNLOG, "-|");
+ if (! $child) {
+ exec("mtn", "log", "--root=$config{mtnrootdir}", "--no-graph",
+ - "--brief") || error("mtn log failed to run");
+ + "--brief", "--last=$num") || error("mtn log failed to run");
+ }
+
+ - while (($num >= 0) and (my $line = )) {
+ + while (my $line = ) {
+ if ($line =~ m/^($sha1_pattern)/) {
+ push @revs, $1;
+ - $num -= 1;
+ }
+ }
+ close MTNLOG || debug("mtn log exited $?");
--
cgit v1.2.3
From e0061660c90cfc03f0025853bc111c1642a795b5 Mon Sep 17 00:00:00 2001
From: "http://thm.id.fedoraproject.org/"
Date: Tue, 16 Dec 2008 06:56:19 -0500
Subject:
---
.../bugfix_for:___34__mtn:_operation_canceled:_Broken_pipe__34__.mdwn | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'doc')
diff --git a/doc/bugs/bugfix_for:___34__mtn:_operation_canceled:_Broken_pipe__34__.mdwn b/doc/bugs/bugfix_for:___34__mtn:_operation_canceled:_Broken_pipe__34__.mdwn
index fb407a28a..2167deac4 100644
--- a/doc/bugs/bugfix_for:___34__mtn:_operation_canceled:_Broken_pipe__34__.mdwn
+++ b/doc/bugs/bugfix_for:___34__mtn:_operation_canceled:_Broken_pipe__34__.mdwn
@@ -1,4 +1,4 @@
-When using the monotone as revision control system, a "mtn: operation canceled: Broken pipe" message is printed. Reason is that, in a call to mtn, the pipe is closed before mtn has done all its output. This patch fixes the problem.
+When using monotone as revision control system, a "mtn: operation canceled: Broken pipe" message is printed. Reason is that, in a call to mtn, the pipe is closed before mtn has done all its output. This patch fixes the problem.
diff -up ikiwiki/IkiWiki/Plugin/monotone.pm.orig ikiwiki/IkiWiki/Plugin/monotone.pm
--- ikiwiki/IkiWiki/Plugin/monotone.pm.orig 2008-11-12 23:45:24.000000000 +0100
--
cgit v1.2.3
From 4e97a8d915415e9577a65076e7aa9c2e0d0ae61a Mon Sep 17 00:00:00 2001
From: "http://thm.id.fedoraproject.org/"
Date: Wed, 17 Dec 2008 05:52:10 -0500
Subject: rename
bugs/bugfix_for:___34__mtn:_operation_canceled:_Broken_pipe__34__.mdwn to
bugs/bugfix_for:___38____35__34__59__mtn:_operation_canceled:_Broken_pipe__38____35__34__59_____40__patch__41__.mdwn
---
..._mtn:_operation_canceled:_Broken_pipe__34__.mdwn | 21 ---------------------
..._pipe__38____35__34__59_____40__patch__41__.mdwn | 21 +++++++++++++++++++++
2 files changed, 21 insertions(+), 21 deletions(-)
delete mode 100644 doc/bugs/bugfix_for:___34__mtn:_operation_canceled:_Broken_pipe__34__.mdwn
create mode 100644 doc/bugs/bugfix_for:___38____35__34__59__mtn:_operation_canceled:_Broken_pipe__38____35__34__59_____40__patch__41__.mdwn
(limited to 'doc')
diff --git a/doc/bugs/bugfix_for:___34__mtn:_operation_canceled:_Broken_pipe__34__.mdwn b/doc/bugs/bugfix_for:___34__mtn:_operation_canceled:_Broken_pipe__34__.mdwn
deleted file mode 100644
index 2167deac4..000000000
--- a/doc/bugs/bugfix_for:___34__mtn:_operation_canceled:_Broken_pipe__34__.mdwn
+++ /dev/null
@@ -1,21 +0,0 @@
-When using monotone as revision control system, a "mtn: operation canceled: Broken pipe" message is printed. Reason is that, in a call to mtn, the pipe is closed before mtn has done all its output. This patch fixes the problem.
-
- diff -up ikiwiki/IkiWiki/Plugin/monotone.pm.orig ikiwiki/IkiWiki/Plugin/monotone.pm
- --- ikiwiki/IkiWiki/Plugin/monotone.pm.orig 2008-11-12 23:45:24.000000000 +0100
- +++ ikiwiki/IkiWiki/Plugin/monotone.pm 2008-12-16 12:41:38.000000000 +0100
- @@ -525,13 +525,12 @@ sub rcs_recentchanges ($) { #{{{
- my $child = open(MTNLOG, "-|");
- if (! $child) {
- exec("mtn", "log", "--root=$config{mtnrootdir}", "--no-graph",
- - "--brief") || error("mtn log failed to run");
- + "--brief", "--last=$num") || error("mtn log failed to run");
- }
-
- - while (($num >= 0) and (my $line = )) {
- + while (my $line = ) {
- if ($line =~ m/^($sha1_pattern)/) {
- push @revs, $1;
- - $num -= 1;
- }
- }
- close MTNLOG || debug("mtn log exited $?");
diff --git a/doc/bugs/bugfix_for:___38____35__34__59__mtn:_operation_canceled:_Broken_pipe__38____35__34__59_____40__patch__41__.mdwn b/doc/bugs/bugfix_for:___38____35__34__59__mtn:_operation_canceled:_Broken_pipe__38____35__34__59_____40__patch__41__.mdwn
new file mode 100644
index 000000000..2167deac4
--- /dev/null
+++ b/doc/bugs/bugfix_for:___38____35__34__59__mtn:_operation_canceled:_Broken_pipe__38____35__34__59_____40__patch__41__.mdwn
@@ -0,0 +1,21 @@
+When using monotone as revision control system, a "mtn: operation canceled: Broken pipe" message is printed. Reason is that, in a call to mtn, the pipe is closed before mtn has done all its output. This patch fixes the problem.
+
+ diff -up ikiwiki/IkiWiki/Plugin/monotone.pm.orig ikiwiki/IkiWiki/Plugin/monotone.pm
+ --- ikiwiki/IkiWiki/Plugin/monotone.pm.orig 2008-11-12 23:45:24.000000000 +0100
+ +++ ikiwiki/IkiWiki/Plugin/monotone.pm 2008-12-16 12:41:38.000000000 +0100
+ @@ -525,13 +525,12 @@ sub rcs_recentchanges ($) { #{{{
+ my $child = open(MTNLOG, "-|");
+ if (! $child) {
+ exec("mtn", "log", "--root=$config{mtnrootdir}", "--no-graph",
+ - "--brief") || error("mtn log failed to run");
+ + "--brief", "--last=$num") || error("mtn log failed to run");
+ }
+
+ - while (($num >= 0) and (my $line = )) {
+ + while (my $line = ) {
+ if ($line =~ m/^($sha1_pattern)/) {
+ push @revs, $1;
+ - $num -= 1;
+ }
+ }
+ close MTNLOG || debug("mtn log exited $?");
--
cgit v1.2.3
From 8621e52e0939004ba170fb183e7b9c49aeb893e7 Mon Sep 17 00:00:00 2001
From: "http://thm.id.fedoraproject.org/"
Date: Wed, 17 Dec 2008 05:54:16 -0500
Subject: rename
bugs/bugfix_for:___38____35__34__59__mtn:_operation_canceled:_Broken_pipe__38____35__34__59_____40__patch__41__.mdwn
to
bugs/bugfix_for:___34__mtn:_operation_canceled:_Broken_pipe__34_____40__patch__41__.mdwn
---
...nceled:_Broken_pipe__34_____40__patch__41__.mdwn | 21 +++++++++++++++++++++
..._pipe__38____35__34__59_____40__patch__41__.mdwn | 21 ---------------------
2 files changed, 21 insertions(+), 21 deletions(-)
create mode 100644 doc/bugs/bugfix_for:___34__mtn:_operation_canceled:_Broken_pipe__34_____40__patch__41__.mdwn
delete mode 100644 doc/bugs/bugfix_for:___38____35__34__59__mtn:_operation_canceled:_Broken_pipe__38____35__34__59_____40__patch__41__.mdwn
(limited to 'doc')
diff --git a/doc/bugs/bugfix_for:___34__mtn:_operation_canceled:_Broken_pipe__34_____40__patch__41__.mdwn b/doc/bugs/bugfix_for:___34__mtn:_operation_canceled:_Broken_pipe__34_____40__patch__41__.mdwn
new file mode 100644
index 000000000..2167deac4
--- /dev/null
+++ b/doc/bugs/bugfix_for:___34__mtn:_operation_canceled:_Broken_pipe__34_____40__patch__41__.mdwn
@@ -0,0 +1,21 @@
+When using monotone as revision control system, a "mtn: operation canceled: Broken pipe" message is printed. Reason is that, in a call to mtn, the pipe is closed before mtn has done all its output. This patch fixes the problem.
+
+ diff -up ikiwiki/IkiWiki/Plugin/monotone.pm.orig ikiwiki/IkiWiki/Plugin/monotone.pm
+ --- ikiwiki/IkiWiki/Plugin/monotone.pm.orig 2008-11-12 23:45:24.000000000 +0100
+ +++ ikiwiki/IkiWiki/Plugin/monotone.pm 2008-12-16 12:41:38.000000000 +0100
+ @@ -525,13 +525,12 @@ sub rcs_recentchanges ($) { #{{{
+ my $child = open(MTNLOG, "-|");
+ if (! $child) {
+ exec("mtn", "log", "--root=$config{mtnrootdir}", "--no-graph",
+ - "--brief") || error("mtn log failed to run");
+ + "--brief", "--last=$num") || error("mtn log failed to run");
+ }
+
+ - while (($num >= 0) and (my $line = )) {
+ + while (my $line = ) {
+ if ($line =~ m/^($sha1_pattern)/) {
+ push @revs, $1;
+ - $num -= 1;
+ }
+ }
+ close MTNLOG || debug("mtn log exited $?");
diff --git a/doc/bugs/bugfix_for:___38____35__34__59__mtn:_operation_canceled:_Broken_pipe__38____35__34__59_____40__patch__41__.mdwn b/doc/bugs/bugfix_for:___38____35__34__59__mtn:_operation_canceled:_Broken_pipe__38____35__34__59_____40__patch__41__.mdwn
deleted file mode 100644
index 2167deac4..000000000
--- a/doc/bugs/bugfix_for:___38____35__34__59__mtn:_operation_canceled:_Broken_pipe__38____35__34__59_____40__patch__41__.mdwn
+++ /dev/null
@@ -1,21 +0,0 @@
-When using monotone as revision control system, a "mtn: operation canceled: Broken pipe" message is printed. Reason is that, in a call to mtn, the pipe is closed before mtn has done all its output. This patch fixes the problem.
-
- diff -up ikiwiki/IkiWiki/Plugin/monotone.pm.orig ikiwiki/IkiWiki/Plugin/monotone.pm
- --- ikiwiki/IkiWiki/Plugin/monotone.pm.orig 2008-11-12 23:45:24.000000000 +0100
- +++ ikiwiki/IkiWiki/Plugin/monotone.pm 2008-12-16 12:41:38.000000000 +0100
- @@ -525,13 +525,12 @@ sub rcs_recentchanges ($) { #{{{
- my $child = open(MTNLOG, "-|");
- if (! $child) {
- exec("mtn", "log", "--root=$config{mtnrootdir}", "--no-graph",
- - "--brief") || error("mtn log failed to run");
- + "--brief", "--last=$num") || error("mtn log failed to run");
- }
-
- - while (($num >= 0) and (my $line = )) {
- + while (my $line = ) {
- if ($line =~ m/^($sha1_pattern)/) {
- push @revs, $1;
- - $num -= 1;
- }
- }
- close MTNLOG || debug("mtn log exited $?");
--
cgit v1.2.3
From f9b87a9f8b498f3a41614b159dcb278024be70dd Mon Sep 17 00:00:00 2001
From: Joey Hess
Date: Wed, 17 Dec 2008 13:59:12 -0500
Subject: monotone: When getting the log, tell monotone how many entries we
want, rather than closing the pipe, which it dislikes. (thm)
---
IkiWiki/Plugin/monotone.pm | 5 ++---
debian/changelog | 2 ++
...mtn:_operation_canceled:_Broken_pipe__34_____40__patch__41__.mdwn | 3 +++
3 files changed, 7 insertions(+), 3 deletions(-)
(limited to 'doc')
diff --git a/IkiWiki/Plugin/monotone.pm b/IkiWiki/Plugin/monotone.pm
index f31a8606b..3a8b267a3 100644
--- a/IkiWiki/Plugin/monotone.pm
+++ b/IkiWiki/Plugin/monotone.pm
@@ -525,13 +525,12 @@ sub rcs_recentchanges ($) { #{{{
my $child = open(MTNLOG, "-|");
if (! $child) {
exec("mtn", "log", "--root=$config{mtnrootdir}", "--no-graph",
- "--brief") || error("mtn log failed to run");
+ "--brief", "--last=$num") || error("mtn log failed to run");
}
- while (($num >= 0) and (my $line = )) {
+ while (my $line = ) {
if ($line =~ m/^($sha1_pattern)/) {
push @revs, $1;
- $num -= 1;
}
}
close MTNLOG || debug("mtn log exited $?");
diff --git a/debian/changelog b/debian/changelog
index b43144b36..8f5783208 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -16,6 +16,8 @@ ikiwiki (2.71) UNRELEASED; urgency=low
* meta: Pass info to htmlscrubber so htmlscrubber_skip can take effect.
* htmlbalance: don't compact whitespace, and set misc other options (smcv)
* rename: Fix double-escaping of page name in edit box.
+ * monotone: When getting the log, tell monotone how many entries
+ we want, rather than closing the pipe, which it dislikes. (thm)
-- Joey Hess Mon, 17 Nov 2008 14:02:10 -0500
diff --git a/doc/bugs/bugfix_for:___34__mtn:_operation_canceled:_Broken_pipe__34_____40__patch__41__.mdwn b/doc/bugs/bugfix_for:___34__mtn:_operation_canceled:_Broken_pipe__34_____40__patch__41__.mdwn
index 2167deac4..aa13ec339 100644
--- a/doc/bugs/bugfix_for:___34__mtn:_operation_canceled:_Broken_pipe__34_____40__patch__41__.mdwn
+++ b/doc/bugs/bugfix_for:___34__mtn:_operation_canceled:_Broken_pipe__34_____40__patch__41__.mdwn
@@ -19,3 +19,6 @@ When using monotone as revision control system, a "mtn: operation canceled: Brok
}
}
close MTNLOG || debug("mtn log exited $?");
+
+> Thanks for the patch, and for testing the monotone backend.
+> applied [[done]] --[[Joey]]
--
cgit v1.2.3
From fdd994fb7365308bde162b72b280512f2db6a339 Mon Sep 17 00:00:00 2001
From: Joey Hess
Date: Wed, 17 Dec 2008 14:15:52 -0500
Subject: more comments doc updates
Moved todo items to a todo page, mark the old todo item about comments as
done, etc.
---
doc/plugins/comments.mdwn | 12 ------------
doc/plugins/comments/discussion.mdwn | 3 +++
doc/todo/comments.mdwn | 8 ++++++++
doc/todo/supporting_comments_via_disussion_pages.mdwn | 3 +++
4 files changed, 14 insertions(+), 12 deletions(-)
create mode 100644 doc/todo/comments.mdwn
(limited to 'doc')
diff --git a/doc/plugins/comments.mdwn b/doc/plugins/comments.mdwn
index fa263ef40..aab75e9b7 100644
--- a/doc/plugins/comments.mdwn
+++ b/doc/plugins/comments.mdwn
@@ -37,15 +37,3 @@ There are some global options for the setup file:
specify a name for themselves, and the \[[!meta author]] and
\[[!meta authorurl]] directives will not be overridden by the comments
plugin
-
-Known issues:
-
-* Needs code review
-* The access control via postcomment() is rather strange (see [[discussion]] for more details)
-* There is some common code cargo-culted from other plugins (notably inline and editpage) which
- should probably be shared
-* Joey doesn't think it should necessarily use internal pages (see [[discussion]])
-* Previews always say "unknown IP address"
-* Add `COMMENTOPENID`: the authenticated/verified user name, if and only if it was an OpenID
-* The default template should have a (?) icon next to unauthenticated users (with the IP address
- as title) and an OpenID icon next to OpenIDs
diff --git a/doc/plugins/comments/discussion.mdwn b/doc/plugins/comments/discussion.mdwn
index 59740ec37..2a87a3d93 100644
--- a/doc/plugins/comments/discussion.mdwn
+++ b/doc/plugins/comments/discussion.mdwn
@@ -63,6 +63,9 @@ spam problems. So, use `check_canedit` as at least a first-level check?
> This is why `anonok_pages => 'postcomment(*)'` and `locked_pages => '!postcomment(*)'`
> are necessary to allow anonymous and logged-in editing (respectively).
>
+>> I changed that to move the flag out of the page name, and into a variable that the `match_postcomment`
+>> function checks for. Other ugliness still applies. :-) --[[Joey]]
+>
> This is ugly - one alternative would be to add `check_permission()` that takes a
> page and a verb (create, edit, rename, remove and maybe comment are the ones I
> can think of so far), use that, and port the plugins you mentioned to use that
diff --git a/doc/todo/comments.mdwn b/doc/todo/comments.mdwn
new file mode 100644
index 000000000..adc302a25
--- /dev/null
+++ b/doc/todo/comments.mdwn
@@ -0,0 +1,8 @@
+Known issues with the [[plugins/comments]] plugin:
+
+* There is some common code cargo-culted from other plugins (notably inline and editpage) which
+ should probably be shared
+* Previews always say "unknown IP address"
+* Add `COMMENTOPENID`: the authenticated/verified user name, if and only if it was an OpenID
+* The default template should have a (?) icon next to unauthenticated users (with the IP address
+ as title) and an OpenID icon next to OpenIDs
diff --git a/doc/todo/supporting_comments_via_disussion_pages.mdwn b/doc/todo/supporting_comments_via_disussion_pages.mdwn
index bc4e331d0..892db18a9 100644
--- a/doc/todo/supporting_comments_via_disussion_pages.mdwn
+++ b/doc/todo/supporting_comments_via_disussion_pages.mdwn
@@ -215,3 +215,6 @@ do you think so far? Known issues include:
--[[smcv]]
I've updated smcvpostcomment and publicised it as [[plugins/contrib/comments]]. --[[smcv]]
+
+> While there is still room for improvement and entirely other approaches,
+> I am calling this done since smcv's comments plugin is ready. --[[Joey]]
--
cgit v1.2.3
From bb93fccf0690344aa77f9538a508959a6de09847 Mon Sep 17 00:00:00 2001
From: Joey Hess
Date: Wed, 17 Dec 2008 15:22:16 -0500
Subject: Coding style change: Remove explcit vim folding markers.
---
IkiWiki.pm | 388 ++++++++++-----------
IkiWiki/CGI.pm | 60 ++--
IkiWiki/Plugin/aggregate.pm | 108 +++---
IkiWiki/Plugin/amazon_s3.pm | 32 +-
IkiWiki/Plugin/anonok.pm | 12 +-
IkiWiki/Plugin/attachment.pm | 32 +-
IkiWiki/Plugin/autoindex.pm | 16 +-
IkiWiki/Plugin/brokenlinks.pm | 12 +-
IkiWiki/Plugin/bzr.pm | 54 +--
IkiWiki/Plugin/calendar.pm | 30 +-
IkiWiki/Plugin/camelcase.pm | 14 +-
IkiWiki/Plugin/color.pm | 20 +-
IkiWiki/Plugin/comments.pm | 38 +-
IkiWiki/Plugin/conditional.pm | 28 +-
IkiWiki/Plugin/creole.pm | 12 +-
IkiWiki/Plugin/cutpaste.pm | 20 +-
IkiWiki/Plugin/ddate.pm | 12 +-
IkiWiki/Plugin/editdiff.pm | 16 +-
IkiWiki/Plugin/editpage.pm | 16 +-
IkiWiki/Plugin/edittemplate.pm | 24 +-
IkiWiki/Plugin/embed.pm | 20 +-
IkiWiki/Plugin/external.pm | 48 +--
IkiWiki/Plugin/favicon.pm | 12 +-
IkiWiki/Plugin/filecheck.pm | 30 +-
IkiWiki/Plugin/format.pm | 8 +-
IkiWiki/Plugin/fortune.pm | 12 +-
IkiWiki/Plugin/git.pm | 72 ++--
IkiWiki/Plugin/goodstuff.pm | 8 +-
IkiWiki/Plugin/google.pm | 16 +-
IkiWiki/Plugin/googlecalendar.pm | 20 +-
IkiWiki/Plugin/graphviz.pm | 16 +-
IkiWiki/Plugin/haiku.pm | 12 +-
IkiWiki/Plugin/hnb.pm | 12 +-
IkiWiki/Plugin/html.pm | 12 +-
IkiWiki/Plugin/htmlbalance.pm | 12 +-
IkiWiki/Plugin/htmlscrubber.pm | 16 +-
IkiWiki/Plugin/htmltidy.pm | 12 +-
IkiWiki/Plugin/httpauth.pm | 12 +-
IkiWiki/Plugin/img.pm | 12 +-
IkiWiki/Plugin/inline.pm | 54 +--
IkiWiki/Plugin/link.pm | 24 +-
IkiWiki/Plugin/linkmap.pm | 20 +-
IkiWiki/Plugin/listdirectives.pm | 20 +-
IkiWiki/Plugin/lockedit.pm | 16 +-
IkiWiki/Plugin/map.pm | 12 +-
IkiWiki/Plugin/mdwn.pm | 12 +-
IkiWiki/Plugin/mercurial.pm | 52 +--
IkiWiki/Plugin/meta.pm | 52 +--
IkiWiki/Plugin/mirrorlist.pm | 16 +-
IkiWiki/Plugin/monotone.pm | 72 ++--
IkiWiki/Plugin/more.pm | 10 +-
IkiWiki/Plugin/norcs.pm | 48 +--
IkiWiki/Plugin/opendiscussion.pm | 12 +-
IkiWiki/Plugin/openid.pm | 28 +-
IkiWiki/Plugin/orphans.pm | 12 +-
IkiWiki/Plugin/otl.pm | 16 +-
IkiWiki/Plugin/pagecount.pm | 12 +-
IkiWiki/Plugin/pagestats.pm | 12 +-
IkiWiki/Plugin/pagetemplate.pm | 16 +-
IkiWiki/Plugin/parentlinks.pm | 16 +-
IkiWiki/Plugin/passwordauth.pm | 26 +-
IkiWiki/Plugin/pingee.pm | 12 +-
IkiWiki/Plugin/pinger.pm | 16 +-
IkiWiki/Plugin/poll.pm | 16 +-
IkiWiki/Plugin/polygen.pm | 12 +-
IkiWiki/Plugin/postsparkline.pm | 12 +-
IkiWiki/Plugin/prettydate.pm | 16 +-
IkiWiki/Plugin/progress.pm | 16 +-
IkiWiki/Plugin/rawhtml.pm | 8 +-
IkiWiki/Plugin/recentchanges.pm | 30 +-
IkiWiki/Plugin/recentchangesdiff.pm | 12 +-
IkiWiki/Plugin/relativedate.pm | 20 +-
IkiWiki/Plugin/remove.pm | 34 +-
IkiWiki/Plugin/rename.pm | 48 +--
IkiWiki/Plugin/search.pm | 40 +--
IkiWiki/Plugin/shortcut.pm | 20 +-
IkiWiki/Plugin/sidebar.pm | 16 +-
IkiWiki/Plugin/signinedit.pm | 12 +-
IkiWiki/Plugin/skeleton.pm.example | 102 +++---
IkiWiki/Plugin/smiley.pm | 16 +-
IkiWiki/Plugin/sparkline.pm | 12 +-
IkiWiki/Plugin/svn.pm | 54 +--
IkiWiki/Plugin/table.pm | 26 +-
IkiWiki/Plugin/tag.pm | 32 +-
IkiWiki/Plugin/template.pm | 12 +-
IkiWiki/Plugin/testpagespec.pm | 12 +-
IkiWiki/Plugin/teximg.pm | 32 +-
IkiWiki/Plugin/textile.pm | 12 +-
IkiWiki/Plugin/tla.pm | 46 +--
IkiWiki/Plugin/toc.pm | 14 +-
IkiWiki/Plugin/toggle.pm | 28 +-
IkiWiki/Plugin/txt.pm | 4 +-
IkiWiki/Plugin/typography.pm | 16 +-
IkiWiki/Plugin/version.pm | 16 +-
IkiWiki/Plugin/websetup.pm | 36 +-
IkiWiki/Plugin/wikitext.pm | 12 +-
IkiWiki/Receive.pm | 16 +-
IkiWiki/Render.pm | 34 +-
IkiWiki/Setup.pm | 12 +-
IkiWiki/Setup/Automator.pm | 12 +-
IkiWiki/Setup/Standard.pm | 16 +-
IkiWiki/UserInfo.pm | 32 +-
IkiWiki/Wrapper.pm | 4 +-
debian/changelog | 1 +
.../Allow_overriding_of_symlink_restriction.mdwn | 6 +-
doc/bugs/Can__39__t_create_root_page.mdwn | 4 +-
...dency_in_eval_while_running_with_-T_switch.mdwn | 4 +-
doc/bugs/Monotone_rcs_support.mdwn | 2 +-
..._blog_items_when_filename_contains_a_colon.mdwn | 8 +-
doc/bugs/Problem_with_toc.pm_plug-in.mdwn | 4 +-
doc/bugs/Problems_with_graphviz.pm_plug-in.mdwn | 14 +-
.../RecentChanges_broken_with_empty_svnpath.mdwn | 2 +-
...itles_are_lower-cased_when_creating_a_page.mdwn | 2 +-
...n_and_a_directive_does_not_contain_a_space.mdwn | 4 +-
...celed:_Broken_pipe__34_____40__patch__41__.mdwn | 2 +-
doc/bugs/git_stderr_output_causes_problems.mdwn | 2 +-
...plugin_should_pass_through_class_attribute.mdwn | 4 +-
doc/bugs/inline_sort-by-title_issues.mdwn | 2 +-
doc/bugs/mercurial_fail_to_add.mdwn | 2 +-
doc/bugs/methodResponse_in_add__95__plugins.mdwn | 2 +-
doc/bugs/multiple_pages_with_same_name.mdwn | 6 +-
...pec_parsing_chokes_on_function__40____41__.mdwn | 2 +-
doc/bugs/prune_causing_taint_mode_failures.mdwn | 4 +-
doc/bugs/quieten_mercurial.mdwn | 4 +-
..._for_locale_data_in_the_installed_location.mdwn | 2 +-
doc/bugs/tbasewiki__95__brokenlinks.t_broken.mdwn | 6 +-
doc/plugins/contrib/headinganchors.mdwn | 8 +-
doc/plugins/contrib/siterel2pagerel.mdwn | 8 +-
doc/plugins/contrib/unixauth.mdwn | 24 +-
.../Add_DATE_parameter_for_use_in_templates.mdwn | 14 +-
...for_latest_Text::Markdown_as_found_on_CPAN.mdwn | 2 +-
doc/todo/Allow_change_of_wiki_file_types.mdwn | 8 +-
doc/todo/Allow_edittemplate_to_set_file_type.mdwn | 8 +-
.../Bestdir_along_with_bestlink_in_IkiWiki.pm.mdwn | 8 +-
doc/todo/Default_text_for_new_pages.mdwn | 8 +-
..._templates_inserted_by_the_template_plugin.mdwn | 2 +-
...nline_plugin_option_to_show_full_page_path.mdwn | 2 +-
.../Move_teximg_latex_preamble_to_config_file.mdwn | 10 +-
...bitrary_date_to_be_used_by_calendar_plugin.mdwn | 12 +-
doc/todo/Silence_monotone_warning.mdwn | 2 +-
...side_of_link__40____41___within_a_pagespec.mdwn | 4 +-
doc/todo/Wrapper_config_with_multiline_regexp.mdwn | 4 +-
.../add_forward_age_sorting_option_to_inline.mdwn | 2 +-
.../discussion.mdwn | 20 +-
doc/todo/blogpost_plugin.mdwn | 20 +-
doc/todo/bzr.mdwn | 28 +-
doc/todo/cas_authentication.mdwn | 14 +-
doc/todo/color_plugin.mdwn | 20 +-
doc/todo/darcs.mdwn | 26 +-
doc/todo/datearchives-plugin.mdwn | 8 +-
doc/todo/different_search_engine.mdwn | 40 +--
doc/todo/directive_docs.mdwn | 12 +-
doc/todo/enable-htaccess-files.mdwn | 2 +-
doc/todo/format_escape.mdwn | 16 +-
.../fortune:_select_options_via_environment.mdwn | 4 +-
doc/todo/index.html_allowed.mdwn | 10 +-
doc/todo/inline:_numerical_ordering_by_title.mdwn | 22 +-
.../language_definition_for_the_meta_plugin.mdwn | 4 +-
doc/todo/meta_rcsid.mdwn | 2 +-
doc/todo/missingparents.pm.mdwn | 44 +--
doc/todo/modify_page_filename_in_plugin.mdwn | 6 +-
doc/todo/pagespec_relative_to_a_target.mdwn | 16 +-
doc/todo/provide_sha1_for_git_diffurl.mdwn | 2 +-
doc/todo/require_CAPTCHA_to_edit.mdwn | 22 +-
doc/todo/source_link.mdwn | 14 +-
doc/todo/structured_page_data.mdwn | 50 +--
.../supporting_comments_via_disussion_pages.mdwn | 12 +-
doc/todo/syntax_highlighting.mdwn | 4 +-
doc/todo/tidy_git__39__s_ctime_debug_output.mdwn | 2 +-
doc/todo/tmplvars_plugin.mdwn | 12 +-
doc/todo/tracking_bugs_with_dependencies.mdwn | 58 +--
...turn_edittemplate_verbosity_off_by_default.mdwn | 6 +-
doc/todo/using_meta_titles_for_parentlinks.html | 8 +-
...closures_for_values__41___in_ikiwiki.setup.mdwn | 8 +-
ikiwiki.in | 12 +-
175 files changed, 1776 insertions(+), 1775 deletions(-)
(limited to 'doc')
diff --git a/IkiWiki.pm b/IkiWiki.pm
index 1c68c2cb3..d93ff7374 100644
--- a/IkiWiki.pm
+++ b/IkiWiki.pm
@@ -34,7 +34,7 @@ memoize("abs2rel");
memoize("pagespec_translate");
memoize("file_pruned");
-sub getsetup () { #{{{
+sub getsetup () {
wikiname => {
type => "string",
default => "wiki",
@@ -431,9 +431,9 @@ sub getsetup () { #{{{
safe => 0,
rebuild => 0,
},
-} #}}}
+}
-sub defaultconfig () { #{{{
+sub defaultconfig () {
my %s=getsetup();
my @ret;
foreach my $key (keys %s) {
@@ -441,9 +441,9 @@ sub defaultconfig () { #{{{
}
use Data::Dumper;
return @ret;
-} #}}}
+}
-sub checkconfig () { #{{{
+sub checkconfig () {
# locale stuff; avoid LC_ALL since it overrides everything
if (defined $ENV{LC_ALL}) {
$ENV{LANG} = $ENV{LC_ALL};
@@ -490,9 +490,9 @@ sub checkconfig () { #{{{
run_hooks(checkconfig => sub { shift->() });
return 1;
-} #}}}
+}
-sub listplugins () { #{{{
+sub listplugins () {
my %ret;
foreach my $dir (@INC, $config{libdir}) {
@@ -510,9 +510,9 @@ sub listplugins () { #{{{
}
return keys %ret;
-} #}}}
+}
-sub loadplugins () { #{{{
+sub loadplugins () {
if (defined $config{libdir} && length $config{libdir}) {
unshift @INC, possibly_foolish_untaint($config{libdir});
}
@@ -539,9 +539,9 @@ sub loadplugins () { #{{{
}
return 1;
-} #}}}
+}
-sub loadplugin ($) { #{{{
+sub loadplugin ($) {
my $plugin=shift;
return if grep { $_ eq $plugin} @{$config{disable_plugins}};
@@ -567,9 +567,9 @@ sub loadplugin ($) { #{{{
}
$loaded_plugins{$plugin}=1;
return 1;
-} #}}}
+}
-sub error ($;$) { #{{{
+sub error ($;$) {
my $message=shift;
my $cleaner=shift;
log_message('err' => $message) if $config{syslog};
@@ -577,15 +577,15 @@ sub error ($;$) { #{{{
$cleaner->();
}
die $message."\n";
-} #}}}
+}
-sub debug ($) { #{{{
+sub debug ($) {
return unless $config{verbose};
return log_message(debug => @_);
-} #}}}
+}
my $log_open=0;
-sub log_message ($$) { #{{{
+sub log_message ($$) {
my $type=shift;
if ($config{syslog}) {
@@ -605,44 +605,44 @@ sub log_message ($$) { #{{{
else {
return print STDERR "@_\n";
}
-} #}}}
+}
-sub possibly_foolish_untaint ($) { #{{{
+sub possibly_foolish_untaint ($) {
my $tainted=shift;
my ($untainted)=$tainted=~/(.*)/s;
return $untainted;
-} #}}}
+}
-sub basename ($) { #{{{
+sub basename ($) {
my $file=shift;
$file=~s!.*/+!!;
return $file;
-} #}}}
+}
-sub dirname ($) { #{{{
+sub dirname ($) {
my $file=shift;
$file=~s!/*[^/]+$!!;
return $file;
-} #}}}
+}
-sub pagetype ($) { #{{{
+sub pagetype ($) {
my $page=shift;
if ($page =~ /\.([^.]+)$/) {
return $1 if exists $hooks{htmlize}{$1};
}
return;
-} #}}}
+}
-sub isinternal ($) { #{{{
+sub isinternal ($) {
my $page=shift;
return exists $pagesources{$page} &&
$pagesources{$page} =~ /\._([^.]+)$/;
-} #}}}
+}
-sub pagename ($) { #{{{
+sub pagename ($) {
my $file=shift;
my $type=pagetype($file);
@@ -652,9 +652,9 @@ sub pagename ($) { #{{{
$page=$1;
}
return $page;
-} #}}}
+}
-sub newpagefile ($$) { #{{{
+sub newpagefile ($$) {
my $page=shift;
my $type=shift;
@@ -664,9 +664,9 @@ sub newpagefile ($$) { #{{{
else {
return $page."/index.".$type;
}
-} #}}}
+}
-sub targetpage ($$;$) { #{{{
+sub targetpage ($$;$) {
my $page=shift;
my $ext=shift;
my $filename=shift;
@@ -680,15 +680,15 @@ sub targetpage ($$;$) { #{{{
else {
return $page."/index.".$ext;
}
-} #}}}
+}
-sub htmlpage ($) { #{{{
+sub htmlpage ($) {
my $page=shift;
return targetpage($page, $config{htmlext});
-} #}}}
+}
-sub srcfile_stat { #{{{
+sub srcfile_stat {
my $file=shift;
my $nothrow=shift;
@@ -698,13 +698,13 @@ sub srcfile_stat { #{{{
}
error("internal error: $file cannot be found in $config{srcdir} or underlay") unless $nothrow;
return;
-} #}}}
+}
-sub srcfile ($;$) { #{{{
+sub srcfile ($;$) {
return (srcfile_stat(@_))[0];
-} #}}}
+}
-sub add_underlay ($) { #{{{
+sub add_underlay ($) {
my $dir=shift;
if ($dir !~ /^\//) {
@@ -716,9 +716,9 @@ sub add_underlay ($) { #{{{
}
return 1;
-} #}}}
+}
-sub readfile ($;$$) { #{{{
+sub readfile ($;$$) {
my $file=shift;
my $binary=shift;
my $wantfd=shift;
@@ -738,9 +738,9 @@ sub readfile ($;$$) { #{{{
}
close $in || error("failed to read $file: $!");
return $ret;
-} #}}}
+}
-sub prep_writefile ($$) { #{{{
+sub prep_writefile ($$) {
my $file=shift;
my $destdir=shift;
@@ -764,9 +764,9 @@ sub prep_writefile ($$) { #{{{
}
return 1;
-} #}}}
+}
-sub writefile ($$$;$$) { #{{{
+sub writefile ($$$;$$) {
my $file=shift; # can include subdirs
my $destdir=shift; # directory to put file in
my $content=shift;
@@ -794,10 +794,10 @@ sub writefile ($$$;$$) { #{{{
error("failed renaming $newfile to $destdir/$file: $!", $cleanup);
return 1;
-} #}}}
+}
my %cleared;
-sub will_render ($$;$) { #{{{
+sub will_render ($$;$) {
my $page=shift;
my $dest=shift;
my $clear=shift;
@@ -821,9 +821,9 @@ sub will_render ($$;$) { #{{{
$destsources{$dest}=$page;
return 1;
-} #}}}
+}
-sub bestlink ($$) { #{{{
+sub bestlink ($$) {
my $page=shift;
my $link=shift;
@@ -859,15 +859,15 @@ sub bestlink ($$) { #{{{
#print STDERR "warning: page $page, broken link: $link\n";
return "";
-} #}}}
+}
-sub isinlinableimage ($) { #{{{
+sub isinlinableimage ($) {
my $file=shift;
return $file =~ /\.(png|gif|jpg|jpeg)$/i;
-} #}}}
+}
-sub pagetitle ($;$) { #{{{
+sub pagetitle ($;$) {
my $page=shift;
my $unescaped=shift;
@@ -879,31 +879,31 @@ sub pagetitle ($;$) { #{{{
}
return $page;
-} #}}}
+}
-sub titlepage ($) { #{{{
+sub titlepage ($) {
my $title=shift;
# support use w/o %config set
my $chars = defined $config{wiki_file_chars} ? $config{wiki_file_chars} : "-[:alnum:]+/.:_";
$title=~s/([^$chars]|_)/$1 eq ' ' ? '_' : "__".ord($1)."__"/eg;
return $title;
-} #}}}
+}
-sub linkpage ($) { #{{{
+sub linkpage ($) {
my $link=shift;
my $chars = defined $config{wiki_file_chars} ? $config{wiki_file_chars} : "-[:alnum:]+/.:_";
$link=~s/([^$chars])/$1 eq ' ' ? '_' : "__".ord($1)."__"/eg;
return $link;
-} #}}}
+}
-sub cgiurl (@) { #{{{
+sub cgiurl (@) {
my %params=@_;
return $config{cgiurl}."?".
join("&", map $_."=".uri_escape_utf8($params{$_}), keys %params);
-} #}}}
+}
-sub baseurl (;$) { #{{{
+sub baseurl (;$) {
my $page=shift;
return "$config{url}/" if ! defined $page;
@@ -912,9 +912,9 @@ sub baseurl (;$) { #{{{
$page=~s/[^\/]+$//;
$page=~s/[^\/]+\//..\//g;
return $page;
-} #}}}
+}
-sub abs2rel ($$) { #{{{
+sub abs2rel ($$) {
# Work around very innefficient behavior in File::Spec if abs2rel
# is passed two relative paths. It's much faster if paths are
# absolute! (Debian bug #376658; fixed in debian unstable now)
@@ -925,15 +925,15 @@ sub abs2rel ($$) { #{{{
my $ret=File::Spec->abs2rel($path, $base);
$ret=~s/^// if defined $ret;
return $ret;
-} #}}}
+}
-sub displaytime ($;$) { #{{{
+sub displaytime ($;$) {
# Plugins can override this function to mark up the time to
# display.
return ''.formattime(@_).'';
-} #}}}
+}
-sub formattime ($;$) { #{{{
+sub formattime ($;$) {
# Plugins can override this function to format the time.
my $time=shift;
my $format=shift;
@@ -944,9 +944,9 @@ sub formattime ($;$) { #{{{
# strftime doesn't know about encodings, so make sure
# its output is properly treated as utf8
return decode_utf8(POSIX::strftime($format, localtime($time)));
-} #}}}
+}
-sub beautify_urlpath ($) { #{{{
+sub beautify_urlpath ($) {
my $url=shift;
if ($config{usedirs}) {
@@ -960,9 +960,9 @@ sub beautify_urlpath ($) { #{{{
}
return $url;
-} #}}}
+}
-sub urlto ($$;$) { #{{{
+sub urlto ($$;$) {
my $to=shift;
my $from=shift;
my $absolute=shift;
@@ -982,9 +982,9 @@ sub urlto ($$;$) { #{{{
my $link = abs2rel($to, dirname(htmlpage($from)));
return beautify_urlpath($link);
-} #}}}
+}
-sub htmllink ($$$;@) { #{{{
+sub htmllink ($$$;@) {
my $lpage=shift; # the page doing the linking
my $page=shift; # the page that will contain the link (different for inline)
my $link=shift;
@@ -1047,9 +1047,9 @@ sub htmllink ($$$;@) { #{{{
}
return "$linktext";
-} #}}}
+}
-sub userlink ($) { #{{{
+sub userlink ($) {
my $user=shift;
my $oiduser=eval { openiduser($user) };
@@ -1064,9 +1064,9 @@ sub userlink ($) { #{{{
length $config{userdir} ? $config{userdir}."/".$user : $user
), noimageinline => 1);
}
-} #}}}
+}
-sub htmlize ($$$$) { #{{{
+sub htmlize ($$$$) {
my $page=shift;
my $destpage=shift;
my $type=shift;
@@ -1101,9 +1101,9 @@ sub htmlize ($$$$) { #{{{
}
return $content;
-} #}}}
+}
-sub linkify ($$$) { #{{{
+sub linkify ($$$) {
my $page=shift;
my $destpage=shift;
my $content=shift;
@@ -1117,11 +1117,11 @@ sub linkify ($$$) { #{{{
});
return $content;
-} #}}}
+}
our %preprocessing;
our $preprocess_preview=0;
-sub preprocess ($$$;$$) { #{{{
+sub preprocess ($$$;$$) {
my $page=shift; # the page the data comes from
my $destpage=shift; # the page the data will appear in (different for inline)
my $content=shift;
@@ -1274,9 +1274,9 @@ sub preprocess ($$$;$$) { #{{{
$content =~ s{$regex}{$handle->($1, $2, $3, $4)}eg;
return $content;
-} #}}}
+}
-sub filter ($$$) { #{{{
+sub filter ($$$) {
my $page=shift;
my $destpage=shift;
my $content=shift;
@@ -1287,15 +1287,15 @@ sub filter ($$$) { #{{{
});
return $content;
-} #}}}
+}
-sub indexlink () { #{{{
+sub indexlink () {
return "$config{wikiname}";
-} #}}}
+}
my $wikilock;
-sub lockwiki () { #{{{
+sub lockwiki () {
# Take an exclusive lock on the wiki to prevent multiple concurrent
# run issues. The lock will be dropped on program exit.
if (! -d $config{wikistatedir}) {
@@ -1307,17 +1307,17 @@ sub lockwiki () { #{{{
error("failed to get lock");
}
return 1;
-} #}}}
+}
-sub unlockwiki () { #{{{
+sub unlockwiki () {
POSIX::close($ENV{IKIWIKI_CGILOCK_FD}) if exists $ENV{IKIWIKI_CGILOCK_FD};
return close($wikilock) if $wikilock;
return;
-} #}}}
+}
my $commitlock;
-sub commit_hook_enabled () { #{{{
+sub commit_hook_enabled () {
open($commitlock, '+>', "$config{wikistatedir}/commitlock") ||
error("cannot write to $config{wikistatedir}/commitlock: $!");
if (! flock($commitlock, 1 | 4)) { # LOCK_SH | LOCK_NB to test
@@ -1326,23 +1326,23 @@ sub commit_hook_enabled () { #{{{
}
close($commitlock) || error("failed closing commitlock: $!");
return 1;
-} #}}}
+}
-sub disable_commit_hook () { #{{{
+sub disable_commit_hook () {
open($commitlock, '>', "$config{wikistatedir}/commitlock") ||
error("cannot write to $config{wikistatedir}/commitlock: $!");
if (! flock($commitlock, 2)) { # LOCK_EX
error("failed to get commit lock");
}
return 1;
-} #}}}
+}
-sub enable_commit_hook () { #{{{
+sub enable_commit_hook () {
return close($commitlock) if $commitlock;
return;
-} #}}}
+}
-sub loadindex () { #{{{
+sub loadindex () {
%oldrenderedfiles=%pagectime=();
if (! $config{rebuild}) {
%pagesources=%pagemtime=%oldlinks=%links=%depends=
@@ -1402,9 +1402,9 @@ sub loadindex () { #{{{
$destsources{$_}=$page foreach @{$renderedfiles{$page}};
}
return close($in);
-} #}}}
+}
-sub saveindex () { #{{{
+sub saveindex () {
run_hooks(savestate => sub { shift->() });
my %hookids;
@@ -1460,18 +1460,18 @@ sub saveindex () { #{{{
error("failed renaming $newfile to $config{wikistatedir}/indexdb", $cleanup);
return 1;
-} #}}}
+}
-sub template_file ($) { #{{{
+sub template_file ($) {
my $template=shift;
foreach my $dir ($config{templatedir}, "$installdir/share/ikiwiki/templates") {
return "$dir/$template" if -e "$dir/$template";
}
return;
-} #}}}
+}
-sub template_params (@) { #{{{
+sub template_params (@) {
my $filename=template_file(shift);
if (! defined $filename) {
@@ -1490,14 +1490,14 @@ sub template_params (@) { #{{{
@_
);
return wantarray ? @ret : {@ret};
-} #}}}
+}
-sub template ($;@) { #{{{
+sub template ($;@) {
require HTML::Template;
return HTML::Template->new(template_params(@_));
-} #}}}
+}
-sub misctemplate ($$;@) { #{{{
+sub misctemplate ($$;@) {
my $title=shift;
my $pagebody=shift;
@@ -1514,9 +1514,9 @@ sub misctemplate ($$;@) { #{{{
shift->(page => "", destpage => "", template => $template);
});
return $template->output;
-}#}}}
+}
-sub hook (@) { # {{{
+sub hook (@) {
my %param=@_;
if (! exists $param{type} || ! ref $param{call} || ! exists $param{id}) {
@@ -1527,9 +1527,9 @@ sub hook (@) { # {{{
$hooks{$param{type}}{$param{id}}=\%param;
return 1;
-} # }}}
+}
-sub run_hooks ($$) { # {{{
+sub run_hooks ($$) {
# Calls the given sub for each hook of the given type,
# passing it the hook function to call.
my $type=shift;
@@ -1550,53 +1550,53 @@ sub run_hooks ($$) { # {{{
}
return 1;
-} #}}}
+}
-sub rcs_update () { #{{{
+sub rcs_update () {
$hooks{rcs}{rcs_update}{call}->(@_);
-} #}}}
+}
-sub rcs_prepedit ($) { #{{{
+sub rcs_prepedit ($) {
$hooks{rcs}{rcs_prepedit}{call}->(@_);
-} #}}}
+}
-sub rcs_commit ($$$;$$) { #{{{
+sub rcs_commit ($$$;$$) {
$hooks{rcs}{rcs_commit}{call}->(@_);
-} #}}}
+}
-sub rcs_commit_staged ($$$) { #{{{
+sub rcs_commit_staged ($$$) {
$hooks{rcs}{rcs_commit_staged}{call}->(@_);
-} #}}}
+}
-sub rcs_add ($) { #{{{
+sub rcs_add ($) {
$hooks{rcs}{rcs_add}{call}->(@_);
-} #}}}
+}
-sub rcs_remove ($) { #{{{
+sub rcs_remove ($) {
$hooks{rcs}{rcs_remove}{call}->(@_);
-} #}}}
+}
-sub rcs_rename ($$) { #{{{
+sub rcs_rename ($$) {
$hooks{rcs}{rcs_rename}{call}->(@_);
-} #}}}
+}
-sub rcs_recentchanges ($) { #{{{
+sub rcs_recentchanges ($) {
$hooks{rcs}{rcs_recentchanges}{call}->(@_);
-} #}}}
+}
-sub rcs_diff ($) { #{{{
+sub rcs_diff ($) {
$hooks{rcs}{rcs_diff}{call}->(@_);
-} #}}}
+}
-sub rcs_getctime ($) { #{{{
+sub rcs_getctime ($) {
$hooks{rcs}{rcs_getctime}{call}->(@_);
-} #}}}
+}
-sub rcs_receive () { #{{{
+sub rcs_receive () {
$hooks{rcs}{rcs_receive}{call}->();
-} #}}}
+}
-sub globlist_to_pagespec ($) { #{{{
+sub globlist_to_pagespec ($) {
my @globlist=split(' ', shift);
my (@spec, @skip);
@@ -1620,20 +1620,20 @@ sub globlist_to_pagespec ($) { #{{{
}
}
return $spec;
-} #}}}
+}
-sub is_globlist ($) { #{{{
+sub is_globlist ($) {
my $s=shift;
return ( $s =~ /[^\s]+\s+([^\s]+)/ && $1 ne "and" && $1 ne "or" );
-} #}}}
+}
-sub safequote ($) { #{{{
+sub safequote ($) {
my $s=shift;
$s=~s/[{}]//g;
return "q{$s}";
-} #}}}
+}
-sub add_depends ($$) { #{{{
+sub add_depends ($$) {
my $page=shift;
my $pagespec=shift;
@@ -1647,9 +1647,9 @@ sub add_depends ($$) { #{{{
}
return 1;
-} # }}}
+}
-sub file_pruned ($$) { #{{{
+sub file_pruned ($$) {
require File::Spec;
my $file=File::Spec->canonpath(shift);
my $base=File::Spec->canonpath(shift);
@@ -1657,9 +1657,9 @@ sub file_pruned ($$) { #{{{
my $regexp='('.join('|', @{$config{wiki_file_prune_regexps}}).')';
return $file =~ m/$regexp/ && $file ne $base;
-} #}}}
+}
-sub gettext { #{{{
+sub gettext {
# Only use gettext in the rare cases it's needed.
if ((exists $ENV{LANG} && length $ENV{LANG}) ||
(exists $ENV{LC_ALL} && length $ENV{LC_ALL}) ||
@@ -1680,15 +1680,15 @@ sub gettext { #{{{
else {
return shift;
}
-} #}}}
+}
-sub yesno ($) { #{{{
+sub yesno ($) {
my $val=shift;
return (defined $val && lc($val) eq gettext("yes"));
-} #}}}
+}
-sub inject { #{{{
+sub inject {
# Injects a new function into the symbol table to replace an
# exported function.
my %params=@_;
@@ -1711,9 +1711,9 @@ sub inject { #{{{
}
use strict;
use warnings;
-} #}}}
+}
-sub pagespec_merge ($$) { #{{{
+sub pagespec_merge ($$) {
my $a=shift;
my $b=shift;
@@ -1728,9 +1728,9 @@ sub pagespec_merge ($$) { #{{{
}
return "($a) or ($b)";
-} #}}}
+}
-sub pagespec_translate ($) { #{{{
+sub pagespec_translate ($) {
my $spec=shift;
# Support for old-style GlobLists.
@@ -1784,9 +1784,9 @@ sub pagespec_translate ($) { #{{{
no warnings;
return eval 'sub { my $page=shift; '.$code.' }';
-} #}}}
+}
-sub pagespec_match ($$;@) { #{{{
+sub pagespec_match ($$;@) {
my $page=shift;
my $spec=shift;
my @params=@_;
@@ -1799,55 +1799,55 @@ sub pagespec_match ($$;@) { #{{{
my $sub=pagespec_translate($spec);
return IkiWiki::FailReason->new("syntax error in pagespec \"$spec\"") if $@;
return $sub->($page, @params);
-} #}}}
+}
-sub pagespec_valid ($) { #{{{
+sub pagespec_valid ($) {
my $spec=shift;
my $sub=pagespec_translate($spec);
return ! $@;
-} #}}}
+}
-sub glob2re ($) { #{{{
+sub glob2re ($) {
my $re=quotemeta(shift);
$re=~s/\\\*/.*/g;
$re=~s/\\\?/./g;
return $re;
-} #}}}
+}
package IkiWiki::FailReason;
-use overload ( #{{{
+use overload (
'""' => sub { ${$_[0]} },
'0+' => sub { 0 },
'!' => sub { bless $_[0], 'IkiWiki::SuccessReason'},
fallback => 1,
-); #}}}
+);
-sub new { #{{{
+sub new {
my $class = shift;
my $value = shift;
return bless \$value, $class;
-} #}}}
+}
package IkiWiki::SuccessReason;
-use overload ( #{{{
+use overload (
'""' => sub { ${$_[0]} },
'0+' => sub { 1 },
'!' => sub { bless $_[0], 'IkiWiki::FailReason'},
fallback => 1,
-); #}}}
+);
-sub new { #{{{
+sub new {
my $class = shift;
my $value = shift;
return bless \$value, $class;
-}; #}}}
+};
package IkiWiki::PageSpec;
-sub match_glob ($$;@) { #{{{
+sub match_glob ($$;@) {
my $page=shift;
my $glob=shift;
my %params=@_;
@@ -1873,13 +1873,13 @@ sub match_glob ($$;@) { #{{{
else {
return IkiWiki::FailReason->new("$glob does not match $page");
}
-} #}}}
+}
-sub match_internal ($$;@) { #{{{
+sub match_internal ($$;@) {
return match_glob($_[0], $_[1], @_, internal => 1)
-} #}}}
+}
-sub match_link ($$;@) { #{{{
+sub match_link ($$;@) {
my $page=shift;
my $link=lc(shift);
my %params=@_;
@@ -1911,13 +1911,13 @@ sub match_link ($$;@) { #{{{
}
}
return IkiWiki::FailReason->new("$page does not link to $link");
-} #}}}
+}
-sub match_backlink ($$;@) { #{{{
+sub match_backlink ($$;@) {
return match_link($_[1], $_[0], @_);
-} #}}}
+}
-sub match_created_before ($$;@) { #{{{
+sub match_created_before ($$;@) {
my $page=shift;
my $testpage=shift;
@@ -1932,9 +1932,9 @@ sub match_created_before ($$;@) { #{{{
else {
return IkiWiki::FailReason->new("$testpage has no ctime");
}
-} #}}}
+}
-sub match_created_after ($$;@) { #{{{
+sub match_created_after ($$;@) {
my $page=shift;
my $testpage=shift;
@@ -1949,36 +1949,36 @@ sub match_created_after ($$;@) { #{{{
else {
return IkiWiki::FailReason->new("$testpage has no ctime");
}
-} #}}}
+}
-sub match_creation_day ($$;@) { #{{{
+sub match_creation_day ($$;@) {
if ((gmtime($IkiWiki::pagectime{shift()}))[3] == shift) {
return IkiWiki::SuccessReason->new('creation_day matched');
}
else {
return IkiWiki::FailReason->new('creation_day did not match');
}
-} #}}}
+}
-sub match_creation_month ($$;@) { #{{{
+sub match_creation_month ($$;@) {
if ((gmtime($IkiWiki::pagectime{shift()}))[4] + 1 == shift) {
return IkiWiki::SuccessReason->new('creation_month matched');
}
else {
return IkiWiki::FailReason->new('creation_month did not match');
}
-} #}}}
+}
-sub match_creation_year ($$;@) { #{{{
+sub match_creation_year ($$;@) {
if ((gmtime($IkiWiki::pagectime{shift()}))[5] + 1900 == shift) {
return IkiWiki::SuccessReason->new('creation_year matched');
}
else {
return IkiWiki::FailReason->new('creation_year did not match');
}
-} #}}}
+}
-sub match_user ($$;@) { #{{{
+sub match_user ($$;@) {
shift;
my $user=shift;
my %params=@_;
@@ -1996,9 +1996,9 @@ sub match_user ($$;@) { #{{{
else {
return IkiWiki::FailReason->new("user is $params{user}, not $user");
}
-} #}}}
+}
-sub match_admin ($$;@) { #{{{
+sub match_admin ($$;@) {
shift;
shift;
my %params=@_;
@@ -2016,9 +2016,9 @@ sub match_admin ($$;@) { #{{{
else {
return IkiWiki::FailReason->new("user is not an admin");
}
-} #}}}
+}
-sub match_ip ($$;@) { #{{{
+sub match_ip ($$;@) {
shift;
my $ip=shift;
my %params=@_;
@@ -2033,6 +2033,6 @@ sub match_ip ($$;@) { #{{{
else {
return IkiWiki::FailReason->new("IP is $params{ip}, not $ip");
}
-} #}}}
+}
1
diff --git a/IkiWiki/CGI.pm b/IkiWiki/CGI.pm
index a45e12e31..81cb42d13 100644
--- a/IkiWiki/CGI.pm
+++ b/IkiWiki/CGI.pm
@@ -9,7 +9,7 @@ use IkiWiki::UserInfo;
use open qw{:utf8 :std};
use Encode;
-sub printheader ($) { #{{{
+sub printheader ($) {
my $session=shift;
if ($config{sslcookie}) {
@@ -19,9 +19,9 @@ sub printheader ($) { #{{{
print $session->header(-charset => 'utf-8',
-cookie => $session->cookie(-httponly => 1));
}
-} #}}}
+}
-sub showform ($$$$;@) { #{{{
+sub showform ($$$$;@) {
my $form=shift;
my $buttons=shift;
my $session=shift;
@@ -36,9 +36,9 @@ sub showform ($$$$;@) { #{{{
printheader($session);
print misctemplate($form->title, $form->render(submit => $buttons), @_);
-} #}}}
+}
-sub redirect ($$) { #{{{
+sub redirect ($$) {
my $q=shift;
my $url=shift;
if (! $config{w3mmode}) {
@@ -48,9 +48,9 @@ sub redirect ($$) { #{{{
print "Content-type: text/plain\n";
print "W3m-control: GOTO $url\n\n";
}
-} #}}}
+}
-sub decode_cgi_utf8 ($) { #{{{
+sub decode_cgi_utf8 ($) {
# decode_form_utf8 method is needed for 5.10
if ($] < 5.01) {
my $cgi = shift;
@@ -58,9 +58,9 @@ sub decode_cgi_utf8 ($) { #{{{
$cgi->param($f, map { decode_utf8 $_ } $cgi->param($f));
}
}
-} #}}}
+}
-sub decode_form_utf8 ($) { #{{{
+sub decode_form_utf8 ($) {
if ($] >= 5.01) {
my $form = shift;
foreach my $f ($form->field) {
@@ -70,11 +70,11 @@ sub decode_form_utf8 ($) { #{{{
);
}
}
-} #}}}
+}
# Check if the user is signed in. If not, redirect to the signin form and
# save their place to return to later.
-sub needsignin ($$) { #{{{
+sub needsignin ($$) {
my $q=shift;
my $session=shift;
@@ -85,9 +85,9 @@ sub needsignin ($$) { #{{{
cgi_savesession($session);
exit;
}
-} #}}}
+}
-sub cgi_signin ($$) { #{{{
+sub cgi_signin ($$) {
my $q=shift;
my $session=shift;
@@ -127,9 +127,9 @@ sub cgi_signin ($$) { #{{{
}
showform($form, $buttons, $session, $q);
-} #}}}
+}
-sub cgi_postsignin ($$) { #{{{
+sub cgi_postsignin ($$) {
my $q=shift;
my $session=shift;
@@ -144,9 +144,9 @@ sub cgi_postsignin ($$) { #{{{
else {
error(gettext("login failed, perhaps you need to turn on cookies?"));
}
-} #}}}
+}
-sub cgi_prefs ($$) { #{{{
+sub cgi_prefs ($$) {
my $q=shift;
my $session=shift;
@@ -254,9 +254,9 @@ sub cgi_prefs ($$) { #{{{
}
showform($form, $buttons, $session, $q);
-} #}}}
+}
-sub check_banned ($$) { #{{{
+sub check_banned ($$) {
my $q=shift;
my $session=shift;
@@ -273,9 +273,9 @@ sub check_banned ($$) { #{{{
exit;
}
}
-} #}}}
+}
-sub cgi_getsession ($) { #{{{
+sub cgi_getsession ($) {
my $q=shift;
eval q{use CGI::Session; use HTML::Entities};
@@ -294,13 +294,13 @@ sub cgi_getsession ($) { #{{{
umask($oldmask);
return $session;
-} #}}}
+}
# To guard against CSRF, the user's session id (sid)
# can be stored on a form. This function will check
# (for logged in users) that the sid on the form matches
# the session id in the cookie.
-sub checksessionexpiry ($$) { # {{{
+sub checksessionexpiry ($$) {
my $q=shift;
my $session = shift;
@@ -310,18 +310,18 @@ sub checksessionexpiry ($$) { # {{{
error(gettext("Your login session has expired."));
}
}
-} # }}}
+}
-sub cgi_savesession ($) { #{{{
+sub cgi_savesession ($) {
my $session=shift;
# Force session flush with safe umask.
my $oldmask=umask(077);
$session->flush;
umask($oldmask);
-} #}}}
+}
-sub cgi (;$$) { #{{{
+sub cgi (;$$) {
my $q=shift;
my $session=shift;
@@ -391,16 +391,16 @@ sub cgi (;$$) { #{{{
else {
error("unknown do parameter");
}
-} #}}}
+}
# Does not need to be called directly; all errors will go through here.
-sub cgierror ($) { #{{{
+sub cgierror ($) {
my $message=shift;
print "Content-type: text/html\n\n";
print misctemplate(gettext("Error"),
"
".gettext("Error").": $message
");
die $@;
-} #}}}
+}
1
diff --git a/IkiWiki/Plugin/aggregate.pm b/IkiWiki/Plugin/aggregate.pm
index adaa619ab..29bc6d0ce 100644
--- a/IkiWiki/Plugin/aggregate.pm
+++ b/IkiWiki/Plugin/aggregate.pm
@@ -14,7 +14,7 @@ use open qw{:utf8 :std};
my %feeds;
my %guids;
-sub import { #{{{
+sub import {
hook(type => "getopt", id => "aggregate", call => \&getopt);
hook(type => "getsetup", id => "aggregate", call => \&getsetup);
hook(type => "checkconfig", id => "aggregate", call => \&checkconfig);
@@ -26,9 +26,9 @@ sub import { #{{{
if (exists $config{aggregate_webtrigger} && $config{aggregate_webtrigger}) {
hook(type => "cgi", id => "aggregate", call => \&cgi);
}
-} # }}}
+}
-sub getopt () { #{{{
+sub getopt () {
eval q{use Getopt::Long};
error($@) if $@;
Getopt::Long::Configure('pass_through');
@@ -36,9 +36,9 @@ sub getopt () { #{{{
"aggregate" => \$config{aggregate},
"aggregateinternal!" => \$config{aggregateinternal},
);
-} #}}}
+}
-sub getsetup () { #{{{
+sub getsetup () {
return
plugin => {
safe => 1,
@@ -58,16 +58,16 @@ sub getsetup () { #{{{
safe => 1,
rebuild => 0,
},
-} #}}}
+}
-sub checkconfig () { #{{{
+sub checkconfig () {
if ($config{aggregate} && ! ($config{post_commit} &&
IkiWiki::commit_hook_enabled())) {
launchaggregation();
}
-} #}}}
+}
-sub cgi ($) { #{{{
+sub cgi ($) {
my $cgi=shift;
if (defined $cgi->param('do') &&
@@ -90,9 +90,9 @@ sub cgi ($) { #{{{
}
exit 0;
}
-} #}}}
+}
-sub launchaggregation () { #{{{
+sub launchaggregation () {
# See if any feeds need aggregation.
loadstate();
my @feeds=needsaggregate();
@@ -135,16 +135,16 @@ sub launchaggregation () { #{{{
unlockaggregate();
return 1;
-} #}}}
+}
# Pages with extension _aggregated have plain html markup, pass through.
-sub htmlize (@) { #{{{
+sub htmlize (@) {
my %params=@_;
return $params{content};
-} #}}}
+}
# Used by ikiwiki-transition aggregateinternal.
-sub migrate_to_internal { #{{{
+sub migrate_to_internal {
if (! lockaggregate()) {
error("an aggregation process is currently running");
}
@@ -190,9 +190,9 @@ sub migrate_to_internal { #{{{
IkiWiki::unlockwiki;
unlockaggregate();
-} #}}}
+}
-sub needsbuild (@) { #{{{
+sub needsbuild (@) {
my $needsbuild=shift;
loadstate();
@@ -206,9 +206,9 @@ sub needsbuild (@) { #{{{
markunseen($feed->{sourcepage});
}
}
-} # }}}
+}
-sub preprocess (@) { #{{{
+sub preprocess (@) {
my %params=@_;
foreach my $required (qw{name url}) {
@@ -265,9 +265,9 @@ sub preprocess (@) { #{{{
($feed->{newposts} ? "; ".$feed->{newposts}.
" ".gettext("new") : "").
")";
-} # }}}
+}
-sub delete (@) { #{{{
+sub delete (@) {
my @files=@_;
# Remove feed data for removed pages.
@@ -275,9 +275,9 @@ sub delete (@) { #{{{
my $page=pagename($file);
markunseen($page);
}
-} #}}}
+}
-sub markunseen ($) { #{{{
+sub markunseen ($) {
my $page=shift;
foreach my $id (keys %feeds) {
@@ -285,11 +285,11 @@ sub markunseen ($) { #{{{
$feeds{$id}->{unseen}=1;
}
}
-} #}}}
+}
my $state_loaded=0;
-sub loadstate () { #{{{
+sub loadstate () {
return if $state_loaded;
$state_loaded=1;
if (-e "$config{wikistatedir}/aggregate") {
@@ -323,9 +323,9 @@ sub loadstate () { #{{{
close IN;
}
-} #}}}
+}
-sub savestate () { #{{{
+sub savestate () {
return unless $state_loaded;
garbage_collect();
my $newfile="$config{wikistatedir}/aggregate.new";
@@ -350,9 +350,9 @@ sub savestate () { #{{{
close OUT || error("save $newfile: $!", $cleanup);
rename($newfile, "$config{wikistatedir}/aggregate") ||
error("rename $newfile: $!", $cleanup);
-} #}}}
+}
-sub garbage_collect () { #{{{
+sub garbage_collect () {
foreach my $name (keys %feeds) {
# remove any feeds that were not seen while building the pages
# that used to contain them
@@ -375,9 +375,9 @@ sub garbage_collect () { #{{{
delete $guid->{md5};
}
}
-} #}}}
+}
-sub mergestate () { #{{{
+sub mergestate () {
# Load the current state in from disk, and merge into it
# values from the state in memory that might have changed
# during aggregation.
@@ -407,15 +407,15 @@ sub mergestate () { #{{{
$guids{$guid}=$myguids{$guid};
}
}
-} #}}}
+}
-sub clearstate () { #{{{
+sub clearstate () {
%feeds=();
%guids=();
$state_loaded=0;
-} #}}}
+}
-sub expire () { #{{{
+sub expire () {
foreach my $feed (values %feeds) {
next unless $feed->{expireage} || $feed->{expirecount};
my $count=0;
@@ -444,14 +444,14 @@ sub expire () { #{{{
}
}
}
-} #}}}
+}
-sub needsaggregate () { #{{{
+sub needsaggregate () {
return values %feeds if $config{rebuild};
return grep { time - $_->{lastupdate} >= $_->{updateinterval} } values %feeds;
-} #}}}
+}
-sub aggregate (@) { #{{{
+sub aggregate (@) {
eval q{use XML::Feed};
error($@) if $@;
eval q{use URI::Fetch};
@@ -542,9 +542,9 @@ sub aggregate (@) { #{{{
);
}
}
-} #}}}
+}
-sub add_page (@) { #{{{
+sub add_page (@) {
my %params=@_;
my $feed=$params{feed};
@@ -635,21 +635,21 @@ sub add_page (@) { #{{{
# Dummy value for expiry code.
$IkiWiki::pagectime{$guid->{page}}=time;
}
-} #}}}
+}
-sub wikiescape ($) { #{{{
+sub wikiescape ($) {
# escape accidental wikilinks and preprocessor stuff
return encode_entities(shift, '\[\]');
-} #}}}
+}
-sub urlabs ($$) { #{{{
+sub urlabs ($$) {
my $url=shift;
my $urlbase=shift;
URI->new_abs($url, $urlbase)->as_string;
-} #}}}
+}
-sub htmlabs ($$) { #{{{
+sub htmlabs ($$) {
# Convert links in html from relative to absolute.
# Note that this is a heuristic, which is not specified by the rss
# spec and may not be right for all feeds. Also, see Debian
@@ -685,15 +685,15 @@ sub htmlabs ($$) { #{{{
$p->eof;
return $ret;
-} #}}}
+}
-sub htmlfn ($) { #{{{
+sub htmlfn ($) {
return shift().".".($config{aggregateinternal} ? "_aggregated" : $config{htmlext});
-} #}}}
+}
my $aggregatelock;
-sub lockaggregate () { #{{{
+sub lockaggregate () {
# Take an exclusive lock to prevent multiple concurrent aggregators.
# Returns true if the lock was aquired.
if (! -d $config{wikistatedir}) {
@@ -706,11 +706,11 @@ sub lockaggregate () { #{{{
return 0;
}
return 1;
-} #}}}
+}
-sub unlockaggregate () { #{{{
+sub unlockaggregate () {
return close($aggregatelock) if $aggregatelock;
return;
-} #}}}
+}
1
diff --git a/IkiWiki/Plugin/amazon_s3.pm b/IkiWiki/Plugin/amazon_s3.pm
index 597539c13..93c10b629 100644
--- a/IkiWiki/Plugin/amazon_s3.pm
+++ b/IkiWiki/Plugin/amazon_s3.pm
@@ -16,13 +16,13 @@ BEGIN {
}
};
-sub import { #{{{
+sub import {
hook(type => "getopt", id => "amazon_s3", call => \&getopt);
hook(type => "getsetup", id => "amazon_s3", call => \&getsetup);
hook(type => "checkconfig", id => "amazon_s3", call => \&checkconfig);
-} # }}}
+}
-sub getopt () { #{{{
+sub getopt () {
eval q{use Getopt::Long};
error($@) if $@;
Getopt::Long::Configure('pass_through');
@@ -38,9 +38,9 @@ sub getopt () { #{{{
debug(gettext("done"));
exit(0);
});
-} #}}}
+}
-sub getsetup () { #{{{
+sub getsetup () {
return
plugin => {
safe => 0,
@@ -88,9 +88,9 @@ sub getsetup () { #{{{
safe => 1,
rebuild => 1,
},
-} #}}}
+}
-sub checkconfig { #{{{
+sub checkconfig {
foreach my $field (qw{amazon_s3_key_id amazon_s3_key_file
amazon_s3_bucket}) {
if (! exists $config{$field} || ! defined $config{$field}) {
@@ -101,11 +101,11 @@ sub checkconfig { #{{{
! defined $config{amazon_s3_prefix}) {
$config{amazon_s3_prefix}="wiki/";
}
-} #}}}
+}
{
my $bucket;
-sub getbucket { #{{{
+sub getbucket {
return $bucket if defined $bucket;
open(IN, "<", $config{amazon_s3_key_file}) || error($config{amazon_s3_key_file}.": ".$!);
@@ -138,11 +138,11 @@ sub getbucket { #{{{
}
return $bucket;
-} #}}}
+}
}
# Given a file, return any S3 keys associated with it.
-sub file2keys ($) { #{{{
+sub file2keys ($) {
my $file=shift;
my @keys;
@@ -162,14 +162,14 @@ sub file2keys ($) { #{{{
}
}
return @keys;
-} #}}}
+}
package IkiWiki;
use File::MimeInfo;
use Encode;
# This is a wrapper around the real writefile.
-sub writefile ($$$;$$) { #{{{
+sub writefile ($$$;$$) {
my $file=shift;
my $destdir=shift;
my $content=shift;
@@ -225,10 +225,10 @@ sub writefile ($$$;$$) { #{{{
}
return $ret;
-} #}}}
+}
# This is a wrapper around the real prune.
-sub prune ($) { #{{{
+sub prune ($) {
my $file=shift;
my @keys=IkiWiki::Plugin::amazon_s3::file2keys($file);
@@ -247,6 +247,6 @@ sub prune ($) { #{{{
}
return $IkiWiki::Plugin::amazon_s3::subs{'IkiWiki::prune'}->($file);
-} #}}}
+}
1
diff --git a/IkiWiki/Plugin/anonok.pm b/IkiWiki/Plugin/anonok.pm
index 2be983693..1cbdfe4e5 100644
--- a/IkiWiki/Plugin/anonok.pm
+++ b/IkiWiki/Plugin/anonok.pm
@@ -5,12 +5,12 @@ use warnings;
use strict;
use IkiWiki 2.00;
-sub import { #{{{
+sub import {
hook(type => "getsetup", id => "anonok", call => \&getsetup);
hook(type => "canedit", id => "anonok", call => \&canedit);
-} # }}}
+}
-sub getsetup () { #{{{
+sub getsetup () {
return
plugin => {
safe => 1,
@@ -24,9 +24,9 @@ sub getsetup () { #{{{
safe => 1,
rebuild => 0,
},
-} #}}}
+}
-sub canedit ($$$) { #{{{
+sub canedit ($$$) {
my $page=shift;
my $cgi=shift;
my $session=shift;
@@ -45,6 +45,6 @@ sub canedit ($$$) { #{{{
else {
return "";
}
-} #}}}
+}
1
diff --git a/IkiWiki/Plugin/attachment.pm b/IkiWiki/Plugin/attachment.pm
index 44781165c..87da6cd4e 100644
--- a/IkiWiki/Plugin/attachment.pm
+++ b/IkiWiki/Plugin/attachment.pm
@@ -5,16 +5,16 @@ use warnings;
use strict;
use IkiWiki 2.00;
-sub import { #{{{
+sub import {
add_underlay("javascript");
hook(type => "getsetup", id => "attachment", call => \&getsetup);
hook(type => "checkconfig", id => "attachment", call => \&checkconfig);
hook(type => "formbuilder_setup", id => "attachment", call => \&formbuilder_setup);
hook(type => "formbuilder", id => "attachment", call => \&formbuilder);
IkiWiki::loadplugin("filecheck");
-} # }}}
+}
-sub getsetup () { #{{{
+sub getsetup () {
return
plugin => {
safe => 1,
@@ -35,9 +35,9 @@ sub getsetup () { #{{{
safe => 0, # executed
rebuild => 0,
},
-} #}}}
+}
-sub check_canattach ($$;$) { #{{{
+sub check_canattach ($$;$) {
my $session=shift;
my $dest=shift; # where it's going to be put, under the srcdir
my $file=shift; # the path to the attachment currently
@@ -84,13 +84,13 @@ sub check_canattach ($$;$) { #{{{
else {
return 1;
}
-} #}}}
+}
-sub checkconfig () { #{{{
+sub checkconfig () {
$config{cgi_disable_uploads}=0;
-} #}}}
+}
-sub formbuilder_setup (@) { #{{{
+sub formbuilder_setup (@) {
my %params=@_;
my $form=$params{form};
my $q=$params{cgi};
@@ -153,9 +153,9 @@ sub formbuilder_setup (@) { #{{{
}
}
}
-} #}}}
+}
-sub formbuilder (@) { #{{{
+sub formbuilder (@) {
my %params=@_;
my $form=$params{form};
my $q=$params{cgi};
@@ -253,9 +253,9 @@ sub formbuilder (@) { #{{{
# Generate the attachment list only after having added any new
# attachments.
$form->tmpl_param("attachment_list" => [attachment_list($form->field('page'))]);
-} # }}}
+}
-sub attachment_location ($) { #{{{
+sub attachment_location ($) {
my $page=shift;
# Put the attachment in a subdir of the page it's attached
@@ -264,9 +264,9 @@ sub attachment_location ($) { #{{{
$page.="/" if length $page;
return $page;
-} #}}}
+}
-sub attachment_list ($) { #{{{
+sub attachment_list ($) {
my $page=shift;
my $loc=attachment_location($page);
@@ -287,6 +287,6 @@ sub attachment_list ($) { #{{{
# Sort newer attachments to the top of the list, so a newly-added
# attachment appears just before the form used to add it.
return sort { $b->{mtime_raw} <=> $a->{mtime_raw} || $a->{link} cmp $b->{link} } @ret;
-} #}}}
+}
1
diff --git a/IkiWiki/Plugin/autoindex.pm b/IkiWiki/Plugin/autoindex.pm
index d1b3edb1f..bb08091ae 100644
--- a/IkiWiki/Plugin/autoindex.pm
+++ b/IkiWiki/Plugin/autoindex.pm
@@ -6,20 +6,20 @@ use strict;
use IkiWiki 2.00;
use Encode;
-sub import { #{{{
+sub import {
hook(type => "getsetup", id => "autoindex", call => \&getsetup);
hook(type => "refresh", id => "autoindex", call => \&refresh);
-} # }}}
+}
-sub getsetup () { #{{{
+sub getsetup () {
return
plugin => {
safe => 1,
rebuild => 0,
},
-} #}}}
+}
-sub genindex ($) { #{{{
+sub genindex ($) {
my $page=shift;
my $file=newpagefile($page, $config{default_pageext});
my $template=template("autoindex.tmpl");
@@ -28,9 +28,9 @@ sub genindex ($) { #{{{
if ($config{rcs}) {
IkiWiki::rcs_add($file);
}
-} #}}}
+}
-sub refresh () { #{{{
+sub refresh () {
eval q{use File::Find};
error($@) if $@;
@@ -107,6 +107,6 @@ sub refresh () { #{{{
IkiWiki::enable_commit_hook();
}
}
-} #}}}
+}
1
diff --git a/IkiWiki/Plugin/brokenlinks.pm b/IkiWiki/Plugin/brokenlinks.pm
index 37752dd3e..1c52099bf 100644
--- a/IkiWiki/Plugin/brokenlinks.pm
+++ b/IkiWiki/Plugin/brokenlinks.pm
@@ -6,20 +6,20 @@ use warnings;
use strict;
use IkiWiki 2.00;
-sub import { #{{{
+sub import {
hook(type => "getsetup", id => "brokenlinks", call => \&getsetup);
hook(type => "preprocess", id => "brokenlinks", call => \&preprocess);
-} # }}}
+}
-sub getsetup { #{{{
+sub getsetup {
return
plugin => {
safe => 1,
rebuild => undef,
},
-} #}}}
+}
-sub preprocess (@) { #{{{
+sub preprocess (@) {
my %params=@_;
$params{pages}="*" unless defined $params{pages};
@@ -61,6 +61,6 @@ sub preprocess (@) { #{{{
}
sort @broken)
."\n";
-} # }}}
+}
1
diff --git a/IkiWiki/Plugin/bzr.pm b/IkiWiki/Plugin/bzr.pm
index 1054f5b3e..16c959069 100644
--- a/IkiWiki/Plugin/bzr.pm
+++ b/IkiWiki/Plugin/bzr.pm
@@ -7,7 +7,7 @@ use IkiWiki;
use Encode;
use open qw{:utf8 :std};
-sub import { #{{{
+sub import {
hook(type => "checkconfig", id => "bzr", call => \&checkconfig);
hook(type => "getsetup", id => "bzr", call => \&getsetup);
hook(type => "rcs", id => "rcs_update", call => \&rcs_update);
@@ -20,18 +20,18 @@ sub import { #{{{
hook(type => "rcs", id => "rcs_recentchanges", call => \&rcs_recentchanges);
hook(type => "rcs", id => "rcs_diff", call => \&rcs_diff);
hook(type => "rcs", id => "rcs_getctime", call => \&rcs_getctime);
-} #}}}
+}
-sub checkconfig () { #{{{
+sub checkconfig () {
if (defined $config{bzr_wrapper} && length $config{bzr_wrapper}) {
push @{$config{wrappers}}, {
wrapper => $config{bzr_wrapper},
wrappermode => (defined $config{bzr_wrappermode} ? $config{bzr_wrappermode} : "06755"),
};
}
-} #}}}
+}
-sub getsetup () { #{{{
+sub getsetup () {
return
plugin => {
safe => 0, # rcs plugin
@@ -65,9 +65,9 @@ sub getsetup () { #{{{
safe => 1,
rebuild => 1,
},
-} #}}}
+}
-sub bzr_log ($) { #{{{
+sub bzr_log ($) {
my $out = shift;
my @infos = ();
my $key = undef;
@@ -99,20 +99,20 @@ sub bzr_log ($) { #{{{
close $out;
return @infos;
-} #}}}
+}
-sub rcs_update () { #{{{
+sub rcs_update () {
my @cmdline = ("bzr", "update", "--quiet", $config{srcdir});
if (system(@cmdline) != 0) {
warn "'@cmdline' failed: $!";
}
-} #}}}
+}
-sub rcs_prepedit ($) { #{{{
+sub rcs_prepedit ($) {
return "";
-} #}}}
+}
-sub bzr_author ($$) { #{{{
+sub bzr_author ($$) {
my ($user, $ipaddr) = @_;
if (defined $user) {
@@ -124,9 +124,9 @@ sub bzr_author ($$) { #{{{
else {
return "Anonymous";
}
-} #}}}
+}
-sub rcs_commit ($$$;$$) { #{{{
+sub rcs_commit ($$$;$$) {
my ($file, $message, $rcstoken, $user, $ipaddr) = @_;
$user = bzr_author($user, $ipaddr);
@@ -143,7 +143,7 @@ sub rcs_commit ($$$;$$) { #{{{
}
return undef; # success
-} #}}}
+}
sub rcs_commit_staged ($$$) {
# Commits all staged changes. Changes can be staged using rcs_add,
@@ -164,27 +164,27 @@ sub rcs_commit_staged ($$$) {
}
return undef; # success
-} #}}}
+}
-sub rcs_add ($) { # {{{
+sub rcs_add ($) {
my ($file) = @_;
my @cmdline = ("bzr", "add", "--quiet", "$config{srcdir}/$file");
if (system(@cmdline) != 0) {
warn "'@cmdline' failed: $!";
}
-} #}}}
+}
-sub rcs_remove ($) { # {{{
+sub rcs_remove ($) {
my ($file) = @_;
my @cmdline = ("bzr", "rm", "--force", "--quiet", "$config{srcdir}/$file");
if (system(@cmdline) != 0) {
warn "'@cmdline' failed: $!";
}
-} #}}}
+}
-sub rcs_rename ($$) { # {{{
+sub rcs_rename ($$) {
my ($src, $dest) = @_;
my $parent = IkiWiki::dirname($dest);
@@ -196,9 +196,9 @@ sub rcs_rename ($$) { # {{{
if (system(@cmdline) != 0) {
warn "'@cmdline' failed: $!";
}
-} #}}}
+}
-sub rcs_recentchanges ($) { #{{{
+sub rcs_recentchanges ($) {
my ($num) = @_;
my @cmdline = ("bzr", "log", "-v", "--show-ids", "--limit", $num,
@@ -253,9 +253,9 @@ sub rcs_recentchanges ($) { #{{{
}
return @ret;
-} #}}}
+}
-sub rcs_getctime ($) { #{{{
+sub rcs_getctime ($) {
my ($file) = @_;
# XXX filename passes through the shell here, should try to avoid
@@ -274,6 +274,6 @@ sub rcs_getctime ($) { #{{{
my $ctime = str2time($log[0]->{"timestamp"});
return $ctime;
-} #}}}
+}
1
diff --git a/IkiWiki/Plugin/calendar.pm b/IkiWiki/Plugin/calendar.pm
index 6d536a91b..88303fc44 100644
--- a/IkiWiki/Plugin/calendar.pm
+++ b/IkiWiki/Plugin/calendar.pm
@@ -29,13 +29,13 @@ my %linkcache;
my $time=time;
my @now=localtime($time);
-sub import { #{{{
+sub import {
hook(type => "getsetup", id => "calendar", call => \&getsetup);
hook(type => "needsbuild", id => "calendar", call => \&needsbuild);
hook(type => "preprocess", id => "calendar", call => \&preprocess);
-} #}}}
+}
-sub getsetup () { #{{{
+sub getsetup () {
return
plugin => {
safe => 1,
@@ -48,23 +48,23 @@ sub getsetup () { #{{{
safe => 1,
rebuild => 1,
},
-} #}}}
+}
-sub is_leap_year (@) { #{{{
+sub is_leap_year (@) {
my %params=@_;
return ($params{year} % 4 == 0 && (($params{year} % 100 != 0) || $params{year} % 400 == 0));
-} #}}}
+}
-sub month_days { #{{{
+sub month_days {
my %params=@_;
my $days_in_month = (31,28,31,30,31,30,31,31,30,31,30,31)[$params{month}-1];
if ($params{month} == 2 && is_leap_year(%params)) {
$days_in_month++;
}
return $days_in_month;
-} #}}}
+}
-sub format_month (@) { #{{{
+sub format_month (@) {
my %params=@_;
my $pagespec = $params{pages};
@@ -215,9 +215,9 @@ EOF
add_depends($params{page}, join(" or ", @list));
return $calendar;
-} #}}}
+}
-sub format_year (@) { #{{{
+sub format_year (@) {
my %params=@_;
my $pagespec = $params{pages};
@@ -318,9 +318,9 @@ EOF
EOF
return $calendar;
-} #}}}
+}
-sub preprocess (@) { #{{{
+sub preprocess (@) {
my %params=@_;
$params{pages} = "*" unless defined $params{pages};
$params{type} = "month" unless defined $params{type};
@@ -397,7 +397,7 @@ sub preprocess (@) { #{{{
return "\n
$calendar
\n";
} #}}
-sub needsbuild (@) { #{{{
+sub needsbuild (@) {
my $needsbuild=shift;
foreach my $page (keys %pagestate) {
if (exists $pagestate{$page}{calendar}{nextchange}) {
@@ -415,6 +415,6 @@ sub needsbuild (@) { #{{{
}
}
}
-} # }}}
+}
1
diff --git a/IkiWiki/Plugin/camelcase.pm b/IkiWiki/Plugin/camelcase.pm
index 7881becd5..6c1fafb7b 100644
--- a/IkiWiki/Plugin/camelcase.pm
+++ b/IkiWiki/Plugin/camelcase.pm
@@ -22,21 +22,21 @@ my $link_regexp=qr{
)
}x;
-sub import { #{{{
+sub import {
hook(type => "getsetup", id => "camelcase", call => \&getsetup);
hook(type => "linkify", id => "camelcase", call => \&linkify);
hook(type => "scan", id => "camelcase", call => \&scan);
-} # }}}
+}
-sub getsetup () { #{{{
+sub getsetup () {
return
plugin => {
safe => 1,
rebuild => undef,
};
-} #}}}
+}
-sub linkify (@) { #{{{
+sub linkify (@) {
my %params=@_;
my $page=$params{page};
my $destpage=$params{destpage};
@@ -46,9 +46,9 @@ sub linkify (@) { #{{{
}eg;
return $params{content};
-} #}}}
+}
-sub scan (@) { #{{{
+sub scan (@) {
my %params=@_;
my $page=$params{page};
my $content=$params{content};
diff --git a/IkiWiki/Plugin/color.pm b/IkiWiki/Plugin/color.pm
index ac702ff02..53d8389d2 100644
--- a/IkiWiki/Plugin/color.pm
+++ b/IkiWiki/Plugin/color.pm
@@ -7,12 +7,12 @@ use warnings;
use strict;
use IkiWiki 2.00;
-sub import { #{{{
+sub import {
hook(type => "preprocess", id => "color", call => \&preprocess);
hook(type => "format", id => "color", call => \&format);
-} #}}}
+}
-sub preserve_style ($$$) { #{{{
+sub preserve_style ($$$) {
my $foreground = shift;
my $background = shift;
my $text = shift;
@@ -37,18 +37,18 @@ sub preserve_style ($$$) { #{{{
return $preserved;
-} #}}}
+}
-sub replace_preserved_style ($) { #{{{
+sub replace_preserved_style ($) {
my $content = shift;
$content =~ s!((color: ([a-z]+|\#[0-9a-f]{3,6})?)?((; )?(background-color: ([a-z]+|\#[0-9a-f]{3,6})?)?)?)!!g;
$content =~ s!!!g;
return $content;
-} #}}}
+}
-sub preprocess (@) { #{{{
+sub preprocess (@) {
my %params = @_;
# Preprocess the text to expand any preprocessor directives
@@ -57,13 +57,13 @@ sub preprocess (@) { #{{{
IkiWiki::filter($params{page}, $params{destpage}, $params{text}));
return preserve_style($params{foreground}, $params{background}, $params{text});
-} #}}}
+}
-sub format (@) { #{{{
+sub format (@) {
my %params = @_;
$params{content} = replace_preserved_style($params{content});
return $params{content};
-} #}}}
+}
1
diff --git a/IkiWiki/Plugin/comments.pm b/IkiWiki/Plugin/comments.pm
index b8748a1d6..6184c6031 100644
--- a/IkiWiki/Plugin/comments.pm
+++ b/IkiWiki/Plugin/comments.pm
@@ -17,7 +17,7 @@ use constant CANCEL => "Cancel";
my $postcomment;
-sub import { #{{{
+sub import {
hook(type => "checkconfig", id => 'comments', call => \&checkconfig);
hook(type => "getsetup", id => 'comments', call => \&getsetup);
hook(type => "preprocess", id => '_comment', call => \&preprocess);
@@ -26,9 +26,9 @@ sub import { #{{{
hook(type => "pagetemplate", id => "comments", call => \&pagetemplate);
hook(type => "cgi", id => "comments", call => \&linkcgi);
IkiWiki::loadplugin("inline");
-} # }}}
+}
-sub getsetup () { #{{{
+sub getsetup () {
return
plugin => {
safe => 1,
@@ -88,15 +88,15 @@ sub getsetup () { #{{{
safe => 0,
rebuild => 0,
},
-} #}}}
+}
-sub htmlize { # {{{
+sub htmlize {
my %params = @_;
return $params{content};
-} # }}}
+}
# FIXME: copied verbatim from meta
-sub safeurl ($) { #{{{
+sub safeurl ($) {
my $url=shift;
if (exists $IkiWiki::Plugin::htmlscrubber::{safe_url_regexp} &&
defined $IkiWiki::Plugin::htmlscrubber::safe_url_regexp) {
@@ -105,9 +105,9 @@ sub safeurl ($) { #{{{
else {
return 1;
}
-} #}}}
+}
-sub preprocess { # {{{
+sub preprocess {
my %params = @_;
my $page = $params{page};
@@ -206,16 +206,16 @@ sub preprocess { # {{{
# FIXME: hard-coded HTML (although it's just to set an ID)
return "
$content
" if $anchor;
return $content;
-} # }}}
+}
-sub checkconfig () { #{{{
+sub checkconfig () {
$config{comments_commit} = 1 unless defined $config{comments_commit};
$config{comments_pagename} = 'comment_'
unless defined $config{comments_pagename};
-} #}}}
+}
# This is exactly the same as recentchanges_link :-(
-sub linkcgi ($) { #{{{
+sub linkcgi ($) {
my $cgi=shift;
if (defined $cgi->param('do') && $cgi->param('do') eq "commenter") {
@@ -245,7 +245,7 @@ sub linkcgi ($) { #{{{
# FIXME: basically the same logic as recentchanges
# returns (author URL, pretty-printed version)
-sub linkuser ($) { # {{{
+sub linkuser ($) {
my $user = shift;
my $oiduser = eval { IkiWiki::openiduser($user) };
@@ -262,10 +262,10 @@ sub linkuser ($) { # {{{
: "$user")
), $user);
}
-} # }}}
+}
# Mostly cargo-culted from IkiWiki::plugin::editpage
-sub sessioncgi ($$) { #{{{
+sub sessioncgi ($$) {
my $cgi=shift;
my $session=shift;
@@ -512,9 +512,9 @@ sub sessioncgi ($$) { #{{{
}
exit;
-} #}}}
+}
-sub pagetemplate (@) { #{{{
+sub pagetemplate (@) {
my %params = @_;
my $page = $params{page};
@@ -583,7 +583,7 @@ sub pagetemplate (@) { #{{{
$template->param(commentauthorurl =>
$pagestate{$page}{comments}{commentauthorurl});
}
-} # }}}
+}
package IkiWiki::PageSpec;
diff --git a/IkiWiki/Plugin/conditional.pm b/IkiWiki/Plugin/conditional.pm
index e787424aa..66253e07d 100644
--- a/IkiWiki/Plugin/conditional.pm
+++ b/IkiWiki/Plugin/conditional.pm
@@ -6,20 +6,20 @@ use strict;
use IkiWiki 2.00;
use UNIVERSAL;
-sub import { #{{{
+sub import {
hook(type => "getsetup", id => "conditional", call => \&getsetup);
hook(type => "preprocess", id => "if", call => \&preprocess_if);
-} # }}}
+}
-sub getsetup { #{{{
+sub getsetup {
return
plugin => {
safe => 1,
rebuild => undef,
},
-} #}}}
+}
-sub preprocess_if (@) { #{{{
+sub preprocess_if (@) {
my %params=@_;
foreach my $param (qw{test then}) {
@@ -66,11 +66,11 @@ sub preprocess_if (@) { #{{{
}
return IkiWiki::preprocess($params{page}, $params{destpage},
IkiWiki::filter($params{page}, $params{destpage}, $ret));
-} # }}}
+}
package IkiWiki::PageSpec;
-sub match_enabled ($$;@) { #{{{
+sub match_enabled ($$;@) {
shift;
my $plugin=shift;
@@ -81,9 +81,9 @@ sub match_enabled ($$;@) { #{{{
else {
return IkiWiki::FailReason->new("$plugin is not enabled");
}
-} #}}}
+}
-sub match_sourcepage ($$;@) { #{{{
+sub match_sourcepage ($$;@) {
shift;
my $glob=shift;
my %params=@_;
@@ -95,9 +95,9 @@ sub match_sourcepage ($$;@) { #{{{
else {
return IkiWiki::FailReason->new("sourcepage does not match $glob");
}
-} #}}}
+}
-sub match_destpage ($$;@) { #{{{
+sub match_destpage ($$;@) {
shift;
my $glob=shift;
my %params=@_;
@@ -109,9 +109,9 @@ sub match_destpage ($$;@) { #{{{
else {
return IkiWiki::FailReason->new("destpage does not match $glob");
}
-} #}}}
+}
-sub match_included ($$;@) { #{{{
+sub match_included ($$;@) {
shift;
shift;
my %params=@_;
@@ -123,6 +123,6 @@ sub match_included ($$;@) { #{{{
else {
return IkiWiki::FailReason->new("page $params{sourcepage} is not included");
}
-} #}}}
+}
1
diff --git a/IkiWiki/Plugin/creole.pm b/IkiWiki/Plugin/creole.pm
index 7c729300d..3c46a48df 100644
--- a/IkiWiki/Plugin/creole.pm
+++ b/IkiWiki/Plugin/creole.pm
@@ -7,20 +7,20 @@ use warnings;
use strict;
use IkiWiki 2.00;
-sub import { #{{{
+sub import {
hook(type => "getsetup", id => "creole", call => \&getsetup);
hook(type => "htmlize", id => "creole", call => \&htmlize);
-} # }}}
+}
-sub getsetup { #{{{
+sub getsetup {
return
plugin => {
safe => 1,
rebuild => 1, # format plugin
},
-} #}}}
+}
-sub htmlize (@) { #{{{
+sub htmlize (@) {
my %params=@_;
my $content = $params{content};
@@ -32,6 +32,6 @@ sub htmlize (@) { #{{{
creole_custombarelinks();
return creole_parse($content);
-} # }}}
+}
1
diff --git a/IkiWiki/Plugin/cutpaste.pm b/IkiWiki/Plugin/cutpaste.pm
index 92667a1ef..e579c1ea2 100644
--- a/IkiWiki/Plugin/cutpaste.pm
+++ b/IkiWiki/Plugin/cutpaste.pm
@@ -7,22 +7,22 @@ use IkiWiki 2.00;
my %savedtext;
-sub import { #{{{
+sub import {
hook(type => "getsetup", id => "cutpaste", call => \&getsetup);
hook(type => "preprocess", id => "cut", call => \&preprocess_cut, scan => 1);
hook(type => "preprocess", id => "copy", call => \&preprocess_copy, scan => 1);
hook(type => "preprocess", id => "paste", call => \&preprocess_paste);
-} # }}}
+}
-sub getsetup () { #{{{
+sub getsetup () {
return
plugin => {
safe => 1,
rebuild => undef,
},
-} #}}}
+}
-sub preprocess_cut (@) { #{{{
+sub preprocess_cut (@) {
my %params=@_;
foreach my $param (qw{id text}) {
@@ -35,9 +35,9 @@ sub preprocess_cut (@) { #{{{
$savedtext{$params{page}}->{$params{id}} = $params{text};
return "" if defined wantarray;
-} # }}}
+}
-sub preprocess_copy (@) { #{{{
+sub preprocess_copy (@) {
my %params=@_;
foreach my $param (qw{id text}) {
@@ -51,9 +51,9 @@ sub preprocess_copy (@) { #{{{
return IkiWiki::preprocess($params{page}, $params{destpage},
IkiWiki::filter($params{page}, $params{destpage}, $params{text})) if defined wantarray;
-} # }}}
+}
-sub preprocess_paste (@) { #{{{
+sub preprocess_paste (@) {
my %params=@_;
foreach my $param (qw{id}) {
@@ -71,6 +71,6 @@ sub preprocess_paste (@) { #{{{
return IkiWiki::preprocess($params{page}, $params{destpage},
IkiWiki::filter($params{page}, $params{destpage}, $savedtext{$params{page}}->{$params{id}}));
-} # }}}
+}
1;
diff --git a/IkiWiki/Plugin/ddate.pm b/IkiWiki/Plugin/ddate.pm
index c73317b2f..3470640dc 100644
--- a/IkiWiki/Plugin/ddate.pm
+++ b/IkiWiki/Plugin/ddate.pm
@@ -5,19 +5,19 @@ package IkiWiki::Plugin::ddate;
use IkiWiki 2.00;
no warnings;
-sub import { #{{{
+sub import {
hook(type => "getsetup", id => "ddate", call => \&getsetup);
-} # }}}
+}
-sub getsetup { #{{{
+sub getsetup {
return
plugin => {
safe => 1,
rebuild => 1,
},
-} #}}}
+}
-sub IkiWiki::formattime ($;$) { #{{{
+sub IkiWiki::formattime ($;$) {
my $time=shift;
my $format=shift;
if (! defined $format) {
@@ -36,6 +36,6 @@ sub IkiWiki::formattime ($;$) { #{{{
my $dt = DateTime->from_epoch(epoch => $time);
my $dd = DateTime::Calendar::Discordian->from_object(object => $dt);
return $dd->strftime($format);
-} #}}}
+}
5
diff --git a/IkiWiki/Plugin/editdiff.pm b/IkiWiki/Plugin/editdiff.pm
index f5d7837fc..068b83b3c 100644
--- a/IkiWiki/Plugin/editdiff.pm
+++ b/IkiWiki/Plugin/editdiff.pm
@@ -8,21 +8,21 @@ use IkiWiki 2.00;
use HTML::Entities;
use IPC::Open2;
-sub import { #{{{
+sub import {
hook(type => "getsetup", id => "editdiff", call => \&getsetup);
hook(type => "formbuilder_setup", id => "editdiff",
call => \&formbuilder_setup);
-} #}}}
+}
-sub getsetup () { #{{{
+sub getsetup () {
return
plugin => {
safe => 1,
rebuild => 0,
},
-} #}}}
+}
-sub diff ($$) { #{{{
+sub diff ($$) {
my $orig=shift;
my $content=shift;
@@ -50,9 +50,9 @@ sub diff ($$) { #{{{
return "couldn't run diff\n" if $sigpipe;
return "
".encode_entities($ret)."
";
-} #}}}
+}
-sub formbuilder_setup { #{{{
+sub formbuilder_setup {
my %params=@_;
my $form=$params{form};
@@ -72,6 +72,6 @@ sub formbuilder_setup { #{{{
my $diff = diff(srcfile($pagesources{$page}), $content);
$form->tmpl_param("page_preview", $diff);
}
-} #}}}
+}
1
diff --git a/IkiWiki/Plugin/editpage.pm b/IkiWiki/Plugin/editpage.pm
index 242624d77..9210d6ff8 100644
--- a/IkiWiki/Plugin/editpage.pm
+++ b/IkiWiki/Plugin/editpage.pm
@@ -6,19 +6,19 @@ use strict;
use IkiWiki;
use open qw{:utf8 :std};
-sub import { #{{{
+sub import {
hook(type => "getsetup", id => "editpage", call => \&getsetup);
hook(type => "refresh", id => "editpage", call => \&refresh);
hook(type => "sessioncgi", id => "editpage", call => \&IkiWiki::cgi_editpage);
-} # }}}
+}
-sub getsetup () { #{{{
+sub getsetup () {
return
plugin => {
safe => 1,
rebuild => 1,
},
-} #}}}
+}
sub refresh () {
if (exists $wikistate{editpage} && exists $wikistate{editpage}{previews}) {
@@ -54,7 +54,7 @@ sub refresh () {
# and other plugins use the functions below.
package IkiWiki;
-sub check_canedit ($$$;$) { #{{{
+sub check_canedit ($$$;$) {
my $page=shift;
my $q=shift;
my $session=shift;
@@ -79,9 +79,9 @@ sub check_canedit ($$$;$) { #{{{
}
});
return $canedit;
-} #}}}
+}
-sub cgi_editpage ($$) { #{{{
+sub cgi_editpage ($$) {
my $q=shift;
my $session=shift;
@@ -453,6 +453,6 @@ sub cgi_editpage ($$) { #{{{
}
exit;
-} #}}}
+}
1
diff --git a/IkiWiki/Plugin/edittemplate.pm b/IkiWiki/Plugin/edittemplate.pm
index 846b4e7c8..7c0e7c2f8 100644
--- a/IkiWiki/Plugin/edittemplate.pm
+++ b/IkiWiki/Plugin/edittemplate.pm
@@ -7,7 +7,7 @@ use IkiWiki 2.00;
use HTML::Template;
use Encode;
-sub import { #{{{
+sub import {
hook(type => "getsetup", id => "edittemplate",
call => \&getsetup);
hook(type => "needsbuild", id => "edittemplate",
@@ -16,17 +16,17 @@ sub import { #{{{
call => \&preprocess);
hook(type => "formbuilder", id => "edittemplate",
call => \&formbuilder);
-} #}}}
+}
-sub getsetup () { #{{{
+sub getsetup () {
return
plugin => {
safe => 1,
rebuild => undef,
},
-} #}}}
+}
-sub needsbuild (@) { #{{{
+sub needsbuild (@) {
my $needsbuild=shift;
foreach my $page (keys %pagestate) {
@@ -40,9 +40,9 @@ sub needsbuild (@) { #{{{
}
}
}
-} #}}}
+}
-sub preprocess (@) { #{{{
+sub preprocess (@) {
my %params=@_;
return "" if $params{page} ne $params{destpage};
@@ -62,9 +62,9 @@ sub preprocess (@) { #{{{
return sprintf(gettext("edittemplate %s registered for %s"),
htmllink($params{page}, $params{destpage}, $link),
$params{match});
-} # }}}
+}
-sub formbuilder (@) { #{{{
+sub formbuilder (@) {
my %params=@_;
my $form=$params{form};
@@ -103,9 +103,9 @@ sub formbuilder (@) { #{{{
}
}
}
-} #}}}
+}
-sub filltemplate ($$) { #{{{
+sub filltemplate ($$) {
my $template_page=shift;
my $page=shift;
@@ -136,6 +136,6 @@ sub filltemplate ($$) { #{{{
$template->param(name => $page);
return $template->output;
-} #}}}
+}
1
diff --git a/IkiWiki/Plugin/embed.pm b/IkiWiki/Plugin/embed.pm
index 2a1637392..664c95763 100644
--- a/IkiWiki/Plugin/embed.pm
+++ b/IkiWiki/Plugin/embed.pm
@@ -43,35 +43,35 @@ my $safehtml=qr{(
my @embedded;
-sub import { #{{{
+sub import {
hook(type => "getsetup", id => "embed", call => \&getsetup);
hook(type => "filter", id => "embed", call => \&filter);
-} # }}}
+}
-sub getsetup () { #{{{
+sub getsetup () {
return
plugin => {
safe => 1,
rebuild => undef,
},
-} #}}}
+}
-sub embed ($) { #{{{
+sub embed ($) {
hook(type => "format", id => "embed", call => \&format) unless @embedded;
push @embedded, shift;
return "";
-} #}}}
+}
-sub filter (@) { #{{{
+sub filter (@) {
my %params=@_;
$params{content} =~ s/$safehtml/embed($1)/eg;
return $params{content};
-} # }}}
+}
-sub format (@) { #{{{
+sub format (@) {
my %params=@_;
$params{content} =~ s/
<\/div>/$embedded[$1]/eg;
return $params{content};
-} # }}}
+}
1
diff --git a/IkiWiki/Plugin/external.pm b/IkiWiki/Plugin/external.pm
index 4ce9c8bab..2d540143f 100644
--- a/IkiWiki/Plugin/external.pm
+++ b/IkiWiki/Plugin/external.pm
@@ -14,7 +14,7 @@ use IO::Handle;
my %plugins;
-sub import { #{{{
+sub import {
my $self=shift;
my $plugin=shift;
return unless defined $plugin;
@@ -32,17 +32,17 @@ sub import { #{{{
$RPC::XML::ENCODING="utf-8";
rpc_call($plugins{$plugin}, "import");
-} #}}}
+}
-sub rpc_write ($$) { #{{{
+sub rpc_write ($$) {
my $fh=shift;
my $string=shift;
$fh->print($string."\n");
$fh->flush;
-} #}}}
+}
-sub rpc_call ($$;@) { #{{{
+sub rpc_call ($$;@) {
my $plugin=shift;
my $command=shift;
@@ -131,12 +131,12 @@ sub rpc_call ($$;@) { #{{{
}
return undef;
-} #}}}
+}
package IkiWiki::RPC::XML;
use Memoize;
-sub getvar ($$$) { #{{{
+sub getvar ($$$) {
my $plugin=shift;
my $varname="IkiWiki::".shift;
my $key=shift;
@@ -145,9 +145,9 @@ sub getvar ($$$) { #{{{
my $ret=$varname->{$key};
use strict 'refs';
return $ret;
-} #}}}
+}
-sub setvar ($$$;@) { #{{{
+sub setvar ($$$;@) {
my $plugin=shift;
my $varname="IkiWiki::".shift;
my $key=shift;
@@ -157,18 +157,18 @@ sub setvar ($$$;@) { #{{{
my $ret=$varname->{$key}=$value;
use strict 'refs';
return $ret;
-} #}}}
+}
-sub getstate ($$$$) { #{{{
+sub getstate ($$$$) {
my $plugin=shift;
my $page=shift;
my $id=shift;
my $key=shift;
return $IkiWiki::pagestate{$page}{$id}{$key};
-} #}}}
+}
-sub setstate ($$$$;@) { #{{{
+sub setstate ($$$$;@) {
my $plugin=shift;
my $page=shift;
my $id=shift;
@@ -176,22 +176,22 @@ sub setstate ($$$$;@) { #{{{
my $value=shift;
return $IkiWiki::pagestate{$page}{$id}{$key}=$value;
-} #}}}
+}
-sub getargv ($) { #{{{
+sub getargv ($) {
my $plugin=shift;
return \@ARGV;
-} #}}}
+}
-sub setargv ($@) { #{{{
+sub setargv ($@) {
my $plugin=shift;
my $array=shift;
@ARGV=@$array;
-} #}}}
+}
-sub inject ($@) { #{{{
+sub inject ($@) {
# Bind a given perl function name to a particular RPC request.
my $plugin=shift;
my %params=@_;
@@ -213,9 +213,9 @@ sub inject ($@) { #{{{
# the injected version.
IkiWiki::inject(name => $params{name}, call => $sub);
return 1;
-} #}}}
+}
-sub hook ($@) { #{{{
+sub hook ($@) {
# the call parameter is a function name to call, since XML RPC
# cannot pass a function reference
my $plugin=shift;
@@ -227,13 +227,13 @@ sub hook ($@) { #{{{
IkiWiki::hook(%params, call => sub {
IkiWiki::Plugin::external::rpc_call($plugin, $callback, @_);
});
-} #}}}
+}
-sub pagespec_match ($@) { #{{{
+sub pagespec_match ($@) {
# convert pagespec_match's return object into a XML RPC boolean
my $plugin=shift;
return RPC::XML::boolean->new(0 + IkiWiki::pagespec_march(@_));
-} #}}}
+}
1
diff --git a/IkiWiki/Plugin/favicon.pm b/IkiWiki/Plugin/favicon.pm
index e9204dea9..68359a4aa 100644
--- a/IkiWiki/Plugin/favicon.pm
+++ b/IkiWiki/Plugin/favicon.pm
@@ -7,20 +7,20 @@ use warnings;
use strict;
use IkiWiki 2.00;
-sub import { #{{{
+sub import {
hook(type => "getsetup", id => "favicon", call => \&getsetup);
hook(type => "pagetemplate", id => "favicon", call => \&pagetemplate);
-} # }}}
+}
-sub getsetup () { #{{{
+sub getsetup () {
return
plugin => {
safe => 1,
rebuild => 1,
},
-} #}}}
+}
-sub pagetemplate (@) { #{{{
+sub pagetemplate (@) {
my %params=@_;
my $template=$params{template};
@@ -28,6 +28,6 @@ sub pagetemplate (@) { #{{{
if ($template->query(name => "favicon")) {
$template->param(favicon => "favicon.ico");
}
-} # }}}
+}
1
diff --git a/IkiWiki/Plugin/filecheck.pm b/IkiWiki/Plugin/filecheck.pm
index 27f764e3b..5040a185c 100644
--- a/IkiWiki/Plugin/filecheck.pm
+++ b/IkiWiki/Plugin/filecheck.pm
@@ -37,9 +37,9 @@ my %units=( #{{{ # size in bytes
# ikiwiki, if you find you need larger data quantities, either modify
# yourself to add them, or travel back in time to 2008 and kill me.
# -- Joey
-); #}}}
+);
-sub parsesize ($) { #{{{
+sub parsesize ($) {
my $size=shift;
no warnings;
@@ -51,10 +51,10 @@ sub parsesize ($) { #{{{
}
}
return $base;
-} #}}}
+}
# This is provided for other plugins that want to convert back the other way.
-sub humansize ($) { #{{{
+sub humansize ($) {
my $size=shift;
foreach my $unit (reverse sort { $units{$a} <=> $units{$b} || $b cmp $a } keys %units) {
@@ -63,11 +63,11 @@ sub humansize ($) { #{{{
}
}
return $size; # near zero, or negative
-} #}}}
+}
package IkiWiki::PageSpec;
-sub match_maxsize ($$;@) { #{{{
+sub match_maxsize ($$;@) {
my $page=shift;
my $maxsize=eval{IkiWiki::Plugin::filecheck::parsesize(shift)};
if ($@) {
@@ -86,9 +86,9 @@ sub match_maxsize ($$;@) { #{{{
else {
return IkiWiki::SuccessReason->new("file not too large");
}
-} #}}}
+}
-sub match_minsize ($$;@) { #{{{
+sub match_minsize ($$;@) {
my $page=shift;
my $minsize=eval{IkiWiki::Plugin::filecheck::parsesize(shift)};
if ($@) {
@@ -107,9 +107,9 @@ sub match_minsize ($$;@) { #{{{
else {
return IkiWiki::SuccessReason->new("file not too small");
}
-} #}}}
+}
-sub match_mimetype ($$;@) { #{{{
+sub match_mimetype ($$;@) {
my $page=shift;
my $wanted=shift;
@@ -140,9 +140,9 @@ sub match_mimetype ($$;@) { #{{{
else {
return IkiWiki::SuccessReason->new("file MIME type is $mimetype");
}
-} #}}}
+}
-sub match_virusfree ($$;@) { #{{{
+sub match_virusfree ($$;@) {
my $page=shift;
my $wanted=shift;
@@ -182,9 +182,9 @@ sub match_virusfree ($$;@) { #{{{
else {
return IkiWiki::SuccessReason->new("file seems virusfree ($reason)");
}
-} #}}}
+}
-sub match_ispage ($$;@) { #{{{
+sub match_ispage ($$;@) {
my $filename=shift;
if (defined IkiWiki::pagetype($filename)) {
@@ -193,4 +193,4 @@ sub match_ispage ($$;@) { #{{{
else {
return IkiWiki::FailReason->new("file is not a wiki page");
}
-} #}}}
+}
diff --git a/IkiWiki/Plugin/format.pm b/IkiWiki/Plugin/format.pm
index 1e21a0bdc..b4d3a3c5f 100644
--- a/IkiWiki/Plugin/format.pm
+++ b/IkiWiki/Plugin/format.pm
@@ -5,11 +5,11 @@ use warnings;
use strict;
use IkiWiki 2.00;
-sub import { #{{{
+sub import {
hook(type => "preprocess", id => "format", call => \&preprocess);
-} #}}}
+}
-sub preprocess (@) { #{{{
+sub preprocess (@) {
my $format=$_[0];
shift; shift;
my $text=$_[0];
@@ -25,6 +25,6 @@ sub preprocess (@) { #{{{
return IkiWiki::htmlize($params{page}, $params{destpage}, $format,
IkiWiki::preprocess($params{page}, $params{destpage}, $text));
-} #}}}
+}
1
diff --git a/IkiWiki/Plugin/fortune.pm b/IkiWiki/Plugin/fortune.pm
index 456b63e9f..6a12f28fd 100644
--- a/IkiWiki/Plugin/fortune.pm
+++ b/IkiWiki/Plugin/fortune.pm
@@ -6,20 +6,20 @@ use warnings;
use strict;
use IkiWiki 2.00;
-sub import { #{{{
+sub import {
hook(type => "getsetup", id => "fortune", call => \&getsetup);
hook(type => "preprocess", id => "fortune", call => \&preprocess);
-} # }}}
+}
-sub getsetup () { #{{{
+sub getsetup () {
return
plugin => {
safe => 1,
rebuild => undef,
},
-} #}}}
+}
-sub preprocess (@) { #{{{
+sub preprocess (@) {
$ENV{PATH}="$ENV{PATH}:/usr/games:/usr/local/games";
my $f = `fortune 2>/dev/null`;
@@ -29,6 +29,6 @@ sub preprocess (@) { #{{{
else {
return "
$f
\n";
}
-} # }}}
+}
1
diff --git a/IkiWiki/Plugin/git.pm b/IkiWiki/Plugin/git.pm
index 1a39d87e5..6a7f6c3ae 100644
--- a/IkiWiki/Plugin/git.pm
+++ b/IkiWiki/Plugin/git.pm
@@ -11,7 +11,7 @@ my $sha1_pattern = qr/[0-9a-fA-F]{40}/; # pattern to validate Git sha1sums
my $dummy_commit_msg = 'dummy commit'; # message to skip in recent changes
my $no_chdir=0;
-sub import { #{{{
+sub import {
hook(type => "checkconfig", id => "git", call => \&checkconfig);
hook(type => "getsetup", id => "git", call => \&getsetup);
hook(type => "rcs", id => "rcs_update", call => \&rcs_update);
@@ -25,9 +25,9 @@ sub import { #{{{
hook(type => "rcs", id => "rcs_diff", call => \&rcs_diff);
hook(type => "rcs", id => "rcs_getctime", call => \&rcs_getctime);
hook(type => "rcs", id => "rcs_receive", call => \&rcs_receive);
-} #}}}
+}
-sub checkconfig () { #{{{
+sub checkconfig () {
if (! defined $config{gitorigin_branch}) {
$config{gitorigin_branch}="origin";
}
@@ -49,9 +49,9 @@ sub checkconfig () { #{{{
wrappermode => (defined $config{git_wrappermode} ? $config{git_wrappermode} : "06755"),
};
}
-} #}}}
+}
-sub getsetup () { #{{{
+sub getsetup () {
return
plugin => {
safe => 0, # rcs plugin
@@ -113,9 +113,9 @@ sub getsetup () { #{{{
safe => 0, # paranoia
rebuild => 0,
},
-} #}}}
+}
-sub safe_git (&@) { #{{{
+sub safe_git (&@) {
# Start a child process safely without resorting /bin/sh.
# Return command output or success state (in scalar context).
@@ -152,9 +152,9 @@ sub safe_git (&@) { #{{{
sub run_or_die ($@) { safe_git(\&error, @_) }
sub run_or_cry ($@) { safe_git(sub { warn @_ }, @_) }
sub run_or_non ($@) { safe_git(undef, @_) }
-#}}}
-sub merge_past ($$$) { #{{{
+
+sub merge_past ($$$) {
# Unlike with Subversion, Git cannot make a 'svn merge -rN:M file'.
# Git merge commands work with the committed changes, except in the
# implicit case of '-m' of git checkout(1). So we should invent a
@@ -246,9 +246,9 @@ sub merge_past ($$$) { #{{{
error("Git merge failed!\n$failure\n") if $failure;
return $conflict;
-} #}}}
+}
-sub parse_diff_tree ($@) { #{{{
+sub parse_diff_tree ($@) {
# Parse the raw diff tree chunk and return the info hash.
# See git-diff-tree(1) for the syntax.
@@ -358,9 +358,9 @@ sub parse_diff_tree ($@) { #{{{
}
return \%ci;
-} #}}}
+}
-sub git_commit_info ($;$) { #{{{
+sub git_commit_info ($;$) {
# Return an array of commit info hashes of num commits
# starting from the given sha1sum.
my ($sha1, $num) = @_;
@@ -381,9 +381,9 @@ sub git_commit_info ($;$) { #{{{
warn "Cannot parse commit info for '$sha1' commit" if !@ci;
return wantarray ? @ci : $ci[0];
-} #}}}
+}
-sub git_sha1 (;$) { #{{{
+sub git_sha1 (;$) {
# Return head sha1sum (of given file).
my $file = shift || q{--};
@@ -394,25 +394,25 @@ sub git_sha1 (;$) { #{{{
($sha1) = $sha1 =~ m/($sha1_pattern)/; # sha1 is untainted now
} else { debug("Empty sha1sum for '$file'.") }
return defined $sha1 ? $sha1 : q{};
-} #}}}
+}
-sub rcs_update () { #{{{
+sub rcs_update () {
# Update working directory.
if (length $config{gitorigin_branch}) {
run_or_cry('git', 'pull', $config{gitorigin_branch});
}
-} #}}}
+}
-sub rcs_prepedit ($) { #{{{
+sub rcs_prepedit ($) {
# Return the commit sha1sum of the file when editing begins.
# This will be later used in rcs_commit if a merge is required.
my ($file) = @_;
return git_sha1($file);
-} #}}}
+}
-sub rcs_commit ($$$;$$) { #{{{
+sub rcs_commit ($$$;$$) {
# Try to commit the page; returns undef on _success_ and
# a version of the page with the rcs's conflict markers on
# failure.
@@ -431,7 +431,7 @@ sub rcs_commit ($$$;$$) { #{{{
rcs_add($file);
return rcs_commit_staged($message, $user, $ipaddr);
-} #}}}
+}
sub rcs_commit_staged ($$$) {
# Commits all staged changes. Changes can be staged using rcs_add,
@@ -472,29 +472,29 @@ sub rcs_commit_staged ($$$) {
return undef; # success
}
-sub rcs_add ($) { # {{{
+sub rcs_add ($) {
# Add file to archive.
my ($file) = @_;
run_or_cry('git', 'add', $file);
-} #}}}
+}
-sub rcs_remove ($) { # {{{
+sub rcs_remove ($) {
# Remove file from archive.
my ($file) = @_;
run_or_cry('git', 'rm', '-f', $file);
-} #}}}
+}
-sub rcs_rename ($$) { # {{{
+sub rcs_rename ($$) {
my ($src, $dest) = @_;
run_or_cry('git', 'mv', '-f', $src, $dest);
-} #}}}
+}
-sub rcs_recentchanges ($) { #{{{
+sub rcs_recentchanges ($) {
# List of recent changes.
my ($num) = @_;
@@ -562,9 +562,9 @@ sub rcs_recentchanges ($) { #{{{
}
return @rets;
-} #}}}
+}
-sub rcs_diff ($) { #{{{
+sub rcs_diff ($) {
my $rev=shift;
my ($sha1) = $rev =~ /^($sha1_pattern)$/; # untaint
my @lines;
@@ -579,9 +579,9 @@ sub rcs_diff ($) { #{{{
else {
return join("", @lines);
}
-} #}}}
+}
-sub rcs_getctime ($) { #{{{
+sub rcs_getctime ($) {
my $file=shift;
# Remove srcdir prefix
$file =~ s/^\Q$config{srcdir}\E\/?//;
@@ -592,9 +592,9 @@ sub rcs_getctime ($) { #{{{
debug("ctime for '$file': ". localtime($ctime));
return $ctime;
-} #}}}
+}
-sub rcs_receive () { #{{{
+sub rcs_receive () {
# The wiki may not be the only thing in the git repo.
# Determine if it is in a subdirectory by examining the srcdir,
# and its parents, looking for the .git directory.
@@ -685,6 +685,6 @@ sub rcs_receive () { #{{{
}
return reverse @rets;
-} #}}}
+}
1
diff --git a/IkiWiki/Plugin/goodstuff.pm b/IkiWiki/Plugin/goodstuff.pm
index a18e626d4..92bc8200a 100644
--- a/IkiWiki/Plugin/goodstuff.pm
+++ b/IkiWiki/Plugin/goodstuff.pm
@@ -24,19 +24,19 @@ my @bundle=qw{
toggle
};
-sub import { #{{{
+sub import {
hook(type => "getsetup", id => "goodstuff", call => \&getsetup);
foreach my $plugin (@bundle) {
IkiWiki::loadplugin($plugin);
}
-} # }}}
+}
-sub getsetup { #{{{
+sub getsetup {
return
plugin => {
safe => 1,
rebuild => undef,
},
-} #}}}
+}
1
diff --git a/IkiWiki/Plugin/google.pm b/IkiWiki/Plugin/google.pm
index 92b9b29eb..5394c5a6f 100644
--- a/IkiWiki/Plugin/google.pm
+++ b/IkiWiki/Plugin/google.pm
@@ -8,21 +8,21 @@ use URI;
my $host;
-sub import { #{{{
+sub import {
hook(type => "getsetup", id => "google", call => \&getsetup);
hook(type => "checkconfig", id => "google", call => \&checkconfig);
hook(type => "pagetemplate", id => "google", call => \&pagetemplate);
-} # }}}
+}
-sub getsetup () { #{{{
+sub getsetup () {
return
plugin => {
safe => 1,
rebuild => 1,
},
-} #}}}
+}
-sub checkconfig () { #{{{
+sub checkconfig () {
if (! length $config{url}) {
error(sprintf(gettext("Must specify %s when using the google search plugin"), "url"));
}
@@ -31,10 +31,10 @@ sub checkconfig () { #{{{
error(gettext("Failed to parse url, cannot determine domain name"));
}
$host=$uri->host;
-} #}}}
+}
my $form;
-sub pagetemplate (@) { #{{{
+sub pagetemplate (@) {
my %params=@_;
my $page=$params{page};
my $template=$params{template};
@@ -49,6 +49,6 @@ sub pagetemplate (@) { #{{{
$template->param(searchform => $form);
}
-} #}}}
+}
1
diff --git a/IkiWiki/Plugin/googlecalendar.pm b/IkiWiki/Plugin/googlecalendar.pm
index 81a3ad677..9e09d7dbb 100644
--- a/IkiWiki/Plugin/googlecalendar.pm
+++ b/IkiWiki/Plugin/googlecalendar.pm
@@ -5,24 +5,24 @@ use warnings;
use strict;
use IkiWiki 2.00;
-sub import { #{{{
+sub import {
hook(type => "getsetup", id => "googlecalendar",
call => \&getsetup);
hook(type => "preprocess", id => "googlecalendar",
call => \&preprocess);
hook(type => "format", id => "googlecalendar",
call => \&format);
-} # }}}
+}
-sub getsetup () { #{{{
+sub getsetup () {
return
plugin => {
safe => 1,
rebuild => undef,
},
-} #}}}
+}
-sub preprocess (@) { #{{{
+sub preprocess (@) {
my %params=@_;
# Parse the html, looking for the url to embed for the calendar.
@@ -35,21 +35,21 @@ sub preprocess (@) { #{{{
my ($width)=$params{html}=~m#width="(\d+)"#;
return "";
-} # }}}
+}
-sub format (@) { #{{{
+sub format (@) {
my %params=@_;
$params{content}=~s/
> Old versions of perl are known to have bugs with taint checking.
diff --git a/doc/bugs/quieten_mercurial.mdwn b/doc/bugs/quieten_mercurial.mdwn
index 26f833e5f..3fd75ea1b 100644
--- a/doc/bugs/quieten_mercurial.mdwn
+++ b/doc/bugs/quieten_mercurial.mdwn
@@ -6,7 +6,7 @@ messages which are then taken for CGI output, causing errors and general trouble
@@ -55,7 +55,7 @@
}
- sub rcs_update () { #{{{
+ sub rcs_update () {
- my @cmdline = ("hg", "-R", "$config{srcdir}", "update");
+ my @cmdline = ("hg", "-q", "-R", "$config{srcdir}", "update");
if (system(@cmdline) != 0) {
@@ -22,7 +22,7 @@ messages which are then taken for CGI output, causing errors and general trouble
if (system(@cmdline) != 0) {
warn "'@cmdline' failed: $!";
@@ -92,7 +92,7 @@
- sub rcs_add ($) { # {{{
+ sub rcs_add ($) {
my ($file) = @_;
- my @cmdline = ("hg", "-R", "$config{srcdir}", "add", "$file");
diff --git a/doc/bugs/search_for_locale_data_in_the_installed_location.mdwn b/doc/bugs/search_for_locale_data_in_the_installed_location.mdwn
index 0a2b1efea..dace2ca19 100644
--- a/doc/bugs/search_for_locale_data_in_the_installed_location.mdwn
+++ b/doc/bugs/search_for_locale_data_in_the_installed_location.mdwn
@@ -2,7 +2,7 @@ It seems like gettext only searches for locale information in /usr/share/locale,
--- a/IkiWiki.pm
+++ b/IkiWiki.pm
- @@ -1057,6 +1057,7 @@ sub gettext { #{{{
+ @@ -1057,6 +1057,7 @@ sub gettext {
$gettext_obj=undef;
return shift;
}
diff --git a/doc/bugs/tbasewiki__95__brokenlinks.t_broken.mdwn b/doc/bugs/tbasewiki__95__brokenlinks.t_broken.mdwn
index ac895896a..db3917d21 100644
--- a/doc/bugs/tbasewiki__95__brokenlinks.t_broken.mdwn
+++ b/doc/bugs/tbasewiki__95__brokenlinks.t_broken.mdwn
@@ -25,12 +25,12 @@ After some digging I found that HTML::Template is being required after the new s
filter => sub {
my $text_ref = shift;
@@ -857,6 +856,7 @@
- } #}}}
+ }
- sub template ($;@) { #{{{
+ sub template ($;@) {
+ require HTML::Template;
HTML::Template->new(template_params(@_));
- } #}}}
+ }
**That** gave me:
diff --git a/doc/plugins/contrib/headinganchors.mdwn b/doc/plugins/contrib/headinganchors.mdwn
index ef2fa122a..c80cc0b49 100644
--- a/doc/plugins/contrib/headinganchors.mdwn
+++ b/doc/plugins/contrib/headinganchors.mdwn
@@ -12,9 +12,9 @@ rst and any other format that produces html. The code is available here:
use strict;
use IkiWiki 2.00;
- sub import { #{{{
+ sub import {
hook(type => "sanitize", id => "headinganchors", call => \&headinganchors);
- } # }}}
+ }
sub text_to_anchor {
my $str = shift;
@@ -26,11 +26,11 @@ rst and any other format that produces html. The code is available here:
return $str;
}
- sub headinganchors (@) { #{{{
+ sub headinganchors (@) {
my %params=@_;
my $content=$params{content};
$content=~s{([^>]*)}{''.$2.''}gie;
return $content;
- } # }}}
+ }
1
diff --git a/doc/plugins/contrib/siterel2pagerel.mdwn b/doc/plugins/contrib/siterel2pagerel.mdwn
index 956b6728f..9b09657bf 100644
--- a/doc/plugins/contrib/siterel2pagerel.mdwn
+++ b/doc/plugins/contrib/siterel2pagerel.mdwn
@@ -13,11 +13,11 @@ other format that produces html. The code is available here:
use strict;
use IkiWiki 2.00;
- sub import { #{{{
+ sub import {
hook(type => "sanitize", id => "siterel2pagerel", call => \&siterel2pagerel);
- } # }}}
+ }
- sub siterel2pagerel (@) { #{{{
+ sub siterel2pagerel (@) {
my %params=@_;
my $baseurl=IkiWiki::baseurl($params{page});
my $content=$params{content};
@@ -25,6 +25,6 @@ other format that produces html. The code is available here:
$content=~s/( "getsetup", id => "unixauth", call => \&getsetup);
hook(type => "formbuilder_setup", id => "unixauth",
call => \&formbuilder_setup);
hook(type => "formbuilder", id => "unixauth",
call => \&formbuilder);
hook(type => "sessioncgi", id => "unixauth", call => \&sessioncgi);
- } # }}}
+ }
- sub getsetup () { #{{{
+ sub getsetup () {
return
unixauth_type => {
type => "string",
@@ -83,10 +83,10 @@ __Security__: [As with passwordauth](/security/#index14h2), be wary of sending u
safe => 0,
rebuild => 1,
},
- } #}}}
+ }
# Checks if a string matches a user's password, and returns true or false.
- sub checkpassword ($$;$) { #{{{
+ sub checkpassword ($$;$) {
my $user=shift;
my $password=shift;
my $field=shift || "password";
@@ -131,9 +131,9 @@ __Security__: [As with passwordauth](/security/#index14h2), be wary of sending u
}
return $ret;
- } #}}}
+ }
- sub formbuilder_setup (@) { #{{{
+ sub formbuilder_setup (@) {
my %params=@_;
my $form=$params{form};
@@ -204,7 +204,7 @@ __Security__: [As with passwordauth](/security/#index14h2), be wary of sending u
}
}
- sub formbuilder (@) { #{{{
+ sub formbuilder (@) {
my %params=@_;
my $form=$params{form};
@@ -225,12 +225,12 @@ __Security__: [As with passwordauth](/security/#index14h2), be wary of sending u
my $user_name=$form->field('name');
}
}
- } #}}}
+ }
- sub sessioncgi ($$) { #{{{
+ sub sessioncgi ($$) {
my $q=shift;
my $session=shift;
- } #}}}
+ }
1
diff --git a/doc/todo/Add_DATE_parameter_for_use_in_templates.mdwn b/doc/todo/Add_DATE_parameter_for_use_in_templates.mdwn
index c908f57c8..8ecdf36d0 100644
--- a/doc/todo/Add_DATE_parameter_for_use_in_templates.mdwn
+++ b/doc/todo/Add_DATE_parameter_for_use_in_templates.mdwn
@@ -44,7 +44,7 @@ regenerate this one against that).
%config %links %renderedfiles %pagesources %destsources);
our $VERSION = 2.00; # plugin interface version, next is ikiwiki version
our $version="2.1";my $installdir="/usr";
- @@ -70,6 +70,7 @@ sub defaultconfig () { #{{{
+ @@ -70,6 +70,7 @@ sub defaultconfig () {
plugin => [qw{mdwn inline htmlscrubber passwordauth openid signinedit
lockedit conditional}],
timeformat => '%c',
@@ -52,27 +52,27 @@ regenerate this one against that).
locale => undef,
sslcookie => 0,
httpauth => 0,
- @@ -447,6 +448,15 @@ sub displaytime ($) { #{{{
+ @@ -447,6 +448,15 @@ sub displaytime ($) {
$config{timeformat}, localtime($time)));
- } #}}}
+ }
- +sub displaydate ($) { #{{{
+ +sub displaydate ($) {
+ my $time=shift;
+
+ # strftime doesn't know about encodings, so make sure
+ # its output is properly treated as utf8
+ return decode_utf8(POSIX::strftime(
+ $config{dateformat}, localtime($time)));
- +} #}}}
+ +}
+
- sub beautify_url ($) { #{{{
+ sub beautify_url ($) {
my $url=shift;
diff --git a/Plugin/inline.pm b/Plugin/inline.pm
index 8f6ab51..7bd6147 100644
--- a/Plugin/inline.pm
+++ b/Plugin/inline.pm
- @@ -148,6 +148,7 @@ sub preprocess_inline (@) { #{{{
+ @@ -148,6 +148,7 @@ sub preprocess_inline (@) {
$template->param(pageurl => urlto(bestlink($params{page}, $page), $params{destpage}));
$template->param(title => pagetitle(basename($page)));
$template->param(ctime => displaytime($pagectime{$page}));
diff --git a/doc/todo/Add_support_for_latest_Text::Markdown_as_found_on_CPAN.mdwn b/doc/todo/Add_support_for_latest_Text::Markdown_as_found_on_CPAN.mdwn
index 222cd8c46..6b9fa0535 100644
--- a/doc/todo/Add_support_for_latest_Text::Markdown_as_found_on_CPAN.mdwn
+++ b/doc/todo/Add_support_for_latest_Text::Markdown_as_found_on_CPAN.mdwn
@@ -12,7 +12,7 @@ This patch allows IkiWiki to work with either of the two:
--- IkiWiki/Plugin/mdwn.pm.orig 2008-03-08 11:33:50.000000000 +0100
+++ IkiWiki/Plugin/mdwn.pm 2008-03-08 13:37:21.000000000 +0100
- @@ -28,14 +28,20 @@ sub htmlize (@) { #{{{
+ @@ -28,14 +28,20 @@ sub htmlize (@) {
$markdown_sub=\&Markdown::Markdown;
}
else {
diff --git a/doc/todo/Allow_change_of_wiki_file_types.mdwn b/doc/todo/Allow_change_of_wiki_file_types.mdwn
index 8a398f2e0..19574b175 100644
--- a/doc/todo/Allow_change_of_wiki_file_types.mdwn
+++ b/doc/todo/Allow_change_of_wiki_file_types.mdwn
@@ -12,7 +12,7 @@ I was hoping that the [[plugins/rename]] plugin would allow web uses to change t
index 527ee88..123b772 100644
--- a/IkiWiki/Plugin/rename.pm
+++ b/IkiWiki/Plugin/rename.pm
- @@ -43,7 +43,7 @@ sub check_canrename ($$$$$$$) { #{{{
+ @@ -43,7 +43,7 @@ sub check_canrename ($$$$$$$) {
# Dest checks can be omitted by passing undef.
if (defined $dest) {
@@ -21,7 +21,7 @@ I was hoping that the [[plugins/rename]] plugin would allow web uses to change t
error(gettext("no change to the file name was specified"));
}
- @@ -54,7 +54,7 @@ sub check_canrename ($$$$$$$) { #{{{
+ @@ -54,7 +54,7 @@ sub check_canrename ($$$$$$$) {
}
# Must not be a known source file.
@@ -30,7 +30,7 @@ I was hoping that the [[plugins/rename]] plugin would allow web uses to change t
error(sprintf(gettext("%s already exists"),
htmllink("", "", $dest, noimageinline => 1)));
}
- @@ -97,6 +97,24 @@ sub rename_form ($$$) { #{{{
+ @@ -97,6 +97,24 @@ sub rename_form ($$$) {
$f->field(name => "do", type => "hidden", value => "rename", force => 1);
$f->field(name => "page", type => "hidden", value => $page, force => 1);
$f->field(name => "new_name", value => IkiWiki::pagetitle($page), size => 60);
@@ -55,7 +55,7 @@ I was hoping that the [[plugins/rename]] plugin would allow web uses to change t
$f->field(name => "attachment", type => "hidden");
return $f, ["Rename", "Cancel"];
- @@ -223,12 +241,19 @@ sub sessioncgi ($$) { #{{{
+ @@ -223,12 +241,19 @@ sub sessioncgi ($$) {
my $dest=IkiWiki::possibly_foolish_untaint(IkiWiki::titlepage($q->param("new_name")));
# The extension of dest is the same as src if it's
diff --git a/doc/todo/Allow_edittemplate_to_set_file_type.mdwn b/doc/todo/Allow_edittemplate_to_set_file_type.mdwn
index b49968c18..1b99a4e05 100644
--- a/doc/todo/Allow_edittemplate_to_set_file_type.mdwn
+++ b/doc/todo/Allow_edittemplate_to_set_file_type.mdwn
@@ -14,7 +14,7 @@ edittemplate there. --[[Joey]]
index 98308de..c381940 100644
--- a/IkiWiki/Plugin/edittemplate.pm
+++ b/IkiWiki/Plugin/edittemplate.pm
- @@ -56,8 +56,14 @@ sub preprocess (@) { #{{{
+ @@ -56,8 +56,14 @@ sub preprocess (@) {
$pagestate{$params{page}}{edittemplate}{$params{match}}=$params{template};
@@ -28,10 +28,10 @@ edittemplate there. --[[Joey]]
+
+ return sprintf(gettext("edittemplate: %s registered for %s"),
+ $linkHTML, $params{match});
- } # }}}
+ }
- sub formbuilder (@) { #{{{
- @@ -89,6 +95,9 @@ sub formbuilder (@) { #{{{
+ sub formbuilder (@) {
+ @@ -89,6 +95,9 @@ sub formbuilder (@) {
if (pagespec_match($p, $pagespec, location => $registering_page)) {
$form->field(name => "editcontent",
value => filltemplate($pagestate{$registering_page}{edittemplate}{$pagespec}, $page));
diff --git a/doc/todo/Bestdir_along_with_bestlink_in_IkiWiki.pm.mdwn b/doc/todo/Bestdir_along_with_bestlink_in_IkiWiki.pm.mdwn
index 73157a326..95c38f794 100644
--- a/doc/todo/Bestdir_along_with_bestlink_in_IkiWiki.pm.mdwn
+++ b/doc/todo/Bestdir_along_with_bestlink_in_IkiWiki.pm.mdwn
@@ -8,9 +8,9 @@ This patch adds function bestdir() which returns best directory from the directo
+++ IkiWiki.pm (working copy)
@@ -391,6 +391,35 @@
return "";
- } #}}}
+ }
- +sub bestdir ($$) { #{{{
+ +sub bestdir ($$) {
+ my $page=shift;
+ my $link=shift;
+ my $cwd=$page;
@@ -37,9 +37,9 @@ This patch adds function bestdir() which returns best directory from the directo
+ }
+
+ return "";
- +} #}}}
+ +}
+
- sub isinlinableimage ($) { #{{{
+ sub isinlinableimage ($) {
my $file=shift;
----
diff --git a/doc/todo/Default_text_for_new_pages.mdwn b/doc/todo/Default_text_for_new_pages.mdwn
index 4a17bbf8b..a904f8287 100644
--- a/doc/todo/Default_text_for_new_pages.mdwn
+++ b/doc/todo/Default_text_for_new_pages.mdwn
@@ -15,7 +15,7 @@ Inline below is a [[patch]] that implements this:
index bb21ed2..10c985c 100644
--- a/IkiWiki/Plugin/editpage.pm
+++ b/IkiWiki/Plugin/editpage.pm
- @@ -60,7 +60,7 @@ sub cgi_editpage ($$) { #{{{
+ @@ -60,7 +60,7 @@ sub cgi_editpage ($$) {
decode_cgi_utf8($q);
@@ -24,7 +24,7 @@ Inline below is a [[patch]] that implements this:
my @buttons=("Save Page", "Preview", "Cancel");
eval q{use CGI::FormBuilder};
error($@) if $@;
- @@ -117,9 +117,20 @@ sub cgi_editpage ($$) { #{{{
+ @@ -117,9 +117,20 @@ sub cgi_editpage ($$) {
}
else {
$type=$form->param('type');
@@ -45,7 +45,7 @@ Inline below is a [[patch]] that implements this:
elsif (defined $from && exists $pagesources{$from}) {
# favor the type of linking page
$type=pagetype($pagesources{$from});
- @@ -129,7 +140,7 @@ sub cgi_editpage ($$) { #{{{
+ @@ -129,7 +140,7 @@ sub cgi_editpage ($$) {
if (! $form->submitted) {
$form->field(name => "rcsinfo", value => "", force => 1);
}
@@ -58,7 +58,7 @@ Inline below is a [[patch]] that implements this:
index 8efef3f..075d7d8 100644
--- a/IkiWiki/Plugin/inline.pm
+++ b/IkiWiki/Plugin/inline.pm
- @@ -271,6 +271,7 @@ sub preprocess_inline (@) { #{{{
+ @@ -271,6 +271,7 @@ sub preprocess_inline (@) {
$rootpage=$params{page};
}
$formtemplate->param(rootpage => $rootpage);
diff --git a/doc/todo/Give_access_to_more_TMPL__95__VAR_variables_in_templates_inserted_by_the_template_plugin.mdwn b/doc/todo/Give_access_to_more_TMPL__95__VAR_variables_in_templates_inserted_by_the_template_plugin.mdwn
index a644e236b..c71250b3a 100644
--- a/doc/todo/Give_access_to_more_TMPL__95__VAR_variables_in_templates_inserted_by_the_template_plugin.mdwn
+++ b/doc/todo/Give_access_to_more_TMPL__95__VAR_variables_in_templates_inserted_by_the_template_plugin.mdwn
@@ -94,7 +94,7 @@ most possible of these pages.
> index a6e34fc..bb9dd8d 100644
> --- a/IkiWiki/Plugin/template.pm
> +++ b/IkiWiki/Plugin/template.pm
-> @@ -57,6 +57,8 @@ sub preprocess (@) { #{{{
+> @@ -57,6 +57,8 @@ sub preprocess (@) {
> }
> }
>
diff --git a/doc/todo/Inline_plugin_option_to_show_full_page_path.mdwn b/doc/todo/Inline_plugin_option_to_show_full_page_path.mdwn
index 9f52a724a..691694009 100644
--- a/doc/todo/Inline_plugin_option_to_show_full_page_path.mdwn
+++ b/doc/todo/Inline_plugin_option_to_show_full_page_path.mdwn
@@ -19,7 +19,7 @@ Cheers,
index 59eabb6..82913ba 100644
--- a/IkiWiki/Plugin/inline.pm
+++ b/IkiWiki/Plugin/inline.pm
- @@ -229,6 +229,7 @@ sub preprocess_inline (@) { #{{{
+ @@ -229,6 +229,7 @@ sub preprocess_inline (@) {
$template->param(content => $content);
}
$template->param(pageurl => urlto(bestlink($params{page}, $page), $params{destpage}));
diff --git a/doc/todo/Move_teximg_latex_preamble_to_config_file.mdwn b/doc/todo/Move_teximg_latex_preamble_to_config_file.mdwn
index d94d24ee4..3cedd5ae3 100644
--- a/doc/todo/Move_teximg_latex_preamble_to_config_file.mdwn
+++ b/doc/todo/Move_teximg_latex_preamble_to_config_file.mdwn
@@ -71,10 +71,10 @@ Happy TeXing.
+
+my $default_postfix = '\\end{document}';
+
- sub import { #{{{
+ sub import {
hook(type => "getsetup", id => "teximg", call => \&getsetup);
hook(type => "preprocess", id => "teximg", call => \&preprocess);
- @@ -21,6 +33,26 @@ sub getsetup () { #{{{
+ @@ -21,6 +33,26 @@ sub getsetup () {
safe => 1,
rebuild => undef,
},
@@ -98,10 +98,10 @@ Happy TeXing.
+ safe => 0, # Not sure how secure LaTeX is...
+ rebuild => 1,
+ },
- } #}}}
+ }
- sub preprocess (@) { #{{{
- @@ -105,25 +137,35 @@ sub gen_image ($$$$) { #{{{
+ sub preprocess (@) {
+ @@ -105,25 +137,35 @@ sub gen_image ($$$$) {
my $digest = shift;
my $imagedir = shift;
diff --git a/doc/todo/Set_arbitrary_date_to_be_used_by_calendar_plugin.mdwn b/doc/todo/Set_arbitrary_date_to_be_used_by_calendar_plugin.mdwn
index a26433919..89167c084 100644
--- a/doc/todo/Set_arbitrary_date_to_be_used_by_calendar_plugin.mdwn
+++ b/doc/todo/Set_arbitrary_date_to_be_used_by_calendar_plugin.mdwn
@@ -42,13 +42,13 @@ Longer term plans:
my %cache;
my %linkcache;
@@ -32,6 +34,7 @@
- sub import { #{{{
+ sub import {
hook(type => "needsbuild", id => "version", call => \&needsbuild);
hook(type => "preprocess", id => "calendar", call => \&preprocess);
+ hook(type => "preprocess", id => "event", call => \&preprocess_event);
- } #}}}
+ }
- sub is_leap_year (@) { #{{{
+ sub is_leap_year (@) {
@@ -58,6 +61,7 @@
my $nmonth = $params{nmonth};
my $pyear = $params{pyear};
@@ -137,9 +137,9 @@ Longer term plans:
# finish off the week
@@ -304,6 +333,18 @@
return $calendar;
- } #}}}
+ }
- +sub preprocess_event (@) { #{{{
+ +sub preprocess_event (@) {
+ my %params=@_;
+ # if now time is given, use now
+ $params{begin} = localtime($time) unless defined $params{begin};
@@ -151,7 +151,7 @@ Longer term plans:
+ return "";
+} #}}
+
- sub preprocess (@) { #{{{
+ sub preprocess (@) {
my %params=@_;
$params{pages} = "*" unless defined $params{pages};
@@ -311,6 +352,8 @@
diff --git a/doc/todo/Silence_monotone_warning.mdwn b/doc/todo/Silence_monotone_warning.mdwn
index e3f0224c2..d875900c5 100644
--- a/doc/todo/Silence_monotone_warning.mdwn
+++ b/doc/todo/Silence_monotone_warning.mdwn
@@ -4,7 +4,7 @@ A quick [[patch]] to silence a [[rcs/monotone]] warning I started seeing:
index 4b9be31..9d4e280 100644
--- a/IkiWiki/Plugin/monotone.pm
+++ b/IkiWiki/Plugin/monotone.pm
- @@ -55,7 +55,7 @@ sub checkconfig () { #{{{
+ @@ -55,7 +55,7 @@ sub checkconfig () {
error("Monotone version too old, is $version but required 0.38");
}
diff --git a/doc/todo/Support_wildcard_inside_of_link__40____41___within_a_pagespec.mdwn b/doc/todo/Support_wildcard_inside_of_link__40____41___within_a_pagespec.mdwn
index 2837634d9..8320f72a6 100644
--- a/doc/todo/Support_wildcard_inside_of_link__40____41___within_a_pagespec.mdwn
+++ b/doc/todo/Support_wildcard_inside_of_link__40____41___within_a_pagespec.mdwn
@@ -20,7 +20,7 @@ That doesn't work in ikiwiki 2.1, but I have it
index 38aa46a..cd42e8d 100644
--- a/IkiWiki.pm
+++ b/IkiWiki.pm
- @@ -1082,10 +1082,15 @@ sub match_link ($$;@) { #{{{
+ @@ -1082,10 +1082,15 @@ sub match_link ($$;@) {
my $links = $IkiWiki::links{$page} or return undef;
return IkiWiki::FailReason->new("$page has no links") unless @$links;
my $bestlink = IkiWiki::bestlink($from, $link);
@@ -38,7 +38,7 @@ That doesn't work in ikiwiki 2.1, but I have it
+ }
}
return IkiWiki::FailReason->new("$page does not link to $link");
- } #}}}
+ }
--
1.5.1.1.g6aead
diff --git a/doc/todo/Wrapper_config_with_multiline_regexp.mdwn b/doc/todo/Wrapper_config_with_multiline_regexp.mdwn
index c0311bc92..7b4323de1 100644
--- a/doc/todo/Wrapper_config_with_multiline_regexp.mdwn
+++ b/doc/todo/Wrapper_config_with_multiline_regexp.mdwn
@@ -13,12 +13,12 @@ Second, the untainting of $configstring should allow newlines.
+++ wiki-meta/perl/IkiWiki.pm Mon Jun 11 10:52:07 2007
@@ -205,7 +205,7 @@
- sub possibly_foolish_untaint ($) { #{{{
+ sub possibly_foolish_untaint ($) {
my $tainted=shift;
- my ($untainted)=$tainted=~/(.*)/;
+ my ($untainted)=$tainted=~/(.*)/s;
return $untainted;
- } #}}}
+ }
Modified: wiki-meta/perl/IkiWiki/Wrapper.pm
diff --git a/doc/todo/add_forward_age_sorting_option_to_inline.mdwn b/doc/todo/add_forward_age_sorting_option_to_inline.mdwn
index 684419f90..e91c5a42f 100644
--- a/doc/todo/add_forward_age_sorting_option_to_inline.mdwn
+++ b/doc/todo/add_forward_age_sorting_option_to_inline.mdwn
@@ -19,7 +19,7 @@ diff --git a/IkiWiki/Plugin/inline.pm b/IkiWiki/Plugin/inline.pm
index d2e5832..9e52712 100644
--- a/IkiWiki/Plugin/inline.pm
+++ b/IkiWiki/Plugin/inline.pm
-@@ -194,6 +194,9 @@ sub preprocess_inline (@) { #{{{
+@@ -194,6 +194,9 @@ sub preprocess_inline (@) {
elsif (! exists $params{sort} || $params{sort} eq 'age') {
@list=sort { $pagectime{$b} <=> $pagectime{$a} } @list;
}
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 467ec350e..dc6c0001e 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
@@ -17,13 +17,13 @@ Updated to use fix noted in [[bugs/multiple_pages_with_same_name]].
my %metaheaders;
- sub import { #{{{
+ sub import {
hook(type => "getsetup", id => "sourcecode", call => \&getsetup);
hook(type => "checkconfig", id => "sourcecode", call => \&checkconfig);
hook(type => "pagetemplate", id => "sourcecode", call => \&pagetemplate);
- } # }}}
+ }
- sub getsetup () { #{{{
+ sub getsetup () {
return
plugin => {
safe => 1,
@@ -57,9 +57,9 @@ Updated to use fix noted in [[bugs/multiple_pages_with_same_name]].
safe => 1,
rebuild => 1,
},
- } #}}}
+ }
- sub checkconfig () { #{{{
+ sub checkconfig () {
if (! $config{sourcecode_lang}) {
error("The sourcecode plugin requires a list of suffixes in the 'sourcecode_lang' config option");
}
@@ -97,9 +97,9 @@ Updated to use fix noted in [[bugs/multiple_pages_with_same_name]].
error("Your installation of source-highlight cannot handle sourcecode language $lang!");
}
}
- } #}}}
+ }
- sub htmlize (@) { #{{{
+ sub htmlize (@) {
my %params=@_;
my $page = $params{page};
@@ -141,9 +141,9 @@ Updated to use fix noted in [[bugs/multiple_pages_with_same_name]].
}
return '
'."\r\n".join("\r\n",@html)."\r\n
\n";
- } # }}}
+ }
- sub pagetemplate (@) { #{{{
+ sub pagetemplate (@) {
my %params=@_;
my $page=$params{page};
@@ -154,6 +154,6 @@ Updated to use fix noted in [[bugs/multiple_pages_with_same_name]].
my %seen;
$template->param(meta => join("\n", grep { (! $seen{$_}) && ($seen{$_}=1) } @{$metaheaders{$page}}));
}
- } # }}}
+ }
1
diff --git a/doc/todo/blogpost_plugin.mdwn b/doc/todo/blogpost_plugin.mdwn
index 60b1e2515..bb91ffd02 100644
--- a/doc/todo/blogpost_plugin.mdwn
+++ b/doc/todo/blogpost_plugin.mdwn
@@ -51,13 +51,13 @@ Index: IkiWiki/Plugin/blogpost.pm
+use POSIX;
+use IkiWiki 2.00;
+
-+sub import { #{{{
++sub import {
+ hook(type => "checkconfig", id => "blogpost", call => \&checkconfig);
+ hook(type => "authcgi", id => "blogpost", call => \&authcgi);
+ hook(type => "canedit", id => "blogpost", call => \&canedit);
-+} # }}}
++}
+
-+sub checkconfig () { #{{{
++sub checkconfig () {
+ if (! defined $config{blogformat}){
+ $config{blogformat} = 'posts/%Y/%m/%d/$title';
+ }
@@ -72,9 +72,9 @@ Index: IkiWiki/Plugin/blogpost.pm
+ if (! defined $config{blogusers}) {
+ $config{blogusers} = (); # disallow all posting by default
+ }
-+} #}}}
++}
+
-+sub authcgi ($$) { #{{{
++sub authcgi ($$) {
+ my $cgi=shift;
+ my $session=shift;
+
@@ -115,16 +115,16 @@ Index: IkiWiki/Plugin/blogpost.pm
+ $cgi->param("page", $page);
+ }
+
-+} #}}}
++}
+
-+sub blogpage ($) { #{{{
++sub blogpage ($) {
+ my $title=shift;
+ my $page=POSIX::strftime $config{blogformat}, localtime;
+ $page =~ s/\$title/$title/;
+ return $page;
-+} #}}}
++}
+
-+sub canedit ($$$) { #{{{
++sub canedit ($$$) {
+ my $page=shift;
+ my $cgi=shift;
+ my $session=shift;
@@ -136,7 +136,7 @@ Index: IkiWiki/Plugin/blogpost.pm
+ return "" if ($config{blogusers} eq "*" ||
+ grep {$_ eq $user} $config{blogusers});
+ return ("not allowed to blog, $user");
-+} #}}}
++}
+
+1
Index: IkiWiki.pm
diff --git a/doc/todo/bzr.mdwn b/doc/todo/bzr.mdwn
index 179ea2f24..a50c58d26 100644
--- a/doc/todo/bzr.mdwn
+++ b/doc/todo/bzr.mdwn
@@ -56,15 +56,15 @@ and rcs_getctime and rcs_notify aren't written at all. --[[bma]]
return @ret;
}
- sub rcs_update () { #{{{
+ sub rcs_update () {
# Not needed.
- } #}}}
+ }
- sub rcs_prepedit ($) { #{{{
+ sub rcs_prepedit ($) {
return "";
- } #}}}
+ }
- sub rcs_commit ($$$;$$) { #{{{
+ sub rcs_commit ($$$;$$) {
my ($file, $message, $rcstoken, $user, $ipaddr) = @_;
if (defined $user) {
@@ -95,18 +95,18 @@ and rcs_getctime and rcs_notify aren't written at all. --[[bma]]
system("bzr","whoami",$olduser);
return undef; # success
- } #}}}
+ }
- sub rcs_add ($) { # {{{
+ sub rcs_add ($) {
my ($file) = @_;
my @cmdline = ("bzr", "add", "--quiet", "$config{srcdir}/$file");
if (system(@cmdline) != 0) {
warn "'@cmdline' failed: $!";
}
- } #}}}
+ }
- sub rcs_recentchanges ($) { #{{{
+ sub rcs_recentchanges ($) {
my ($num) = @_;
eval q{use CGI 'escapeHTML'};
@@ -153,15 +153,15 @@ and rcs_getctime and rcs_notify aren't written at all. --[[bma]]
}
return @ret;
- } #}}}
+ }
- sub rcs_notify () { #{{{
+ sub rcs_notify () {
# TODO
- } #}}}
+ }
- sub rcs_getctime ($) { #{{{
+ sub rcs_getctime ($) {
# TODO
- } #}}}
+ }
1
diff --git a/doc/todo/cas_authentication.mdwn b/doc/todo/cas_authentication.mdwn
index c8ffe7005..8bf7042df 100644
--- a/doc/todo/cas_authentication.mdwn
+++ b/doc/todo/cas_authentication.mdwn
@@ -43,11 +43,11 @@ follows) ?
> the use of it: `eval q{use AuthCAS}; error $@ if $@`
+
- +sub import { #{{{
+ +sub import {
+ hook(type => "getopt", id => "cas", call => \&getopt);
+ hook(type => "auth", id => "cas", call => \&auth);
+ hook(type => "formbuilder_setup", id => "cas", call => \&formbuilder_setup);
- +} # }}}
+ +}
> Could you please use tabs for indentation of program flow?
@@ -61,15 +61,15 @@ follows) ?
> Why would you want to make other auth plugins not work? Could a site not
> legitimatly chose to use this and another auth method?
- +sub getopt () { #{{{
+ +sub getopt () {
+ eval q{use Getopt::Long};
+ error($@) if $@;
+ Getopt::Long::Configure('pass_through');
+ GetOptions("cas_url=s" => \$config{cas_url});
+ GetOptions("ca_file=s" => \$config{ca_file});
- +} #}}}
+ +}
+
- +sub auth ($$) { #{{{
+ +sub auth ($$) {
+ my $q=shift;
+ my $session=shift;
+
@@ -98,11 +98,11 @@ follows) ?
+ error("CAS failure: ".&AuthCAS::get_errors());
+ }
+ }
- +} #}}}
+ +}
+
+# I use formbuilder_setup and not formbuilder type in order to bypass the
+# Logout processing done in IkiWiki::CGI::cgi_prefs()
- +sub formbuilder_setup (@) { #{{{
+ +sub formbuilder_setup (@) {
+ my %params=@_;
+
+ my $form=$params{form};
diff --git a/doc/todo/color_plugin.mdwn b/doc/todo/color_plugin.mdwn
index 69afe837d..19fba3b35 100644
--- a/doc/todo/color_plugin.mdwn
+++ b/doc/todo/color_plugin.mdwn
@@ -132,12 +132,12 @@ Of course, I'm open for discussion or exchange of ideas :) --[[Paweł|ptecza]]
+use strict;
+use IkiWiki 2.00;
+
- +sub import { #{{{
+ +sub import {
+ hook(type => "preprocess", id => "color", call => \&preprocess);
+ hook(type => "format", id => "color", call => \&format);
- +} #}}}
+ +}
+
- +sub preserve_style ($$$) { #{{{
+ +sub preserve_style ($$$) {
+ my $foreground = shift;
+ my $background = shift;
+ my $text = shift;
@@ -162,18 +162,18 @@ Of course, I'm open for discussion or exchange of ideas :) --[[Paweł|ptecza]]
+
+ return $preserved;
+
- +} #}}}
+ +}
+
- +sub replace_preserved_style ($) { #{{{
+ +sub replace_preserved_style ($) {
+ my $content = shift;
+
+ $content =~ s!((color: ([a-z]+|\#[0-9a-f]{3,6})?)?((; )?(background-color: ([a-z]+|\#[0-9a-f]{3,6})?)?)?)!!g;
+ $content =~ s!!!g;
+
+ return $content;
- +} #}}}
+ +}
+
- +sub preprocess (@) { #{{{
+ +sub preprocess (@) {
+ my %params = @_;
+
+ # Preprocess the text to expand any preprocessor directives
@@ -182,14 +182,14 @@ Of course, I'm open for discussion or exchange of ideas :) --[[Paweł|ptecza]]
+ IkiWiki::filter($params{page}, $params{destpage}, $params{text}));
+
+ return preserve_style($params{foreground}, $params{background}, $params{text});
- +} #}}}
+ +}
+
- +sub format (@) { #{{{
+ +sub format (@) {
+ my %params = @_;
+
+ $params{content} = replace_preserved_style($params{content});
+ return $params{content};
- +} #}}}
+ +}
+
+1
--- /dev/null 2008-06-21 02:02:15.000000000 +0200
diff --git a/doc/todo/darcs.mdwn b/doc/todo/darcs.mdwn
index e5bf5ee27..882a41379 100644
--- a/doc/todo/darcs.mdwn
+++ b/doc/todo/darcs.mdwn
@@ -219,14 +219,14 @@ This is my ([bma](bma@bmalee.eu)) darcs.pm - it's messy (my Perl isn't up to muc
package IkiWiki;
- sub rcs_update () { #{{{
+ sub rcs_update () {
# Do nothing - there's nowhere to update *from*.
- } #}}}
+ }
- sub rcs_prepedit ($) { #{{{
- } #}}}
+ sub rcs_prepedit ($) {
+ }
- sub rcs_commit ($$$;$$) { #{{{
+ sub rcs_commit ($$$;$$) {
my ($file, $message, $rcstoken, $user, $ipaddr) = @_;
# $user should probably be a name and an email address, by darcs
@@ -257,16 +257,16 @@ This is my ([bma](bma@bmalee.eu)) darcs.pm - it's messy (my Perl isn't up to muc
return undef; # success
- sub rcs_add ($) { # {{{
+ sub rcs_add ($) {
my ($file) = @_;
my @cmdline = ("darcs", "add", "--repodir", "$config{srcdir}", "-a", "-q", "$file");
if (system(@cmdline) != 0) {
warn "'@cmdline' failed: $!";
}
- } #}}}
+ }
- sub rcs_recentchanges ($) { #{{{
+ sub rcs_recentchanges ($) {
# TODO: This is horrible code. It doesn't work perfectly, and uses regexes
# rather than parsing Darcs' XML output.
my $num=shift;
@@ -314,15 +314,15 @@ This is my ([bma](bma@bmalee.eu)) darcs.pm - it's messy (my Perl isn't up to muc
}
}
return @ret;
- } #}}}
+ }
- sub rcs_notify () { #{{{
+ sub rcs_notify () {
# TODO
- } #}}}
+ }
- sub rcs_getctime ($) { #{{{
+ sub rcs_getctime ($) {
error gettext("getctime not implemented");
- } #}}}
+ }
1
diff --git a/doc/todo/datearchives-plugin.mdwn b/doc/todo/datearchives-plugin.mdwn
index 5a5560d6c..5f33cde4c 100644
--- a/doc/todo/datearchives-plugin.mdwn
+++ b/doc/todo/datearchives-plugin.mdwn
@@ -17,11 +17,11 @@ Index: IkiWiki/Plugin/datearchives.pm
+use strict;
+use IkiWiki;
+
-+sub import { #{{{
++sub import {
+ hook(type => "pagetemplate", id => "datearchives", call => \&pagetemplate, scan => 1);
-+} # }}}
++}
+
-+sub pagetemplate (@) { #{{{
++sub pagetemplate (@) {
+ my %args = @_;
+ my $dt;
+ eval {
@@ -37,7 +37,7 @@ Index: IkiWiki/Plugin/datearchives.pm
+ $template->param(ctime => htmllink( $args{page}, $args{destpage}, $link, 0, 0,
+ $template->param('ctime')));
+ }
-+} # }}}
++}
+
+1
diff --git a/doc/todo/different_search_engine.mdwn b/doc/todo/different_search_engine.mdwn
index 2f309dea5..9d0fc92c9 100644
--- a/doc/todo/different_search_engine.mdwn
+++ b/doc/todo/different_search_engine.mdwn
@@ -126,7 +126,7 @@ Index: IkiWiki/Plugin/search.pm
+ $PLUCENE_DIR = $config{wikistatedir}.'/plucene';
+}
+
- sub import { #{{{
+ sub import {
- hook(type => "getopt", id => "hyperestraier",
- call => \&getopt);
- hook(type => "checkconfig", id => "hyperestraier",
@@ -142,14 +142,14 @@ Index: IkiWiki/Plugin/search.pm
call => \&change);
- hook(type => "cgi", id => "hyperestraier",
- call => \&cgi);
- } # }}}
+ }
--sub getopt () { #{{{
+-sub getopt () {
- eval q{use Getopt::Long};
- error($@) if $@;
- Getopt::Long::Configure('pass_through');
- GetOptions("estseek=s" => \$config{estseek});
--} #}}}
+-}
+sub writer {
+ init();
@@ -165,20 +165,20 @@ Index: IkiWiki/Plugin/search.pm
+ grep { defined pagetype($_) } @_;
+}
+
- sub checkconfig () { #{{{
+ sub checkconfig () {
foreach my $required (qw(url cgiurl)) {
if (! length $config{$required}) {
@@ -36,112 +58,55 @@
}
- } #}}}
+ }
-my $form;
--sub pagetemplate (@) { #{{{
+-sub pagetemplate (@) {
- my %params=@_;
- my $page=$params{page};
- my $template=$params{template};
+#my $form;
-+#sub pagetemplate (@) { #{{{
++#sub pagetemplate (@) {
+# my %params=@_;
+# my $page=$params{page};
+# my $template=$params{template};
@@ -193,7 +193,7 @@ Index: IkiWiki/Plugin/search.pm
+#
+# $template->param(searchform => $form);
+# }
-+#} #}}}
++#}
- # Add search box to page header.
- if ($template->query(name => "searchform")) {
@@ -205,9 +205,9 @@ Index: IkiWiki/Plugin/search.pm
-
- $template->param(searchform => $form);
- }
--} #}}}
+-}
-
- sub delete (@) { #{{{
+ sub delete (@) {
- debug(gettext("cleaning hyperestraier search index"));
- estcmd("purge -cl");
- estcfg();
@@ -219,9 +219,9 @@ Index: IkiWiki/Plugin/search.pm
+ $reader->delete_term( Plucene::Index::Term->new({ field => "id", text => $_ }));
+ }
+ $reader->close;
- } #}}}
+ }
- sub change (@) { #{{{
+ sub change (@) {
- debug(gettext("updating hyperestraier search index"));
- estcmd("gather -cm -bc -cl -sd",
- map {
@@ -250,9 +250,9 @@ Index: IkiWiki/Plugin/search.pm
+ $doc->add(Plucene::Document::Field->UnStored('text' => $data));
+ $writer->add_document($doc);
+ }
- } #}}}
+ }
-
--sub cgi ($) { #{{{
+-sub cgi ($) {
- my $cgi=shift;
-
- if (defined $cgi->param('phrase') || defined $cgi->param("navi")) {
@@ -260,10 +260,10 @@ Index: IkiWiki/Plugin/search.pm
- chdir("$config{wikistatedir}/hyperestraier") || error("chdir: $!");
- exec("./".IkiWiki::basename($config{cgiurl})) || error("estseek.cgi failed");
- }
--} #}}}
+-}
-
-my $configured=0;
--sub estcfg () { #{{{
+-sub estcfg () {
- return if $configured;
- $configured=1;
-
@@ -301,9 +301,9 @@ Index: IkiWiki/Plugin/search.pm
- unlink($cgi);
- my $estseek = defined $config{estseek} ? $config{estseek} : '/usr/lib/estraier/estseek.cgi';
- symlink($estseek, $cgi) || error("symlink $estseek $cgi: $!");
--} # }}}
+-}
-
--sub estcmd ($;@) { #{{{
+-sub estcmd ($;@) {
- my @params=split(' ', shift);
- push @params, "-cl", "$config{wikistatedir}/hyperestraier";
- if (@_) {
@@ -323,7 +323,7 @@ Index: IkiWiki/Plugin/search.pm
- open(STDOUT, "/dev/null"); # shut it up (closing won't work)
- exec("estcmd", @params) || error("can't run estcmd");
- }
--} #}}}
+-}
-
-1
+1;
diff --git a/doc/todo/directive_docs.mdwn b/doc/todo/directive_docs.mdwn
index 1f6307381..2baa61b40 100644
--- a/doc/todo/directive_docs.mdwn
+++ b/doc/todo/directive_docs.mdwn
@@ -40,15 +40,15 @@ defined them: --[[Joey]]
index e476521..afe982a 100644
--- a/IkiWiki.pm
+++ b/IkiWiki.pm
- @@ -493,6 +493,7 @@ sub loadplugins () { #{{{
+ @@ -493,6 +493,7 @@ sub loadplugins () {
return 1;
- } #}}}
+ }
+my $loading_plugin;
- sub loadplugin ($) { #{{{
+ sub loadplugin ($) {
my $plugin=shift;
- @@ -502,14 +503,18 @@ sub loadplugin ($) { #{{{
+ @@ -502,14 +503,18 @@ sub loadplugin ($) {
"$installdir/lib/ikiwiki") {
if (defined $dir && -x "$dir/plugins/$plugin") {
require IkiWiki::Plugin::external;
@@ -67,7 +67,7 @@ defined them: --[[Joey]]
if ($@) {
error("Failed to load plugin $mod: $@");
}
- @@ -1429,6 +1434,9 @@ sub hook (@) { # {{{
+ @@ -1429,6 +1434,9 @@ sub hook (@) {
return if $param{no_override} && exists $hooks{$param{type}}{$param{id}};
@@ -76,4 +76,4 @@ defined them: --[[Joey]]
+
$hooks{$param{type}}{$param{id}}=\%param;
return 1;
- } # }}}
+ }
diff --git a/doc/todo/enable-htaccess-files.mdwn b/doc/todo/enable-htaccess-files.mdwn
index b3c174fba..e3b295123 100644
--- a/doc/todo/enable-htaccess-files.mdwn
+++ b/doc/todo/enable-htaccess-files.mdwn
@@ -5,7 +5,7 @@
@@ -26,7 +26,7 @@
memoize("file_pruned");
- sub defaultconfig () { #{{{
+ sub defaultconfig () {
- wiki_file_prune_regexps => [qr/\.\./, qr/^\./, qr/\/\./,
+ wiki_file_prune_regexps => [qr/\.\./, qr/^\.(?!htaccess)/, qr/\/\.(?!htaccess)/,
qr/\.x?html?$/, qr/\.ikiwiki-new$/,
diff --git a/doc/todo/format_escape.mdwn b/doc/todo/format_escape.mdwn
index 8dfe05581..574883d1b 100644
--- a/doc/todo/format_escape.mdwn
+++ b/doc/todo/format_escape.mdwn
@@ -141,13 +141,13 @@ Index: IkiWiki/Plugin/rst.pm
print html[html.find('')+6:html.find('')].strip();
";
- sub import { #{{{
+ sub import {
hook(type => "htmlize", id => "rst", call => \&htmlize);
+ hook(type => "htmlescape", id => "rst", call => \&htmlescape);
+ hook(type => "htmlescapelink", id => "rst", call => \&htmlescapelink);
- } # }}}
+ }
-+sub htmlescapelink ($$;@) { #{{{
++sub htmlescapelink ($$;@) {
+ my $url = shift;
+ my $text = shift;
+ my %params = @_;
@@ -158,15 +158,15 @@ Index: IkiWiki/Plugin/rst.pm
+ else {
+ return "`$text <$url>`_";
+ }
-+} # }}}
++}
+
-+sub htmlescape ($) { #{{{
++sub htmlescape ($) {
+ my $html=shift;
+ $html=~s/^/ /mg;
+ return ".. raw:: html\n\n".$html;
-+} # }}}
++}
+
- sub htmlize (@) { #{{{
+ sub htmlize (@) {
my %params=@_;
my $content=$params{content};
Index: doc/plugins/write.mdwn
@@ -272,7 +272,7 @@ Index: IkiWiki.pm
+ return $hooks{htmlescapelink}{$type}{call}->($bestlink, $linktext);
+ }
return "$linktext";
- } #}}}
+ }
@@ -628,6 +640,14 @@
preview => $preprocess_preview,
diff --git a/doc/todo/fortune:_select_options_via_environment.mdwn b/doc/todo/fortune:_select_options_via_environment.mdwn
index f906312fe..ddacd91b5 100644
--- a/doc/todo/fortune:_select_options_via_environment.mdwn
+++ b/doc/todo/fortune:_select_options_via_environment.mdwn
@@ -14,9 +14,9 @@
package IkiWiki::Plugin::fortune;
use warnings;
- @@ -12,7 +18,13 @@ sub import { #{{{
+ @@ -12,7 +18,13 @@ sub import {
- sub preprocess (@) { #{{{
+ sub preprocess (@) {
$ENV{PATH}="$ENV{PATH}:/usr/games:/usr/local/games";
- my $f = `fortune 2>/dev/null`;
+ my $f;
diff --git a/doc/todo/index.html_allowed.mdwn b/doc/todo/index.html_allowed.mdwn
index f030f9eea..f5e6f8cd7 100644
--- a/doc/todo/index.html_allowed.mdwn
+++ b/doc/todo/index.html_allowed.mdwn
@@ -91,15 +91,15 @@ page "A/B/index.html" is treated as "A/B".
+++ ikidev/IkiWiki.pm 2007-02-25 15:05:22.328852000 -0800
@@ -192,6 +192,12 @@
return $untainted;
- } #}}}
+ }
- +sub titlename($;@) { #{{{
+ +sub titlename($;@) {
+ my $page = shift;
+ $page =~ s!/index$!!;
+ return pagetitle(basename($page), @_);
- +} #}}}
+ +}
+
- sub basename ($) { #{{{
+ sub basename ($) {
my $file=shift;
@@ -117,7 +117,7 @@ diff -ru ikiwiki-2.4/IkiWiki.pm ikiwiki/IkiWiki.pm
$page=~s/\Q.$type\E*$// if defined $type;
+ $page=~s/\/index$// if $page =~ /\/index$/;
return $page;
- } #}}}
+ }
diff --git a/doc/todo/inline:_numerical_ordering_by_title.mdwn b/doc/todo/inline:_numerical_ordering_by_title.mdwn
index 95511d998..3f6c8b598 100644
--- a/doc/todo/inline:_numerical_ordering_by_title.mdwn
+++ b/doc/todo/inline:_numerical_ordering_by_title.mdwn
@@ -155,11 +155,11 @@ Joey, have you forgotten about that request? ;) --[[Paweł|ptecza]]
%config %links %pagestate %renderedfiles
%pagesources %destsources);
our $VERSION = 2.00; # plugin interface version, next is ikiwiki version
- @@ -835,6 +835,42 @@ sub titlepage ($) { #{{{
+ @@ -835,6 +835,42 @@ sub titlepage ($) {
return $title;
- } #}}}
+ }
- +sub titlecmp ($$) { #{{{
+ +sub titlecmp ($$) {
+ my $titleA=shift;
+ my $titleB=shift;
+
@@ -193,29 +193,29 @@ Joey, have you forgotten about that request? ;) --[[Paweł|ptecza]]
+ return -1 if (@listB);
+
+ return 0;
- +} #}}}
+ +}
+
- sub linkpage ($) { #{{{
+ sub linkpage ($) {
my $link=shift;
my $chars = defined $config{wiki_file_chars} ? $config{wiki_file_chars} : "-[:alnum:]+/.:_";
diff --git a/IkiWiki/Plugin/brokenlinks.pm b/IkiWiki/Plugin/brokenlinks.pm
index 37752dd..ccaa399 100644
--- a/IkiWiki/Plugin/brokenlinks.pm
+++ b/IkiWiki/Plugin/brokenlinks.pm
- @@ -59,7 +59,7 @@ sub preprocess (@) { #{{{
+ @@ -59,7 +59,7 @@ sub preprocess (@) {
map {
"
$_
"
}
- sort @broken)
+ sort titlecmp @broken)
."\n";
- } # }}}
+ }
diff --git a/IkiWiki/Plugin/inline.pm b/IkiWiki/Plugin/inline.pm
index 8efef3f..263e7a6 100644
--- a/IkiWiki/Plugin/inline.pm
+++ b/IkiWiki/Plugin/inline.pm
- @@ -192,7 +192,7 @@ sub preprocess_inline (@) { #{{{
+ @@ -192,7 +192,7 @@ sub preprocess_inline (@) {
}
if (exists $params{sort} && $params{sort} eq 'title') {
@@ -228,20 +228,20 @@ Joey, have you forgotten about that request? ;) --[[Paweł|ptecza]]
index b910758..10a1d87 100644
--- a/IkiWiki/Plugin/orphans.pm
+++ b/IkiWiki/Plugin/orphans.pm
- @@ -56,7 +56,7 @@ sub preprocess (@) { #{{{
+ @@ -56,7 +56,7 @@ sub preprocess (@) {
htmllink($params{page}, $params{destpage}, $_,
noimageinline => 1).
""
- } sort @orphans).
+ } sort titlecmp @orphans).
"\n";
- } # }}}
+ }
diff --git a/IkiWiki/Render.pm b/IkiWiki/Render.pm
index ceb7c84..00798e1 100644
--- a/IkiWiki/Render.pm
+++ b/IkiWiki/Render.pm
- @@ -89,7 +89,7 @@ sub genpage ($$) { #{{{
+ @@ -89,7 +89,7 @@ sub genpage ($$) {
$template->param(have_actions => 1);
}
diff --git a/doc/todo/language_definition_for_the_meta_plugin.mdwn b/doc/todo/language_definition_for_the_meta_plugin.mdwn
index 33098c601..4ac4e2e25 100644
--- a/doc/todo/language_definition_for_the_meta_plugin.mdwn
+++ b/doc/todo/language_definition_for_the_meta_plugin.mdwn
@@ -54,7 +54,7 @@ This may be useful for sites with a few pages in different languages, but no ful
my %authorurl;
+my %lang;
- sub import { #{{{
+ sub import {
hook(type => "preprocess", id => "meta", call => \&preprocess, scan => 1);
@@ -100,6 +101,11 @@
$meta{$page}.='
> Please resolve lang somewhere reusable rather than within meta plugin: It is certainly usable outside
diff --git a/doc/todo/meta_rcsid.mdwn b/doc/todo/meta_rcsid.mdwn
index 81a2c1328..158edea6e 100644
--- a/doc/todo/meta_rcsid.mdwn
+++ b/doc/todo/meta_rcsid.mdwn
@@ -26,7 +26,7 @@ of CVS/SVN-style keywords (like '$Id$', etc.) from the source file in the page t
my %copyright;
+my %rcsid;
- sub import { #{{{
+ sub import {
hook(type => "preprocess", id => "meta", call => \&preprocess, scan => 1);
@@ -110,6 +111,9 @@
$meta{$page}.="\n";
diff --git a/doc/todo/missingparents.pm.mdwn b/doc/todo/missingparents.pm.mdwn
index 0cc7137ba..c5f2ab535 100644
--- a/doc/todo/missingparents.pm.mdwn
+++ b/doc/todo/missingparents.pm.mdwn
@@ -82,15 +82,15 @@ Index: IkiWiki/Plugin/missingparents.pm
+my %ownfiles;
+my @pagespecs;
+
-+sub import { #{{{
++sub import {
+ hook(type => "checkconfig", id => "missingparents", call => \&checkconfig);
+ hook(type => "needsdelete", id => "missingparents", call => \&needsdelete);
+ hook(type => "needsbuild", id => "missingparents", call => \&needsbuild);
+ hook(type => "savestate", id => "missingparents", call => \&savestate);
+ hook(type => "preprocess", id => "missingparents", call => \&preprocess_missingparents);
-+} # }}}
++}
+
-+sub checkconfig () { #{{{
++sub checkconfig () {
+ IkiWiki::preprocess("missingparents", "missingparents",
+ readfile(srcfile("missingparents.mdwn")));
+ loadstate();
@@ -99,9 +99,9 @@ Index: IkiWiki/Plugin/missingparents.pm
+ unlink $config{srcdir}.'/'.$file;
+ }
+ }
-+} #}}}
++}
+
-+sub preprocess_missingparents (@) { #{{{
++sub preprocess_missingparents (@) {
+ my %params=@_;
+
+ if (! defined $params{pages} || ! defined $params{generate}) {
@@ -115,10 +115,10 @@ Index: IkiWiki/Plugin/missingparents.pm
+ #translators: is text for pages that match that pagespec.
+ return sprintf(gettext("missingparents in %s will be %s"),
+ '`'.$params{pages}.'`', '`\\'.$params{generate}.'`');
-+} # }}}
++}
+
+my $state_loaded=0;
-+sub loadstate() { #{{{
++sub loadstate() {
+ my $filename = "$config{wikistatedir}/missingparents";
+ if (-e $filename) {
+ open (IN, $filename) ||
@@ -132,9 +132,9 @@ Index: IkiWiki/Plugin/missingparents.pm
+
+ $state_loaded=1;
+ }
-+} #}}}
++}
+
-+sub savestate() { #{{{
++sub savestate() {
+ my $filename = "$config{wikistatedir}/missingparents.new";
+ my $cleanup = sub { unlink ($filename) };
+ open (OUT, ">$filename") || error("open $filename: $!", $cleanup);
@@ -143,9 +143,9 @@ Index: IkiWiki/Plugin/missingparents.pm
+ }
+ rename($filename, "$config{wikistatedir}/missingparents") ||
+ error("rename $filename: $!", $cleanup);
-+} #}}}
++}
+
-+sub needsdelete (@) { #{{{
++sub needsdelete (@) {
+ my $files=shift;
+
+ my @mydel;
@@ -167,9 +167,9 @@ Index: IkiWiki/Plugin/missingparents.pm
+ foreach my $page (@mydel){
+ push @{$files}, $page;
+ }
-+} #}}}
++}
+
-+sub check_matches($) { #{{{
++sub check_matches($) {
+ my $page = shift;
+ return if $IkiWiki::pagesources{$page};
+
@@ -183,9 +183,9 @@ Index: IkiWiki/Plugin/missingparents.pm
+ return $output;
+ }
+ return "";
-+} #}}}
++}
+
-+sub needsbuild ($) { #{{{
++sub needsbuild ($) {
+ my $files=shift;
+ my @new;
+
@@ -209,7 +209,7 @@ Index: IkiWiki/Plugin/missingparents.pm
+ $ownfiles{$file} = 1;
+ push @{$files}, $file;
+ }
-+} #}}}
++}
+
+1
Index: IkiWiki.pm
@@ -227,18 +227,18 @@ Index: IkiWiki.pm
our $version='unknown'; # VERSION_AUTOREPLACE done by Makefile, DNE
@@ -330,6 +336,30 @@
error("failed renaming $newfile to $destdir/$file: $!", $cleanup);
- } #}}}
+ }
-+sub newpage($$) { #{{{
++sub newpage($$) {
+ my $file=shift;
+ my $page=shift;
+
+ $pagemtime{$page} = $pagectime{$page} = time;
+ $pagesources{$page} = $file;
+ $pagecase{lc $page} = $page;
-+} #}}}
++}
+
-+sub delpage($) { #{{{
++sub delpage($) {
+ my $page=shift;
+ $links{$page}=[];
+ $renderedfiles{$page}=[];
@@ -251,10 +251,10 @@ Index: IkiWiki.pm
+ delete $destsources{$_};
+ }
+ }
-+} #}}}
++}
+
my %cleared;
- sub will_render ($$;$) { #{{{
+ sub will_render ($$;$) {
my $page=shift;
diff --git a/doc/todo/modify_page_filename_in_plugin.mdwn b/doc/todo/modify_page_filename_in_plugin.mdwn
index 7c0a909eb..4099487a1 100644
--- a/doc/todo/modify_page_filename_in_plugin.mdwn
+++ b/doc/todo/modify_page_filename_in_plugin.mdwn
@@ -10,7 +10,7 @@ My solution is to allow plugins to provide a hook that sets the pagename. --[[/u
+++ /usr/share/perl5/IkiWiki.pm 2008-10-07 11:57:26.000000000 -0400
@@ -196,11 +196,32 @@
- sub pagename ($) { #{{{
+ sub pagename ($) {
my $file=shift;
my $type=pagetype($file);
@@ -27,7 +27,7 @@ My solution is to allow plugins to provide a hook that sets the pagename. --[[/u
$page=~s/\Q.$type\E*$// if defined $type;
return $page;
+ }
- } #}}}
+ }
- sub htmlpage ($) { #{{{
+ sub htmlpage ($) {
diff --git a/doc/todo/pagespec_relative_to_a_target.mdwn b/doc/todo/pagespec_relative_to_a_target.mdwn
index f7b248670..4757988e0 100644
--- a/doc/todo/pagespec_relative_to_a_target.mdwn
+++ b/doc/todo/pagespec_relative_to_a_target.mdwn
@@ -57,7 +57,7 @@ diff -urNX ignorepats ikiwiki/IkiWiki/Plugin/relative.pm ikidev/IkiWiki/Plugin/r
+
+package IkiWiki::PageSpec;
+
-+sub match_relative($$;@) { #{{{
++sub match_relative($$;@) {
+ my $parent = shift;
+ my $spec = shift;
+ my %params = @_;
@@ -69,21 +69,21 @@ diff -urNX ignorepats ikiwiki/IkiWiki/Plugin/relative.pm ikidev/IkiWiki/Plugin/r
+ }
+ }
+ return IkiWiki::FailReason->new("$parent can't match $spec against anything");
-+} #}}}
++}
+
-+sub match_has_child($$;@) { #{{{
++sub match_has_child($$;@) {
+ my $page = shift;
+ my $childname = shift;
+ my $spec;
-+ if ($childname) { #{{{
++ if ($childname) {
+ $spec = "$page/$childname or $page/*/$childname";
-+ } #}}}
-+ else { #{{{
++ }
++ else {
+ $spec = "$page/*";
-+ } #}}}
++ }
+
+ return match_relative($page, $spec, @_);
-+} #}}}
++}
+
+1
diff --git a/doc/todo/provide_sha1_for_git_diffurl.mdwn b/doc/todo/provide_sha1_for_git_diffurl.mdwn
index 9c8b340de..01aa512f8 100644
--- a/doc/todo/provide_sha1_for_git_diffurl.mdwn
+++ b/doc/todo/provide_sha1_for_git_diffurl.mdwn
@@ -10,7 +10,7 @@ diffurls of the following form:
index 5bef928..164210d 100644
--- a/IkiWiki/Plugin/git.pm
+++ b/IkiWiki/Plugin/git.pm
- @@ -518,6 +518,7 @@ sub rcs_recentchanges ($) { #{{{
+ @@ -518,6 +518,7 @@ sub rcs_recentchanges ($) {
my $diffurl = defined $config{'diffurl'} ? $config{'diffurl'} : "";
$diffurl =~ s/\[\[file\]\]/$file/go;
diff --git a/doc/todo/require_CAPTCHA_to_edit.mdwn b/doc/todo/require_CAPTCHA_to_edit.mdwn
index 110b4167f..83ba07eb0 100644
--- a/doc/todo/require_CAPTCHA_to_edit.mdwn
+++ b/doc/todo/require_CAPTCHA_to_edit.mdwn
@@ -91,15 +91,15 @@ ignored.
--- a/IkiWiki/Plugin/openid.pm
+++ b/IkiWiki/Plugin/openid.pm
-@@ -18,6 +18,7 @@ sub getopt () { #{{{
+@@ -18,6 +18,7 @@ sub getopt () {
error($@) if $@;
Getopt::Long::Configure('pass_through');
GetOptions("openidsignup=s" => \$config{openidsignup});
+ GetOptions("openidneedscaptcha=s" => \$config{openidneedscaptcha});
- } #}}}
+ }
- sub formbuilder_setup (@) { #{{{
-@@ -61,6 +62,7 @@ sub formbuilder_setup (@) { #{{{
+ sub formbuilder_setup (@) {
+@@ -61,6 +62,7 @@ sub formbuilder_setup (@) {
# Skip all other required fields in this case.
foreach my $field ($form->field) {
next if $field eq "openid_url";
@@ -107,7 +107,7 @@ ignored.
$form->field(name => $field, required => 0,
validate => '/.*/');
}
-@@ -96,6 +98,18 @@ sub validate ($$$;$) { #{{{
+@@ -96,6 +98,18 @@ sub validate ($$$;$) {
}
}
@@ -152,19 +152,19 @@ use warnings;
use strict;
use IkiWiki 2.00;
-sub import { #{{{
+sub import {
hook(type => "formbuilder_setup", id => "recaptcha", call => \&formbuilder_setup);
-} # }}}
+}
-sub getopt () { #{{{
+sub getopt () {
eval q{use Getopt::Long};
error($@) if $@;
Getopt::Long::Configure('pass_through');
GetOptions("reCaptchaPubKey=s" => \$config{reCaptchaPubKey});
GetOptions("reCaptchaPrivKey=s" => \$config{reCaptchaPrivKey});
-} #}}}
+}
-sub formbuilder_setup (@) { #{{{
+sub formbuilder_setup (@) {
my %params=@_;
my $form=$params{form};
@@ -274,7 +274,7 @@ EOTAGS
});
}
}
-} # }}}
+}
# The following function is borrowed from
# Captcha::reCAPTCHA by Andy Armstrong and are under the PERL Artistic License
diff --git a/doc/todo/source_link.mdwn b/doc/todo/source_link.mdwn
index 5d6cb89e8..b051361a8 100644
--- a/doc/todo/source_link.mdwn
+++ b/doc/todo/source_link.mdwn
@@ -31,13 +31,13 @@ I just implemented this. There is one [[patch]] to the default page template, a
use IkiWiki;
use open qw{:utf8 :std};
- sub import { #{{{
+ sub import {
hook(type => "getsetup", id => "getsource", call => \&getsetup);
hook(type => "pagetemplate", id => "getsource", call => \&pagetemplate);
hook(type => "sessioncgi", id => "getsource", call => \&cgi_getsource);
- } # }}}
+ }
- sub getsetup () { #{{{
+ sub getsetup () {
return
plugin => {
safe => 1,
@@ -50,9 +50,9 @@ I just implemented this. There is one [[patch]] to the default page template, a
safe => 1,
rebuild => 0,
},
- } #}}}
+ }
- sub pagetemplate (@) { #{{{
+ sub pagetemplate (@) {
my %params=@_;
my $page=$params{page};
@@ -62,9 +62,9 @@ I just implemented this. There is one [[patch]] to the default page template, a
$template->param(getsourceurl => IkiWiki::cgiurl(do => "getsource", page => $page));
$template->param(have_actions => 1);
}
- } # }}}
+ }
- sub cgi_getsource ($$) { #{{{
+ sub cgi_getsource ($$) {
my $cgi=shift;
my $session=shift;
diff --git a/doc/todo/structured_page_data.mdwn b/doc/todo/structured_page_data.mdwn
index 2a196ed23..22f67cc0a 100644
--- a/doc/todo/structured_page_data.mdwn
+++ b/doc/todo/structured_page_data.mdwn
@@ -257,21 +257,21 @@ in a large number of other cases.
use CGI::FormBuilder;
use IkiWiki 2.00;
- sub import { #{{{
+ sub import {
hook(type => "getsetup", id => "form", call => \&getsetup);
hook(type => "htmlize", id => "form", call => \&htmlize);
hook(type => "sessioncgi", id => "form", call => \&cgi_submit);
- } # }}}
+ }
- sub getsetup () { #{{{
+ sub getsetup () {
return
plugin => {
safe => 1,
rebuild => 1, # format plugin
},
- } #}}}
+ }
- sub makeFormFromYAML ($$$) { #{{{
+ sub makeFormFromYAML ($$$) {
my $page = shift;
my $YAMLString = shift;
my $q = shift;
@@ -350,9 +350,9 @@ in a large number of other cases.
# IkiWiki::decode_form_utf8($form);
return $form;
- } #}}}
+ }
- sub htmlize (@) { #{{{
+ sub htmlize (@) {
my %params=@_;
my $content = $params{content};
my $page = $params{page};
@@ -360,9 +360,9 @@ in a large number of other cases.
my $form = makeFormFromYAML($page, $content, undef);
return $form->render(submit => 'Update Form');
- } # }}}
+ }
- sub cgi_submit ($$) { #{{{
+ sub cgi_submit ($$) {
my $q=shift;
my $session=shift;
@@ -425,11 +425,11 @@ in a large number of other cases.
}
exit;
- } #}}}
+ }
package IkiWiki::PageSpec;
- sub match_form_eq ($$;@) { #{{{
+ sub match_form_eq ($$;@) {
my $page=shift;
my $argSet=shift;
my @args=split(/,/, $argSet);
@@ -460,7 +460,7 @@ in a large number of other cases.
} else {
return IkiWiki::FailReason->new("field value does not match");
}
- } #}}}
+ }
1
@@ -476,22 +476,22 @@ in a large number of other cases.
my $inTable = 0;
- sub import { #{{{
+ sub import {
hook(type => "getsetup", id => "data", call => \&getsetup);
hook(type => "needsbuild", id => "data", call => \&needsbuild);
hook(type => "preprocess", id => "data", call => \&preprocess, scan => 1);
hook(type => "preprocess", id => "datatable", call => \&preprocess_table, scan => 1); # does this need scan?
- } # }}}
+ }
- sub getsetup () { #{{{
+ sub getsetup () {
return
plugin => {
safe => 1,
rebuild => 1, # format plugin
},
- } #}}}
+ }
- sub needsbuild (@) { #{{{
+ sub needsbuild (@) {
my $needsbuild=shift;
foreach my $page (keys %pagestate) {
if (exists $pagestate{$page}{data}) {
@@ -506,7 +506,7 @@ in a large number of other cases.
}
}
- sub preprocess (@) { #{{{
+ sub preprocess (@) {
my @argslist = @_;
my %params=@argslist;
@@ -546,9 +546,9 @@ in a large number of other cases.
}
return $html;
- } # }}}
+ }
- sub preprocess_table (@) { #{{{
+ sub preprocess_table (@) {
my %params=@_;
my @lines;
@@ -568,11 +568,11 @@ in a large number of other cases.
push @lines, '';
return join("\n", @lines);
- } #}}}
+ }
package IkiWiki::PageSpec;
- sub match_data_eq ($$;@) { #{{{
+ sub match_data_eq ($$;@) {
my $page=shift;
my $argSet=shift;
my @args=split(/,/, $argSet);
@@ -592,9 +592,9 @@ in a large number of other cases.
} else {
return IkiWiki::FailReason->new("value does not match");
}
- } #}}}
+ }
- sub match_data_link ($$;@) { #{{{
+ sub match_data_link ($$;@) {
my $page=shift;
my $argSet=shift;
my @params=@_;
@@ -618,6 +618,6 @@ in a large number of other cases.
}
return IkiWiki::FailReason->new("No data link on page $page with key $key matches glob $value");
- } #}}}
+ }
1
diff --git a/doc/todo/supporting_comments_via_disussion_pages.mdwn b/doc/todo/supporting_comments_via_disussion_pages.mdwn
index 892db18a9..aae0b3008 100644
--- a/doc/todo/supporting_comments_via_disussion_pages.mdwn
+++ b/doc/todo/supporting_comments_via_disussion_pages.mdwn
@@ -91,14 +91,14 @@ Each comment is processed to something like this:
use strict;
use IkiWiki '1.02';
- sub import { #{{{
+ sub import {
hook(type => "formbuilder_setup", id => "comments",
call => \&formbuilder_setup);
hook(type => "preprocess", id => "blogcomment",
call => \&preprocess);
- } # }}}
+ }
- sub formbuilder_setup (@) { #{{{
+ sub formbuilder_setup (@) {
my %params=@_;
my $cgi = $params{cgi};
my $form = $params{form};
@@ -138,9 +138,9 @@ Each comment is processed to something like this:
$content.=qq{[[!blogcomment from="""$name""" timestamp="""$timestamp""" subject="""$subject""" text="""$comment"""]]\n\n};
$content=~s/\n/\r\n/g;
$form->field(name => "editcontent", value => $content, force => 1);
- } # }}}
+ }
- sub preprocess (@) { #{{{
+ sub preprocess (@) {
my %params=@_;
my ($text, $date, $from, $subject, $r);
@@ -159,7 +159,7 @@ Each comment is processed to something like this:
$r .= "\n" . $text . "
\n";
return $r;
- } # }}}
+ }
1;
diff --git a/doc/todo/syntax_highlighting.mdwn b/doc/todo/syntax_highlighting.mdwn
index 2bdeb62be..3de3032b3 100644
--- a/doc/todo/syntax_highlighting.mdwn
+++ b/doc/todo/syntax_highlighting.mdwn
@@ -90,7 +90,7 @@ like this:
index 8d728c9..1bd46a9 100644
--- a/IkiWiki.pm
+++ b/IkiWiki.pm
- @@ -618,6 +618,8 @@ sub pagetype ($) { #{{{
+ @@ -618,6 +618,8 @@ sub pagetype ($) {
if ($page =~ /\.([^.]+)$/) {
return $1 if exists $hooks{htmlize}{$1};
@@ -98,7 +98,7 @@ like this:
+ return $page;
}
return;
- } #}}}
+ }
## format directive
diff --git a/doc/todo/tidy_git__39__s_ctime_debug_output.mdwn b/doc/todo/tidy_git__39__s_ctime_debug_output.mdwn
index aaa040ec7..bfc130d69 100644
--- a/doc/todo/tidy_git__39__s_ctime_debug_output.mdwn
+++ b/doc/todo/tidy_git__39__s_ctime_debug_output.mdwn
@@ -10,6 +10,6 @@
+ debug("ctime for '$file': ". localtime($ctime));
return $ctime;
- } #}}}
+ }
[[!tag patch done]]
diff --git a/doc/todo/tmplvars_plugin.mdwn b/doc/todo/tmplvars_plugin.mdwn
index f7d06a579..644cf23aa 100644
--- a/doc/todo/tmplvars_plugin.mdwn
+++ b/doc/todo/tmplvars_plugin.mdwn
@@ -11,12 +11,12 @@ A simple plugin to allow per-page customization of a template by passing paramat
my %tmplvars;
- sub import { #{{{
+ sub import {
hook(type => "preprocess", id => "tmplvars", call => \&preprocess);
hook(type => "pagetemplate", id => "tmplvars", call => \&pagetemplate);
- } # }}}
+ }
- sub preprocess (@) { #{{{
+ sub preprocess (@) {
my %params=@_;
if ($params{page} eq $params{destpage}) {
@@ -34,9 +34,9 @@ A simple plugin to allow per-page customization of a template by passing paramat
}
}
- } # }}}
+ }
- sub pagetemplate (@) { #{{{
+ sub pagetemplate (@) {
my %params=@_;
my $template = $params{template};
@@ -47,6 +47,6 @@ A simple plugin to allow per-page customization of a template by passing paramat
}
return undef;
- } # }}}
+ }
1
diff --git a/doc/todo/tracking_bugs_with_dependencies.mdwn b/doc/todo/tracking_bugs_with_dependencies.mdwn
index 3af0458bd..2832e37aa 100644
--- a/doc/todo/tracking_bugs_with_dependencies.mdwn
+++ b/doc/todo/tracking_bugs_with_dependencies.mdwn
@@ -194,9 +194,9 @@ account all comments above (which doesn't mean it is above reproach :) ). --[[W
index 4e4da11..8b3cdfe 100644
--- a/IkiWiki.pm
+++ b/IkiWiki.pm
- @@ -1550,7 +1550,16 @@ sub globlist_to_pagespec ($) { #{{{
+ @@ -1550,7 +1550,16 @@ sub globlist_to_pagespec ($) {
- sub is_globlist ($) { #{{{
+ sub is_globlist ($) {
my $s=shift;
- return ( $s =~ /[^\s]+\s+([^\s]+)/ && $1 ne "and" && $1 ne "or" );
+ return ! ($s =~ /
@@ -209,19 +209,19 @@ account all comments above (which doesn't mean it is above reproach :) ). --[[W
+ ) |
+ (\s and \s) | (\s or \s) # or we find 'and' or 'or' somewhere
+ /xs);
- } #}}}
+ }
- sub safequote ($) { #{{{
- @@ -1631,7 +1640,7 @@ sub pagespec_merge ($$) { #{{{
+ sub safequote ($) {
+ @@ -1631,7 +1640,7 @@ sub pagespec_merge ($$) {
return "($a) or ($b)";
- } #}}}
+ }
- -sub pagespec_translate ($) { #{{{
- +sub pagespec_makeperl ($) { #{{{
+ -sub pagespec_translate ($) {
+ +sub pagespec_makeperl ($) {
my $spec=shift;
# Support for old-style GlobLists.
- @@ -1650,12 +1659,14 @@ sub pagespec_translate ($) { #{{{
+ @@ -1650,12 +1659,14 @@ sub pagespec_translate ($) {
|
\) # )
|
@@ -238,7 +238,7 @@ account all comments above (which doesn't mean it is above reproach :) ). --[[W
my $word=$1;
if (lc $word eq 'and') {
$code.=' &&';
- @@ -1666,16 +1677,23 @@ sub pagespec_translate ($) { #{{{
+ @@ -1666,16 +1677,23 @@ sub pagespec_translate ($) {
elsif ($word eq "(" || $word eq ")" || $word eq "!") {
$code.=' '.$word;
}
@@ -265,14 +265,14 @@ account all comments above (which doesn't mean it is above reproach :) ). --[[W
}
}
- @@ -1683,8 +1701,18 @@ sub pagespec_translate ($) { #{{{
+ @@ -1683,8 +1701,18 @@ sub pagespec_translate ($) {
$code=0;
}
+ return 'sub { my $page=shift; my %params = @_; '.$code.' }';
- +} #}}}
+ +}
+
- +sub pagespec_translate ($) { #{{{
+ +sub pagespec_translate ($) {
+ my $spec=shift;
+
+ my $code = pagespec_makeperl($spec);
@@ -282,19 +282,19 @@ account all comments above (which doesn't mean it is above reproach :) ). --[[W
no warnings;
- return eval 'sub { my $page=shift; '.$code.' }';
+ return eval $code;
- } #}}}
+ }
- sub pagespec_match ($$;@) { #{{{
- @@ -1699,7 +1727,7 @@ sub pagespec_match ($$;@) { #{{{
+ sub pagespec_match ($$;@) {
+ @@ -1699,7 +1727,7 @@ sub pagespec_match ($$;@) {
my $sub=pagespec_translate($spec);
return IkiWiki::FailReason->new("syntax error in pagespec \"$spec\"") if $@;
- return $sub->($page, @params);
+ return $sub->($page, @params, specFuncs => {});
- } #}}}
+ }
- sub pagespec_valid ($) { #{{{
- @@ -1748,11 +1776,78 @@ sub new { #{{{
+ sub pagespec_valid ($) {
+ @@ -1748,11 +1776,78 @@ sub new {
package IkiWiki::PageSpec;
@@ -361,7 +361,7 @@ account all comments above (which doesn't mean it is above reproach :) ). --[[W
+ }
+}
+
- sub match_glob ($$;@) { #{{{
+ sub match_glob ($$;@) {
my $page=shift;
my $glob=shift;
my %params=@_;
@@ -373,9 +373,9 @@ account all comments above (which doesn't mean it is above reproach :) ). --[[W
my $from=exists $params{location} ? $params{location} : '';
# relative matching
- @@ -1782,11 +1877,12 @@ sub match_internal ($$;@) { #{{{
+ @@ -1782,11 +1877,12 @@ sub match_internal ($$;@) {
- sub match_link ($$;@) { #{{{
+ sub match_link ($$;@) {
my $page=shift;
- my $link=lc(shift);
+ my $fulllink=shift;
@@ -388,7 +388,7 @@ account all comments above (which doesn't mean it is above reproach :) ). --[[W
# relative matching
if ($link =~ m!^\.! && defined $from) {
$from=~s#/?[^/]+$##;
- @@ -1804,19 +1900,32 @@ sub match_link ($$;@) { #{{{
+ @@ -1804,19 +1900,32 @@ sub match_link ($$;@) {
}
else {
return IkiWiki::SuccessReason->new("$page links to page $p matching $link")
@@ -397,9 +397,9 @@ account all comments above (which doesn't mean it is above reproach :) ). --[[W
}
}
return IkiWiki::FailReason->new("$page does not link to $link");
- } #}}}
+ }
- sub match_backlink ($$;@) { #{{{
+ sub match_backlink ($$;@) {
- return match_link($_[1], $_[0], @_);
+ my $page=shift;
+ my $backlink=shift;
@@ -410,9 +410,9 @@ account all comments above (which doesn't mean it is above reproach :) ). --[[W
+ }
+
+ return match_link($backlink, $page, @params);
- } #}}}
+ }
- sub match_created_before ($$;@) { #{{{
+ sub match_created_before ($$;@) {
my $page=shift;
my $testpage=shift;
+ my @params=@_;
@@ -423,8 +423,8 @@ account all comments above (which doesn't mean it is above reproach :) ). --[[W
if (exists $IkiWiki::pagectime{$testpage}) {
if ($IkiWiki::pagectime{$page} < $IkiWiki::pagectime{$testpage}) {
- @@ -1834,6 +1943,11 @@ sub match_created_before ($$;@) { #{{{
- sub match_created_after ($$;@) { #{{{
+ @@ -1834,6 +1943,11 @@ sub match_created_before ($$;@) {
+ sub match_created_after ($$;@) {
my $page=shift;
my $testpage=shift;
+ my @params=@_;
diff --git a/doc/todo/turn_edittemplate_verbosity_off_by_default.mdwn b/doc/todo/turn_edittemplate_verbosity_off_by_default.mdwn
index 87e55685c..14bb43782 100644
--- a/doc/todo/turn_edittemplate_verbosity_off_by_default.mdwn
+++ b/doc/todo/turn_edittemplate_verbosity_off_by_default.mdwn
@@ -8,7 +8,7 @@ I think this (untested) patch might just do the trick:
--- a/IkiWiki/Plugin/edittemplate.pm
+++ b/IkiWiki/Plugin/edittemplate.pm
- @@ -46,8 +46,13 @@ sub preprocess (@) { #{{{
+ @@ -46,8 +46,13 @@ sub preprocess (@) {
$pagestate{$params{page}}{edittemplate}{$params{match}}=$params{template};
@@ -21,9 +21,9 @@ I think this (untested) patch might just do the trick:
+ else {
+ return '';
+ }
- } # }}}
+ }
- sub formbuilder (@) { #{{{
+ sub formbuilder (@) {
--[[madduck]]
diff --git a/doc/todo/using_meta_titles_for_parentlinks.html b/doc/todo/using_meta_titles_for_parentlinks.html
index d04e5a300..6da40a415 100644
--- a/doc/todo/using_meta_titles_for_parentlinks.html
+++ b/doc/todo/using_meta_titles_for_parentlinks.html
@@ -82,9 +82,9 @@ diff -c /usr/share/perl5/IkiWiki/Plugin/meta.pm.distrib /usr/share/perl5/IkiWiki
*** 289,294 ****
--- 290,319 ----
}
- } #}}}
+ }
-+ sub IkiWiki::pagetitle ($;$) { #{{{
++ sub IkiWiki::pagetitle ($;$) {
+ my $page=shift;
+ my $unescaped=shift;
+
@@ -106,11 +106,11 @@ diff -c /usr/share/perl5/IkiWiki/Plugin/meta.pm.distrib /usr/share/perl5/IkiWiki
+ }
+
+ return $page;
-+ } #}}}
++ }
+
package IkiWiki::PageSpec;
- sub match_title ($$;@) { #{{{
+ sub match_title ($$;@) {
diff --git a/doc/todo/varioki_--_add_template_variables___40__with_closures_for_values__41___in_ikiwiki.setup.mdwn b/doc/todo/varioki_--_add_template_variables___40__with_closures_for_values__41___in_ikiwiki.setup.mdwn
index 492a32b36..b28469993 100644
--- a/doc/todo/varioki_--_add_template_variables___40__with_closures_for_values__41___in_ikiwiki.setup.mdwn
+++ b/doc/todo/varioki_--_add_template_variables___40__with_closures_for_values__41___in_ikiwiki.setup.mdwn
@@ -157,9 +157,9 @@ ManojSrivastava
+=cut
+
+
-+sub import { #{{{
++sub import {
+ hook(type => "pagetemplate", id => "varioki", call => \&pagetemplate);
-+} # }}}
++}
+
+
+=pod
@@ -175,7 +175,7 @@ ManojSrivastava
+
+=cut
+
-+sub pagetemplate (@) { #{{{
++sub pagetemplate (@) {
+ my %params=@_;
+ my $page=$params{page};
+ my $template=$params{template};
@@ -207,7 +207,7 @@ ManojSrivastava
+ $template->param("$var" =>"$value");
+ }
+ }
-+} # }}}
++}
+
+1;
+
diff --git a/ikiwiki.in b/ikiwiki.in
index 473cbdbfd..32a24af84 100755
--- a/ikiwiki.in
+++ b/ikiwiki.in
@@ -9,12 +9,12 @@ use strict;
use lib '.'; # For use in nonstandard directory, munged by Makefile.
use IkiWiki;
-sub usage () { #{{{
+sub usage () {
die gettext("usage: ikiwiki [options] source dest"), "\n",
gettext(" ikiwiki --setup configfile"), "\n";
-} #}}}
+}
-sub getconfig () { #{{{
+sub getconfig () {
if (! exists $ENV{WRAPPED_OPTIONS}) {
%config=defaultconfig();
eval q{use Getopt::Long};
@@ -123,9 +123,9 @@ sub getconfig () { #{{{
loadplugins();
checkconfig();
}
-} #}}}
+}
-sub main () { #{{{
+sub main () {
getconfig();
if ($config{setup}) {
@@ -207,6 +207,6 @@ sub main () { #{{{
saveindex();
debug(gettext("done"));
}
-} #}}}
+}
main;
--
cgit v1.2.3
From 60142db48ebbd540e5310c5bcaa4762676c8ddce Mon Sep 17 00:00:00 2001
From: Joey Hess
Date: Wed, 17 Dec 2008 15:29:22 -0500
Subject: clarification
---
doc/plugins/comments.mdwn | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
(limited to 'doc')
diff --git a/doc/plugins/comments.mdwn b/doc/plugins/comments.mdwn
index aab75e9b7..a81cab127 100644
--- a/doc/plugins/comments.mdwn
+++ b/doc/plugins/comments.mdwn
@@ -23,10 +23,12 @@ Individual comments are stored as internal-use pages named something like
There are some global options for the setup file:
+* `comments_open_pagespec`: pages where new comments can be posted, e.g.
+ `blog/* and created_after(close_old_comments)` or `!*/discussion`.
+ You need to set this, since the default is to not add comments to any
+ pages.
* `comments_shown_pagespec`: pages where comments will be displayed inline,
e.g. `blog/*` or `!*/discussion`.
-* `comments_open_pagespec`: pages where new comments can be posted, e.g.
- `blog/* and created_after(close_old_comments)` or `!*/discussion`
* `comments_pagename`: if this is e.g. `comment_` (the default), then
comment pages will be named something like `page/comment_12`
* `comments_allowdirectives`: if true (default false), comments may
--
cgit v1.2.3
From 140c0bacbadc35de93cc685313123e9e51b45704 Mon Sep 17 00:00:00 2001
From: Joey Hess
Date: Wed, 17 Dec 2008 18:50:04 -0500
Subject: change around comments pagespecs
I think it is clearer to have one pagespec that controls all pages with
comments, and a separate pagespec that can be used to close new comments on
a subset of those pages.
---
IkiWiki/Plugin/comments.pm | 43 ++++++++++++++++++++-----------------------
doc/plugins/comments.mdwn | 13 +++++++------
2 files changed, 27 insertions(+), 29 deletions(-)
(limited to 'doc')
diff --git a/IkiWiki/Plugin/comments.pm b/IkiWiki/Plugin/comments.pm
index 83f67869c..6e257d1d9 100644
--- a/IkiWiki/Plugin/comments.pm
+++ b/IkiWiki/Plugin/comments.pm
@@ -34,20 +34,18 @@ sub getsetup () {
safe => 1,
rebuild => 1,
},
- # Pages where comments are shown, but new comments are not
- # allowed, will show "Comments are closed".
- comments_shown_pagespec => {
+ comments_pagespec => {
type => 'pagespec',
- example => 'blog/*',
- description => 'PageSpec for pages where comments will be shown inline',
+ example => 'blog/* and *!/Discussion',
+ description => 'PageSpec of pages where comments are allowed',
link => 'ikiwiki/PageSpec',
safe => 1,
rebuild => 1,
},
- comments_open_pagespec => {
+ comments_closed_pagespec => {
type => 'pagespec',
- example => 'blog/* and created_after(close_old_comments)',
- description => 'PageSpec for pages where new comments can be posted',
+ example => 'blog/controversial or blog/flamewar',
+ description => 'PageSpec of pages where posting new comments is not allowed',
link => 'ikiwiki/PageSpec',
safe => 1,
rebuild => 1,
@@ -87,10 +85,10 @@ sub getsetup () {
sub checkconfig () {
$config{comments_commit} = 1
unless defined $config{comments_commit};
- $config{comments_shown_pagespec} = ''
- unless defined $config{comments_shown_pagespec};
- $config{comments_open_pagespec} = ''
- unless defined $config{comments_open_pagespec};
+ $config{comments_pagespec} = ''
+ unless defined $config{comments_pagespec};
+ $config{comments_closed_pagespec} = ''
+ unless defined $config{comments_closed_pagespec};
$config{comments_pagename} = 'comment_'
unless defined $config{comments_pagename};
}
@@ -371,7 +369,7 @@ sub sessioncgi ($$) {
$page));
}
- if (not pagespec_match($page, $config{comments_open_pagespec},
+ if (pagespec_match($page, $config{comments_closed_pagespec},
location => $page)) {
error(sprintf(gettext(
"comments on page '%s' are closed"),
@@ -523,22 +521,21 @@ sub pagetemplate (@) {
my $comments = undef;
my $open = 0;
- my $shown = pagespec_match($page,
- $config{comments_shown_pagespec},
- location => $page);
+ my $shown = 0;
+ if (pagespec_match($page,
+ $config{comments_pagespec},
+ location => $page)) {
+ $shown = 1;
+ $open = length $config{cgiurl} > 0;
+ }
- if (pagespec_match($page, "*/$config{comments_pagename}*",
+ if (pagespec_match($page,
+ "$config{comments_closed_pagespec} or */$config{comments_pagename}*",
location => $page)) {
$shown = 0;
$open = 0;
}
- if (length $config{cgiurl}) {
- $open = pagespec_match($page,
- $config{comments_open_pagespec},
- location => $page);
- }
-
if ($shown) {
$comments = IkiWiki::preprocess_inline(
pages => "internal($page/$config{comments_pagename}*)",
diff --git a/doc/plugins/comments.mdwn b/doc/plugins/comments.mdwn
index a81cab127..afaf2c7ae 100644
--- a/doc/plugins/comments.mdwn
+++ b/doc/plugins/comments.mdwn
@@ -23,12 +23,13 @@ Individual comments are stored as internal-use pages named something like
There are some global options for the setup file:
-* `comments_open_pagespec`: pages where new comments can be posted, e.g.
- `blog/* and created_after(close_old_comments)` or `!*/discussion`.
- You need to set this, since the default is to not add comments to any
- pages.
-* `comments_shown_pagespec`: pages where comments will be displayed inline,
- e.g. `blog/*` or `!*/discussion`.
+* `comments_pagespec`: [[ikiwiki/PageSpec]] of pages where comments are
+ allowed. The default is not to allow comments on any pages. To allow
+ comments to all posts to a blog, you could use `blog/* and !*/Discussion`.
+* `comments_closed_pagespec`: [[ikiwiki/PageSpec]] of pages where
+ posting of new comments is closed, but any existing comments will still
+ be displayed. Often you will list a set of individual pages here.
+ For example: `blog/controversial or blog/flamewar`
* `comments_pagename`: if this is e.g. `comment_` (the default), then
comment pages will be named something like `page/comment_12`
* `comments_allowdirectives`: if true (default false), comments may
--
cgit v1.2.3
From 8614abce09f6e4338c10ea1c2d8950fcebbf5869 Mon Sep 17 00:00:00 2001
From: Joey Hess
Date: Wed, 17 Dec 2008 19:47:54 -0500
Subject: two comments ui suggestions
---
doc/todo/comments.mdwn | 5 +++++
1 file changed, 5 insertions(+)
(limited to 'doc')
diff --git a/doc/todo/comments.mdwn b/doc/todo/comments.mdwn
index adc302a25..38c61287c 100644
--- a/doc/todo/comments.mdwn
+++ b/doc/todo/comments.mdwn
@@ -6,3 +6,8 @@ Known issues with the [[plugins/comments]] plugin:
* Add `COMMENTOPENID`: the authenticated/verified user name, if and only if it was an OpenID
* The default template should have a (?) icon next to unauthenticated users (with the IP address
as title) and an OpenID icon next to OpenIDs
+* Should the comments be visually set off more from the page above?
+ Rather than just a horizontal rule, I'm thinking put the comments
+ in a box like is used for inlined pages.
+* Instead of just a link to add a comment, it could have a form to enter
+ the title, similar to the form for adding a new blog post.
--
cgit v1.2.3
From d647ca286ad2f974343c73fbc631ed092c13c09a Mon Sep 17 00:00:00 2001
From: Joey Hess
Date: Wed, 17 Dec 2008 20:10:22 -0500
Subject: simplify pagespec
---
doc/plugins/pagecount.mdwn | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
(limited to 'doc')
diff --git a/doc/plugins/pagecount.mdwn b/doc/plugins/pagecount.mdwn
index 6235963d3..c1c15eafb 100644
--- a/doc/plugins/pagecount.mdwn
+++ b/doc/plugins/pagecount.mdwn
@@ -6,5 +6,5 @@ This plugin provides the [[ikiwiki/directive/pagecount]]
currently in the wiki.
If it is turned on it can tell us that this wiki includes
-[[!pagecount pages="* and !recentchanges"]]
-pages, of which [[!pagecount pages="*/Discussion"]] are discussion pages.
+[[!pagecount]] pages, of which
+[[!pagecount pages="*/Discussion"]] are discussion pages.
--
cgit v1.2.3
From 3e2f75af6b86ebc636abf409ac9ce98bed78f04a Mon Sep 17 00:00:00 2001
From: Joey Hess
Date: Wed, 17 Dec 2008 20:19:12 -0500
Subject: fix
---
doc/plugins/pagecount.mdwn | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'doc')
diff --git a/doc/plugins/pagecount.mdwn b/doc/plugins/pagecount.mdwn
index c1c15eafb..a56027e60 100644
--- a/doc/plugins/pagecount.mdwn
+++ b/doc/plugins/pagecount.mdwn
@@ -6,5 +6,5 @@ This plugin provides the [[ikiwiki/directive/pagecount]]
currently in the wiki.
If it is turned on it can tell us that this wiki includes
-[[!pagecount]] pages, of which
+[[!pagecount ]] pages, of which
[[!pagecount pages="*/Discussion"]] are discussion pages.
--
cgit v1.2.3
From 1074d38f0dc55e74979e4013d4a0d9953a89fa50 Mon Sep 17 00:00:00 2001
From: Joey Hess
Date: Wed, 17 Dec 2008 20:40:46 -0500
Subject: deletion
---
doc/todo/comments.mdwn | 4 ++++
1 file changed, 4 insertions(+)
(limited to 'doc')
diff --git a/doc/todo/comments.mdwn b/doc/todo/comments.mdwn
index 38c61287c..ee158e53c 100644
--- a/doc/todo/comments.mdwn
+++ b/doc/todo/comments.mdwn
@@ -11,3 +11,7 @@ Known issues with the [[plugins/comments]] plugin:
in a box like is used for inlined pages.
* Instead of just a link to add a comment, it could have a form to enter
the title, similar to the form for adding a new blog post.
+* 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).
--
cgit v1.2.3
From 385123006e528149fbc5750209151462b056b124 Mon Sep 17 00:00:00 2001
From: Joey Hess
Date: Wed, 17 Dec 2008 21:17:42 -0500
Subject: close
---
doc/bugs/IkiWiki::Wrapper_should_use_destdir.mdwn | 21 ++++++++++++++++++---
1 file changed, 18 insertions(+), 3 deletions(-)
(limited to 'doc')
diff --git a/doc/bugs/IkiWiki::Wrapper_should_use_destdir.mdwn b/doc/bugs/IkiWiki::Wrapper_should_use_destdir.mdwn
index 0a1efa394..b975cbe67 100644
--- a/doc/bugs/IkiWiki::Wrapper_should_use_destdir.mdwn
+++ b/doc/bugs/IkiWiki::Wrapper_should_use_destdir.mdwn
@@ -1,5 +1,20 @@
-In IkiWiki/Wrapper.pm, the gen_wrapper function finds out what srcdir and destdir are set to in the config, but does not use them.
+In IkiWiki/Wrapper.pm, the gen_wrapper function finds out what srcdir and
+destdir are set to in the config, but does not use them.
-Later in the sub, when a new wiki.cgi wrapper is being created when calling ikiwiki --setup /path/to/setup, it will only work if cgi\_wrapper in the config file is set to the full path. Otherwise, it creates wiki.cgi in the current working directory. It works with the other wrapper it sets up in my config - post\_update (using git), as that shows in the config with a full path.
+Later in the sub, when a new wiki.cgi wrapper is being created when calling
+ikiwiki --setup /path/to/setup, it will only work if cgi\_wrapper in the
+config file is set to the full path. Otherwise, it creates wiki.cgi in the
+current working directory. It works with the other wrapper it sets up in
+my config - post\_update (using git), as that shows in the config with a
+full path.
-One workaround would be to mention in the setup file that cgi_wrapper has to be the full path, not just the file name, but that seems silly when destdir is also specified in that file and that's where it should go, and $config{destdir} is a known value in the Wrapper.pm file.
+One workaround would be to mention in the setup file that cgi_wrapper has
+to be the full path, not just the file name, but that seems silly when
+destdir is also specified in that file and that's where it should go, and
+$config{destdir} is a known value in the Wrapper.pm file.
+
+> Nowhere in any documentation does
+> it say that cgi\_wrapper is relative to the destdir.
+> As noted in [[discussion]], there are web server setups
+> that require the cgi be located elsewhere.
+> [[done]] --[[Joey]]
--
cgit v1.2.3
From 835801a6ff13b23cf96b2d080805c095f7110315 Mon Sep 17 00:00:00 2001
From: Joey Hess
Date: Thu, 18 Dec 2008 12:32:23 -0500
Subject: note about comments feed
---
doc/todo/comments.mdwn | 7 +++++++
1 file changed, 7 insertions(+)
(limited to 'doc')
diff --git a/doc/todo/comments.mdwn b/doc/todo/comments.mdwn
index ee158e53c..f5b580da2 100644
--- a/doc/todo/comments.mdwn
+++ b/doc/todo/comments.mdwn
@@ -15,3 +15,10 @@ Known issues with the [[plugins/comments]] plugin:
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).
+* One can use inline to set up a feed of all comments posted to any page.
+ Using template=comments_display they are displayed right. Only problem
+ is there is no indication in that template of what page each comment in the
+ feed is a comment on. So, if a comment is inlined into a different page,
+ I think it should show a link back to the page commented on.
+ (BTW, the rss feed in this situation seems ok; there the link element
+ points back to the parent page.
--
cgit v1.2.3
From b2439a3e5193022c7ed52a726dd5906643ca45c7 Mon Sep 17 00:00:00 2001
From: Joey Hess
Date: Thu, 18 Dec 2008 12:53:47 -0500
Subject: pagespec thoughts
---
doc/todo/comments.mdwn | 5 +++++
1 file changed, 5 insertions(+)
(limited to 'doc')
diff --git a/doc/todo/comments.mdwn b/doc/todo/comments.mdwn
index f5b580da2..c571b8c56 100644
--- a/doc/todo/comments.mdwn
+++ b/doc/todo/comments.mdwn
@@ -22,3 +22,8 @@ Known issues with the [[plugins/comments]] plugin:
I think it should show a link back to the page commented on.
(BTW, the rss feed in this situation seems ok; there the link element
points back to the parent page.
+* It would be useful to have a pagespec that always matches all comments on
+ pages matching a glob. Something like `comment(blog/*)`.
+ Perhaps postcomment could also be folded into this? Then the pagespec
+ would match both existing comments, as well as new comments that are
+ being posted.
--
cgit v1.2.3
From 8414a62e7f3f3b25ebf61378495328e306b21171 Mon Sep 17 00:00:00 2001
From: justin
Date: Thu, 18 Dec 2008 14:20:59 -0500
Subject:
---
doc/bugs/IkiWiki::Wrapper_should_use_destdir.mdwn | 3 +++
1 file changed, 3 insertions(+)
(limited to 'doc')
diff --git a/doc/bugs/IkiWiki::Wrapper_should_use_destdir.mdwn b/doc/bugs/IkiWiki::Wrapper_should_use_destdir.mdwn
index b975cbe67..6b02c4186 100644
--- a/doc/bugs/IkiWiki::Wrapper_should_use_destdir.mdwn
+++ b/doc/bugs/IkiWiki::Wrapper_should_use_destdir.mdwn
@@ -18,3 +18,6 @@ $config{destdir} is a known value in the Wrapper.pm file.
> As noted in [[discussion]], there are web server setups
> that require the cgi be located elsewhere.
> [[done]] --[[Joey]]
+
+>> A comment in the generated setup file that all paths should be full
+>> would prevent my (admittedly dumb) error without any drawbacks.
--
cgit v1.2.3
From a115ff254dd97a182b8ca21609e8453a514c3d25 Mon Sep 17 00:00:00 2001
From: "smcv@"
Date: Thu, 18 Dec 2008 21:08:33 +0000
Subject: Update todo/comments with today's fixes, and thoughts about the
remaining items
---
doc/todo/comments.mdwn | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 50 insertions(+)
(limited to 'doc')
diff --git a/doc/todo/comments.mdwn b/doc/todo/comments.mdwn
index c571b8c56..6a4b40332 100644
--- a/doc/todo/comments.mdwn
+++ b/doc/todo/comments.mdwn
@@ -2,19 +2,47 @@ Known issues with the [[plugins/comments]] plugin:
* 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]]
+
* Previews always say "unknown IP address"
+
* Add `COMMENTOPENID`: the authenticated/verified user name, if and only if it was an OpenID
+
+ > Done in my comments git branch --[[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
+
+ > Done in my comments git branch, at least as a mockup (using the (?),
+ > {x} and {*} smileys for anonymous, OpenID and login respectively).
+ > --[[smcv]]
+
* Should the comments be visually set off more from the page above?
Rather than just a horizontal rule, I'm thinking put the comments
in a box like is used for inlined pages.
+
+ > I did put them in a box in the CSS... I agree the default template
+ > could do with visual improvement though. --[[smcv]]
+
* Instead of just a link to add a comment, it could have a form to enter
the title, similar to the form for adding a new blog post.
+
+ > I'm not sure this is so useful? On Livejournal titles are allowed on
+ > comments, but very rarely used (and indeed usually not very useful);
+ > 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]]
+
* One can use inline to set up a feed of all comments posted to any page.
Using template=comments_display they are displayed right. Only problem
is there is no indication in that template of what page each comment in the
@@ -22,8 +50,30 @@ Known issues with the [[plugins/comments]] plugin:
I think it should show a link back to the page commented on.
(BTW, the rss feed in this situation seems ok; there the link element
points back to the parent page.
+
* It would be useful to have a pagespec that always matches all comments on
pages matching a glob. Something like `comment(blog/*)`.
Perhaps postcomment could also be folded into this? Then the pagespec
would match both existing comments, as well as new comments that are
being posted.
+
+ > Please see [[plugins/comment/discussion]]. If I've convinced you that
+ > internal pages are the way forward, then sure, we can do that, because
+ > people who can comment still won't be able to edit others' comments
+ > (one of my goals is that commenters can't put words into each other's
+ > mouths :-) )
+ >
+ > On the other hand, if you still want me to switch this plugin to "real"
+ > pages, or if internal pages might become editable in future, then
+ > configuring lockedit/anonok so a user X can add comments to blog pages
+ > would also let X edit/delete comments on blog pages (including those
+ > written by others) in arbitrary ways, which doesn't seem good. --[[smcv]]
+
+* One of Joey's commit messages says "Not ideal, it would be nicer to jump to
+ the actual comment posted, but no anchor is available". In fact there is
+ an anchor - the `\[[_comment]]` preprocessing wraps the comment in a
+ with id="comment_123" or something. I'll fix this, unless Joey gets there
+ first. --[[smcv]]
+
+* Now that inline has some comments-specific functionality anyway, it would
+ be good to output in Atom and the equivalent in RSS.
--
cgit v1.2.3
From 1d82ac40d48d0d07aed8a596a90f060f03fdb0b0 Mon Sep 17 00:00:00 2001
From: Joey Hess
Date: Thu, 18 Dec 2008 20:10:42 -0500
Subject: responses
---
doc/todo/comments.mdwn | 6 ++++++
1 file changed, 6 insertions(+)
(limited to 'doc')
diff --git a/doc/todo/comments.mdwn b/doc/todo/comments.mdwn
index 6a4b40332..c81947e74 100644
--- a/doc/todo/comments.mdwn
+++ b/doc/todo/comments.mdwn
@@ -13,6 +13,8 @@ Known issues with the [[plugins/comments]] plugin:
> Done in my comments git branch --[[smcv]]
+ > Not seeing it there, which branch? --[[Joey]]
+
* The default template should have a (?) icon next to unauthenticated users (with the IP address
as title) and an OpenID icon next to OpenIDs
@@ -69,6 +71,10 @@ Known issues with the [[plugins/comments]] plugin:
> would also let X edit/delete comments on blog pages (including those
> written by others) in arbitrary ways, which doesn't seem good. --[[smcv]]
+ > I had a look at implementing comment() and fell afoul of
+ > some optimisations that assume only internal() will be used to match
+ > internal pages. So probably this isn't worth doing. --[[Joey]]
+
* One of Joey's commit messages says "Not ideal, it would be nicer to jump to
the actual comment posted, but no anchor is available". In fact there is
an anchor - the `\[[_comment]]` preprocessing wraps the comment in a
--
cgit v1.2.3
From d7855474fdf6002711ef3d0411ece375ce44015d Mon Sep 17 00:00:00 2001
From: Joey Hess
Date: Thu, 18 Dec 2008 20:20:42 -0500
Subject: document how to make a global comments feed
---
doc/tips/comments_feed.mdwn | 10 ++++++++++
1 file changed, 10 insertions(+)
create mode 100644 doc/tips/comments_feed.mdwn
(limited to 'doc')
diff --git a/doc/tips/comments_feed.mdwn b/doc/tips/comments_feed.mdwn
new file mode 100644
index 000000000..68513901e
--- /dev/null
+++ b/doc/tips/comments_feed.mdwn
@@ -0,0 +1,10 @@
+You've enabled the [[plugins/comments]] plugin, so a set of pages on your
+blog can have comments added to them. Pages with comments even have special
+feeds that can be used to subscribe to those comments. But you'd like to
+add a feed that contains all the comments posted to any page. Here's how:
+
+ \[[!inline pages="internal(*/comment_*)" template=comments_display]]
+
+The special [[ikiwiki/PageSpec]] matches all comments. The
+[[template|wikitemplates]] causes the comments to be displayed formatted
+nicely.
--
cgit v1.2.3
From 7521dd6c7571cba4a3b882ecffc02dbcbed2805e Mon Sep 17 00:00:00 2001
From: Joey Hess
Date: Thu, 18 Dec 2008 20:58:16 -0500
Subject: jump to comment after posting
Jumping to the just posted comment was the imputus, but I killed a number
of birds here.
Added a INLINEPAGE template variable, which can be used to add anchors to
any inline template.
To keep that sufficiently general, it is the full page name, so the
comment anchors and links changed form.
Got rid of the FIXMEd hardcoded html anchor div.
More importantly, the anchor is now to the very top of the comment, not the
text below. So you can see the title, and how it attributes you.
Avoid changing the permalink of pages that are not really comments, but
happen to contain the _comment directive. I think that behavior was a bug,
though not a likely one to occur since _comment should only really be used
on comment pages.
---
IkiWiki/Plugin/comments.pm | 14 ++++----------
IkiWiki/Plugin/inline.pm | 1 +
doc/todo/comments.mdwn | 2 ++
templates/comments_display.tmpl | 2 +-
4 files changed, 8 insertions(+), 11 deletions(-)
(limited to 'doc')
diff --git a/IkiWiki/Plugin/comments.pm b/IkiWiki/Plugin/comments.pm
index 2ca2d0a1d..3b8752894 100644
--- a/IkiWiki/Plugin/comments.pm
+++ b/IkiWiki/Plugin/comments.pm
@@ -193,12 +193,10 @@ sub preprocess {
$pagestate{$page}{meta}{title} = $params{subject};
}
- my $baseurl = urlto($params{destpage}, undef, 1);
- my $anchor = "";
if ($params{page} =~ m/\/(\Q$config{comments_pagename}\E\d+)$/) {
- $anchor = $1;
+ $pagestate{$page}{meta}{permalink} = urlto($params{destpage}, undef, 1).
+ "#".$params{page};
}
- $pagestate{$page}{meta}{permalink} = "${baseurl}#${anchor}";
eval q{use Date::Parse};
if (! $@) {
@@ -206,8 +204,6 @@ sub preprocess {
$IkiWiki::pagectime{$page} = $time if defined $time;
}
- # FIXME: hard-coded HTML (although it's just to set an ID)
- return "
$content
" if $anchor;
return $content;
}
@@ -499,10 +495,8 @@ sub sessioncgi ($$) {
# breaks it or something
error($conflict) if defined $conflict;
- # Bounce back to where we were, but defeat broken caches
- # and jump to the comments anchor.
- my $anticache = "?updated=$page/$config{comments_pagename}$i#comments";
- IkiWiki::redirect($cgi, urlto($page, undef, 1).$anticache);
+ # Jump to the new comment on the page.
+ IkiWiki::redirect($cgi, urlto($page, undef, 1)."#$location");
}
else {
IkiWiki::showform ($form, \@buttons, $session, $cgi,
diff --git a/IkiWiki/Plugin/inline.pm b/IkiWiki/Plugin/inline.pm
index d37db97ec..8490b455f 100644
--- a/IkiWiki/Plugin/inline.pm
+++ b/IkiWiki/Plugin/inline.pm
@@ -340,6 +340,7 @@ sub preprocess_inline (@) {
$template->param(content => $content);
}
$template->param(pageurl => urlto(bestlink($params{page}, $page), $params{destpage}));
+ $template->param(inlinepage => $page);
$template->param(title => pagetitle(basename($page)));
$template->param(ctime => displaytime($pagectime{$page}, $params{timeformat}));
$template->param(mtime => displaytime($pagemtime{$page}, $params{timeformat}));
diff --git a/doc/todo/comments.mdwn b/doc/todo/comments.mdwn
index c81947e74..2bcec69ba 100644
--- a/doc/todo/comments.mdwn
+++ b/doc/todo/comments.mdwn
@@ -81,5 +81,7 @@ Known issues with the [[plugins/comments]] plugin:
with id="comment_123" or something. I'll fix this, unless Joey gets there
first. --[[smcv]]
+ > done --[[Joey]]
+
* Now that inline has some comments-specific functionality anyway, it would
be good to output in Atom and the equivalent in RSS.
diff --git a/templates/comments_display.tmpl b/templates/comments_display.tmpl
index bc4b70273..e7e283bbf 100644
--- a/templates/comments_display.tmpl
+++ b/templates/comments_display.tmpl
@@ -1,4 +1,4 @@
-
+
Posted by
--
cgit v1.2.3
From ddabb010b2c45556046fd1ba982893395c7a46f6 Mon Sep 17 00:00:00 2001
From: Joey Hess
Date: Fri, 19 Dec 2008 14:03:26 -0500
Subject: rename comments_display to comment
---
IkiWiki/Plugin/comments.pm | 4 ++--
doc/tips/comments_feed.mdwn | 2 +-
doc/todo/comments.mdwn | 2 +-
doc/wikitemplates.mdwn | 2 +-
templates/comment.tmpl | 36 ++++++++++++++++++++++++++++++++++++
templates/comments_display.tmpl | 36 ------------------------------------
6 files changed, 41 insertions(+), 41 deletions(-)
create mode 100644 templates/comment.tmpl
delete mode 100644 templates/comments_display.tmpl
(limited to 'doc')
diff --git a/IkiWiki/Plugin/comments.pm b/IkiWiki/Plugin/comments.pm
index fd9f0acb4..705ba340b 100644
--- a/IkiWiki/Plugin/comments.pm
+++ b/IkiWiki/Plugin/comments.pm
@@ -447,7 +447,7 @@ sub sessioncgi ($$) {
content => $preview);
});
- my $template = template("comments_display.tmpl");
+ my $template = template("comment.tmpl");
$template->param(content => $preview);
$template->param(title => $form->field('subject'));
$template->param(ctime => displaytime(time));
@@ -538,7 +538,7 @@ sub pagetemplate (@) {
if ($shown) {
$comments = IkiWiki::preprocess_inline(
pages => "internal($page/$config{comments_pagename}*)",
- template => 'comments_display',
+ template => 'comment',
show => 0,
reverse => 'yes',
page => $page,
diff --git a/doc/tips/comments_feed.mdwn b/doc/tips/comments_feed.mdwn
index 68513901e..6f8137256 100644
--- a/doc/tips/comments_feed.mdwn
+++ b/doc/tips/comments_feed.mdwn
@@ -3,7 +3,7 @@ blog can have comments added to them. Pages with comments even have special
feeds that can be used to subscribe to those comments. But you'd like to
add a feed that contains all the comments posted to any page. Here's how:
- \[[!inline pages="internal(*/comment_*)" template=comments_display]]
+ \[[!inline pages="internal(*/comment_*)" template=comment]]
The special [[ikiwiki/PageSpec]] matches all comments. The
[[template|wikitemplates]] causes the comments to be displayed formatted
diff --git a/doc/todo/comments.mdwn b/doc/todo/comments.mdwn
index 2bcec69ba..ee2ba7ea0 100644
--- a/doc/todo/comments.mdwn
+++ b/doc/todo/comments.mdwn
@@ -46,7 +46,7 @@ Known issues with the [[plugins/comments]] plugin:
> a good feature to have, though. --[[smcv]]
* One can use inline to set up a feed of all comments posted to any page.
- Using template=comments_display they are displayed right. Only problem
+ Using template=comment they are displayed right. Only problem
is there is no indication in that template of what page each comment in the
feed is a comment on. So, if a comment is inlined into a different page,
I think it should show a link back to the page commented on.
diff --git a/doc/wikitemplates.mdwn b/doc/wikitemplates.mdwn
index 6fb4d5f49..63735193b 100644
--- a/doc/wikitemplates.mdwn
+++ b/doc/wikitemplates.mdwn
@@ -29,7 +29,7 @@ located in /usr/share/ikiwiki/templates by default.
form to wiki pages.
* `searchquery.tmpl` - This is an omega template, used by the
[[plugins/search]] plugin.
-* `comments_display.tmpl` - This template is used to display a comment
+* `comment.tmpl` - This template is used to display a comment
by the [[plugins/comments]] plugin.
* `comments_form.tmpl` - This template is the comment post form for the
[[plugins/comments]] plugin.
diff --git a/templates/comment.tmpl b/templates/comment.tmpl
new file mode 100644
index 000000000..e7e283bbf
--- /dev/null
+++ b/templates/comment.tmpl
@@ -0,0 +1,36 @@
+
--
cgit v1.2.3
From 79a787a4668caf043862197de2b5ba7e41d37102 Mon Sep 17 00:00:00 2001
From: Joey Hess
Date: Fri, 19 Dec 2008 14:07:22 -0500
Subject: rename comments_form to editcomment
---
IkiWiki/Plugin/comments.pm | 2 +-
doc/wikitemplates.mdwn | 2 +-
templates/comments_form.tmpl | 34 ----------------------------------
templates/editcomment.tmpl | 34 ++++++++++++++++++++++++++++++++++
4 files changed, 36 insertions(+), 36 deletions(-)
delete mode 100644 templates/comments_form.tmpl
create mode 100644 templates/editcomment.tmpl
(limited to 'doc')
diff --git a/IkiWiki/Plugin/comments.pm b/IkiWiki/Plugin/comments.pm
index 705ba340b..a155712fb 100644
--- a/IkiWiki/Plugin/comments.pm
+++ b/IkiWiki/Plugin/comments.pm
@@ -281,7 +281,7 @@ sub sessioncgi ($$) {
action => $config{cgiurl},
header => 0,
table => 0,
- template => scalar IkiWiki::template_params('comments_form.tmpl'),
+ template => scalar IkiWiki::template_params('editcomment.tmpl'),
# wtf does this do in editpage?
wikiname => $config{wikiname},
);
diff --git a/doc/wikitemplates.mdwn b/doc/wikitemplates.mdwn
index 63735193b..dc217cd30 100644
--- a/doc/wikitemplates.mdwn
+++ b/doc/wikitemplates.mdwn
@@ -31,7 +31,7 @@ located in /usr/share/ikiwiki/templates by default.
[[plugins/search]] plugin.
* `comment.tmpl` - This template is used to display a comment
by the [[plugins/comments]] plugin.
-* `comments_form.tmpl` - This template is the comment post form for the
+* `editcomment.tmpl` - This template is the comment post form for the
[[plugins/comments]] plugin.
The [[plugins/pagetemplate]] plugin can allow individual pages to use a
diff --git a/templates/comments_form.tmpl b/templates/comments_form.tmpl
deleted file mode 100644
index 9a9455f99..000000000
--- a/templates/comments_form.tmpl
+++ /dev/null
@@ -1,34 +0,0 @@
-
-
-
-
-
-
-
-Signed in as
-
-
-Name: (optional)
-Website: (optional)
-
-
-Subject:
-
-Page type:
-
-
-A subset of HTML is allowed.
-IkiWiki directives ([[!directive]]) are not allowed in comments on this wiki.
-
-
-
-
-
-Comment preview:
-
-
-
-
-
-
-
diff --git a/templates/editcomment.tmpl b/templates/editcomment.tmpl
new file mode 100644
index 000000000..a08b8964c
--- /dev/null
+++ b/templates/editcomment.tmpl
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+Signed in as
+
+
+Name: (optional)
+Website: (optional)
+
+
+Subject:
+
+Page type:
+
+
+A subset of HTML is allowed.
+IkiWiki directives ([[!directive]]) are not allowed in comments on this wiki.
+
+
+
+
+
Posted by
@@ -27,10 +27,10 @@ unknown IP address
()
-
+
-
+
--
cgit v1.2.3
From 091c7fd25bcc39069df9dd81941c5329f26b8988 Mon Sep 17 00:00:00 2001
From: Joey Hess
Date: Fri, 19 Dec 2008 14:20:07 -0500
Subject: add link from comment subject to its permalink
---
doc/todo/comments.mdwn | 2 ++
templates/comment.tmpl | 2 +-
2 files changed, 3 insertions(+), 1 deletion(-)
(limited to 'doc')
diff --git a/doc/todo/comments.mdwn b/doc/todo/comments.mdwn
index ee2ba7ea0..a429be525 100644
--- a/doc/todo/comments.mdwn
+++ b/doc/todo/comments.mdwn
@@ -53,6 +53,8 @@ Known issues with the [[plugins/comments]] plugin:
(BTW, the rss feed in this situation seems ok; there the link element
points back to the parent page.
+ > done --[[Joey]]
+
* It would be useful to have a pagespec that always matches all comments on
pages matching a glob. Something like `comment(blog/*)`.
Perhaps postcomment could also be folded into this? Then the pagespec
diff --git a/templates/comment.tmpl b/templates/comment.tmpl
index 9d223bd7f..19698cd33 100644
--- a/templates/comment.tmpl
+++ b/templates/comment.tmpl
@@ -27,7 +27,7 @@ unknown IP address
()
-
+
--
cgit v1.2.3
From 4ed092c05b3ba825a13da4460949bbcf990db8e1 Mon Sep 17 00:00:00 2001
From: Joey Hess
Date: Fri, 19 Dec 2008 17:07:54 -0500
Subject: typos
---
doc/todo/comments.mdwn | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
(limited to 'doc')
diff --git a/doc/todo/comments.mdwn b/doc/todo/comments.mdwn
index a429be525..aa6b130dc 100644
--- a/doc/todo/comments.mdwn
+++ b/doc/todo/comments.mdwn
@@ -61,7 +61,7 @@ Known issues with the [[plugins/comments]] plugin:
would match both existing comments, as well as new comments that are
being posted.
- > Please see [[plugins/comment/discussion]]. If I've convinced you that
+ > Please see [[plugins/comments/discussion]]. If I've convinced you that
> internal pages are the way forward, then sure, we can do that, because
> people who can comment still won't be able to edit others' comments
> (one of my goals is that commenters can't put words into each other's
@@ -86,4 +86,4 @@ Known issues with the [[plugins/comments]] plugin:
> done --[[Joey]]
* Now that inline has some comments-specific functionality anyway, it would
- be good to output in Atom and the equivalent in RSS.
+ be good to output '' in Atom and the equivalent in RSS.
--
cgit v1.2.3
From 0b002b79b7241ea87ce3489b75a34116c32630e6 Mon Sep 17 00:00:00 2001
From: Joey Hess
Date: Fri, 19 Dec 2008 17:26:41 -0500
Subject: update
---
doc/todo/comments.mdwn | 4 +-
po/es.po | 150 +++++++++++++++++++++++--------------------------
2 files changed, 72 insertions(+), 82 deletions(-)
(limited to 'doc')
diff --git a/doc/todo/comments.mdwn b/doc/todo/comments.mdwn
index aa6b130dc..81c2f2722 100644
--- a/doc/todo/comments.mdwn
+++ b/doc/todo/comments.mdwn
@@ -53,7 +53,9 @@ Known issues with the [[plugins/comments]] plugin:
(BTW, the rss feed in this situation seems ok; there the link element
points back to the parent page.
- > done --[[Joey]]
+ > done
+ > Er, no, I added a link but it does not go back to the parent page of a
+ > comment if the comment is inlined elsewhere. --[[Joey]]
* It would be useful to have a pagespec that always matches all comments on
pages matching a glob. Something like `comment(blog/*)`.
diff --git a/po/es.po b/po/es.po
index 02fda1e71..4e54ef276 100644
--- a/po/es.po
+++ b/po/es.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: es\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-12-19 08:04+0100\n"
+"POT-Creation-Date: 2008-12-11 14:46-0500\n"
"PO-Revision-Date: 2008-12-19 08:10+0100\n"
"Last-Translator: Víctor Moral \n"
"Language-Team: Spanish \n"
@@ -24,7 +24,7 @@ msgid "login failed, perhaps you need to turn on cookies?"
msgstr ""
"registro fallido, ¿ tal vez necesita activar las cookies en el navegador ?"
-#: ../IkiWiki/CGI.pm:163 ../IkiWiki/CGI.pm:310
+#: ../IkiWiki/CGI.pm:163 ../IkiWiki/Plugin/editpage.pm:350
msgid "Your login session has expired."
msgstr "Su registro en el sistema ha expirado."
@@ -48,7 +48,7 @@ msgstr "Las preferencias se han guardado."
msgid "You are banned."
msgstr "Ha sido expulsado."
-#: ../IkiWiki/CGI.pm:401 ../IkiWiki/CGI.pm:402 ../IkiWiki.pm:1204
+#: ../IkiWiki/CGI.pm:385 ../IkiWiki/CGI.pm:386 ../IkiWiki.pm:1204
msgid "Error"
msgstr "Error"
@@ -66,62 +66,62 @@ msgstr ""
msgid "missing %s parameter"
msgstr "falta el parámetro %s"
-#: ../IkiWiki/Plugin/aggregate.pm:251
+#: ../IkiWiki/Plugin/aggregate.pm:250
msgid "new feed"
msgstr "nueva entrada"
-#: ../IkiWiki/Plugin/aggregate.pm:265
+#: ../IkiWiki/Plugin/aggregate.pm:264
msgid "posts"
msgstr "entradas"
-#: ../IkiWiki/Plugin/aggregate.pm:267
+#: ../IkiWiki/Plugin/aggregate.pm:266
msgid "new"
msgstr "nuevo"
-#: ../IkiWiki/Plugin/aggregate.pm:430
+#: ../IkiWiki/Plugin/aggregate.pm:429
#, perl-format
msgid "expiring %s (%s days old)"
msgstr "%s caducada (%s días de antigüedad)"
-#: ../IkiWiki/Plugin/aggregate.pm:437
+#: ../IkiWiki/Plugin/aggregate.pm:436
#, perl-format
msgid "expiring %s"
msgstr "%s caducada"
-#: ../IkiWiki/Plugin/aggregate.pm:464
+#: ../IkiWiki/Plugin/aggregate.pm:463
#, perl-format
msgid "last checked %s"
msgstr "última comprobación el %s"
-#: ../IkiWiki/Plugin/aggregate.pm:468
+#: ../IkiWiki/Plugin/aggregate.pm:467
#, perl-format
msgid "checking feed %s ..."
msgstr "comprobando fuente de datos %s ..."
-#: ../IkiWiki/Plugin/aggregate.pm:473
+#: ../IkiWiki/Plugin/aggregate.pm:472
#, perl-format
msgid "could not find feed at %s"
msgstr "no puedo encontrar la fuente de datos en %s"
-#: ../IkiWiki/Plugin/aggregate.pm:492
+#: ../IkiWiki/Plugin/aggregate.pm:487
msgid "feed not found"
msgstr "fuente de datos no encontrada"
-#: ../IkiWiki/Plugin/aggregate.pm:503
+#: ../IkiWiki/Plugin/aggregate.pm:498
#, perl-format
msgid "(invalid UTF-8 stripped from feed)"
msgstr "(una secuencia UTF-8 inválida ha sido eliminada de la fuente de datos)"
-#: ../IkiWiki/Plugin/aggregate.pm:511
+#: ../IkiWiki/Plugin/aggregate.pm:506
#, perl-format
msgid "(feed entities escaped)"
msgstr "(los caracteres especiales de la fuente de datos están exceptuados)"
-#: ../IkiWiki/Plugin/aggregate.pm:519
+#: ../IkiWiki/Plugin/aggregate.pm:514
msgid "feed crashed XML::Feed!"
msgstr "¡ la fuente de datos ha provocado un error fatal en XML::Feed !"
-#: ../IkiWiki/Plugin/aggregate.pm:600
+#: ../IkiWiki/Plugin/aggregate.pm:595
#, perl-format
msgid "creating new page %s"
msgstr "creando nueva página %s"
@@ -173,7 +173,7 @@ msgid "automatic index generation"
msgstr "creación de índice automática"
#: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:261
-#: ../IkiWiki/Plugin/inline.pm:354 ../IkiWiki/Plugin/opendiscussion.pm:26
+#: ../IkiWiki/Plugin/inline.pm:344 ../IkiWiki/Plugin/opendiscussion.pm:26
#: ../IkiWiki/Plugin/orphans.pm:37 ../IkiWiki/Render.pm:79
#: ../IkiWiki/Render.pm:149
msgid "discussion"
@@ -188,60 +188,6 @@ msgstr "%s desde la página %s"
msgid "There are no broken links!"
msgstr "¡ No hay enlaces rotos !"
-#: ../IkiWiki/Plugin/comments.pm:119 ../IkiWiki/Plugin/format.pm:23
-#, perl-format
-msgid "unsupported page format %s"
-msgstr "formato de página %s no soportado"
-
-#: ../IkiWiki/Plugin/comments.pm:124
-msgid "comment must have content"
-msgstr "Un comentario debe tener algún contenido"
-
-#: ../IkiWiki/Plugin/comments.pm:164
-msgid "Anonymous"
-msgstr "Anónimo"
-
-#: ../IkiWiki/Plugin/comments.pm:225 ../IkiWiki/Plugin/recentchanges.pm:101
-msgid "missing page"
-msgstr "página no encontrada"
-
-#: ../IkiWiki/Plugin/comments.pm:227 ../IkiWiki/Plugin/recentchanges.pm:103
-#, perl-format
-msgid "The page %s does not exist."
-msgstr "No existe la página %s."
-
-#: ../IkiWiki/Plugin/comments.pm:339 ../IkiWiki/Plugin/editpage.pm:125
-msgid "bad page name"
-msgstr "nombre de página erróneo"
-
-#: ../IkiWiki/Plugin/comments.pm:346
-#, perl-format
-msgid "commenting on %s"
-msgstr "creando comentarios en la página %s"
-
-#: ../IkiWiki/Plugin/comments.pm:364
-#, 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:371
-#, perl-format
-msgid "comments on page '%s' are closed"
-msgstr "los comentarios para la página '%s' están cerrados"
-
-#: ../IkiWiki/Plugin/comments.pm:473
-msgid "Added a comment"
-msgstr "Añadir un comentario"
-
-#: ../IkiWiki/Plugin/comments.pm:477
-#, perl-format
-msgid "Added a comment: %s"
-msgstr "Comentario añadido: %s"
-
-#: ../IkiWiki/Plugin/comments.pm:569
-msgid "Comments"
-msgstr "Comentarios"
-
#: ../IkiWiki/Plugin/conditional.pm:27 ../IkiWiki/Plugin/cutpaste.pm:30
#: ../IkiWiki/Plugin/cutpaste.pm:45 ../IkiWiki/Plugin/cutpaste.pm:61
#: ../IkiWiki/Plugin/testpagespec.pm:26
@@ -263,6 +209,10 @@ 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:125
+msgid "bad page name"
+msgstr "nombre de página erróneo"
+
#: ../IkiWiki/Plugin/editpage.pm:141
#, perl-format
msgid "%s is not an editable page"
@@ -273,9 +223,9 @@ msgstr "la página %s no es modificable"
msgid "creating %s"
msgstr "creando página %s"
-#: ../IkiWiki/Plugin/editpage.pm:335 ../IkiWiki/Plugin/editpage.pm:354
-#: ../IkiWiki/Plugin/editpage.pm:364 ../IkiWiki/Plugin/editpage.pm:399
-#: ../IkiWiki/Plugin/editpage.pm:444
+#: ../IkiWiki/Plugin/editpage.pm:335 ../IkiWiki/Plugin/editpage.pm:363
+#: ../IkiWiki/Plugin/editpage.pm:373 ../IkiWiki/Plugin/editpage.pm:408
+#: ../IkiWiki/Plugin/editpage.pm:453
#, perl-format
msgid "editing %s"
msgstr "modificando página %s"
@@ -301,6 +251,11 @@ msgstr "fallo en el proceso"
msgid "must specify format and text"
msgstr "se deben especificar tanto el formato como el texto"
+#: ../IkiWiki/Plugin/format.pm:23
+#, perl-format
+msgid "unsupported page format %s"
+msgstr "formato de página %s no soportado"
+
#: ../IkiWiki/Plugin/fortune.pm:27
msgid "fortune failed"
msgstr "el programa fortune ha fallado"
@@ -389,20 +344,20 @@ msgstr "falta el parámetro pages"
msgid "unknown sort type %s"
msgstr "no conozco este tipo de ordenación %s"
-#: ../IkiWiki/Plugin/inline.pm:307
+#: ../IkiWiki/Plugin/inline.pm:297
msgid "Add a new post titled:"
msgstr "Añadir una entrada nueva titulada:"
-#: ../IkiWiki/Plugin/inline.pm:327
+#: ../IkiWiki/Plugin/inline.pm:318
#, perl-format
msgid "nonexistant template %s"
msgstr "la plantilla %s no existe "
-#: ../IkiWiki/Plugin/inline.pm:362 ../IkiWiki/Render.pm:83
+#: ../IkiWiki/Plugin/inline.pm:352 ../IkiWiki/Render.pm:83
msgid "Discussion"
msgstr "Comentarios"
-#: ../IkiWiki/Plugin/inline.pm:587
+#: ../IkiWiki/Plugin/inline.pm:577
msgid "RPC::XML::Client not found, not pinging"
msgstr "No he encontrado el componente RPC::XML::Client, no envío señal alguna"
@@ -427,15 +382,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:150
msgid "stylesheet not found"
msgstr "hoja de estilo no encontrada "
-#: ../IkiWiki/Plugin/meta.pm:185
+#: ../IkiWiki/Plugin/meta.pm:184
msgid "redir page not found"
msgstr "falta la página a donde redirigir"
-#: ../IkiWiki/Plugin/meta.pm:198
+#: ../IkiWiki/Plugin/meta.pm:197
msgid "redir cycle is not allowed"
msgstr "ciclo de redirección no permitido"
@@ -622,6 +577,15 @@ msgstr "%s es un valor erróneo para un porcentaje"
msgid "need either `percent` or `totalpages` and `donepages` parameters"
msgstr "son necesarios los parámetros 'donepages' y 'percent' ó 'totalpages'"
+#: ../IkiWiki/Plugin/recentchanges.pm:101
+msgid "missing page"
+msgstr "página no encontrada"
+
+#: ../IkiWiki/Plugin/recentchanges.pm:103
+#, perl-format
+msgid "The page %s does not exist."
+msgstr "No existe la página %s."
+
#: ../IkiWiki/Plugin/recentchangesdiff.pm:37
msgid "(Diff truncated)"
msgstr "(Lista de diferencias truncada)"
@@ -1058,6 +1022,30 @@ msgstr ""
msgid "What is the domain name of the web server?"
msgstr "¿ Cuál es el dominio para el servidor web ?"
+#~ msgid "comment must have content"
+#~ msgstr "Un comentario debe tener algún contenido"
+
+#~ msgid "Anonymous"
+#~ msgstr "Anónimo"
+
+#~ msgid "commenting on %s"
+#~ msgstr "creando comentarios en la página %s"
+
+#~ 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"
+
+#~ msgid "comments on page '%s' are closed"
+#~ msgstr "los comentarios para la página '%s' están cerrados"
+
+#~ msgid "Added a comment"
+#~ msgstr "Añadir un comentario"
+
+#~ msgid "Added a comment: %s"
+#~ msgstr "Comentario añadido: %s"
+
+#~ msgid "Comments"
+#~ msgstr "Comentarios"
+
#~ msgid "processed ok at %s"
#~ msgstr "proceso completado con éxito a %s"
--
cgit v1.2.3
From 301733ba13f8fdaf53df0a6058f92d305507a97f Mon Sep 17 00:00:00 2001
From: Joey Hess
Date: Fri, 19 Dec 2008 17:33:40 -0500
Subject: fix comment permalink to always point to comment parent page
---
IkiWiki/Plugin/comments.pm | 2 +-
doc/todo/comments.mdwn | 4 +---
2 files changed, 2 insertions(+), 4 deletions(-)
(limited to 'doc')
diff --git a/IkiWiki/Plugin/comments.pm b/IkiWiki/Plugin/comments.pm
index 50c048fee..c50729a34 100644
--- a/IkiWiki/Plugin/comments.pm
+++ b/IkiWiki/Plugin/comments.pm
@@ -194,7 +194,7 @@ sub preprocess {
}
if ($params{page} =~ m/\/(\Q$config{comments_pagename}\E\d+)$/) {
- $pagestate{$page}{meta}{permalink} = urlto($params{destpage}, undef, 1).
+ $pagestate{$page}{meta}{permalink} = urlto(IkiWiki::dirname($params{page}), undef, 1).
"#".$params{page};
}
diff --git a/doc/todo/comments.mdwn b/doc/todo/comments.mdwn
index 81c2f2722..aa6b130dc 100644
--- a/doc/todo/comments.mdwn
+++ b/doc/todo/comments.mdwn
@@ -53,9 +53,7 @@ Known issues with the [[plugins/comments]] plugin:
(BTW, the rss feed in this situation seems ok; there the link element
points back to the parent page.
- > done
- > Er, no, I added a link but it does not go back to the parent page of a
- > comment if the comment is inlined elsewhere. --[[Joey]]
+ > done --[[Joey]]
* It would be useful to have a pagespec that always matches all comments on
pages matching a glob. Something like `comment(blog/*)`.
--
cgit v1.2.3
From 3d7d29791ea5ede8838fc53a5cb17a88b2c8f6c3 Mon Sep 17 00:00:00 2001
From: "http://weakish.int.eu.org/"
Date: Sat, 20 Dec 2008 04:18:56 -0500
Subject: vimperator can do this, too.
---
doc/tips/using_the_web_interface_with_a_real_text_editor.mdwn | 2 ++
1 file changed, 2 insertions(+)
(limited to 'doc')
diff --git a/doc/tips/using_the_web_interface_with_a_real_text_editor.mdwn b/doc/tips/using_the_web_interface_with_a_real_text_editor.mdwn
index d696bacdb..1c9ecdc8c 100644
--- a/doc/tips/using_the_web_interface_with_a_real_text_editor.mdwn
+++ b/doc/tips/using_the_web_interface_with_a_real_text_editor.mdwn
@@ -4,3 +4,5 @@ you to use a real text editor like Emacs or Vim to edit the contents of text
areas. This allows you to edit ikiwiki pages with a real text editor through
the ikiwiki web interface, rather than only with direct commit
access. --[[JoshTriplett]]
+
+For Firefox or Iceweasel users, the vimperator extension is also a good idea. You can press Ctrl-I in the insert mode of vimperator and switch to an external editor, e.g. Vim. --[[WeakishJiang]]
--
cgit v1.2.3
From 80884d33e0679471e3f53e1dbdae9333f5d4289b Mon Sep 17 00:00:00 2001
From: "http://weakish.int.eu.org/"
Date: Sat, 20 Dec 2008 04:20:58 -0500
Subject: initial page
---
doc/users/weakishjiang.mdwn | 1 +
1 file changed, 1 insertion(+)
create mode 100644 doc/users/weakishjiang.mdwn
(limited to 'doc')
diff --git a/doc/users/weakishjiang.mdwn b/doc/users/weakishjiang.mdwn
new file mode 100644
index 000000000..68296af2b
--- /dev/null
+++ b/doc/users/weakishjiang.mdwn
@@ -0,0 +1 @@
+[My blog](http://millenniumdark.blog.ubuntu.org.cn)
--
cgit v1.2.3
From 39e5de4e336d261cd370b24395f6a25f585b0a2e Mon Sep 17 00:00:00 2001
From: brush
Date: Sat, 20 Dec 2008 05:56:04 -0500
Subject: added details on cgi wrapper creation
---
doc/tips/DreamHost.mdwn | 2 ++
1 file changed, 2 insertions(+)
(limited to 'doc')
diff --git a/doc/tips/DreamHost.mdwn b/doc/tips/DreamHost.mdwn
index 6670f8090..7e483962a 100644
--- a/doc/tips/DreamHost.mdwn
+++ b/doc/tips/DreamHost.mdwn
@@ -150,6 +150,8 @@ Next, add your installed Perl module directory to the *libdir* parameter. It sh
libdir => "/home/.server/user/site/perl/lib/perl5/",
# CGI Wrapper
+The CGI wrapper file will be created automatically by "ikiwiki --setup path/to/setup", as long as you have inserted a valid filename to be created. On DreamHost, be careful about putting the ikiwiki.cgi file in a directory that has different owner/group than the file itself (such as the main site.domain.tld/ directory): this will cause suexec to fail.
+
The wrapper mode of "06755" doesn't seem to work. "755" appears to. However, this may be completely insecure and/or buggy, so if you know better than I, edit this doc and add it here.
# Pre-created SVN repository
--
cgit v1.2.3
From 4176c3483ddd3a12d57676c5ed6dfcc49796fbc0 Mon Sep 17 00:00:00 2001
From: brush
Date: Sat, 20 Dec 2008 05:58:00 -0500
Subject: minor edits
---
doc/tips/DreamHost.mdwn | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'doc')
diff --git a/doc/tips/DreamHost.mdwn b/doc/tips/DreamHost.mdwn
index 7e483962a..070638e3e 100644
--- a/doc/tips/DreamHost.mdwn
+++ b/doc/tips/DreamHost.mdwn
@@ -150,7 +150,7 @@ Next, add your installed Perl module directory to the *libdir* parameter. It sh
libdir => "/home/.server/user/site/perl/lib/perl5/",
# CGI Wrapper
-The CGI wrapper file will be created automatically by "ikiwiki --setup path/to/setup", as long as you have inserted a valid filename to be created. On DreamHost, be careful about putting the ikiwiki.cgi file in a directory that has different owner/group than the file itself (such as the main site.domain.tld/ directory): this will cause suexec to fail.
+The CGI wrapper file will be created automatically by "ikiwiki --setup path/to/setup", as long as you have inserted a valid filename to be created into the setup file. On DreamHost, be careful not to put the ikiwiki.cgi file in a directory that has different owner/group than the file itself (such as the main site.domain.tld/ directory): this will cause suexec to fail.
The wrapper mode of "06755" doesn't seem to work. "755" appears to. However, this may be completely insecure and/or buggy, so if you know better than I, edit this doc and add it here.
--
cgit v1.2.3
From 6828cd84a118e647b617d7fb2ef437587d83bd16 Mon Sep 17 00:00:00 2001
From: Joey Hess
Date: Sat, 20 Dec 2008 11:04:45 -0500
Subject: note
---
doc/tips/using_the_web_interface_with_a_real_text_editor.mdwn | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
(limited to 'doc')
diff --git a/doc/tips/using_the_web_interface_with_a_real_text_editor.mdwn b/doc/tips/using_the_web_interface_with_a_real_text_editor.mdwn
index 1c9ecdc8c..cf9327395 100644
--- a/doc/tips/using_the_web_interface_with_a_real_text_editor.mdwn
+++ b/doc/tips/using_the_web_interface_with_a_real_text_editor.mdwn
@@ -5,4 +5,9 @@ areas. This allows you to edit ikiwiki pages with a real text editor through
the ikiwiki web interface, rather than only with direct commit
access. --[[JoshTriplett]]
-For Firefox or Iceweasel users, the vimperator extension is also a good idea. You can press Ctrl-I in the insert mode of vimperator and switch to an external editor, e.g. Vim. --[[WeakishJiang]]
+For Firefox or Iceweasel users, the vimperator extension is also a good
+idea. You can press Ctrl-I in the insert mode of vimperator and switch to
+an external editor, e.g. Vim. --[[WeakishJiang]]
+
+Finally, with wikis configured to allow, [[untrusted_git_push]], you can
+ditch the browser altogether. --[[Joey]]
--
cgit v1.2.3
From ce58338e3d4b1429f255bd40893010d58794943f Mon Sep 17 00:00:00 2001
From: Joey Hess
Date: Sat, 20 Dec 2008 11:30:48 -0500
Subject: haskell
---
doc/users/weakishjiang.mdwn | 3 +++
1 file changed, 3 insertions(+)
(limited to 'doc')
diff --git a/doc/users/weakishjiang.mdwn b/doc/users/weakishjiang.mdwn
index 68296af2b..0cafb4653 100644
--- a/doc/users/weakishjiang.mdwn
+++ b/doc/users/weakishjiang.mdwn
@@ -1 +1,4 @@
[My blog](http://millenniumdark.blog.ubuntu.org.cn)
+
+> So, you're learning haskell. You know, I want to add support for haskell
+> external plugins to ikiwiki.. :-) --[[Joey]]
--
cgit v1.2.3
From f94665800c9353f2b0f190190c0490f51a897973 Mon Sep 17 00:00:00 2001
From: Simon McVittie
Date: Sat, 20 Dec 2008 17:39:55 +0000
Subject: comment.tmpl: make anon/OpenID/signed-in icons independent of smileys
---
doc/wikiicons/anonymous.png | Bin 0 -> 302 bytes
doc/wikiicons/openid.png | Bin 0 -> 297 bytes
doc/wikiicons/signedin.png | Bin 0 -> 370 bytes
templates/comment.tmpl | 6 +++---
4 files changed, 3 insertions(+), 3 deletions(-)
create mode 100644 doc/wikiicons/anonymous.png
create mode 100644 doc/wikiicons/openid.png
create mode 100644 doc/wikiicons/signedin.png
(limited to 'doc')
diff --git a/doc/wikiicons/anonymous.png b/doc/wikiicons/anonymous.png
new file mode 100644
index 000000000..df22152e6
Binary files /dev/null and b/doc/wikiicons/anonymous.png differ
diff --git a/doc/wikiicons/openid.png b/doc/wikiicons/openid.png
new file mode 100644
index 000000000..c5535c3de
Binary files /dev/null and b/doc/wikiicons/openid.png differ
diff --git a/doc/wikiicons/signedin.png b/doc/wikiicons/signedin.png
new file mode 100644
index 000000000..969908d39
Binary files /dev/null and b/doc/wikiicons/signedin.png differ
diff --git a/templates/comment.tmpl b/templates/comment.tmpl
index 3f2978675..2fb54fe7d 100644
--- a/templates/comment.tmpl
+++ b/templates/comment.tmpl
@@ -7,13 +7,13 @@ Posted by
-
-
@@ -31,7 +31,7 @@ Posted by
-
+
--
cgit v1.2.3
From 4b3d3f519d019f47087a62514799578de7cd7f2b Mon Sep 17 00:00:00 2001
From: "http://smcv.pseudorandom.co.uk/"
Date: Sat, 20 Dec 2008 13:03:44 -0500
Subject:
---
doc/todo/comments.mdwn | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
(limited to 'doc')
diff --git a/doc/todo/comments.mdwn b/doc/todo/comments.mdwn
index aa6b130dc..50fd89682 100644
--- a/doc/todo/comments.mdwn
+++ b/doc/todo/comments.mdwn
@@ -13,7 +13,10 @@ Known issues with the [[plugins/comments]] plugin:
> Done in my comments git branch --[[smcv]]
- > Not seeing it there, which branch? --[[Joey]]
+ > Not seeing it there, which branch? --[[Joey]]
+
+ >> Bah, git push --all is not the default... 'comments' branch now (I've also rebased it).
+ >> Sorry, I'm on mobile Internet at the moment... --[[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
@@ -22,6 +25,9 @@ Known issues with the [[plugins/comments]] plugin:
> {x} and {*} smileys for anonymous, OpenID and login respectively).
> --[[smcv]]
+ >> I've improved this to use independent icons from the wikiicons
+ >> directory (untested!) --[[smcv]]
+
* Should the comments be visually set off more from the page above?
Rather than just a horizontal rule, I'm thinking put the comments
in a box like is used for inlined pages.
--
cgit v1.2.3
From dd4dff03506c5c8f9dee1fa59548e4e653bb0053 Mon Sep 17 00:00:00 2001
From: "http://dtrt.org/"
Date: Sat, 20 Dec 2008 18:06:21 -0500
Subject: Workaround and possible cause
---
doc/bugs/inline_sort_order_and_meta_date_value.mdwn | 14 ++++++++++++++
1 file changed, 14 insertions(+)
(limited to 'doc')
diff --git a/doc/bugs/inline_sort_order_and_meta_date_value.mdwn b/doc/bugs/inline_sort_order_and_meta_date_value.mdwn
index e8befe8d5..6357acdee 100644
--- a/doc/bugs/inline_sort_order_and_meta_date_value.mdwn
+++ b/doc/bugs/inline_sort_order_and_meta_date_value.mdwn
@@ -26,3 +26,17 @@ If I instead include them using creation_year in the pagespec, they are ordered
contains the src used to reproduce this, the precise ikiwiki invocation (inside Makefile) and the results (dest).
-- [[users/Jon]]
+
+
+> On Ikiwiki 2.53.3 (Debian Lenny), my inlines are also sorted using mtime
+> by default -- despite what the [[documentation|/ikiwiki/directive/inline]]
+> says -- but setting the supposed default sort order manually produces the
+> correct results. For example, the following inline sorts my blog
+> entires using their meta date or ctime:
+>
+> inline pages="blog/*" show="10" sort="age"
+>
+> I'll try to look at the code this weekend and see if age is really the
+> default sort order.
+>
+> -- [David A. Harding](http://dtrt.org), 2008-12-20
--
cgit v1.2.3
From 1c918a4ec6d5b9597d147278dff0d78343629f55 Mon Sep 17 00:00:00 2001
From: Joey Hess
Date: Sat, 20 Dec 2008 18:14:49 -0500
Subject: response
---
.../inline_sort_order_and_meta_date_value.mdwn | 17 +++
po/bg.po | 170 +++++++++++++--------
po/cs.po | 170 +++++++++++++--------
po/da.po | 170 +++++++++++++--------
po/de.po | 132 ++++++++++------
po/es.po | 156 ++++++++++---------
po/fr.po | 132 ++++++++++------
po/gu.po | 170 +++++++++++++--------
po/ikiwiki.pot | 132 ++++++++++------
po/pl.po | 170 +++++++++++++--------
po/sv.po | 170 +++++++++++++--------
po/vi.po | 170 +++++++++++++--------
12 files changed, 1074 insertions(+), 685 deletions(-)
(limited to 'doc')
diff --git a/doc/bugs/inline_sort_order_and_meta_date_value.mdwn b/doc/bugs/inline_sort_order_and_meta_date_value.mdwn
index 6357acdee..79d17ada2 100644
--- a/doc/bugs/inline_sort_order_and_meta_date_value.mdwn
+++ b/doc/bugs/inline_sort_order_and_meta_date_value.mdwn
@@ -40,3 +40,20 @@ If I instead include them using creation_year in the pagespec, they are ordered
> default sort order.
>
> -- [David A. Harding](http://dtrt.org), 2008-12-20
+
+Here is the code. As you can see, sort="age" is equivilant to leaving
+out the sort option. --[[Joey]]
+
+ if (exists $params{sort} && $params{sort} eq 'title') {
+ @list=sort { pagetitle(basename($a)) cmp pagetitle(basename($b)) } @list;
+ }
+ elsif (exists $params{sort} && $params{sort} eq 'mtime') {
+ @list=sort { $pagemtime{$b} <=> $pagemtime{$a} } @list;
+ }
+ elsif (! exists $params{sort} || $params{sort} eq 'age') {
+ @list=sort { $pagectime{$b} <=> $pagectime{$a} } @list;
+ }
+ else {
+ return sprintf(gettext("unknown sort type %s"), $params{sort});
+ }
+
diff --git a/po/bg.po b/po/bg.po
index 19b0fff50..37e249012 100644
--- a/po/bg.po
+++ b/po/bg.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ikiwiki-bg\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-10-31 16:37-0400\n"
+"POT-Creation-Date: 2008-12-20 18:07-0500\n"
"PO-Revision-Date: 2007-01-12 01:19+0200\n"
"Last-Translator: Damyan Ivanov \n"
"Language-Team: Bulgarian \n"
@@ -24,7 +24,7 @@ msgstr "Първо трябва да влезете."
msgid "login failed, perhaps you need to turn on cookies?"
msgstr ""
-#: ../IkiWiki/CGI.pm:163 ../IkiWiki/Plugin/editpage.pm:350
+#: ../IkiWiki/CGI.pm:163 ../IkiWiki/CGI.pm:310
msgid "Your login session has expired."
msgstr ""
@@ -49,7 +49,7 @@ msgstr "Предпочитанията са запазени."
msgid "You are banned."
msgstr "Достъпът ви е забранен."
-#: ../IkiWiki/CGI.pm:385 ../IkiWiki/CGI.pm:386 ../IkiWiki.pm:1182
+#: ../IkiWiki/CGI.pm:401 ../IkiWiki/CGI.pm:402 ../IkiWiki.pm:1204
msgid "Error"
msgstr "Грешка"
@@ -66,63 +66,63 @@ msgstr ""
msgid "missing %s parameter"
msgstr "липсващ параметър „id” на шаблона"
-#: ../IkiWiki/Plugin/aggregate.pm:250
+#: ../IkiWiki/Plugin/aggregate.pm:251
msgid "new feed"
msgstr "нов източник"
-#: ../IkiWiki/Plugin/aggregate.pm:264
+#: ../IkiWiki/Plugin/aggregate.pm:265
msgid "posts"
msgstr "съобщения"
-#: ../IkiWiki/Plugin/aggregate.pm:266
+#: ../IkiWiki/Plugin/aggregate.pm:267
msgid "new"
msgstr "ново"
-#: ../IkiWiki/Plugin/aggregate.pm:429
+#: ../IkiWiki/Plugin/aggregate.pm:431
#, perl-format
msgid "expiring %s (%s days old)"
msgstr "премахване на „%s” (на %s дни)"
-#: ../IkiWiki/Plugin/aggregate.pm:436
+#: ../IkiWiki/Plugin/aggregate.pm:438
#, perl-format
msgid "expiring %s"
msgstr "премахване на „%s”"
-#: ../IkiWiki/Plugin/aggregate.pm:463
+#: ../IkiWiki/Plugin/aggregate.pm:465
#, perl-format
msgid "last checked %s"
msgstr ""
-#: ../IkiWiki/Plugin/aggregate.pm:467
+#: ../IkiWiki/Plugin/aggregate.pm:469
#, perl-format
msgid "checking feed %s ..."
msgstr "проверка на източника „%s”"
-#: ../IkiWiki/Plugin/aggregate.pm:472
+#: ../IkiWiki/Plugin/aggregate.pm:474
#, perl-format
msgid "could not find feed at %s"
msgstr "не е намерен източник на адрес „%s”"
-#: ../IkiWiki/Plugin/aggregate.pm:487
+#: ../IkiWiki/Plugin/aggregate.pm:493
#, fuzzy
msgid "feed not found"
msgstr "шаблонът „%s” не е намерен"
-#: ../IkiWiki/Plugin/aggregate.pm:498
+#: ../IkiWiki/Plugin/aggregate.pm:504
#, perl-format
msgid "(invalid UTF-8 stripped from feed)"
msgstr ""
-#: ../IkiWiki/Plugin/aggregate.pm:504
+#: ../IkiWiki/Plugin/aggregate.pm:512
#, perl-format
msgid "(feed entities escaped)"
msgstr ""
-#: ../IkiWiki/Plugin/aggregate.pm:510
+#: ../IkiWiki/Plugin/aggregate.pm:520
msgid "feed crashed XML::Feed!"
msgstr "данните от източника предизвикаха грешка в модула XML::Feed!"
-#: ../IkiWiki/Plugin/aggregate.pm:590
+#: ../IkiWiki/Plugin/aggregate.pm:601
#, perl-format
msgid "creating new page %s"
msgstr "създаване на нова страницa „%s”"
@@ -131,7 +131,7 @@ msgstr "създаване на нова страницa „%s”"
msgid "deleting bucket.."
msgstr ""
-#: ../IkiWiki/Plugin/amazon_s3.pm:38 ../ikiwiki.in:206
+#: ../IkiWiki/Plugin/amazon_s3.pm:38 ../ikiwiki.in:208
msgid "done"
msgstr "готово"
@@ -175,8 +175,8 @@ msgstr ""
msgid "automatic index generation"
msgstr ""
-#: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:261
-#: ../IkiWiki/Plugin/inline.pm:327 ../IkiWiki/Plugin/opendiscussion.pm:26
+#: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:260
+#: ../IkiWiki/Plugin/inline.pm:354 ../IkiWiki/Plugin/opendiscussion.pm:26
#: ../IkiWiki/Plugin/orphans.pm:37 ../IkiWiki/Render.pm:79
#: ../IkiWiki/Render.pm:149
msgid "discussion"
@@ -191,6 +191,61 @@ msgstr ""
msgid "There are no broken links!"
msgstr "Няма „счупени” връзки!"
+#: ../IkiWiki/Plugin/comments.pm:119 ../IkiWiki/Plugin/format.pm:23
+#, perl-format
+msgid "unsupported page format %s"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:124
+msgid "comment must have content"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:181
+msgid "Anonymous"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:243 ../IkiWiki/Plugin/recentchanges.pm:101
+#, fuzzy
+msgid "missing page"
+msgstr "липсващ параметър „id” на шаблона"
+
+#: ../IkiWiki/Plugin/comments.pm:245 ../IkiWiki/Plugin/recentchanges.pm:103
+#, perl-format
+msgid "The page %s does not exist."
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:334 ../IkiWiki/Plugin/editpage.pm:124
+msgid "bad page name"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:341
+#, fuzzy, perl-format
+msgid "commenting on %s"
+msgstr "създаване на %s"
+
+#: ../IkiWiki/Plugin/comments.pm:359
+#, perl-format
+msgid "page '%s' doesn't exist, so you can't comment"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:366
+#, perl-format
+msgid "comments on page '%s' are closed"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:468
+msgid "Added a comment"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:472
+#, perl-format
+msgid "Added a comment: %s"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:565
+msgid "Comments"
+msgstr ""
+
#: ../IkiWiki/Plugin/conditional.pm:27 ../IkiWiki/Plugin/cutpaste.pm:30
#: ../IkiWiki/Plugin/cutpaste.pm:45 ../IkiWiki/Plugin/cutpaste.pm:61
#: ../IkiWiki/Plugin/testpagespec.pm:26
@@ -212,23 +267,19 @@ msgstr ""
msgid "removing old preview %s"
msgstr "премахване на старата страница „%s”"
-#: ../IkiWiki/Plugin/editpage.pm:125
-msgid "bad page name"
-msgstr ""
-
-#: ../IkiWiki/Plugin/editpage.pm:141
+#: ../IkiWiki/Plugin/editpage.pm:140
#, perl-format
msgid "%s is not an editable page"
msgstr ""
-#: ../IkiWiki/Plugin/editpage.pm:317
+#: ../IkiWiki/Plugin/editpage.pm:316
#, perl-format
msgid "creating %s"
msgstr "създаване на %s"
-#: ../IkiWiki/Plugin/editpage.pm:335 ../IkiWiki/Plugin/editpage.pm:363
-#: ../IkiWiki/Plugin/editpage.pm:373 ../IkiWiki/Plugin/editpage.pm:408
-#: ../IkiWiki/Plugin/editpage.pm:453
+#: ../IkiWiki/Plugin/editpage.pm:334 ../IkiWiki/Plugin/editpage.pm:353
+#: ../IkiWiki/Plugin/editpage.pm:363 ../IkiWiki/Plugin/editpage.pm:398
+#: ../IkiWiki/Plugin/editpage.pm:443
#, perl-format
msgid "editing %s"
msgstr "промяна на %s"
@@ -253,15 +304,10 @@ msgstr ""
msgid "failed to process"
msgstr "грешка при обработване на шаблона"
-#: ../IkiWiki/Plugin/format.pm:22
+#: ../IkiWiki/Plugin/format.pm:20
msgid "must specify format and text"
msgstr ""
-#: ../IkiWiki/Plugin/format.pm:25
-#, perl-format
-msgid "unsupported page format %s"
-msgstr ""
-
#: ../IkiWiki/Plugin/fortune.pm:27
msgid "fortune failed"
msgstr "грешшка в приставката „fortune”"
@@ -330,18 +376,18 @@ msgstr "грешка при запис на файла „%s”: %s"
msgid "failed to determine size of image %s"
msgstr "грешка при запис на файла „%s”: %s"
-#: ../IkiWiki/Plugin/inline.pm:93
+#: ../IkiWiki/Plugin/inline.pm:92
msgid "Must specify url to wiki with --url when using --rss or --atom"
msgstr ""
"Когато се използва „--rss” или „--atom” трябва да се укаже и "
"местоположението на уикито посредством параметъра „--url”"
-#: ../IkiWiki/Plugin/inline.pm:139
+#: ../IkiWiki/Plugin/inline.pm:138
#, fuzzy
msgid "page editing not allowed"
msgstr "шаблонът „%s” не е намерен"
-#: ../IkiWiki/Plugin/inline.pm:156
+#: ../IkiWiki/Plugin/inline.pm:155
#, fuzzy
msgid "missing pages parameter"
msgstr "липсващ параметър „id” на шаблона"
@@ -351,20 +397,20 @@ msgstr "липсващ параметър „id” на шаблона"
msgid "unknown sort type %s"
msgstr "непознат вид сортиране „%s”"
-#: ../IkiWiki/Plugin/inline.pm:285
+#: ../IkiWiki/Plugin/inline.pm:307
msgid "Add a new post titled:"
msgstr ""
-#: ../IkiWiki/Plugin/inline.pm:301
+#: ../IkiWiki/Plugin/inline.pm:327
#, perl-format
msgid "nonexistant template %s"
msgstr ""
-#: ../IkiWiki/Plugin/inline.pm:335 ../IkiWiki/Render.pm:83
+#: ../IkiWiki/Plugin/inline.pm:362 ../IkiWiki/Render.pm:83
msgid "Discussion"
msgstr "Дискусия"
-#: ../IkiWiki/Plugin/inline.pm:572
+#: ../IkiWiki/Plugin/inline.pm:587
msgid "RPC::XML::Client not found, not pinging"
msgstr "модулът „RPC::XML::Client” не е намерен; източникът не е проверен"
@@ -390,17 +436,17 @@ msgstr ""
"грешка при зареждането на perl-модула „Markdown.pm” (%s) или „/usr/bin/"
"markdown” (%s)"
-#: ../IkiWiki/Plugin/meta.pm:150
+#: ../IkiWiki/Plugin/meta.pm:151
#, fuzzy
msgid "stylesheet not found"
msgstr "шаблонът „%s” не е намерен"
-#: ../IkiWiki/Plugin/meta.pm:184
+#: ../IkiWiki/Plugin/meta.pm:185
#, fuzzy
msgid "redir page not found"
msgstr "шаблонът „%s” не е намерен"
-#: ../IkiWiki/Plugin/meta.pm:197
+#: ../IkiWiki/Plugin/meta.pm:198
#, fuzzy
msgid "redir cycle is not allowed"
msgstr "шаблонът „%s” не е намерен"
@@ -586,17 +632,7 @@ msgstr ""
msgid "need either `percent` or `totalpages` and `donepages` parameters"
msgstr ""
-#: ../IkiWiki/Plugin/recentchanges.pm:100
-#, fuzzy
-msgid "missing page"
-msgstr "липсващ параметър „id” на шаблона"
-
-#: ../IkiWiki/Plugin/recentchanges.pm:102
-#, perl-format
-msgid "The page %s does not exist."
-msgstr ""
-
-#: ../IkiWiki/Plugin/recentchangesdiff.pm:36
+#: ../IkiWiki/Plugin/recentchangesdiff.pm:37
msgid "(Diff truncated)"
msgstr ""
@@ -946,19 +982,19 @@ msgstr "не е указан файл на обвивката"
#. translators: The first parameter is a filename, and the second is
#. translators: a (probably not translated) error message.
-#: ../IkiWiki/Wrapper.pm:79
+#: ../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:135
+#: ../IkiWiki/Wrapper.pm:154
#, perl-format
msgid "failed to compile %s"
msgstr "крешка при компилиране на файла %s"
#. translators: The parameter is a filename.
-#: ../IkiWiki/Wrapper.pm:155
+#: ../IkiWiki/Wrapper.pm:174
#, perl-format
msgid "successfully generated %s"
msgstr "успешно генериране на %s"
@@ -971,43 +1007,43 @@ msgstr "формат: ikiwiki [опции] източник местоназна
msgid " ikiwiki --setup configfile"
msgstr ""
-#: ../ikiwiki.in:90
+#: ../ikiwiki.in:91
msgid "usage: --set var=value"
msgstr ""
-#: ../ikiwiki.in:138
+#: ../ikiwiki.in:139
msgid "generating wrappers.."
msgstr "генериране на обвивки..."
-#: ../ikiwiki.in:195
+#: ../ikiwiki.in:197
msgid "rebuilding wiki.."
msgstr "обновяване на уики..."
-#: ../ikiwiki.in:198
+#: ../ikiwiki.in:200
msgid "refreshing wiki.."
msgstr "осъвременяване на уики..."
-#: ../IkiWiki.pm:466
+#: ../IkiWiki.pm:480
msgid "Must specify url to wiki with --url when using --cgi"
msgstr ""
"При използване на пареметъра „--cgi” е необходимо да се укаже и "
"местоположението на уикито чрез параметъра „--url”"
-#: ../IkiWiki.pm:512
+#: ../IkiWiki.pm:526
msgid "cannot use multiple rcs plugins"
msgstr ""
-#: ../IkiWiki.pm:541
+#: ../IkiWiki.pm:555
#, perl-format
msgid "failed to load external plugin needed for %s plugin: %s"
msgstr ""
-#: ../IkiWiki.pm:1165
+#: ../IkiWiki.pm:1187
#, fuzzy, perl-format
msgid "preprocessing loop detected on %s at depth %i"
msgstr "открита е циклична завидимост при %s на „%s” на дълбочина %i"
-#: ../IkiWiki.pm:1678
+#: ../IkiWiki.pm:1688
msgid "yes"
msgstr ""
diff --git a/po/cs.po b/po/cs.po
index 6cbb0c596..7ea726c5a 100644
--- a/po/cs.po
+++ b/po/cs.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ikiwiki\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-10-31 16:37-0400\n"
+"POT-Creation-Date: 2008-12-20 18:07-0500\n"
"PO-Revision-Date: 2007-05-09 21:21+0200\n"
"Last-Translator: Miroslav Kure \n"
"Language-Team: Czech \n"
@@ -23,7 +23,7 @@ msgstr "Nejprve se musíte přihlásit."
msgid "login failed, perhaps you need to turn on cookies?"
msgstr "přihlášení selhalo; možná si musíte povolit cookies?"
-#: ../IkiWiki/CGI.pm:163 ../IkiWiki/Plugin/editpage.pm:350
+#: ../IkiWiki/CGI.pm:163 ../IkiWiki/CGI.pm:310
msgid "Your login session has expired."
msgstr ""
@@ -47,7 +47,7 @@ msgstr "Nastavení uloženo."
msgid "You are banned."
msgstr "Jste vyhoštěni."
-#: ../IkiWiki/CGI.pm:385 ../IkiWiki/CGI.pm:386 ../IkiWiki.pm:1182
+#: ../IkiWiki/CGI.pm:401 ../IkiWiki/CGI.pm:402 ../IkiWiki.pm:1204
msgid "Error"
msgstr "Chyba"
@@ -64,62 +64,62 @@ msgstr ""
msgid "missing %s parameter"
msgstr "chybí parametr %s"
-#: ../IkiWiki/Plugin/aggregate.pm:250
+#: ../IkiWiki/Plugin/aggregate.pm:251
msgid "new feed"
msgstr "nový zdroj"
-#: ../IkiWiki/Plugin/aggregate.pm:264
+#: ../IkiWiki/Plugin/aggregate.pm:265
msgid "posts"
msgstr "příspěvky"
-#: ../IkiWiki/Plugin/aggregate.pm:266
+#: ../IkiWiki/Plugin/aggregate.pm:267
msgid "new"
msgstr "nový"
-#: ../IkiWiki/Plugin/aggregate.pm:429
+#: ../IkiWiki/Plugin/aggregate.pm:431
#, perl-format
msgid "expiring %s (%s days old)"
msgstr "expiruji %s (stará %s dnů)"
-#: ../IkiWiki/Plugin/aggregate.pm:436
+#: ../IkiWiki/Plugin/aggregate.pm:438
#, perl-format
msgid "expiring %s"
msgstr "expiruji %s"
-#: ../IkiWiki/Plugin/aggregate.pm:463
+#: ../IkiWiki/Plugin/aggregate.pm:465
#, perl-format
msgid "last checked %s"
msgstr ""
-#: ../IkiWiki/Plugin/aggregate.pm:467
+#: ../IkiWiki/Plugin/aggregate.pm:469
#, perl-format
msgid "checking feed %s ..."
msgstr "kontroluji zdroj %s ..."
-#: ../IkiWiki/Plugin/aggregate.pm:472
+#: ../IkiWiki/Plugin/aggregate.pm:474
#, perl-format
msgid "could not find feed at %s"
msgstr "nemohu najít zdroj na %s"
-#: ../IkiWiki/Plugin/aggregate.pm:487
+#: ../IkiWiki/Plugin/aggregate.pm:493
msgid "feed not found"
msgstr "zdroj nebyl nalezen"
-#: ../IkiWiki/Plugin/aggregate.pm:498
+#: ../IkiWiki/Plugin/aggregate.pm:504
#, perl-format
msgid "(invalid UTF-8 stripped from feed)"
msgstr "(neplatné UTF-8 bylo ze zdroje odstraněno)"
-#: ../IkiWiki/Plugin/aggregate.pm:504
+#: ../IkiWiki/Plugin/aggregate.pm:512
#, perl-format
msgid "(feed entities escaped)"
msgstr ""
-#: ../IkiWiki/Plugin/aggregate.pm:510
+#: ../IkiWiki/Plugin/aggregate.pm:520
msgid "feed crashed XML::Feed!"
msgstr "zdroj shodil XML::Feed!"
-#: ../IkiWiki/Plugin/aggregate.pm:590
+#: ../IkiWiki/Plugin/aggregate.pm:601
#, perl-format
msgid "creating new page %s"
msgstr "vytvářím novou stránku %s"
@@ -128,7 +128,7 @@ msgstr "vytvářím novou stránku %s"
msgid "deleting bucket.."
msgstr ""
-#: ../IkiWiki/Plugin/amazon_s3.pm:38 ../ikiwiki.in:206
+#: ../IkiWiki/Plugin/amazon_s3.pm:38 ../ikiwiki.in:208
msgid "done"
msgstr "hotovo"
@@ -172,8 +172,8 @@ msgstr ""
msgid "automatic index generation"
msgstr ""
-#: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:261
-#: ../IkiWiki/Plugin/inline.pm:327 ../IkiWiki/Plugin/opendiscussion.pm:26
+#: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:260
+#: ../IkiWiki/Plugin/inline.pm:354 ../IkiWiki/Plugin/opendiscussion.pm:26
#: ../IkiWiki/Plugin/orphans.pm:37 ../IkiWiki/Render.pm:79
#: ../IkiWiki/Render.pm:149
msgid "discussion"
@@ -188,6 +188,61 @@ msgstr ""
msgid "There are no broken links!"
msgstr "Žádné porušené odkazy!"
+#: ../IkiWiki/Plugin/comments.pm:119 ../IkiWiki/Plugin/format.pm:23
+#, perl-format
+msgid "unsupported page format %s"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:124
+msgid "comment must have content"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:181
+msgid "Anonymous"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:243 ../IkiWiki/Plugin/recentchanges.pm:101
+#, fuzzy
+msgid "missing page"
+msgstr "chybí hodnoty"
+
+#: ../IkiWiki/Plugin/comments.pm:245 ../IkiWiki/Plugin/recentchanges.pm:103
+#, perl-format
+msgid "The page %s does not exist."
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:334 ../IkiWiki/Plugin/editpage.pm:124
+msgid "bad page name"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:341
+#, fuzzy, perl-format
+msgid "commenting on %s"
+msgstr "vytvářím %s"
+
+#: ../IkiWiki/Plugin/comments.pm:359
+#, perl-format
+msgid "page '%s' doesn't exist, so you can't comment"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:366
+#, perl-format
+msgid "comments on page '%s' are closed"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:468
+msgid "Added a comment"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:472
+#, perl-format
+msgid "Added a comment: %s"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:565
+msgid "Comments"
+msgstr ""
+
#: ../IkiWiki/Plugin/conditional.pm:27 ../IkiWiki/Plugin/cutpaste.pm:30
#: ../IkiWiki/Plugin/cutpaste.pm:45 ../IkiWiki/Plugin/cutpaste.pm:61
#: ../IkiWiki/Plugin/testpagespec.pm:26
@@ -209,23 +264,19 @@ msgstr ""
msgid "removing old preview %s"
msgstr "odstraňuji starou stránku %s"
-#: ../IkiWiki/Plugin/editpage.pm:125
-msgid "bad page name"
-msgstr ""
-
-#: ../IkiWiki/Plugin/editpage.pm:141
+#: ../IkiWiki/Plugin/editpage.pm:140
#, perl-format
msgid "%s is not an editable page"
msgstr "%s není editovatelná stránka"
-#: ../IkiWiki/Plugin/editpage.pm:317
+#: ../IkiWiki/Plugin/editpage.pm:316
#, perl-format
msgid "creating %s"
msgstr "vytvářím %s"
-#: ../IkiWiki/Plugin/editpage.pm:335 ../IkiWiki/Plugin/editpage.pm:363
-#: ../IkiWiki/Plugin/editpage.pm:373 ../IkiWiki/Plugin/editpage.pm:408
-#: ../IkiWiki/Plugin/editpage.pm:453
+#: ../IkiWiki/Plugin/editpage.pm:334 ../IkiWiki/Plugin/editpage.pm:353
+#: ../IkiWiki/Plugin/editpage.pm:363 ../IkiWiki/Plugin/editpage.pm:398
+#: ../IkiWiki/Plugin/editpage.pm:443
#, perl-format
msgid "editing %s"
msgstr "upravuji %s"
@@ -250,15 +301,10 @@ msgstr ""
msgid "failed to process"
msgstr "nepodařilo se zpracovat:"
-#: ../IkiWiki/Plugin/format.pm:22
+#: ../IkiWiki/Plugin/format.pm:20
msgid "must specify format and text"
msgstr ""
-#: ../IkiWiki/Plugin/format.pm:25
-#, perl-format
-msgid "unsupported page format %s"
-msgstr ""
-
#: ../IkiWiki/Plugin/fortune.pm:27
msgid "fortune failed"
msgstr "fortune selhal"
@@ -325,16 +371,16 @@ msgstr "nelze změnit velikost: %s"
msgid "failed to determine size of image %s"
msgstr "nelze změnit velikost: %s"
-#: ../IkiWiki/Plugin/inline.pm:93
+#: ../IkiWiki/Plugin/inline.pm:92
msgid "Must specify url to wiki with --url when using --rss or --atom"
msgstr "Při používání --rss nebo --atom musíte pomocí --url zadat url k wiki"
-#: ../IkiWiki/Plugin/inline.pm:139
+#: ../IkiWiki/Plugin/inline.pm:138
#, fuzzy
msgid "page editing not allowed"
msgstr "zdroj nebyl nalezen"
-#: ../IkiWiki/Plugin/inline.pm:156
+#: ../IkiWiki/Plugin/inline.pm:155
#, fuzzy
msgid "missing pages parameter"
msgstr "chybí parametr %s"
@@ -344,20 +390,20 @@ msgstr "chybí parametr %s"
msgid "unknown sort type %s"
msgstr "neznámý typ řazení %s"
-#: ../IkiWiki/Plugin/inline.pm:285
+#: ../IkiWiki/Plugin/inline.pm:307
msgid "Add a new post titled:"
msgstr "Přidat nový příspěvek nazvaný:"
-#: ../IkiWiki/Plugin/inline.pm:301
+#: ../IkiWiki/Plugin/inline.pm:327
#, perl-format
msgid "nonexistant template %s"
msgstr "neexistující šablona %s"
-#: ../IkiWiki/Plugin/inline.pm:335 ../IkiWiki/Render.pm:83
+#: ../IkiWiki/Plugin/inline.pm:362 ../IkiWiki/Render.pm:83
msgid "Discussion"
msgstr "Diskuse"
-#: ../IkiWiki/Plugin/inline.pm:572
+#: ../IkiWiki/Plugin/inline.pm:587
msgid "RPC::XML::Client not found, not pinging"
msgstr "RPC::XML::Client nebyl nalezen, nepinkám"
@@ -380,16 +426,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:150
+#: ../IkiWiki/Plugin/meta.pm:151
msgid "stylesheet not found"
msgstr "styl nebyl nalezen"
-#: ../IkiWiki/Plugin/meta.pm:184
+#: ../IkiWiki/Plugin/meta.pm:185
#, fuzzy
msgid "redir page not found"
msgstr "zdroj nebyl nalezen"
-#: ../IkiWiki/Plugin/meta.pm:197
+#: ../IkiWiki/Plugin/meta.pm:198
#, fuzzy
msgid "redir cycle is not allowed"
msgstr "zdroj nebyl nalezen"
@@ -575,17 +621,7 @@ msgstr ""
msgid "need either `percent` or `totalpages` and `donepages` parameters"
msgstr ""
-#: ../IkiWiki/Plugin/recentchanges.pm:100
-#, fuzzy
-msgid "missing page"
-msgstr "chybí hodnoty"
-
-#: ../IkiWiki/Plugin/recentchanges.pm:102
-#, perl-format
-msgid "The page %s does not exist."
-msgstr ""
-
-#: ../IkiWiki/Plugin/recentchangesdiff.pm:36
+#: ../IkiWiki/Plugin/recentchangesdiff.pm:37
msgid "(Diff truncated)"
msgstr ""
@@ -927,19 +963,19 @@ msgstr "jméno souboru s obalem nebylo zadáno"
#. translators: The first parameter is a filename, and the second is
#. translators: a (probably not translated) error message.
-#: ../IkiWiki/Wrapper.pm:79
+#: ../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:135
+#: ../IkiWiki/Wrapper.pm:154
#, perl-format
msgid "failed to compile %s"
msgstr "nelze zkompilovat %s"
#. translators: The parameter is a filename.
-#: ../IkiWiki/Wrapper.pm:155
+#: ../IkiWiki/Wrapper.pm:174
#, perl-format
msgid "successfully generated %s"
msgstr "%s byl úspěšně vytvořen"
@@ -952,41 +988,41 @@ msgstr "použití: ikiwiki [volby] zdroj cíl"
msgid " ikiwiki --setup configfile"
msgstr ""
-#: ../ikiwiki.in:90
+#: ../ikiwiki.in:91
msgid "usage: --set var=value"
msgstr ""
-#: ../ikiwiki.in:138
+#: ../ikiwiki.in:139
msgid "generating wrappers.."
msgstr "generuji obaly..."
-#: ../ikiwiki.in:195
+#: ../ikiwiki.in:197
msgid "rebuilding wiki.."
msgstr "znovu vytvářím wiki..."
-#: ../ikiwiki.in:198
+#: ../ikiwiki.in:200
msgid "refreshing wiki.."
msgstr "obnovuji wiki..."
-#: ../IkiWiki.pm:466
+#: ../IkiWiki.pm:480
msgid "Must specify url to wiki with --url when using --cgi"
msgstr "Při použití --cgi musíte pomocí --url zadat url k wiki"
-#: ../IkiWiki.pm:512
+#: ../IkiWiki.pm:526
msgid "cannot use multiple rcs plugins"
msgstr ""
-#: ../IkiWiki.pm:541
+#: ../IkiWiki.pm:555
#, perl-format
msgid "failed to load external plugin needed for %s plugin: %s"
msgstr ""
-#: ../IkiWiki.pm:1165
+#: ../IkiWiki.pm:1187
#, 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:1678
+#: ../IkiWiki.pm:1688
msgid "yes"
msgstr ""
diff --git a/po/da.po b/po/da.po
index 6c3ed3e53..4a016233a 100644
--- a/po/da.po
+++ b/po/da.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ikiwiki\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-10-31 16:37-0400\n"
+"POT-Creation-Date: 2008-12-20 18:07-0500\n"
"PO-Revision-Date: 2008-10-22 19:13+0100\n"
"Last-Translator: Jonas Smedegaard \n"
"Language-Team: None\n"
@@ -27,7 +27,7 @@ msgstr "Du skal først logge på."
msgid "login failed, perhaps you need to turn on cookies?"
msgstr "Pålogning mislykkedes, måske skal du tillade infokager (cookies)?"
-#: ../IkiWiki/CGI.pm:163 ../IkiWiki/Plugin/editpage.pm:350
+#: ../IkiWiki/CGI.pm:163 ../IkiWiki/CGI.pm:310
msgid "Your login session has expired."
msgstr "Din kørsel (login session) er udløbet"
@@ -51,7 +51,7 @@ msgstr "Indstillinger gemt"
msgid "You are banned."
msgstr "Du er banlyst."
-#: ../IkiWiki/CGI.pm:385 ../IkiWiki/CGI.pm:386 ../IkiWiki.pm:1182
+#: ../IkiWiki/CGI.pm:401 ../IkiWiki/CGI.pm:402 ../IkiWiki.pm:1204
msgid "Error"
msgstr "Fejl"
@@ -68,62 +68,62 @@ msgstr "Intet at gøre lige nu, alle fødninger er tidssvarende!"
msgid "missing %s parameter"
msgstr "mangler parametren %s"
-#: ../IkiWiki/Plugin/aggregate.pm:250
+#: ../IkiWiki/Plugin/aggregate.pm:251
msgid "new feed"
msgstr "ny fødning"
-#: ../IkiWiki/Plugin/aggregate.pm:264
+#: ../IkiWiki/Plugin/aggregate.pm:265
msgid "posts"
msgstr "indlæg"
-#: ../IkiWiki/Plugin/aggregate.pm:266
+#: ../IkiWiki/Plugin/aggregate.pm:267
msgid "new"
msgstr "nyt"
-#: ../IkiWiki/Plugin/aggregate.pm:429
+#: ../IkiWiki/Plugin/aggregate.pm:431
#, perl-format
msgid "expiring %s (%s days old)"
msgstr "udløber %s (%s dage gammel)"
-#: ../IkiWiki/Plugin/aggregate.pm:436
+#: ../IkiWiki/Plugin/aggregate.pm:438
#, perl-format
msgid "expiring %s"
msgstr "udløber %s"
-#: ../IkiWiki/Plugin/aggregate.pm:463
+#: ../IkiWiki/Plugin/aggregate.pm:465
#, perl-format
msgid "last checked %s"
msgstr ""
-#: ../IkiWiki/Plugin/aggregate.pm:467
+#: ../IkiWiki/Plugin/aggregate.pm:469
#, perl-format
msgid "checking feed %s ..."
msgstr "undersøger fødning %s ..."
-#: ../IkiWiki/Plugin/aggregate.pm:472
+#: ../IkiWiki/Plugin/aggregate.pm:474
#, perl-format
msgid "could not find feed at %s"
msgstr "kunne ikke finde fødning ved %s"
-#: ../IkiWiki/Plugin/aggregate.pm:487
+#: ../IkiWiki/Plugin/aggregate.pm:493
msgid "feed not found"
msgstr "fødning ikke fundet"
-#: ../IkiWiki/Plugin/aggregate.pm:498
+#: ../IkiWiki/Plugin/aggregate.pm:504
#, perl-format
msgid "(invalid UTF-8 stripped from feed)"
msgstr "(defekt UTF-8 fjernet fra fødning)"
-#: ../IkiWiki/Plugin/aggregate.pm:504
+#: ../IkiWiki/Plugin/aggregate.pm:512
#, perl-format
msgid "(feed entities escaped)"
msgstr "(fødningselementer omgået (escaped))"
-#: ../IkiWiki/Plugin/aggregate.pm:510
+#: ../IkiWiki/Plugin/aggregate.pm:520
msgid "feed crashed XML::Feed!"
msgstr "fødning fik XML::Feed til at bryde sammen!"
-#: ../IkiWiki/Plugin/aggregate.pm:590
+#: ../IkiWiki/Plugin/aggregate.pm:601
#, perl-format
msgid "creating new page %s"
msgstr "opretter ny side %s"
@@ -132,7 +132,7 @@ msgstr "opretter ny side %s"
msgid "deleting bucket.."
msgstr "sletter bundt.."
-#: ../IkiWiki/Plugin/amazon_s3.pm:38 ../ikiwiki.in:206
+#: ../IkiWiki/Plugin/amazon_s3.pm:38 ../ikiwiki.in:208
msgid "done"
msgstr "færdig"
@@ -174,8 +174,8 @@ msgstr "vedhæftningsoplægning"
msgid "automatic index generation"
msgstr "automatisk indeks-dannelse"
-#: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:261
-#: ../IkiWiki/Plugin/inline.pm:327 ../IkiWiki/Plugin/opendiscussion.pm:26
+#: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:260
+#: ../IkiWiki/Plugin/inline.pm:354 ../IkiWiki/Plugin/opendiscussion.pm:26
#: ../IkiWiki/Plugin/orphans.pm:37 ../IkiWiki/Render.pm:79
#: ../IkiWiki/Render.pm:149
msgid "discussion"
@@ -190,6 +190,61 @@ msgstr "%s fra %s"
msgid "There are no broken links!"
msgstr "Ingen henvisninger der ikker fungerer!"
+#: ../IkiWiki/Plugin/comments.pm:119 ../IkiWiki/Plugin/format.pm:23
+#, fuzzy, perl-format
+msgid "unsupported page format %s"
+msgstr "revisionskontrolsystem %s ikke understøttet"
+
+#: ../IkiWiki/Plugin/comments.pm:124
+msgid "comment must have content"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:181
+msgid "Anonymous"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:243 ../IkiWiki/Plugin/recentchanges.pm:101
+msgid "missing page"
+msgstr "manglende side"
+
+#: ../IkiWiki/Plugin/comments.pm:245 ../IkiWiki/Plugin/recentchanges.pm:103
+#, perl-format
+msgid "The page %s does not exist."
+msgstr "Siden %s eksisterer ikke."
+
+#: ../IkiWiki/Plugin/comments.pm:334 ../IkiWiki/Plugin/editpage.pm:124
+#, fuzzy
+msgid "bad page name"
+msgstr "dårligt vedhæftningsfilnavn"
+
+#: ../IkiWiki/Plugin/comments.pm:341
+#, fuzzy, perl-format
+msgid "commenting on %s"
+msgstr "opretter %s"
+
+#: ../IkiWiki/Plugin/comments.pm:359
+#, perl-format
+msgid "page '%s' doesn't exist, so you can't comment"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:366
+#, perl-format
+msgid "comments on page '%s' are closed"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:468
+msgid "Added a comment"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:472
+#, perl-format
+msgid "Added a comment: %s"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:565
+msgid "Comments"
+msgstr ""
+
#: ../IkiWiki/Plugin/conditional.pm:27 ../IkiWiki/Plugin/cutpaste.pm:30
#: ../IkiWiki/Plugin/cutpaste.pm:45 ../IkiWiki/Plugin/cutpaste.pm:61
#: ../IkiWiki/Plugin/testpagespec.pm:26
@@ -211,24 +266,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:125
-#, fuzzy
-msgid "bad page name"
-msgstr "dårligt vedhæftningsfilnavn"
-
-#: ../IkiWiki/Plugin/editpage.pm:141
+#: ../IkiWiki/Plugin/editpage.pm:140
#, perl-format
msgid "%s is not an editable page"
msgstr "%s er ikke en redigérbar side"
-#: ../IkiWiki/Plugin/editpage.pm:317
+#: ../IkiWiki/Plugin/editpage.pm:316
#, perl-format
msgid "creating %s"
msgstr "opretter %s"
-#: ../IkiWiki/Plugin/editpage.pm:335 ../IkiWiki/Plugin/editpage.pm:363
-#: ../IkiWiki/Plugin/editpage.pm:373 ../IkiWiki/Plugin/editpage.pm:408
-#: ../IkiWiki/Plugin/editpage.pm:453
+#: ../IkiWiki/Plugin/editpage.pm:334 ../IkiWiki/Plugin/editpage.pm:353
+#: ../IkiWiki/Plugin/editpage.pm:363 ../IkiWiki/Plugin/editpage.pm:398
+#: ../IkiWiki/Plugin/editpage.pm:443
#, perl-format
msgid "editing %s"
msgstr "redigerer %s"
@@ -250,15 +300,10 @@ msgstr "redigeringsskabelon %s registreret for %s"
msgid "failed to process"
msgstr "dannelsen mislykkedes"
-#: ../IkiWiki/Plugin/format.pm:22
+#: ../IkiWiki/Plugin/format.pm:20
msgid "must specify format and text"
msgstr ""
-#: ../IkiWiki/Plugin/format.pm:25
-#, fuzzy, perl-format
-msgid "unsupported page format %s"
-msgstr "revisionskontrolsystem %s ikke understøttet"
-
#: ../IkiWiki/Plugin/fortune.pm:27
msgid "fortune failed"
msgstr "spådom (fortune) fejlede"
@@ -325,15 +370,15 @@ msgstr "Ændring af størrelse mislykkedes: %s"
msgid "failed to determine size of image %s"
msgstr "Vurdering af størrelse på billede mislykkedes: %s"
-#: ../IkiWiki/Plugin/inline.pm:93
+#: ../IkiWiki/Plugin/inline.pm:92
msgid "Must specify url to wiki with --url when using --rss or --atom"
msgstr "Skal angive url til wiki med --url når --rss eller --atom anvendes"
-#: ../IkiWiki/Plugin/inline.pm:139
+#: ../IkiWiki/Plugin/inline.pm:138
msgid "page editing not allowed"
msgstr "sideredigering er ikke tilladt"
-#: ../IkiWiki/Plugin/inline.pm:156
+#: ../IkiWiki/Plugin/inline.pm:155
msgid "missing pages parameter"
msgstr "mangler pages-parametren"
@@ -342,20 +387,20 @@ msgstr "mangler pages-parametren"
msgid "unknown sort type %s"
msgstr "ukendt sorteringsform %s"
-#: ../IkiWiki/Plugin/inline.pm:285
+#: ../IkiWiki/Plugin/inline.pm:307
msgid "Add a new post titled:"
msgstr "Tilføj nyt indlæg med følgende titel:"
-#: ../IkiWiki/Plugin/inline.pm:301
+#: ../IkiWiki/Plugin/inline.pm:327
#, perl-format
msgid "nonexistant template %s"
msgstr "ikke-eksisterende skabelon: %s"
-#: ../IkiWiki/Plugin/inline.pm:335 ../IkiWiki/Render.pm:83
+#: ../IkiWiki/Plugin/inline.pm:362 ../IkiWiki/Render.pm:83
msgid "Discussion"
msgstr "Diskussion"
-#: ../IkiWiki/Plugin/inline.pm:572
+#: ../IkiWiki/Plugin/inline.pm:587
msgid "RPC::XML::Client not found, not pinging"
msgstr "RPC::XML::Client ikke fundet, pinger ikke"
@@ -380,15 +425,15 @@ msgstr ""
"Indlæsning af perl-modulet Markdown.pm (%s) eller /usr/bin/markdown (%s) "
"mislykkedes"
-#: ../IkiWiki/Plugin/meta.pm:150
+#: ../IkiWiki/Plugin/meta.pm:151
msgid "stylesheet not found"
msgstr "stilsnit (stylesheet) ikke fundet"
-#: ../IkiWiki/Plugin/meta.pm:184
+#: ../IkiWiki/Plugin/meta.pm:185
msgid "redir page not found"
msgstr "henvisningsside ikke fundet"
-#: ../IkiWiki/Plugin/meta.pm:197
+#: ../IkiWiki/Plugin/meta.pm:198
msgid "redir cycle is not allowed"
msgstr "ring af henvisninger er ikke tilladt"
@@ -572,16 +617,7 @@ msgstr "ugyldigt procentværdi %s"
msgid "need either `percent` or `totalpages` and `donepages` parameters"
msgstr "Kræver enten parametre `percent` eller `totalpages og `donepages`"
-#: ../IkiWiki/Plugin/recentchanges.pm:100
-msgid "missing page"
-msgstr "manglende side"
-
-#: ../IkiWiki/Plugin/recentchanges.pm:102
-#, perl-format
-msgid "The page %s does not exist."
-msgstr "Siden %s eksisterer ikke."
-
-#: ../IkiWiki/Plugin/recentchangesdiff.pm:36
+#: ../IkiWiki/Plugin/recentchangesdiff.pm:37
msgid "(Diff truncated)"
msgstr "(Diff trunkeret)"
@@ -925,19 +961,19 @@ msgstr "wrapper-navn ikke angivet"
#. translators: The first parameter is a filename, and the second is
#. translators: a (probably not translated) error message.
-#: ../IkiWiki/Wrapper.pm:79
+#: ../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:135
+#: ../IkiWiki/Wrapper.pm:154
#, perl-format
msgid "failed to compile %s"
msgstr "kompilering af %s mislykkedes"
#. translators: The parameter is a filename.
-#: ../IkiWiki/Wrapper.pm:155
+#: ../IkiWiki/Wrapper.pm:174
#, perl-format
msgid "successfully generated %s"
msgstr "Korrekt bygget %s"
@@ -950,42 +986,42 @@ msgstr "brug: ikiwiki [valg] kilde mål"
msgid " ikiwiki --setup configfile"
msgstr " ikiwiki --setup opsætningsfil"
-#: ../ikiwiki.in:90
+#: ../ikiwiki.in:91
msgid "usage: --set var=value"
msgstr "brug: --set var=værdi"
-#: ../ikiwiki.in:138
+#: ../ikiwiki.in:139
msgid "generating wrappers.."
msgstr "bygger wrappers.."
-#: ../ikiwiki.in:195
+#: ../ikiwiki.in:197
msgid "rebuilding wiki.."
msgstr "genopbygger wiki..."
-#: ../ikiwiki.in:198
+#: ../ikiwiki.in:200
msgid "refreshing wiki.."
msgstr "genopfrisker wiki..."
-#: ../IkiWiki.pm:466
+#: ../IkiWiki.pm:480
msgid "Must specify url to wiki with --url when using --cgi"
msgstr "Skal angive url til wiki med --url når der bruges --cgi"
-#: ../IkiWiki.pm:512
+#: ../IkiWiki.pm:526
msgid "cannot use multiple rcs plugins"
msgstr "kan ikke bruge flere samtidige RCS-udvidelser"
-#: ../IkiWiki.pm:541
+#: ../IkiWiki.pm:555
#, perl-format
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:1165
+#: ../IkiWiki.pm:1187
#, perl-format
msgid "preprocessing loop detected on %s at depth %i"
msgstr "forudberegningssløkke fundet på %s ved dybde %i"
-#: ../IkiWiki.pm:1678
+#: ../IkiWiki.pm:1688
msgid "yes"
msgstr "ja"
diff --git a/po/de.po b/po/de.po
index d49d0c6ca..b0db15a6a 100644
--- a/po/de.po
+++ b/po/de.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ikiwiki 2.70\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-12-11 14:46-0500\n"
+"POT-Creation-Date: 2008-12-20 18:07-0500\n"
"PO-Revision-Date: 2008-11-20 19:58+0100\n"
"Last-Translator: Kai Wasserbäch \n"
"Language-Team: German \n"
@@ -23,7 +23,7 @@ msgid "login failed, perhaps you need to turn on cookies?"
msgstr ""
"Anmeldung fehlgeschlagen, möglicherweise müssen Sie zuvor Cookies aktivieren?"
-#: ../IkiWiki/CGI.pm:163 ../IkiWiki/Plugin/editpage.pm:350
+#: ../IkiWiki/CGI.pm:163 ../IkiWiki/CGI.pm:310
msgid "Your login session has expired."
msgstr "Ihre Anmeldung für die aktuelle Sitzung ist abgelaufen."
@@ -47,7 +47,7 @@ msgstr "Einstellungen gespeichert."
msgid "You are banned."
msgstr "Sie sind ausgeschlossen worden."
-#: ../IkiWiki/CGI.pm:385 ../IkiWiki/CGI.pm:386 ../IkiWiki.pm:1204
+#: ../IkiWiki/CGI.pm:401 ../IkiWiki/CGI.pm:402 ../IkiWiki.pm:1204
msgid "Error"
msgstr "Fehler"
@@ -64,62 +64,62 @@ msgstr "Derzeit nichts zu tun, alle Feeds sind auf dem neusten Stand!"
msgid "missing %s parameter"
msgstr "Parameter %s fehlt"
-#: ../IkiWiki/Plugin/aggregate.pm:250
+#: ../IkiWiki/Plugin/aggregate.pm:251
msgid "new feed"
msgstr "neuer Feed"
-#: ../IkiWiki/Plugin/aggregate.pm:264
+#: ../IkiWiki/Plugin/aggregate.pm:265
msgid "posts"
msgstr "Beiträge"
-#: ../IkiWiki/Plugin/aggregate.pm:266
+#: ../IkiWiki/Plugin/aggregate.pm:267
msgid "new"
msgstr "neu"
-#: ../IkiWiki/Plugin/aggregate.pm:429
+#: ../IkiWiki/Plugin/aggregate.pm:431
#, perl-format
msgid "expiring %s (%s days old)"
msgstr "%s läuft aus (%s Tage alt)"
-#: ../IkiWiki/Plugin/aggregate.pm:436
+#: ../IkiWiki/Plugin/aggregate.pm:438
#, perl-format
msgid "expiring %s"
msgstr "%s läuft aus"
-#: ../IkiWiki/Plugin/aggregate.pm:463
+#: ../IkiWiki/Plugin/aggregate.pm:465
#, perl-format
msgid "last checked %s"
msgstr "zuletzt überprüft am %s"
-#: ../IkiWiki/Plugin/aggregate.pm:467
+#: ../IkiWiki/Plugin/aggregate.pm:469
#, perl-format
msgid "checking feed %s ..."
msgstr "überprüfe Feed %s ..."
-#: ../IkiWiki/Plugin/aggregate.pm:472
+#: ../IkiWiki/Plugin/aggregate.pm:474
#, perl-format
msgid "could not find feed at %s"
msgstr "konnte Feed unter %s nicht finden"
-#: ../IkiWiki/Plugin/aggregate.pm:487
+#: ../IkiWiki/Plugin/aggregate.pm:493
msgid "feed not found"
msgstr "Feed nicht gefunden"
-#: ../IkiWiki/Plugin/aggregate.pm:498
+#: ../IkiWiki/Plugin/aggregate.pm:504
#, perl-format
msgid "(invalid UTF-8 stripped from feed)"
msgstr "(ungültiges UTF-8-Zeichen wurde aus dem Feed entfernt)"
-#: ../IkiWiki/Plugin/aggregate.pm:506
+#: ../IkiWiki/Plugin/aggregate.pm:512
#, perl-format
msgid "(feed entities escaped)"
msgstr "(Feed-Entitäten maskiert)"
-#: ../IkiWiki/Plugin/aggregate.pm:514
+#: ../IkiWiki/Plugin/aggregate.pm:520
msgid "feed crashed XML::Feed!"
msgstr "Feed führte zum Absturz von XML::Feed!"
-#: ../IkiWiki/Plugin/aggregate.pm:595
+#: ../IkiWiki/Plugin/aggregate.pm:601
#, perl-format
msgid "creating new page %s"
msgstr "erstelle neue Seite %s"
@@ -170,8 +170,8 @@ msgstr "Anhang hochladen"
msgid "automatic index generation"
msgstr "automatische Index-Erstellung"
-#: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:261
-#: ../IkiWiki/Plugin/inline.pm:344 ../IkiWiki/Plugin/opendiscussion.pm:26
+#: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:260
+#: ../IkiWiki/Plugin/inline.pm:354 ../IkiWiki/Plugin/opendiscussion.pm:26
#: ../IkiWiki/Plugin/orphans.pm:37 ../IkiWiki/Render.pm:79
#: ../IkiWiki/Render.pm:149
msgid "discussion"
@@ -186,6 +186,60 @@ msgstr "%s von %s"
msgid "There are no broken links!"
msgstr "Es gibt keine ungültigen Links!"
+#: ../IkiWiki/Plugin/comments.pm:119 ../IkiWiki/Plugin/format.pm:23
+#, perl-format
+msgid "unsupported page format %s"
+msgstr "nicht unterstütztes Seitenformat %s"
+
+#: ../IkiWiki/Plugin/comments.pm:124
+msgid "comment must have content"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:181
+msgid "Anonymous"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:243 ../IkiWiki/Plugin/recentchanges.pm:101
+msgid "missing page"
+msgstr "fehlende Seite"
+
+#: ../IkiWiki/Plugin/comments.pm:245 ../IkiWiki/Plugin/recentchanges.pm:103
+#, perl-format
+msgid "The page %s does not exist."
+msgstr "Die Seite %s existiert nicht."
+
+#: ../IkiWiki/Plugin/comments.pm:334 ../IkiWiki/Plugin/editpage.pm:124
+msgid "bad page name"
+msgstr "fehlerhafter Seitenname"
+
+#: ../IkiWiki/Plugin/comments.pm:341
+#, fuzzy, perl-format
+msgid "commenting on %s"
+msgstr "erstelle %s"
+
+#: ../IkiWiki/Plugin/comments.pm:359
+#, perl-format
+msgid "page '%s' doesn't exist, so you can't comment"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:366
+#, perl-format
+msgid "comments on page '%s' are closed"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:468
+msgid "Added a comment"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:472
+#, perl-format
+msgid "Added a comment: %s"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:565
+msgid "Comments"
+msgstr ""
+
#: ../IkiWiki/Plugin/conditional.pm:27 ../IkiWiki/Plugin/cutpaste.pm:30
#: ../IkiWiki/Plugin/cutpaste.pm:45 ../IkiWiki/Plugin/cutpaste.pm:61
#: ../IkiWiki/Plugin/testpagespec.pm:26
@@ -207,23 +261,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:125
-msgid "bad page name"
-msgstr "fehlerhafter Seitenname"
-
-#: ../IkiWiki/Plugin/editpage.pm:141
+#: ../IkiWiki/Plugin/editpage.pm:140
#, perl-format
msgid "%s is not an editable page"
msgstr "%s ist keine bearbeitbare Seite"
-#: ../IkiWiki/Plugin/editpage.pm:317
+#: ../IkiWiki/Plugin/editpage.pm:316
#, perl-format
msgid "creating %s"
msgstr "erstelle %s"
-#: ../IkiWiki/Plugin/editpage.pm:335 ../IkiWiki/Plugin/editpage.pm:363
-#: ../IkiWiki/Plugin/editpage.pm:373 ../IkiWiki/Plugin/editpage.pm:408
-#: ../IkiWiki/Plugin/editpage.pm:453
+#: ../IkiWiki/Plugin/editpage.pm:334 ../IkiWiki/Plugin/editpage.pm:353
+#: ../IkiWiki/Plugin/editpage.pm:363 ../IkiWiki/Plugin/editpage.pm:398
+#: ../IkiWiki/Plugin/editpage.pm:443
#, perl-format
msgid "editing %s"
msgstr "bearbeite %s"
@@ -249,11 +299,6 @@ msgstr "Bearbeitung fehlgeschlagen"
msgid "must specify format and text"
msgstr "Format und Text muss spezifiziert werden"
-#: ../IkiWiki/Plugin/format.pm:23
-#, perl-format
-msgid "unsupported page format %s"
-msgstr "nicht unterstütztes Seitenformat %s"
-
#: ../IkiWiki/Plugin/fortune.pm:27
msgid "fortune failed"
msgstr "»fortune« fehlgeschlagen"
@@ -340,20 +385,20 @@ msgstr "Fehlender Seitenparameter"
msgid "unknown sort type %s"
msgstr "Unbekannter Sortierungstyp %s"
-#: ../IkiWiki/Plugin/inline.pm:297
+#: ../IkiWiki/Plugin/inline.pm:307
msgid "Add a new post titled:"
msgstr "Füge einen neuen Beitrag hinzu. Titel:"
-#: ../IkiWiki/Plugin/inline.pm:318
+#: ../IkiWiki/Plugin/inline.pm:327
#, perl-format
msgid "nonexistant template %s"
msgstr "nicht-vorhandene Vorlage %s"
-#: ../IkiWiki/Plugin/inline.pm:352 ../IkiWiki/Render.pm:83
+#: ../IkiWiki/Plugin/inline.pm:362 ../IkiWiki/Render.pm:83
msgid "Discussion"
msgstr "Diskussion"
-#: ../IkiWiki/Plugin/inline.pm:577
+#: ../IkiWiki/Plugin/inline.pm:587
msgid "RPC::XML::Client not found, not pinging"
msgstr "RPC::XML::Client nicht gefunden, führe Ping nicht aus"
@@ -378,15 +423,15 @@ msgstr ""
"Laden des Perl-Moduls »Markdown.pm« (%s) oder »/usr/bin/markdown« (%s) "
"fehlgeschlagen"
-#: ../IkiWiki/Plugin/meta.pm:150
+#: ../IkiWiki/Plugin/meta.pm:151
msgid "stylesheet not found"
msgstr "Stylesheet nicht gefunden"
-#: ../IkiWiki/Plugin/meta.pm:184
+#: ../IkiWiki/Plugin/meta.pm:185
msgid "redir page not found"
msgstr "Umleitungsseite nicht gefunden"
-#: ../IkiWiki/Plugin/meta.pm:197
+#: ../IkiWiki/Plugin/meta.pm:198
msgid "redir cycle is not allowed"
msgstr "Zyklische Umleitungen sind nicht erlaubt"
@@ -571,15 +616,6 @@ msgstr "Unzulässiger Prozentwert (%s)"
msgid "need either `percent` or `totalpages` and `donepages` parameters"
msgstr "Benötige entweder »percent«- oder »totalpages«- und »donepages«-Parameter"
-#: ../IkiWiki/Plugin/recentchanges.pm:101
-msgid "missing page"
-msgstr "fehlende Seite"
-
-#: ../IkiWiki/Plugin/recentchanges.pm:103
-#, perl-format
-msgid "The page %s does not exist."
-msgstr "Die Seite %s existiert nicht."
-
#: ../IkiWiki/Plugin/recentchangesdiff.pm:37
msgid "(Diff truncated)"
msgstr "(Diff beschnitten)"
diff --git a/po/es.po b/po/es.po
index 4e54ef276..7966d94f9 100644
--- a/po/es.po
+++ b/po/es.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: es\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-12-11 14:46-0500\n"
+"POT-Creation-Date: 2008-12-20 18:07-0500\n"
"PO-Revision-Date: 2008-12-19 08:10+0100\n"
"Last-Translator: Víctor Moral \n"
"Language-Team: Spanish \n"
@@ -24,7 +24,7 @@ msgid "login failed, perhaps you need to turn on cookies?"
msgstr ""
"registro fallido, ¿ tal vez necesita activar las cookies en el navegador ?"
-#: ../IkiWiki/CGI.pm:163 ../IkiWiki/Plugin/editpage.pm:350
+#: ../IkiWiki/CGI.pm:163 ../IkiWiki/CGI.pm:310
msgid "Your login session has expired."
msgstr "Su registro en el sistema ha expirado."
@@ -48,7 +48,7 @@ msgstr "Las preferencias se han guardado."
msgid "You are banned."
msgstr "Ha sido expulsado."
-#: ../IkiWiki/CGI.pm:385 ../IkiWiki/CGI.pm:386 ../IkiWiki.pm:1204
+#: ../IkiWiki/CGI.pm:401 ../IkiWiki/CGI.pm:402 ../IkiWiki.pm:1204
msgid "Error"
msgstr "Error"
@@ -66,62 +66,62 @@ msgstr ""
msgid "missing %s parameter"
msgstr "falta el parámetro %s"
-#: ../IkiWiki/Plugin/aggregate.pm:250
+#: ../IkiWiki/Plugin/aggregate.pm:251
msgid "new feed"
msgstr "nueva entrada"
-#: ../IkiWiki/Plugin/aggregate.pm:264
+#: ../IkiWiki/Plugin/aggregate.pm:265
msgid "posts"
msgstr "entradas"
-#: ../IkiWiki/Plugin/aggregate.pm:266
+#: ../IkiWiki/Plugin/aggregate.pm:267
msgid "new"
msgstr "nuevo"
-#: ../IkiWiki/Plugin/aggregate.pm:429
+#: ../IkiWiki/Plugin/aggregate.pm:431
#, perl-format
msgid "expiring %s (%s days old)"
msgstr "%s caducada (%s días de antigüedad)"
-#: ../IkiWiki/Plugin/aggregate.pm:436
+#: ../IkiWiki/Plugin/aggregate.pm:438
#, perl-format
msgid "expiring %s"
msgstr "%s caducada"
-#: ../IkiWiki/Plugin/aggregate.pm:463
+#: ../IkiWiki/Plugin/aggregate.pm:465
#, perl-format
msgid "last checked %s"
msgstr "última comprobación el %s"
-#: ../IkiWiki/Plugin/aggregate.pm:467
+#: ../IkiWiki/Plugin/aggregate.pm:469
#, perl-format
msgid "checking feed %s ..."
msgstr "comprobando fuente de datos %s ..."
-#: ../IkiWiki/Plugin/aggregate.pm:472
+#: ../IkiWiki/Plugin/aggregate.pm:474
#, perl-format
msgid "could not find feed at %s"
msgstr "no puedo encontrar la fuente de datos en %s"
-#: ../IkiWiki/Plugin/aggregate.pm:487
+#: ../IkiWiki/Plugin/aggregate.pm:493
msgid "feed not found"
msgstr "fuente de datos no encontrada"
-#: ../IkiWiki/Plugin/aggregate.pm:498
+#: ../IkiWiki/Plugin/aggregate.pm:504
#, perl-format
msgid "(invalid UTF-8 stripped from feed)"
msgstr "(una secuencia UTF-8 inválida ha sido eliminada de la fuente de datos)"
-#: ../IkiWiki/Plugin/aggregate.pm:506
+#: ../IkiWiki/Plugin/aggregate.pm:512
#, perl-format
msgid "(feed entities escaped)"
msgstr "(los caracteres especiales de la fuente de datos están exceptuados)"
-#: ../IkiWiki/Plugin/aggregate.pm:514
+#: ../IkiWiki/Plugin/aggregate.pm:520
msgid "feed crashed XML::Feed!"
msgstr "¡ la fuente de datos ha provocado un error fatal en XML::Feed !"
-#: ../IkiWiki/Plugin/aggregate.pm:595
+#: ../IkiWiki/Plugin/aggregate.pm:601
#, perl-format
msgid "creating new page %s"
msgstr "creando nueva página %s"
@@ -172,8 +172,8 @@ msgstr "enviado el adjunto"
msgid "automatic index generation"
msgstr "creación de índice automática"
-#: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:261
-#: ../IkiWiki/Plugin/inline.pm:344 ../IkiWiki/Plugin/opendiscussion.pm:26
+#: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:260
+#: ../IkiWiki/Plugin/inline.pm:354 ../IkiWiki/Plugin/opendiscussion.pm:26
#: ../IkiWiki/Plugin/orphans.pm:37 ../IkiWiki/Render.pm:79
#: ../IkiWiki/Render.pm:149
msgid "discussion"
@@ -188,6 +188,60 @@ msgstr "%s desde la página %s"
msgid "There are no broken links!"
msgstr "¡ No hay enlaces rotos !"
+#: ../IkiWiki/Plugin/comments.pm:119 ../IkiWiki/Plugin/format.pm:23
+#, perl-format
+msgid "unsupported page format %s"
+msgstr "formato de página %s no soportado"
+
+#: ../IkiWiki/Plugin/comments.pm:124
+msgid "comment must have content"
+msgstr "Un comentario debe tener algún contenido"
+
+#: ../IkiWiki/Plugin/comments.pm:181
+msgid "Anonymous"
+msgstr "Anónimo"
+
+#: ../IkiWiki/Plugin/comments.pm:243 ../IkiWiki/Plugin/recentchanges.pm:101
+msgid "missing page"
+msgstr "página no encontrada"
+
+#: ../IkiWiki/Plugin/comments.pm:245 ../IkiWiki/Plugin/recentchanges.pm:103
+#, perl-format
+msgid "The page %s does not exist."
+msgstr "No existe la página %s."
+
+#: ../IkiWiki/Plugin/comments.pm:334 ../IkiWiki/Plugin/editpage.pm:124
+msgid "bad page name"
+msgstr "nombre de página erróneo"
+
+#: ../IkiWiki/Plugin/comments.pm:341
+#, perl-format
+msgid "commenting on %s"
+msgstr "creando comentarios en la página %s"
+
+#: ../IkiWiki/Plugin/comments.pm:359
+#, 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:366
+#, perl-format
+msgid "comments on page '%s' are closed"
+msgstr "los comentarios para la página '%s' están cerrados"
+
+#: ../IkiWiki/Plugin/comments.pm:468
+msgid "Added a comment"
+msgstr "Añadir un comentario"
+
+#: ../IkiWiki/Plugin/comments.pm:472
+#, perl-format
+msgid "Added a comment: %s"
+msgstr "Comentario añadido: %s"
+
+#: ../IkiWiki/Plugin/comments.pm:565
+msgid "Comments"
+msgstr "Comentarios"
+
#: ../IkiWiki/Plugin/conditional.pm:27 ../IkiWiki/Plugin/cutpaste.pm:30
#: ../IkiWiki/Plugin/cutpaste.pm:45 ../IkiWiki/Plugin/cutpaste.pm:61
#: ../IkiWiki/Plugin/testpagespec.pm:26
@@ -209,23 +263,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:125
-msgid "bad page name"
-msgstr "nombre de página erróneo"
-
-#: ../IkiWiki/Plugin/editpage.pm:141
+#: ../IkiWiki/Plugin/editpage.pm:140
#, perl-format
msgid "%s is not an editable page"
msgstr "la página %s no es modificable"
-#: ../IkiWiki/Plugin/editpage.pm:317
+#: ../IkiWiki/Plugin/editpage.pm:316
#, perl-format
msgid "creating %s"
msgstr "creando página %s"
-#: ../IkiWiki/Plugin/editpage.pm:335 ../IkiWiki/Plugin/editpage.pm:363
-#: ../IkiWiki/Plugin/editpage.pm:373 ../IkiWiki/Plugin/editpage.pm:408
-#: ../IkiWiki/Plugin/editpage.pm:453
+#: ../IkiWiki/Plugin/editpage.pm:334 ../IkiWiki/Plugin/editpage.pm:353
+#: ../IkiWiki/Plugin/editpage.pm:363 ../IkiWiki/Plugin/editpage.pm:398
+#: ../IkiWiki/Plugin/editpage.pm:443
#, perl-format
msgid "editing %s"
msgstr "modificando página %s"
@@ -251,11 +301,6 @@ msgstr "fallo en el proceso"
msgid "must specify format and text"
msgstr "se deben especificar tanto el formato como el texto"
-#: ../IkiWiki/Plugin/format.pm:23
-#, perl-format
-msgid "unsupported page format %s"
-msgstr "formato de página %s no soportado"
-
#: ../IkiWiki/Plugin/fortune.pm:27
msgid "fortune failed"
msgstr "el programa fortune ha fallado"
@@ -344,20 +389,20 @@ msgstr "falta el parámetro pages"
msgid "unknown sort type %s"
msgstr "no conozco este tipo de ordenación %s"
-#: ../IkiWiki/Plugin/inline.pm:297
+#: ../IkiWiki/Plugin/inline.pm:307
msgid "Add a new post titled:"
msgstr "Añadir una entrada nueva titulada:"
-#: ../IkiWiki/Plugin/inline.pm:318
+#: ../IkiWiki/Plugin/inline.pm:327
#, perl-format
msgid "nonexistant template %s"
msgstr "la plantilla %s no existe "
-#: ../IkiWiki/Plugin/inline.pm:352 ../IkiWiki/Render.pm:83
+#: ../IkiWiki/Plugin/inline.pm:362 ../IkiWiki/Render.pm:83
msgid "Discussion"
msgstr "Comentarios"
-#: ../IkiWiki/Plugin/inline.pm:577
+#: ../IkiWiki/Plugin/inline.pm:587
msgid "RPC::XML::Client not found, not pinging"
msgstr "No he encontrado el componente RPC::XML::Client, no envío señal alguna"
@@ -382,15 +427,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:150
+#: ../IkiWiki/Plugin/meta.pm:151
msgid "stylesheet not found"
msgstr "hoja de estilo no encontrada "
-#: ../IkiWiki/Plugin/meta.pm:184
+#: ../IkiWiki/Plugin/meta.pm:185
msgid "redir page not found"
msgstr "falta la página a donde redirigir"
-#: ../IkiWiki/Plugin/meta.pm:197
+#: ../IkiWiki/Plugin/meta.pm:198
msgid "redir cycle is not allowed"
msgstr "ciclo de redirección no permitido"
@@ -577,15 +622,6 @@ msgstr "%s es un valor erróneo para un porcentaje"
msgid "need either `percent` or `totalpages` and `donepages` parameters"
msgstr "son necesarios los parámetros 'donepages' y 'percent' ó 'totalpages'"
-#: ../IkiWiki/Plugin/recentchanges.pm:101
-msgid "missing page"
-msgstr "página no encontrada"
-
-#: ../IkiWiki/Plugin/recentchanges.pm:103
-#, perl-format
-msgid "The page %s does not exist."
-msgstr "No existe la página %s."
-
#: ../IkiWiki/Plugin/recentchangesdiff.pm:37
msgid "(Diff truncated)"
msgstr "(Lista de diferencias truncada)"
@@ -1022,30 +1058,6 @@ msgstr ""
msgid "What is the domain name of the web server?"
msgstr "¿ Cuál es el dominio para el servidor web ?"
-#~ msgid "comment must have content"
-#~ msgstr "Un comentario debe tener algún contenido"
-
-#~ msgid "Anonymous"
-#~ msgstr "Anónimo"
-
-#~ msgid "commenting on %s"
-#~ msgstr "creando comentarios en la página %s"
-
-#~ 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"
-
-#~ msgid "comments on page '%s' are closed"
-#~ msgstr "los comentarios para la página '%s' están cerrados"
-
-#~ msgid "Added a comment"
-#~ msgstr "Añadir un comentario"
-
-#~ msgid "Added a comment: %s"
-#~ msgstr "Comentario añadido: %s"
-
-#~ msgid "Comments"
-#~ msgstr "Comentarios"
-
#~ msgid "processed ok at %s"
#~ msgstr "proceso completado con éxito a %s"
diff --git a/po/fr.po b/po/fr.po
index ebc21fd9a..e45d19cc2 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ikiwiki 2.70 \n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-12-11 14:46-0500\n"
+"POT-Creation-Date: 2008-12-20 18:07-0500\n"
"PO-Revision-Date: 2008-11-19 21:53+0100\n"
"Last-Translator: Philippe Batailler \n"
"Language-Team: French \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/Plugin/editpage.pm:350
+#: ../IkiWiki/CGI.pm:163 ../IkiWiki/CGI.pm:310
msgid "Your login session has expired."
msgstr "Session d'authentification expirée."
@@ -49,7 +49,7 @@ msgstr "Les préférences ont été enregistrées."
msgid "You are banned."
msgstr "Vous avez été banni."
-#: ../IkiWiki/CGI.pm:385 ../IkiWiki/CGI.pm:386 ../IkiWiki.pm:1204
+#: ../IkiWiki/CGI.pm:401 ../IkiWiki/CGI.pm:402 ../IkiWiki.pm:1204
msgid "Error"
msgstr "Erreur"
@@ -66,62 +66,62 @@ msgstr "Rien à faire pour le moment, tous les flux sont à jour !"
msgid "missing %s parameter"
msgstr "Paramètre %s manquant"
-#: ../IkiWiki/Plugin/aggregate.pm:250
+#: ../IkiWiki/Plugin/aggregate.pm:251
msgid "new feed"
msgstr "Nouveau flux"
-#: ../IkiWiki/Plugin/aggregate.pm:264
+#: ../IkiWiki/Plugin/aggregate.pm:265
msgid "posts"
msgstr "Articles"
-#: ../IkiWiki/Plugin/aggregate.pm:266
+#: ../IkiWiki/Plugin/aggregate.pm:267
msgid "new"
msgstr "Nouveau"
-#: ../IkiWiki/Plugin/aggregate.pm:429
+#: ../IkiWiki/Plugin/aggregate.pm:431
#, perl-format
msgid "expiring %s (%s days old)"
msgstr "Fin de validité de %s (date de %s jours)"
-#: ../IkiWiki/Plugin/aggregate.pm:436
+#: ../IkiWiki/Plugin/aggregate.pm:438
#, perl-format
msgid "expiring %s"
msgstr "Fin de validité de %s"
-#: ../IkiWiki/Plugin/aggregate.pm:463
+#: ../IkiWiki/Plugin/aggregate.pm:465
#, perl-format
msgid "last checked %s"
msgstr "dernière vérification : %s"
-#: ../IkiWiki/Plugin/aggregate.pm:467
+#: ../IkiWiki/Plugin/aggregate.pm:469
#, perl-format
msgid "checking feed %s ..."
msgstr "Vérification du flux %s..."
-#: ../IkiWiki/Plugin/aggregate.pm:472
+#: ../IkiWiki/Plugin/aggregate.pm:474
#, perl-format
msgid "could not find feed at %s"
msgstr "Impossible de trouver de flux à %s"
-#: ../IkiWiki/Plugin/aggregate.pm:487
+#: ../IkiWiki/Plugin/aggregate.pm:493
msgid "feed not found"
msgstr "Flux introuvable "
-#: ../IkiWiki/Plugin/aggregate.pm:498
+#: ../IkiWiki/Plugin/aggregate.pm:504
#, perl-format
msgid "(invalid UTF-8 stripped from feed)"
msgstr "(chaîne UTF-8 non valable supprimée du flux)"
-#: ../IkiWiki/Plugin/aggregate.pm:506
+#: ../IkiWiki/Plugin/aggregate.pm:512
#, perl-format
msgid "(feed entities escaped)"
msgstr "(échappement des entités de flux)"
-#: ../IkiWiki/Plugin/aggregate.pm:514
+#: ../IkiWiki/Plugin/aggregate.pm:520
msgid "feed crashed XML::Feed!"
msgstr "Plantage du flux XML::Feed !"
-#: ../IkiWiki/Plugin/aggregate.pm:595
+#: ../IkiWiki/Plugin/aggregate.pm:601
#, perl-format
msgid "creating new page %s"
msgstr "Création de la nouvelle page %s"
@@ -172,8 +172,8 @@ msgstr "envoi de la pièce jointe"
msgid "automatic index generation"
msgstr "génération de l'index automatique"
-#: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:261
-#: ../IkiWiki/Plugin/inline.pm:344 ../IkiWiki/Plugin/opendiscussion.pm:26
+#: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:260
+#: ../IkiWiki/Plugin/inline.pm:354 ../IkiWiki/Plugin/opendiscussion.pm:26
#: ../IkiWiki/Plugin/orphans.pm:37 ../IkiWiki/Render.pm:79
#: ../IkiWiki/Render.pm:149
msgid "discussion"
@@ -188,6 +188,60 @@ msgstr "%s sur %s"
msgid "There are no broken links!"
msgstr "Il n'existe pas de lien cassé !"
+#: ../IkiWiki/Plugin/comments.pm:119 ../IkiWiki/Plugin/format.pm:23
+#, perl-format
+msgid "unsupported page format %s"
+msgstr "format de page non reconnu %s"
+
+#: ../IkiWiki/Plugin/comments.pm:124
+msgid "comment must have content"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:181
+msgid "Anonymous"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:243 ../IkiWiki/Plugin/recentchanges.pm:101
+msgid "missing page"
+msgstr "Page manquante"
+
+#: ../IkiWiki/Plugin/comments.pm:245 ../IkiWiki/Plugin/recentchanges.pm:103
+#, 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
+msgid "bad page name"
+msgstr "nom de page incorrect"
+
+#: ../IkiWiki/Plugin/comments.pm:341
+#, fuzzy, perl-format
+msgid "commenting on %s"
+msgstr "Création de %s"
+
+#: ../IkiWiki/Plugin/comments.pm:359
+#, perl-format
+msgid "page '%s' doesn't exist, so you can't comment"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:366
+#, perl-format
+msgid "comments on page '%s' are closed"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:468
+msgid "Added a comment"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:472
+#, perl-format
+msgid "Added a comment: %s"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:565
+msgid "Comments"
+msgstr ""
+
#: ../IkiWiki/Plugin/conditional.pm:27 ../IkiWiki/Plugin/cutpaste.pm:30
#: ../IkiWiki/Plugin/cutpaste.pm:45 ../IkiWiki/Plugin/cutpaste.pm:61
#: ../IkiWiki/Plugin/testpagespec.pm:26
@@ -209,23 +263,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:125
-msgid "bad page name"
-msgstr "nom de page incorrect"
-
-#: ../IkiWiki/Plugin/editpage.pm:141
+#: ../IkiWiki/Plugin/editpage.pm:140
#, perl-format
msgid "%s is not an editable page"
msgstr "%s n'est pas une page éditable"
-#: ../IkiWiki/Plugin/editpage.pm:317
+#: ../IkiWiki/Plugin/editpage.pm:316
#, perl-format
msgid "creating %s"
msgstr "Création de %s"
-#: ../IkiWiki/Plugin/editpage.pm:335 ../IkiWiki/Plugin/editpage.pm:363
-#: ../IkiWiki/Plugin/editpage.pm:373 ../IkiWiki/Plugin/editpage.pm:408
-#: ../IkiWiki/Plugin/editpage.pm:453
+#: ../IkiWiki/Plugin/editpage.pm:334 ../IkiWiki/Plugin/editpage.pm:353
+#: ../IkiWiki/Plugin/editpage.pm:363 ../IkiWiki/Plugin/editpage.pm:398
+#: ../IkiWiki/Plugin/editpage.pm:443
#, perl-format
msgid "editing %s"
msgstr "Édition de %s"
@@ -251,11 +301,6 @@ msgstr "Échec du traitement"
msgid "must specify format and text"
msgstr "le format et le texte doivent être indiqués"
-#: ../IkiWiki/Plugin/format.pm:23
-#, perl-format
-msgid "unsupported page format %s"
-msgstr "format de page non reconnu %s"
-
#: ../IkiWiki/Plugin/fortune.pm:27
msgid "fortune failed"
msgstr "Échec du lancement de « fortune »"
@@ -340,20 +385,20 @@ msgstr "paramètre « pages » manquant"
msgid "unknown sort type %s"
msgstr "Type de tri %s inconnu"
-#: ../IkiWiki/Plugin/inline.pm:297
+#: ../IkiWiki/Plugin/inline.pm:307
msgid "Add a new post titled:"
msgstr "Ajouter un nouvel article dont le titre est :"
-#: ../IkiWiki/Plugin/inline.pm:318
+#: ../IkiWiki/Plugin/inline.pm:327
#, perl-format
msgid "nonexistant template %s"
msgstr "Le modèle de page %s n'existe pas"
-#: ../IkiWiki/Plugin/inline.pm:352 ../IkiWiki/Render.pm:83
+#: ../IkiWiki/Plugin/inline.pm:362 ../IkiWiki/Render.pm:83
msgid "Discussion"
msgstr "Discussion"
-#: ../IkiWiki/Plugin/inline.pm:577
+#: ../IkiWiki/Plugin/inline.pm:587
msgid "RPC::XML::Client not found, not pinging"
msgstr "RPC::XML::Client introuvable, pas de réponse au ping"
@@ -377,15 +422,15 @@ msgstr ""
"Échec du chargement du module Perl Markdown.pm (%s) ou de /usr/bin/markdown "
"(%s)"
-#: ../IkiWiki/Plugin/meta.pm:150
+#: ../IkiWiki/Plugin/meta.pm:151
msgid "stylesheet not found"
msgstr "Feuille de style introuvable "
-#: ../IkiWiki/Plugin/meta.pm:184
+#: ../IkiWiki/Plugin/meta.pm:185
msgid "redir page not found"
msgstr "Page de redirection introuvable"
-#: ../IkiWiki/Plugin/meta.pm:197
+#: ../IkiWiki/Plugin/meta.pm:198
msgid "redir cycle is not allowed"
msgstr "Redirection cyclique non autorisée"
@@ -573,15 +618,6 @@ msgid "need either `percent` or `totalpages` and `donepages` parameters"
msgstr ""
"L'un des paramètres « percent », « totalpages » ou « donepages » est nécessaire."
-#: ../IkiWiki/Plugin/recentchanges.pm:101
-msgid "missing page"
-msgstr "Page manquante"
-
-#: ../IkiWiki/Plugin/recentchanges.pm:103
-#, perl-format
-msgid "The page %s does not exist."
-msgstr "La page %s n'existe pas."
-
#: ../IkiWiki/Plugin/recentchangesdiff.pm:37
msgid "(Diff truncated)"
msgstr "(fichier de différences tronqué)"
diff --git a/po/gu.po b/po/gu.po
index 13c68afc9..d31260c71 100644
--- a/po/gu.po
+++ b/po/gu.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ikiwiki-gu\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-10-31 16:37-0400\n"
+"POT-Creation-Date: 2008-12-20 18:07-0500\n"
"PO-Revision-Date: 2007-01-11 16:05+0530\n"
"Last-Translator: Kartik Mistry \n"
"Language-Team: Gujarati \n"
@@ -23,7 +23,7 @@ msgstr "તમારે પ્રથમ લોગ ઇન થવું પડશ
msgid "login failed, perhaps you need to turn on cookies?"
msgstr "પ્રવેશ નિષ્ફળ, કદાચ તમારી કુકીઓ સક્રિય બનાવવી પડશે?"
-#: ../IkiWiki/CGI.pm:163 ../IkiWiki/Plugin/editpage.pm:350
+#: ../IkiWiki/CGI.pm:163 ../IkiWiki/CGI.pm:310
msgid "Your login session has expired."
msgstr ""
@@ -48,7 +48,7 @@ msgstr "પ્રાથમિકતાઓ સંગ્રહાઇ."
msgid "You are banned."
msgstr "તમારા પર પ્રતિબંધ છે."
-#: ../IkiWiki/CGI.pm:385 ../IkiWiki/CGI.pm:386 ../IkiWiki.pm:1182
+#: ../IkiWiki/CGI.pm:401 ../IkiWiki/CGI.pm:402 ../IkiWiki.pm:1204
msgid "Error"
msgstr "ક્ષતિ"
@@ -65,62 +65,62 @@ msgstr ""
msgid "missing %s parameter"
msgstr "ખોવાયેલ %s વિકલ્પ"
-#: ../IkiWiki/Plugin/aggregate.pm:250
+#: ../IkiWiki/Plugin/aggregate.pm:251
msgid "new feed"
msgstr "નવું ફીડ"
-#: ../IkiWiki/Plugin/aggregate.pm:264
+#: ../IkiWiki/Plugin/aggregate.pm:265
msgid "posts"
msgstr "પોસ્ટ"
-#: ../IkiWiki/Plugin/aggregate.pm:266
+#: ../IkiWiki/Plugin/aggregate.pm:267
msgid "new"
msgstr "નવું"
-#: ../IkiWiki/Plugin/aggregate.pm:429
+#: ../IkiWiki/Plugin/aggregate.pm:431
#, perl-format
msgid "expiring %s (%s days old)"
msgstr "જુનું કરે છે %s (%s દિવસો જુનું)"
-#: ../IkiWiki/Plugin/aggregate.pm:436
+#: ../IkiWiki/Plugin/aggregate.pm:438
#, perl-format
msgid "expiring %s"
msgstr "જુનું કરે છે %s"
-#: ../IkiWiki/Plugin/aggregate.pm:463
+#: ../IkiWiki/Plugin/aggregate.pm:465
#, perl-format
msgid "last checked %s"
msgstr ""
-#: ../IkiWiki/Plugin/aggregate.pm:467
+#: ../IkiWiki/Plugin/aggregate.pm:469
#, perl-format
msgid "checking feed %s ..."
msgstr "ફીડ %s ચકાસે છે ..."
-#: ../IkiWiki/Plugin/aggregate.pm:472
+#: ../IkiWiki/Plugin/aggregate.pm:474
#, perl-format
msgid "could not find feed at %s"
msgstr "%s પર ફીડ મળી શક્યું નહી"
-#: ../IkiWiki/Plugin/aggregate.pm:487
+#: ../IkiWiki/Plugin/aggregate.pm:493
msgid "feed not found"
msgstr "ફીડ મળ્યું નહી"
-#: ../IkiWiki/Plugin/aggregate.pm:498
+#: ../IkiWiki/Plugin/aggregate.pm:504
#, fuzzy, perl-format
msgid "(invalid UTF-8 stripped from feed)"
msgstr "ફીડમાંથી અયોગ્ય રીતે UTF-8 નીકાળેલ છે"
-#: ../IkiWiki/Plugin/aggregate.pm:504
+#: ../IkiWiki/Plugin/aggregate.pm:512
#, perl-format
msgid "(feed entities escaped)"
msgstr ""
-#: ../IkiWiki/Plugin/aggregate.pm:510
+#: ../IkiWiki/Plugin/aggregate.pm:520
msgid "feed crashed XML::Feed!"
msgstr "ફીડ ભાંગી ગયું XML::Feed!"
-#: ../IkiWiki/Plugin/aggregate.pm:590
+#: ../IkiWiki/Plugin/aggregate.pm:601
#, perl-format
msgid "creating new page %s"
msgstr "નવું પાનું %s બનાવે છે"
@@ -129,7 +129,7 @@ msgstr "નવું પાનું %s બનાવે છે"
msgid "deleting bucket.."
msgstr ""
-#: ../IkiWiki/Plugin/amazon_s3.pm:38 ../ikiwiki.in:206
+#: ../IkiWiki/Plugin/amazon_s3.pm:38 ../ikiwiki.in:208
msgid "done"
msgstr "સંપૂર્ણ"
@@ -173,8 +173,8 @@ msgstr ""
msgid "automatic index generation"
msgstr ""
-#: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:261
-#: ../IkiWiki/Plugin/inline.pm:327 ../IkiWiki/Plugin/opendiscussion.pm:26
+#: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:260
+#: ../IkiWiki/Plugin/inline.pm:354 ../IkiWiki/Plugin/opendiscussion.pm:26
#: ../IkiWiki/Plugin/orphans.pm:37 ../IkiWiki/Render.pm:79
#: ../IkiWiki/Render.pm:149
msgid "discussion"
@@ -189,6 +189,61 @@ msgstr ""
msgid "There are no broken links!"
msgstr "અહીં કોઇ તૂટેલ કડી નથી!"
+#: ../IkiWiki/Plugin/comments.pm:119 ../IkiWiki/Plugin/format.pm:23
+#, perl-format
+msgid "unsupported page format %s"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:124
+msgid "comment must have content"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:181
+msgid "Anonymous"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:243 ../IkiWiki/Plugin/recentchanges.pm:101
+#, fuzzy
+msgid "missing page"
+msgstr "ખોવાયેલ કિંમતો"
+
+#: ../IkiWiki/Plugin/comments.pm:245 ../IkiWiki/Plugin/recentchanges.pm:103
+#, perl-format
+msgid "The page %s does not exist."
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:334 ../IkiWiki/Plugin/editpage.pm:124
+msgid "bad page name"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:341
+#, fuzzy, perl-format
+msgid "commenting on %s"
+msgstr "%s બનાવે છે"
+
+#: ../IkiWiki/Plugin/comments.pm:359
+#, perl-format
+msgid "page '%s' doesn't exist, so you can't comment"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:366
+#, perl-format
+msgid "comments on page '%s' are closed"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:468
+msgid "Added a comment"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:472
+#, perl-format
+msgid "Added a comment: %s"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:565
+msgid "Comments"
+msgstr ""
+
#: ../IkiWiki/Plugin/conditional.pm:27 ../IkiWiki/Plugin/cutpaste.pm:30
#: ../IkiWiki/Plugin/cutpaste.pm:45 ../IkiWiki/Plugin/cutpaste.pm:61
#: ../IkiWiki/Plugin/testpagespec.pm:26
@@ -210,23 +265,19 @@ msgstr ""
msgid "removing old preview %s"
msgstr "જુનાં પાનાં દૂર કરે છે %s"
-#: ../IkiWiki/Plugin/editpage.pm:125
-msgid "bad page name"
-msgstr ""
-
-#: ../IkiWiki/Plugin/editpage.pm:141
+#: ../IkiWiki/Plugin/editpage.pm:140
#, perl-format
msgid "%s is not an editable page"
msgstr "%s એ સુધારી શકાય તેવું પાનું નથી"
-#: ../IkiWiki/Plugin/editpage.pm:317
+#: ../IkiWiki/Plugin/editpage.pm:316
#, perl-format
msgid "creating %s"
msgstr "%s બનાવે છે"
-#: ../IkiWiki/Plugin/editpage.pm:335 ../IkiWiki/Plugin/editpage.pm:363
-#: ../IkiWiki/Plugin/editpage.pm:373 ../IkiWiki/Plugin/editpage.pm:408
-#: ../IkiWiki/Plugin/editpage.pm:453
+#: ../IkiWiki/Plugin/editpage.pm:334 ../IkiWiki/Plugin/editpage.pm:353
+#: ../IkiWiki/Plugin/editpage.pm:363 ../IkiWiki/Plugin/editpage.pm:398
+#: ../IkiWiki/Plugin/editpage.pm:443
#, perl-format
msgid "editing %s"
msgstr "%s સુધારે છે"
@@ -251,15 +302,10 @@ msgstr ""
msgid "failed to process"
msgstr "ક્રિયા કરવામાં નિષ્ફળ:"
-#: ../IkiWiki/Plugin/format.pm:22
+#: ../IkiWiki/Plugin/format.pm:20
msgid "must specify format and text"
msgstr ""
-#: ../IkiWiki/Plugin/format.pm:25
-#, perl-format
-msgid "unsupported page format %s"
-msgstr ""
-
#: ../IkiWiki/Plugin/fortune.pm:27
msgid "fortune failed"
msgstr "ભવિષ્ય નિષ્ફળ"
@@ -326,16 +372,16 @@ msgstr "માપ બદલવામાં નિષ્ફળ: %s"
msgid "failed to determine size of image %s"
msgstr "માપ બદલવામાં નિષ્ફળ: %s"
-#: ../IkiWiki/Plugin/inline.pm:93
+#: ../IkiWiki/Plugin/inline.pm:92
msgid "Must specify url to wiki with --url when using --rss or --atom"
msgstr "--rss અથવા --atom ઉપયોગ કરતી વખતે વીકીમાં --url ઉપયોગ કરવું જ પડશે"
-#: ../IkiWiki/Plugin/inline.pm:139
+#: ../IkiWiki/Plugin/inline.pm:138
#, fuzzy
msgid "page editing not allowed"
msgstr "ફીડ મળ્યું નહી"
-#: ../IkiWiki/Plugin/inline.pm:156
+#: ../IkiWiki/Plugin/inline.pm:155
#, fuzzy
msgid "missing pages parameter"
msgstr "ખોવાયેલ %s વિકલ્પ"
@@ -345,20 +391,20 @@ msgstr "ખોવાયેલ %s વિકલ્પ"
msgid "unknown sort type %s"
msgstr "અજાણ્યો ગોઠવણી પ્રકાર %s"
-#: ../IkiWiki/Plugin/inline.pm:285
+#: ../IkiWiki/Plugin/inline.pm:307
msgid "Add a new post titled:"
msgstr "આ શિર્ષકથી નવું પોસ્ટ ઉમેરો:"
-#: ../IkiWiki/Plugin/inline.pm:301
+#: ../IkiWiki/Plugin/inline.pm:327
#, perl-format
msgid "nonexistant template %s"
msgstr "અસ્તિત્વમાં ન હોય તેવું ટેમ્પલેટ %s"
-#: ../IkiWiki/Plugin/inline.pm:335 ../IkiWiki/Render.pm:83
+#: ../IkiWiki/Plugin/inline.pm:362 ../IkiWiki/Render.pm:83
msgid "Discussion"
msgstr "ચર્ચા"
-#: ../IkiWiki/Plugin/inline.pm:572
+#: ../IkiWiki/Plugin/inline.pm:587
msgid "RPC::XML::Client not found, not pinging"
msgstr "RPC::XML::Client મળ્યું નહી, પિંગ કરવામાં આવતું નથી"
@@ -380,16 +426,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:150
+#: ../IkiWiki/Plugin/meta.pm:151
msgid "stylesheet not found"
msgstr "સ્ટાઇલશીટ મળ્યું નહી"
-#: ../IkiWiki/Plugin/meta.pm:184
+#: ../IkiWiki/Plugin/meta.pm:185
#, fuzzy
msgid "redir page not found"
msgstr "ફીડ મળ્યું નહી"
-#: ../IkiWiki/Plugin/meta.pm:197
+#: ../IkiWiki/Plugin/meta.pm:198
#, fuzzy
msgid "redir cycle is not allowed"
msgstr "ફીડ મળ્યું નહી"
@@ -576,17 +622,7 @@ msgstr ""
msgid "need either `percent` or `totalpages` and `donepages` parameters"
msgstr ""
-#: ../IkiWiki/Plugin/recentchanges.pm:100
-#, fuzzy
-msgid "missing page"
-msgstr "ખોવાયેલ કિંમતો"
-
-#: ../IkiWiki/Plugin/recentchanges.pm:102
-#, perl-format
-msgid "The page %s does not exist."
-msgstr ""
-
-#: ../IkiWiki/Plugin/recentchangesdiff.pm:36
+#: ../IkiWiki/Plugin/recentchangesdiff.pm:37
msgid "(Diff truncated)"
msgstr ""
@@ -927,19 +963,19 @@ msgstr "આવરણ ફાઇલનામ સ્પષ્ટ કરેલ ન
#. translators: The first parameter is a filename, and the second is
#. translators: a (probably not translated) error message.
-#: ../IkiWiki/Wrapper.pm:79
+#: ../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:135
+#: ../IkiWiki/Wrapper.pm:154
#, perl-format
msgid "failed to compile %s"
msgstr "%s કમ્પાઇલ કરવામાં નિષ્ફળ"
#. translators: The parameter is a filename.
-#: ../IkiWiki/Wrapper.pm:155
+#: ../IkiWiki/Wrapper.pm:174
#, perl-format
msgid "successfully generated %s"
msgstr "સફળતાપૂર્વક પેદા કરેલ છે %s"
@@ -952,41 +988,41 @@ msgstr "ઉપયોગ: ikiwiki [વિકલ્પો] source dest"
msgid " ikiwiki --setup configfile"
msgstr ""
-#: ../ikiwiki.in:90
+#: ../ikiwiki.in:91
msgid "usage: --set var=value"
msgstr ""
-#: ../ikiwiki.in:138
+#: ../ikiwiki.in:139
msgid "generating wrappers.."
msgstr "આવરણ બનાવે છે.."
-#: ../ikiwiki.in:195
+#: ../ikiwiki.in:197
msgid "rebuilding wiki.."
msgstr "વીકી ફરીથી બનાવે છે.."
-#: ../ikiwiki.in:198
+#: ../ikiwiki.in:200
msgid "refreshing wiki.."
msgstr "વીકીને તાજી કરે છે.."
-#: ../IkiWiki.pm:466
+#: ../IkiWiki.pm:480
msgid "Must specify url to wiki with --url when using --cgi"
msgstr "જ્યારે --cgi ઉપયોગ કરતાં હોય ત્યારે વીકીનું યુઆરએલ સ્પષ્ટ કરવું જ પડશે"
-#: ../IkiWiki.pm:512
+#: ../IkiWiki.pm:526
msgid "cannot use multiple rcs plugins"
msgstr ""
-#: ../IkiWiki.pm:541
+#: ../IkiWiki.pm:555
#, perl-format
msgid "failed to load external plugin needed for %s plugin: %s"
msgstr ""
-#: ../IkiWiki.pm:1165
+#: ../IkiWiki.pm:1187
#, fuzzy, perl-format
msgid "preprocessing loop detected on %s at depth %i"
msgstr "%s પર શોધાયેલ લુપ %s પર ચલાવે છે %i ઉંડાણ પર"
-#: ../IkiWiki.pm:1678
+#: ../IkiWiki.pm:1688
msgid "yes"
msgstr ""
diff --git a/po/ikiwiki.pot b/po/ikiwiki.pot
index 11c865363..43663b5b9 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-11 14:46-0500\n"
+"POT-Creation-Date: 2008-12-20 18:07-0500\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -24,7 +24,7 @@ msgstr ""
msgid "login failed, perhaps you need to turn on cookies?"
msgstr ""
-#: ../IkiWiki/CGI.pm:163 ../IkiWiki/Plugin/editpage.pm:350
+#: ../IkiWiki/CGI.pm:163 ../IkiWiki/CGI.pm:310
msgid "Your login session has expired."
msgstr ""
@@ -48,7 +48,7 @@ msgstr ""
msgid "You are banned."
msgstr ""
-#: ../IkiWiki/CGI.pm:385 ../IkiWiki/CGI.pm:386 ../IkiWiki.pm:1204
+#: ../IkiWiki/CGI.pm:401 ../IkiWiki/CGI.pm:402 ../IkiWiki.pm:1204
msgid "Error"
msgstr ""
@@ -65,62 +65,62 @@ msgstr ""
msgid "missing %s parameter"
msgstr ""
-#: ../IkiWiki/Plugin/aggregate.pm:250
+#: ../IkiWiki/Plugin/aggregate.pm:251
msgid "new feed"
msgstr ""
-#: ../IkiWiki/Plugin/aggregate.pm:264
+#: ../IkiWiki/Plugin/aggregate.pm:265
msgid "posts"
msgstr ""
-#: ../IkiWiki/Plugin/aggregate.pm:266
+#: ../IkiWiki/Plugin/aggregate.pm:267
msgid "new"
msgstr ""
-#: ../IkiWiki/Plugin/aggregate.pm:429
+#: ../IkiWiki/Plugin/aggregate.pm:431
#, perl-format
msgid "expiring %s (%s days old)"
msgstr ""
-#: ../IkiWiki/Plugin/aggregate.pm:436
+#: ../IkiWiki/Plugin/aggregate.pm:438
#, perl-format
msgid "expiring %s"
msgstr ""
-#: ../IkiWiki/Plugin/aggregate.pm:463
+#: ../IkiWiki/Plugin/aggregate.pm:465
#, perl-format
msgid "last checked %s"
msgstr ""
-#: ../IkiWiki/Plugin/aggregate.pm:467
+#: ../IkiWiki/Plugin/aggregate.pm:469
#, perl-format
msgid "checking feed %s ..."
msgstr ""
-#: ../IkiWiki/Plugin/aggregate.pm:472
+#: ../IkiWiki/Plugin/aggregate.pm:474
#, perl-format
msgid "could not find feed at %s"
msgstr ""
-#: ../IkiWiki/Plugin/aggregate.pm:487
+#: ../IkiWiki/Plugin/aggregate.pm:493
msgid "feed not found"
msgstr ""
-#: ../IkiWiki/Plugin/aggregate.pm:498
+#: ../IkiWiki/Plugin/aggregate.pm:504
#, perl-format
msgid "(invalid UTF-8 stripped from feed)"
msgstr ""
-#: ../IkiWiki/Plugin/aggregate.pm:506
+#: ../IkiWiki/Plugin/aggregate.pm:512
#, perl-format
msgid "(feed entities escaped)"
msgstr ""
-#: ../IkiWiki/Plugin/aggregate.pm:514
+#: ../IkiWiki/Plugin/aggregate.pm:520
msgid "feed crashed XML::Feed!"
msgstr ""
-#: ../IkiWiki/Plugin/aggregate.pm:595
+#: ../IkiWiki/Plugin/aggregate.pm:601
#, perl-format
msgid "creating new page %s"
msgstr ""
@@ -171,8 +171,8 @@ msgstr ""
msgid "automatic index generation"
msgstr ""
-#: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:261
-#: ../IkiWiki/Plugin/inline.pm:344 ../IkiWiki/Plugin/opendiscussion.pm:26
+#: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:260
+#: ../IkiWiki/Plugin/inline.pm:354 ../IkiWiki/Plugin/opendiscussion.pm:26
#: ../IkiWiki/Plugin/orphans.pm:37 ../IkiWiki/Render.pm:79
#: ../IkiWiki/Render.pm:149
msgid "discussion"
@@ -187,6 +187,60 @@ msgstr ""
msgid "There are no broken links!"
msgstr ""
+#: ../IkiWiki/Plugin/comments.pm:119 ../IkiWiki/Plugin/format.pm:23
+#, perl-format
+msgid "unsupported page format %s"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:124
+msgid "comment must have content"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:181
+msgid "Anonymous"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:243 ../IkiWiki/Plugin/recentchanges.pm:101
+msgid "missing page"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:245 ../IkiWiki/Plugin/recentchanges.pm:103
+#, perl-format
+msgid "The page %s does not exist."
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:334 ../IkiWiki/Plugin/editpage.pm:124
+msgid "bad page name"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:341
+#, perl-format
+msgid "commenting on %s"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:359
+#, perl-format
+msgid "page '%s' doesn't exist, so you can't comment"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:366
+#, perl-format
+msgid "comments on page '%s' are closed"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:468
+msgid "Added a comment"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:472
+#, perl-format
+msgid "Added a comment: %s"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:565
+msgid "Comments"
+msgstr ""
+
#: ../IkiWiki/Plugin/conditional.pm:27 ../IkiWiki/Plugin/cutpaste.pm:30
#: ../IkiWiki/Plugin/cutpaste.pm:45 ../IkiWiki/Plugin/cutpaste.pm:61
#: ../IkiWiki/Plugin/testpagespec.pm:26
@@ -208,23 +262,19 @@ msgstr ""
msgid "removing old preview %s"
msgstr ""
-#: ../IkiWiki/Plugin/editpage.pm:125
-msgid "bad page name"
-msgstr ""
-
-#: ../IkiWiki/Plugin/editpage.pm:141
+#: ../IkiWiki/Plugin/editpage.pm:140
#, perl-format
msgid "%s is not an editable page"
msgstr ""
-#: ../IkiWiki/Plugin/editpage.pm:317
+#: ../IkiWiki/Plugin/editpage.pm:316
#, perl-format
msgid "creating %s"
msgstr ""
-#: ../IkiWiki/Plugin/editpage.pm:335 ../IkiWiki/Plugin/editpage.pm:363
-#: ../IkiWiki/Plugin/editpage.pm:373 ../IkiWiki/Plugin/editpage.pm:408
-#: ../IkiWiki/Plugin/editpage.pm:453
+#: ../IkiWiki/Plugin/editpage.pm:334 ../IkiWiki/Plugin/editpage.pm:353
+#: ../IkiWiki/Plugin/editpage.pm:363 ../IkiWiki/Plugin/editpage.pm:398
+#: ../IkiWiki/Plugin/editpage.pm:443
#, perl-format
msgid "editing %s"
msgstr ""
@@ -250,11 +300,6 @@ msgstr ""
msgid "must specify format and text"
msgstr ""
-#: ../IkiWiki/Plugin/format.pm:23
-#, perl-format
-msgid "unsupported page format %s"
-msgstr ""
-
#: ../IkiWiki/Plugin/fortune.pm:27
msgid "fortune failed"
msgstr ""
@@ -337,20 +382,20 @@ msgstr ""
msgid "unknown sort type %s"
msgstr ""
-#: ../IkiWiki/Plugin/inline.pm:297
+#: ../IkiWiki/Plugin/inline.pm:307
msgid "Add a new post titled:"
msgstr ""
-#: ../IkiWiki/Plugin/inline.pm:318
+#: ../IkiWiki/Plugin/inline.pm:327
#, perl-format
msgid "nonexistant template %s"
msgstr ""
-#: ../IkiWiki/Plugin/inline.pm:352 ../IkiWiki/Render.pm:83
+#: ../IkiWiki/Plugin/inline.pm:362 ../IkiWiki/Render.pm:83
msgid "Discussion"
msgstr ""
-#: ../IkiWiki/Plugin/inline.pm:577
+#: ../IkiWiki/Plugin/inline.pm:587
msgid "RPC::XML::Client not found, not pinging"
msgstr ""
@@ -372,15 +417,15 @@ msgstr ""
msgid "failed to load Markdown.pm perl module (%s) or /usr/bin/markdown (%s)"
msgstr ""
-#: ../IkiWiki/Plugin/meta.pm:150
+#: ../IkiWiki/Plugin/meta.pm:151
msgid "stylesheet not found"
msgstr ""
-#: ../IkiWiki/Plugin/meta.pm:184
+#: ../IkiWiki/Plugin/meta.pm:185
msgid "redir page not found"
msgstr ""
-#: ../IkiWiki/Plugin/meta.pm:197
+#: ../IkiWiki/Plugin/meta.pm:198
msgid "redir cycle is not allowed"
msgstr ""
@@ -563,15 +608,6 @@ msgstr ""
msgid "need either `percent` or `totalpages` and `donepages` parameters"
msgstr ""
-#: ../IkiWiki/Plugin/recentchanges.pm:101
-msgid "missing page"
-msgstr ""
-
-#: ../IkiWiki/Plugin/recentchanges.pm:103
-#, perl-format
-msgid "The page %s does not exist."
-msgstr ""
-
#: ../IkiWiki/Plugin/recentchangesdiff.pm:37
msgid "(Diff truncated)"
msgstr ""
diff --git a/po/pl.po b/po/pl.po
index 6f582c71f..8951b65ce 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ikiwiki 1.51\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-10-31 16:37-0400\n"
+"POT-Creation-Date: 2008-12-20 18:07-0500\n"
"PO-Revision-Date: 2007-04-27 22:05+0200\n"
"Last-Translator: Pawel Tecza \n"
"Language-Team: Debian L10n Polish \n"
@@ -26,7 +26,7 @@ msgstr ""
"Nieudane logowanie. Proszę sprawdzić czy w przeglądarce włączone są "
"ciasteczka (ang. cookies)"
-#: ../IkiWiki/CGI.pm:163 ../IkiWiki/Plugin/editpage.pm:350
+#: ../IkiWiki/CGI.pm:163 ../IkiWiki/CGI.pm:310
msgid "Your login session has expired."
msgstr ""
@@ -51,7 +51,7 @@ msgstr "Preferencje zapisane."
msgid "You are banned."
msgstr "Twój dostęp został zabroniony przez administratora."
-#: ../IkiWiki/CGI.pm:385 ../IkiWiki/CGI.pm:386 ../IkiWiki.pm:1182
+#: ../IkiWiki/CGI.pm:401 ../IkiWiki/CGI.pm:402 ../IkiWiki.pm:1204
msgid "Error"
msgstr "Błąd"
@@ -68,63 +68,63 @@ msgstr ""
msgid "missing %s parameter"
msgstr "brakujący parametr %s"
-#: ../IkiWiki/Plugin/aggregate.pm:250
+#: ../IkiWiki/Plugin/aggregate.pm:251
msgid "new feed"
msgstr "nowy kanał RSS"
-#: ../IkiWiki/Plugin/aggregate.pm:264
+#: ../IkiWiki/Plugin/aggregate.pm:265
msgid "posts"
msgstr "wpisy"
-#: ../IkiWiki/Plugin/aggregate.pm:266
+#: ../IkiWiki/Plugin/aggregate.pm:267
msgid "new"
msgstr "nowy wpis"
-#: ../IkiWiki/Plugin/aggregate.pm:429
+#: ../IkiWiki/Plugin/aggregate.pm:431
#, perl-format
msgid "expiring %s (%s days old)"
msgstr "wygasający wpis %s (ma już %s dni)"
-#: ../IkiWiki/Plugin/aggregate.pm:436
+#: ../IkiWiki/Plugin/aggregate.pm:438
#, perl-format
msgid "expiring %s"
msgstr "wygasający wpis %s"
-#: ../IkiWiki/Plugin/aggregate.pm:463
+#: ../IkiWiki/Plugin/aggregate.pm:465
#, perl-format
msgid "last checked %s"
msgstr ""
-#: ../IkiWiki/Plugin/aggregate.pm:467
+#: ../IkiWiki/Plugin/aggregate.pm:469
#, perl-format
msgid "checking feed %s ..."
msgstr "sprawdzanie kanału RSS %s..."
-#: ../IkiWiki/Plugin/aggregate.pm:472
+#: ../IkiWiki/Plugin/aggregate.pm:474
#, perl-format
msgid "could not find feed at %s"
msgstr "nie znaleziono kanału RSS pod adresem %s"
-#: ../IkiWiki/Plugin/aggregate.pm:487
+#: ../IkiWiki/Plugin/aggregate.pm:493
#, fuzzy
msgid "feed not found"
msgstr "nieznaleziony kanał RSS"
-#: ../IkiWiki/Plugin/aggregate.pm:498
+#: ../IkiWiki/Plugin/aggregate.pm:504
#, fuzzy, perl-format
msgid "(invalid UTF-8 stripped from feed)"
msgstr "Nieprawidłowe kodowanie UTF-8 usunięte z kanału RSS"
-#: ../IkiWiki/Plugin/aggregate.pm:504
+#: ../IkiWiki/Plugin/aggregate.pm:512
#, perl-format
msgid "(feed entities escaped)"
msgstr ""
-#: ../IkiWiki/Plugin/aggregate.pm:510
+#: ../IkiWiki/Plugin/aggregate.pm:520
msgid "feed crashed XML::Feed!"
msgstr "awaria kanału RSS w module XML::Feed!"
-#: ../IkiWiki/Plugin/aggregate.pm:590
+#: ../IkiWiki/Plugin/aggregate.pm:601
#, perl-format
msgid "creating new page %s"
msgstr "tworzenie nowej strony %s"
@@ -133,7 +133,7 @@ msgstr "tworzenie nowej strony %s"
msgid "deleting bucket.."
msgstr ""
-#: ../IkiWiki/Plugin/amazon_s3.pm:38 ../ikiwiki.in:206
+#: ../IkiWiki/Plugin/amazon_s3.pm:38 ../ikiwiki.in:208
msgid "done"
msgstr "gotowe"
@@ -177,8 +177,8 @@ msgstr ""
msgid "automatic index generation"
msgstr ""
-#: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:261
-#: ../IkiWiki/Plugin/inline.pm:327 ../IkiWiki/Plugin/opendiscussion.pm:26
+#: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:260
+#: ../IkiWiki/Plugin/inline.pm:354 ../IkiWiki/Plugin/opendiscussion.pm:26
#: ../IkiWiki/Plugin/orphans.pm:37 ../IkiWiki/Render.pm:79
#: ../IkiWiki/Render.pm:149
msgid "discussion"
@@ -193,6 +193,61 @@ msgstr ""
msgid "There are no broken links!"
msgstr "Wszystkie odnośniki są aktualne!"
+#: ../IkiWiki/Plugin/comments.pm:119 ../IkiWiki/Plugin/format.pm:23
+#, perl-format
+msgid "unsupported page format %s"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:124
+msgid "comment must have content"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:181
+msgid "Anonymous"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:243 ../IkiWiki/Plugin/recentchanges.pm:101
+#, fuzzy
+msgid "missing page"
+msgstr "brakujące wartości"
+
+#: ../IkiWiki/Plugin/comments.pm:245 ../IkiWiki/Plugin/recentchanges.pm:103
+#, perl-format
+msgid "The page %s does not exist."
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:334 ../IkiWiki/Plugin/editpage.pm:124
+msgid "bad page name"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:341
+#, fuzzy, perl-format
+msgid "commenting on %s"
+msgstr "tworzenie %s"
+
+#: ../IkiWiki/Plugin/comments.pm:359
+#, perl-format
+msgid "page '%s' doesn't exist, so you can't comment"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:366
+#, perl-format
+msgid "comments on page '%s' are closed"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:468
+msgid "Added a comment"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:472
+#, perl-format
+msgid "Added a comment: %s"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:565
+msgid "Comments"
+msgstr ""
+
#: ../IkiWiki/Plugin/conditional.pm:27 ../IkiWiki/Plugin/cutpaste.pm:30
#: ../IkiWiki/Plugin/cutpaste.pm:45 ../IkiWiki/Plugin/cutpaste.pm:61
#: ../IkiWiki/Plugin/testpagespec.pm:26
@@ -214,23 +269,19 @@ msgstr ""
msgid "removing old preview %s"
msgstr "usuwanie starej strony %s"
-#: ../IkiWiki/Plugin/editpage.pm:125
-msgid "bad page name"
-msgstr ""
-
-#: ../IkiWiki/Plugin/editpage.pm:141
+#: ../IkiWiki/Plugin/editpage.pm:140
#, perl-format
msgid "%s is not an editable page"
msgstr "Strona %s nie może być edytowana"
-#: ../IkiWiki/Plugin/editpage.pm:317
+#: ../IkiWiki/Plugin/editpage.pm:316
#, perl-format
msgid "creating %s"
msgstr "tworzenie %s"
-#: ../IkiWiki/Plugin/editpage.pm:335 ../IkiWiki/Plugin/editpage.pm:363
-#: ../IkiWiki/Plugin/editpage.pm:373 ../IkiWiki/Plugin/editpage.pm:408
-#: ../IkiWiki/Plugin/editpage.pm:453
+#: ../IkiWiki/Plugin/editpage.pm:334 ../IkiWiki/Plugin/editpage.pm:353
+#: ../IkiWiki/Plugin/editpage.pm:363 ../IkiWiki/Plugin/editpage.pm:398
+#: ../IkiWiki/Plugin/editpage.pm:443
#, perl-format
msgid "editing %s"
msgstr "edycja %s"
@@ -255,15 +306,10 @@ msgstr ""
msgid "failed to process"
msgstr "awaria w trakcie przetwarzania:"
-#: ../IkiWiki/Plugin/format.pm:22
+#: ../IkiWiki/Plugin/format.pm:20
msgid "must specify format and text"
msgstr ""
-#: ../IkiWiki/Plugin/format.pm:25
-#, perl-format
-msgid "unsupported page format %s"
-msgstr ""
-
#: ../IkiWiki/Plugin/fortune.pm:27
msgid "fortune failed"
msgstr "awaria fortunki"
@@ -332,18 +378,18 @@ msgstr "awaria w trakcie zmiany rozmiaru: %s"
msgid "failed to determine size of image %s"
msgstr "awaria w trakcie zmiany rozmiaru: %s"
-#: ../IkiWiki/Plugin/inline.pm:93
+#: ../IkiWiki/Plugin/inline.pm:92
msgid "Must specify url to wiki with --url when using --rss or --atom"
msgstr ""
"Użycie parametru --rss lub --atom wymaga podania adresu URL do wiki za "
"pomocą parametru --url"
-#: ../IkiWiki/Plugin/inline.pm:139
+#: ../IkiWiki/Plugin/inline.pm:138
#, fuzzy
msgid "page editing not allowed"
msgstr "nieznaleziony kanał RSS"
-#: ../IkiWiki/Plugin/inline.pm:156
+#: ../IkiWiki/Plugin/inline.pm:155
#, fuzzy
msgid "missing pages parameter"
msgstr "brakujący parametr %s"
@@ -353,20 +399,20 @@ msgstr "brakujący parametr %s"
msgid "unknown sort type %s"
msgstr "nieznany sposób sortowania %s"
-#: ../IkiWiki/Plugin/inline.pm:285
+#: ../IkiWiki/Plugin/inline.pm:307
msgid "Add a new post titled:"
msgstr "Tytuł nowego wpisu"
-#: ../IkiWiki/Plugin/inline.pm:301
+#: ../IkiWiki/Plugin/inline.pm:327
#, perl-format
msgid "nonexistant template %s"
msgstr "brakujący szablon %s"
-#: ../IkiWiki/Plugin/inline.pm:335 ../IkiWiki/Render.pm:83
+#: ../IkiWiki/Plugin/inline.pm:362 ../IkiWiki/Render.pm:83
msgid "Discussion"
msgstr "Dyskusja"
-#: ../IkiWiki/Plugin/inline.pm:572
+#: ../IkiWiki/Plugin/inline.pm:587
msgid "RPC::XML::Client not found, not pinging"
msgstr "Nieznaleziony moduł RPC::XML::Client, brak możliwości pingowania"
@@ -393,17 +439,17 @@ msgstr ""
"Awaria w trakcie ładowania perlowego modułu Markdown.pm (%s) lub "
"uruchamiania programu /usr/bin/markdown (%s)"
-#: ../IkiWiki/Plugin/meta.pm:150
+#: ../IkiWiki/Plugin/meta.pm:151
#, fuzzy
msgid "stylesheet not found"
msgstr "nieznaleziony szablon ze stylami CSS"
-#: ../IkiWiki/Plugin/meta.pm:184
+#: ../IkiWiki/Plugin/meta.pm:185
#, fuzzy
msgid "redir page not found"
msgstr "nieznaleziony kanał RSS"
-#: ../IkiWiki/Plugin/meta.pm:197
+#: ../IkiWiki/Plugin/meta.pm:198
#, fuzzy
msgid "redir cycle is not allowed"
msgstr "nieznaleziony kanał RSS"
@@ -590,17 +636,7 @@ msgstr ""
msgid "need either `percent` or `totalpages` and `donepages` parameters"
msgstr ""
-#: ../IkiWiki/Plugin/recentchanges.pm:100
-#, fuzzy
-msgid "missing page"
-msgstr "brakujące wartości"
-
-#: ../IkiWiki/Plugin/recentchanges.pm:102
-#, perl-format
-msgid "The page %s does not exist."
-msgstr ""
-
-#: ../IkiWiki/Plugin/recentchangesdiff.pm:36
+#: ../IkiWiki/Plugin/recentchangesdiff.pm:37
msgid "(Diff truncated)"
msgstr ""
@@ -952,19 +988,19 @@ msgstr "nieokreślona nazwa pliku osłony"
#. translators: The first parameter is a filename, and the second is
#. translators: a (probably not translated) error message.
-#: ../IkiWiki/Wrapper.pm:79
+#: ../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:135
+#: ../IkiWiki/Wrapper.pm:154
#, perl-format
msgid "failed to compile %s"
msgstr "awaria w trakcie kompilowania %s"
#. translators: The parameter is a filename.
-#: ../IkiWiki/Wrapper.pm:155
+#: ../IkiWiki/Wrapper.pm:174
#, perl-format
msgid "successfully generated %s"
msgstr "pomyślnie utworzono %s"
@@ -977,43 +1013,43 @@ msgstr "użycie: ikiwiki [parametry] źródło cel"
msgid " ikiwiki --setup configfile"
msgstr ""
-#: ../ikiwiki.in:90
+#: ../ikiwiki.in:91
msgid "usage: --set var=value"
msgstr ""
-#: ../ikiwiki.in:138
+#: ../ikiwiki.in:139
msgid "generating wrappers.."
msgstr "tworzenie osłon..."
-#: ../ikiwiki.in:195
+#: ../ikiwiki.in:197
msgid "rebuilding wiki.."
msgstr "przebudowywanie wiki..."
-#: ../ikiwiki.in:198
+#: ../ikiwiki.in:200
msgid "refreshing wiki.."
msgstr "odświeżanie wiki..."
-#: ../IkiWiki.pm:466
+#: ../IkiWiki.pm:480
msgid "Must specify url to wiki with --url when using --cgi"
msgstr ""
"Użycie parametru --cgi wymaga podania adresu URL do wiki za pomocą parametru "
"--url"
-#: ../IkiWiki.pm:512
+#: ../IkiWiki.pm:526
msgid "cannot use multiple rcs plugins"
msgstr ""
-#: ../IkiWiki.pm:541
+#: ../IkiWiki.pm:555
#, perl-format
msgid "failed to load external plugin needed for %s plugin: %s"
msgstr ""
-#: ../IkiWiki.pm:1165
+#: ../IkiWiki.pm:1187
#, 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:1678
+#: ../IkiWiki.pm:1688
msgid "yes"
msgstr ""
diff --git a/po/sv.po b/po/sv.po
index 6d3e263ee..3b1dc3625 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ikiwiki\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-10-31 16:37-0400\n"
+"POT-Creation-Date: 2008-12-20 18:07-0500\n"
"PO-Revision-Date: 2007-01-10 23:47+0100\n"
"Last-Translator: Daniel Nylander \n"
"Language-Team: Swedish \n"
@@ -23,7 +23,7 @@ msgstr "Du måste logga in först."
msgid "login failed, perhaps you need to turn on cookies?"
msgstr ""
-#: ../IkiWiki/CGI.pm:163 ../IkiWiki/Plugin/editpage.pm:350
+#: ../IkiWiki/CGI.pm:163 ../IkiWiki/CGI.pm:310
msgid "Your login session has expired."
msgstr ""
@@ -48,7 +48,7 @@ msgstr "Inställningar sparades."
msgid "You are banned."
msgstr "Du är bannlyst."
-#: ../IkiWiki/CGI.pm:385 ../IkiWiki/CGI.pm:386 ../IkiWiki.pm:1182
+#: ../IkiWiki/CGI.pm:401 ../IkiWiki/CGI.pm:402 ../IkiWiki.pm:1204
msgid "Error"
msgstr "Fel"
@@ -65,63 +65,63 @@ msgstr ""
msgid "missing %s parameter"
msgstr "mall saknar id-parameter"
-#: ../IkiWiki/Plugin/aggregate.pm:250
+#: ../IkiWiki/Plugin/aggregate.pm:251
msgid "new feed"
msgstr "ny kanal"
-#: ../IkiWiki/Plugin/aggregate.pm:264
+#: ../IkiWiki/Plugin/aggregate.pm:265
msgid "posts"
msgstr "inlägg"
-#: ../IkiWiki/Plugin/aggregate.pm:266
+#: ../IkiWiki/Plugin/aggregate.pm:267
msgid "new"
msgstr "ny"
-#: ../IkiWiki/Plugin/aggregate.pm:429
+#: ../IkiWiki/Plugin/aggregate.pm:431
#, perl-format
msgid "expiring %s (%s days old)"
msgstr "låter %s gå ut (%s dagar gammal)"
-#: ../IkiWiki/Plugin/aggregate.pm:436
+#: ../IkiWiki/Plugin/aggregate.pm:438
#, perl-format
msgid "expiring %s"
msgstr "låter %s gå ut"
-#: ../IkiWiki/Plugin/aggregate.pm:463
+#: ../IkiWiki/Plugin/aggregate.pm:465
#, perl-format
msgid "last checked %s"
msgstr ""
-#: ../IkiWiki/Plugin/aggregate.pm:467
+#: ../IkiWiki/Plugin/aggregate.pm:469
#, perl-format
msgid "checking feed %s ..."
msgstr "kontrollerar kanalen %s ..."
-#: ../IkiWiki/Plugin/aggregate.pm:472
+#: ../IkiWiki/Plugin/aggregate.pm:474
#, perl-format
msgid "could not find feed at %s"
msgstr "kunde inte hitta kanalen på %s"
-#: ../IkiWiki/Plugin/aggregate.pm:487
+#: ../IkiWiki/Plugin/aggregate.pm:493
#, fuzzy
msgid "feed not found"
msgstr "mallen %s hittades inte"
-#: ../IkiWiki/Plugin/aggregate.pm:498
+#: ../IkiWiki/Plugin/aggregate.pm:504
#, perl-format
msgid "(invalid UTF-8 stripped from feed)"
msgstr ""
-#: ../IkiWiki/Plugin/aggregate.pm:504
+#: ../IkiWiki/Plugin/aggregate.pm:512
#, perl-format
msgid "(feed entities escaped)"
msgstr ""
-#: ../IkiWiki/Plugin/aggregate.pm:510
+#: ../IkiWiki/Plugin/aggregate.pm:520
msgid "feed crashed XML::Feed!"
msgstr "kanalen kraschade XML::Feed!"
-#: ../IkiWiki/Plugin/aggregate.pm:590
+#: ../IkiWiki/Plugin/aggregate.pm:601
#, perl-format
msgid "creating new page %s"
msgstr "skapar nya sidan %s"
@@ -130,7 +130,7 @@ msgstr "skapar nya sidan %s"
msgid "deleting bucket.."
msgstr ""
-#: ../IkiWiki/Plugin/amazon_s3.pm:38 ../ikiwiki.in:206
+#: ../IkiWiki/Plugin/amazon_s3.pm:38 ../ikiwiki.in:208
msgid "done"
msgstr "klar"
@@ -174,8 +174,8 @@ msgstr ""
msgid "automatic index generation"
msgstr ""
-#: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:261
-#: ../IkiWiki/Plugin/inline.pm:327 ../IkiWiki/Plugin/opendiscussion.pm:26
+#: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:260
+#: ../IkiWiki/Plugin/inline.pm:354 ../IkiWiki/Plugin/opendiscussion.pm:26
#: ../IkiWiki/Plugin/orphans.pm:37 ../IkiWiki/Render.pm:79
#: ../IkiWiki/Render.pm:149
msgid "discussion"
@@ -190,6 +190,61 @@ msgstr ""
msgid "There are no broken links!"
msgstr "Det finns inga trasiga länkar!"
+#: ../IkiWiki/Plugin/comments.pm:119 ../IkiWiki/Plugin/format.pm:23
+#, perl-format
+msgid "unsupported page format %s"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:124
+msgid "comment must have content"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:181
+msgid "Anonymous"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:243 ../IkiWiki/Plugin/recentchanges.pm:101
+#, fuzzy
+msgid "missing page"
+msgstr "mall saknar id-parameter"
+
+#: ../IkiWiki/Plugin/comments.pm:245 ../IkiWiki/Plugin/recentchanges.pm:103
+#, perl-format
+msgid "The page %s does not exist."
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:334 ../IkiWiki/Plugin/editpage.pm:124
+msgid "bad page name"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:341
+#, fuzzy, perl-format
+msgid "commenting on %s"
+msgstr "skapar %s"
+
+#: ../IkiWiki/Plugin/comments.pm:359
+#, perl-format
+msgid "page '%s' doesn't exist, so you can't comment"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:366
+#, perl-format
+msgid "comments on page '%s' are closed"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:468
+msgid "Added a comment"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:472
+#, perl-format
+msgid "Added a comment: %s"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:565
+msgid "Comments"
+msgstr ""
+
#: ../IkiWiki/Plugin/conditional.pm:27 ../IkiWiki/Plugin/cutpaste.pm:30
#: ../IkiWiki/Plugin/cutpaste.pm:45 ../IkiWiki/Plugin/cutpaste.pm:61
#: ../IkiWiki/Plugin/testpagespec.pm:26
@@ -211,23 +266,19 @@ msgstr ""
msgid "removing old preview %s"
msgstr "tar bort gammal sida %s"
-#: ../IkiWiki/Plugin/editpage.pm:125
-msgid "bad page name"
-msgstr ""
-
-#: ../IkiWiki/Plugin/editpage.pm:141
+#: ../IkiWiki/Plugin/editpage.pm:140
#, perl-format
msgid "%s is not an editable page"
msgstr ""
-#: ../IkiWiki/Plugin/editpage.pm:317
+#: ../IkiWiki/Plugin/editpage.pm:316
#, perl-format
msgid "creating %s"
msgstr "skapar %s"
-#: ../IkiWiki/Plugin/editpage.pm:335 ../IkiWiki/Plugin/editpage.pm:363
-#: ../IkiWiki/Plugin/editpage.pm:373 ../IkiWiki/Plugin/editpage.pm:408
-#: ../IkiWiki/Plugin/editpage.pm:453
+#: ../IkiWiki/Plugin/editpage.pm:334 ../IkiWiki/Plugin/editpage.pm:353
+#: ../IkiWiki/Plugin/editpage.pm:363 ../IkiWiki/Plugin/editpage.pm:398
+#: ../IkiWiki/Plugin/editpage.pm:443
#, perl-format
msgid "editing %s"
msgstr "redigerar %s"
@@ -252,15 +303,10 @@ msgstr ""
msgid "failed to process"
msgstr "misslyckades med att behandla mall:"
-#: ../IkiWiki/Plugin/format.pm:22
+#: ../IkiWiki/Plugin/format.pm:20
msgid "must specify format and text"
msgstr ""
-#: ../IkiWiki/Plugin/format.pm:25
-#, perl-format
-msgid "unsupported page format %s"
-msgstr ""
-
#: ../IkiWiki/Plugin/fortune.pm:27
msgid "fortune failed"
msgstr "fortune misslyckades"
@@ -329,16 +375,16 @@ msgstr "misslyckades med att skriva %s: %s"
msgid "failed to determine size of image %s"
msgstr "misslyckades med att skriva %s: %s"
-#: ../IkiWiki/Plugin/inline.pm:93
+#: ../IkiWiki/Plugin/inline.pm:92
msgid "Must specify url to wiki with --url when using --rss or --atom"
msgstr "Måste ange url till wiki med --url när --rss eller --atom används"
-#: ../IkiWiki/Plugin/inline.pm:139
+#: ../IkiWiki/Plugin/inline.pm:138
#, fuzzy
msgid "page editing not allowed"
msgstr "mallen %s hittades inte"
-#: ../IkiWiki/Plugin/inline.pm:156
+#: ../IkiWiki/Plugin/inline.pm:155
#, fuzzy
msgid "missing pages parameter"
msgstr "mall saknar id-parameter"
@@ -348,20 +394,20 @@ msgstr "mall saknar id-parameter"
msgid "unknown sort type %s"
msgstr "okänd sorteringstyp %s"
-#: ../IkiWiki/Plugin/inline.pm:285
+#: ../IkiWiki/Plugin/inline.pm:307
msgid "Add a new post titled:"
msgstr ""
-#: ../IkiWiki/Plugin/inline.pm:301
+#: ../IkiWiki/Plugin/inline.pm:327
#, perl-format
msgid "nonexistant template %s"
msgstr ""
-#: ../IkiWiki/Plugin/inline.pm:335 ../IkiWiki/Render.pm:83
+#: ../IkiWiki/Plugin/inline.pm:362 ../IkiWiki/Render.pm:83
msgid "Discussion"
msgstr "Diskussion"
-#: ../IkiWiki/Plugin/inline.pm:572
+#: ../IkiWiki/Plugin/inline.pm:587
msgid "RPC::XML::Client not found, not pinging"
msgstr "RPC::XML::Client hittades inte, pingar inte"
@@ -386,17 +432,17 @@ msgstr ""
"misslyckades med att läsa in Perl-modulen Markdown.pm (%s) eller /usr/bin/"
"markdown (%s)"
-#: ../IkiWiki/Plugin/meta.pm:150
+#: ../IkiWiki/Plugin/meta.pm:151
#, fuzzy
msgid "stylesheet not found"
msgstr "mallen %s hittades inte"
-#: ../IkiWiki/Plugin/meta.pm:184
+#: ../IkiWiki/Plugin/meta.pm:185
#, fuzzy
msgid "redir page not found"
msgstr "mallen %s hittades inte"
-#: ../IkiWiki/Plugin/meta.pm:197
+#: ../IkiWiki/Plugin/meta.pm:198
#, fuzzy
msgid "redir cycle is not allowed"
msgstr "mallen %s hittades inte"
@@ -582,17 +628,7 @@ msgstr ""
msgid "need either `percent` or `totalpages` and `donepages` parameters"
msgstr ""
-#: ../IkiWiki/Plugin/recentchanges.pm:100
-#, fuzzy
-msgid "missing page"
-msgstr "mall saknar id-parameter"
-
-#: ../IkiWiki/Plugin/recentchanges.pm:102
-#, perl-format
-msgid "The page %s does not exist."
-msgstr ""
-
-#: ../IkiWiki/Plugin/recentchangesdiff.pm:36
+#: ../IkiWiki/Plugin/recentchangesdiff.pm:37
msgid "(Diff truncated)"
msgstr ""
@@ -941,19 +977,19 @@ msgstr "filnamn för wrapper har inte angivits"
#. translators: The first parameter is a filename, and the second is
#. translators: a (probably not translated) error message.
-#: ../IkiWiki/Wrapper.pm:79
+#: ../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:135
+#: ../IkiWiki/Wrapper.pm:154
#, perl-format
msgid "failed to compile %s"
msgstr "misslyckades med att kompilera %s"
#. translators: The parameter is a filename.
-#: ../IkiWiki/Wrapper.pm:155
+#: ../IkiWiki/Wrapper.pm:174
#, perl-format
msgid "successfully generated %s"
msgstr "generering av %s lyckades"
@@ -966,41 +1002,41 @@ msgstr "användning: ikiwiki [flaggor] källa mål"
msgid " ikiwiki --setup configfile"
msgstr ""
-#: ../ikiwiki.in:90
+#: ../ikiwiki.in:91
msgid "usage: --set var=value"
msgstr ""
-#: ../ikiwiki.in:138
+#: ../ikiwiki.in:139
msgid "generating wrappers.."
msgstr "genererar wrappers.."
-#: ../ikiwiki.in:195
+#: ../ikiwiki.in:197
msgid "rebuilding wiki.."
msgstr "bygger om wiki.."
-#: ../ikiwiki.in:198
+#: ../ikiwiki.in:200
msgid "refreshing wiki.."
msgstr "uppdaterar wiki.."
-#: ../IkiWiki.pm:466
+#: ../IkiWiki.pm:480
msgid "Must specify url to wiki with --url when using --cgi"
msgstr "Måste ange url till wiki med --url när --cgi används"
-#: ../IkiWiki.pm:512
+#: ../IkiWiki.pm:526
msgid "cannot use multiple rcs plugins"
msgstr ""
-#: ../IkiWiki.pm:541
+#: ../IkiWiki.pm:555
#, perl-format
msgid "failed to load external plugin needed for %s plugin: %s"
msgstr ""
-#: ../IkiWiki.pm:1165
+#: ../IkiWiki.pm:1187
#, fuzzy, perl-format
msgid "preprocessing loop detected on %s at depth %i"
msgstr "%s förbehandlingsslinga detekterades på %s, djup %i"
-#: ../IkiWiki.pm:1678
+#: ../IkiWiki.pm:1688
msgid "yes"
msgstr ""
diff --git a/po/vi.po b/po/vi.po
index 4cc16e1d8..896d3037b 100644
--- a/po/vi.po
+++ b/po/vi.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ikiwiki\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-10-31 16:37-0400\n"
+"POT-Creation-Date: 2008-12-20 18:07-0500\n"
"PO-Revision-Date: 2007-01-13 15:31+1030\n"
"Last-Translator: Clytie Siddall \n"
"Language-Team: Vietnamese \n"
@@ -24,7 +24,7 @@ msgstr "Trước tiên bạn cần phải đăng nhập."
msgid "login failed, perhaps you need to turn on cookies?"
msgstr ""
-#: ../IkiWiki/CGI.pm:163 ../IkiWiki/Plugin/editpage.pm:350
+#: ../IkiWiki/CGI.pm:163 ../IkiWiki/CGI.pm:310
msgid "Your login session has expired."
msgstr ""
@@ -49,7 +49,7 @@ msgstr "Tùy thích đã được lưu."
msgid "You are banned."
msgstr "Bạn bị cấm ra."
-#: ../IkiWiki/CGI.pm:385 ../IkiWiki/CGI.pm:386 ../IkiWiki.pm:1182
+#: ../IkiWiki/CGI.pm:401 ../IkiWiki/CGI.pm:402 ../IkiWiki.pm:1204
msgid "Error"
msgstr "Lỗi"
@@ -66,63 +66,63 @@ msgstr ""
msgid "missing %s parameter"
msgstr "mẫu thiếu tham số id"
-#: ../IkiWiki/Plugin/aggregate.pm:250
+#: ../IkiWiki/Plugin/aggregate.pm:251
msgid "new feed"
msgstr "nguồn tin mới"
-#: ../IkiWiki/Plugin/aggregate.pm:264
+#: ../IkiWiki/Plugin/aggregate.pm:265
msgid "posts"
msgstr "bài"
-#: ../IkiWiki/Plugin/aggregate.pm:266
+#: ../IkiWiki/Plugin/aggregate.pm:267
msgid "new"
msgstr "mới"
-#: ../IkiWiki/Plugin/aggregate.pm:429
+#: ../IkiWiki/Plugin/aggregate.pm:431
#, perl-format
msgid "expiring %s (%s days old)"
msgstr "đang mãn hạn %s (cũ %s ngày)"
-#: ../IkiWiki/Plugin/aggregate.pm:436
+#: ../IkiWiki/Plugin/aggregate.pm:438
#, perl-format
msgid "expiring %s"
msgstr "đang mãn hạn %s"
-#: ../IkiWiki/Plugin/aggregate.pm:463
+#: ../IkiWiki/Plugin/aggregate.pm:465
#, perl-format
msgid "last checked %s"
msgstr ""
-#: ../IkiWiki/Plugin/aggregate.pm:467
+#: ../IkiWiki/Plugin/aggregate.pm:469
#, perl-format
msgid "checking feed %s ..."
msgstr "đang kiểm tra nguồn tin %s ..."
-#: ../IkiWiki/Plugin/aggregate.pm:472
+#: ../IkiWiki/Plugin/aggregate.pm:474
#, perl-format
msgid "could not find feed at %s"
msgstr "không tìm thấy nguồn tin ở %s"
-#: ../IkiWiki/Plugin/aggregate.pm:487
+#: ../IkiWiki/Plugin/aggregate.pm:493
#, fuzzy
msgid "feed not found"
msgstr "không tìm thấy mẫu %s"
-#: ../IkiWiki/Plugin/aggregate.pm:498
+#: ../IkiWiki/Plugin/aggregate.pm:504
#, perl-format
msgid "(invalid UTF-8 stripped from feed)"
msgstr ""
-#: ../IkiWiki/Plugin/aggregate.pm:504
+#: ../IkiWiki/Plugin/aggregate.pm:512
#, perl-format
msgid "(feed entities escaped)"
msgstr ""
-#: ../IkiWiki/Plugin/aggregate.pm:510
+#: ../IkiWiki/Plugin/aggregate.pm:520
msgid "feed crashed XML::Feed!"
msgstr "nguồn tin đã gây ra XML::Feed sụp đổ."
-#: ../IkiWiki/Plugin/aggregate.pm:590
+#: ../IkiWiki/Plugin/aggregate.pm:601
#, perl-format
msgid "creating new page %s"
msgstr "đang tạo trang mới %s"
@@ -131,7 +131,7 @@ msgstr "đang tạo trang mới %s"
msgid "deleting bucket.."
msgstr ""
-#: ../IkiWiki/Plugin/amazon_s3.pm:38 ../ikiwiki.in:206
+#: ../IkiWiki/Plugin/amazon_s3.pm:38 ../ikiwiki.in:208
msgid "done"
msgstr "xong"
@@ -175,8 +175,8 @@ msgstr ""
msgid "automatic index generation"
msgstr ""
-#: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:261
-#: ../IkiWiki/Plugin/inline.pm:327 ../IkiWiki/Plugin/opendiscussion.pm:26
+#: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:260
+#: ../IkiWiki/Plugin/inline.pm:354 ../IkiWiki/Plugin/opendiscussion.pm:26
#: ../IkiWiki/Plugin/orphans.pm:37 ../IkiWiki/Render.pm:79
#: ../IkiWiki/Render.pm:149
msgid "discussion"
@@ -191,6 +191,61 @@ msgstr ""
msgid "There are no broken links!"
msgstr "Không có liên kết bị ngắt nào."
+#: ../IkiWiki/Plugin/comments.pm:119 ../IkiWiki/Plugin/format.pm:23
+#, perl-format
+msgid "unsupported page format %s"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:124
+msgid "comment must have content"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:181
+msgid "Anonymous"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:243 ../IkiWiki/Plugin/recentchanges.pm:101
+#, fuzzy
+msgid "missing page"
+msgstr "mẫu thiếu tham số id"
+
+#: ../IkiWiki/Plugin/comments.pm:245 ../IkiWiki/Plugin/recentchanges.pm:103
+#, perl-format
+msgid "The page %s does not exist."
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:334 ../IkiWiki/Plugin/editpage.pm:124
+msgid "bad page name"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:341
+#, fuzzy, perl-format
+msgid "commenting on %s"
+msgstr "đang tạo %s"
+
+#: ../IkiWiki/Plugin/comments.pm:359
+#, perl-format
+msgid "page '%s' doesn't exist, so you can't comment"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:366
+#, perl-format
+msgid "comments on page '%s' are closed"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:468
+msgid "Added a comment"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:472
+#, perl-format
+msgid "Added a comment: %s"
+msgstr ""
+
+#: ../IkiWiki/Plugin/comments.pm:565
+msgid "Comments"
+msgstr ""
+
#: ../IkiWiki/Plugin/conditional.pm:27 ../IkiWiki/Plugin/cutpaste.pm:30
#: ../IkiWiki/Plugin/cutpaste.pm:45 ../IkiWiki/Plugin/cutpaste.pm:61
#: ../IkiWiki/Plugin/testpagespec.pm:26
@@ -212,23 +267,19 @@ msgstr ""
msgid "removing old preview %s"
msgstr "đang gỡ bỏ trang cũ %s"
-#: ../IkiWiki/Plugin/editpage.pm:125
-msgid "bad page name"
-msgstr ""
-
-#: ../IkiWiki/Plugin/editpage.pm:141
+#: ../IkiWiki/Plugin/editpage.pm:140
#, perl-format
msgid "%s is not an editable page"
msgstr ""
-#: ../IkiWiki/Plugin/editpage.pm:317
+#: ../IkiWiki/Plugin/editpage.pm:316
#, perl-format
msgid "creating %s"
msgstr "đang tạo %s"
-#: ../IkiWiki/Plugin/editpage.pm:335 ../IkiWiki/Plugin/editpage.pm:363
-#: ../IkiWiki/Plugin/editpage.pm:373 ../IkiWiki/Plugin/editpage.pm:408
-#: ../IkiWiki/Plugin/editpage.pm:453
+#: ../IkiWiki/Plugin/editpage.pm:334 ../IkiWiki/Plugin/editpage.pm:353
+#: ../IkiWiki/Plugin/editpage.pm:363 ../IkiWiki/Plugin/editpage.pm:398
+#: ../IkiWiki/Plugin/editpage.pm:443
#, perl-format
msgid "editing %s"
msgstr "đang sửa %s"
@@ -253,15 +304,10 @@ msgstr ""
msgid "failed to process"
msgstr "mẫu không xử lý được:"
-#: ../IkiWiki/Plugin/format.pm:22
+#: ../IkiWiki/Plugin/format.pm:20
msgid "must specify format and text"
msgstr ""
-#: ../IkiWiki/Plugin/format.pm:25
-#, perl-format
-msgid "unsupported page format %s"
-msgstr ""
-
#: ../IkiWiki/Plugin/fortune.pm:27
msgid "fortune failed"
msgstr "fortune bị lỗi"
@@ -330,18 +376,18 @@ msgstr "lỗi ghi %s: %s"
msgid "failed to determine size of image %s"
msgstr "lỗi ghi %s: %s"
-#: ../IkiWiki/Plugin/inline.pm:93
+#: ../IkiWiki/Plugin/inline.pm:92
msgid "Must specify url to wiki with --url when using --rss or --atom"
msgstr ""
"Cần phải xác định địa chỉ URL tới wiki với « --url » khi dùng « --rss » hay « --"
"atom »"
-#: ../IkiWiki/Plugin/inline.pm:139
+#: ../IkiWiki/Plugin/inline.pm:138
#, fuzzy
msgid "page editing not allowed"
msgstr "không tìm thấy mẫu %s"
-#: ../IkiWiki/Plugin/inline.pm:156
+#: ../IkiWiki/Plugin/inline.pm:155
#, fuzzy
msgid "missing pages parameter"
msgstr "mẫu thiếu tham số id"
@@ -351,20 +397,20 @@ msgstr "mẫu thiếu tham số id"
msgid "unknown sort type %s"
msgstr "kiểu sắp xếp không rõ %s"
-#: ../IkiWiki/Plugin/inline.pm:285
+#: ../IkiWiki/Plugin/inline.pm:307
msgid "Add a new post titled:"
msgstr ""
-#: ../IkiWiki/Plugin/inline.pm:301
+#: ../IkiWiki/Plugin/inline.pm:327
#, perl-format
msgid "nonexistant template %s"
msgstr ""
-#: ../IkiWiki/Plugin/inline.pm:335 ../IkiWiki/Render.pm:83
+#: ../IkiWiki/Plugin/inline.pm:362 ../IkiWiki/Render.pm:83
msgid "Discussion"
msgstr "Thảo luận"
-#: ../IkiWiki/Plugin/inline.pm:572
+#: ../IkiWiki/Plugin/inline.pm:587
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"
@@ -387,17 +433,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:150
+#: ../IkiWiki/Plugin/meta.pm:151
#, fuzzy
msgid "stylesheet not found"
msgstr "không tìm thấy mẫu %s"
-#: ../IkiWiki/Plugin/meta.pm:184
+#: ../IkiWiki/Plugin/meta.pm:185
#, fuzzy
msgid "redir page not found"
msgstr "không tìm thấy mẫu %s"
-#: ../IkiWiki/Plugin/meta.pm:197
+#: ../IkiWiki/Plugin/meta.pm:198
#, fuzzy
msgid "redir cycle is not allowed"
msgstr "không tìm thấy mẫu %s"
@@ -583,17 +629,7 @@ msgstr ""
msgid "need either `percent` or `totalpages` and `donepages` parameters"
msgstr ""
-#: ../IkiWiki/Plugin/recentchanges.pm:100
-#, fuzzy
-msgid "missing page"
-msgstr "mẫu thiếu tham số id"
-
-#: ../IkiWiki/Plugin/recentchanges.pm:102
-#, perl-format
-msgid "The page %s does not exist."
-msgstr ""
-
-#: ../IkiWiki/Plugin/recentchangesdiff.pm:36
+#: ../IkiWiki/Plugin/recentchangesdiff.pm:37
msgid "(Diff truncated)"
msgstr ""
@@ -942,19 +978,19 @@ msgstr "chưa xác định tên tập tin bộ bao bọc"
#. translators: The first parameter is a filename, and the second is
#. translators: a (probably not translated) error message.
-#: ../IkiWiki/Wrapper.pm:79
+#: ../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:135
+#: ../IkiWiki/Wrapper.pm:154
#, perl-format
msgid "failed to compile %s"
msgstr "lỗi biên dịch %s"
#. translators: The parameter is a filename.
-#: ../IkiWiki/Wrapper.pm:155
+#: ../IkiWiki/Wrapper.pm:174
#, perl-format
msgid "successfully generated %s"
msgstr "%s đã được tạo ra"
@@ -967,41 +1003,41 @@ msgstr "cách sử dụng: ikiwiki [tùy chọn] nguồn đích"
msgid " ikiwiki --setup configfile"
msgstr ""
-#: ../ikiwiki.in:90
+#: ../ikiwiki.in:91
msgid "usage: --set var=value"
msgstr ""
-#: ../ikiwiki.in:138
+#: ../ikiwiki.in:139
msgid "generating wrappers.."
msgstr "đang tạo ra các bộ bao bọc.."
-#: ../ikiwiki.in:195
+#: ../ikiwiki.in:197
msgid "rebuilding wiki.."
msgstr "đang xây dựng lại wiki.."
-#: ../ikiwiki.in:198
+#: ../ikiwiki.in:200
msgid "refreshing wiki.."
msgstr "đang làm tươi wiki.."
-#: ../IkiWiki.pm:466
+#: ../IkiWiki.pm:480
msgid "Must specify url to wiki with --url when using --cgi"
msgstr "Cần phải xác định địa chỉ URL tới wiki với « --url » khi dùng « --cgi »"
-#: ../IkiWiki.pm:512
+#: ../IkiWiki.pm:526
msgid "cannot use multiple rcs plugins"
msgstr ""
-#: ../IkiWiki.pm:541
+#: ../IkiWiki.pm:555
#, perl-format
msgid "failed to load external plugin needed for %s plugin: %s"
msgstr ""
-#: ../IkiWiki.pm:1165
+#: ../IkiWiki.pm:1187
#, 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:1678
+#: ../IkiWiki.pm:1688
msgid "yes"
msgstr ""
--
cgit v1.2.3
From 7bf121889b96dd8c9f372d366a6c801830850ad6 Mon Sep 17 00:00:00 2001
From: Joey Hess
Date: Sat, 20 Dec 2008 18:18:19 -0500
Subject: note new bug
---
doc/todo/comments.mdwn | 3 +++
1 file changed, 3 insertions(+)
(limited to 'doc')
diff --git a/doc/todo/comments.mdwn b/doc/todo/comments.mdwn
index 50fd89682..3a18d63b8 100644
--- a/doc/todo/comments.mdwn
+++ b/doc/todo/comments.mdwn
@@ -28,6 +28,9 @@ Known issues with the [[plugins/comments]] plugin:
>> I've improved this to use independent icons from the wikiicons
>> directory (untested!) --[[smcv]]
+ >>> The new code produces links like /wikiisons/openid.png, which
+ >>> fail if ikiwiki is not at the root of the web server. --[[Joey]]
+
* Should the comments be visually set off more from the page above?
Rather than just a horizontal rule, I'm thinking put the comments
in a box like is used for inlined pages.
--
cgit v1.2.3
From 8dbb30d346aac45e6507d98ae3092123b8579113 Mon Sep 17 00:00:00 2001
From: Joey Hess
Date: Sat, 20 Dec 2008 18:30:14 -0500
Subject: my try at improving comment styling
Makes it look more like a blog, but not enough to be confusing, and with
nothing as large as in a blog. Removal of the vertical line under the
subject imho makes it easier to scan through comments as each box is a new
one. Bolding the subject seems to make it stand out enough, especially as
its a link now. (Also considered increasing its font size to 110%.)
---
doc/style.css | 17 +++++++++++++----
1 file changed, 13 insertions(+), 4 deletions(-)
(limited to 'doc')
diff --git a/doc/style.css b/doc/style.css
index 64b36b245..1fabf6b29 100644
--- a/doc/style.css
+++ b/doc/style.css
@@ -373,7 +373,16 @@ span.color {
padding: 2px;
}
-.comment .author { font-weight: bold; }
-.comment { border: 1px inset #999; margin: 3px; padding: 3px; }
-.comment-header { font-style: italic; }
-.comment-subject { font-weight: bold; border-bottom: 1px solid #999; }
+.comment-header {
+ font-style: italic;
+}
+.comment .author {
+ font-weight: bold;
+}
+.comment-subject {
+ font-weight: bold;
+}
+.comment {
+ border: 1px solid #aaa;
+ padding: 3px;
+}
--
cgit v1.2.3
From f8cc87e8ee68d83eced465e90e9fd657646ad3c8 Mon Sep 17 00:00:00 2001
From: Joey Hess
Date: Sat, 20 Dec 2008 18:46:56 -0500
Subject: remove signin icons, use title
---
doc/wikiicons/anonymous.png | Bin 302 -> 0 bytes
doc/wikiicons/openid.png | Bin 297 -> 0 bytes
doc/wikiicons/signedin.png | Bin 370 -> 0 bytes
templates/comment.tmpl | 18 ++++--------------
4 files changed, 4 insertions(+), 14 deletions(-)
delete mode 100644 doc/wikiicons/anonymous.png
delete mode 100644 doc/wikiicons/openid.png
delete mode 100644 doc/wikiicons/signedin.png
(limited to 'doc')
diff --git a/doc/wikiicons/anonymous.png b/doc/wikiicons/anonymous.png
deleted file mode 100644
index df22152e6..000000000
Binary files a/doc/wikiicons/anonymous.png and /dev/null differ
diff --git a/doc/wikiicons/openid.png b/doc/wikiicons/openid.png
deleted file mode 100644
index c5535c3de..000000000
Binary files a/doc/wikiicons/openid.png and /dev/null differ
diff --git a/doc/wikiicons/signedin.png b/doc/wikiicons/signedin.png
deleted file mode 100644
index 969908d39..000000000
Binary files a/doc/wikiicons/signedin.png and /dev/null differ
diff --git a/templates/comment.tmpl b/templates/comment.tmpl
index b419404ea..f26cf6d05 100644
--- a/templates/comment.tmpl
+++ b/templates/comment.tmpl
@@ -4,28 +4,20 @@
By
-
-
+
-
-
+
-
+
-
-
-
-
+
-
@@ -36,9 +28,7 @@ By
-
-
()
--
cgit v1.2.3
From 6042e607f33966279f1360d42e46dd0bf7e439e8 Mon Sep 17 00:00:00 2001
From: Joey Hess
Date: Sat, 20 Dec 2008 18:51:09 -0500
Subject: alternate idea
---
doc/todo/comments.mdwn | 7 +++++++
1 file changed, 7 insertions(+)
(limited to 'doc')
diff --git a/doc/todo/comments.mdwn b/doc/todo/comments.mdwn
index 3a18d63b8..12aef0bb3 100644
--- a/doc/todo/comments.mdwn
+++ b/doc/todo/comments.mdwn
@@ -31,6 +31,13 @@ Known issues with the [[plugins/comments]] plugin:
>>> The new code produces links like /wikiisons/openid.png, which
>>> fail if ikiwiki is not at the root of the web server. --[[Joey]]
+ >>> I got to wondering if the icons are needed. On my comments branch
+ >>> (not master), I've dropped the icons and info can be seen by hovering
+ >>> over the author's name. Idea being that you probably don't care how
+ >>> they authenticated unless something is weird, and in that case you
+ >>> can hover to check. Does that make sense, should I merge it?
+ >>> --[[Joey]]
+
* Should the comments be visually set off more from the page above?
Rather than just a horizontal rule, I'm thinking put the comments
in a box like is used for inlined pages.
--
cgit v1.2.3
From faa01bd43243e789b92579a83a3e96c363ae096c Mon Sep 17 00:00:00 2001
From: "http://dtrt.org/"
Date: Sat, 20 Dec 2008 19:36:15 -0500
Subject: Sort paramater not a problem; Revised steps to reprodce
---
.../inline_sort_order_and_meta_date_value.mdwn | 27 ++++++++++++++++++++++
1 file changed, 27 insertions(+)
(limited to 'doc')
diff --git a/doc/bugs/inline_sort_order_and_meta_date_value.mdwn b/doc/bugs/inline_sort_order_and_meta_date_value.mdwn
index 79d17ada2..ce87f9acb 100644
--- a/doc/bugs/inline_sort_order_and_meta_date_value.mdwn
+++ b/doc/bugs/inline_sort_order_and_meta_date_value.mdwn
@@ -57,3 +57,30 @@ out the sort option. --[[Joey]]
return sprintf(gettext("unknown sort type %s"), $params{sort});
}
+> On further testing, I find that the bug is limited to the first time
+> creation time should be used and has nothing to do with setting the sort
+> parameter. Revised steps to reproduce: --[David A. Harding](http://dtrt.org), 2008-12-20
+>
+> 1. Create pages that sort different by mtime and ctime
+>
+> 2. inline pages="somepages/*"
+>
+> 3. ikiwiki --setup setup_file
+>
+> 4. Pages are output incorrectly in mtime order
+>
+> 5. ikiwiki --setup setup_file
+>
+> 6. Pages are output correctly in ctime order
+>
+> 7. Create new page in somepages/, set its ctime to earlier than another
+> page in sompages/
+>
+> 8. ikiwiki --setup setup_file
+>
+> 9. All previously sorted pages output correctly in ctime order but new
+> page is output incorrectly at the top as if its mtime was its ctime
+>
+> 10. ikiwiki --setup setup_file
+>
+> 11. All pages, including new page, are output correctly in ctime order
--
cgit v1.2.3
From 155ebc3dbdcb265d5afa61fd46b20bf2fd9387fb Mon Sep 17 00:00:00 2001
From: Joey Hess
Date: Sat, 20 Dec 2008 20:27:42 -0500
Subject: response
---
doc/bugs/inline_sort_order_and_meta_date_value.mdwn | 15 +++++++++++++++
1 file changed, 15 insertions(+)
(limited to 'doc')
diff --git a/doc/bugs/inline_sort_order_and_meta_date_value.mdwn b/doc/bugs/inline_sort_order_and_meta_date_value.mdwn
index ce87f9acb..d851ef397 100644
--- a/doc/bugs/inline_sort_order_and_meta_date_value.mdwn
+++ b/doc/bugs/inline_sort_order_and_meta_date_value.mdwn
@@ -84,3 +84,18 @@ out the sort option. --[[Joey]]
> 10. ikiwiki --setup setup_file
>
> 11. All pages, including new page, are output correctly in ctime order
+
+You're confusing ctime and creation time. This is perhaps not suprising, as
+ikiwiki uses the term 'ctime' to refer to creation time. However, the unix
+ctime value is not the same thing. Unix ctime can change if a file changes
+owner, or in some cases, permissions. Unix ctime also always changes
+when the file is modified. Ikiwiki wants a first creation date of the file,
+and it accomplishes this by recording the initial ctime of a file the first
+time it processes it, and *preserving* that creation time forever, ignoring
+later ctime changes.
+
+I suspect that this, coupled with the fact that ikiwiki sorts newest pages
+first, explains everything you describe. If not, please send me a shell script
+test case I can run, as instructions like "Create pages that sort different by
+mtime and ctime" are not ones that I know how to follow (given that touch sets
+*both*). --[[Joey]]
--
cgit v1.2.3
From fc077f6956b9f45e2531cb85a50a614fdc476fc5 Mon Sep 17 00:00:00 2001
From: "http://dtrt.org/"
Date: Sat, 20 Dec 2008 22:28:20 -0500
Subject: Response; added shell code and html formating to reproduction steps
---
.../inline_sort_order_and_meta_date_value.mdwn | 201 +++++++++++++++++++++
1 file changed, 201 insertions(+)
(limited to 'doc')
diff --git a/doc/bugs/inline_sort_order_and_meta_date_value.mdwn b/doc/bugs/inline_sort_order_and_meta_date_value.mdwn
index d851ef397..f5f4ea484 100644
--- a/doc/bugs/inline_sort_order_and_meta_date_value.mdwn
+++ b/doc/bugs/inline_sort_order_and_meta_date_value.mdwn
@@ -99,3 +99,204 @@ first, explains everything you describe. If not, please send me a shell script
test case I can run, as instructions like "Create pages that sort different by
mtime and ctime" are not ones that I know how to follow (given that touch sets
*both*). --[[Joey]]
+
+> Sorry. I conflated Unix ctime and ikiwiki's creation time because I
+> didn't think the difference was important to this case. I'm a writer,
+> and I should have known better -- I appologize. Revised steps to
+> reproduce are below; feel free to delete this whole misunderstanding
+> to make the bug report more concise.
+>
+> 1. Create pages in the srcdir that should sort in one order by
+> last-modification time and in a diffent order by original creation
+> time. For example:
+>
+> $ echo -e '\[[!meta date="2007-01-01"]]\nNew.' > test/new.mdwn
+> $ echo -e '\[[!meta date="2006-01-01"]]\nOld.' > test/old.mdwn
+>
+> 2. Create a page that includes the files. For example:
+>
+>
+> $ echo '\[[!inline pages="test/*"]]' > sort-test.mdwn
+>
+> 3. Run ikiwiki. For example `ikiwiki --setup setup_file`
+>
+> 4. Pages are output incorrectly in modification time order. For example,
+> actual partial HTML of the sort-test/index.html from commands used
+> above (whitespace-only lines removed; one whitespace-only line
+> added):
+>
+>
+>
+> Posted Mon 01 Jan 2007 12:00:00 AM EST
+>
+>
+>
+> 5. Run ikiwiki again with the same command line. For example: `ikiwiki --setup setup_file`
+>
+> 6. Pages are output correctly in creation time order. For example,
+> actual partial HTML of the sort-test/index.html from commands used
+> above (whitespace-only lines removed; one whitespace-only line
+> added):
+>
+>
+>
+> Posted Sun 01 Jan 2006 12:00:00 AM EST
+>
+>
+>
+> 7. Create a new page with the current Unix mtime and Unix ctime, but a
+> !meta date before the most recent creation date of another page.
+> For example:
+>
+> $ echo -e '\[[!meta date="2005-01-01"]]\nOlder.' > test/older.mdwn
+>
+> 8. Run ikiwiki again with the same command line. For example: `ikiwiki --setup setup_file`
+>
+> 9. All previously sorted pages output correctly in order of their
+> creation time, but the new page is output incorrectly at the top as
+> if its modification time was its creation time. For example,
+> actual partial HTML of the sort-test/index.html from commands used
+> above (whitespace-only lines removed; two whitespace-only
+> lines added):
+>
+>
+>
+> Posted Sun 01 Jan 2006 12:00:00 AM EST
+>
+>
+>
+> 10. Run ikiwiki again with the same command line. For example: `ikiwiki --setup setup_file`
+>
+> 11. All pages, including new page, are output correctly in creation time
+> order. For example, actual partial HTML of the sort-test/index.html
+> from commands used above (whitespace-only lines removed; two
+> whitespace-only lines added):
+>
+>
+>
+> Posted Sat 01 Jan 2005 12:00:00 AM EST
+>
+>
+>
+> File status after all the above actions:
+>
+> $ stat test/*
+> File: `test/new.mdwn'
+> Size: 33 Blocks: 8 IO Block: 4096 regular file
+> Device: ca20h/51744d Inode: 684160 Links: 1
+> Access: (0644/-rw-r--r--) Uid: ( 1000/ harding) Gid: ( 1000/ harding)
+> Access: 2008-12-20 21:48:32.000000000 -0500
+> Modify: 2008-12-20 21:27:03.000000000 -0500
+> Change: 2008-12-20 21:27:03.000000000 -0500
+> File: `test/older.mdwn'
+> Size: 35 Blocks: 8 IO Block: 4096 regular file
+> Device: ca20h/51744d Inode: 684407 Links: 1
+> Access: (0644/-rw-r--r--) Uid: ( 1000/ harding) Gid: ( 1000/ harding)
+> Access: 2008-12-20 21:48:32.000000000 -0500
+> Modify: 2008-12-20 21:42:10.000000000 -0500
+> Change: 2008-12-20 21:42:10.000000000 -0500
+> File: `test/old.mdwn'
+> Size: 33 Blocks: 8 IO Block: 4096 regular file
+> Device: ca20h/51744d Inode: 684161 Links: 1
+> Access: (0644/-rw-r--r--) Uid: ( 1000/ harding) Gid: ( 1000/ harding)
+> Access: 2008-12-20 21:48:32.000000000 -0500
+> Modify: 2008-12-20 21:27:09.000000000 -0500
+> Change: 2008-12-20 21:27:09.000000000 -0500
+>
+> My ikiwiki configuration file (being used to port a blog from pyblosxom
+> to ikiwiki):
+>
+> harding@mail:~$ sed 's/#.*//; /^[ ]*$/d' .ikiwiki/gnuisance.setup
+> use IkiWiki::Setup::Standard {
+> wikiname => "HardingBlog",
+> adminemail => 'dave@dtrt.org',
+> srcdir => "/srv/backup/git/gnuisance.net",
+> destdir => "/srv/test.dtrt.org",
+> url => "http://srv.dtrt.org",
+> wrappers => [
+> ],
+> atom => 1,
+> syslog => 0,
+> prefix_directives => 1,
+> add_plugins => [qw{goodstuff tag}],
+> disable_plugins => [qw{passwordauth}],
+> tagbase => "tag",
+> }
+>
+> --[David A. Harding](http://dtrt.org/), 2008-12-20
--
cgit v1.2.3
From 5c669ab2266429b7a9e3a69478092a4e3e7b8e74 Mon Sep 17 00:00:00 2001
From: Joey Hess
Date: Sun, 21 Dec 2008 01:04:19 -0500
Subject: comment layout change
I saw a layout similar to this on blogger, and I sorta like it
The dash avoids parens sitting next to each other in some cases.
---
doc/style.css | 1 +
templates/comment.tmpl | 17 ++++++++---------
2 files changed, 9 insertions(+), 9 deletions(-)
(limited to 'doc')
diff --git a/doc/style.css b/doc/style.css
index 1fabf6b29..81a260afd 100644
--- a/doc/style.css
+++ b/doc/style.css
@@ -375,6 +375,7 @@ span.color {
.comment-header {
font-style: italic;
+ margin-top: .3em;
}
.comment .author {
font-weight: bold;
diff --git a/templates/comment.tmpl b/templates/comment.tmpl
index f26cf6d05..6f2b1619e 100644
--- a/templates/comment.tmpl
+++ b/templates/comment.tmpl
@@ -1,7 +1,13 @@
+
+
+
+
+
+
-By
+Comment by
@@ -31,13 +37,6 @@ By
-()
+—
-
-
-
-
-
-
-
--
cgit v1.2.3
From da947bea4be8b388531ff70650d274f8ee8f1500 Mon Sep 17 00:00:00 2001
From: Joey Hess
Date: Sun, 21 Dec 2008 01:41:00 -0500
Subject: analysis
---
doc/bugs/inline_sort_order_and_meta_date_value.mdwn | 10 ++++++++++
1 file changed, 10 insertions(+)
(limited to 'doc')
diff --git a/doc/bugs/inline_sort_order_and_meta_date_value.mdwn b/doc/bugs/inline_sort_order_and_meta_date_value.mdwn
index f5f4ea484..219657753 100644
--- a/doc/bugs/inline_sort_order_and_meta_date_value.mdwn
+++ b/doc/bugs/inline_sort_order_and_meta_date_value.mdwn
@@ -300,3 +300,13 @@ mtime and ctime" are not ones that I know how to follow (given that touch sets
> }
>
> --[David A. Harding](http://dtrt.org/), 2008-12-20
+
+Thank you for a textbook excellent reproduction recipe.
+
+What appears to be going on here is that meta directives are not processed
+until the leaf pages are rendered, and thus the ctime setting is not
+available at the time that they are inlined, and the newer unix ctime is
+used. On the second build, the meta data has already been recorded.
+
+This can probably be avoided by processing meta date at scan time.
+--[[Joey]]
--
cgit v1.2.3
From c84fcdd32aad7a613bf7bbb501362dffcf5ccdeb Mon Sep 17 00:00:00 2001
From: Joey Hess
Date: Sun, 21 Dec 2008 01:52:08 -0500
Subject: meta: Process meta date during scan pass so that the date will always
affect sorting in inlines.
---
IkiWiki/Plugin/meta.pm | 16 ++++++++--------
debian/changelog | 2 ++
doc/bugs/inline_sort_order_and_meta_date_value.mdwn | 2 ++
3 files changed, 12 insertions(+), 8 deletions(-)
(limited to 'doc')
diff --git a/IkiWiki/Plugin/meta.pm b/IkiWiki/Plugin/meta.pm
index ea60be507..8c214139f 100644
--- a/IkiWiki/Plugin/meta.pm
+++ b/IkiWiki/Plugin/meta.pm
@@ -121,6 +121,13 @@ sub preprocess (@) {
$pagestate{$page}{meta}{authorurl}=$value if safeurl($value);
# fallthrough
}
+ elsif ($key eq 'date') {
+ eval q{use Date::Parse};
+ if (! $@) {
+ my $time = str2time($value);
+ $IkiWiki::pagectime{$page}=$time if defined $time;
+ }
+ }
if (! defined wantarray) {
# avoid collecting duplicate data during scan pass
@@ -128,14 +135,7 @@ sub preprocess (@) {
}
# Metadata collection that happens only during preprocessing pass.
- if ($key eq 'date') {
- eval q{use Date::Parse};
- if (! $@) {
- my $time = str2time($value);
- $IkiWiki::pagectime{$page}=$time if defined $time;
- }
- }
- elsif ($key eq 'permalink') {
+ if ($key eq 'permalink') {
if (safeurl($value)) {
$pagestate{$page}{meta}{permalink}=$value;
push @{$metaheaders{$page}}, scrub('', $destpage);
diff --git a/debian/changelog b/debian/changelog
index d8685db09..056fabc7d 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -23,6 +23,8 @@ ikiwiki (2.71) UNRELEASED; urgency=low
* aggregate: If a feed fails to be downloaded, try again immediatly
next time aggregation is run, even if the usual time has not passed.
Closes: #508622 (Michael Gold)
+ * meta: Process meta date during scan pass so that the date will always
+ affect sorting in inlines.
-- Joey Hess Mon, 17 Nov 2008 14:02:10 -0500
diff --git a/doc/bugs/inline_sort_order_and_meta_date_value.mdwn b/doc/bugs/inline_sort_order_and_meta_date_value.mdwn
index 219657753..d4ec8f345 100644
--- a/doc/bugs/inline_sort_order_and_meta_date_value.mdwn
+++ b/doc/bugs/inline_sort_order_and_meta_date_value.mdwn
@@ -309,4 +309,6 @@ available at the time that they are inlined, and the newer unix ctime is
used. On the second build, the meta data has already been recorded.
This can probably be avoided by processing meta date at scan time.
+
+Verified, fix works. [[done]]
--[[Joey]]
--
cgit v1.2.3
From c85e7c1bf4ac95bdbe0f9e2b8dfdd038bda455d0 Mon Sep 17 00:00:00 2001
From: "http://smcv.pseudorandom.co.uk/"
Date: Sun, 21 Dec 2008 04:31:49 -0500
Subject: fix markdown
---
doc/todo/comments.mdwn | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'doc')
diff --git a/doc/todo/comments.mdwn b/doc/todo/comments.mdwn
index 12aef0bb3..119b0dafa 100644
--- a/doc/todo/comments.mdwn
+++ b/doc/todo/comments.mdwn
@@ -102,4 +102,4 @@ Known issues with the [[plugins/comments]] plugin:
> done --[[Joey]]
* Now that inline has some comments-specific functionality anyway, it would
- be good to output '' in Atom and the equivalent in RSS.
+ be good to output `` in Atom and the equivalent in RSS.
--
cgit v1.2.3
From ee24feece09422efdec7dce54b5fcbfc5ad2a5f1 Mon Sep 17 00:00:00 2001
From: Simon McVittie
Date: Sun, 21 Dec 2008 10:08:53 +0000
Subject: comments: note fixed things and recommend merging origin/comments
---
doc/todo/comments.mdwn | 21 +++++++++++++++++++--
1 file changed, 19 insertions(+), 2 deletions(-)
(limited to 'doc')
diff --git a/doc/todo/comments.mdwn b/doc/todo/comments.mdwn
index 119b0dafa..cbc982772 100644
--- a/doc/todo/comments.mdwn
+++ b/doc/todo/comments.mdwn
@@ -18,6 +18,8 @@ Known issues with the [[plugins/comments]] plugin:
>> Bah, git push --all is not the default... 'comments' branch now (I've also rebased it).
>> Sorry, I'm on mobile Internet at the moment... --[[smcv]]
+ >>> merged by [[Joey]] in commit 0f03af38 --[[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
@@ -29,14 +31,27 @@ Known issues with the [[plugins/comments]] plugin:
>> directory (untested!) --[[smcv]]
>>> The new code produces links like /wikiisons/openid.png, which
- >>> fail if ikiwiki is not at the root of the web server. --[[Joey]]
+ >>> fail if ikiwiki is not at the root of the web server. --[[Joey]]
+
+ >>>> Sorry, I should have spotted that (the assumption failed on my demo
+ >>>> site, but the push to that site was when I was on the way out, so I
+ >>>> didn't have time to investigate). As a note for other ikiwiki hackers,
+ >>>> I should have used
+ >>>> ``. --[[smcv]]
>>> I got to wondering if the icons are needed. On my comments branch
>>> (not master), I've dropped the icons and info can be seen by hovering
>>> over the author's name. Idea being that you probably don't care how
>>> they authenticated unless something is weird, and in that case you
>>> can hover to check. Does that make sense, should I merge it?
- >>> --[[Joey]]
+ >>> --[[Joey]]
+
+ >>>> Yeah, go ahead. I preferred my layout with the author before the
+ >>>> comment - perhaps that's Livejournal's influence :-) - but I can always
+ >>>> edit the templates for my own site. As long as the default is something
+ >>>> reasonable and both layouts are possible, I don't really mind.
+ >>>> Minimizing the number of "resource" files in the basewiki also seems
+ >>>> a good goal. --[[smcv]]
* Should the comments be visually set off more from the page above?
Rather than just a horizontal rule, I'm thinking put the comments
@@ -45,6 +60,8 @@ Known issues with the [[plugins/comments]] plugin:
> I did put them in a box in the CSS... I agree the default template
> could do with visual improvement though. --[[smcv]]
+ >> I'll consider this solved by [[Joey]]'s changes. --[[smcv]]
+
* Instead of just a link to add a comment, it could have a form to enter
the title, similar to the form for adding a new blog post.
--
cgit v1.2.3
From 2884d20950681fac16390f61da11afe44508f2cd Mon Sep 17 00:00:00 2001
From: Simon McVittie
Date: Sun, 21 Dec 2008 10:11:48 +0000
Subject: todo/comments: reorganise by status
---
doc/todo/comments.mdwn | 114 ++++++++++++++++++++++++++-----------------------
1 file changed, 61 insertions(+), 53 deletions(-)
(limited to 'doc')
diff --git a/doc/todo/comments.mdwn b/doc/todo/comments.mdwn
index cbc982772..33d688ab3 100644
--- a/doc/todo/comments.mdwn
+++ b/doc/todo/comments.mdwn
@@ -1,24 +1,29 @@
-Known issues with the [[plugins/comments]] plugin:
+# Known issues with the [[plugins/comments]] plugin
-* 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]]
+## Unimplemented
* Previews always say "unknown IP address"
-* Add `COMMENTOPENID`: the authenticated/verified user name, if and only if it was an OpenID
+* Instead of just a link to add a comment, it could have a form to enter
+ the title, similar to the form for adding a new blog post.
- > Done in my comments git branch --[[smcv]]
+ > I'm not sure this is so useful? On Livejournal titles are allowed on
+ > comments, but very rarely used (and indeed usually not very useful);
+ > it's hard enough to get some people to title their blog posts :-)
+ > --[[smcv]]
- > Not seeing it there, which branch? --[[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).
- >> Bah, git push --all is not the default... 'comments' branch now (I've also rebased it).
- >> Sorry, I'm on mobile Internet at the moment... --[[smcv]]
+ > Won't the remove plugin refuse to remove internal pages? This would be
+ > a good feature to have, though. --[[smcv]]
- >>> merged by [[Joey]] in commit 0f03af38 --[[smcv]]
+* Now that inline has some comments-specific functionality anyway, it would
+ be good to output `` in Atom and the equivalent in RSS.
+
+## Patches pending merge
* The default template should have a (?) icon next to unauthenticated users (with the IP address
as title) and an OpenID icon next to OpenIDs
@@ -36,7 +41,7 @@ Known issues with the [[plugins/comments]] plugin:
>>>> Sorry, I should have spotted that (the assumption failed on my demo
>>>> site, but the push to that site was when I was on the way out, so I
>>>> didn't have time to investigate). As a note for other ikiwiki hackers,
- >>>> I should have used
+ >>>> I should have used
>>>> ``. --[[smcv]]
>>> I got to wondering if the icons are needed. On my comments branch
@@ -53,42 +58,16 @@ Known issues with the [[plugins/comments]] plugin:
>>>> Minimizing the number of "resource" files in the basewiki also seems
>>>> a good goal. --[[smcv]]
-* Should the comments be visually set off more from the page above?
- Rather than just a horizontal rule, I'm thinking put the comments
- in a box like is used for inlined pages.
-
- > I did put them in a box in the CSS... I agree the default template
- > could do with visual improvement though. --[[smcv]]
-
- >> I'll consider this solved by [[Joey]]'s changes. --[[smcv]]
-
-* Instead of just a link to add a comment, it could have a form to enter
- the title, similar to the form for adding a new blog post.
-
- > I'm not sure this is so useful? On Livejournal titles are allowed on
- > comments, but very rarely used (and indeed usually not very useful);
- > 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]]
+## Won't fix
-* One can use inline to set up a feed of all comments posted to any page.
- Using template=comment they are displayed right. Only problem
- is there is no indication in that template of what page each comment in the
- feed is a comment on. So, if a comment is inlined into a different page,
- I think it should show a link back to the page commented on.
- (BTW, the rss feed in this situation seems ok; there the link element
- points back to the parent page.
+* There is some common code cargo-culted from other plugins (notably inline and editpage) which
+ should probably be shared
- > done --[[Joey]]
+ > 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]]
-* It would be useful to have a pagespec that always matches all comments on
+* It would be useful to have a pagespec that always matches all comments on
pages matching a glob. Something like `comment(blog/*)`.
Perhaps postcomment could also be folded into this? Then the pagespec
would match both existing comments, as well as new comments that are
@@ -106,9 +85,41 @@ Known issues with the [[plugins/comments]] plugin:
> would also let X edit/delete comments on blog pages (including those
> written by others) in arbitrary ways, which doesn't seem good. --[[smcv]]
- > I had a look at implementing comment() and fell afoul of
+ > I had a look at implementing comment() and fell afoul of
> some optimisations that assume only internal() will be used to match
- > internal pages. So probably this isn't worth doing. --[[Joey]]
+ > internal pages. So probably this isn't worth doing. --[[Joey]]
+
+## Done
+
+* Add `COMMENTOPENID`: the authenticated/verified user name, if and only if it was an OpenID
+
+ > Done in my comments git branch --[[smcv]]
+
+ > Not seeing it there, which branch? --[[Joey]]
+
+ >> Bah, git push --all is not the default... 'comments' branch now (I've also rebased it).
+ >> Sorry, I'm on mobile Internet at the moment... --[[smcv]]
+
+ >>> merged by [[Joey]] in commit 0f03af38 --[[smcv]]
+
+* Should the comments be visually set off more from the page above?
+ Rather than just a horizontal rule, I'm thinking put the comments
+ in a box like is used for inlined pages.
+
+ > I did put them in a box in the CSS... I agree the default template
+ > could do with visual improvement though. --[[smcv]]
+
+ >> I'll consider this solved by [[Joey]]'s changes. --[[smcv]]
+
+* One can use inline to set up a feed of all comments posted to any page.
+ Using template=comment they are displayed right. Only problem
+ is there is no indication in that template of what page each comment in the
+ feed is a comment on. So, if a comment is inlined into a different page,
+ I think it should show a link back to the page commented on.
+ (BTW, the rss feed in this situation seems ok; there the link element
+ points back to the parent page.
+
+ > done --[[Joey]]
* One of Joey's commit messages says "Not ideal, it would be nicer to jump to
the actual comment posted, but no anchor is available". In fact there is
@@ -116,7 +127,4 @@ Known issues with the [[plugins/comments]] plugin:
with id="comment_123" or something. I'll fix this, unless Joey gets there
first. --[[smcv]]
- > done --[[Joey]]
-
-* Now that inline has some comments-specific functionality anyway, it would
- be good to output `` in Atom and the equivalent in RSS.
+ > done --[[Joey]]
--
cgit v1.2.3
From bd80ca37d541f33d04f61a910e49086698e8b34e Mon Sep 17 00:00:00 2001
From: Simon McVittie
Date: Sun, 21 Dec 2008 10:16:58 +0000
Subject: todo/comments: Properly escape inline HTML
---
doc/todo/comments.mdwn | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'doc')
diff --git a/doc/todo/comments.mdwn b/doc/todo/comments.mdwn
index 33d688ab3..4edc3c3a1 100644
--- a/doc/todo/comments.mdwn
+++ b/doc/todo/comments.mdwn
@@ -123,7 +123,7 @@
* One of Joey's commit messages says "Not ideal, it would be nicer to jump to
the actual comment posted, but no anchor is available". In fact there is
- an anchor - the `\[[_comment]]` preprocessing wraps the comment in a
+ an anchor - the `\[[_comment]]` preprocessing wraps the comment in a `
`
with id="comment_123" or something. I'll fix this, unless Joey gets there
first. --[[smcv]]
--
cgit v1.2.3
From 7bdeee20329e1d1132fbc218c49da75c22f07b03 Mon Sep 17 00:00:00 2001
From: Simon McVittie
Date: Sun, 21 Dec 2008 15:39:40 +0000
Subject: Record another couple of pending bugfixes
---
doc/todo/comments.mdwn | 13 +++++++++++--
1 file changed, 11 insertions(+), 2 deletions(-)
(limited to 'doc')
diff --git a/doc/todo/comments.mdwn b/doc/todo/comments.mdwn
index 4edc3c3a1..7e35a2619 100644
--- a/doc/todo/comments.mdwn
+++ b/doc/todo/comments.mdwn
@@ -2,8 +2,6 @@
## Unimplemented
-* Previews always say "unknown IP address"
-
* Instead of just a link to add a comment, it could have a form to enter
the title, similar to the form for adding a new blog post.
@@ -58,6 +56,17 @@
>>>> Minimizing the number of "resource" files in the basewiki also seems
>>>> a good goal. --[[smcv]]
+* Previews always say "unknown IP address"
+
+ > Fixed in my comments branch by commits bc66a00b and 95b3bbbf --[[smcv]]
+
+* The Comments link in the "toolbar" is to `index.html#comments`, not the
+ desired `./#comments`
+
+ > Fixed in my comments branch by commit 0844bd0b; commits 5b1cf21a
+ > and c42f174e fix another `beautify_urlpath` bug and add a regression test
+ > --[[smcv]]
+
## Won't fix
* There is some common code cargo-culted from other plugins (notably inline and editpage) which
--
cgit v1.2.3
From bd376db3a8713c3f28a45a65d0de232a4901164f Mon Sep 17 00:00:00 2001
From: "http://smcv.pseudorandom.co.uk/"
Date: Sun, 21 Dec 2008 11:43:43 -0500
Subject: Mention a patch to improve OpenID display
---
doc/todo/Improve_display_of_OpenIDs.mdwn | 5 +++++
1 file changed, 5 insertions(+)
create mode 100644 doc/todo/Improve_display_of_OpenIDs.mdwn
(limited to 'doc')
diff --git a/doc/todo/Improve_display_of_OpenIDs.mdwn b/doc/todo/Improve_display_of_OpenIDs.mdwn
new file mode 100644
index 000000000..9c21e8234
--- /dev/null
+++ b/doc/todo/Improve_display_of_OpenIDs.mdwn
@@ -0,0 +1,5 @@
+Some OpenIDs seen in the IkiWiki git history are displayed poorly in [[RecentChanges]], including mine :-) (`http://smcv.pseudorandom.co.uk/`, shown as `smcv.pseudorandom [co.uk]`)
+
+My `openid` branch on improves on a couple of cases and adds a regression test. --[[smcv]]
+
+[[!tag patch]]
--
cgit v1.2.3
From ca1437c9e10dc940b94edb364ddfbb2083724182 Mon Sep 17 00:00:00 2001
From: Simon McVittie
Date: Sun, 21 Dec 2008 17:18:43 +0000
Subject: Another comments improvement
---
doc/todo/comments.mdwn | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
(limited to 'doc')
diff --git a/doc/todo/comments.mdwn b/doc/todo/comments.mdwn
index 7e35a2619..a2c1deeb3 100644
--- a/doc/todo/comments.mdwn
+++ b/doc/todo/comments.mdwn
@@ -18,9 +18,6 @@
> Won't the remove plugin refuse to remove internal pages? This would be
> a good feature to have, though. --[[smcv]]
-* Now that inline has some comments-specific functionality anyway, it would
- be good to output `` in Atom and the equivalent in RSS.
-
## Patches pending merge
* The default template should have a (?) icon next to unauthenticated users (with the IP address
@@ -67,6 +64,11 @@
> 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 `` in Atom and the equivalent in RSS.
+
+ > Fixed in my comments branch by d0d598e4, 3feebe31, 9e5f504e --[[smcv]]
+
## Won't fix
* There is some common code cargo-culted from other plugins (notably inline and editpage) which
--
cgit v1.2.3
From 94cdf076ed010d2273ec3851e58ce5599af3545c Mon Sep 17 00:00:00 2001
From: "http://smcv.pseudorandom.co.uk/"
Date: Sun, 21 Dec 2008 12:23:34 -0500
Subject: trivial bug with patch
---
...fy__95__urlpath_will_add_.__47___even_if_it_is_already_present.mdwn | 3 +++
1 file changed, 3 insertions(+)
create mode 100644 doc/bugs/beautify__95__urlpath_will_add_.__47___even_if_it_is_already_present.mdwn
(limited to 'doc')
diff --git a/doc/bugs/beautify__95__urlpath_will_add_.__47___even_if_it_is_already_present.mdwn b/doc/bugs/beautify__95__urlpath_will_add_.__47___even_if_it_is_already_present.mdwn
new file mode 100644
index 000000000..c26dc1138
--- /dev/null
+++ b/doc/bugs/beautify__95__urlpath_will_add_.__47___even_if_it_is_already_present.mdwn
@@ -0,0 +1,3 @@
+beautify_urlpath will prepend a useless "./" to the URL "./foo". Fixed in commit 5b1cf21a on my comments branch. --[[smcv]]
+
+[[!tag patch]]
--
cgit v1.2.3
From 3b0aa2fcba3d9474ad58c0a3c30a3853298be692 Mon Sep 17 00:00:00 2001
From: "http://smcv.pseudorandom.co.uk/"
Date: Sun, 21 Dec 2008 12:25:55 -0500
Subject: Another fixed bug in beautify_urlpath
---
doc/bugs/Comments_link_is_to_index.html_if_usedirs_is_on.mdwn | 5 +++++
1 file changed, 5 insertions(+)
create mode 100644 doc/bugs/Comments_link_is_to_index.html_if_usedirs_is_on.mdwn
(limited to 'doc')
diff --git a/doc/bugs/Comments_link_is_to_index.html_if_usedirs_is_on.mdwn b/doc/bugs/Comments_link_is_to_index.html_if_usedirs_is_on.mdwn
new file mode 100644
index 000000000..3a4962d56
--- /dev/null
+++ b/doc/bugs/Comments_link_is_to_index.html_if_usedirs_is_on.mdwn
@@ -0,0 +1,5 @@
+When a page links to its own #comments anchor you get a link like
+"index.html#comments" rather than "./#comments". Fixed in commit 0844bd0b
+on my 'comments' branch. --[[smcv]]
+
+[[!tag patch]]
--
cgit v1.2.3
From f3512450fd55c7bde40576f1afb12096f5ba589e Mon Sep 17 00:00:00 2001
From: Joey Hess
Date: Sun, 21 Dec 2008 13:00:03 -0500
Subject: close merged bugs
---
doc/bugs/Comments_link_is_to_index.html_if_usedirs_is_on.mdwn | 2 +-
...ify__95__urlpath_will_add_.__47___even_if_it_is_already_present.mdwn | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
(limited to 'doc')
diff --git a/doc/bugs/Comments_link_is_to_index.html_if_usedirs_is_on.mdwn b/doc/bugs/Comments_link_is_to_index.html_if_usedirs_is_on.mdwn
index 3a4962d56..6df3ccd9c 100644
--- a/doc/bugs/Comments_link_is_to_index.html_if_usedirs_is_on.mdwn
+++ b/doc/bugs/Comments_link_is_to_index.html_if_usedirs_is_on.mdwn
@@ -2,4 +2,4 @@ When a page links to its own #comments anchor you get a link like
"index.html#comments" rather than "./#comments". Fixed in commit 0844bd0b
on my 'comments' branch. --[[smcv]]
-[[!tag patch]]
+[[!tag patch done]]
diff --git a/doc/bugs/beautify__95__urlpath_will_add_.__47___even_if_it_is_already_present.mdwn b/doc/bugs/beautify__95__urlpath_will_add_.__47___even_if_it_is_already_present.mdwn
index c26dc1138..8e96b1f56 100644
--- a/doc/bugs/beautify__95__urlpath_will_add_.__47___even_if_it_is_already_present.mdwn
+++ b/doc/bugs/beautify__95__urlpath_will_add_.__47___even_if_it_is_already_present.mdwn
@@ -1,3 +1,3 @@
beautify_urlpath will prepend a useless "./" to the URL "./foo". Fixed in commit 5b1cf21a on my comments branch. --[[smcv]]
-[[!tag patch]]
+[[!tag patch done]]
--
cgit v1.2.3
From 041f8e3774dc129346622df26647e49d7aa85375 Mon Sep 17 00:00:00 2001
From: Joey Hess
Date: Sun, 21 Dec 2008 13:08:26 -0500
Subject: more reorg
---
doc/todo/comments.mdwn | 67 ++++++++++++++++++++++++++------------------------
1 file changed, 35 insertions(+), 32 deletions(-)
(limited to 'doc')
diff --git a/doc/todo/comments.mdwn b/doc/todo/comments.mdwn
index a2c1deeb3..bab46a0b2 100644
--- a/doc/todo/comments.mdwn
+++ b/doc/todo/comments.mdwn
@@ -20,6 +20,41 @@
## 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]]
+
+ > There's still goto. You have a branch for that. --[[Joey]]
+
+## Won't fix
+
+* It would be useful to have a pagespec that always matches all comments on
+ pages matching a glob. Something like `comment(blog/*)`.
+ Perhaps postcomment could also be folded into this? Then the pagespec
+ would match both existing comments, as well as new comments that are
+ being posted.
+
+ > Please see [[plugins/comments/discussion]]. If I've convinced you that
+ > internal pages are the way forward, then sure, we can do that, because
+ > people who can comment still won't be able to edit others' comments
+ > (one of my goals is that commenters can't put words into each other's
+ > mouths :-) )
+ >
+ > On the other hand, if you still want me to switch this plugin to "real"
+ > pages, or if internal pages might become editable in future, then
+ > configuring lockedit/anonok so a user X can add comments to blog pages
+ > would also let X edit/delete comments on blog pages (including those
+ > written by others) in arbitrary ways, which doesn't seem good. --[[smcv]]
+
+ > I had a look at implementing comment() and fell afoul of
+ > some optimisations that assume only internal() will be used to match
+ > internal pages. So probably this isn't worth doing. --[[Joey]]
+
+## Done
+
* The default template should have a (?) icon next to unauthenticated users (with the IP address
as title) and an OpenID icon next to OpenIDs
@@ -69,38 +104,6 @@
> Fixed in my comments branch by d0d598e4, 3feebe31, 9e5f504e --[[smcv]]
-## Won't fix
-
-* 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]]
-
-* It would be useful to have a pagespec that always matches all comments on
- pages matching a glob. Something like `comment(blog/*)`.
- Perhaps postcomment could also be folded into this? Then the pagespec
- would match both existing comments, as well as new comments that are
- being posted.
-
- > Please see [[plugins/comments/discussion]]. If I've convinced you that
- > internal pages are the way forward, then sure, we can do that, because
- > people who can comment still won't be able to edit others' comments
- > (one of my goals is that commenters can't put words into each other's
- > mouths :-) )
- >
- > On the other hand, if you still want me to switch this plugin to "real"
- > pages, or if internal pages might become editable in future, then
- > configuring lockedit/anonok so a user X can add comments to blog pages
- > would also let X edit/delete comments on blog pages (including those
- > written by others) in arbitrary ways, which doesn't seem good. --[[smcv]]
-
- > I had a look at implementing comment() and fell afoul of
- > some optimisations that assume only internal() will be used to match
- > internal pages. So probably this isn't worth doing. --[[Joey]]
-
-## Done
* Add `COMMENTOPENID`: the authenticated/verified user name, if and only if it was an OpenID
--
cgit v1.2.3
From 4b66a8d00a79da1e636b0aba480b42e598134b49 Mon Sep 17 00:00:00 2001
From: Joey Hess
Date: Sun, 21 Dec 2008 13:14:31 -0500
Subject: openid branch merged
---
debian/changelog | 1 +
doc/todo/Improve_display_of_OpenIDs.mdwn | 2 +-
2 files changed, 2 insertions(+), 1 deletion(-)
(limited to 'doc')
diff --git a/debian/changelog b/debian/changelog
index 056fabc7d..579617d33 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -25,6 +25,7 @@ ikiwiki (2.71) UNRELEASED; urgency=low
Closes: #508622 (Michael Gold)
* meta: Process meta date during scan pass so that the date will always
affect sorting in inlines.
+ * Improve display of some openids (smcv)
-- Joey Hess Mon, 17 Nov 2008 14:02:10 -0500
diff --git a/doc/todo/Improve_display_of_OpenIDs.mdwn b/doc/todo/Improve_display_of_OpenIDs.mdwn
index 9c21e8234..e2ba1d90d 100644
--- a/doc/todo/Improve_display_of_OpenIDs.mdwn
+++ b/doc/todo/Improve_display_of_OpenIDs.mdwn
@@ -2,4 +2,4 @@ Some OpenIDs seen in the IkiWiki git history are displayed poorly in [[RecentCha
My `openid` branch on improves on a couple of cases and adds a regression test. --[[smcv]]
-[[!tag patch]]
+[[!tag patch done]]
--
cgit v1.2.3
From a0eee761f7ded1d5bacd96fe79300ec49384cba2 Mon Sep 17 00:00:00 2001
From: Joey Hess
Date: Sun, 21 Dec 2008 16:44:02 -0500
Subject: mention comments plugin
---
doc/examples/blog.mdwn | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
(limited to 'doc')
diff --git a/doc/examples/blog.mdwn b/doc/examples/blog.mdwn
index 3e89c4b99..afdabe316 100644
--- a/doc/examples/blog.mdwn
+++ b/doc/examples/blog.mdwn
@@ -12,7 +12,12 @@ Some additional configuration you might want to do:
example of how to tag a post is:
\[[!tag tags/life]]
-* Enable the sidebar plugin to get a sidebar listing all the categories
- you've tagged posts with.
+* Enable the [[sidebar|plugin/sidebar]] plugin to get a sidebar listing all
+ the categories you've tagged posts with.
-* Enable the pagestats plugin to get a tag cloud display on the [[index]].
+* Enable the [[pagestats|plugin/pagestats]] plugin to get a tag cloud
+* display on the [[index]].
+
+* Enable the [[comments|plugin/comments]] plugin and configure it to
+ enable comments to posts to the blog:
+ comments_pagespec => 'blog/posts/*',
--
cgit v1.2.3
From 836bf625c9de3c7624c2863228662583b634a16f Mon Sep 17 00:00:00 2001
From: Joey Hess
Date: Sun, 21 Dec 2008 16:45:59 -0500
Subject: formatting
---
debian/changelog | 4 ++--
doc/examples/blog.mdwn | 1 +
2 files changed, 3 insertions(+), 2 deletions(-)
(limited to 'doc')
diff --git a/debian/changelog b/debian/changelog
index 579617d33..5da87301b 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,4 +1,4 @@
-ikiwiki (2.71) UNRELEASED; urgency=low
+ikiwiki (2.71) unstable; urgency=low
* comments: Blog-style comment support, contributed by Simon McVittie.
* htmlbalance: New plugin contributed by Simon McVittie.
@@ -27,7 +27,7 @@ ikiwiki (2.71) UNRELEASED; urgency=low
affect sorting in inlines.
* Improve display of some openids (smcv)
- -- Joey Hess Mon, 17 Nov 2008 14:02:10 -0500
+ -- Joey Hess Sun, 21 Dec 2008 16:22:05 -0500
ikiwiki (2.70) unstable; urgency=low
diff --git a/doc/examples/blog.mdwn b/doc/examples/blog.mdwn
index afdabe316..0861d42f7 100644
--- a/doc/examples/blog.mdwn
+++ b/doc/examples/blog.mdwn
@@ -20,4 +20,5 @@ Some additional configuration you might want to do:
* Enable the [[comments|plugin/comments]] plugin and configure it to
enable comments to posts to the blog:
+
comments_pagespec => 'blog/posts/*',
--
cgit v1.2.3
From 63b919b2308d3c392c98850ad5ec1c65593cdf5a Mon Sep 17 00:00:00 2001
From: Joey Hess
Date: Sun, 21 Dec 2008 16:48:15 -0500
Subject: fix links
---
doc/examples/blog.mdwn | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
(limited to 'doc')
diff --git a/doc/examples/blog.mdwn b/doc/examples/blog.mdwn
index 0861d42f7..687f4afce 100644
--- a/doc/examples/blog.mdwn
+++ b/doc/examples/blog.mdwn
@@ -12,13 +12,13 @@ Some additional configuration you might want to do:
example of how to tag a post is:
\[[!tag tags/life]]
-* Enable the [[sidebar|plugin/sidebar]] plugin to get a sidebar listing all
+* Enable the [[sidebar|plugins/sidebar]] plugin to get a sidebar listing all
the categories you've tagged posts with.
-* Enable the [[pagestats|plugin/pagestats]] plugin to get a tag cloud
+* Enable the [[pagestats|plugins/pagestats]] plugin to get a tag cloud
* display on the [[index]].
-* Enable the [[comments|plugin/comments]] plugin and configure it to
+* Enable the [[comments|plugins/comments]] plugin and configure it to
enable comments to posts to the blog:
comments_pagespec => 'blog/posts/*',
--
cgit v1.2.3
From d70f3d6271a28635942ed23f91ed7e144877e62e Mon Sep 17 00:00:00 2001
From: Joey Hess
Date: Sun, 21 Dec 2008 16:50:50 -0500
Subject: unify pagespecs
---
doc/examples/blog.mdwn | 2 +-
doc/plugins/comments.mdwn | 3 ++-
2 files changed, 3 insertions(+), 2 deletions(-)
(limited to 'doc')
diff --git a/doc/examples/blog.mdwn b/doc/examples/blog.mdwn
index 687f4afce..091e37431 100644
--- a/doc/examples/blog.mdwn
+++ b/doc/examples/blog.mdwn
@@ -21,4 +21,4 @@ Some additional configuration you might want to do:
* Enable the [[comments|plugins/comments]] plugin and configure it to
enable comments to posts to the blog:
- comments_pagespec => 'blog/posts/*',
+ comments_pagespec => 'blog/posts/* and !*/Discussion',
diff --git a/doc/plugins/comments.mdwn b/doc/plugins/comments.mdwn
index afaf2c7ae..72b11af64 100644
--- a/doc/plugins/comments.mdwn
+++ b/doc/plugins/comments.mdwn
@@ -25,7 +25,8 @@ There are some global options for the setup file:
* `comments_pagespec`: [[ikiwiki/PageSpec]] of pages where comments are
allowed. The default is not to allow comments on any pages. To allow
- comments to all posts to a blog, you could use `blog/* and !*/Discussion`.
+ comments to all posts to a blog, you could use
+ `blog/posts/* and !*/Discussion`.
* `comments_closed_pagespec`: [[ikiwiki/PageSpec]] of pages where
posting of new comments is closed, but any existing comments will still
be displayed. Often you will list a set of individual pages here.
--
cgit v1.2.3
From 7f1992cbe11732446b5199b8fdf4d6513a14688b Mon Sep 17 00:00:00 2001
From: Joey Hess
Date: Mon, 22 Dec 2008 00:03:15 -0500
Subject: add news item for ikiwiki 2.71
---
doc/news/version_2.66.mdwn | 39 ---------------------------------------
doc/news/version_2.71.mdwn | 28 ++++++++++++++++++++++++++++
2 files changed, 28 insertions(+), 39 deletions(-)
delete mode 100644 doc/news/version_2.66.mdwn
create mode 100644 doc/news/version_2.71.mdwn
(limited to 'doc')
diff --git a/doc/news/version_2.66.mdwn b/doc/news/version_2.66.mdwn
deleted file mode 100644
index 029c7a1b9..000000000
--- a/doc/news/version_2.66.mdwn
+++ /dev/null
@@ -1,39 +0,0 @@
-ikiwiki 2.66 released with [[!toggle text="these changes"]]
-[[!toggleable text="""
- * recentchanges: Fix redirects to non-page files.
- * aggregate: Avoid uninitialized value warnings for pages with no recorded
- ctime.
- * attachment: Add admin() pagespec to test if the uploading user is a wiki
- admin.
- * git: Fix handling of utf-8 filenames in recentchanges.
- * tag: Make edit link for new tags ensure that the tags are created
- inside tagbase, when it's set.
- * template: Make edit link for new templates ensure the page is located
- under toplevel templates directory.
- * htmlscrubber: Add a config setting that can be used to disable the
- scrubber acting on a set of pages.
- * Expand usage message and add --help. Closes: #[500344](http://bugs.debian.org/500344)
- * Beautify urls used in various places. (smcv)
- * Export pagetitle, titlepage, linkpage.
- * htmltidy: Avoid returning undef if tidy fails. Also avoid returning the
- untidied content if tidy crashes. In either case, it seems best to tidy
- the content to nothing.
- * htmltidy: Avoid spewing tidy errors to stderr.
- * Reorganize index file, add a format version field. Upgrades to the new
- index format should be transparent.
- * Add %wikistate, which is like %pagestate except not specific to a given
- page, and is preserved across rebuilds.
- * editpage: Be more aggressive (and less buggy) about cleaning up
- temporary files rendered during page preview.
- * Add an indexpages option, which causes foo/index.mdwn to be the source
- for page foo when foo.mdwn doesn't exist. Also, when it's enabled,
- creating a new page will save it to foo/index.mdwn by default.
- Closes: #[474611](http://bugs.debian.org/474611)
- (Sponsored by The TOVA Company.)
- * httpauth: Document that ikiwiki.cgi has to be in a directory subject to
- authentication. Closes: #[500524](http://bugs.debian.org/500524)
- * inline: Fix handling of rootpage that doesn't exist.
- * attachment: Support adding attachments to pages even as they are being
- created.
- * remove, rename: Allow acting on attachments as a page is being created.
- * Updated French translation. Closes: #[500929](http://bugs.debian.org/500929)"""]]
\ No newline at end of file
diff --git a/doc/news/version_2.71.mdwn b/doc/news/version_2.71.mdwn
new file mode 100644
index 000000000..2c8609988
--- /dev/null
+++ b/doc/news/version_2.71.mdwn
@@ -0,0 +1,28 @@
+ikiwiki 2.71 released with [[!toggle text="these changes"]]
+[[!toggleable text="""
+ * comments: Blog-style comment support, contributed by Simon McVittie.
+ * htmlbalance: New plugin contributed by Simon McVittie.
+ * Change deb dependencies to list Text::Markdown before markdown (really
+ this time).
+ * Improve escaping of wikilinks and preprocessor directives in content
+ produced by aggregate and recentchanges.
+ * French translation update from Philippe Batailler. Closes: #[506250](http://bugs.debian.org/506250)
+ * Spanish translation update from Victor Moral.
+ * Fix handling of wrappergroup option.
+ * Correct --dumpsetup to include the srcdir in the setup file.
+ * German translation update from Kai Wasserbäch. Closes: #[507056](http://bugs.debian.org/507056)
+ * inline: Support emptyfeeds=no option to skip generating empty feeds.
+ * inline: Support feedfile option to change the filename of the feed
+ generated.
+ * meta: Pass info to htmlscrubber so htmlscrubber\_skip can take effect.
+ * htmlbalance: don't compact whitespace, and set misc other options (smcv)
+ * rename: Fix double-escaping of page name in edit box.
+ * monotone: When getting the log, tell monotone how many entries
+ we want, rather than closing the pipe, which it dislikes. (thm)
+ * Coding style change: Remove explcit vim folding markers.
+ * aggregate: If a feed fails to be downloaded, try again immediatly
+ next time aggregation is run, even if the usual time has not passed.
+ Closes: #[508622](http://bugs.debian.org/508622) (Michael Gold)
+ * meta: Process meta date during scan pass so that the date will always
+ affect sorting in inlines.
+ * Improve display of some openids (smcv)"""]]
\ No newline at end of file
--
cgit v1.2.3
From 09af90e7753267884618e435cba3465916256e09 Mon Sep 17 00:00:00 2001
From: Joey Hess
Date: Mon, 22 Dec 2008 16:41:29 -0500
Subject: update
---
doc/roadmap.mdwn | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'doc')
diff --git a/doc/roadmap.mdwn b/doc/roadmap.mdwn
index 488e2dec8..9ed5742eb 100644
--- a/doc/roadmap.mdwn
+++ b/doc/roadmap.mdwn
@@ -52,7 +52,7 @@ Version 3.0 will be an opportunity to make significant transitions.
It will include a vast number of new features, bugfixes, and other
improvements, far too many to list here.
-Release is planned for fall, 2008.
+Release is planned for fall^Wlate, 2008.
----
--
cgit v1.2.3
From 143c4371068d9a019fa7556c5ef9ee2696e3b678 Mon Sep 17 00:00:00 2001
From: "http://smcv.pseudorandom.co.uk/"
Date: Mon, 22 Dec 2008 18:09:15 -0500
Subject: reference my recentchanges branch
---
doc/bugs/comments_produce_broken_links_in_RecentChanges.mdwn | 6 ++++++
1 file changed, 6 insertions(+)
create mode 100644 doc/bugs/comments_produce_broken_links_in_RecentChanges.mdwn
(limited to 'doc')
diff --git a/doc/bugs/comments_produce_broken_links_in_RecentChanges.mdwn b/doc/bugs/comments_produce_broken_links_in_RecentChanges.mdwn
new file mode 100644
index 000000000..0d1d89b3f
--- /dev/null
+++ b/doc/bugs/comments_produce_broken_links_in_RecentChanges.mdwn
@@ -0,0 +1,6 @@
+Comments produce links like `sandbox/comment_1` in [[RecentChanges]], which,
+when clicked, redirect to a page that does not exist.
+
+The `recentchanges` branch in my repository contains one possible [[patch]],
+which causes the CGI to go to the [[ikiwiki/directive/meta]] `permalink`, if
+any, if the page is internal (comments do have a permalink).
--
cgit v1.2.3
From 8dc052a1ce59d246713c5c66d8f25145f9f41f25 Mon Sep 17 00:00:00 2001
From: Joey Hess
Date: Mon, 22 Dec 2008 19:04:02 -0500
Subject: merge recentchanges comments fix
---
debian/changelog | 6 ++++++
doc/bugs/comments_produce_broken_links_in_RecentChanges.mdwn | 3 +++
2 files changed, 9 insertions(+)
(limited to 'doc')
diff --git a/debian/changelog b/debian/changelog
index 5da87301b..ce3949436 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+ikiwiki (2.72) UNRELEASED; urgency=low
+
+ * Avoid comments in recentchanges being broken links (smcv)
+
+ -- Joey Hess Mon, 22 Dec 2008 19:02:16 -0500
+
ikiwiki (2.71) unstable; urgency=low
* comments: Blog-style comment support, contributed by Simon McVittie.
diff --git a/doc/bugs/comments_produce_broken_links_in_RecentChanges.mdwn b/doc/bugs/comments_produce_broken_links_in_RecentChanges.mdwn
index 0d1d89b3f..dae00857b 100644
--- a/doc/bugs/comments_produce_broken_links_in_RecentChanges.mdwn
+++ b/doc/bugs/comments_produce_broken_links_in_RecentChanges.mdwn
@@ -4,3 +4,6 @@ when clicked, redirect to a page that does not exist.
The `recentchanges` branch in my repository contains one possible [[patch]],
which causes the CGI to go to the [[ikiwiki/directive/meta]] `permalink`, if
any, if the page is internal (comments do have a permalink).
+
+> [[done]].. I I had thought about not showing internal page changes at
+> all, but I like your approach better --[[Joey]]
--
cgit v1.2.3
From 02da7ec599df4f4fb4dfc2b793147d6ed82cebfc Mon Sep 17 00:00:00 2001
From: "http://puck.openid.org/"
Date: Mon, 22 Dec 2008 23:14:15 -0500
Subject:
---
...Allow_disabling_edit_and_preferences_links.mdwn | 27 ++++++++++++++++++++++
1 file changed, 27 insertions(+)
create mode 100644 doc/todo/Allow_disabling_edit_and_preferences_links.mdwn
(limited to 'doc')
diff --git a/doc/todo/Allow_disabling_edit_and_preferences_links.mdwn b/doc/todo/Allow_disabling_edit_and_preferences_links.mdwn
new file mode 100644
index 000000000..10eae35a7
--- /dev/null
+++ b/doc/todo/Allow_disabling_edit_and_preferences_links.mdwn
@@ -0,0 +1,27 @@
+This patch allows disabling the edit and preferences link in the config file. It is backwards compatible (so peoples edit and preferences links won't suddenly vanish).
+
+To disable edit or prefs respectively, add the following to the config file:
+
+
--
cgit v1.2.3
From e81c59748e923137e769be675424213061858cad Mon Sep 17 00:00:00 2001
From: intrigeri
Date: Tue, 23 Dec 2008 00:13:12 +0100
Subject: httpauth_feature_parity_with_passwordauth: a bit more thinking
Signed-off-by: intrigeri
---
.../httpauth_feature_parity_with_passwordauth.mdwn | 21 +++++++++++++++++++--
1 file changed, 19 insertions(+), 2 deletions(-)
(limited to 'doc')
diff --git a/doc/todo/httpauth_feature_parity_with_passwordauth.mdwn b/doc/todo/httpauth_feature_parity_with_passwordauth.mdwn
index 8a338ece1..eb71cf840 100644
--- a/doc/todo/httpauth_feature_parity_with_passwordauth.mdwn
+++ b/doc/todo/httpauth_feature_parity_with_passwordauth.mdwn
@@ -1,5 +1,8 @@
-The only way to have a private ikiwiki, with a shared user database for static pages and CGI authentication, is to use [[plugins/httpauth]]. It would be good for httpauth to be on par with [[plugins/passwordauth]],
-i.e. to allow registering users, resetting passwords, and changing passwords; supporting some kind of
+The only way to have a private ikiwiki, with a shared user database
+for static pages and CGI authentication, is to use
+[[plugins/httpauth]]. It would be good for httpauth to be on par with
+[[plugins/passwordauth]], i.e. to allow registering users, resetting
+passwords, and changing passwords; supporting some kind of
`account_creation_password` configuration option would be nice, too.
I'll probably propose patches implementing this at some point.
@@ -8,4 +11,18 @@ the relevant passwordauth code, instead of rewriting it completely in httpauth.
-- [[intrigeri]]
+Well, on such a private wiki, one can neither register herself nor
+reset his password: the registration page, as any other page, would be
+forbidden to non-authenticated users. Admin users should then be
+enabled to:
+
+- register a new user
+- reset someone else's password
+
+In both cases, a brand new random password is sent by e-mail to the
+new user.
+
+An authenticated user should nevertheless be able to change his
+own password. -- [[intrigeri]]
+
[[wishlist]]
--
cgit v1.2.3
From 298c16eda952e77627723ea5adb57a5c03d7ce71 Mon Sep 17 00:00:00 2001
From: intrigeri
Date: Tue, 23 Dec 2008 00:24:48 +0100
Subject: po: make the dev timing clearer
---
doc/plugins/contrib/po.mdwn | 3 +++
1 file changed, 3 insertions(+)
(limited to 'doc')
diff --git a/doc/plugins/contrib/po.mdwn b/doc/plugins/contrib/po.mdwn
index 0fd06cb81..f90ffeed2 100644
--- a/doc/plugins/contrib/po.mdwn
+++ b/doc/plugins/contrib/po.mdwn
@@ -160,3 +160,6 @@ Any thoughts on this?
>>>>> I am able to do myself in this area. --[[intrigeri]]
>>>>>>
>>>>>> I came up with a patch for the WrapI18N issue --[[Joey]]
+
+I've set this plugin development aside for a while. I will be back and
+finish it at some point in the first quarter of 2009. --[[intrigeri]]
--
cgit v1.2.3
From f1f6c5601f4f0b9e9fcab0db997b3004df14bf64 Mon Sep 17 00:00:00 2001
From: "http://hendry.iki.fi/"
Date: Tue, 23 Dec 2008 09:29:02 -0500
Subject: Any other schools?
---
doc/ikiwikiusers.mdwn | 4 ++++
1 file changed, 4 insertions(+)
(limited to 'doc')
diff --git a/doc/ikiwikiusers.mdwn b/doc/ikiwikiusers.mdwn
index 263e8583a..b4c9a2dc7 100644
--- a/doc/ikiwikiusers.mdwn
+++ b/doc/ikiwikiusers.mdwn
@@ -105,6 +105,10 @@ Personal sites and blogs
* [[xma]] is using ikiwiki ()
* [[JanWalzer|jwalzer]]'s [homepage](http://wa.lzer.net/) -- Work in Progress
* [[Adam_Trickett|ajt]]'s home intranet/sanbox system ([Internet site & blog](http://www.iredale.net/) -- not ikiwiki yet)
+
+Schools
+=======
+* [St Hugh of Lincoln Primary School in Surrey](http://hugh.vm.bytemark.co.uk/)
Please feel free to add your own ikiwiki site!
--
cgit v1.2.3
From 29c8db4c7ff73eb91cc8b63e67adaf50f0a0ce28 Mon Sep 17 00:00:00 2001
From: Joey Hess
Date: Tue, 23 Dec 2008 13:19:47 -0500
Subject: fix popcon graph link
---
doc/ikiwikiusers.mdwn | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'doc')
diff --git a/doc/ikiwikiusers.mdwn b/doc/ikiwikiusers.mdwn
index b4c9a2dc7..0c45efa4f 100644
--- a/doc/ikiwikiusers.mdwn
+++ b/doc/ikiwikiusers.mdwn
@@ -112,7 +112,7 @@ Schools
Please feel free to add your own ikiwiki site!
-See also: [Debian ikiwiki popcon graph](http://people.debian.org/~igloo/popcon-graphs/index.php?packages=ikiwiki)
+See also: [Debian ikiwiki popcon graph](http://popcon.debian.org/~igloo/popcon-graphs/index.php?packages=ikiwiki)
and [google search for ikiwiki powered sites](http://www.google.com/search?q=%22powered%20by%20ikiwiki%22).
While nothing makes me happier than knowing that ikiwiki has happy users, dropping some change in the [[TipJar]] is a nice way to show extra appreciation.
--
cgit v1.2.3
From 276798fbca4409b91c0cad99b45cb334cbb49129 Mon Sep 17 00:00:00 2001
From: Joey Hess
Date: Tue, 23 Dec 2008 13:27:16 -0500
Subject: response
---
doc/todo/Allow_disabling_edit_and_preferences_links.mdwn | 13 +++++++++++++
1 file changed, 13 insertions(+)
(limited to 'doc')
diff --git a/doc/todo/Allow_disabling_edit_and_preferences_links.mdwn b/doc/todo/Allow_disabling_edit_and_preferences_links.mdwn
index 10eae35a7..523a1f4da 100644
--- a/doc/todo/Allow_disabling_edit_and_preferences_links.mdwn
+++ b/doc/todo/Allow_disabling_edit_and_preferences_links.mdwn
@@ -25,3 +25,16 @@ Patch:
}
+
+> On irc, you said, "That was to allow the hack to of using wikistatedir to
+> allow me to generate two websites, one with inline editting, the other a
+> static page for public consumption."
+>
+> The edit and preferences links can already be disabled by editing
+> `page.tmpl`. (Look for PREFSURL and EDITURL).
+>
+> More to the point though, disabling those links does not disable anyone
+> consticting the urls by hand and logging in and editing a page. So you'd
+> really want to disable the editpage plugin in the setup file for the
+> public, static wiki. Sounds like you might also want to turn off cgi
+> entirely for that build. --[[Joey]]
--
cgit v1.2.3
From ecf2408bf64de1aee3bb8b79f6e28c14b52cf1c4 Mon Sep 17 00:00:00 2001
From: Joey Hess
Date: Tue, 23 Dec 2008 16:25:52 -0500
Subject: fix a few directives using the old syntax
I'm turning on prefix_directives for the live wiki now.
---
doc/plugins/aggregate/discussion.mdwn | 2 +-
doc/tips/inside_dot_ikiwiki.mdwn | 2 +-
doc/todo/support_creole_markup.mdwn | 2 +-
doc/todo/syntax_highlighting.mdwn | 8 ++++----
doc/users/xma.mdwn | 2 +-
5 files changed, 8 insertions(+), 8 deletions(-)
(limited to 'doc')
diff --git a/doc/plugins/aggregate/discussion.mdwn b/doc/plugins/aggregate/discussion.mdwn
index 1db6240d5..1a9844577 100644
--- a/doc/plugins/aggregate/discussion.mdwn
+++ b/doc/plugins/aggregate/discussion.mdwn
@@ -35,7 +35,7 @@ Two things aren't working as I'd expect:
> problem. You can see the feed validator complain about it here:
>
>
-> It's sorta unfortunate that [[cpan XML::Feed]] doesn't just assume the
+> It's sorta unfortunate that [[!cpan XML::Feed]] doesn't just assume the
> un-esxaped html is part of the description field. Probably other feed
> parsers are more lenient. --[[Joey]]
diff --git a/doc/tips/inside_dot_ikiwiki.mdwn b/doc/tips/inside_dot_ikiwiki.mdwn
index 1f76ce4bd..b81ffae8d 100644
--- a/doc/tips/inside_dot_ikiwiki.mdwn
+++ b/doc/tips/inside_dot_ikiwiki.mdwn
@@ -66,7 +66,7 @@ to do it rarely, and the data I've wanted has been different each time.
## the session database
-`.ikiwiki/sessions.db` is the session database. See the [[cpan CGI::Session]]
+`.ikiwiki/sessions.db` is the session database. See the [[!cpan CGI::Session]]
documentation for more details.
## lockfiles
diff --git a/doc/todo/support_creole_markup.mdwn b/doc/todo/support_creole_markup.mdwn
index b0ebf5b9e..5a1e1286d 100644
--- a/doc/todo/support_creole_markup.mdwn
+++ b/doc/todo/support_creole_markup.mdwn
@@ -12,7 +12,7 @@ And there is a perl module: Text::WikiCreole
Syntax file for vim: http://www.peter-hoffmann.com/code/vim/ (Since a typical ikiwiki user usually use external editors. :))
-> Should be pretty easy to add a plugin to do it using [[cpan
+> Should be pretty easy to add a plugin to do it using [[!cpan
> Text::WikiCreole]]. --[[Joey]]
[[done]]
diff --git a/doc/todo/syntax_highlighting.mdwn b/doc/todo/syntax_highlighting.mdwn
index 3de3032b3..d9a791c6f 100644
--- a/doc/todo/syntax_highlighting.mdwn
+++ b/doc/todo/syntax_highlighting.mdwn
@@ -7,16 +7,16 @@ pages, as well as doing syntax highlighting as a preprocessor directive
## The big list of possibilities
-* [[plugins/contrib/highlightcode]] uses [[cpan Syntax::Highlight::Engine::Kate]],
+* [[plugins/contrib/highlightcode]] uses [[!cpan Syntax::Highlight::Engine::Kate]],
operates on whole source files only, has a few bugs (see
[here](http://u32.net/Highlight_Code_Plugin/), and needs to be updated to
support [[bugs/multiple_pages_with_same_name]].
-* [[cpan IkiWiki-Plugin-syntax]] only operates as a directive.
+* [[!cpan IkiWiki-Plugin-syntax]] only operates as a directive.
Interestingly, it supports multiple highlighting backends, including Kate
and Vim.
* [[plugins/contrib/syntax]] only operates as a directive
([[not_on_source_code_files|automatic_use_of_syntax_plugin_on_source_code_files]]),
- and uses [[cpan Text::VimColor]].
+ and uses [[!cpan Text::VimColor]].
* [[plugins/contrib/sourcehighlight]] uses src-highlight, and operates on
whole source files only. Needs to be updated to
support [[bugs/multiple_pages_with_same_name]].
@@ -43,7 +43,7 @@ pages, as well as doing syntax highlighting as a preprocessor directive
inside source files. Doing this probably means post-processing the
results of the highlighting engine, to find places where it's highlighted
comments, and then running them through the ikiwiki rendering pipeline.
- This seems fairly doable with [[cpan Syntax::Highlight::Engine::Kate]],
+ This seems fairly doable with [[!cpan Syntax::Highlight::Engine::Kate]],
at least.
* The whole-file plugins tend to have a problem that things that look like
wikilinks in the source code get munged into links by ikiwiki, which can
diff --git a/doc/users/xma.mdwn b/doc/users/xma.mdwn
index 97a8ef869..89f2ff74c 100644
--- a/doc/users/xma.mdwn
+++ b/doc/users/xma.mdwn
@@ -9,7 +9,7 @@ Anyway, [[ikiwiki]] is really *awesome* !
## More about me
-I am CLI user living in the linux console. More precisely, I live in an [[GNU Emacs]] frame all day long. My main computer is an EeePC 901 running Slackware GNU/Linux 12.1. I do not have X installed (too lazy) but when in X, I am running an instance of [[CLFSWM]].
+I am CLI user living in the linux console. More precisely, I live in an [[GNU_Emacs]] frame all day long. My main computer is an EeePC 901 running Slackware GNU/Linux 12.1. I do not have X installed (too lazy) but when in X, I am running an instance of [[CLFSWM]].
## Contacting me
--
cgit v1.2.3
From 4d1d4db92797b5aa74c4aff0cc24ab8ade3c1f43 Mon Sep 17 00:00:00 2001
From: "http://puck.openid.org/"
Date: Tue, 23 Dec 2008 17:48:05 -0500
Subject:
---
doc/todo/Allow_disabling_edit_and_preferences_links.mdwn | 8 ++++++++
1 file changed, 8 insertions(+)
(limited to 'doc')
diff --git a/doc/todo/Allow_disabling_edit_and_preferences_links.mdwn b/doc/todo/Allow_disabling_edit_and_preferences_links.mdwn
index 523a1f4da..1188d1ab2 100644
--- a/doc/todo/Allow_disabling_edit_and_preferences_links.mdwn
+++ b/doc/todo/Allow_disabling_edit_and_preferences_links.mdwn
@@ -38,3 +38,11 @@ Patch:
> really want to disable the editpage plugin in the setup file for the
> public, static wiki. Sounds like you might also want to turn off cgi
> entirely for that build. --[[Joey]]
+
+>> I want to retain the same page.tmpl for both sites (different templates
+>> will just increase the maintenance hell), so disabling the links in the
+>> config for one public site works better in my case.
+>>
+>> 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]]
--
cgit v1.2.3
From 20731f761f7b378934bf3b86dbec20c167464d5f Mon Sep 17 00:00:00 2001
From: "http://puck.openid.org/"
Date: Tue, 23 Dec 2008 18:05:38 -0500
Subject:
---
doc/todo/Add_camelcase_exclusions.mdwn | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)
create mode 100644 doc/todo/Add_camelcase_exclusions.mdwn
(limited to 'doc')
diff --git a/doc/todo/Add_camelcase_exclusions.mdwn b/doc/todo/Add_camelcase_exclusions.mdwn
new file mode 100644
index 000000000..40737c2a0
--- /dev/null
+++ b/doc/todo/Add_camelcase_exclusions.mdwn
@@ -0,0 +1,21 @@
+Camelcase currently looks for any and call camelcase words and turns them into wiki links. This patch adds a config item called camelcase_ignore which is an array of camelcase words to ignore.
+
+
+
+--[[puck]]
--
cgit v1.2.3
From e3b7d1892949090fd1f11e9a211b556b20558069 Mon Sep 17 00:00:00 2001
From: Joey Hess
Date: Tue, 23 Dec 2008 20:08:01 -0500
Subject: close
---
doc/todo/Add_camelcase_exclusions.mdwn | 2 ++
1 file changed, 2 insertions(+)
(limited to 'doc')
diff --git a/doc/todo/Add_camelcase_exclusions.mdwn b/doc/todo/Add_camelcase_exclusions.mdwn
index 40737c2a0..6b86132a0 100644
--- a/doc/todo/Add_camelcase_exclusions.mdwn
+++ b/doc/todo/Add_camelcase_exclusions.mdwn
@@ -19,3 +19,5 @@ Camelcase currently looks for any and call camelcase words and turns them into w
--[[puck]]
+
+[[done]]
--
cgit v1.2.3
From 7da319efc69089662f9635216bbcc48ca53fe606 Mon Sep 17 00:00:00 2001
From: Joey Hess
Date: Fri, 26 Dec 2008 16:08:33 -0500
Subject: inline: Run format hook first
inline has a format hook that is an optimisation hack. Until this hook
runs, the inlined content is not present on the page. This can prevent
other format hooks, that process that content, from acting on inlined
content. In bug ##509710, we discovered this happened commonly for the
embed plugin, but it could in theory happen for many other plugins (color,
cutpaste, etc) that use format to fill in special html after sanitization.
The ordering was essentially random (hash key order). That's kinda a good
thing, because hooks should be independent of other hooks and able to run
in any order. But for things like inline, that just doesn't work.
To fix the immediate problem, let's make hooks able to be registered as
running "first". There was already the ability to make them run "last".
Now, this simple first/middle/last ordering is obviously not going to work
if a lot of things need to run first, or last, since then we'll be back to
being unable to specify ordering inside those sets. But before worrying about
that too much, and considering dependency ordering, etc, observe how few
plugins use last ordering: Exactly one needs it. And, so far, exactly one
needs first ordering. So for now, KISS.
Another implementation note: I could have sorted the plugins with
first/last/middle as the primary key, and plugin name secondary, to get a
guaranteed stable order. Instead, I chose to preserve hash order. Two
opposing things pulled me toward that decision:
1. Since has order is randomish, it will ensure that no accidental
ordering assumptions are made.
2. Assume for a minute that ordering matters a lot more than expected.
Drastically changing the order a particular configuration uses could
result in a lot of subtle bugs cropping up. (I hope this assumption is
false, partly due to #1, but can't rule it out.)
---
IkiWiki.pm | 16 ++++++++++------
IkiWiki/Plugin/inline.pm | 4 ++--
debian/changelog | 2 ++
doc/plugins/write.mdwn | 4 ++--
4 files changed, 16 insertions(+), 10 deletions(-)
(limited to 'doc')
diff --git a/IkiWiki.pm b/IkiWiki.pm
index cc1e89acc..54e00ec7b 100644
--- a/IkiWiki.pm
+++ b/IkiWiki.pm
@@ -1536,15 +1536,19 @@ sub run_hooks ($$) {
my $sub=shift;
if (exists $hooks{$type}) {
- my @deferred;
+ my (@first, @middle, @last);
foreach my $id (keys %{$hooks{$type}}) {
- if ($hooks{$type}{$id}{last}) {
- push @deferred, $id;
- next;
+ if ($hooks{$type}{$id}{first}) {
+ push @first, $id;
+ }
+ elsif ($hooks{$type}{$id}{last}) {
+ push @last, $id;
+ }
+ else {
+ push @middle, $id;
}
- $sub->($hooks{$type}{$id}{call});
}
- foreach my $id (@deferred) {
+ foreach my $id (@first, @middle, @last) {
$sub->($hooks{$type}{$id}{call});
}
}
diff --git a/IkiWiki/Plugin/inline.pm b/IkiWiki/Plugin/inline.pm
index 8490b455f..58da0beb8 100644
--- a/IkiWiki/Plugin/inline.pm
+++ b/IkiWiki/Plugin/inline.pm
@@ -1,4 +1,4 @@
-#!/usr/bin/perl
+!/usr/bin/perl
# Page inlining and blogging.
package IkiWiki::Plugin::inline;
@@ -22,7 +22,7 @@ sub import {
call => \&IkiWiki::preprocess_inline);
hook(type => "pagetemplate", id => "inline",
call => \&IkiWiki::pagetemplate_inline);
- hook(type => "format", id => "inline", call => \&format);
+ hook(type => "format", id => "inline", call => \&format, first => 1);
# Hook to change to do pinging since it's called late.
# This ensures each page only pings once and prevents slow
# pings interrupting page builds.
diff --git a/debian/changelog b/debian/changelog
index 96a70fcc9..0fa6590f0 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -5,6 +5,8 @@ ikiwiki (2.72) UNRELEASED; urgency=low
* camelcase: Add camelcase_ignore setting.
* googlecalendar: Add runtime deprecation warning.
* comments: Deal with users entering unqualified or partial urls.
+ * inline: Run format hook first, to ensure other format hooks can affect
+ inlined content. Closes: #509710
-- Joey Hess Mon, 22 Dec 2008 19:02:16 -0500
diff --git a/doc/plugins/write.mdwn b/doc/plugins/write.mdwn
index b6fa96f91..9b5cf27f7 100644
--- a/doc/plugins/write.mdwn
+++ b/doc/plugins/write.mdwn
@@ -55,8 +55,8 @@ plugin, and a "call" parameter, which tells what function to call for the
hook.
An optional "last" parameter, if set to a true value, makes the hook run
-after all other hooks of its type. Useful if the hook depends on some other
-hook being run first.
+after all other hooks of its type, and an optional "first" parameter makes
+it run first. Useful if the hook depends on some other hook being run first.
## Types of hooks
--
cgit v1.2.3
From 82d94d4d4a8768e4d741bd37fc3b805260f775b1 Mon Sep 17 00:00:00 2001
From: Joey Hess
Date: Sun, 28 Dec 2008 15:05:33 -0500
Subject: add news item for ikiwiki 2.72
---
doc/news/version_2.67.mdwn | 17 -----------------
doc/news/version_2.72.mdwn | 9 +++++++++
2 files changed, 9 insertions(+), 17 deletions(-)
delete mode 100644 doc/news/version_2.67.mdwn
create mode 100644 doc/news/version_2.72.mdwn
(limited to 'doc')
diff --git a/doc/news/version_2.67.mdwn b/doc/news/version_2.67.mdwn
deleted file mode 100644
index a0911b58f..000000000
--- a/doc/news/version_2.67.mdwn
+++ /dev/null
@@ -1,17 +0,0 @@
-ikiwiki 2.67 released with [[!toggle text="these changes"]]
-[[!toggleable text="""
- * remove: Avoid $\_ breakage. (Stupid, stupid perl.)
- * Updated Spanish translation from Victor Moral.
- * lockedit: Support specifying which users (and IP addresses) a page
- is locked for. This supports most of the ACL type things users have been
- wanting to be done. Closes: #[443346](http://bugs.debian.org/443346) (It does not control who can read a
- page, but that's out of scope for ikiwiki.)
- * orphans: Fix unquoted page name in regexp.
- * google: Plugin provides google site search, contributed by Peter Simons.
- * Pass HTTPS variable through the wrapper so that CGI->https can be used
- by plugins. Closes: #[502047](http://bugs.debian.org/502047)
- * inline: Allow MTIME to be used in inlinepage.tmpl.
- * inline: Use the feed's description in the rss and atom links.
- Closes: #[502113](http://bugs.debian.org/502113)
- * aggregate: Avoid bug that caused immediate expiration of items
- with a date in the future."""]]
\ No newline at end of file
diff --git a/doc/news/version_2.72.mdwn b/doc/news/version_2.72.mdwn
new file mode 100644
index 000000000..26274a3c8
--- /dev/null
+++ b/doc/news/version_2.72.mdwn
@@ -0,0 +1,9 @@
+ikiwiki 2.72 released with [[!toggle text="these changes"]]
+[[!toggleable text="""
+ * Avoid comments in recentchanges being broken links (smcv)
+ * Add deprecation warning for GlobLists, which will stop working in 3.0.
+ * camelcase: Add camelcase\_ignore setting.
+ * googlecalendar: Add runtime deprecation warning.
+ * comments: Deal with users entering unqualified or partial urls.
+ * inline: Run format hook first, to ensure other format hooks can affect
+ inlined content. Closes: #[509710](http://bugs.debian.org/509710)"""]]
\ No newline at end of file
--
cgit v1.2.3
From d8f16c4d9523ff315a3e66ddc8dfa8066fe5cdb3 Mon Sep 17 00:00:00 2001
From: Joey Hess
Date: Sun, 28 Dec 2008 22:03:34 -0500
Subject: clarify cgiurl setting
---
doc/tips/nearlyfreespeech.mdwn | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
(limited to 'doc')
diff --git a/doc/tips/nearlyfreespeech.mdwn b/doc/tips/nearlyfreespeech.mdwn
index 6715f0c29..4b3b02eac 100644
--- a/doc/tips/nearlyfreespeech.mdwn
+++ b/doc/tips/nearlyfreespeech.mdwn
@@ -81,7 +81,8 @@ Here is an example of how I set up a wiki:
nano ikiwiki.setup
# Set destdir to /home/htdocs
# Set srcdir to /home/private/wiki
- # Set url to http://yoursite.nfshost.com/ , set cgiurl likewise
+ # Set url to http://yoursite.nfshost.com/
+ # Set cgiurl to http://yoursite.nfshost.com/ikiwiki.cgi
# Uncomment the `rcs => "git"` line.
# Set the cgi_wrapper path to /home/htdocs/ikiwiki.cgi
# Set the git_wrapper path to /home/private/wiki.git/hooks/post-update
--
cgit v1.2.3
From f982a620f20a477b78bf795d32bf817356ff5e74 Mon Sep 17 00:00:00 2001
From: Joey Hess
Date: Sun, 28 Dec 2008 22:23:15 -0500
Subject: formatting
---
doc/examples/blog.mdwn | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'doc')
diff --git a/doc/examples/blog.mdwn b/doc/examples/blog.mdwn
index 091e37431..ab73f0204 100644
--- a/doc/examples/blog.mdwn
+++ b/doc/examples/blog.mdwn
@@ -16,7 +16,7 @@ Some additional configuration you might want to do:
the categories you've tagged posts with.
* Enable the [[pagestats|plugins/pagestats]] plugin to get a tag cloud
-* display on the [[index]].
+ to display on the [[index]].
* Enable the [[comments|plugins/comments]] plugin and configure it to
enable comments to posts to the blog:
--
cgit v1.2.3
From 00e55ed171c1da5f6cca22cdb8aaab099dde9c09 Mon Sep 17 00:00:00 2001
From: Joey Hess
Date: Sun, 28 Dec 2008 22:31:22 -0500
Subject: 1st comment spam
---
doc/todo/comments.mdwn | 5 +++++
1 file changed, 5 insertions(+)
(limited to 'doc')
diff --git a/doc/todo/comments.mdwn b/doc/todo/comments.mdwn
index bab46a0b2..832441be1 100644
--- a/doc/todo/comments.mdwn
+++ b/doc/todo/comments.mdwn
@@ -18,6 +18,11 @@
> 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:
+ >
+ > 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
--
cgit v1.2.3
From 1ac4637d4fda3bc5829b93df3f12a19c918d9407 Mon Sep 17 00:00:00 2001
From: "http://blog.mithis.net/"
Date: Mon, 29 Dec 2008 01:26:34 -0500
Subject:
---
.../convert_mediawiki_to_ikiwiki/discussion.mdwn | 48 ++++++++++++++++++++++
1 file changed, 48 insertions(+)
(limited to 'doc')
diff --git a/doc/tips/convert_mediawiki_to_ikiwiki/discussion.mdwn b/doc/tips/convert_mediawiki_to_ikiwiki/discussion.mdwn
index 0a332f8ba..cdb817962 100644
--- a/doc/tips/convert_mediawiki_to_ikiwiki/discussion.mdwn
+++ b/doc/tips/convert_mediawiki_to_ikiwiki/discussion.mdwn
@@ -15,3 +15,51 @@ Also, some detail on converting mediawiki transclusion to ikiwiki inlines...
> "Who knows, the remote site might disappear.". Right now, it appears to
> have done just that. -- [[users/Jon]]
+
+
+The iki-fast-load ruby script from the u32 page is given below:
+
+ #!/usr/bin/env ruby
+
+ # This script is called on the final sorted, de-spammed revision
+ # XML file.
+ #
+ # It doesn't currently check for no-op revisions... I believe
+ # that git-fast-load will dutifully load them even though nothing
+ # happened. I don't care to solve this by adding a file cache
+ # to this script. You can run iki-diff-next.rb to highlight any
+ # empty revisions that need to be removed.
+ #
+ # This turns each node into an equivalent file.
+ # It does not convert spaces to underscores in file names.
+ # This would break wikilinks.
+ # I suppose you could fix this with mod_speling or mod_rewrite.
+ #
+ # It replaces nodes in the Image: namespace with the files themselves.
+
+
+ require 'rubygems'
+ require 'node-callback'
+ require 'time'
+ require 'ostruct'
+
+
+ # pipe is the stream to receive the git-fast-import commands
+ # putfrom is true if this branch has existing commits on it, false if not.
+ def format_git_commit(pipe, f)
+ # Need to escape backslashes and double-quotes for git?
+ # No, git breaks when I do this.
+ # For the filename "path with \\", git sez: bad default revision 'HEAD'
+ # filename = '"' + filename.gsub('\\', '\\\\\\\\').gsub('"', '\\"') + '"'
+
+ # In the calls below, length must be the size in bytes!!
+ # TODO: I haven't figured out how this works in the land of UTF8 and Ruby 1.9.
+ pipe.puts "commit #{f.branch}"
+ pipe.puts "committer #{f.username} <#{f.email}> #{f.timestamp.rfc2822}"
+ pipe.puts "data #{f.message.length}\n#{f.message}\n"
+ pipe.puts "from #{f.branch}^0" if f.putfrom
+ pipe.puts "M 644 inline #{f.filename}"
+ pipe.puts "data #{f.content.length}\n#{f.content}\n"
+ pipe.puts
+ end
+
--
cgit v1.2.3
From 3032909090711c86c5056987043eeff5a1f6aec2 Mon Sep 17 00:00:00 2001
From: "http://blog.mithis.net/"
Date: Mon, 29 Dec 2008 02:01:49 -0500
Subject:
---
.../convert_mediawiki_to_ikiwiki/discussion.mdwn | 547 +++++++++++++++++++++
1 file changed, 547 insertions(+)
(limited to 'doc')
diff --git a/doc/tips/convert_mediawiki_to_ikiwiki/discussion.mdwn b/doc/tips/convert_mediawiki_to_ikiwiki/discussion.mdwn
index cdb817962..15ddccb92 100644
--- a/doc/tips/convert_mediawiki_to_ikiwiki/discussion.mdwn
+++ b/doc/tips/convert_mediawiki_to_ikiwiki/discussion.mdwn
@@ -63,3 +63,550 @@ The iki-fast-load ruby script from the u32 page is given below:
pipe.puts
end
+
+Mediawiki.pm - A plugin which supports mediawiki format.
+
+ #!/usr/bin/perl
+ # By Scott Bronson. Licensed under the GPLv2+ License.
+ # Extends Ikiwiki to be able to handle Mediawiki markup.
+ #
+ # To use the Mediawiki Plugin:
+ # - Install Text::MediawikiFormat
+ # - Turn of prefix_directives in your setup file.
+ # (TODO: we probably don't need to do this anymore?)
+ # prefix_directives => 1,
+ # - Add this plugin on Ikiwiki's path (perl -V, look for @INC)
+ # cp mediawiki.pm something/IkiWiki/Plugin
+ # - And enable it in your setup file
+ # add_plugins => [qw{mediawiki}],
+ # - Finally, turn off the link plugin in setup (this is important)
+ # disable_plugins => [qw{link}],
+ # - Rebuild everything (actually, this should be automatic right?)
+ # - Now all files with a .mediawiki extension should be rendered properly.
+
+
+ package IkiWiki::Plugin::mediawiki;
+
+ use warnings;
+ use strict;
+ use IkiWiki 2.00;
+ use URI;
+
+
+ # This is a gross hack... We disable the link plugin so that our
+ # linkify routine is always called. Then we call the link plugin
+ # directly for all non-mediawiki pages. Ouch... Hopefully Ikiwiki
+ # will be updated soon to support multiple link plugins.
+ require IkiWiki::Plugin::link;
+
+ # Even if T:MwF is not installed, we can still handle all the linking.
+ # The user will just see Mediawiki markup rather than formatted markup.
+ eval q{use Text::MediawikiFormat ()};
+ my $markup_disabled = $@;
+
+ # Work around a UTF8 bug in Text::MediawikiFormat
+ # http://rt.cpan.org/Public/Bug/Display.html?id=26880
+ unless($markup_disabled) {
+ no strict 'refs';
+ no warnings;
+ *{'Text::MediawikiFormat::uri_escape'} = \&URI::Escape::uri_escape_utf8;
+ }
+
+ my %metaheaders; # keeps track of redirects for pagetemplate.
+ my %tags; # keeps track of tags for pagetemplate.
+
+
+ sub import { #{{{
+ hook(type => "checkconfig", id => "mediawiki", call => \&checkconfig);
+ hook(type => "scan", id => "mediawiki", call => \&scan);
+ hook(type => "linkify", id => "mediawiki", call => \&linkify);
+ hook(type => "htmlize", id => "mediawiki", call => \&htmlize);
+ hook(type => "pagetemplate", id => "mediawiki", call => \&pagetemplate);
+ } # }}}
+
+
+ sub checkconfig
+ {
+ return IkiWiki::Plugin::link::checkconfig(@_);
+ }
+
+
+ my $link_regexp = qr{
+ \[\[(?=[^!]) # beginning of link
+ ([^\n\r\]#|<>]+) # 1: page to link to
+ (?:
+ \# # '#', beginning of anchor
+ ([^|\]]+) # 2: anchor text
+ )? # optional
+
+ (?:
+ \| # followed by '|'
+ ([^\]\|]*) # 3: link text
+ )? # optional
+ \]\] # end of link
+ ([a-zA-Z]*) # optional trailing alphas
+ }x;
+
+
+ # Convert spaces in the passed-in string into underscores.
+ # If passed in undef, returns undef without throwing errors.
+ sub underscorize
+ {
+ my $var = shift;
+ $var =~ tr{ }{_} if $var;
+ return $var;
+ }
+
+
+ # Underscorize, strip leading and trailing space, and scrunch
+ # multiple runs of spaces into one underscore.
+ sub scrunch
+ {
+ my $var = shift;
+ if($var) {
+ $var =~ s/^\s+|\s+$//g; # strip leading and trailing space
+ $var =~ s/\s+/ /g; # squash multiple spaces to one
+ }
+ return $var;
+ }
+
+
+ # Translates Mediawiki paths into Ikiwiki paths.
+ # It needs to be pretty careful because Mediawiki and Ikiwiki handle
+ # relative vs. absolute exactly opposite from each other.
+ sub translate_path
+ {
+ my $page = shift;
+ my $path = scrunch(shift);
+
+ # always start from root unless we're doing relative shenanigans.
+ $page = "/" unless $path =~ /^(?:\/|\.\.)/;
+
+ my @result = ();
+ for(split(/\//, "$page/$path")) {
+ if($_ eq '..') {
+ pop @result;
+ } else {
+ push @result, $_ if $_ ne "";
+ }
+ }
+
+ # temporary hack working around http://ikiwiki.info/bugs/Can__39__t_create_root_page/index.html?updated
+ # put this back the way it was once this bug is fixed upstream.
+ # This is actually a major problem because now Mediawiki pages can't link from /Git/git-svn to /git-svn. And upstream appears to be uninterested in fixing this bug. :(
+ # return "/" . join("/", @result);
+ return join("/", @result);
+ }
+
+
+ # Figures out the human-readable text for a wikilink
+ sub linktext
+ {
+ my($page, $inlink, $anchor, $title, $trailing) = @_;
+ my $link = translate_path($page,$inlink);
+
+ # translate_path always produces an absolute link.
+ # get rid of the leading slash before we display this link.
+ $link =~ s#^/##;
+
+ my $out = "";
+ if($title) {
+ $out = IkiWiki::pagetitle($title);
+ } else {
+ $link = $inlink if $inlink =~ /^\s*\//;
+ $out = $anchor ? "$link#$anchor" : $link;
+ if(defined $title && $title eq "") {
+ # a bare pipe appeared in the link...
+ # user wants to strip namespace and trailing parens.
+ $out =~ s/^[A-Za-z0-9_-]*://;
+ $out =~ s/\s*\(.*\)\s*$//;
+ }
+ # A trailing slash suppresses the leading slash
+ $out =~ s#^/(.*)/$#$1#;
+ }
+ $out .= $trailing if defined $trailing;
+ return $out;
+ }
+
+
+ sub tagpage ($)
+ {
+ my $tag=shift;
+
+ if (exists $config{tagbase} && defined $config{tagbase}) {
+ $tag=$config{tagbase}."/".$tag;
+ }
+
+ return $tag;
+ }
+
+
+ # Pass a URL and optional text associated with it. This call turns
+ # it into fully-formatted HTML the same way Mediawiki would.
+ # Counter is used to number untitled links sequentially on the page.
+ # It should be set to 1 when you start parsing a new page. This call
+ # increments it automatically.
+ sub generate_external_link
+ {
+ my $url = shift;
+ my $text = shift;
+ my $counter = shift;
+
+ # Mediawiki trims off trailing commas.
+ # And apparently it does entity substitution first.
+ # Since we can't, we'll fake it.
+
+ # trim any leading and trailing whitespace
+ $url =~ s/^\s+|\s+$//g;
+
+ # url properly terminates on > but must special-case >
+ my $trailer = "";
+ $url =~ s{(\&(?:gt|lt)\;.*)$}{ $trailer = $1, ''; }eg;
+
+ # Trim some potential trailing chars, put them outside the link.
+ my $tmptrail = "";
+ $url =~ s{([,)]+)$}{ $tmptrail .= $1, ''; }eg;
+ $trailer = $tmptrail . $trailer;
+
+ my $title = $url;
+ if(defined $text) {
+ if($text eq "") {
+ $text = "[$$counter]";
+ $$counter += 1;
+ }
+ $text =~ s/^\s+|\s+$//g;
+ $text =~ s/^\|//;
+ } else {
+ $text = $url;
+ }
+
+ return "$text$trailer";
+ }
+
+
+ # Called to handle bookmarks like [[#heading]] or ?#a
+ sub generate_fragment_link
+ {
+ my $url = shift;
+ my $text = shift;
+
+ my $inurl = $url;
+ my $intext = $text;
+ $url = scrunch($url);
+
+ if(defined($text) && $text ne "") {
+ $text = scrunch($text);
+ } else {
+ $text = $url;
+ }
+
+ $url = underscorize($url);
+
+ # For some reason Mediawiki puts blank titles on all its fragment links.
+ # I don't see why we would duplicate that behavior here.
+ return "$text";
+ }
+
+
+ sub generate_internal_link
+ {
+ my($page, $inlink, $anchor, $title, $trailing, $proc) = @_;
+
+ # Ikiwiki's link link plugin wrecks this line when displaying on the site.
+ # Until the code highlighter plugin can turn off link finding,
+ # always escape double brackets in double quotes: [[
+ if($inlink eq '..') {
+ # Mediawiki doesn't touch links like [[..#hi|ho]].
+ return "[[" . $inlink . ($anchor?"#$anchor":"") .
+ ($title?"|$title":"") . "]]" . $trailing;
+ }
+
+ my($linkpage, $linktext);
+ if($inlink =~ /^ (:?) \s* Category (\s* \: \s*) ([^\]]*) $/x) {
+ # Handle category links
+ my $sep = $2;
+ $inlink = $3;
+ $linkpage = IkiWiki::linkpage(translate_path($page, $inlink));
+ if($1) {
+ # Produce a link but don't add this page to the given category.
+ $linkpage = tagpage($linkpage);
+ $linktext = ($title ? '' : "Category$sep") .
+ linktext($page, $inlink, $anchor, $title, $trailing);
+ $tags{$page}{$linkpage} = 1;
+ } else {
+ # Add this page to the given category but don't produce a link.
+ $tags{$page}{$linkpage} = 1;
+ &$proc(tagpage($linkpage), $linktext, $anchor);
+ return "";
+ }
+ } else {
+ # It's just a regular link
+ $linkpage = IkiWiki::linkpage(translate_path($page, $inlink));
+ $linktext = linktext($page, $inlink, $anchor, $title, $trailing);
+ }
+
+ return &$proc($linkpage, $linktext, $anchor);
+ }
+
+
+ sub check_redirect
+ {
+ my %params=@_;
+
+ my $page=$params{page};
+ my $destpage=$params{destpage};
+ my $content=$params{content};
+
+ return "" if $page ne $destpage;
+
+ if($content !~ /^ \s* \#REDIRECT \s* \[\[ ( [^\]]+ ) \]\]/x) {
+ # this page isn't a redirect, render it normally.
+ return undef;
+ }
+
+ # The rest of this function is copied from the redir clause
+ # in meta::preprocess and actually handles the redirect.
+
+ my $value = $1;
+ $value =~ s/^\s+|\s+$//g;
+
+ my $safe=0;
+ if ($value !~ /^\w+:\/\//) {
+ # it's a local link
+ my ($redir_page, $redir_anchor) = split /\#/, $value;
+
+ add_depends($page, $redir_page);
+ my $link=bestlink($page, underscorize(translate_path($page,$redir_page)));
+ if (! length $link) {
+ return "Redirect Error:[[$redir_page]] not found.";
+ }
+
+ $value=urlto($link, $page);
+ $value.='#'.$redir_anchor if defined $redir_anchor;
+ $safe=1;
+
+ # redir cycle detection
+ $pagestate{$page}{mediawiki}{redir}=$link;
+ my $at=$page;
+ my %seen;
+ while (exists $pagestate{$at}{mediawiki}{redir}) {
+ if ($seen{$at}) {
+ return "Redirect Error: cycle found on [[$at]]";
+ }
+ $seen{$at}=1;
+ $at=$pagestate{$at}{mediawiki}{redir};
+ }
+ } else {
+ # it's an external link
+ $value = encode_entities($value);
+ }
+
+ my $redir="";
+ $redir=scrub($redir) if !$safe;
+ push @{$metaheaders{$page}}, $redir;
+
+ return "Redirecting to $value ...";
+ }
+
+
+ # Feed this routine a string containing ... sections,
+ # this routine calls your callback for every section not within nowikis,
+ # collecting its return values and returning the rewritten string.
+ sub skip_nowiki
+ {
+ my $content = shift;
+ my $proc = shift;
+
+ my $result = "";
+ my $state = 0;
+
+ for(split(/(]*>.*?<\/nowiki\s*>)/s, $content)) {
+ $result .= ($state ? $_ : &$proc($_));
+ $state = !$state;
+ }
+
+ return $result;
+ }
+
+
+ # Converts all links in the page, wiki and otherwise.
+ sub linkify (@)
+ {
+ my %params=@_;
+
+ my $page=$params{page};
+ my $destpage=$params{destpage};
+ my $content=$params{content};
+
+ my $file=$pagesources{$page};
+ my $type=pagetype($file);
+ my $counter = 1;
+
+ if($type ne 'mediawiki') {
+ return IkiWiki::Plugin::link::linkify(@_);
+ }
+
+ my $redir = check_redirect(%params);
+ return $redir if defined $redir;
+
+ # this code was copied from MediawikiFormat.pm.
+ # Heavily changed because MF.pm screws up escaping when it does
+ # this awful hack: $uricCheat =~ tr/://d;
+ my $schemas = [qw(http https ftp mailto gopher)];
+ my $re = join "|", map {qr/\Q$_\E/} @$schemas;
+ my $schemes = qr/(?:$re)/;
+ # And this is copied from URI:
+ my $reserved = q(;/?@&=+$,); # NOTE: no colon or [] !
+ my $uric = quotemeta($reserved) . $URI::unreserved . "%#";
+
+ my $result = skip_nowiki($content, sub {
+ $_ = shift;
+
+ # Escape any anchors
+ #s/<(a[\s>\/])/<$1/ig;
+ # Disabled because this appears to screw up the aggregate plugin.
+ # I guess we'll rely on Iki to post-sanitize this sort of stuff.
+
+ # Replace external links, http://blah or [http://blah]
+ s{\b($schemes:[$uric][:$uric]+)|\[($schemes:[$uric][:$uric]+)([^\]]*?)\]}{
+ generate_external_link($1||$2, $3, \$counter)
+ }eg;
+
+ # Handle links that only contain fragments.
+ s{ \[\[ \s* (\#[^|\]'"<>&;]+) (?:\| ([^\]'"<>&;]*))? \]\] }{
+ generate_fragment_link($1, $2)
+ }xeg;
+
+ # Match all internal links
+ s{$link_regexp}{
+ generate_internal_link($page, $1, $2, $3, $4, sub {
+ my($linkpage, $linktext, $anchor) = @_;
+ return htmllink($page, $destpage, $linkpage,
+ linktext => $linktext,
+ anchor => underscorize(scrunch($anchor)));
+ });
+ }eg;
+
+ return $_;
+ });
+
+ return $result;
+ }
+
+
+ # Find all WikiLinks in the page.
+ sub scan (@)
+ {
+ my %params = @_;
+ my $page=$params{page};
+ my $content=$params{content};
+
+ my $file=$pagesources{$page};
+ my $type=pagetype($file);
+
+ if($type ne 'mediawiki') {
+ return IkiWiki::Plugin::link::scan(@_);
+ }
+
+ skip_nowiki($content, sub {
+ $_ = shift;
+ while(/$link_regexp/g) {
+ generate_internal_link($page, $1, '', '', '', sub {
+ my($linkpage, $linktext, $anchor) = @_;
+ push @{$links{$page}}, $linkpage;
+ return undef;
+ });
+ }
+ return '';
+ });
+ }
+
+
+ # Convert the page to HTML.
+ sub htmlize (@)
+ {
+ my %params=@_;
+ my $page = $params{page};
+ my $content = $params{content};
+
+
+ return $content if $markup_disabled;
+
+ # Do a little preprocessing to babysit Text::MediawikiFormat
+ # If a line begins with tabs, T:MwF won't convert it into preformatted blocks.
+ $content =~ s/^\t/ /mg;
+
+ my $ret = Text::MediawikiFormat::format($content, {
+
+ allowed_tags => [#HTML
+ # MediawikiFormat default
+ qw(b big blockquote br caption center cite code dd
+ div dl dt em font h1 h2 h3 h4 h5 h6 hr i li ol p
+ pre rb rp rt ruby s samp small strike strong sub
+ sup table td th tr tt u ul var),
+ # Mediawiki Specific
+ qw(nowiki),
+ # Our additions
+ qw(del ins), # These should have been added all along.
+ qw(span), # Mediawiki allows span but that's rather scary...?
+ qw(a), # this is unfortunate; should handle links after rendering the page.
+ ],
+
+ allowed_attrs => [
+ qw(title align lang dir width height bgcolor),
+ qw(clear), # BR
+ qw(noshade), # HR
+ qw(cite), # BLOCKQUOTE, Q
+ qw(size face color), # FONT
+ # For various lists, mostly deprecated but safe
+ qw(type start value compact),
+ # Tables
+ qw(summary width border frame rules cellspacing
+ cellpadding valign char charoff colgroup col
+ span abbr axis headers scope rowspan colspan),
+ qw(id class name style), # For CSS
+ # Our additions
+ qw(href),
+ ],
+
+ }, {
+ extended => 0,
+ absolute_links => 0,
+ implicit_links => 0
+ });
+
+ return $ret;
+ }
+
+
+ # This is only needed to support the check_redirect call.
+ sub pagetemplate (@)
+ {
+ my %params = @_;
+ my $page = $params{page};
+ my $destpage = $params{destpage};
+ my $template = $params{template};
+
+ # handle metaheaders for redirects
+ 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}}));
+ }
+
+ $template->param(tags => [
+ map {
+ link => htmllink($page, $destpage, tagpage($_), rel => "tag")
+ }, sort keys %{$tags{$page}}
+ ]) if exists $tags{$page} && %{$tags{$page}} && $template->query(name => "tags");
+
+ # It's an rss/atom template. Add any categories.
+ if ($template->query(name => "categories")) {
+ if (exists $tags{$page} && %{$tags{$page}}) {
+ $template->param(categories => [map { category => $_ },
+ sort keys %{$tags{$page}}]);
+ }
+ }
+ }
+
+ 1
--
cgit v1.2.3