X-Git-Url: https://sipb.mit.edu/gitweb.cgi/ikiwiki.git/blobdiff_plain/e3713772f76fa9cc3587e48d0326035a352270d9..60111384a9c178b03cd778c298e28953ca80177b:/IkiWiki/Plugin/cutpaste.pm?ds=sidebyside diff --git a/IkiWiki/Plugin/cutpaste.pm b/IkiWiki/Plugin/cutpaste.pm index 1737775d5..417442f34 100644 --- a/IkiWiki/Plugin/cutpaste.pm +++ b/IkiWiki/Plugin/cutpaste.pm @@ -3,23 +3,31 @@ package IkiWiki::Plugin::cutpaste; use warnings; use strict; -use IkiWiki 2.00; -use UNIVERSAL; +use IkiWiki 3.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 preprocess_cut (@) { #{{{ +sub getsetup () { + return + plugin => { + safe => 1, + rebuild => undef, + }, +} + +sub preprocess_cut (@) { my %params=@_; foreach my $param (qw{id text}) { if (! exists $params{$param}) { - return "[[cut ".sprintf(gettext('%s parameter is required'), $param)."]]"; + error sprintf(gettext('%s parameter is required'), $param); } } @@ -27,14 +35,14 @@ 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}) { if (! exists $params{$param}) { - return "[[copy ".sprintf(gettext('%s parameter is required'), $param)."]]"; + error sprintf(gettext('%s parameter is required'), $param); } } @@ -43,26 +51,26 @@ 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}) { if (! exists $params{$param}) { - return "[[paste ".sprintf(gettext('%s parameter is required'), $param)."]]"; + error sprintf(gettext('%s parameter is required'), $param); } } if (! exists $savedtext{$params{page}}) { - return "[[paste ".gettext('no text was copied in this page')."]]"; + error gettext('no text was copied in this page'); } if (! exists $savedtext{$params{page}}->{$params{id}}) { - return "[[paste ".sprintf(gettext('no text was copied in this page with id %s'), $params{id})."]]"; + error sprintf(gettext('no text was copied in this page with id %s'), $params{id}); } return IkiWiki::preprocess($params{page}, $params{destpage}, IkiWiki::filter($params{page}, $params{destpage}, $savedtext{$params{page}}->{$params{id}})); -} # }}} +} 1;