X-Git-Url: https://sipb.mit.edu/gitweb.cgi/ikiwiki.git/blobdiff_plain/404792c61840c974faca9230ab9005c7b8dd30d1..a9b0b3da5f002e38141c038e2ab3525b099d684b:/IkiWiki/Plugin/comments.pm diff --git a/IkiWiki/Plugin/comments.pm b/IkiWiki/Plugin/comments.pm index ea106a90f..80469f503 100644 --- a/IkiWiki/Plugin/comments.pm +++ b/IkiWiki/Plugin/comments.pm @@ -33,17 +33,61 @@ sub getsetup () { #{{{ 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} @@ -107,6 +151,7 @@ sub getcgiuser ($) { # {{{ } # }}} # 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) }; @@ -175,10 +220,9 @@ sub sessioncgi ($$) { #{{{ 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?