diff options
author | Joey Hess <joey@kitenet.net> | 2013-06-23 14:04:42 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2013-06-23 14:04:42 -0400 |
commit | 5038f36cba2c7db223708d06a65f99b08c25b733 (patch) | |
tree | 57bb7bd2b20aad5cd56a62606ffbcf5eae057730 /IkiWiki | |
parent | c204de3ca2a14fa9513da2c65fb841fdfb8eb767 (diff) | |
parent | c42fd7d7580d081f3e3f624fd74219b0435230f6 (diff) | |
download | ikiwiki-5038f36cba2c7db223708d06a65f99b08c25b733.tar ikiwiki-5038f36cba2c7db223708d06a65f99b08c25b733.tar.gz |
Merge branch 'restrict-comment-formats' of git://rtime.felk.cvut.cz/sojka/ikiwiki
Diffstat (limited to 'IkiWiki')
-rw-r--r-- | IkiWiki/Plugin/comments.pm | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/IkiWiki/Plugin/comments.pm b/IkiWiki/Plugin/comments.pm index c00bf5275..1ef79a27a 100644 --- a/IkiWiki/Plugin/comments.pm +++ b/IkiWiki/Plugin/comments.pm @@ -90,6 +90,15 @@ sub getsetup () { safe => 0, rebuild => 0, }, + comments_allowformats => { + type => 'string', + default => '', + example => 'mdwn txt', + description => 'Restrict formats for comments to (no restriction if empty)', + safe => 1, + rebuild => 0, + }, + } sub checkconfig () { @@ -101,6 +110,8 @@ sub checkconfig () { unless defined $config{comments_closed_pagespec}; $config{comments_pagename} = 'comment_' unless defined $config{comments_pagename}; + $config{comments_allowformats} = '' + unless defined $config{comments_allowformats}; } sub htmlize { @@ -128,12 +139,18 @@ sub safeurl ($) { } } +sub isallowed ($) { + my $format = shift; + return ! $config{comments_allowformats} || $config{comments_allowformats} =~ /\b$format\b/; +} + sub preprocess { my %params = @_; my $page = $params{page}; my $format = $params{format}; - if (defined $format && ! exists $IkiWiki::hooks{htmlize}{$format}) { + if (defined $format && (! exists $IkiWiki::hooks{htmlize}{$format} || + ! isallowed($format))) { error(sprintf(gettext("unsupported page format %s"), $format)); } @@ -332,7 +349,7 @@ sub editcomment ($$) { my @page_types; if (exists $IkiWiki::hooks{htmlize}) { - foreach my $key (grep { !/^_/ } keys %{$IkiWiki::hooks{htmlize}}) { + foreach my $key (grep { !/^_/ && isallowed($_) } keys %{$IkiWiki::hooks{htmlize}}) { push @page_types, [$key, $IkiWiki::hooks{htmlize}{$key}{longname} || $key]; } } |