summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorintrigeri <intrigeri@boum.org>2009-01-19 19:44:39 +0100
committerintrigeri <intrigeri@boum.org>2009-01-19 19:44:39 +0100
commita3726968bc13f19f458c372cbd7cf92ae4c6fce5 (patch)
tree9c0d302b2dd1b452a8849a8a74c414b69e8dccde
parent14b49376dc03672f896e5f1df3945a718a39d5a0 (diff)
make checkcontent compatible with hooks that need the full content
Always pass the full (modified) content in `content` named parameter. When the user edits an existing wiki page, also pass a `diff` named parameter, which includes only the lines that they added to the page, or modified. Signed-off-by: intrigeri <intrigeri@boum.org>
-rw-r--r--IkiWiki/Plugin/blogspam.pm2
-rw-r--r--IkiWiki/Plugin/editpage.pm2
-rw-r--r--doc/plugins/write.mdwn5
3 files changed, 5 insertions, 4 deletions
diff --git a/IkiWiki/Plugin/blogspam.pm b/IkiWiki/Plugin/blogspam.pm
index cc6e840f0..d4b5b36d5 100644
--- a/IkiWiki/Plugin/blogspam.pm
+++ b/IkiWiki/Plugin/blogspam.pm
@@ -85,7 +85,7 @@ sub checkcontent (@) {
my $res = $client->send_request('testComment', {
ip => $ENV{REMOTE_ADDR},
- comment => $params{content},
+ comment => defined $params{diff} ? $params{diff} : $params{content},
subject => defined $params{subject} ? $params{subject} : "",
name => defined $params{author} ? $params{author} : "",
link => exists $params{url} ? $params{url} : "",
diff --git a/IkiWiki/Plugin/editpage.pm b/IkiWiki/Plugin/editpage.pm
index 658d664af..4540b55d0 100644
--- a/IkiWiki/Plugin/editpage.pm
+++ b/IkiWiki/Plugin/editpage.pm
@@ -93,7 +93,7 @@ sub check_content (@) {
foreach my $line (split("\n", $params{content})) {
push @diff, $line if ! exists $old{$_};
}
- $params{content}=join("\n", @diff);
+ $params{diff}=join("\n", @diff);
}
my $ok;
diff --git a/doc/plugins/write.mdwn b/doc/plugins/write.mdwn
index ef14f18db..7ba01ae53 100644
--- a/doc/plugins/write.mdwn
+++ b/doc/plugins/write.mdwn
@@ -368,8 +368,9 @@ the content the user has entered is a comment, it may also be passed some
additional parameters: `author`, `url`, and `subject`. The `subject`
parameter may also be filled with the user's comment about the change.
-Note: When the user edits an existing wiki page, the passed `content` will
-include only the lines that they added to the page, or modified.
+Note: When the user edits an existing wiki page, this hook is also
+passed a `diff` named parameter, which will include only the lines
+that they added to the page, or modified.
The hook should return `undef` on success. If the content is disallowed, it
should return a message stating what the problem is, or a function