return
plugin => {
safe => 1,
+ rebuild => 1,
+ },
+ # Pages where comments are shown, but new comments are not
+ # allowed, will show "Comments are closed".
+ comments_shown_pagespec => {
+ type => 'pagespec',
+ example => 'blog/*',
+ default => '',
+ description => 'PageSpec for pages where comments will be shown inline',
+ link => 'ikiwiki/PageSpec',
+ safe => 1,
+ rebuild => 1,
+ },
+ comments_open_pagespec => {
+ type => 'pagespec',
+ example => 'blog/* and created_after(close_old_comments)',
+ default => '',
+ description => 'PageSpec for pages where new comments can be posted',
+ link => 'ikiwiki/PageSpec',
+ safe => 1,
+ rebuild => 1,
+ },
+ comments_pagename => {
+ type => 'string',
+ example => 'comment_',
+ default => 'comment_',
+ description => 'Base name for comments, e.g. "comment_" for pages like "sandbox/comment_12"',
+ safe => 0, # manual page moving will required
rebuild => undef,
},
+ comments_allowdirectives => {
+ type => 'boolean',
+ default => 0,
+ example => 0,
+ description => 'Allow directives in newly posted comments?',
+ safe => 1,
+ rebuild => 0,
+ },
+ comments_commit => {
+ type => 'boolean',
+ example => 1,
+ default => 1,
+ description => 'commit comments to the VCS',
+ # old uncommitted comments are likely to cause
+ # confusion if this is changed
+ safe => 0,
+ rebuild => 0,
+ },
} #}}}
# Somewhat based on IkiWiki::Plugin::inline blog posting support
sub preprocess (@) { #{{{
my %params=@_;
- unless (length $config{cgiurl}) {
- error(gettext("[[!comments plugin requires CGI enabled]]"));
- }
+ return "";
my $page = $params{page};
$pagestate{$page}{comments}{comments} = defined $params{closed}
} # }}}
# FIXME: logic adapted from recentchanges, should be common code?
+# returns (author URL, pretty-printed version)
sub linkuser ($) { # {{{
my $user = shift;
my $oiduser = eval { IkiWiki::openiduser($user) };
error(gettext("bad page name"));
}
- my $allow_directives = $pagestate{$page}{comments}{allowdirectives};
- my $commit_comments = defined $pagestate{$page}{comments}{commit}
- ? $pagestate{$page}{comments}{commit}
- : 1;
+ my $allow_directives = $config{comments_allowdirectives};
+ my $commit_comments = $config{comments_commit};
+ my $comments_pagename = $config{comments_pagename};
# FIXME: is this right? Or should we be using the candidate subpage
# (whatever that might mean) as the base URL?