From 472dabbb6002219d324ae8480df57d02b6f0ca94 Mon Sep 17 00:00:00 2001 From: joey Date: Thu, 21 Dec 2006 19:36:15 +0000 Subject: * Turn $config{wiki_file_prune_regexps} into an array that is easier to manipulate. * Only exclude rss and atom files from processing if the inline plugin is enabled and that feed type is enabled. Else it's just a copyable file type. * Move rss and atom option handling code into the inline plugin. * Applied a rather old patch from Recai to fix the "pruning is too strict" issue. Now you can have wiki source directories inside dotdirs and the like, if you want. --- IkiWiki/Plugin/html.pm | 2 +- IkiWiki/Plugin/inline.pm | 25 +++++++++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) (limited to 'IkiWiki/Plugin') diff --git a/IkiWiki/Plugin/html.pm b/IkiWiki/Plugin/html.pm index 4270a7eb6..fd40d5ad9 100644 --- a/IkiWiki/Plugin/html.pm +++ b/IkiWiki/Plugin/html.pm @@ -12,7 +12,7 @@ sub import { #{{{ # ikiwiki defaults to skipping .html files as a security measure; # make it process them so this plugin can take effect - $config{wiki_file_prune_regexp} =~ s/\|\\\.x\?html\?\$//; + $config{wiki_file_prune_regexps} = [ grep { !m/\\\.x\?html\?\$/ } @{$config{wiki_file_prune_regexps}} ]; } # }}} sub htmlize (@) { #{{{ diff --git a/IkiWiki/Plugin/inline.pm b/IkiWiki/Plugin/inline.pm index c623df1c5..78a8813a3 100644 --- a/IkiWiki/Plugin/inline.pm +++ b/IkiWiki/Plugin/inline.pm @@ -9,6 +9,8 @@ use IkiWiki::Render; # for displaytime use URI; sub import { #{{{ + hook(type => "getopt", id => "inline", call => \&getopt); + hook(type => "checkconfig", id => "inline", call => \&checkconfig); hook(type => "preprocess", id => "inline", call => \&IkiWiki::preprocess_inline); hook(type => "pagetemplate", id => "inline", @@ -20,6 +22,29 @@ sub import { #{{{ call => \&IkiWiki::pingurl); } # }}} +sub getopt () { #{{{ + eval q{use Getopt::Long}; + error($@) if $@; + Getopt::Long::Configure('pass_through'); + GetOptions( + "rss!" => \$config{rss}, + "atom!" => \$config{atom}, + ); +} + +sub checkconfig () { #{{{ + if (($config{rss} || $config{atom}) && ! length $config{url}) { + error("Must specify url to wiki with --url when using --rss or --atom"); + } + if ($config{rss}) { + print STDERR "!!\n"; + push @{$config{wiki_file_prune_regexps}}, qr/\.rss$/; + } + if ($config{atom}) { + push @{$config{wiki_file_prune_regexps}}, qr/\.atom$/; + } +} #}}} + # Back to ikiwiki namespace for the rest, this code is very much # internal to ikiwiki even though it's separated into a plugin. package IkiWiki; -- cgit v1.2.3